원클릭으로
release-github
Release GitHub complète et automatique : commit, readme, bump, PR, squash merge, tag, CI, GitHub Release. Zéro effort.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Release GitHub complète et automatique : commit, readme, bump, PR, squash merge, tag, CI, GitHub Release. Zéro effort.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Récupère les N derniers fichiers d'un dossier (Downloads par défaut) et les affiche/lit. Cross-platform (macOS, Linux, WSL). Supporte aliases (downloads, desktop, pictures, screenshots, documents, videos, music) et offset négatif pour skip les plus récents.
Add, commit et push les changements. Ajouter "?" pour le mode garde-fou, "!" pour forcer sans confirmation même sur main.
Met à jour le README selon les derniers changements
Copie les fichiers .env depuis le worktree principal vers le worktree courant
Nettoie les commentaires trop situationnels ou liés à la conversation dans les changements de la branche
Analyse et corrige les erreurs de CI (boucle watch jusqu'à green)
| name | release-github |
| description | Release GitHub complète et automatique : commit, readme, bump, PR, squash merge, tag, CI, GitHub Release. Zéro effort. |
| user_invocable | true |
| allowed-tools | Bash, Read, Edit, Write, Grep, Glob |
Release complète depuis n'importe quel état (branche ou main, commité ou non). Le but : l'utilisateur n'a rien à faire.
/release-github minor), l'utiliserLAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
echo "Dernier tag : $LAST_TAG"
git status --porcelain
type(scope): description/readme pour mettre à jour le README avec les derniers changementsdocs: update README for vX.Y.Z/bump avec le type déterminé à l'étape 1bump: vX.Y.ZSi on est sur une branche (pas main) :
CURRENT=$(git branch --show-current)
MAIN=$(git remote show origin | grep 'HEAD branch' | cut -d' ' -f5)
# Rebase (NE PAS checkout main — worktrees)
git fetch origin $MAIN
git rebase origin/$MAIN
# Push
git push -u origin "$CURRENT" --force-with-lease
Créer la PR avec titre et description en anglais. Ne PAS utiliser de HEREDOC avec quotes simples (<<'EOF') — construire le body en variable pour que les valeurs soient interpolées :
BODY="## Changes
$(git log "$LAST_TAG"..HEAD --oneline --no-merges)
## Version
$LAST_TAG → vX.Y.Z"
gh pr create --title "Release vX.Y.Z" --body "$BODY"
Si on est directement sur main, skip la PR et passer à l'étape 8.
Avant de merge, vérifier que les checks de la PR passent :
gh pr checks --watch --fail-fast
Si la CI échoue → informer l'utilisateur et STOP. Ne PAS merger une PR avec CI rouge.
Demander confirmation avant de merger.
gh pr merge --squash --delete-branch
# Fetch le merge dans main
git fetch origin $MAIN
# Vérifier que le tag n'existe pas déjà
if git rev-parse "vX.Y.Z" >/dev/null 2>&1; then
echo "Le tag vX.Y.Z existe déjà !" && STOP
fi
# Créer le tag sur le commit mergé
git tag "vX.Y.Z" origin/$MAIN
git push origin "vX.Y.Z"
# Vérifier si un workflow s'est déclenché sur le tag
gh run list --limit 5
workflow_dispatch :gh workflow list
# Demander confirmation avant de déclencher
gh workflow run <workflow_name> --ref "vX.Y.Z"
Générer le changelog depuis le dernier tag (en anglais) :
CHANGELOG=$(git log "$LAST_TAG"..origin/$MAIN --oneline --no-merges)
REPO_URL=$(gh repo view --json url --jq '.url')
NOTES="## What's Changed
$CHANGELOG
**Full Changelog**: $REPO_URL/compare/$LAST_TAG...vX.Y.Z"
gh release create "vX.Y.Z" \
--title "vX.Y.Z" \
--notes "$NOTES" \
--latest
Afficher :
LAST_TAG → vX.Y.Zgit rebase --abort, informer l'utilisateur