aboutsummaryrefslogtreecommitdiffstats
path: root/build-logic/src/main/kotlin/app/passwordstore/gradle/DependencyUpdatesPlugin.kt
blob: 2880ac1ddd3ea8faf9452419168726337c10fba3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package app.passwordstore.gradle

import com.github.benmanes.gradle.versions.VersionsPlugin
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
import nl.littlerobots.vcu.plugin.VersionCatalogUpdateExtension
import nl.littlerobots.vcu.plugin.VersionCatalogUpdatePlugin
import org.gradle.api.Plugin
import org.gradle.api.initialization.Settings
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.withType

@Suppress("Unused")
class DependencyUpdatesPlugin : Plugin<Settings> {

  override fun apply(settings: Settings) {
    settings.gradle.allprojects {
      if (rootProject == this) {
        pluginManager.apply(VersionCatalogUpdatePlugin::class)
        extensions.configure<VersionCatalogUpdateExtension> { keep.keepUnusedLibraries.set(true) }
        pluginManager.apply(VersionsPlugin::class)
        tasks.withType<DependencyUpdatesTask> {
          rejectVersionIf {
            when (candidate.group) {
              "commons-codec",
              "org.eclipse.jgit" -> true
              else -> false
            }
          }
          checkForGradleUpdate = false
        }
      }
    }
  }
}