Maîtrise de GitHub CLI

VérifiéSûr

Référence complète des commandes GitHub CLI (gh) pour la recherche de dépôts, le suivi CI/CD, la création de ressources et l'automatisation des workflows.

Spar Skills Guide Bot
DevOpsIntermédiaire
26/07/2026
Claude CodeCursor
#github-cli#ci-cd#workflow-automation#repository-search

Recommandé pour

Synthèse automatique

Ce skill permet de maîtriser la ligne de commande GitHub CLI (gh) pour la recherche de code, la surveillance des pipelines CI/CD, la création de ressources et l'automatisation des workflows.

Points forts

  • Recherche rapide de dépôts et de fichiers spécifiques via des commandes simples.
  • Surveillance en temps réel des workflows GitHub Actions et des vérifications de PR.
  • Création et gestion de PRs, issues, forks et déclenchement de workflows sans interface web.

Limites

  • Nécessite que gh soit installé et configuré avec un token d'authentification.
  • Limitations de taux de l'API GitHub (surtout pour la recherche de code).
  • Courbe d'apprentissage pour les requêtes JSON et l'utilisation avancée de l'API.
Quand l'utiliser

Utilisez ce skill lorsque vous devez interagir fréquemment avec GitHub depuis le terminal, automatiser des tâches de CI/CD ou rechercher du code dans des dépôts.

Quand l'éviter

Évitez ce skill si l'interface web de GitHub suffit ou si vous avez besoin d'opérations nécessitant des autorisations avancées non disponibles via l'API.

Analyse de sécurité

Sûr
Score qualité90/100

The skill provides reference and examples for standard GitHub CLI operations and workflow authoring. No destructive, exfiltrating, or obfuscated commands are present; all actions are legitimate and safe when used as intended.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Search repositories for a file
Find all GitHub repositories that contain a SKILL.md file using the GitHub CLI.
Monitor CI status of a PR
Check and watch the CI status of PR #123 in the current repository.
Create a new issue with labels
Create a GitHub issue titled 'Fix bug in login' with labels 'bug' and 'urgent' assigned to me.

name: mastering-github-cli description: | GitHub CLI (gh) command reference for repository search, code discovery, CI/CD monitoring, workflow authoring, and automation. Triggers on "gh" commands, "github cli", searching repos for files/directories (.skilz, .cursor, .codex, Dockerfile), monitoring GitHub Actions workflows, checking PR CI status, downloading artifacts, creating PRs/issues/repos from command line, triggering workflows, forking repos, batch operations, "write a workflow", "github actions", "CI/CD pipeline", "workflow yaml", and "matrix builds". Use for gh search, gh run, gh pr, gh issue, gh repo, gh workflow, gh api, workflow authoring, and automating GitHub operations. license: MIT allowed-tools:

  • Bash
  • Read
  • Write
  • Glob
  • Grep

Mastering GitHub CLI

Command-line interface for GitHub operations: search, monitoring, resource creation, workflow authoring, and automation.

Contents


Quick Start

Find repos with specific files/directories

gh search code "path:.skilz" --json repository --jq '.[].repository.fullName'
gh search code --filename SKILL.md
gh search code --filename Dockerfile --language python

Monitor CI/CD

gh run list --workflow=CI --status=failure --limit 10
gh run watch 12345 --exit-status      # Block until complete
gh run view 12345 --log-failed        # Failed logs only
gh pr checks 123 --watch              # PR CI status

Create resources

gh pr create --title "Feature" --body "Description" --reviewer @user
gh issue create --title "Bug" --label bug,urgent --assignee @me
gh repo fork owner/repo --clone

Trigger and monitor workflow

gh workflow run deploy.yml -f environment=staging
sleep 5
RUN_ID=$(gh run list --workflow=deploy.yml --limit 1 --json databaseId --jq '.[0].databaseId')
gh run watch "$RUN_ID" --exit-status

Command Reference

| Task | Command | Reference | |------|---------|-----------| | Find repos with file | gh search code --filename FILE | search.md | | Find repos with directory | gh search code "path:DIR" | search.md | | List failed runs | gh run list --status=failure | monitoring.md | | Watch run | gh run watch ID --exit-status | monitoring.md | | Download artifacts | gh run download ID -n NAME | monitoring.md | | Create PR | gh pr create --fill | resources.md | | Check PR CI | gh pr checks --watch | monitoring.md | | Trigger workflow | gh workflow run NAME.yml | automation.md | | Fork repo | gh repo fork REPO --clone | resources.md | | REST/GraphQL API | gh api repos/{owner}/{repo} | api.md |

JSON Output

gh pr list --json                              # Discover fields
gh pr list --json number,title,author,labels   # Select fields
gh run list --json status --jq '.[] | select(.status=="completed")'

Environment & Auth

| Variable | Purpose | |----------|---------| | GH_TOKEN | Authentication token | | GH_REPO | Default owner/repo | | GH_HOST | GitHub Enterprise host | | GH_PROMPT_DISABLED=1 | Disable prompts (CI) |

Rate Limits

| Endpoint | Limit | Notes | |----------|-------|-------| | REST API | 5,000/hour | Per authenticated user | | Search API | 30/minute | All search endpoints | | Code Search | 10/minute | More restrictive | | Search results | 1,000 max | Use date partitioning for more |


Workflow Authoring

GitHub Actions workflow YAML patterns for CI/CD pipelines.

Basic Structure

name: CI Pipeline
on:
  push:
    branches: [main]
  pull_request:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: make build
      - run: make test

Caching Patterns

# Python/Poetry
- uses: actions/setup-python@v5
  with:
    python-version: '3.11'
- uses: actions/cache@v4
  with:
    path: .venv
    key: venv-${{ runner.os }}-${{ hashFiles('poetry.lock') }}

# Node.js
- uses: actions/setup-node@v4
  with:
    node-version: '20'
    cache: 'npm'

Matrix Builds

strategy:
  matrix:
    os: [ubuntu-latest, windows-latest]
    node: [18, 20]
  fail-fast: false

OIDC Authentication (AWS/GCP)

permissions:
  id-token: write
  contents: read

steps:
  - uses: aws-actions/configure-aws-credentials@v4
    with:
      role-to-assume: arn:aws:iam::123456789012:role/GitHubActionsRole
      aws-region: us-east-1

Full reference: references/workflow-authoring.md

Advanced Patterns

For enterprise CI/CD pipelines:

  • Ephemeral PR Environments - Auto-create/destroy per PR
  • Release Please - Automated semantic versioning
  • PR Cleanup - Resource cleanup on close
  • Testing Patterns - pytest, Gradle, Jest with coverage
  • Deployment Status Checks - Wait for stack readiness
  • Separate Build/Deploy Roles - Fine-grained OIDC permissions
  • Multi-Stack Ordering - Foundation → Schemas → Application

Additional References:

  • Workflow Summaries - Rich markdown output with $GITHUB_STEP_SUMMARY
  • Container Security - Multi-stage builds, Trivy scanning, image tagging
  • Security Scanning - CodeQL, Dependabot, IaC scanning (Checkov, tfsec)
  • Troubleshooting - Debug mode, flaky tests, common issues
  • Performance - Limits, runner specs, optimization tips

Scripts

Pre-built automation scripts with error handling and rate limit awareness.

| Script | Purpose | Usage | |--------|---------|-------| | find-repos-with-path.sh | Find repos containing specific paths | ./scripts/find-repos-with-path.sh .skilz [owner] | | wait-for-run.sh | Block until workflow completes | ./scripts/wait-for-run.sh RUN_ID [timeout] | | batch-search.sh | Search >1000 results via date partitioning | ./scripts/batch-search.sh "query" START END |

Exit Codes

| Script | 0 | 1 | 2 | 3 | |--------|---|---|---|---| | wait-for-run.sh | success | failure | cancelled | timeout | | find-repos-with-path.sh | success | error | - | - | | batch-search.sh | success | error | - | - |


Validation Checklist

Before completing a GitHub CLI task, verify:

- [ ] gh authenticated (`gh auth status`)
- [ ] Command syntax matches documentation
- [ ] Exit codes checked and handled appropriately
- [ ] Rate limits considered (code search: 10/min, repo search: 30/min)
- [ ] JSON output parsed correctly (if using --json)
- [ ] Artifacts downloaded to correct directory (if applicable)
- [ ] PR/Issue created with proper labels and assignees (if applicable)
- [ ] Workflow triggered and monitored to completion (if applicable)

When Not to Use

This skill covers gh CLI and GitHub Actions workflow authoring. Do not use for:

  • Git commands: git push, git commit, git pull (use git directly)
  • GitHub web UI: Questions about github.com interface navigation
  • GitHub Desktop: Different application entirely
  • Direct curl/HTTP: API calls without gh wrapper
  • GitHub mobile app: Mobile-specific features

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/mastering-github-cli-ms1aw3y3/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/mastering-github-cli-ms1aw3y3' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/mastering-github-cli-ms1aw3y3/download' --output '.skill-downloads/mastering-github-cli-ms1aw3y3/SKILL.md.part' && mv '.skill-downloads/mastering-github-cli-ms1aw3y3/SKILL.md.part' '.skill-downloads/mastering-github-cli-ms1aw3y3/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/mastering-github-cli-ms1aw3y3/SKILL.md' && test -s '.skill-downloads/mastering-github-cli-ms1aw3y3/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/mastering-github-cli' && cp -R '.skill-downloads/mastering-github-cli-ms1aw3y3' '.claude/skills/mastering-github-cli'

Cursor
test -f '.skill-downloads/mastering-github-cli-ms1aw3y3/SKILL.md' && test -s '.skill-downloads/mastering-github-cli-ms1aw3y3/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/mastering-github-cli' && cp -R '.skill-downloads/mastering-github-cli-ms1aw3y3' '.cursor/skills/mastering-github-cli'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/mastering-github-cli-ms1aw3y3'

openskills read 'mastering-github-cli-ms1aw3y3'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/mastering-github-cli-ms1aw3y3/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires