Skip to content

Commit 5bb5b72

Browse files
committed
Use releaseNotesUrl even if repoUrl is empty
This is a follow-up to #2863. Before this change, the `info.releaseNotesUrl` property from the POM was ignored if `project.scm.url` and `project.url` were not set. With this change the `releaseNotesUrl` is added to the PR even if the other two are not set.
1 parent 9dfe0f3 commit 5bb5b72

File tree

3 files changed

+46
-48
lines changed

3 files changed

+46
-48
lines changed

modules/core/src/main/scala/org/scalasteward/core/nurture/NurtureAlg.scala

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -214,17 +214,10 @@ final class NurtureAlg[F[_]](config: VCSCfg)(implicit
214214
}.toMap
215215
releaseRelatedUrls <- dependenciesWithNextVersion.flatTraverse {
216216
case (currentVersion, dependency) =>
217-
dependencyToMetadata.get(dependency).toList.flatTraverse { metadata =>
218-
metadata.repoUrl.toList.traverse { uri =>
219-
vcsExtraAlg
220-
.getReleaseRelatedUrls(
221-
uri,
222-
metadata.releaseNotesUrl,
223-
currentVersion,
224-
dependency.version
225-
)
226-
.tupleLeft(dependency.artifactId.name)
227-
}
217+
dependencyToMetadata.get(dependency).toList.traverse { metadata =>
218+
vcsExtraAlg
219+
.getReleaseRelatedUrls(metadata, currentVersion, dependency.version)
220+
.tupleLeft(dependency.artifactId.name)
228221
}
229222
}
230223
filesWithOldVersion <-

modules/core/src/main/scala/org/scalasteward/core/vcs/VCSExtraAlg.scala

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,15 @@ package org.scalasteward.core.vcs
1818

1919
import cats.Monad
2020
import cats.syntax.all._
21-
import org.http4s.Uri
2221
import org.scalasteward.core.application.Config.VCSCfg
22+
import org.scalasteward.core.coursier.DependencyMetadata
2323
import org.scalasteward.core.data.{ReleaseRelatedUrl, Version}
2424
import org.scalasteward.core.util.UrlChecker
2525
import org.scalasteward.core.vcs
2626

2727
trait VCSExtraAlg[F[_]] {
2828
def getReleaseRelatedUrls(
29-
repoUrl: Uri,
30-
releaseNotesUrl: Option[Uri],
29+
metadata: DependencyMetadata,
3130
currentVersion: Version,
3231
nextVersion: Version
3332
): F[List[ReleaseRelatedUrl]]
@@ -40,20 +39,22 @@ object VCSExtraAlg {
4039
): VCSExtraAlg[F] =
4140
new VCSExtraAlg[F] {
4241
override def getReleaseRelatedUrls(
43-
repoUrl: Uri,
44-
releaseNotesUrl: Option[Uri],
42+
metadata: DependencyMetadata,
4543
currentVersion: Version,
4644
nextVersion: Version
4745
): F[List[ReleaseRelatedUrl]] = {
4846
val releaseRelatedUrls =
49-
releaseNotesUrl.toList.map(ReleaseRelatedUrl.CustomReleaseNotes.apply) ++
50-
vcs.possibleReleaseRelatedUrls(
51-
config.tpe,
52-
config.apiHost,
53-
repoUrl,
54-
currentVersion,
55-
nextVersion
47+
metadata.releaseNotesUrl.toList.map(ReleaseRelatedUrl.CustomReleaseNotes.apply) ++
48+
metadata.repoUrl.toList.flatMap(repoUrl =>
49+
vcs.possibleReleaseRelatedUrls(
50+
config.tpe,
51+
config.apiHost,
52+
repoUrl,
53+
currentVersion,
54+
nextVersion
55+
)
5656
)
57+
5758
releaseRelatedUrls
5859
.distinctBy(_.url)
5960
.filterA(releaseRelatedUrl => urlChecker.exists(releaseRelatedUrl.url))
Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package org.scalasteward.core.vcs
22

3+
import cats.syntax.all._
34
import munit.CatsEffectSuite
45
import org.http4s.HttpApp
56
import org.http4s.dsl.Http4sDsl
67
import org.http4s.implicits._
78
import org.scalasteward.core.application.Config.VCSCfg
9+
import org.scalasteward.core.coursier.DependencyMetadata
810
import org.scalasteward.core.data.ReleaseRelatedUrl.{CustomReleaseNotes, VersionDiff}
911
import org.scalasteward.core.data.Version
1012
import org.scalasteward.core.mock.MockContext.context._
@@ -23,42 +25,44 @@ class VCSExtraAlgTest extends CatsEffectSuite with Http4sDsl[MockEff] {
2325
private val v2 = Version("0.2.0")
2426

2527
test("getReleaseRelatedUrls: repoUrl not found") {
26-
val obtained =
27-
vcsExtraAlg.getReleaseRelatedUrls(uri"https://github.com/foo/foo", None, v1, v2).runA(state)
28+
val metadata = DependencyMetadata.empty.copy(scmUrl = uri"https://github.com/foo/foo".some)
29+
val obtained = vcsExtraAlg.getReleaseRelatedUrls(metadata, v1, v2).runA(state)
2830
assertIO(obtained, List.empty)
2931
}
3032

3133
test("getReleaseRelatedUrls: repoUrl ok") {
32-
val obtained =
33-
vcsExtraAlg.getReleaseRelatedUrls(uri"https://github.com/foo/bar", None, v1, v2).runA(state)
34+
val metadata = DependencyMetadata.empty.copy(scmUrl = uri"https://github.com/foo/bar".some)
35+
val obtained = vcsExtraAlg.getReleaseRelatedUrls(metadata, v1, v2).runA(state)
3436
val expected = List(VersionDiff(uri"https://github.com/foo/bar/compare/v0.1.0...v0.2.0"))
3537
assertIO(obtained, expected)
3638
}
3739

3840
test("getReleaseRelatedUrls: repoUrl and releaseNotesUrl ok") {
39-
val releaseNotesUrl = uri"https://github.com/foo/bar/README.md#changelog"
40-
val obtained = vcsExtraAlg
41-
.getReleaseRelatedUrls(uri"https://github.com/foo/bar", Some(releaseNotesUrl), v1, v2)
42-
.runA(state)
41+
val metadata = DependencyMetadata.empty.copy(
42+
scmUrl = uri"https://github.com/foo/bar".some,
43+
releaseNotesUrl = uri"https://github.com/foo/bar/README.md#changelog".some
44+
)
45+
val obtained = vcsExtraAlg.getReleaseRelatedUrls(metadata, v1, v2).runA(state)
4346
val expected = List(
44-
CustomReleaseNotes(releaseNotesUrl),
47+
CustomReleaseNotes(metadata.releaseNotesUrl.get),
4548
VersionDiff(uri"https://github.com/foo/bar/compare/v0.1.0...v0.2.0")
4649
)
4750
assertIO(obtained, expected)
4851
}
4952

5053
test("getReleaseRelatedUrls: releaseNotesUrl is in possibleReleaseRelatedUrls") {
51-
val releaseNotesUrl = uri"https://github.com/foo/bar1/blob/master/RELEASES.md"
52-
val obtained = vcsExtraAlg
53-
.getReleaseRelatedUrls(uri"https://github.com/foo/bar1", Some(releaseNotesUrl), v1, v2)
54-
.runA(state)
55-
val expected = List(CustomReleaseNotes(releaseNotesUrl))
54+
val metadata = DependencyMetadata.empty.copy(
55+
scmUrl = uri"https://github.com/foo/bar1".some,
56+
releaseNotesUrl = uri"https://github.com/foo/bar1/blob/master/RELEASES.md".some
57+
)
58+
val obtained = vcsExtraAlg.getReleaseRelatedUrls(metadata, v1, v2).runA(state)
59+
val expected = List(CustomReleaseNotes(metadata.releaseNotesUrl.get))
5660
assertIO(obtained, expected)
5761
}
5862

5963
test("getReleaseRelatedUrls: repoUrl permanent redirect") {
60-
val obtained =
61-
vcsExtraAlg.getReleaseRelatedUrls(uri"https://github.com/foo/buz", None, v1, v2).runA(state)
64+
val metadata = DependencyMetadata.empty.copy(scmUrl = uri"https://github.com/foo/buz".some)
65+
val obtained = vcsExtraAlg.getReleaseRelatedUrls(metadata, v1, v2).runA(state)
6266
assertIO(obtained, List.empty)
6367
}
6468

@@ -72,25 +76,25 @@ class VCSExtraAlgTest extends CatsEffectSuite with Http4sDsl[MockEff] {
7276
private val githubOnPremVcsExtraAlg = VCSExtraAlg.create[MockEff](config)
7377

7478
test("getReleaseRelatedUrls: on-prem, repoUrl not found") {
75-
val obtained = githubOnPremVcsExtraAlg
76-
.getReleaseRelatedUrls(uri"https://github.on-prem.com/foo/foo", None, v1, v2)
77-
.runA(state)
79+
val metadata =
80+
DependencyMetadata.empty.copy(scmUrl = uri"https://github.on-prem.com/foo/foo".some)
81+
val obtained = githubOnPremVcsExtraAlg.getReleaseRelatedUrls(metadata, v1, v2).runA(state)
7882
assertIO(obtained, List.empty)
7983
}
8084

8185
test("getReleaseRelatedUrls: on-prem, repoUrl ok") {
82-
val obtained = githubOnPremVcsExtraAlg
83-
.getReleaseRelatedUrls(uri"https://github.on-prem.com/foo/bar", None, v1, v2)
84-
.runA(state)
86+
val metadata =
87+
DependencyMetadata.empty.copy(scmUrl = uri"https://github.on-prem.com/foo/bar".some)
88+
val obtained = githubOnPremVcsExtraAlg.getReleaseRelatedUrls(metadata, v1, v2).runA(state)
8589
val expected =
8690
List(VersionDiff(uri"https://github.on-prem.com/foo/bar/compare/v0.1.0...v0.2.0"))
8791
assertIO(obtained, expected)
8892
}
8993

9094
test("getReleaseRelatedUrls: on-prem, repoUrl permanent redirect") {
91-
val obtained = githubOnPremVcsExtraAlg
92-
.getReleaseRelatedUrls(uri"https://github.on-prem.com/foo/buz", None, v1, v2)
93-
.runA(state)
95+
val metadata =
96+
DependencyMetadata.empty.copy(scmUrl = uri"https://github.on-prem.com/foo/buz".some)
97+
val obtained = githubOnPremVcsExtraAlg.getReleaseRelatedUrls(metadata, v1, v2).runA(state)
9498
assertIO(obtained, List.empty)
9599
}
96100
}

0 commit comments

Comments
 (0)