DemoBro GitHub Action
Générez automatiquement une vidéo de démo à chaque pull request. L'action déclenche un rendu via l'API DemoBro, attend la fin du traitement, puis poste le lien de la vidéo en commentaire sur la PR.
Zero-config
Une clé API + une ligne dans votre workflow.
CI-native
Compatible PR, push, cron, workflow_dispatch.
PR comments
Lien vidéo posté automatiquement sur la PR.
Auth scopée
Clés `dmbr_…` révocables, isolées par utilisateur.
Démarrage rapide
Trois étapes, moins d'une minute.
Créer une clé API
Dans votre dashboard DemoBro → Settings · API keys, générez une clé.
Ajouter le secret GitHub
Repo → Settings · Secrets · Actions · New secret.
Ajouter le workflow
Créez .github/workflows/demobro.yml avec le contenu ci-dessous.
name: DemoBro
on:
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
pull-requests: write
jobs:
generate-demo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate DemoBro video
uses: demobro-com/demobro-action@v1
with:
api-key: ${{ secrets.DEMOBRO_API_KEY }}
project-id: 11111111-2222-3333-4444-555555555555
comment-on-pr: true
À la prochaine PR, l'action déclenche un rendu, attend qu'il soit prêt, et poste un commentaire avec le lien MP4.
Paramètres
Tous les inputs supportés par l'action.
| Nom | Défaut | Description |
|---|---|---|
api-keyrequis | — | Clé API DemoBro (dmbr_…). À stocker dans un secret GitHub. |
project-id | — | UUID d'un projet DemoBro existant à rendre. Obligatoire si yaml-path est absent. |
yaml-path | — | Chemin vers un fichier DemoDSL YAML dans le repo. Crée ou met à jour un projet à partir de ce contenu. |
api-url | https://demobro.com/api | URL de base de l'API. À surcharger uniquement pour une instance self-hosted. |
wait | true | Attendre la fin du rendu (true) ou fire-and-forget (false). |
timeout-seconds | 1800 | Temps maximum d'attente avant abandon. |
poll-interval-seconds | 10 | Fréquence de polling du statut du rendu. |
comment-on-pr | true | Publier le lien de la vidéo en commentaire sur la PR déclenchante. |
github-token | ${{ github.token }} | Token utilisé pour poster le commentaire PR. Nécessite la permission pull-requests: write. |
fail-on-error | true | Faire échouer le job si le rendu échoue ou expire. |
Vous devez fournir project-id ou yaml-path. Si vous fournissez les deux, le YAML local écrase la configuration du projet existant avant le rendu.
Sorties
Valeurs exposées par l'action — chaînables avec d'autres steps.
| Nom | Description |
|---|---|
render-id | UUID du rendu créé sur DemoBro. |
video-url | URL absolue du MP4 une fois le statut completed atteint. Vide si wait=false. |
status | Statut final : completed, failed, pending… |
- id: demo
uses: demobro-com/demobro-action@v1
with:
api-key: ${{ secrets.DEMOBRO_API_KEY }}
project-id: 11111111-2222-3333-4444-555555555555
- name: Use video URL
run: echo "🎬 ${{ steps.demo.outputs.video-url }}"
Exemples
Patterns courants — copy / paste / adapt.
DemoDSL versionné dans le repo
Committez votre .demobro/demo.ymlet laissez l'action le synchroniser à chaque PR.
name: DemoBro (inline DSL)
on:
pull_request:
permissions:
contents: read
pull-requests: write
jobs:
demo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: demobro-com/demobro-action@v1
with:
api-key: ${{ secrets.DEMOBRO_API_KEY }}
yaml-path: .demobro/demo.yml
Plusieurs démos en parallèle (matrix)
Idéal pour rendre une démo « landing » et une démo « admin » sur la même PR.
name: Multi-demo
on: [pull_request]
jobs:
demo:
strategy:
matrix:
project:
- aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa # landing
- bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb # admin
runs-on: ubuntu-latest
steps:
- uses: demobro-com/demobro-action@v1
with:
api-key: ${{ secrets.DEMOBRO_API_KEY }}
project-id: ${{ matrix.project }}
Tester l'action en local
Le script entrypoint.sh est autonome — pratique pour déboguer sans pousser une PR.
export DEMOBRO_API_KEY=dmbr_xxxxxxxxxxxxxxxxxxxxxxxx
export DEMOBRO_API_URL=https://demobro.com/api
export DEMOBRO_PROJECT_ID=<uuid>
bash infra/github-action/entrypoint.sh
Permissions & sécurité
Permissions GitHub requises
permissions:
contents: read
pull-requests: write # pour le commentaireSans pull-requests: write le commentaire échoue silencieusement (le rendu est tout de même produit).
Auth API
L'action envoie Authorization: Bearer dmbr_… à chaque appel. Les clés sont hashées côté serveur, scopées par utilisateur, et révocables à tout moment depuis le dashboard.
💡 Stockez la clé dans un repository secret, jamais en clair dans le workflow.
Dépannage
401 / 403 « Clé API invalide ou désactivée »›
Le commentaire PR n'apparaît pas›
Le job timeout avant la fin du rendu›
yaml-path introuvable›
Render échoue avec « quota dépassé »›
Prêt à automatiser ?
Créez votre première clé API et collez le workflow quickstart dans votre repo. Première vidéo générée en moins de 5 minutes.