From 4931651f294cb300c24d423fb56e3f752788206c Mon Sep 17 00:00:00 2001 From: paspo Date: Sat, 10 Aug 2024 15:37:26 +0000 Subject: [PATCH] pull request linting (#191) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit con questa roba facciamo dei controlli su ogni PR: - vengono controllati i files modificati e se sono nella directory `content` e hanno estensione `.md` vengono passati con `markdownlint` (c'è una config apposita e per ora ho disattivato solo il controllo della lunghezza massima della riga) e se il check fallisce, la PR non è accettabile - vengono controllati i files modificati e se contengono i caratteri "non permessi" che sono indicati in una lista, la PR non è accettabile so che forse è un pò "too much", quindi ce la vediamo nei commenti Reviewed-on: https://git.libreschool.org/BgLUG/bglug.it/pulls/191 Co-authored-by: paspo Co-committed-by: paspo --- .gitea/workflows/markdownlint_pr.sh | 20 +++++++++++++++ .gitea/workflows/unicode_check.yaml | 25 +++++++++++++++++++ .../workflows/unwanted_unicode_patterns.grep | 6 +++++ .gitea/workflows/unwanted_unicode_pr.sh | 23 +++++++++++++++++ .markdownlint.yaml | 4 +++ 5 files changed, 78 insertions(+) create mode 100644 .gitea/workflows/markdownlint_pr.sh create mode 100644 .gitea/workflows/unicode_check.yaml create mode 100644 .gitea/workflows/unwanted_unicode_patterns.grep create mode 100644 .gitea/workflows/unwanted_unicode_pr.sh create mode 100644 .markdownlint.yaml diff --git a/.gitea/workflows/markdownlint_pr.sh b/.gitea/workflows/markdownlint_pr.sh new file mode 100644 index 0000000..62a68de --- /dev/null +++ b/.gitea/workflows/markdownlint_pr.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +echo +echo "Initial commit: $1" +echo "Final commit: $2" +echo + +# recupera ogni file modificato in questa PR (tra le 2 commit) +# considera solo i file che terminano con .md +# ogni file viene controllato con markdownlint, con la config comune + +EXIT=0 + +while read -r LINE; do + echo + echo "testing file: $LINE" + markdownlint --config .markdownlint.yaml "$LINE" || EXIT=1 +done < <(git diff --name-only "$1" "$2" content/ | grep \.md$) + +exit ${EXIT} diff --git a/.gitea/workflows/unicode_check.yaml b/.gitea/workflows/unicode_check.yaml new file mode 100644 index 0000000..2c10314 --- /dev/null +++ b/.gitea/workflows/unicode_check.yaml @@ -0,0 +1,25 @@ +--- +name: Linting markdown on PR + +on: + pull_request: + +jobs: + unicode-check: + runs-on: ubuntu-latest + container: + image: catthehacker/ubuntu:act-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: run markdownlint on changed files + uses: docker://ghcr.io/igorshubovych/markdownlint-cli + with: + entrypoint: /bin/sh + args: -c 'apk -U add git bash ; bash .gitea/workflows/markdownlint_pr.sh ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}' + + - name: check for unwanted unicode runes + run: | + bash .gitea/workflows/unwanted_unicode_pr.sh ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} diff --git a/.gitea/workflows/unwanted_unicode_patterns.grep b/.gitea/workflows/unwanted_unicode_patterns.grep new file mode 100644 index 0000000..2447505 --- /dev/null +++ b/.gitea/workflows/unwanted_unicode_patterns.grep @@ -0,0 +1,6 @@ +— +‘ +’ +“ +” +… diff --git a/.gitea/workflows/unwanted_unicode_pr.sh b/.gitea/workflows/unwanted_unicode_pr.sh new file mode 100644 index 0000000..e00ee2e --- /dev/null +++ b/.gitea/workflows/unwanted_unicode_pr.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +echo +echo "Initial commit: $1" +echo "Final commit: $2" +echo + +# recupera ogni file modificato in questa PR (tra le 2 commit) +# considera solo i file che terminano con .md +# ogni file viene controllato con grep, con i pattern definiti +# nel file di configurazione + +EXIT=0 + +while read -r LINE; do + if [ -r "$LINE" ] ; then + echo + echo "testing file: $LINE" + grep --color -f .gitea/workflows/unwanted_unicode_patterns.grep "$LINE" && EXIT=1 + fi +done < <(git diff --name-only "$1" "$2" content/ | grep \.md$) + +exit ${EXIT} diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..c0f2752 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,4 @@ +# vedi: https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml + +default: true +MD013: false