Démarrage rapide (local)
Vous avez déjà une GitHub App issue de Configurer une GitHub App et Installer l’App ? Ceci récupère l’image publiée et l’exécute sur votre propre machine avec des réglages choisis pour la rapidité de mise en place, pas pour un usage en production, afin d’avoir le serveur en service et vérifié en quelques minutes.
Prérequis
- Docker (ou un autre runtime de conteneurs compatible OCI)
- Une GitHub App que vous pouvez installer sur une organisation de test
- La clé privée de l’App au format
.pem
Configuration
# LOCAL DEVELOPMENT ONLY, NOT FOR PRODUCTION.
export GITHUBSTS_APP_DEFAULT_APP_ID="123456"
export GITHUBSTS_APP_DEFAULT_PRIVATE_KEY="$(cat /path/to/private-key.pem)"
export GITHUBSTS_OIDC_ALLOWED_ISSUERS="https://token.actions.githubusercontent.com"
export GITHUBSTS_OIDC_REQUIRED_AUDIENCE="https://sts.example.com"
export GITHUBSTS_BUNDLE_ENFORCEMENT="optional"Démarrer le serveur
docker run -d --name github-sts-local -p 8080:8080 \
-e GITHUBSTS_APP_DEFAULT_APP_ID \
-e GITHUBSTS_APP_DEFAULT_PRIVATE_KEY \
-e GITHUBSTS_OIDC_ALLOWED_ISSUERS \
-e GITHUBSTS_OIDC_REQUIRED_AUDIENCE \
-e GITHUBSTS_BUNDLE_ENFORCEMENT \
ghcr.io/depthmark/github-sts:latestVous construisez depuis les sources plutôt que d’utiliser l’image publiée ? Exécutez
docker build -t github-sts:local . à la racine du dépôt, puis remplacez le nom d’image dans la
commande docker run ci-dessus.
Vérifier qu’il est en service
curl -s http://127.0.0.1:8080/health
# Inclut la vivacité, la posture de sécurité et l'état des bundlesConsultez les journaux :
docker logs github-sts-localSans GITHUBSTS_JTI_BACKEND défini, le serveur utilise par défaut le backend JTI en mémoire, et
les journaux portent un avertissement à chaque démarrage : in-memory JTI cache does not survive restarts and is not shared across replicas; consider redis for production. Cet avertissement
n’est pas du bruit : la protection contre le rejeu est réinitialisée à chaque redémarrage du
conteneur.
Une fois terminé, arrêtez et supprimez le conteneur :
docker rm -f github-sts-localSuite
Cette page ne fait que démarrer le serveur : elle n’échange pas de jeton, car cela nécessite un véritable jeton OIDC provenant d’un fournisseur d’identité, que ce démarrage rapide n’émet pas. Voir Générer un jeton pour savoir comment demander un jeton OIDC depuis un workflow GitHub Actions et l’échanger ici.
Ce conteneur s’exécute aussi sans TLS, sans Redis et sans autoscaling ; c’est fait pour essayer github-sts, pas pour l’exploiter. Pour un déploiement réel, voir le démarrage rapide du chart Helm et Kubernetes.