Partage de secrets chiffrés pour GitHub Actions

Crée et récupère des liens de secrets autodestructeurs dans tes workflows CI/CD — avec deux lignes de YAML.

Créer un lien de secret
- uses: vaulted-fyi/share-secret@v1
  id: share
  with:
    secret: ${{ secrets.API_KEY }}
    views: 1
    expires: 24h
Récupérer et déchiffrer
- uses: vaulted-fyi/share-secret/get@v1
  id: get
  with:
    url: ${{ needs.share.outputs.url }}

- run: echo "Secret is $SECRET"
  env:
    SECRET: ${{ steps.get.outputs.secret }}

Chiffré de bout en bout

Le chiffrement AES-256-GCM s'effectue à l'intérieur du runner GitHub Actions. Architecture zero-knowledge — le serveur ne voit jamais le texte en clair ni les clés. La clé de déchiffrement vit uniquement dans le URL fragment.

Masquage automatique des logs

Appelle core.setSecret avant setOutput pour que la valeur déchiffrée n'apparaisse jamais dans les logs du workflow. Les secrets multilignes sont masqués ligne par ligne pour une protection complète.

Aucune infrastructure requise

Pas de serveur Vault, pas d'AWS Secrets Manager, pas de fichiers de configuration. Juste deux lignes de YAML dans ton workflow et tu disposes d'un partage de secrets chiffré.

Sorties composables

L'action de création produit à la fois url et id. Combine-la avec des notifications Slack, des commentaires de PR, des actions d'e-mail ou toute étape qui accepte une entrée de type chaîne.

Protection par phrase secrète

Ajoute une phrase secrète optionnelle comme second facteur. La clé de chiffrement est encapsulée avec PBKDF2 — même si quelqu'un intercepte le lien, il ne peut pas déchiffrer sans la phrase secrète.

Liens autodestructeurs

Définis des limites de consultations de 1 à 10. Définis une expiration de 1 heure à 30 jours. Les secrets sont automatiquement supprimés du serveur lorsque les limites sont atteintes.

Workflows courants

Publier le lien du secret en commentaire de PR
- uses: vaulted-fyi/share-secret@v1
  id: share
  with:
    secret: ${{ secrets.DEPLOY_TOKEN }}
    views: 1
    expires: 1h

- uses: actions/github-script@v7
  with:
    script: |
      github.rest.issues.createComment({
        owner: context.repo.owner,
        repo: context.repo.repo,
        issue_number: context.issue.number,
        body: `Deploy token: ${{ steps.share.outputs.url }}`
      })
Envoyer à Slack
- uses: vaulted-fyi/share-secret@v1
  id: share
  with:
    secret: ${{ secrets.DATABASE_URL }}
    views: 3
    expires: 7d

- uses: slackapi/slack-github-action@v2
  with:
    webhook: ${{ secrets.SLACK_WEBHOOK }}
    webhook-type: incoming-webhook
    payload: |
      {"text": "DB credentials: ${{ steps.share.outputs.url }}"}
Protégé par phrase secrète
- uses: vaulted-fyi/share-secret@v1
  id: share
  with:
    secret: ${{ secrets.PROD_KEY }}
    passphrase: ${{ secrets.SHARE_PASSPHRASE }}
    views: 1
    expires: 1h

Entrées de création

EntréeRequisPar défautDescription
secretouiLe secret en texte en clair à chiffrer et partager
viewsnon1Consultations max. avant suppression automatique (1, 3, 5, 10)
expiresnon24hDélai d'expiration (1h, 24h, 7d, 30d)
passphrasenonPhrase secrète optionnelle pour une protection supplémentaire

Entrées de récupération

EntréeRequisPar défautDescription
urlouiURL Vaulted à déchiffrer
passphrasenonPhrase secrète si le secret est protégé