Skip to content

Fetch Licenses

Fetch Licenses #49

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@v4
- name: Checkout official SPDX Repository
uses: actions/checkout@v4
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'