Skip to content

Commit 903511c

Browse files
rlazoemilypgoogle
authored andcommitted
Add support to ignore specific commits from the release generator. (#5200)
1 parent 85dc25c commit 903511c

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

buildSrc/src/main/java/com/google/firebase/gradle/plugins/PublishingPlugin.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ abstract class PublishingPlugin : Plugin<Project> {
378378
currentRelease.convention(project.provideProperty("currentRelease"))
379379
pastRelease.convention(project.provideProperty("pastRelease"))
380380
printReleaseConfig.convention(project.provideProperty("printOutput"))
381+
commitsToIgnoreFile.convention(project.layout.projectDirectory.file("ignoreCommits.txt"))
381382

382383
releaseConfigFile.convention(project.layout.projectDirectory.file(RELEASE_CONFIG_FILE))
383384
releaseReportMdFile.convention(project.layout.projectDirectory.file(RELEASE_REPORT_MD_FILE))

buildSrc/src/main/java/com/google/firebase/gradle/plugins/ReleaseGenerator.kt

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import org.gradle.api.Project
2929
import org.gradle.api.file.RegularFileProperty
3030
import org.gradle.api.provider.Property
3131
import org.gradle.api.tasks.Input
32+
import org.gradle.api.tasks.InputFiles
33+
import org.gradle.api.tasks.Internal
3234
import org.gradle.api.tasks.Optional
3335
import org.gradle.api.tasks.OutputFile
3436
import org.gradle.api.tasks.TaskAction
@@ -120,6 +122,14 @@ abstract class ReleaseGenerator : DefaultTask() {
120122

121123
@get:Optional @get:Input abstract val printReleaseConfig: Property<String>
122124

125+
@get:Optional @get:InputFiles abstract val commitsToIgnoreFile: RegularFileProperty
126+
127+
@get:Internal
128+
val commitsToIgnore: List<ObjectId>
129+
get() =
130+
commitsToIgnoreFile.asFileIfExistsOrNull()?.readLines()?.map { ObjectId.fromString(it) }
131+
?: emptyList()
132+
123133
@get:OutputFile abstract val releaseConfigFile: RegularFileProperty
124134

125135
@get:OutputFile abstract val releaseReportMdFile: RegularFileProperty
@@ -224,7 +234,10 @@ abstract class ReleaseGenerator : DefaultTask() {
224234
.addRange(previousReleaseRef, currentReleaseRef)
225235
.setMaxCount(10)
226236
.call()
227-
.filter { !it.fullMessage.contains(RELEASE_CHANGE_FILTER) }
237+
.filter {
238+
!it.fullMessage.contains(RELEASE_CHANGE_FILTER) &&
239+
!commitsToIgnore.any { ignore -> it.id == ignore }
240+
}
228241
.isNotEmpty()
229242

230243
private fun getDirChanges(
@@ -238,8 +251,14 @@ abstract class ReleaseGenerator : DefaultTask() {
238251
.addPath(directory)
239252
.addRange(previousReleaseRef, currentReleaseRef)
240253
.call()
241-
.filter { !it.fullMessage.contains(RELEASE_CHANGE_FILTER) }
254+
.filter {
255+
!it.fullMessage.contains(RELEASE_CHANGE_FILTER) &&
256+
!commitsToIgnore.any { ignore -> it.id == ignore }
257+
}
242258
.map { CommitDiff.fromRevCommit(it) }
243259

244260
private fun getRelativeDir(project: Project) = project.path.substring(1).replace(':', '/')
245261
}
262+
263+
fun RegularFileProperty.asFileIfExistsOrNull(): File? =
264+
if (isPresent && asFile.get().exists()) asFile.get() else null

0 commit comments

Comments
 (0)