You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.8 KiB
YAML

name: Check Markdown links
on:
- push
- pull_request
jobs:
github:
runs-on: ubuntu-latest
container: ubuntu:latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v3
- run: |
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null
apt update
apt-get install -y gh jq ca-certificates curl
- run: >
grep '](https://github.com' README.md [a-z]*.md |
sed -re 's/^.*\]\(https:\/\/github.com\/([^\)]*).*/\1/' |
xargs -I {} bash -c "echo -n \"{}: \"; gh api repos/{} 2>/dev/null | jq -r '(.archived|tostring)'" | tee archived_check_list.txt
env:
GH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- run: >
grep ": true" archived_check_list.txt || true
- run: >
test $(grep ': true' archived_check_list.txt | wc -l) -le 0
- run: >
grep ": null" archived_check_list.txt || true
- run: >
test $(grep ': null' archived_check_list.txt | wc -l) -le 0
# curl 429 too many requests
# - run: >
# grep '](https://github.com' README.md [a-z]*.md |
# sed -re 's/^.*\]\(https:\/\/github.com\/([^\)]*).*/\1/' |
# xargs -P100 -I {} bash -c "curl -fsSL -o /dev/null https://github.com/{} || echo {} >> removed_check_list.txt"
# env:
# GH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
# - run: >
# cat removed_check_list.txt
# - run: >
# test $(cat removed_check_list.txt | wc -l) -le 0