mitsuhiko/gh-issue-sync

Gérez les issues GitHub localement sous forme de fichiers Markdown. Idéal pour trier, rechercher, éditer et créer des issues sans quitter votre éditeur ou terminal.

Qu'est-ce que gh-issue-sync ?

L'outil `gh-issue-sync` permet de synchroniser les issues GitHub avec des fichiers Markdown locaux, simplifiant ainsi la gestion des tâches et le tri des bogues. Il transforme chaque issue en un fichier texte simple, stocké dans les dossiers `.issues/open/` et `.issues/closed/`, que vous pouvez ouvrir, modifier et versionner avec vos outils habituels. Le support des commentaires, des issues temporaires (préfixées par `T`), et des métadonnées étendues (labels, assignés, jalons, dépendances) en fait un compagnon puissant pour les développeurs utilisant VS Code, Neovim ou tout éditeur capable de manipuler du Markdown. En exécutant `gh-issue-sync push`, les modifications locales sont appliquées sur GitHub, et les fichiers sont renommés automatiquement avec le numéro réel de l'issue.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mitsuhiko/gh-issue-sync/tree/main/skill

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait gh-issue-sync ?

Synchronise les issues GitHub vers des fichiers Markdown locaux dans .issues/open/ et .issues/closed/.

Commandes

gh-issue-sync init              # Initialiser dans un dépôt git
gh-issue-sync pull              # Récupérer les issues ouvertes (--all pour les fermées aussi)
gh-issue-sync push              # Pousser les modifications locales (--dry-run pour prévisualiser)
gh-issue-sync list              # Lister les issues (supporte les options de gh issue list + --search)
gh-issue-sync new "Titre"       # Créer une issue (--label, --edit)
gh-issue-sync close 42          # Fermer (--reason completed|not_planned)
gh-issue-sync reopen 42
gh-issue-sync status            # Afficher les modifications locales
gh-issue-sync diff 42           # Afficher la différence (--remote pour re-récupérer)

Format de fichier

.issues/open/42-correction-bug-connexion.md :

---
title: Correction bug connexion
labels: [bug, priorité:haute]
assignees: [alice]
milestone: v1.0
state: open
# Pour fermé : state_reason: completed|not_planned
# Optionnel : parent: 10, blocked_by: [11, 12], blocks: [15]
---

Corps de l'issue en Markdown.

Le numéro de l'issue est dérivé du nom de fichier, pas stocké dans le frontmatter.

Issues temporaires

Les nouvelles issues reçoivent un ID préfixé par T (ex. T1a2b3c). Le nom de fichier doit commencer par T :

.issues/open/T1a2b3c-ma-nouvelle-issue.md

Lors du push, le fichier est renommé avec le vrai numéro d'issue (ex. 42-ma-nouvelle-issue.md) et number: dans le frontmatter est mis à jour. Toutes les références #T1a2b3c dans d'autres issues sont également mises à jour vers #42.

Commentaires

Pour poster un commentaire lors du push, créez un fichier .comment.md à côté de l'issue :

.issues/open/42.comment.md
.issues/open/42-correction-bug-connexion.comment.md

Le contenu est en Markdown simple. Le fichier est supprimé après que le commentaire soit posté.

Notes

  • Le pull ignore les conflits ; utilisez --force pour écraser les fichiers locaux.

Skills associés