AgentSkillsCN

push

通过安全锁机制,将提交推送到远程仓库,该锁会阻止向 origin/main 和 origin/master 推送代码。当用户请求推送、/push,或希望推送其更改时,可使用此技能。

SKILL.md
--- frontmatter
name: push
description: Pousse les commits vers le remote avec un verrou de securite qui bloque les push vers origin/main et origin/master. Utiliser quand l'utilisateur demande de faire un push, /push, ou veut pousser ses changements.

Push Securise

Pousse les commits vers le remote avec un verrou de securite qui empeche les push directs vers les branches protegees (main/master).

Verrou de Securite

IMPORTANT : Ce skill REFUSE systematiquement de pousser vers :

  • origin/main
  • origin/master

Ce verrou est une mesure de securite pour eviter les push accidentels sur les branches principales.

Instructions

1. Verifier la branche courante

bash
git branch --show-current

2. Verifier le statut

bash
git status

Verifier :

  • S'il y a des commits a pousser
  • Si la branche track un remote
  • L'etat de la branche par rapport au remote

3. Appliquer le verrou de securite

AVANT tout push, verifier la branche cible :

bash
git rev-parse --abbrev-ref --symbolic-full-name @{upstream} 2>/dev/null || echo "no-upstream"

BLOQUER le push si la branche courante est main ou master :

Si la branche courante est main ou master :

  1. NE PAS executer le push
  2. Afficher un message d'erreur clair
  3. Suggerer de creer une branche de feature

Message a afficher :

code
ERREUR : Push vers origin/main ou origin/master bloque

Le push direct vers les branches principales est interdit pour des raisons de securite.

Pour pousser vos changements :
1. Creez une branche de feature : git checkout -b feature/ma-feature
2. Poussez sur cette branche : git push -u origin feature/ma-feature
3. Creez une Merge Request / Pull Request

4. Executer le push (si autorise)

Si la branche n'est PAS main ou master :

Premier push (nouvelle branche) :

bash
git push -u origin <branch-name>

Push subsequent :

bash
git push

Push avec tags :

bash
git push --follow-tags

Workflow complet

  1. Obtenir le nom de la branche courante
  2. VERIFIER que ce n'est PAS main ou master
  3. Si main ou master → BLOQUER et afficher le message d'erreur
  4. Sinon → executer le push normalement
  5. Confirmer le succes du push

Exemples

Push autorise

code
Branche : feature/MOJ-1234-add-login
→ Push autorise vers origin/feature/MOJ-1234-add-login
code
Branche : fix/UNIV-456-bugfix
→ Push autorise vers origin/fix/UNIV-456-bugfix

Push bloque

code
Branche : main
→ BLOQUE - Afficher message d'erreur
code
Branche : master
→ BLOQUE - Afficher message d'erreur

Options supportees

OptionDescription
--forceForce push (utiliser avec precaution)
--force-with-leaseForce push securise
--tagsPousse aussi les tags
--follow-tagsPousse les tags annotes
-u / --set-upstreamConfigure le tracking de la branche

Notes importantes

  • Le verrou sur main/master est NON NEGOCIABLE
  • Si l'utilisateur insiste pour pousser sur main/master, REFUSER et expliquer pourquoi
  • Suggerer toujours le workflow via Merge Request / Pull Request
  • Ce verrou protege contre les erreurs humaines, pas contre les intentions malveillantes