Flux Git Sécurisé

VérifiéSûr

Automatise les conventions Git avec validation des branches, formatage des commits, protection des secrets et garde-fous de sécurité. Applique les bonnes pratiques à chaque opération Git.

Spar Skills Guide Bot
DeveloppementIntermédiaire
4002/06/2026
Claude CodeCursorWindsurf
#git-workflow#branch-naming#commit-format#secret-protection#safety-guards

Recommandé pour

Notre avis

Enforce des conventions de workflow Git pour les branches, les messages de commit et la protection des secrets avec des garde-fous automatiques.

Points forts

  • Automatise la validation des noms de branches et messages de commit selon une convention définie
  • Empêche la divulgation accidentelle de fichiers sensibles (clés, tokens) avant le commit
  • Bloque les pushs vers les branches protégées et les opérations dangereuses (force-push, amend après push)
  • Offre un mode interactif pour clarifier l'intention de l'utilisateur

Limites

  • Les conventions imposées peuvent ne pas correspondre à tous les styles de projet
  • Nécessite une configuration initiale du fichier .gitignore et des conventions
  • Peut ralentir le workflow si les règles sont trop strictes pour des modifications rapides
Quand l'utiliser

Utilisez cette compétence dans un contexte d'équipe où une standardisation du workflow Git est nécessaire et où la sécurité des secrets est une priorité.

Quand l'éviter

Évitez cette compétence pour des projets personnels ou expérimentaux où la flexibilité est préférée, ou lorsque l'équipe n'a pas validé les conventions.

Analyse de sécurité

Sûr
Score qualité88/100

The skill uses Bash to run git commands, enforcing branch naming, commit conventions, secret protection, and safety guards. No destructive, exfiltrating, or obfuscated actions are present. It may modify .gitignore to add security patterns, but this is within normal Git operations and does not pose a risk. The declared tool restriction to 'Bash(git:*)' further limits any potential misuse.

Aucun point d'attention détecté

Exemples

Create a feature branch
Create a new branch for the user authentication feature with scope 'auth'.
Commit changes with proper format
Commit the staged changes with a message describing the fix for the login timeout issue in the auth module.
Push to protected branch blocked
Push the current branch to main to deploy the latest changes.

name: git description: Git workflow with enforced branch naming, commit formatting, secret protection, and safety guards. Use when: creating branches, committing changes, pushing code, merging, resolving conflicts, creating PRs. Triggers: git operations, create branch, commit, push, merge, branch naming, commit message format. allowed-tools: Bash(git:*)

Git Workflow

Enforces repository conventions for branches, commits, and pushes.

Conventions: See @.claude/skills/git/references/conventions.md

Process

VALIDATE → EXECUTE → VERIFY

Decision Rules

Branch Type

  • New functionality → feature/<scope>/<desc>
  • Bug fix → fix/<scope>/<desc>
  • Refactor → refactor/<scope>/<desc>
  • Docs → docs/<scope>/<desc>
  • Maintenance → chore/<scope>/<desc>
  • Urgent fix → hotfix/<desc>
  • Release → release/<version>

Commit Type

  • Feature → feature(<scope>): ...
  • Fix → fix(<scope>): ...
  • Refactor → refactor(<scope>): ...
  • Test → test(<scope>): ...
  • Docs → docs(<scope>): ...

Source Branch

  • feature/fix/refactor/docs/chore → from main
  • hotfix → from release/* or main
  • release → from main

Secret Protection

Protected Patterns

Files (block commit):

*.env
*.env.*
*.pem
*.key
*.p12
*.pfx
*.crt
credentials.*
secrets.*
*_secret.*
*.keystore

Directories (block commit):

.secrets/
.credentials/

Allowed exceptions:

*.env.example
*.example

Pre-Commit Check

Before any commit, scan staged files:

git diff --cached --name-only

If protected pattern detected:

⚠ Secret Protection

Detected secret file staged for commit:
  [filename]

Action: Adding to .gitignore and unstaging file.

Then:

  1. Add pattern to .gitignore
  2. Unstage file: git reset HEAD [file]
  3. Continue commit without secret

.gitignore Management

If .gitignore doesn't exist:

ℹ Creating .gitignore

Project has no .gitignore. Creating with security patterns.

Create with standard security block:

# Secrets - NEVER COMMIT
.env
.env.*
!.env.example
*.pem
*.key
*.p12
*.secret
.secrets/
.credentials/

If .gitignore exists but missing pattern:

Append missing pattern to existing .gitignore.

Safety Guards

Block Operations

| Trigger | Action | |---------|--------| | Push to main/master/release/*/prod/* | Block → suggest PR | | Force-push on shared branch | Block | | Amend after push | Block → suggest new commit | | Secret file in staged changes | Block → update .gitignore | | Binary >100MB | Block |

Warn Only

  • Binary >10MB

Validation

Before commit/push:

  1. Branch name matches convention?
  2. Commit message format correct?
  3. No secrets in staged files?
  4. Not pushing to protected branch?

Interactive Mode

When ambiguous, ask:

"Possible actions:
1. Create branch
2. Commit changes  
3. Push commits
Which matches your intent?"
Skills similaires