bitwarden-workflow-linter-rules

Référence pour toutes les règles du linter de workflows Bitwarden (bwwl). Couvre l'ensemble des 10 règles du linter, réparties en deux catégories : les règles mécaniques applicables automatiquement (`name_capitalized`, `permissions_exist`, `pinned_job_runner`, `step_pinned`, `underscore_outputs`, `job_environment_prefix`, `check_pr_target`) et les règles de jugement nécessitant une intervention humaine (`name_exists`, `step_approved`, `run_actionlint`). Utilisez le skill `workflow-audit` pour exécuter le linter et rapporter les résultats, et le skill `workflow-fix` pour appliquer les corrections. <example> Utilisateur : Que vérifie la règle `step_pinned` ? Action : Consulter ce skill pour la définition de la règle et la procédure de correction </example> <example> Utilisateur : Comment corriger un résultat `permissions_exist` ? Action : Consulter ce skill pour la procédure de correction </example>

npx skills add https://github.com/bitwarden/ai-plugins --skill bitwarden-workflow-linter-rules

Règles mécaniques — s'appliquent automatiquement

name_capitalized

  • Déclencheur : Une valeur name: au niveau workflow ou job ne commence pas par une majuscule.
  • Correction : Mettez en majuscule le premier caractère de la valeur name. Ne changez rien d'autre.

permissions_exist

  • Déclencheur : Un workflow ou job ne possède pas de clé permissions: explicite.
  • Correction : Ajoutez permissions: {} au niveau workflow si tous les jobs en manquent, ou au niveau job individuel si seuls certains jobs en manquent. Préférez les permissions au niveau job.

pinned_job_runner

  • Déclencheur : Le runs-on: d'un job utilise un label non épinglé.
  • Correction : Remplacez par l'équivalent épinglé actuel :
    • ubuntu-latestubuntu-24.04
    • windows-latestwindows-2022
    • macos-latestmacos-14

step_pinned

  • Déclencheur : Une référence uses: n'est pas épinglée à un SHA de commit complet (par ex., utilise un tag comme @v3 ou une branche comme @main).
  • Correction :
    1. Résolvez le SHA de commit correct via l'API GitHub : gh api repos/{owner}/{repo}/commits/{ref} --jq '.sha'
    2. Affichez le SHA et un lien de vérification (https://github.com/{owner}/{repo}/commit/{sha}) à l'utilisateur avant d'appliquer.
    3. Attendez la confirmation de l'utilisateur. S'il fournit un SHA différent, utilisez celui-ci à la place.
    4. Remplacez la valeur uses: par {action}@{sha} et ajoutez un commentaire avec le tag original : # {original-ref}
    • Exemple : uses: actions/checkout@v4uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4

underscore_outputs

  • Déclencheur : Un nom de sortie multi-mots dans une écriture $GITHUB_OUTPUT ou un bloc outputs: utilise des tirets ou du camelCase au lieu de tirets bas.
  • Correction : Renommez la clé de sortie pour utiliser des tirets bas. Mettez à jour toutes les références à cette sortie dans le même fichier.

job_environment_prefix

  • Déclencheur : Un nom de variable d'environnement au niveau job ne suit pas SCREAMING_SNAKE_CASE.
  • Correction : Renommez en SCREAMING_SNAKE_CASE et mettez à jour tous les usages au sein du job.

check_pr_target

  • Déclencheur : Un workflow utilisant pull_request_target possède des jobs non restreints à la branche par défaut.
  • Correction : Ajoutez une condition aux jobs affectés : if: github.ref == 'refs/heads/<default-branch>'. Déterminez la branche par défaut du repo plutôt que de supposer main. Si le job possède déjà une condition if:, combinez avec && (par ex., if: <existing-condition> && github.ref == 'refs/heads/<default-branch>').

Règles de jugement — pause et demandez à l'utilisateur

name_exists

  • Déclencheur : Un workflow ou job ne possède pas de clé name: du tout.
  • Correction : Demandez à l'utilisateur quel nom utiliser, puis ajoutez une clé name: au niveau approprié avec une valeur en majuscule.

step_approved

  • Déclencheur : Le uses: d'une étape référence une action ne figurant pas sur la liste des actions approuvées par Bitwarden.
  • Options à présenter à l'utilisateur :
    1. Ajouter à la liste approuvée — si l'action est légitime et a été examinée et approuvée, ajoutez-la à la configuration des actions approuvées de bitwarden/workflow-linter.
    2. Remplacer — échangez avec une alternative approuvée qui fournit la même fonctionnalité.
    3. Supprimer — supprimez l'étape si elle n'est pas essentielle.
  • Ne faites pas cette modification automatiquement. Affichez le nom de l'action non approuvée, demandez quelle option l'utilisateur souhaite, puis agissez.

run_actionlint (résultats complexes)

  • Déclencheur : actionlint signale une erreur qui n'est pas un simple problème de formatage (par ex., des incompatibilités de type dans les expressions, des références de contexte invalides, des erreurs de script shell).
  • Action : Affichez le résultat tel quel, suggérez une correction basée sur le message d'actionlint, et demandez à l'utilisateur de confirmer avant d'appliquer.
  • Les résultats simples d'actionlint (par ex., des avertissements de style shellcheck avec un correctif clair sur une seule ligne) peuvent être appliqués automatiquement.

Skills similaires