From 41e23540fd9f868e1c7358cbf8b7aecc0cfb564d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Dutheillet-Lamonth=C3=A9zie?= Date: Tue, 17 Sep 2024 17:10:18 +0200 Subject: [PATCH 01/21] #1: add script to list repositories and initial workflow for repository checks --- .github/workflows/check-repositories.yml | 22 ++++++++++++++++++++++ .gitignore | 3 ++- ci/check_repositories.sh | 24 ++++++++++++++++++++++++ ci/check_workflow_usage.py | 12 ++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/check-repositories.yml create mode 100644 ci/check_repositories.sh create mode 100644 ci/check_workflow_usage.py diff --git a/.github/workflows/check-repositories.yml b/.github/workflows/check-repositories.yml new file mode 100644 index 00000000..c34dd49a --- /dev/null +++ b/.github/workflows/check-repositories.yml @@ -0,0 +1,22 @@ +name: DARMA repositories check + +on: + # schedule: + # - cron: '*/30 * * * *' + push: + branches: + - 1-validate-required-workflows-usage-across-repositories + +jobs: + check_repositories: + name: Check repositories + runs-on: ubuntu-latest + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v4 + + - name: Listing DARMA repositories + run: bash ./ci/check_repositories.sh + + \ No newline at end of file diff --git a/.gitignore b/.gitignore index ed8ebf58..c2e544e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -__pycache__ \ No newline at end of file +__pycache__ +ci/repositories.json diff --git a/ci/check_repositories.sh b/ci/check_repositories.sh new file mode 100644 index 00000000..91a4df9c --- /dev/null +++ b/ci/check_repositories.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory +PARENT_DIR="$(dirname "$CURRENT_DIR")" + +# Clean +rm -rf $CURRENT_DIR/repositories.json + +echo "> Listing repositories" +gh repo list DARMA-tasking --json name --json defaultBranchRef >> $CURRENT_DIR/repositories.json + +python $CURRENT_DIR/check_workflow_usage.py + +# DARMA_REPOSITORIES=$(gh repo list DARMA-tasking --json name --jq '.[].name') +# DARMA_REPOSITORIES=(${DARMA_REPOSITORIES//\\n/ }) +# readarray -td '' DARMA_REPOSITORIES < <(printf '%s\0' "${DARMA_REPOSITORIES[@]}" | sort -z) + +# for e in "${DARMA_REPOSITORIES[@]}"; do +# printf "%s\n" "${e}" + +# echo "Listing active workflows for $e" +# gh workflow list --repo DARMA-Tasking/$e +# done + diff --git a/ci/check_workflow_usage.py b/ci/check_workflow_usage.py new file mode 100644 index 00000000..9a25f602 --- /dev/null +++ b/ci/check_workflow_usage.py @@ -0,0 +1,12 @@ +import json +import os + +with open(os.path.dirname(__file__) + "/repositories.json", 'r', encoding="utf-8") as json_file: + # parse json_data + repositories = json.loads(json_file.read()) + +repositories = sorted(repositories, key=lambda repo: repo['name']) +for item in repositories: + print(f"Repository: {item['name']}") + + # TODO \ No newline at end of file From 49253d31339b25a75ecf3ec8b018a1e99d8e078e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Dutheillet-Lamonth=C3=A9zie?= Date: Wed, 18 Sep 2024 14:13:41 +0200 Subject: [PATCH 02/21] #1: update script to ckeck repositories have defined the required checks --- ci/check_repositories.sh | 60 +++++++++++++++++++++++++++++--------- ci/check_workflow_usage.py | 12 -------- 2 files changed, 47 insertions(+), 25 deletions(-) delete mode 100644 ci/check_workflow_usage.py diff --git a/ci/check_repositories.sh b/ci/check_repositories.sh index 91a4df9c..c76c8e4c 100644 --- a/ci/check_repositories.sh +++ b/ci/check_repositories.sh @@ -2,23 +2,57 @@ CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory PARENT_DIR="$(dirname "$CURRENT_DIR")" - +WORKING_DIR="$PARENT_DIR/output" +ORG=DARMA-tasking # Clean -rm -rf $CURRENT_DIR/repositories.json +rm -rf $WORKING_DIR +mkdir -p $WORKING_DIR + +DARMA_REPOSITORIES=$(gh repo list $ORG --json name --jq '.[].name') +DARMA_REPOSITORIES=(${DARMA_REPOSITORIES//\\n/ }) +readarray -td '' DARMA_REPOSITORIES < <(printf '%s\0' "${DARMA_REPOSITORIES[@]}" | sort -z) -echo "> Listing repositories" -gh repo list DARMA-tasking --json name --json defaultBranchRef >> $CURRENT_DIR/repositories.json +EXCLUDE_REPOS=(\ +DARMA-tasking.github.io +) -python $CURRENT_DIR/check_workflow_usage.py +CHECKS_REPOS=( \ +find-unsigned-commits \ +check-commit-format \ +find-trailing-whitespace \ +check-pr-fixes-issue \ +) -# DARMA_REPOSITORIES=$(gh repo list DARMA-tasking --json name --jq '.[].name') -# DARMA_REPOSITORIES=(${DARMA_REPOSITORIES//\\n/ }) -# readarray -td '' DARMA_REPOSITORIES < <(printf '%s\0' "${DARMA_REPOSITORIES[@]}" | sort -z) +EXPECTED_WORKFLOWS=( \ +find-unsigned-commits \ +check-commit-format \ +find-trailing-whitespace \ +check-pr-fixes-issue \ +action-git-diff-check \ +) -# for e in "${DARMA_REPOSITORIES[@]}"; do -# printf "%s\n" "${e}" +for e in "${DARMA_REPOSITORIES[@]}" +do + printf "%s\n" "${e}" -# echo "Listing active workflows for $e" -# gh workflow list --repo DARMA-Tasking/$e -# done + if [[ " ${CHECKS_REPOS[*]} " =~ [[:space:]]${e}[[:space:]] ]]; then + echo "$ORG/$e > Ignoring (checks repository)"; + echo "----------------------------------"; + elif [[ " ${EXCLUDE_REPOS[*]} " =~ [[:space:]]${e}[[:space:]] ]]; then + echo "$ORG/$e > Ignoring (excluded)"; + echo "----------------------------------"; + else + echo "$ORG/$e > Cloning repository..."; + git clone https://github.com/$ORG/$e $WORKING_DIR/$e >/dev/null 2>&1 + for w in "${EXPECTED_WORKFLOWS[@]}" + do + if [ ! -f "$WORKING_DIR/$e/.github/workflows/$w.yml" ]; then + echo "[error] Missing workflow file '$w.yml' at $WORKING_DIR/$e/.github/workflows/$w.yml" + else + echo "[ok] workflow file '$w.yml' OK" + fi + done + echo "----------------------------------"; + fi +done diff --git a/ci/check_workflow_usage.py b/ci/check_workflow_usage.py deleted file mode 100644 index 9a25f602..00000000 --- a/ci/check_workflow_usage.py +++ /dev/null @@ -1,12 +0,0 @@ -import json -import os - -with open(os.path.dirname(__file__) + "/repositories.json", 'r', encoding="utf-8") as json_file: - # parse json_data - repositories = json.loads(json_file.read()) - -repositories = sorted(repositories, key=lambda repo: repo['name']) -for item in repositories: - print(f"Repository: {item['name']}") - - # TODO \ No newline at end of file From 994ea1679fe58c4f4c6e1faaac6848d46d8c1925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Dutheillet-Lamonth=C3=A9zie?= Date: Wed, 18 Sep 2024 14:14:04 +0200 Subject: [PATCH 03/21] #1: introduce ci problem matcher for shell output --- .github/workflows/check-repositories.yml | 2 +- .github/workflows/matchers/shell.json | 31 ++++++++++++++++++++++++ ci/check_repositories.sh | 10 +++++--- 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/matchers/shell.json diff --git a/.github/workflows/check-repositories.yml b/.github/workflows/check-repositories.yml index c34dd49a..5727ccec 100644 --- a/.github/workflows/check-repositories.yml +++ b/.github/workflows/check-repositories.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Listing DARMA repositories + - name: Check repositories run: bash ./ci/check_repositories.sh \ No newline at end of file diff --git a/.github/workflows/matchers/shell.json b/.github/workflows/matchers/shell.json new file mode 100644 index 00000000..c52c79e0 --- /dev/null +++ b/.github/workflows/matchers/shell.json @@ -0,0 +1,31 @@ +{ + "problemMatcher": [ + { + "owner": "shell-error", + "severity": "error", + "pattern": [ + { + "regexp": "^[error]:\\s(.+)$" + } + ] + }, + { + "owner": "shell-warning", + "severity": "warning", + "pattern": [ + { + "regexp": "^[warning]:\\s(.+)$" + } + ] + }, + { + "owner": "shell-notice", + "severity": "notice", + "pattern": [ + { + "regexp": "^[notice]:\\s(.+)$" + } + ] + } + ] + } \ No newline at end of file diff --git a/ci/check_repositories.sh b/ci/check_repositories.sh index c76c8e4c..f492b524 100644 --- a/ci/check_repositories.sh +++ b/ci/check_repositories.sh @@ -37,11 +37,12 @@ do if [[ " ${CHECKS_REPOS[*]} " =~ [[:space:]]${e}[[:space:]] ]]; then echo "$ORG/$e > Ignoring (checks repository)"; - echo "----------------------------------"; + echo "--------------------------------------------------"; elif [[ " ${EXCLUDE_REPOS[*]} " =~ [[:space:]]${e}[[:space:]] ]]; then echo "$ORG/$e > Ignoring (excluded)"; - echo "----------------------------------"; + echo "--------------------------------------------------"; else + TSSTART=$(date +%s) echo "$ORG/$e > Cloning repository..."; git clone https://github.com/$ORG/$e $WORKING_DIR/$e >/dev/null 2>&1 for w in "${EXPECTED_WORKFLOWS[@]}" @@ -52,7 +53,10 @@ do echo "[ok] workflow file '$w.yml' OK" fi done - echo "----------------------------------"; + TSEND=$(date +%s) + TSDURATION=$(( $TSEND - $TSSTART )) + echo "$WORKING_DIR/$e has been processed in $TSDURATION seconds." + echo "--------------------------------------------------"; fi done From f5569a837d33a7e49235dcf722cb2482074e8392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Dutheillet-Lamonth=C3=A9zie?= Date: Wed, 18 Sep 2024 14:30:37 +0200 Subject: [PATCH 04/21] #1: update ci script --- ci/check_repositories.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/ci/check_repositories.sh b/ci/check_repositories.sh index f492b524..0e048868 100644 --- a/ci/check_repositories.sh +++ b/ci/check_repositories.sh @@ -4,6 +4,7 @@ CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory PARENT_DIR="$(dirname "$CURRENT_DIR")" WORKING_DIR="$PARENT_DIR/output" ORG=DARMA-tasking + # Clean rm -rf $WORKING_DIR mkdir -p $WORKING_DIR @@ -31,10 +32,9 @@ check-pr-fixes-issue \ action-git-diff-check \ ) +N_ERRORS=0 for e in "${DARMA_REPOSITORIES[@]}" -do - printf "%s\n" "${e}" - +do if [[ " ${CHECKS_REPOS[*]} " =~ [[:space:]]${e}[[:space:]] ]]; then echo "$ORG/$e > Ignoring (checks repository)"; echo "--------------------------------------------------"; @@ -42,6 +42,7 @@ do echo "$ORG/$e > Ignoring (excluded)"; echo "--------------------------------------------------"; else + N_REPO_ERRORS=0 TSSTART=$(date +%s) echo "$ORG/$e > Cloning repository..."; git clone https://github.com/$ORG/$e $WORKING_DIR/$e >/dev/null 2>&1 @@ -49,14 +50,26 @@ do do if [ ! -f "$WORKING_DIR/$e/.github/workflows/$w.yml" ]; then echo "[error] Missing workflow file '$w.yml' at $WORKING_DIR/$e/.github/workflows/$w.yml" + $((N_ERRORS++)) + $((N_REPO_ERRORS++)) else echo "[ok] workflow file '$w.yml' OK" fi done TSEND=$(date +%s) TSDURATION=$(( $TSEND - $TSSTART )) + if [[ $N_REPO_ERRORS -gt 0 ]] + then + echo "$WORKING_DIR/$e has $N_REPO_ERRORS errors." + else + echo "[success] repository checks OK." + fi echo "$WORKING_DIR/$e has been processed in $TSDURATION seconds." echo "--------------------------------------------------"; fi done +if [[ $N_ERRORS -gt 0 ]] +then + exit(1) +end From fc790b16fa89df82f5043811874546c2c0aa1a53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Dutheillet-Lamonth=C3=A9zie?= Date: Wed, 18 Sep 2024 15:31:27 +0200 Subject: [PATCH 05/21] #1: implementing dynamic ci matrix strategy --- .github/workflows/check-repositories.yml | 27 ++++++++- ci/check_repositories.sh | 75 ------------------------ ci/check_repository.sh | 52 ++++++++++++++++ ci/list_repositories.sh | 16 +++++ 4 files changed, 92 insertions(+), 78 deletions(-) delete mode 100644 ci/check_repositories.sh create mode 100644 ci/check_repository.sh create mode 100644 ci/list_repositories.sh diff --git a/.github/workflows/check-repositories.yml b/.github/workflows/check-repositories.yml index 5727ccec..06de406e 100644 --- a/.github/workflows/check-repositories.yml +++ b/.github/workflows/check-repositories.yml @@ -8,15 +8,36 @@ on: - 1-validate-required-workflows-usage-across-repositories jobs: - check_repositories: - name: Check repositories + list_repositories: + name: List repositories runs-on: ubuntu-latest env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 + + - name: List repositories + id: list-repositories + run: | + REPOSITORIES=$(bash ci/list_repositories.sh) + echo "repositories=$(echo $REPOSITORIES)" >> $GITHUB_OUTPUT + outputs: + repositories: ${{ steps.list-repositories.outputs.repositories }} + + check_repository: + name: Check repository (${{ matrix.repository.name }}) + runs-on: ubuntu-latest + needs: list_repositories + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + strategy: + matrix: + repository: ${{ fromJson(needs.list_repositories.outputs.repositories ) }} + steps: + - uses: actions/checkout@v4 - name: Check repositories - run: bash ./ci/check_repositories.sh + run: | + bash ./ci/check_repository.sh ${{ matrix.repository.name }} \ No newline at end of file diff --git a/ci/check_repositories.sh b/ci/check_repositories.sh deleted file mode 100644 index 0e048868..00000000 --- a/ci/check_repositories.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash - -CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory -PARENT_DIR="$(dirname "$CURRENT_DIR")" -WORKING_DIR="$PARENT_DIR/output" -ORG=DARMA-tasking - -# Clean -rm -rf $WORKING_DIR -mkdir -p $WORKING_DIR - -DARMA_REPOSITORIES=$(gh repo list $ORG --json name --jq '.[].name') -DARMA_REPOSITORIES=(${DARMA_REPOSITORIES//\\n/ }) -readarray -td '' DARMA_REPOSITORIES < <(printf '%s\0' "${DARMA_REPOSITORIES[@]}" | sort -z) - -EXCLUDE_REPOS=(\ -DARMA-tasking.github.io -) - -CHECKS_REPOS=( \ -find-unsigned-commits \ -check-commit-format \ -find-trailing-whitespace \ -check-pr-fixes-issue \ -) - -EXPECTED_WORKFLOWS=( \ -find-unsigned-commits \ -check-commit-format \ -find-trailing-whitespace \ -check-pr-fixes-issue \ -action-git-diff-check \ -) - -N_ERRORS=0 -for e in "${DARMA_REPOSITORIES[@]}" -do - if [[ " ${CHECKS_REPOS[*]} " =~ [[:space:]]${e}[[:space:]] ]]; then - echo "$ORG/$e > Ignoring (checks repository)"; - echo "--------------------------------------------------"; - elif [[ " ${EXCLUDE_REPOS[*]} " =~ [[:space:]]${e}[[:space:]] ]]; then - echo "$ORG/$e > Ignoring (excluded)"; - echo "--------------------------------------------------"; - else - N_REPO_ERRORS=0 - TSSTART=$(date +%s) - echo "$ORG/$e > Cloning repository..."; - git clone https://github.com/$ORG/$e $WORKING_DIR/$e >/dev/null 2>&1 - for w in "${EXPECTED_WORKFLOWS[@]}" - do - if [ ! -f "$WORKING_DIR/$e/.github/workflows/$w.yml" ]; then - echo "[error] Missing workflow file '$w.yml' at $WORKING_DIR/$e/.github/workflows/$w.yml" - $((N_ERRORS++)) - $((N_REPO_ERRORS++)) - else - echo "[ok] workflow file '$w.yml' OK" - fi - done - TSEND=$(date +%s) - TSDURATION=$(( $TSEND - $TSSTART )) - if [[ $N_REPO_ERRORS -gt 0 ]] - then - echo "$WORKING_DIR/$e has $N_REPO_ERRORS errors." - else - echo "[success] repository checks OK." - fi - echo "$WORKING_DIR/$e has been processed in $TSDURATION seconds." - echo "--------------------------------------------------"; - fi -done - -if [[ $N_ERRORS -gt 0 ]] -then - exit(1) -end diff --git a/ci/check_repository.sh b/ci/check_repository.sh new file mode 100644 index 00000000..d462358d --- /dev/null +++ b/ci/check_repository.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory +PARENT_DIR="$(dirname "$CURRENT_DIR")" +WORKING_DIR="$PARENT_DIR/output" +ORG=DARMA-tasking +REPOSITORY=$1 +EXPECTED_WORKFLOWS=( \ +find-unsigned-commits \ +check-commit-format \ +find-trailing-whitespace \ +check-pr-fixes-issue \ +action-git-diff-check \ +) + +# Clean +rm -rf $WORKING_DIR +mkdir -p $WORKING_DIR + +# Initialize +N_ERRORS=0 +TSSTART=$(date +%s) +echo "$ORG/$REPOSITORY > Cloning repository..."; +git clone https://github.com/$ORG/$REPOSITORY $WORKING_DIR/$REPOSITORY >/dev/null 2>&1 + +# Ckeck workflows (files exist as expected) +for w in "${EXPECTED_WORKFLOWS[@]}" +do + if [ ! -f "$WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" ]; then + echo "[error] Missing workflow file '$w.yml' at $WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" + ((N_ERRORS++)) + else + echo "[ok] workflow file '$w.yml' OK" + fi +done + +# Finalize +TSEND=$(date +%s) +TSDURATION=$(( $TSEND - $TSSTART )) +if [[ $N_ERRORS -gt 0 ]] +then + echo "$WORKING_DIR/$REPOSITORY has $N_ERRORS errors." +else + echo "[success] repository checks OK." +fi +echo "$WORKING_DIR/$REPOSITORY has been processed in $TSDURATION seconds." +echo "--------------------------------------------------"; + +if [[ $N_ERRORS -gt 0 ]] +then + exit 1 +fi diff --git a/ci/list_repositories.sh b/ci/list_repositories.sh new file mode 100644 index 00000000..3d16ab14 --- /dev/null +++ b/ci/list_repositories.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory +PARENT_DIR="$(dirname "$CURRENT_DIR")" +WORKING_DIR="$PARENT_DIR/output" +ORG=DARMA-tasking + +EXCLUDE='[ + "DARMA-tasking.github.io", + "find-unsigned-commits", + "check-commit-format", + "find-trailing-whitespace", + "check-pr-fixes-issue" +]' +JQ=$EXCLUDE' as $blacklist | .[] | select( .name as $in | $blacklist | index($in) | not)' +gh repo list DARMA-tasking --json name,defaultBranchRef --jq "$JQ" --jq 'sort_by(.name)' | jq From 13a8565a0fdc40ffd694968e4bb8cbfa64fa6803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Dutheillet-Lamonth=C3=A9zie?= Date: Wed, 18 Sep 2024 17:04:19 +0200 Subject: [PATCH 06/21] #1: resolve exclusion of some repositories from checks --- ci/list_repositories.sh | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/ci/list_repositories.sh b/ci/list_repositories.sh index 3d16ab14..52dbf017 100644 --- a/ci/list_repositories.sh +++ b/ci/list_repositories.sh @@ -1,16 +1,6 @@ #!/bin/bash -CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory -PARENT_DIR="$(dirname "$CURRENT_DIR")" -WORKING_DIR="$PARENT_DIR/output" ORG=DARMA-tasking - -EXCLUDE='[ - "DARMA-tasking.github.io", - "find-unsigned-commits", - "check-commit-format", - "find-trailing-whitespace", - "check-pr-fixes-issue" -]' -JQ=$EXCLUDE' as $blacklist | .[] | select( .name as $in | $blacklist | index($in) | not)' -gh repo list DARMA-tasking --json name,defaultBranchRef --jq "$JQ" --jq 'sort_by(.name)' | jq +EXCLUDE="[\"DARMA-tasking.github.io\",\"find-unsigned-commits\",\"check-commit-format\",\"find-trailing-whitespace\",\"check-pr-fixes-issue\",\"workflows\"]" +JQ="$EXCLUDE as \$blacklist | .[] | select( .name as \$in | \$blacklist | index(\$in) | not)" +gh repo list $ORG --json name,defaultBranchRef --jq "$JQ" | jq -s 'sort_by(.name)' From 64c76b30eb4e1921f064f1a399754511f3a6cf60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Dutheillet-Lamonth=C3=A9zie?= Date: Wed, 18 Sep 2024 17:35:54 +0200 Subject: [PATCH 07/21] #1: add comments in shell scripts --- ci/check_repository.sh | 5 +++++ ci/list_repositories.sh | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ci/check_repository.sh b/ci/check_repository.sh index d462358d..b6e834bc 100644 --- a/ci/check_repository.sh +++ b/ci/check_repository.sh @@ -1,5 +1,8 @@ #!/bin/bash +# Check that a repository is compliant: +# - required workflows exist + CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory PARENT_DIR="$(dirname "$CURRENT_DIR")" WORKING_DIR="$PARENT_DIR/output" @@ -31,6 +34,8 @@ do ((N_ERRORS++)) else echo "[ok] workflow file '$w.yml' OK" + # ENHANCEMENT: check that file is calling the appropriate workflow + # (read yaml file and find the use statement) fi done diff --git a/ci/list_repositories.sh b/ci/list_repositories.sh index 52dbf017..c0c04596 100644 --- a/ci/list_repositories.sh +++ b/ci/list_repositories.sh @@ -1,6 +1,15 @@ #!/bin/bash +# List the repositories in the DARMA-tasking organization - in JSON format - +# that need to be checked + ORG=DARMA-tasking -EXCLUDE="[\"DARMA-tasking.github.io\",\"find-unsigned-commits\",\"check-commit-format\",\"find-trailing-whitespace\",\"check-pr-fixes-issue\",\"workflows\"]" +EXCLUDE='[ + "DARMA-tasking.github.io", + "find-unsigned-commits", + "check-commit-format", + "find-trailing-whitespace", + "check-pr-fixes-issue","workflows" +]' JQ="$EXCLUDE as \$blacklist | .[] | select( .name as \$in | \$blacklist | index(\$in) | not)" gh repo list $ORG --json name,defaultBranchRef --jq "$JQ" | jq -s 'sort_by(.name)' From db017eb6e65025cbc9466e0acfafdec97d56387b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Dutheillet-Lamonth=C3=A9zie?= Date: Wed, 18 Sep 2024 17:36:16 +0200 Subject: [PATCH 08/21] #1: disable fail-fast for the repositories matrix in ci --- .github/workflows/check-repositories.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-repositories.yml b/.github/workflows/check-repositories.yml index 06de406e..00815bf5 100644 --- a/.github/workflows/check-repositories.yml +++ b/.github/workflows/check-repositories.yml @@ -31,6 +31,7 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} strategy: + fail-fast: false matrix: repository: ${{ fromJson(needs.list_repositories.outputs.repositories ) }} steps: From 3e43c5f7425f71308101cc8dacb08b313c8056e8 Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 09:38:11 -0500 Subject: [PATCH 09/21] #1: check contents of workflows and cancel existing jobs --- .github/workflows/check-repositories.yml | 11 ++++++----- ci/check_repository.sh | 15 ++++++++++----- ci/list_repositories.sh | 2 +- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/check-repositories.yml b/.github/workflows/check-repositories.yml index 00815bf5..350a68dc 100644 --- a/.github/workflows/check-repositories.yml +++ b/.github/workflows/check-repositories.yml @@ -1,12 +1,16 @@ name: DARMA repositories check on: - # schedule: + # schedule: # - cron: '*/30 * * * *' push: branches: - 1-validate-required-workflows-usage-across-repositories +concurrency: + group: ${{ github.event.repository.name }}-${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: True + jobs: list_repositories: name: List repositories @@ -15,7 +19,7 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 - + - name: List repositories id: list-repositories run: | @@ -36,9 +40,6 @@ jobs: repository: ${{ fromJson(needs.list_repositories.outputs.repositories ) }} steps: - uses: actions/checkout@v4 - - name: Check repositories run: | bash ./ci/check_repository.sh ${{ matrix.repository.name }} - - \ No newline at end of file diff --git a/ci/check_repository.sh b/ci/check_repository.sh index b6e834bc..8e014e81 100644 --- a/ci/check_repository.sh +++ b/ci/check_repository.sh @@ -1,7 +1,8 @@ #!/bin/bash # Check that a repository is compliant: -# - required workflows exist +# - required file exists +# - file uses the correct workflow CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory PARENT_DIR="$(dirname "$CURRENT_DIR")" @@ -26,16 +27,20 @@ TSSTART=$(date +%s) echo "$ORG/$REPOSITORY > Cloning repository..."; git clone https://github.com/$ORG/$REPOSITORY $WORKING_DIR/$REPOSITORY >/dev/null 2>&1 -# Ckeck workflows (files exist as expected) +# Ckeck workflows (files exist as expected and contain correct workflow) for w in "${EXPECTED_WORKFLOWS[@]}" do if [ ! -f "$WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" ]; then echo "[error] Missing workflow file '$w.yml' at $WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" ((N_ERRORS++)) else - echo "[ok] workflow file '$w.yml' OK" - # ENHANCEMENT: check that file is calling the appropriate workflow - # (read yaml file and find the use statement) + # Check that the correct workflow is used + if [ ! grep -q "uses: DARMA-tasking/$w" "$WORKFLOW_FILE" ]; then + echo "[error] Workflow file '$w.yml' does not contain 'uses: DARMA-tasking/$w'" + ((N_ERRORS++)) + else + echo "[ok] workflow file '$w.yml is correct" + fi fi done diff --git a/ci/list_repositories.sh b/ci/list_repositories.sh index c0c04596..01d685d4 100644 --- a/ci/list_repositories.sh +++ b/ci/list_repositories.sh @@ -1,6 +1,6 @@ #!/bin/bash -# List the repositories in the DARMA-tasking organization - in JSON format - +# List the repositories in the DARMA-tasking organization - in JSON format - # that need to be checked ORG=DARMA-tasking From 8cb99f10457a1b23d3e250b728ddb94d83fb5bc9 Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 11:11:26 -0500 Subject: [PATCH 10/21] #1: fix grep syntax --- ci/check_repository.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/check_repository.sh b/ci/check_repository.sh index 8e014e81..6585b841 100644 --- a/ci/check_repository.sh +++ b/ci/check_repository.sh @@ -35,7 +35,7 @@ do ((N_ERRORS++)) else # Check that the correct workflow is used - if [ ! grep -q "uses: DARMA-tasking/$w" "$WORKFLOW_FILE" ]; then + if ! grep -q "uses: DARMA-tasking/$w" "$WORKFLOW_FILE"; then echo "[error] Workflow file '$w.yml' does not contain 'uses: DARMA-tasking/$w'" ((N_ERRORS++)) else From e85bf5010b812ef0087224d68ea6184d0c5bb685 Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 11:18:24 -0500 Subject: [PATCH 11/21] #1: add missing definition --- .github/workflows/build-docker-image.yml | 4 ++-- ci/check_repository.sh | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml index 3a6b621c..18af74e2 100644 --- a/.github/workflows/build-docker-image.yml +++ b/.github/workflows/build-docker-image.yml @@ -4,8 +4,8 @@ on: push: branches: - master - pull_request: - branches: "*" + # pull_request: + # branches: "*" jobs: get-matrix: diff --git a/ci/check_repository.sh b/ci/check_repository.sh index 6585b841..18979234 100644 --- a/ci/check_repository.sh +++ b/ci/check_repository.sh @@ -30,8 +30,9 @@ git clone https://github.com/$ORG/$REPOSITORY $WORKING_DIR/$REPOSITORY >/dev/nul # Ckeck workflows (files exist as expected and contain correct workflow) for w in "${EXPECTED_WORKFLOWS[@]}" do - if [ ! -f "$WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" ]; then - echo "[error] Missing workflow file '$w.yml' at $WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" + WORKFLOW_FILE="$WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" + if [ ! -f "$WORKFLOW_FILE" ]; then + echo "[error] Missing workflow file '$w.yml' at $WORKFLOW_FILE" ((N_ERRORS++)) else # Check that the correct workflow is used From a55151e092a5c802481c6704e5e003fbff82ba7f Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 11:34:32 -0500 Subject: [PATCH 12/21] #1: try different logic for finding workflows --- ci/check_repository.sh | 71 +++++++++++++++++++++++++++++++++--------- 1 file changed, 57 insertions(+), 14 deletions(-) diff --git a/ci/check_repository.sh b/ci/check_repository.sh index 18979234..05897897 100644 --- a/ci/check_repository.sh +++ b/ci/check_repository.sh @@ -27,24 +27,67 @@ TSSTART=$(date +%s) echo "$ORG/$REPOSITORY > Cloning repository..."; git clone https://github.com/$ORG/$REPOSITORY $WORKING_DIR/$REPOSITORY >/dev/null 2>&1 -# Ckeck workflows (files exist as expected and contain correct workflow) -for w in "${EXPECTED_WORKFLOWS[@]}" -do - WORKFLOW_FILE="$WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" - if [ ! -f "$WORKFLOW_FILE" ]; then - echo "[error] Missing workflow file '$w.yml' at $WORKFLOW_FILE" - ((N_ERRORS++)) - else - # Check that the correct workflow is used - if ! grep -q "uses: DARMA-tasking/$w" "$WORKFLOW_FILE"; then - echo "[error] Workflow file '$w.yml' does not contain 'uses: DARMA-tasking/$w'" - ((N_ERRORS++)) - else - echo "[ok] workflow file '$w.yml is correct" +# Directory containing workflow files +WORKFLOWS_DIR="$WORKING_DIR/$REPOSITORY/.github/workflows" +FOUND_WORKFLOWS=() + +# Check workflows +if [ ! -d "$WORKFLOWS_DIR" ]; then + echo "[error] Workflow directory '$WORKFLOWS_DIR' does not exist." + exit 1 +fi + +for file in "$WORKFLOWS_DIR"/*.yml; do + if [ ! -f "$file" ]; then + continue + fi + for w in "${EXPECTED_WORKFLOWS[@]}"; do + if grep -q "uses: DARMA-tasking/$w" "$file"; then + if [[ ! " ${FOUND_WORKFLOWS[@]} " =~ " $w " ]]; then + FOUND_WORKFLOWS+=("$w") + echo "[ok] Found workflow '$w' in file '$file'" + fi fi + done + # Exit if all workflows are found + if [ ${#FOUND_WORKFLOWS[@]} -eq ${#EXPECTED_WORKFLOWS[@]} ]; then + echo "[ok] All expected workflows found." + break fi done +# Ensure all workflows were found +if [ ${#FOUND_WORKFLOWS[@]} -ne ${#EXPECTED_WORKFLOWS[@]} ]; then + echo "[error] Missing workflows:" + for w in "${EXPECTED_WORKFLOWS[@]}"; do + if [[ ! " ${FOUND_WORKFLOWS[@]} " =~ " $w " ]]; then + echo " - $w" + ((N_ERRORS++)) + fi + done +else + echo "[ok] All expected workflows are present." +fi + + +# Check workflows (files exist as expected and contain correct workflow) +# for w in "${EXPECTED_WORKFLOWS[@]}" +# do + # WORKFLOW_FILE="$WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" + # if [ ! -f "$WORKFLOW_FILE" ]; then + # echo "[error] Missing workflow file '$w.yml' at $WORKFLOW_FILE" + # ((N_ERRORS++)) + # else + # # Check that the correct workflow is used + # if ! grep -q "uses: DARMA-tasking/$w" "$WORKFLOW_FILE"; then + # echo "[error] Workflow file '$w.yml' does not contain 'uses: DARMA-tasking/$w'" + # ((N_ERRORS++)) + # else + # echo "[ok] workflow file '$w.yml' is correct" + # fi + # fi +# done + # Finalize TSEND=$(date +%s) TSDURATION=$(( $TSEND - $TSSTART )) From 9f7e788dbcf2d3f209f4e926c9042f7f5bbbcf76 Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 11:41:32 -0500 Subject: [PATCH 13/21] #1: improve grep for workflows and only print relative path --- ci/check_repository.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ci/check_repository.sh b/ci/check_repository.sh index 05897897..20a79ddd 100644 --- a/ci/check_repository.sh +++ b/ci/check_repository.sh @@ -41,11 +41,12 @@ for file in "$WORKFLOWS_DIR"/*.yml; do if [ ! -f "$file" ]; then continue fi + relative_file="${file#$WORKING_DIR/}" for w in "${EXPECTED_WORKFLOWS[@]}"; do - if grep -q "uses: DARMA-tasking/$w" "$file"; then + if grep -qE "uses: .*/$w" "$file"; then if [[ ! " ${FOUND_WORKFLOWS[@]} " =~ " $w " ]]; then FOUND_WORKFLOWS+=("$w") - echo "[ok] Found workflow '$w' in file '$file'" + echo "[ok] Found workflow '$w' in file '$relative_file'" fi fi done From 9e9332990784fe98e1c24fee9cd6022d16521287 Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 11:52:21 -0500 Subject: [PATCH 14/21] #1: clean up --- ci/check_repository.sh | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/ci/check_repository.sh b/ci/check_repository.sh index 20a79ddd..9d45c189 100644 --- a/ci/check_repository.sh +++ b/ci/check_repository.sh @@ -1,8 +1,7 @@ #!/bin/bash # Check that a repository is compliant: -# - required file exists -# - file uses the correct workflow +# - all expected workflows are present CURRENT_DIR="$(dirname -- "$(realpath -- "$0")")" # Current directory PARENT_DIR="$(dirname "$CURRENT_DIR")" @@ -41,18 +40,19 @@ for file in "$WORKFLOWS_DIR"/*.yml; do if [ ! -f "$file" ]; then continue fi - relative_file="${file#$WORKING_DIR/}" + + # Check each file for the current workflow for w in "${EXPECTED_WORKFLOWS[@]}"; do if grep -qE "uses: .*/$w" "$file"; then if [[ ! " ${FOUND_WORKFLOWS[@]} " =~ " $w " ]]; then FOUND_WORKFLOWS+=("$w") - echo "[ok] Found workflow '$w' in file '$relative_file'" + echo "[ok] Found workflow '$w' in file '${file#$WORKING_DIR/}'" fi fi done + # Exit if all workflows are found if [ ${#FOUND_WORKFLOWS[@]} -eq ${#EXPECTED_WORKFLOWS[@]} ]; then - echo "[ok] All expected workflows found." break fi done @@ -70,25 +70,6 @@ else echo "[ok] All expected workflows are present." fi - -# Check workflows (files exist as expected and contain correct workflow) -# for w in "${EXPECTED_WORKFLOWS[@]}" -# do - # WORKFLOW_FILE="$WORKING_DIR/$REPOSITORY/.github/workflows/$w.yml" - # if [ ! -f "$WORKFLOW_FILE" ]; then - # echo "[error] Missing workflow file '$w.yml' at $WORKFLOW_FILE" - # ((N_ERRORS++)) - # else - # # Check that the correct workflow is used - # if ! grep -q "uses: DARMA-tasking/$w" "$WORKFLOW_FILE"; then - # echo "[error] Workflow file '$w.yml' does not contain 'uses: DARMA-tasking/$w'" - # ((N_ERRORS++)) - # else - # echo "[ok] workflow file '$w.yml' is correct" - # fi - # fi -# done - # Finalize TSEND=$(date +%s) TSDURATION=$(( $TSEND - $TSSTART )) From 07323a6dcc5ffd1529a60018b903f21864ca1caf Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 12:04:40 -0500 Subject: [PATCH 15/21] #1: ignore forked repos --- ci/list_repositories.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ci/list_repositories.sh b/ci/list_repositories.sh index 01d685d4..347da064 100644 --- a/ci/list_repositories.sh +++ b/ci/list_repositories.sh @@ -9,7 +9,8 @@ EXCLUDE='[ "find-unsigned-commits", "check-commit-format", "find-trailing-whitespace", - "check-pr-fixes-issue","workflows" + "check-pr-fixes-issue", + "workflows" ]' -JQ="$EXCLUDE as \$blacklist | .[] | select( .name as \$in | \$blacklist | index(\$in) | not)" -gh repo list $ORG --json name,defaultBranchRef --jq "$JQ" | jq -s 'sort_by(.name)' +JQ="$EXCLUDE as \$blacklist | .[] | select(.isFork | not) | select(.name as \$in | \$blacklist | index(\$in) | not)" +gh repo list $ORG --json name,defaultBranchRef,isFork --jq "$JQ" | jq -s 'sort_by(.name)' From f4f8815e740229e0fcc438b9c3c8365a0d4f0f9e Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 14:57:20 -0500 Subject: [PATCH 16/21] #1: ignore repos with no workflows --- ci/list_repositories.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/list_repositories.sh b/ci/list_repositories.sh index 347da064..ae33654d 100644 --- a/ci/list_repositories.sh +++ b/ci/list_repositories.sh @@ -10,6 +10,9 @@ EXCLUDE='[ "check-commit-format", "find-trailing-whitespace", "check-pr-fixes-issue", + "vt-sample-project", + "parallel-for-transformer", + "detector", "workflows" ]' JQ="$EXCLUDE as \$blacklist | .[] | select(.isFork | not) | select(.name as \$in | \$blacklist | index(\$in) | not)" From 39dabbaced4e94bbeaec6c7f3bfd40ca6f93548d Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 15:10:28 -0500 Subject: [PATCH 17/21] #1: run repository workflow check on the first day of the month --- .github/workflows/check-repositories.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/check-repositories.yml b/.github/workflows/check-repositories.yml index 350a68dc..26f5541f 100644 --- a/.github/workflows/check-repositories.yml +++ b/.github/workflows/check-repositories.yml @@ -1,11 +1,9 @@ name: DARMA repositories check +# Run on the first day of the month on: - # schedule: - # - cron: '*/30 * * * *' - push: - branches: - - 1-validate-required-workflows-usage-across-repositories + schedule: + - cron: '0 0 1 * *' concurrency: group: ${{ github.event.repository.name }}-${{ github.ref }}-${{ github.workflow }} From 6b589f1b66794f926667cf3e445c9e2077f0595e Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Mon, 6 Jan 2025 16:11:35 -0500 Subject: [PATCH 18/21] #1: remove comment --- .github/workflows/build-docker-image.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml index 18af74e2..0189215a 100644 --- a/.github/workflows/build-docker-image.yml +++ b/.github/workflows/build-docker-image.yml @@ -4,8 +4,6 @@ on: push: branches: - master - # pull_request: - # branches: "*" jobs: get-matrix: From a71e1d2c19bc553d5855a5d7f43a665984a4ecf6 Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Tue, 7 Jan 2025 12:48:55 -0500 Subject: [PATCH 19/21] #1: clarify cron comment --- .github/workflows/check-repositories.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-repositories.yml b/.github/workflows/check-repositories.yml index 26f5541f..103ede1f 100644 --- a/.github/workflows/check-repositories.yml +++ b/.github/workflows/check-repositories.yml @@ -1,6 +1,6 @@ name: DARMA repositories check -# Run on the first day of the month +# Runs at 00:00 UTC on day 1 of every month on: schedule: - cron: '0 0 1 * *' From fbecf8c5684647551c7ac58d2b98ac0a7c580d51 Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Tue, 7 Jan 2025 14:45:46 -0500 Subject: [PATCH 20/21] #1: create issue if repo is missing workflows --- .github/workflows/build-docker-image.yml | 2 ++ .github/workflows/check-repositories.yml | 9 ++++++--- ci/check_repository.sh | 25 ++++++++++++++++++------ 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml index 0189215a..3a6b621c 100644 --- a/.github/workflows/build-docker-image.yml +++ b/.github/workflows/build-docker-image.yml @@ -4,6 +4,8 @@ on: push: branches: - master + pull_request: + branches: "*" jobs: get-matrix: diff --git a/.github/workflows/check-repositories.yml b/.github/workflows/check-repositories.yml index 103ede1f..b360ec4b 100644 --- a/.github/workflows/check-repositories.yml +++ b/.github/workflows/check-repositories.yml @@ -2,8 +2,11 @@ name: DARMA repositories check # Runs at 00:00 UTC on day 1 of every month on: - schedule: - - cron: '0 0 1 * *' + # schedule: + # - cron: '0 0 1 * *' + push: + branches: + - 1-validate-required-workflows-usage-across-repositories concurrency: group: ${{ github.event.repository.name }}-${{ github.ref }}-${{ github.workflow }} @@ -31,7 +34,7 @@ jobs: runs-on: ubuntu-latest needs: list_repositories env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_TOKEN: ${{ secrets.github_pat2}} strategy: fail-fast: false matrix: diff --git a/ci/check_repository.sh b/ci/check_repository.sh index 9d45c189..646864df 100644 --- a/ci/check_repository.sh +++ b/ci/check_repository.sh @@ -57,12 +57,14 @@ for file in "$WORKFLOWS_DIR"/*.yml; do fi done -# Ensure all workflows were found +# Find any missing workflows +MISSING_WORKFLOWS=() if [ ${#FOUND_WORKFLOWS[@]} -ne ${#EXPECTED_WORKFLOWS[@]} ]; then echo "[error] Missing workflows:" for w in "${EXPECTED_WORKFLOWS[@]}"; do if [[ ! " ${FOUND_WORKFLOWS[@]} " =~ " $w " ]]; then echo " - $w" + MISSING_WORKFLOWS+=("$w") ((N_ERRORS++)) fi done @@ -73,16 +75,27 @@ fi # Finalize TSEND=$(date +%s) TSDURATION=$(( $TSEND - $TSSTART )) -if [[ $N_ERRORS -gt 0 ]] -then - echo "$WORKING_DIR/$REPOSITORY has $N_ERRORS errors." +if [[ $N_ERRORS -gt 0 ]]; then + echo "Creating an issue in $REPOSITORY to add missing workflows..." + + if [ ${#MISSING_WORKFLOWS[@]} -gt 0 ]; then + ISSUE_TITLE="[workflows] Missing Actions" + ISSUE_BODY="The following actions are missing from the repository:" + for w in "${MISSING_WORKFLOWS[@]}"; do + ISSUE_BODY+=$'\n- '"$w" + done + + gh issue create \ + --repo "$ORG/$REPOSITORY" \ + --title "$ISSUE_TITLE" \ + --body "$ISSUE_BODY" + fi else echo "[success] repository checks OK." fi echo "$WORKING_DIR/$REPOSITORY has been processed in $TSDURATION seconds." echo "--------------------------------------------------"; -if [[ $N_ERRORS -gt 0 ]] -then +if [[ $N_ERRORS -gt 0 ]]; then exit 1 fi From 08e349eed2a049a821d9e1438ce673431c06d6c6 Mon Sep 17 00:00:00 2001 From: Caleb Schilly Date: Fri, 10 Jan 2025 08:39:49 -0500 Subject: [PATCH 21/21] #1: update name of github token --- .github/workflows/check-repositories.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-repositories.yml b/.github/workflows/check-repositories.yml index b360ec4b..72893d17 100644 --- a/.github/workflows/check-repositories.yml +++ b/.github/workflows/check-repositories.yml @@ -34,7 +34,7 @@ jobs: runs-on: ubuntu-latest needs: list_repositories env: - GH_TOKEN: ${{ secrets.github_pat2}} + GH_TOKEN: ${{ secrets.ISSUE_CREATION_1}} strategy: fail-fast: false matrix: