diff --git a/.github/workflows/fetch-licenses.yaml b/.github/workflows/fetch-licenses.yaml new file mode 100644 index 0000000..3217d32 --- /dev/null +++ b/.github/workflows/fetch-licenses.yaml @@ -0,0 +1,60 @@ +name: Fetch Licenses + +on: + workflow_dispatch: + inputs: + force_run: + description: 'Force run license extraction' + required: false + default: 'false' + schedule: + - cron: '0 0 * * *' # Runs at midnight ET + push: + branches: [elr/update-licenses] + +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. 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/)." + labels: 'auto-update,licenses'