Skip to content

Commit dce5a89

Browse files
committed
dogfood the request_reviews Mergify action
1 parent adfa542 commit dce5a89

File tree

3 files changed

+41
-6
lines changed

3 files changed

+41
-6
lines changed

.mergify.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
pull_request_rules:
99
- name: merge scala-steward's PRs
1010
conditions:
11-
- author=scala-steward
11+
- author=typelevel-steward[bot]
1212
- or:
1313
- body~=labels:.*early-semver-patch
1414
- body~=labels:.*early-semver-minor
@@ -168,3 +168,10 @@ pull_request_rules:
168168
add:
169169
- versioning
170170
remove: []
171+
- name: assign scala-steward's PRs for review
172+
conditions:
173+
- author=typelevel-steward[bot]
174+
actions:
175+
request_reviews:
176+
users:
177+
- armanbilge

build.sbt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,18 @@ ThisBuild / developers := List(
1111
tlGitHubDev("djspiewak", "Daniel Spiewak")
1212
)
1313

14-
ThisBuild / mergifyStewardConfig ~= { _.map(_.copy(mergeMinors = true)) }
14+
ThisBuild / mergifyStewardConfig ~= {
15+
_.map(_.copy(mergeMinors = true, author = "typelevel-steward[bot]"))
16+
}
1517
ThisBuild / mergifySuccessConditions += MergifyCondition.Custom("#approved-reviews-by>=1")
1618
ThisBuild / mergifyLabelPaths += { "docs" -> file("docs") }
19+
ThisBuild / mergifyPrRules += MergifyPrRule(
20+
"assign scala-steward's PRs for review",
21+
List(MergifyCondition.Custom("author=typelevel-steward[bot]")),
22+
List(
23+
MergifyAction.RequestReviews("armanbilge")
24+
)
25+
)
1726

1827
ThisBuild / scalafixDependencies ++= Seq(
1928
"com.github.liancheng" %% "organize-imports" % "0.6.0"

mergify/src/main/scala/org/typelevel/sbt/mergify/MergifyAction.scala

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616

1717
package org.typelevel.sbt.mergify
1818

19-
import cats.data._
20-
import cats.syntax.all._
21-
import io.circe._
22-
import io.circe.syntax._
19+
import cats.data.*
20+
import cats.syntax.all.*
21+
import io.circe.*
22+
import io.circe.syntax.*
23+
import sbt.librarymanagement.Developer
2324

2425
sealed abstract class MergifyAction {
2526
private[mergify] def name = getClass.getSimpleName.toLowerCase
@@ -84,6 +85,24 @@ object MergifyAction {
8485
Option(randomCount)
8586
)
8687

88+
def apply(developers: List[Developer]) =
89+
new RequestReviews(
90+
developers
91+
.map(_.id)
92+
.toNel
93+
.getOrElse(throw new RuntimeException("developers must be non-empty"))
94+
.asLeft,
95+
None)
96+
97+
def apply(developers: List[Developer], randomCount: Int) =
98+
new RequestReviews(
99+
developers
100+
.map(_.id)
101+
.toNel
102+
.getOrElse(throw new RuntimeException("developers must be non-empty"))
103+
.asLeft,
104+
randomCount.some)
105+
87106
implicit def encoder: Encoder[RequestReviews] =
88107
Encoder.forProduct2("users", "random_count") { requestReviews =>
89108
(requestReviews.users.fold(_.asJson, _.asJson), requestReviews.randomCount)

0 commit comments

Comments
 (0)