diff --git a/.github/workflows/fetch-licenses.yaml b/.github/workflows/fetch-licenses.yaml new file mode 100644 index 0000000..1a1d3f6 --- /dev/null +++ b/.github/workflows/fetch-licenses.yaml @@ -0,0 +1,58 @@ +name: Fetch Licenses + +on: + workflow_dispatch: + inputs: + force_run: + description: 'Force run license extraction' + required: false + default: 'false' + schedule: + - cron: '5 4 * * *' # Runs at 0405 UTC (0605 CET, 0005 ET, 2105 PT) + +jobs: + fetch-licenses: + runs-on: ubuntu-latest + + steps: + - name: Setup Git + run: | + git config --global user.name "GitHub Actions" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + + - name: Checkout this repository's auto-update-licenses branch + uses: actions/checkout@v2 + + - name: Checkout official SPDX Repository + uses: actions/checkout@v2 + with: + repository: spdx/license-list-data + path: official-spdx-licenses # creates a tmp dir to hold the SPDX licenses from the official repo + + - name: Copy Licenses + run: | + cp official-spdx-licenses/json/licenses.json cmd/licenses.json + cp official-spdx-licenses/json/exceptions.json cmd/exceptions.json + + - name: Check for changes + run: | + git diff --exit-code -- cmd/licenses.json cmd/exceptions.json || exit 0 + + - name: Run license extraction + run: | + cd cmd + echo "Current branch: $(git branch)" + go run . extract -l -e + cd .. + git log --oneline -n 5 + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: Add updated license files + branch: auto-update-licenses + base: main + title: "Update SPDX license files" + body: "The files in this PR are auto-generated by the [fetch-licenses](./.git/workflows/fetch-license.yaml) workflow when it runs the `cmd/extract` script. It updates SPDX licenses based on the latest released set in the [spdx/license-list-data](https://github.com/spdx/license-list-data) repository maintained by [SPDX](https://spdx.org/licenses/). \n\nTODO: [spdxexp/spdxlicenses/license_ranges.go](./spdxexp/spdxlicenses/license_range.go) has to be updated manually." + labels: 'auto-update,licenses' diff --git a/cmd/main.go b/cmd/main.go index c3b1156..31731ca 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -53,6 +53,7 @@ func main() { os.Exit(1) } fmt.Println("Done!") + fmt.Println("---------------------------") } default: writeHelpMessage()