Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controllo automatico dei link rotti #24

Open
wants to merge 127 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 122 commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
5aeff5b
Create check-readme-links.yml
saver999 Oct 13, 2023
0a350a1
Update check-readme-links.yml
saver999 Oct 13, 2023
8268e14
Ho aggiunto uno script in che controlla i link nel file README.md del…
saver999 Oct 13, 2023
f340d02
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 13, 2023
26b64e2
Test
saver999 Oct 13, 2023
01a53a8
Update check-readme-links.yml
saver999 Oct 13, 2023
f945608
Test
saver999 Oct 13, 2023
5fc3dfe
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 13, 2023
f76ca30
Test
saver999 Oct 13, 2023
f4abbe3
Update check-readme-links.yml
saver999 Oct 13, 2023
d783e9a
Test
saver999 Oct 13, 2023
7bac23c
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 13, 2023
bac2647
Update check-readme-links.yml
saver999 Oct 13, 2023
ebed09b
Test
saver999 Oct 13, 2023
5c36ff2
Test
saver999 Oct 13, 2023
6a34b0a
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 13, 2023
5442276
Update check-readme-links.yml
saver999 Oct 13, 2023
9733074
Test
saver999 Oct 13, 2023
67be6cf
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 13, 2023
23e8dd4
Update check-readme-links.yml
saver999 Oct 14, 2023
1f127e8
Test
saver999 Oct 14, 2023
e4b2cff
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 14, 2023
41e238e
Test
saver999 Oct 14, 2023
e7012e1
Test
saver999 Oct 14, 2023
dfef35d
Test
saver999 Oct 14, 2023
d8f82b3
Update check-readme-links.yml
saver999 Oct 14, 2023
03e6535
Test
saver999 Oct 14, 2023
282d975
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 14, 2023
64edb4a
Update check-readme-links.yml
saver999 Oct 14, 2023
ee5120c
Test
saver999 Oct 14, 2023
d6ed1bb
Update check-readme-links.yml
saver999 Oct 14, 2023
75eb107
Test
saver999 Oct 14, 2023
fdc75ac
Update check-readme-links.yml
saver999 Oct 14, 2023
4e05303
Test
saver999 Oct 14, 2023
9474867
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 14, 2023
98ef336
Create ISSUE_TEMPLATE.md
saver999 Oct 14, 2023
1eb9dd2
Update check-readme-links.yml
saver999 Oct 14, 2023
7791d2f
Test
saver999 Oct 14, 2023
707db2b
Test
saver999 Oct 14, 2023
0e434c4
Update check-readme-links.yml
saver999 Oct 14, 2023
5220df5
Test
saver999 Oct 14, 2023
30bea08
Test
saver999 Oct 14, 2023
53a13e3
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 14, 2023
2029d35
Update ISSUE_TEMPLATE.md
saver999 Oct 14, 2023
314ea44
Test
saver999 Oct 14, 2023
54ceb20
Update check-readme-links.yml
saver999 Oct 14, 2023
1abe6f6
Test
saver999 Oct 14, 2023
731d244
Update check-readme-links.yml
saver999 Oct 14, 2023
d49d3c7
Test
saver999 Oct 14, 2023
e245a0e
Update check-readme-links.yml
saver999 Oct 14, 2023
ec1b95f
Test
saver999 Oct 14, 2023
6fcc9c4
Update check-readme-links.yml
saver999 Oct 14, 2023
14ea678
Test
saver999 Oct 14, 2023
62e1e9f
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 14, 2023
14cc654
Update check-readme-links.yml
saver999 Oct 14, 2023
07d9d02
Test
saver999 Oct 14, 2023
0de091f
Update check-readme-links.yml
saver999 Oct 14, 2023
205f9cf
Test
saver999 Oct 14, 2023
d4200d9
Update check-readme-links.yml
saver999 Oct 14, 2023
e4aa2d0
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 14, 2023
5401fd1
Test
saver999 Oct 14, 2023
1115d86
Update check-readme-links.yml
saver999 Oct 14, 2023
7022bb9
Test
saver999 Oct 14, 2023
cc386ae
Update check-readme-links.yml
saver999 Oct 14, 2023
b1cdcdd
Test
saver999 Oct 14, 2023
a7999a4
Update check-readme-links.yml
saver999 Oct 14, 2023
fb04dd5
Test
saver999 Oct 14, 2023
5d28a8b
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 14, 2023
84d1850
Update check-readme-links.yml
saver999 Oct 14, 2023
b4e3d22
Test
saver999 Oct 14, 2023
2d86873
Update check-readme-links.yml
saver999 Oct 14, 2023
a3e07ef
Update check-readme-links.yml
saver999 Oct 14, 2023
a606f46
Update check-readme-links.yml
saver999 Oct 14, 2023
ab940aa
Test
saver999 Oct 14, 2023
6614e53
Update check-readme-links.yml
saver999 Oct 14, 2023
69a3f8a
Test
saver999 Oct 14, 2023
bead17c
Update check-readme-links.yml
saver999 Oct 14, 2023
7f7e333
Test
saver999 Oct 14, 2023
5d61bd2
Update check-readme-links.yml
saver999 Oct 14, 2023
7d93fbc
Test
saver999 Oct 14, 2023
e342857
Update check-readme-links.yml
saver999 Oct 14, 2023
91b4ffa
Update check-readme-links.yml
saver999 Oct 14, 2023
58e85e1
Update check-readme-links.yml
saver999 Oct 14, 2023
9a22df7
Update check-readme-links.yml
saver999 Oct 14, 2023
6baf3ba
Update check-readme-links.yml
saver999 Oct 14, 2023
98ef475
Update check-readme-links.yml
saver999 Oct 14, 2023
c4604db
Update check-readme-links.yml
saver999 Oct 14, 2023
822618a
Update check-readme-links.yml
saver999 Oct 14, 2023
c385958
Update check-readme-links.yml
saver999 Oct 14, 2023
de566d2
Delete .github/workflows/check-readme-links.yml
saver999 Oct 14, 2023
82b8079
Create controllo_link
saver999 Oct 14, 2023
1442fbe
Rename controllo_link to controllo_link.yml
saver999 Oct 14, 2023
4702881
Update controllo_link.yml
saver999 Oct 14, 2023
4bbabb7
Update controllo_link.yml
saver999 Oct 14, 2023
826c4d4
Update ISSUE_TEMPLATE.md
saver999 Oct 14, 2023
867134f
Update controllo_link.yml
saver999 Oct 14, 2023
209f7c3
Update ISSUE_TEMPLATE.md
saver999 Oct 14, 2023
225092a
Update controllo_link.yml
saver999 Oct 14, 2023
243077d
Update controllo_link.yml
saver999 Oct 14, 2023
82a1fdc
Update controllo_link.yml
saver999 Oct 14, 2023
12ce878
Update controllo_link.yml
saver999 Oct 14, 2023
e2b32b1
Update controllo_link.yml
saver999 Oct 14, 2023
0a05ee4
Update ISSUE_TEMPLATE.md
saver999 Oct 14, 2023
df86408
Update controllo_link.yml
saver999 Oct 14, 2023
12a3f1c
Update controllo_link.yml
saver999 Oct 14, 2023
230ca88
Update controllo_link.yml
saver999 Oct 14, 2023
272b26f
Update controllo_link.yml
saver999 Oct 14, 2023
5bcae5a
Update controllo_link.yml
saver999 Oct 14, 2023
04265d5
Update controllo_link.yml
saver999 Oct 14, 2023
52aeed9
Update controllo_link.yml
saver999 Oct 14, 2023
06ea065
Update controllo_link.yml
saver999 Oct 14, 2023
1fe7743
Test
saver999 Oct 14, 2023
2252d54
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 14, 2023
79de76a
Update controllo_link.yml
saver999 Oct 14, 2023
4438644
Test
saver999 Oct 14, 2023
5d92832
Update controllo_link.yml
saver999 Oct 14, 2023
879d75a
Update ISSUE_TEMPLATE.md
saver999 Oct 14, 2023
b1e9511
Update ISSUE_TEMPLATE.md
saver999 Oct 14, 2023
735225e
Reset
saver999 Oct 14, 2023
f16eed3
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 14, 2023
bb953db
Update controllo_link.yml
saver999 Oct 14, 2023
3c3055e
Update controllo_link.yml
saver999 Oct 14, 2023
cc23f7f
Update .github/workflows/ISSUE_TEMPLATE.md
saver999 Oct 16, 2023
dcdb863
Update .github/workflows/controllo_link.yml
saver999 Oct 16, 2023
38d4a6a
Changed the label, translate everything into English
saver999 Oct 16, 2023
fdc02bc
Merge remote-tracking branch 'origin/Controllo_automatico_dei_link_ro…
saver999 Oct 16, 2023
8729562
Changed the label
saver999 Oct 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: Siti che contengono link rotti
saver999 marked this conversation as resolved.
Show resolved Hide resolved
labels: housekeeping
saver999 marked this conversation as resolved.
Show resolved Hide resolved
assignees: ''
---

Elenco dei link problematici:
{% for link in env.BROKEN_LINKS.split(',') %}
- {{ link }}
{% endfor %}



63 changes: 63 additions & 0 deletions .github/workflows/controllo_link.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Broken Links Checker
on:
push:
branches:
- master
schedule:
- cron: '0 0 1 * *'
env:
ISSUE_TEMPLATE: ".github/workflows/ISSUE_TEMPLATE.md"

contents: read
issues: write

jobs:
check:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Get links from README.md
id: get-links
run: |
LINKS=$(grep -oP '\[.*?\]\((http[s]?://[^)]*)\)' README.md | sed -E 's/\[.*\]\(([^)]+)\)/\1/' | paste -sd "," -)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
LINKS=$(grep -oP '\[.*?\]\((http[s]?://[^)]*)\)' README.md | sed -E 's/\[.*\]\(([^)]+)\)/\1/' | paste -sd "," -)
LINKS=$(grep -oP '\[.*?\]\((http[s]?://[^)]*)\)' README.md | sed -E 's/\[.*\]\(([^)]+)\)/\1/' | paste -sd ,)

Can't we use just sed here?

echo "WEBSITE_URL=$LINKS" >> $GITHUB_ENV

- name: Run Broken Links Checker
run: |
# Dividi la lista di link in un array separato da virgola
saver999 marked this conversation as resolved.
Show resolved Hide resolved
IFS=',' read -ra LINKS <<< "$WEBSITE_URL"
BROKEN_LINKS=""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can use a bash array here (see below)


# Scansiona i link e verifica se sono raggiungibili
for link in "${LINKS[@]}"; do
if [[ $link =~ ^(http|https):// ]]; then
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this guaranteed by the regexps populating $LINKS?

# Se il link inizia con "http://" o "https://", verifica se è raggiungibile
if ! curl -IsSk "$link" > /dev/null; then
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want -k here?

Also we should probably keep the output, so we can check what's the specific problem in the action logs, if we want more details.

BROKEN_LINKS="$BROKEN_LINKS,$link"
fi
fi
done

# Rimuovi la virgola iniziale se ci sono link non raggiungibili
if [ -n "$BROKEN_LINKS" ]; then
BROKEN_LINKS=$(echo "$BROKEN_LINKS" | cut -c 2-)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using a bash array will make this superflous.

echo "BROKEN_LINKS=$BROKEN_LINKS" >> $GITHUB_ENV
echo "Broken links found: $BROKEN_LINKS"
echo "Broken links found, failing the workflow"
saver999 marked this conversation as resolved.
Show resolved Hide resolved
exit 1
else
echo "No broken links found"
fi


saver999 marked this conversation as resolved.
Show resolved Hide resolved

- uses: actions/checkout@v3
if: failure()
Comment on lines +53 to +54
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do this because we need a single file (.github/workflows/ISSUE_TEMPLATE.md) and doing so we get the whole history and the rest of the repo. Not a big deal, but maybe we can optimize that, also considering it interferes with the if: failure() logic (see below).


- uses: JasonEtco/create-an-issue@v2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this action create a new issue everytime? Because if thats the case, we want to create a new issue if there's no issue opened yet, but update the issue if there is already one.

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
filename: ${{ env.ISSUE_TEMPLATE }}
if: failure()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this will run when the link checker job is successful, in case actions/checkout fails.