53 lines
1.8 KiB
YAML
53 lines
1.8 KiB
YAML
name: Check for IANA special-purpose address registry updates
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "20 16 * * *"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
check-iana-registries:
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
|
|
steps:
|
|
- name: Checkout iana/data from main branch
|
|
uses: actions/checkout@v4
|
|
with:
|
|
sparse-checkout: iana/data
|
|
|
|
# If the branch already exists, this will fail, which will remind us about
|
|
# the outstanding PR.
|
|
- name: Create an iana-registries-gha branch
|
|
run: |
|
|
git checkout --track origin/main -b iana-registries-gha
|
|
|
|
- name: Retrieve the IANA special-purpose address registries
|
|
run: |
|
|
IANA_IPV4="https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry-1.csv"
|
|
IANA_IPV6="https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry-1.csv"
|
|
|
|
REPO_IPV4="iana/data/iana-ipv4-special-registry-1.csv"
|
|
REPO_IPV6="iana/data/iana-ipv6-special-registry-1.csv"
|
|
|
|
curl --fail --location --show-error --silent --output "${REPO_IPV4}" "${IANA_IPV4}"
|
|
curl --fail --location --show-error --silent --output "${REPO_IPV6}" "${IANA_IPV6}"
|
|
|
|
- name: Create a commit and pull request
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
shell:
|
|
bash
|
|
# `git diff --exit-code` returns an error code if there are any changes.
|
|
run: |
|
|
if ! git diff --exit-code; then
|
|
git add iana/data/
|
|
git config user.name "Irwin the IANA Bot"
|
|
git commit \
|
|
--message "Update IANA special-purpose address registries"
|
|
git push origin HEAD
|
|
gh pr create --fill
|
|
fi
|