GitHub Action
Sbt Dependency Submission
A Github action to submit the dependency graph of an sbt build to the Github Dependency submission API.
Before running the workflow, make sure that the Dependency Graph
feature is enabled in the settings of your repository (Settings
> Code Security and Analysis
).
The graph of your sbt build will be visible in the Dependency Graph page of the Insights
tab.
Enable Dependabot in your project settings to receive alerts for vulnerabilities that affect your sbt project.
Any sbt project whose sbt version is equal to or greater than 1.3.
Create a Github Action file under .github/workflows
containing the following definition.
# .github/workflows/dependency-graph.yml
name: Update Dependency Graph
on:
push:
branches:
- main # default branch of the project
jobs:
dependency-graph:
name: Update Dependency Graph
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: scalacenter/sbt-dependency-submission@v2
The relative path of the working directory of your sbt build.
Default value is .
A list of space-separated names of modules to ignore. The action will not resolve nor submit the dependencies of these modules. The name of a module contains the name of the project and its binary version.
Example: foo_2.13 bar_2.13
A list of space-separated names of configurations to ignore. The action will not submit the dependencies of these configurations.
Example of configurations are compile
, test
, scala-tool
, scala-doc-tool
.
GitHub Personal Access Token (PAT). Defaults to PAT provided by Action runner.
Example: ${{ secrets.USER_TOKEN }}
In this example the snapshot will not contain the graphs of foo_2.13
and bar_3
.
## in .github/workflows/dependency-graph.md
...
steps:
- uses: actions/checkout@v3
- uses: scalacenter/sbt-dependency-submission@v2
with:
working-directory: ./my-scala-project
modules-ignore: foo_2.13 bar_3
In this example the snapshot will not contain the dependencies of the scala-doc-tool configuration.
## in .github/workflows/dependency-graph.md
...
steps:
- uses: actions/checkout@v3
- uses: scalacenter/sbt-dependency-submission@v2
with:
working-directory: ./my-scala-project
configs-ignore: scala-doc-tool
This error happens when the Dependency Graph
feature is disabled.
You can enable it in Settings
> Code Security and Analysis
.
This error happens when the workflow does not have the right permission on the repository.
First you should check that the workflow is not triggered on PR from forked repositories. It should be triggered by push to the default branch.
## in .github/workflows/dependency-graph.md
on:
push:
branches:
- main # default branch of the project
...
Then check that you enabled the read and write permissions for all workflows, at the bottom of the Settings > Actions > General
page.
If you do not want to enable this you can add the write permission on the dependency-graph
workflow only:
## in .github/workflows/dependency-graph.md
...
permissions:
contents: write # this permission is needed to submit the dependency graph
...
This error may happen when you try to access artifacts from private GitHub packages with the default GitHub token. You need to pass personal access token which is allowed to access private packages in the token
input.