Gradle plugin that parses version updates and assigns them to groups of people.

Overview

Notifier Gradle Plugin

This gradle plugin serves the need of automating how dependencies are handles in a project.

More specifically, it functions using the output of Refresh Versions plugin. By parsing the versions.properites file, in conjunction with pre-determined list of dependency assignments, it will output a report detailing who has to update what.

Reporting

At its current state, the plugin can output reports to:

  • Standard output
  • GitHub issue: It requires a GitHub App to be created and installed in the repository. This is done because for the plugin to function, it needs to be authenticated and thus act on behalf of that GitHub App. It will also require a jwt token. More information can be found in GitHub's documentation

Usage

Apply the plugin

plugins {
    id("com.withplum.notifier") version "0.1.0"
}

Configure

") // Your repository, e.g.: notifier githubRepositorySlug.set("/repos/ / ") // e.g. /repos/withplum/app-android githubIssueId.set(" ") // The id of a GitHub issue that you'd like to post reports to githubDependencyAssignments.set( // A map of github usernames (or anything else you'd like) with assigned dependencies mapOf( "spiderMan" to listOf("junit"), "wonderWoman" to listOf("kotlin", "koin") ) ) } ">
configure<com.withplum.notifier.extensions.NotifierExtension> {
    stdOutEnabled.value(true) // For reporting to the standard output
    githubEnabled.value(false) // For reporting to a github issue
    versionsFilePath.set(rootDir.path + File.separator + "versions.properties") // the file from which to read
    githubInstallationId.set("numeric_id") // The GitHub App's installation id
    githubRepository.set("
      
       "
      ) // Your repository, e.g.: notifier
    githubRepositorySlug.set("/repos/
      
       /
       
        "
       
      ) // e.g. /repos/withplum/app-android
    githubIssueId.set("
      
       "
      ) // The id of a GitHub issue that you'd like to post reports to
    githubDependencyAssignments.set( // A map of github usernames (or anything else you'd like) with assigned dependencies
        mapOf(
            "spiderMan" to listOf("junit"),
            "wonderWoman" to listOf("kotlin", "koin")
        )
    )
}

Execute

Reminder: In order to post updates to GitHub issue, a jwt token has to first be generated.

" ">
./gradlew notifyDependencies --jwtToken="
    
     "

    
You might also like...
Gradle plugin that generates a Swift Package Manager manifest and an XCFramework to distribute a Kotlin Multiplatform library for Apple platforms.

Multiplatform Swift Package This is a Gradle plugin for Kotlin Multiplatform projects that generates an XCFramework for your native Apple targets and

Gradle Plugin for publishing artifacts to Sonatype and Nexus

Introduction Due to Sonatype's strict validation rules, the publishing requirement must be satisfied by every artifact which wants to be published to

A Gradle plugin enforcing pre-commit and commit-msg Git hooks configuration

A Gradle plugin enforcing pre-commit and commit-msg Git hooks configuration. Conventional-commits-ready.

Klinker is a gradle plugin making it possible to link kotlin native executables with custom linkers and options.

Klinker is a gradle plugin making it possible to link kotlin native executables with custom linkers and options. It does this by creating a static library for kotlin compilation, then generates a c+kotlin wrapper that calls into kotlin to start the app, finally using the specified compiler to compile and link the c code and kotlin library into a binary.

Gradle plugin to check, if rest-controllers are used by clients and clients have suitable rest-interfaces

Verify-Feign Gradle Plugin This plugin will help you to verify all rest-clients and -controllers in a multimodule spring project. It will check, if al

The core Gradle plugin and associated logic used for Slack's Android app

slack-gradle-plugin This repository contains the core Gradle plugin and associated logic used for Slack's Android app. This repo is effectively read-o

Kmp4free - A Gradle Plugin that allows seamless switching between Kotlin JVM and the Kotlin Multiplatform Plugins
Kmp4free - A Gradle Plugin that allows seamless switching between Kotlin JVM and the Kotlin Multiplatform Plugins

🆓 kmp4free Allows you to toggle between Kotlin JVM Plugin - Kotlin Multiplatform with a Gradle Property kmp4free=true. This Gradle Plugin was built

A Gradle plugin that improves the experience when developing Android apps, especially system tools, that use hidden APIs.

A Gradle plugin that improves the experience when developing Android apps, especially system tools, that use hidden APIs.

Grazel is a Gradle plugin to automate generation of valid Bazel files for a given Android/Kotlin/Java project.

Grazel Grazel stands for Gradle to Bazel. It is a Gradle plugin that enables you to migrate Android projects to Bazel build system in an incremental a

Comments
  • Update dependencies

    Update dependencies

    This updates a host of dependencies:

    • Gradle 7.2 -> 7.5.1(Not using 7.6 due to this issue that kotlin has to fix)
    • RefreshVersions 0.23.0 -> 0.51.0
    • Moshi 1.12.0 -> 1.14.0
    • OkHttp 4.9.2 -> 4.10.0
    • Kotlin to 1.7.21
    • Gradle plugin publish to 1.1.0

    Also

    • Use KSP instead of kapt
    • Remove unused testing dependencies
    opened by cmargonis 0
  • Vision

    Vision

    At it's current state, the plugin has a lot of room to improve.

    Github coupling

    The plugin implementation is overly coupled with the Github reporting feature. It ideally should only parse dependency updates, assign them to a user and then report to whichever mechanism is enabled.

    No tests

    The parsing and assignment logic should be covered by tests.

    Documentation

    Current usage instructions are not as helpful as they could.

    No automation

    Having automated checks, automated publishing steps etc. will be helpful for the longevity of the plugin.

    Following the above and any contributing idea, milestones should be created on the road to version 1.0

    opened by cmargonis 0
Releases(v0.1.0)
Owner
Plum
Plum
A Gradle plugin that generates plugin.yml for Bukkit/BungeeCord/Nukkit plugins based on the Gradle project

plugin-yml is a simple Gradle plugin that generates the plugin.yml plugin description file for Bukkit plugins, bungee.yml for Bungee plugins or nukkit.yml for Nukkit plugins based on the Gradle project. Various properties are set automatically (e.g. project name, version or description) and additional properties can be added using a simple DSL.

Plexus 0 Apr 10, 2022
A simple gradle plugin that lets you create a download asset from zeplin and convert them to vector drawables automatically

A simple gradle plugin that lets you create a download asset from zeplin and convert them to vector drawables automatically elephant project using 100% Kotlin and be up and running in a few seconds.

Qifan Yang 21 Sep 21, 2022
EasyVersion is a Gradle plugin that manage your app or library version.

EasyVersion EasyVersion is a Gradle plugin that manage your app or library version. Before Downloading Create easy_version.json in your root project d

Kosh Sergani 8 Nov 26, 2022
Gradle plugin for updating a project version catalog

Version catalog update plugin This plugin helps to keep the versions in a Gradle version catalog toml file up to date. The version updates are determi

Little Robots 307 Dec 26, 2022
A Gradle plugin for generating multi-version packet wrappers for Minecraft: JE

tinyprotocol A Gradle plugin for generating multi-version packet class wrappers for Minecraft: Java Edition. Usage plugins { id("me.kcra.tinyproto

Matouš Kučera 2 Feb 21, 2022
Gradle Plugin to automatically upgrade your gradle project dependencies and send a GitHub pull request with the changes

Gradle Plugin to automatically upgrade your gradle project dependencies and send a GitHub pull request with the changes

Dipien 142 Dec 29, 2022
Gradle Plugin that allows you to decompile bytecode compiled with Jetpack Compose Compiler Plugin into Java and check it

decomposer Gradle Plugin that allows you to decompile bytecode compiled with Jetpack Compose Compiler Plugin into Java and check it How to use Run bui

Takahiro Menju 56 Nov 18, 2022
Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms.

CompleteKotlin Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms. What this plugin provides This zero-conf

Louis CAD 235 Jan 3, 2023
A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes.

Change Tracker Plugin A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes

Ismael Di Vita 110 Dec 19, 2022
Android Gradle Plugin -- Auto Check big image and compress image in building.

McImage I will continue to update, please rest assured to use 中文文档 Android优雅的打包时自动化获取全部res资源 McImage is a Non-invasive plugin for compress all res in

smallSohoSolo 1.1k Dec 28, 2022