From bce46794a50fb6ae6c4c2eb75be500ee86c7b1fb Mon Sep 17 00:00:00 2001 From: jsboige Date: Tue, 15 Sep 2026 08:50:01 +0200 Subject: [PATCH] fix(ci,#16211): un-mute gh label create + cap descriptions <= 100 chars The GitHub label API rejects descriptions > 100 chars with HTTP 422. `gh label create ... 2>/dev/null || true` swallowed that failure, so 6 advisory labels were never created and the matching `gh pr edit --add-label` failed silently downstream (dead organ): - variation-adjacency-deep-med (always-on-guards, variation-tag-guard) - consecutive-code-cells - mermaid-fill-color / mermaid-fill-color-unmeasured - paragraph-length / paragraph-length-unmeasured Mechanical codemod across 18 workflows (31 insertions / 31 deletions, <= 3 lines per file): - 8 descriptions shortened to <= 100 chars (markdown-table-syntax desc also capped although its label already exists - drift-proofing) - 23 label creations un-muted: `2>/dev/null || true` -> `|| true` on `gh label create` lines ONLY (`gh pr edit` stays muted, per issue). Failures now surface in the Actions log while still not failing the job (|| true kept). Audits: 26 descriptions extracted, 0 > 100; 0 remaining muted `gh label create` (single-line or continuation); 162 workflows YAML-parse OK. See #16211 See #16207 Co-Authored-By: Claude Sonnet 5 --- .github/workflows/always-on-guards.yml | 12 ++++++------ .github/workflows/always-on-metadata-guards.yml | 2 +- .github/workflows/cjk-residue-advisory.yml | 2 +- .../workflows/consecutive-code-cells-advisory.yml | 4 ++-- .github/workflows/dotnet-nuget-block-advisory.yml | 2 +- .github/workflows/exercises-advisory.yml | 2 +- .github/workflows/h1-hygiene-advisory.yml | 2 +- .github/workflows/lane-claim-guard.yml | 2 +- .github/workflows/lean-visibility-advisory.yml | 2 +- .github/workflows/markdown-deaccent-advisory.yml | 2 +- .github/workflows/markdown-table-guard.yml | 4 ++-- .github/workflows/mermaid-fill-color-advisory.yml | 6 +++--- .github/workflows/paragraph-length-advisory.yml | 6 +++--- .github/workflows/pedagogy-density-advisory.yml | 2 +- .github/workflows/slides-build-advisory.yml | 2 +- .github/workflows/stale-base-warning.yml | 2 +- .github/workflows/variation-light-genre.yml | 2 +- .github/workflows/variation-tag-guard.yml | 6 +++--- 18 files changed, 31 insertions(+), 31 deletions(-) diff --git a/.github/workflows/always-on-guards.yml b/.github/workflows/always-on-guards.yml index eee6e97dec..93b66ade64 100644 --- a/.github/workflows/always-on-guards.yml +++ b/.github/workflows/always-on-guards.yml @@ -351,7 +351,7 @@ jobs: gh label create variation-light-cap-reached \ --description "Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)" \ - --color B60205 --force 2>/dev/null || true + --color B60205 --force || true if [ "$CAP" = "True" ]; then gh pr edit "$PR_NUMBER" --add-label variation-light-cap-reached 2>/dev/null || true @@ -508,7 +508,7 @@ jobs: else SIGVAL="${!SIGVAR:-False}" fi - gh label create "$LABEL" --description "$DESC" --color "$COLOR" --force 2>/dev/null || true + gh label create "$LABEL" --description "$DESC" --color "$COLOR" --force || true # #10341 : les signaux agreges ne labelisent pas une candidate # innocente ; la branche else retire aussi un label pose avant # que la lane ne croise le cap (idempotence symetrique). @@ -613,7 +613,7 @@ jobs: # en silence (check=False historique) -- longueur epinglee en dur ici. gh label create trivial-diff-advisory \ --description "Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)" \ - --color C2A76D --force 2>/dev/null || true + --color C2A76D --force || true gh pr edit "$PR_NUMBER" --add-label trivial-diff-advisory 2>/dev/null || true MARK="" @@ -670,7 +670,7 @@ jobs: fi mk_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } mk_label "lane-claim-absent" "Closing issue carries no claim at all (#10223)" "fbca04" @@ -995,8 +995,8 @@ jobs: # Label advisory pour l'adjacence DEEP/MED (jugement coord). gh label create variation-adjacency-deep-med \ - --description "Adjacence de genre DEEP/MED (hors liste LIGHT) : §2 l'autorise si substance distincte -- jugement au coordinateur" \ - --color FEF2C0 --force 2>/dev/null || true + --description "Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)" \ + --color FEF2C0 --force || true if [ "$ADJACENT" = "True" ]; then gh pr edit "$PR_NUMBER" --add-label variation-adjacency-deep-med 2>/dev/null || true else diff --git a/.github/workflows/always-on-metadata-guards.yml b/.github/workflows/always-on-metadata-guards.yml index f921eb2ef3..ec1bc4de23 100644 --- a/.github/workflows/always-on-metadata-guards.yml +++ b/.github/workflows/always-on-metadata-guards.yml @@ -210,7 +210,7 @@ jobs: fi echo "::warning::Base is ${AGE_DAYS}d behind main (${BEHIND} commits)" gh pr comment "$PR_NUMBER" --body "## Base Branch Stale Warning - ${AGE_DAYS}d behind main (${BEHIND} commits). Consider rebasing." 2>/dev/null || true - gh label create "base-stale-14d" --description "PR base >14d behind main" --color "FFA500" --force 2>/dev/null || true + gh label create "base-stale-14d" --description "PR base >14d behind main" --color "FFA500" --force || true gh pr edit "$PR_NUMBER" --add-label "base-stale-14d" 2>/dev/null || true # ------------------------------------------------------------------ diff --git a/.github/workflows/cjk-residue-advisory.yml b/.github/workflows/cjk-residue-advisory.yml index 5a08b62297..a4837717ea 100644 --- a/.github/workflows/cjk-residue-advisory.yml +++ b/.github/workflows/cjk-residue-advisory.yml @@ -150,7 +150,7 @@ jobs: echo "::notice::CJK residue in THIS PR ($PR_LEAKS leak line(s)): $FILES -- see the '$LABEL' label (#8826/#8428)." gh label create "$LABEL" \ --description "CJK residue: a Chinese/Japanese word soldered into Latin prose (#8428/#8826)" \ - --color "D93F0B" --force 2>/dev/null || true + --color "D93F0B" --force || true gh pr edit "$PR_NUMBER" --add-label "$LABEL" || true fi else diff --git a/.github/workflows/consecutive-code-cells-advisory.yml b/.github/workflows/consecutive-code-cells-advisory.yml index 555bbf65ba..0219e66a7f 100644 --- a/.github/workflows/consecutive-code-cells-advisory.yml +++ b/.github/workflows/consecutive-code-cells-advisory.yml @@ -95,7 +95,7 @@ jobs: # Helper: ensure a label exists (idempotent), then add/remove it. ensure_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } set_label() { gh pr edit "$PR_NUMBER" --add-label "$1" || true; } unset_label() { gh pr edit "$PR_NUMBER" --remove-label "$1" 2>/dev/null || true; } @@ -123,7 +123,7 @@ jobs: # when its count > 0 and cleared otherwise (a stale label from an # earlier push must not stick). ensure_label "$LABEL_CONSECUTIVE" \ - "A modified notebook has a run of >=2 consecutive code cells (opportunity for an intermediate markdown cell, or a merge pattern) (#12797)" "C4A64C" + "Modified notebook has >=2 consecutive code cells (#12797)" "C4A64C" ensure_label "$LABEL_UNMEASURED" \ "A modified notebook could not be measured -- NOT verified (#8819)" "BFD4F2" diff --git a/.github/workflows/dotnet-nuget-block-advisory.yml b/.github/workflows/dotnet-nuget-block-advisory.yml index 6537266133..34d6025995 100644 --- a/.github/workflows/dotnet-nuget-block-advisory.yml +++ b/.github/workflows/dotnet-nuget-block-advisory.yml @@ -145,7 +145,7 @@ jobs: # Helper: ensure a label exists (idempotent), then add/remove it. ensure_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } set_label() { gh pr edit "$PR_NUMBER" --add-label "$1" || true; } unset_label() { gh pr edit "$PR_NUMBER" --remove-label "$1" 2>/dev/null || true; } diff --git a/.github/workflows/exercises-advisory.yml b/.github/workflows/exercises-advisory.yml index 4186bb0ce1..69c88980d4 100644 --- a/.github/workflows/exercises-advisory.yml +++ b/.github/workflows/exercises-advisory.yml @@ -105,7 +105,7 @@ jobs: # Helper: ensure a label exists (idempotent), then add/remove it. ensure_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } set_label() { gh pr edit "$PR_NUMBER" --add-label "$1" || true; } unset_label() { gh pr edit "$PR_NUMBER" --remove-label "$1" 2>/dev/null || true; } diff --git a/.github/workflows/h1-hygiene-advisory.yml b/.github/workflows/h1-hygiene-advisory.yml index 1f13e95860..4b2330625d 100644 --- a/.github/workflows/h1-hygiene-advisory.yml +++ b/.github/workflows/h1-hygiene-advisory.yml @@ -89,6 +89,6 @@ jobs: fi gh label create "h1-hygiene-advisory" \ --description "Added notebook(s) carry H1 markdown/emoji/'Notebook:' prefix (#11840, advisory)" \ - --color "D4AC0D" --force 2>/dev/null || true + --color "D4AC0D" --force || true gh pr edit "$PR_NUMBER" --add-label "h1-hygiene-advisory" 2>/dev/null || true echo "::warning::H1 hygiene advisory: see scan output above (#11840)" diff --git a/.github/workflows/lane-claim-guard.yml b/.github/workflows/lane-claim-guard.yml index cb3b43e6d3..6b04811d3e 100644 --- a/.github/workflows/lane-claim-guard.yml +++ b/.github/workflows/lane-claim-guard.yml @@ -309,7 +309,7 @@ jobs: # travail passe comme marqueurs historiques; aucun nouveau n'est # pose par ce job. mk_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } mk_label "lane-claim-absent" "Closing issue carries no claim at all (#10223)" "fbca04" diff --git a/.github/workflows/lean-visibility-advisory.yml b/.github/workflows/lean-visibility-advisory.yml index 067ac1e3f7..36c60f122b 100644 --- a/.github/workflows/lean-visibility-advisory.yml +++ b/.github/workflows/lean-visibility-advisory.yml @@ -78,7 +78,7 @@ jobs: set -uo pipefail ensure_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } set_label() { gh pr edit "$PR_NUMBER" --add-label "$1" || true; } unset_label() { gh pr edit "$PR_NUMBER" --remove-label "$1" 2>/dev/null || true; } diff --git a/.github/workflows/markdown-deaccent-advisory.yml b/.github/workflows/markdown-deaccent-advisory.yml index 04c889ce6b..b8c7026d7c 100644 --- a/.github/workflows/markdown-deaccent-advisory.yml +++ b/.github/workflows/markdown-deaccent-advisory.yml @@ -115,7 +115,7 @@ jobs: fi ensure_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } set_label() { gh pr edit "$PR_NUMBER" --add-label "$1" || true; } unset_label() { gh pr edit "$PR_NUMBER" --remove-label "$1" 2>/dev/null || true; } diff --git a/.github/workflows/markdown-table-guard.yml b/.github/workflows/markdown-table-guard.yml index 542a1cbf3c..c8523e8160 100644 --- a/.github/workflows/markdown-table-guard.yml +++ b/.github/workflows/markdown-table-guard.yml @@ -115,7 +115,7 @@ jobs: # Label helpers (idempotent). ensure_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } set_label() { gh pr edit "$PR_NUMBER" --add-label "$1" || true; } unset_label() { gh pr edit "$PR_NUMBER" --remove-label "$1" 2>/dev/null || true; } @@ -126,7 +126,7 @@ jobs: unset_label() { true; } fi - ensure_label "$LABEL_DEFECT" "PR introduces a markdown table syntax defect (COL_MISMATCH / CODE_SPAN_PIPE / MATH_SPAN_PIPE / NO_SEP / NO_BLANK_BEFORE/AFTER / ORPHAN_TABLE_ROW). Advisory, non-blocking. See #10097." "d93f0b" + ensure_label "$LABEL_DEFECT" "Markdown table syntax defect: COL_MISMATCH / CODE_SPAN_PIPE / NO_SEP etc. (#10097)" "d93f0b" if [ "$COUNT" -eq 0 ]; then echo "No in-scope files to scan." diff --git a/.github/workflows/mermaid-fill-color-advisory.yml b/.github/workflows/mermaid-fill-color-advisory.yml index 992c6866d9..36fe67a7ef 100644 --- a/.github/workflows/mermaid-fill-color-advisory.yml +++ b/.github/workflows/mermaid-fill-color-advisory.yml @@ -105,7 +105,7 @@ jobs: # Helper: ensure a label exists (idempotent), then add/remove it. ensure_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } set_label() { gh pr edit "$PR_NUMBER" --add-label "$1" || true; } unset_label() { gh pr edit "$PR_NUMBER" --remove-label "$1" 2>/dev/null || true; } @@ -139,9 +139,9 @@ jobs: # is > 0 and cleared otherwise (a stale label from an earlier push # must not stick). ensure_label "$LABEL_FINDING" \ - "A modified .md or .ipynb carries a mermaid style/classDef rule with fill: but no color: -- light-on-light label risk in dark theme (#15022 founding incident, #15502 fix + guard)" "E99695" + "Mermaid rule with fill: but no color: -- dark-theme label risk (#15022)" "E99695" ensure_label "$LABEL_UNMEASURED" \ - "A modified .md or .ipynb could not be measured by the mermaid fill-color detector -- NOT verified (#8819)" "BFD4F2" + "Not measured by the mermaid fill-color detector -- NOT verified (#8819)" "BFD4F2" # The #8819 guard: if the detector died, FIND/UNM are not integers # (FIND defaults to -1 on unreadable payload). With only `set -uo diff --git a/.github/workflows/paragraph-length-advisory.yml b/.github/workflows/paragraph-length-advisory.yml index 409d25648d..f974227406 100644 --- a/.github/workflows/paragraph-length-advisory.yml +++ b/.github/workflows/paragraph-length-advisory.yml @@ -78,7 +78,7 @@ jobs: echo "Modified *.md in this PR: $COUNT" ensure_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } set_label() { gh pr edit "$PR_NUMBER" --add-label "$1" || true; } unset_label() { gh pr edit "$PR_NUMBER" --remove-label "$1" 2>/dev/null || true; } @@ -117,9 +117,9 @@ jobs: echo "Flagged files: $FLAG_COUNT" ensure_label "$LABEL_OVERSIZED" \ - "A modified markdown file carries a paragraph > 2000 chars (wall-of-text, see #15405 incident). Resorb before merge." "FBCA04" + "Paragraph > 2000 chars (wall-of-text, #15405). Resorb before merge." "FBCA04" ensure_label "$LABEL_UNMEASURED" \ - "A modified markdown file could not be measured by detect_paragraph_length.py -- NOT verified (#8819)." "BFD4F2" + "Not measured by detect_paragraph_length.py -- NOT verified (#8819)" "BFD4F2" # #8819 guard: if the payload is unreadable, never claim green. if [ "${OVERSZ_COUNT:-0}" = "UNREADABLE" ] 2>/dev/null; then diff --git a/.github/workflows/pedagogy-density-advisory.yml b/.github/workflows/pedagogy-density-advisory.yml index 229cee29d8..8dfca33d08 100644 --- a/.github/workflows/pedagogy-density-advisory.yml +++ b/.github/workflows/pedagogy-density-advisory.yml @@ -129,7 +129,7 @@ jobs: # Helper: ensure a label exists (idempotent), then add/remove it. ensure_label() { - gh label create "$1" --description "$2" --color "$3" --force 2>/dev/null || true + gh label create "$1" --description "$2" --color "$3" --force || true } set_label() { gh pr edit "$PR_NUMBER" --add-label "$1" || true; } unset_label() { gh pr edit "$PR_NUMBER" --remove-label "$1" 2>/dev/null || true; } diff --git a/.github/workflows/slides-build-advisory.yml b/.github/workflows/slides-build-advisory.yml index c631a7a921..aab8c43a4a 100644 --- a/.github/workflows/slides-build-advisory.yml +++ b/.github/workflows/slides-build-advisory.yml @@ -303,7 +303,7 @@ jobs: fi gh label create "$LABEL" \ --description "A Slidev deck impacted by this PR does not construct (#8807)" \ - --color "D93F0B" --force 2>/dev/null || true + --color "D93F0B" --force || true [ "$NOCTURNE" -eq 0 ] && gh pr edit "$PR_NUMBER" --add-label "$LABEL" || true else echo "All ${#TOUCHED[@]} impacted deck(s) build cleanly." diff --git a/.github/workflows/stale-base-warning.yml b/.github/workflows/stale-base-warning.yml index d7448a6150..b51c7394d1 100644 --- a/.github/workflows/stale-base-warning.yml +++ b/.github/workflows/stale-base-warning.yml @@ -78,5 +78,5 @@ jobs: fi echo "::warning::Base is ${AGE_DAYS}d behind main (${BEHIND} commits)" gh pr comment "$PR_NUMBER" --body "## Base Branch Stale Warning - ${AGE_DAYS}d behind main (${BEHIND} commits). Consider rebasing." 2>/dev/null || true - gh label create "base-stale-14d" --description "PR base >14d behind main" --color "FFA500" --force 2>/dev/null || true + gh label create "base-stale-14d" --description "PR base >14d behind main" --color "FFA500" --force || true gh pr edit "$PR_NUMBER" --add-label "base-stale-14d" 2>/dev/null || true diff --git a/.github/workflows/variation-light-genre.yml b/.github/workflows/variation-light-genre.yml index 7bbd707ee7..3c28006400 100644 --- a/.github/workflows/variation-light-genre.yml +++ b/.github/workflows/variation-light-genre.yml @@ -239,7 +239,7 @@ jobs: # initialisee ; on en reste a SIGVAL=False sans crasher. SIGVAL="${!SIGVAR:-False}" fi - gh label create "$LABEL" --description "$DESC" --color "$COLOR" --force 2>/dev/null || true + gh label create "$LABEL" --description "$DESC" --color "$COLOR" --force || true # #10341 -- aggregate signals (MAY_LABEL_INNOCENT="no") must not # label an innocent CONTENT candidate. The lane-day signal stays # real (surfaced in the diagnostic comment below), but the LABEL diff --git a/.github/workflows/variation-tag-guard.yml b/.github/workflows/variation-tag-guard.yml index 397c507722..d5d3d3dc7e 100644 --- a/.github/workflows/variation-tag-guard.yml +++ b/.github/workflows/variation-tag-guard.yml @@ -356,7 +356,7 @@ jobs: # donc create/add/remove tolerent l'echec sans tuer le job (|| true). gh label create variation-light-cap-reached \ --description "Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)" \ - --color B60205 --force 2>/dev/null || true + --color B60205 --force || true if [ "$CAP" = "True" ]; then gh pr edit "$PR_NUMBER" --add-label variation-light-cap-reached 2>/dev/null || true @@ -907,8 +907,8 @@ jobs: # Advisory label for DEEP/MED adjacency (guard_pass stays true, the # job passes; the label surfaces the §2 judgment for the coordinator). gh label create variation-adjacency-deep-med \ - --description "Adjacence de genre DEEP/MED (hors liste LIGHT) : §2 l'autorise si substance distincte -- jugement au coordinateur" \ - --color FEF2C0 --force 2>/dev/null || true + --description "Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)" \ + --color FEF2C0 --force || true if [ "$ADJACENT" = "True" ]; then gh pr edit "$PR_NUMBER" --add-label variation-adjacency-deep-med 2>/dev/null || true else