Skip to content

Commit f3418e9

Browse files
authored
Merge pull request #3576 from scala-steward-org/topic/use-repo-config-signoff
Use `RepoConfig#signoffCommits` for migrations and hooks
2 parents 8cb08ea + f8904f7 commit f3418e9

File tree

12 files changed

+37
-66
lines changed

12 files changed

+37
-66
lines changed

modules/core/src/main/scala/org/scalasteward/core/edit/EditAlg.scala

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,8 @@ final class EditAlg[F[_]](implicit
9494
result <- logger.attemptWarn.log("Scalafix migration failed") {
9595
buildToolDispatcher.runMigration(repo, config, migration)
9696
}
97-
maybeCommit <- gitAlg.commitAllIfDirty(
98-
repo,
99-
migration.commitMessage(result),
100-
migration.signoffCommits
101-
)
97+
maybeCommit <-
98+
gitAlg.commitAllIfDirty(repo, migration.commitMessage(result), config.signoffCommits)
10299
} yield ScalafixEdit(migration, result, maybeCommit)
103100

104101
private def applyUpdateReplacements(

modules/core/src/main/scala/org/scalasteward/core/edit/hooks/HookExecutor.scala

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,21 @@ final class HookExecutor[F[_]](implicit
4646
F: MonadThrow[F]
4747
) {
4848
def execPostUpdateHooks(data: RepoData, update: Update.Single): F[List[EditAttempt]] =
49-
(HookExecutor.postUpdateHooks(
50-
data.config.signoffCommits
51-
) ++ data.config.postUpdateHooksOrDefault)
49+
(HookExecutor.postUpdateHooks ++ data.config.postUpdateHooksOrDefault)
5250
.filter { hook =>
5351
hook.groupId.forall(update.groupId === _) &&
5452
hook.artifactId.forall(aid => update.artifactIds.exists(_.name === aid.name)) &&
5553
hook.enabledByCache(data.cache) &&
5654
hook.enabledByConfig(data.config)
5755
}
5856
.distinctBy(_.command)
59-
.traverse(execPostUpdateHook(data.repo, update, _))
57+
.traverse(execPostUpdateHook(data.repo, update, _, data.config.signoffCommits))
6058

6159
private def execPostUpdateHook(
6260
repo: Repo,
6361
update: Update.Single,
64-
hook: PostUpdateHook
62+
hook: PostUpdateHook,
63+
signoffCommits: Option[Boolean]
6564
): F[EditAttempt] =
6665
for {
6766
_ <- logger.info(
@@ -77,10 +76,10 @@ final class HookExecutor[F[_]](implicit
7776
commitMessage = hook
7877
.commitMessage(update)
7978
.appendParagraph(s"Executed command: ${hook.command.mkString_(" ")}")
80-
maybeHookCommit <- gitAlg.commitAllIfDirty(repo, commitMessage, hook.signoffCommits)
79+
maybeHookCommit <- gitAlg.commitAllIfDirty(repo, commitMessage, signoffCommits)
8180
maybeBlameIgnoreCommit <-
8281
maybeHookCommit.flatTraverse(
83-
addToGitBlameIgnoreRevs(repo, repoDir, hook, _, commitMessage, hook.signoffCommits)
82+
addToGitBlameIgnoreRevs(repo, repoDir, hook, _, commitMessage, signoffCommits)
8483
)
8584
} yield HookEdit(hook, result, maybeHookCommit.toList ++ maybeBlameIgnoreCommit.toList)
8685

@@ -150,8 +149,7 @@ object HookExecutor {
150149
private def sbtGithubWorkflowGenerateHook(
151150
groupId: GroupId,
152151
artifactId: ArtifactId,
153-
enabledByCache: RepoCache => Boolean,
154-
signoffCommits: Option[Boolean]
152+
enabledByCache: RepoCache => Boolean
155153
): PostUpdateHook =
156154
PostUpdateHook(
157155
groupId = Some(groupId),
@@ -161,11 +159,10 @@ object HookExecutor {
161159
commitMessage = _ => CommitMsg("Regenerate GitHub Actions workflow"),
162160
enabledByCache = enabledByCache,
163161
enabledByConfig = _ => true,
164-
addToGitBlameIgnoreRevs = false,
165-
signoffCommits = signoffCommits
162+
addToGitBlameIgnoreRevs = false
166163
)
167164

168-
private def scalafmtHook(signoffCommits: Option[Boolean]) =
165+
private val scalafmtHook =
169166
PostUpdateHook(
170167
groupId = Some(scalafmtGroupId),
171168
artifactId = Some(scalafmtArtifactId),
@@ -174,14 +171,12 @@ object HookExecutor {
174171
commitMessage = update => CommitMsg(s"Reformat with scalafmt ${update.nextVersion}"),
175172
enabledByCache = _ => true,
176173
enabledByConfig = _.scalafmtOrDefault.runAfterUpgradingOrDefault,
177-
addToGitBlameIgnoreRevs = true,
178-
signoffCommits = signoffCommits
174+
addToGitBlameIgnoreRevs = true
179175
)
180176

181177
private def sbtTypelevelHook(
182178
groupId: GroupId,
183-
artifactId: ArtifactId,
184-
signoffCommits: Option[Boolean]
179+
artifactId: ArtifactId
185180
): PostUpdateHook =
186181
PostUpdateHook(
187182
groupId = Some(groupId),
@@ -191,22 +186,19 @@ object HookExecutor {
191186
commitMessage = _ => CommitMsg("Run prePR with sbt-typelevel"),
192187
enabledByCache = _ => true,
193188
enabledByConfig = _ => true,
194-
addToGitBlameIgnoreRevs = false,
195-
signoffCommits = signoffCommits
189+
addToGitBlameIgnoreRevs = false
196190
)
197191

198192
private def githubWorkflowGenerateExists(cache: RepoCache): Boolean =
199193
cache.dependsOn(sbtGitHubWorkflowGenerateModules ++ sbtTypelevelModules)
200194

201-
private def postUpdateHooks(signoffCommits: Option[Boolean]): List[PostUpdateHook] =
202-
scalafmtHook(signoffCommits) ::
195+
private val postUpdateHooks: List[PostUpdateHook] =
196+
scalafmtHook ::
203197
sbtGitHubWorkflowGenerateModules.map { case (gid, aid) =>
204-
sbtGithubWorkflowGenerateHook(gid, aid, _ => true, signoffCommits)
198+
sbtGithubWorkflowGenerateHook(gid, aid, _ => true)
205199
} ++
206200
conditionalSbtGitHubWorkflowGenerateModules.map { case (gid, aid) =>
207-
sbtGithubWorkflowGenerateHook(gid, aid, githubWorkflowGenerateExists, signoffCommits)
201+
sbtGithubWorkflowGenerateHook(gid, aid, githubWorkflowGenerateExists)
208202
} ++
209-
sbtTypelevelModules.map { case (gid, aid) =>
210-
sbtTypelevelHook(gid, aid, signoffCommits)
211-
}
203+
sbtTypelevelModules.map { case (gid, aid) => sbtTypelevelHook(gid, aid) }
212204
}

modules/core/src/main/scala/org/scalasteward/core/edit/hooks/PostUpdateHook.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ final case class PostUpdateHook(
3131
commitMessage: Update.Single => CommitMsg,
3232
enabledByCache: RepoCache => Boolean,
3333
enabledByConfig: RepoConfig => Boolean,
34-
addToGitBlameIgnoreRevs: Boolean,
35-
signoffCommits: Option[Boolean]
34+
addToGitBlameIgnoreRevs: Boolean
3635
) {
3736
def showCommand: String = command.mkString_("'", " ", "'")
3837
}

modules/core/src/main/scala/org/scalasteward/core/edit/scalafix/ScalafixMigration.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ final case class ScalafixMigration(
3434
scalacOptions: Option[Nel[String]] = None,
3535
authors: Option[Nel[Author]] = None,
3636
target: Option[Target] = None,
37-
executionOrder: Option[ExecutionOrder] = None,
38-
signoffCommits: Option[Boolean]
37+
executionOrder: Option[ExecutionOrder] = None
3938
) {
4039
def commitMessage(result: Either[Throwable, Unit]): CommitMsg = {
4140
val verb = if (result.isRight) "Applied" else "Failed"

modules/core/src/main/scala/org/scalasteward/core/repoconfig/PostUpdateHookConfig.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ final case class PostUpdateHookConfig(
2828
artifactId: Option[String],
2929
command: Nel[String],
3030
commitMessage: String,
31-
addToGitBlameIgnoreRevs: Option[Boolean] = None,
32-
signoffCommits: Option[Boolean]
31+
addToGitBlameIgnoreRevs: Option[Boolean] = None
3332
) {
3433
def toHook: PostUpdateHook =
3534
PostUpdateHook(
@@ -40,8 +39,7 @@ final case class PostUpdateHookConfig(
4039
commitMessage = CommitMsg.replaceVariables(commitMessage)(_, None),
4140
enabledByCache = _ => true,
4241
enabledByConfig = _ => true,
43-
addToGitBlameIgnoreRevs = addToGitBlameIgnoreRevs.getOrElse(false),
44-
signoffCommits = signoffCommits
42+
addToGitBlameIgnoreRevs = addToGitBlameIgnoreRevs.getOrElse(false)
4543
)
4644
}
4745

modules/core/src/test/scala/org/scalasteward/core/buildtool/sbt/SbtAlgTest.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ class SbtAlgTest extends FunSuite {
5454
GroupId("co.fs2"),
5555
Nel.of("fs2-core"),
5656
Version("1.0.0"),
57-
Nel.of("github:functional-streams-for-scala/fs2/v1?sha=v1.0.5"),
58-
signoffCommits = None
57+
Nel.of("github:functional-streams-for-scala/fs2/v1?sha=v1.0.5")
5958
)
6059
val initialState = MockState.empty
6160
.addFiles(
@@ -94,8 +93,7 @@ class SbtAlgTest extends FunSuite {
9493
Nel.of("cats-core"),
9594
Version("2.2.0"),
9695
Nel.of("github:cb372/cats/Cats_v2_2_0?sha=235bd7c92e431ab1902db174cf4665b05e08f2f1"),
97-
scalacOptions = Some(Nel.of("-P:semanticdb:synthetics:on")),
98-
signoffCommits = None
96+
scalacOptions = Some(Nel.of("-P:semanticdb:synthetics:on"))
9997
)
10098
val initialState = MockState.empty
10199
.addFiles(

modules/core/src/test/scala/org/scalasteward/core/buildtool/scalacli/ScalaCliAlgTest.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,7 @@ class ScalaCliAlgTest extends CatsEffectSuite {
9191
GroupId("co.fs2"),
9292
Nel.of("fs2-core"),
9393
Version("1.0.0"),
94-
Nel.of("github:functional-streams-for-scala/fs2/v1?sha=v1.0.5"),
95-
signoffCommits = None
94+
Nel.of("github:functional-streams-for-scala/fs2/v1?sha=v1.0.5")
9695
)
9796
val obtained = scalaCliAlg.runMigration(buildRoot, migration).runS(MockState.empty)
9897
val expected = MockState.empty.copy(trace =

modules/core/src/test/scala/org/scalasteward/core/edit/hooks/HookExecutorTest.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,7 @@ class HookExecutorTest extends CatsEffectSuite {
126126
groupId = None,
127127
artifactId = None,
128128
command = Nel.of("sbt", "mySbtCommand"),
129-
commitMessage = "Updated with a hook!",
130-
signoffCommits = None
129+
commitMessage = "Updated with a hook!"
131130
)
132131
).some
133132
)

modules/core/src/test/scala/org/scalasteward/core/edit/scalafix/ScalafixMigrationsFinderTest.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ class ScalafixMigrationsFinderTest extends FunSuite {
2020
Some(
2121
"https://github.com/typelevel/cats/blob/v2.2.0/scalafix/README.md#migration-to-cats-v220"
2222
),
23-
Some(Nel.of("-P:semanticdb:synthetics:on")),
24-
signoffCommits = None
23+
Some(Nel.of("-P:semanticdb:synthetics:on"))
2524
)
2625
),
2726
List()

modules/core/src/test/scala/org/scalasteward/core/edit/scalafix/ScalafixMigrationsLoaderTest.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ class ScalafixMigrationsLoaderTest extends FunSuite {
3737
Some("https://scalacenter.github.io/scalafix/"),
3838
authors = Some(Nel.of(Author("Jane Doe", "[email protected]"))),
3939
target = Some(Sources),
40-
executionOrder = Some(PreUpdate),
41-
signoffCommits = None
40+
executionOrder = Some(PreUpdate)
4241
)
4342

4443
test("loadAll: without extra file, without defaults") {

0 commit comments

Comments
 (0)