Configurer l’intégration GitHub
Ce guide couvre les aspects de la configuration propres à GitHub. GitHub est l’un des trois hébergeurs de code pris en charge — consultez Connecter un hébergeur de code pour connecter GitLab ou Bitbucket, et pour savoir comment un espace de travail combine les trois.
Prérequis
Section intitulée « Prérequis »- Un compte GitHub ayant accès aux dépôts sur lesquels vous voulez travailler
- Soit une GitHub App enregistrée pour votre serveur (voir
Créer la GitHub App) afin de pouvoir vous
connecter, soit un jeton d’accès personnel disposant de
repoetread:orgà coller
Se connecter avec GitHub
Section intitulée « Se connecter avec GitHub »Un flux d’appareil : GitHub vous affiche un code court, vous l’approuvez sur github.com, et le serveur reçoit l’identifiant — aucune URL de rappel, aucun port, rien à exposer. Disponible dès que le serveur dispose d’un ID client, ce qu’un build officiel embarque déjà.
- Accédez à Paramètres → Espace de travail → Profil et identité → Hébergement de code (ou à la première étape de la configuration initiale)
- Sur la ligne GitHub, cliquez sur Se connecter avec GitHub
- Une boîte de dialogue affiche un code de huit caractères et ouvre github.com/login/device dans votre navigateur. Le code est déjà dans votre presse-papiers
- Collez-le, approuvez l’application, puis revenez. La ligne passe d’elle-même à « Connecté en tant que your-username »
La boîte de dialogue peut être fermée pendant que vous terminez dans le navigateur — le serveur continue ses requêtes jusqu’à l’expiration du code (environ 15 minutes), la connexion aboutit donc quand même.
Ou coller un jeton
Section intitulée « Ou coller un jeton »La solution de repli lorsque le serveur n’a pas d’application, lorsque l’application n’est pas installée sur un compte dont vous avez besoin, ou lorsque vous préférez tout simplement utiliser un PAT.
- Accédez à Paramètres → Espace de travail → Profil et identité → Hébergement de code
- Sur la ligne GitHub, cliquez sur Ajouter un jeton
- Collez un jeton disposant de
repoetread:org(classique) et enregistrez. Un jeton à granularité fine a besoin des permissions de dépôt Contents et Pull requests (lecture et écriture), plus Checks et Actions (lecture).
Le jeton est testé au moment de son enregistrement, ce qui permet à la ligne de nommer le compte auquel il appartient. Cliquez sur Déconnecter pour le supprimer.
Point de contrôle : la ligne GitHub affiche « Connecté en tant que your-username ». Un suffixe indique la source lorsque l’identifiant qui répond n’est pas le vôtre — « via l’application de ce serveur » ou « depuis l’environnement ».
Ce que l’intégration vous apporte
Section intitulée « Ce que l’intégration vous apporte »| Fonctionnalité | Fonctionnement |
|---|---|
| Liste et détail des PR | L’API REST GitHub, depuis le serveur, sous l’identité de l’application ou vos propres identifiants |
| Exécutions de vérification | L’API GitHub Checks |
| Publication des revues | Une étape soumise à une action de l’utilisateur, qui publie votre revue sur la PR |
| Enregistrement des dépôts | Un checkout est accepté si son dépôt distant origin pointe vers github.com — ou vers gitlab.com / bitbucket.org |
| Accès GitHub des agents | Le courtier d’identifiants injecte un jeton en lecture seule sous forme de GH_TOKEN / GITHUB_TOKEN ; les push passent par Control Center |
| Signaux de notification | Une interrogation côté serveur de votre boîte de réception GitHub déclenche « Mentionné dans une pull request » et « Revue demandée » |
| Profils utilisateur | Cartes de profil au survol et filtrage des PR par auteur |
Certains chemins passent par l’API GraphQL plutôt que REST lorsque c’est moins coûteux — l’activité des branches pour le sélecteur de composition de PR et l’état de revue en direct qui détermine si une notification de revue demandée est encore en attente.
Surveiller les pannes de GitHub
Section intitulée « Surveiller les pannes de GitHub »La barre de titre affiche une pastille d’état lorsqu’un fournisseur est dégradé, pour GitHub, Claude, OpenAI et Kimi. Elle est masquée tant que tout va bien — c’est la présence qui signale un problème, pas son absence.
Cliquez sur la pastille pour ouvrir un volet indiquant l’état de chaque fournisseur, avec un bouton d’actualisation. Les états s’actualisent d’eux-mêmes toutes les deux minutes.
Savoir comment les agents agissent sur GitHub
Section intitulée « Savoir comment les agents agissent sur GitHub »- Un agent qui travaille dans un arbre de travail GitHub reçoit toujours un jeton GitHub en lecture seule. Un push passe par Control Center, qui interroge la règle Pousser vers un dépôt distant puis le transmet avec un jeton d’écriture que l’agent ne détient jamais. Voir Configurer les politiques de bac à sable
- Les commits créés par un agent sont signés en tant qu’agent — le nom
affiché suivi de
(agent), à une adresse synthétique indexée par l’ID de l’agent — jamais en tant qu’humain. La personne à l’origine de la demande est créditée par un trailerCo-Authored-By - Avec une GitHub App configurée, le courtier génère à chaque lancement des jetons
d’installation à granularité fine, limités au dépôt et d’une durée d’environ une
heure, au lieu de transmettre un jeton large. L’installation est résolue à
partir du propriétaire du dépôt de l’exécution, de sorte qu’une application
installée sur plusieurs comptes s’applique correctement à celui que l’exécution
touche. Sans application, les agents reçoivent le jeton de l’environnement,
qu’il est impossible de restreindre à la lecture seule : la règle de push
contraint alors
git push, mais pas le code qui utilise directement le jeton - Le jeton est toujours celui du courtier, jamais celui du membre demandeur. Le jeton du serveur est retenu pour une exécution qui agit pour un membre qui n’est pas propriétaire et n’a pas connecté GitHub
Dépannage
Section intitulée « Dépannage »La liste des PR est vide et indique que GitHub n’est pas connecté
Section intitulée « La liste des PR est vide et indique que GitHub n’est pas connecté »Vous n’avez aucun identifiant GitHub sur ce serveur. Connectez-vous ou collez un jeton dans Hébergement de code. Les dépôts des autres forges ne sont pas touchés — seuls ceux de GitHub n’apportent rien.
La ligne propose « Ajouter un jeton » mais pas « Se connecter avec GitHub »
Section intitulée « La ligne propose « Ajouter un jeton » mais pas « Se connecter avec GitHub » »Le serveur n’a pas d’ID client — ce qui est normal pour un build depuis les sources, les identifiants n’étant intégrés qu’aux builds officiels. Voir Créer la GitHub App : cela prend environ deux minutes et seul le propriétaire du serveur doit s’en charger, une fois.
La boîte de dialogue de connexion indique que le fournisseur n’a renvoyé aucun code d’appareil
Section intitulée « La boîte de dialogue de connexion indique que le fournisseur n’a renvoyé aucun code d’appareil »La GitHub App existe, mais sa case Device flow est décochée. Activez-la dans les paramètres de l’application (General → Device flow) et réessayez.
La ligne indique « via l’application de ce serveur » alors que j’attendais mon propre compte
Section intitulée « La ligne indique « via l’application de ce serveur » alors que j’attendais mon propre compte »Vous n’êtes pas connecté ; ce que vous voyez, c’est l’identité applicative du serveur qui répond. Cliquez sur Se connecter avec GitHub sur cette ligne.
Un PAT à granularité fine n’affiche ni bouton de fusion ni état des vérifications
Section intitulée « Un PAT à granularité fine n’affiche ni bouton de fusion ni état des vérifications »Le jeton a besoin de Contents et Pull requests (lecture et écriture), plus Checks et Actions (lecture). Après l’avoir modifié, collez-le à nouveau dans Hébergement de code.
Un dépôt refuse de s’enregistrer
Section intitulée « Un dépôt refuse de s’enregistrer »L’enregistrement exige les trois conditions suivantes : le chemin se trouve à
l’intérieur d’un arbre de travail Git, il possède un dépôt distant origin, et ce
dépôt distant pointe vers une forge prise en charge (github.com, gitlab.com ou
bitbucket.org). Voir
Ajouter des dépôts à un espace de travail.
Tout cesse de fonctionner un moment après un usage intensif
Section intitulée « Tout cesse de fonctionner un moment après un usage intensif »C’est le coupe-circuit de la limite de débit. GitHub signale sa limite principale
par un 403 portant x-ratelimit-remaining: 0 et une heure de réinitialisation ;
à la vue d’une telle réponse, le client fait échouer localement les requêtes
suivantes sans appel réseau jusqu’à l’écoulement de la fenêtre, de sorte qu’une
tempête de nouvelles tentatives ne peut pas aggraver la limite. Les défaillances
transitoires sont réessayées jusqu’à trois fois avec un délai exponentiel, en
respectant retry-after.