一键导入
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