La Marketplace GitHub Actions
Mise à jour :
La Marketplace GitHub Actions est une place de marché qui regroupe des milliers
d’actions réutilisables créées par GitHub, des éditeurs, et la communauté.
Plutôt que de réécrire la logique pour cloner un repo, installer Node.js, ou
déployer sur AWS, vous utilisez une action existante avec uses:.
C’est un gain de temps énorme. Mais c’est aussi un risque de sécurité majeur si vous ne savez pas évaluer ce que vous allez utiliser.

Qu’est-ce qu’une action ?
Une action est un composant réutilisable qui encapsule une tâche. Au lieu d’écrire 20 lignes de shell pour configurer Python avec cache, vous écrivez :
- uses: actions/setup-python@v5 with: python-version: '3.12' cache: 'pip'L’action setup-python gère tout : téléchargement, installation, configuration
du PATH, mise en cache des dépendances. Vous vous concentrez sur votre logique
métier.
Les trois types d’actions
| Type | Description | Linux | macOS | Windows |
|---|---|---|---|---|
| JavaScript | Code JS exécuté directement sur le runner | ✅ | ✅ | ✅ |
| Docker | Conteneur avec un environnement complet | ✅ | ❌ | ❌ |
| Composite | Assemblage d’autres actions et commandes | ✅ | ✅ | ✅ |
Les actions JavaScript sont les plus rapides (pas de pull d’image) et fonctionnent sur tous les runners. Les actions Docker sont plus lourdes mais garantissent un environnement isolé et reproductible — attention, elles ne fonctionnent que sur Linux.
Anatomie d’une référence d’action
Quand vous écrivez uses: actions/checkout@v4, voici ce que ça signifie :
uses: actions/checkout@v4 └──────┬──────┘ └┬┘ owner/repo ref- owner : L’organisation ou l’utilisateur GitHub (ici
actions, l’org officielle GitHub) - repo : Le nom du repository contenant l’action
- ref : La version à utiliser (tag, branche, ou SHA)
Les différentes façons de référencer une version
# Tag (le plus courant, mais MUTABLE)- uses: actions/checkout@v4
# Branche (DANGEREUX - change à chaque commit)- uses: actions/checkout@main
# SHA complet (RECOMMANDÉ - immuable)- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683Trouver des actions sur La Marketplace
La Marketplace est accessible sur github.com/marketplace?type=actions ↗. Vous pouvez rechercher par catégorie ou par mot-clé.
Les catégories principales
| Catégorie | Exemples d’actions |
|---|---|
| Continuous integration | Tests, linting, build |
| Deployment | AWS, Azure, GCP, Kubernetes |
| Code quality | SonarQube, CodeClimate |
| Security | Trivy, Snyk, CodeQL |
| Utilities | Cache, artifacts, notifications |
Actions officielles GitHub
L’organisation actions maintient des actions officielles, testées et
sécurisées :
| Action | Description |
|---|---|
actions/checkout | Clone le repository |
actions/setup-node | Configure Node.js |
actions/setup-python | Configure Python |
actions/cache | Cache des dépendances |
actions/upload-artifact | Sauvegarde des fichiers entre jobs |
actions/download-artifact | Récupère des artifacts |
Ces actions sont un bon point de départ. Elles sont maintenues activement, documentées, et suivent les bonnes pratiques de sécurité.
Évaluer une action avant de l’utiliser
Avant d’ajouter une action à votre workflow, posez-vous ces questions :
-
Qui est l’auteur ?
Sur La Marketplace, cherchez le badge Verified creator (✓) qui indique que GitHub a vérifié l’identité de l’organisation. Les actions de
actions/*(GitHub),aws-actions/*(AWS), oudocker/*(Docker Inc.) inspirent plus confiance qu’une action derandom-user-42. -
Est-elle maintenue ?
Vérifiez la date du dernier commit, les issues ouvertes, et la réactivité des mainteneurs. Une action abandonnée depuis 2 ans est un risque.
-
Combien de personnes l’utilisent ?
Le nombre d’étoiles et de forks donne une indication. Une action populaire a plus d’yeux dessus, donc plus de chances que les failles soient détectées.
-
Ai-je vraiment besoin d’une action ?
Parfois, 3 lignes de shell suffisent. Une action ajoute une dépendance et un risque. Si la logique est simple, préférez
run:. -
Quelles permissions demande-t-elle ?
Lisez la documentation. Si une action de notification Slack demande
contents: write, c’est suspect.
Signaux d’alerte
Méfiez-vous si :
- ❌ Le repository n’a pas de fichier
action.ymldocumenté - ❌ Le code source n’est pas lisible (obfusqué)
- ❌ L’action demande des permissions excessives
- ❌ Peu d’étoiles et dernier commit il y a plus d’un an
- ❌ Pas de releases, juste une branche
main - ❌ Le nom ressemble à une action populaire (typosquatting)
Sécurité : les bons réflexes
Utiliser une action tierce, c’est exécuter du code d’un inconnu avec accès à vos secrets. Adoptez ces réflexes dès maintenant :
1. Épingler par SHA
Au lieu des tags mutables, utilisez le SHA complet du commit :
# ❌ Tag mutable - peut changer sans prévenir- uses: actions/checkout@v4
# ✅ SHA immuable - vous contrôlez exactement le code exécuté- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2Le commentaire # v4.2.2 conserve la lisibilité tout en garantissant
l’immutabilité.
Comment trouver le SHA ?
# Via l'API GitHubcurl -s https://api.github.com/repos/actions/checkout/commits/v4 | jq -r .sha
# Via la CLI ghgh api repos/actions/checkout/commits/v4 --jq .sha2. Vérifier avec OpenSSF Scorecard
OpenSSF Scorecard ↗ analyse la maturité sécurité d’un projet open source. Entrez l’URL du repository de l’action pour voir son score.
Un score élevé indique que le projet suit les bonnes pratiques : branch protection, signed releases, dependency updates, etc.
3. Préférer les actions officielles
Quand le choix existe, préférez :
- Les actions de l’organisation
actions/*(GitHub officiel) - Les actions d’éditeurs connus (
aws-actions/*,docker/*,azure/*) - Les actions de projets établis (
anchore/*,aquasecurity/*)
4. Limiter les permissions
Même si une action est de confiance, appliquez le principe de moindre privilège :
permissions: contents: read # Par défaut, lecture seule
jobs: test: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2Si l’action est compromise, les dégâts sont limités.
5. Activer Dependabot pour les actions
Dependabot peut surveiller les actions de vos workflows et vous alerter en cas de vulnérabilité. Il peut aussi créer des pull requests pour mettre à jour les actions automatiquement.
Ajoutez dans .github/dependabot.yml :
version: 2updates: - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly"Dependabot créera des PR quand une nouvelle version d’une action est disponible, en conservant l’épinglage par SHA si vous l’utilisez.
Passer des paramètres à une action
La plupart des actions acceptent des paramètres via la propriété with: :
- uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: python-version: '3.12' # Version de Python cache: 'pip' # Activer le cache pip cache-dependency-path: | # Fichiers pour le cache requirements.txt requirements-dev.txtConsultez toujours la documentation de l’action pour connaître les paramètres
disponibles. La page du Marketplace ou le README.md du repository liste les
inputs et leurs valeurs par défaut.
Dépannage
L’action n’est pas trouvée
Error: Unable to resolve action `actions/checkout@v99`Causes probables :
- Le tag/SHA n’existe pas
- Typo dans le nom de l’action
- Le repository est privé ou a été supprimé
Solution : Vérifiez l’URL exacte sur La Marketplace et le tag dans les releases du repository.
Erreur de permissions
Error: Resource not accessible by integrationCauses probables :
- L’action a besoin de permissions que vous n’avez pas déclarées
- Le token GITHUB_TOKEN n’a pas les droits nécessaires
Solution : Ajoutez les permissions requises dans votre workflow :
permissions: contents: read issues: write # Si l'action doit créer des issuesL’action est lente
Causes probables :
- Action Docker qui télécharge une grosse image
- Pas de cache configuré
- Action mal optimisée
Solution : Cherchez une alternative JavaScript ou configurez le cache si l’action le supporte.
Créer ses propres actions : la meilleure façon d’apprendre
Avant de chercher une action sur La Marketplace, posez-vous la question : puis-je le faire moi-même ?
Créer vos propres actions présente plusieurs avantages :
- Maîtrise totale : vous savez exactement ce que fait le code
- Apprentissage : vous comprenez le fonctionnement interne de GitHub Actions
- Sécurité : pas de dépendance tierce = pas de risque supply chain
- Personnalisation : adapté exactement à vos besoins
Quand créer plutôt qu’utiliser ?
| Situation | Recommandation |
|---|---|
| Logique simple (quelques commandes) | run: avec du shell |
| Logique réutilisée dans plusieurs workflows | Action composite |
| Besoin d’un environnement spécifique | Action Docker |
| Besoin de performances et compatibilité multi-OS | Action JavaScript |
| Tâche complexe et bien maintenue | Action du Marketplace |
Exemple : action composite simple
Créez .github/actions/setup-project/action.yml :
name: 'Setup Project'description: 'Configure l''environnement du projet'
runs: using: 'composite' steps: - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm'
- name: Install dependencies shell: bash run: npm ci
- name: Verify installation shell: bash run: npm --version && node --versionUtilisez-la dans vos workflows :
steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-project # Action localeÀ retenir
- Créez vos propres actions pour les cas simples — c’est la meilleure façon d’apprendre
- La Marketplace contient des milliers d’actions, mais toutes ne sont pas sûres
- Une action exécute du code tiers avec accès à vos secrets
- Épinglez toujours par SHA pour éviter les modifications surprises
- Évaluez l’auteur (badge Verified creator), la maintenance, et la popularité
- Le typosquatting est un risque réel — vérifiez l’orthographe exacte
- Préférez les actions officielles (
actions/*, éditeurs vérifiés) - Activez Dependabot pour être alerté des vulnérabilités
Contrôle des connaissances
Testez vos connaissances sur le Marketplace et les actions GitHub Actions.
Pourquoi ce contrôle ?
Cet contrôle va vous permettre de valider vos connaissances sur le sujet abordé dans le guide. Il comporte des QCM, des questions vrai/faux et des réponses ouvertes à un mot.
🕒 Le chronomètre commence dès que vous cliquez sur Démarrer le test. Vous devrez terminer l’examen avant la fin du temps imparti.
🎯 Pour réussir, vous devez obtenir au moins 70% de bonnes réponses.
💡 Je ne fournis pas directement les réponses aux questions. Cependant, si certaines sont complexes, des pistes d’explication pourront être proposées dans le guide ou après l’examen.
Bonne chance ! 🚀
Liens utiles
- GitHub Actions Marketplace ↗ — Catalogue officiel des actions
- About custom actions ↗ — Documentation officielle sur les types d’actions
- Creating a composite action ↗ — Tutoriel pour créer une action composite
- Sécurité GitHub Actions : les bases — Les 3 risques principaux dont les actions tierces
- OpenSSF Scorecard — Évaluer la maturité sécurité d’un projet