Skip to content
check-square

GitHub Action

Dependency tree diff for Gradle

v2.1.0 Latest version

Dependency tree diff for Gradle

check-square

Dependency tree diff for Gradle

Generates human readable dependency diff between 2 commits, using Jake Wharton's dependency-tree-diff tool

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Dependency tree diff for Gradle

uses: usefulness/dependency-tree-diff-action@v2.1.0

Learn more about this action in usefulness/dependency-tree-diff-action

Choose a version

Dependency Tree Diff - Github Action

.github/workflows/main.yml

Simple Github Action wrapper for Jake Wharton's Dependency Tree Diff tool.

Usage

The action only exposes output containing the diff, so to effectively consume its output it is highly recommended to use other Github Actions to customize your experience.

Create Pull Request comment on dependency change

See it in action!
Create .github/workflows/dependency_diff.yml

name: Generate dependency diff

on:
  pull_request:

jobs:
  generate-diff:
    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v4

    - uses: actions/setup-java@v4
      with:
        distribution: 'temurin'
        java-version: 21
        
    - uses: gradle/actions/setup-gradle@v4

    - id: dependency-diff
      name: Generate dependency diff
      uses: usefulness/dependency-tree-diff-action@v2

    - uses: peter-evans/find-comment@v3
      id: find_comment
      with:
        issue-number: ${{ github.event.pull_request.number }}
        body-includes: Dependency diff

    - uses: peter-evans/create-or-update-comment@v4
      if: ${{ steps.dependency-diff.outputs.text-diff != null || steps.find_comment.outputs.comment-id != null }}
      with:
        body: |
          Dependency diff (customize your message here): 
            ```diff
            ${{ steps.dependency-diff.outputs.text-diff }}
            ```
        edit-mode: replace
        comment-id: ${{ steps.find_comment.outputs.comment-id }}
        issue-number: ${{ github.event.pull_request.number }}
        token: ${{ secrets.GITHUB_TOKEN }}

Customization

All inputs with their default values:

    - id: dependency-diff
      uses: usefulness/dependency-tree-diff-action@v2
      with:
        configuration: 'releaseRuntimeClasspath'
        project: 'app'
        build-root-directory: .
        additional-gradle-arguments: ''
        lib-version: 'latest'
  • configuration - Selected Gradle configuration, passed to ./gradlew dependencies --configuration xxx. Should correspond to output artifact that is considered output of the project.
  • project - Gradle project which dependency tree diff should be generated for. Dependency diff for root projects can be configured using project: ''. For Android projects use the one that has com.android.application plugin applied.
  • build-root-directory - Relative path to folder containing gradle wrapper. Example usage: build-root-directory: library
  • additional-gradle-arguments - Additional arguments passed to internal Gradle invocation. Example: "--no-configuration-cache" or "--stacktrace"
  • lib-version - Overrides dependency-tree-diff dependency version. Example: "1.2.1", "1.1.0", "latest"

🙏 Praise 🙏 be 🙏 to 🙏 Wharton 🙏