> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub

> Travaillez avec Devin directement dans vos dépôts

<div id="why-integrate-devin-with-github">
  ## Pourquoi intégrer Devin à GitHub ?
</div>

Intégrer Devin à votre organisation GitHub permet à Devin de créer des pull requests, de répondre aux commentaires sur les PR et de collaborer directement au sein de vos dépôts. Devin peut ainsi devenir un véritable collaborateur au sein de votre équipe d’ingénieurs.

Pour commencer, rendez-vous sur [app.devin.ai](http://app.devin.ai) > **Settings** > **Integrations** > **GitHub**, cliquez sur **Add Connection** et suivez les instructions. Vous choisirez à quels dépôts Devin peut accéder et passerez en revue les autorisations requises.

<Note>
  **Vous utilisez GitHub Enterprise Server ou GitHub Enterprise Cloud avec Data Residency ?** Consultez le [guide d’intégration GitHub Enterprise Server](/fr/enterprise/integrations/github-enterprise-server) pour obtenir des instructions de configuration.
</Note>

<div id="setting-up-the-integration">
  ## Configuration de l’intégration
</div>

<Tip>Vous devez être administrateur de votre organisation GitHub pour créer et gérer l’intégration Devin. Vous rencontrez des difficultés ? Consultez notre page [Problèmes courants](/fr/admin/common-issues#i-m-unable-to-connect-my-github-organization).</Tip>

1. Dans votre compte Devin sur [app.devin.ai](http://app.devin.ai), accédez à **Settings** > **Integrations** > **GitHub** et cliquez sur **Add Connection**.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/Add-GitHub-Connection.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=c7f5f670bcf2216e6883b99fbb267f49" alt="Devin" width="1264" height="1474" data-path="images/integrations/Add-GitHub-Connection.png" />
</Frame>

2. Si vous n’êtes pas déjà connecté à GitHub, vous serez invité à vous authentifier.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Authenticate.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=22f091a1ffec12d41b28b7ac2e955a77" alt="Devin" width="1004" height="1380" data-path="images/integrations/GitHub-Authenticate.png" />
</Frame>

3. Sélectionnez l’organisation GitHub que vous souhaitez connecter à Devin.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Select-Organization.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=84eb317b909b6a1a4ab70742563a1eec" alt="Devin" width="1296" height="726" data-path="images/integrations/GitHub-Select-Organization.png" />
</Frame>

4. Choisissez d’accorder à Devin l’accès à **All repositories** ou **Select repositories** afin de contrôler à quels dépôts Devin peut accéder.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Grant-Repository-Permissions.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=26c759c0d5fa426677ab3fa765a49952" alt="Devin" width="1004" height="652" data-path="images/integrations/GitHub-Grant-Repository-Permissions.png" />
</Frame>

5. Une fois l’autorisation GitHub terminée, vous serez redirigé vers les paramètres de Devin, où vous pourrez confirmer que l’intégration est active.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Connected.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=0381c62ef505b76d57ec7924614e45b6" alt="Devin" width="1212" height="326" data-path="images/integrations/GitHub-Connected.png" />
</Frame>

<Tip>Nous vous recommandons d’activer des règles de protection sur votre branche principale afin de garantir que toutes les vérifications requises sont effectuées avant que Devin ne puisse fusionner des modifications.</Tip>

<div id="using-devin-with-the-github-integration">
  ## Utiliser Devin avec l'intégration GitHub
</div>

<div id="for-core-and-teams-users">
  ### Pour les utilisateurs Core et Teams
</div>

Une fois l'intégration configurée, vous pouvez @mentionner des dépôts directement dans vos messages au sein de l'application web Devin.

<div id="for-enterprise-users">
  ### Pour les utilisateurs Enterprise
</div>

Une fois l’intégration configurée, vous pouvez déléguer des dépôts à des organisations spécifiques depuis **Enterprise Settings** > **Repository Permissions**.

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/Mjnq1XQhhDt7kgxn/images/enterprise/Enterprise-Add-Repositories.png?fit=max&auto=format&n=Mjnq1XQhhDt7kgxn&q=85&s=40569aced6bfea47b72b31a39865b89f" alt="Devin" width="2360" height="1322" data-path="images/enterprise/Enterprise-Add-Repositories.png" />
</Frame>

<Tip>
  Si vous travaillez avec un dépôt pour la première fois, nous vous recommandons de suivre la [configuration de l’environnement de développement dans le parcours d’onboarding](/fr/onboard-devin/environment) afin de garantir que Devin dispose d’informations exactes et
  à jour sur votre base de code. Devin répond automatiquement aux commentaires sur les PR tant que la session n’a pas été archivée.
</Tip>

<div id="managing-devins-permissions-in-github">
  ## Gestion des autorisations de Devin dans GitHub
</div>

Lors de la configuration, vous pouvez accorder à Devin l’accès à **tous les dépôts** de votre organisation ou restreindre l’accès à **certains dépôts spécifiques**.

Vous pouvez ajuster l’accès aux dépôts à tout moment via les paramètres de GitHub :

1. Pour votre organisation GitHub, accédez à **Settings** > **GitHub Apps** (par exemple, `https://github.com/organizations/<org_name>/settings/installations`)
2. Sélectionnez **Configure** pour l’intégration Devin.ai
3. Sous **Repository access**, choisissez d’accorder l’accès à tous les dépôts ou uniquement à certains dépôts
4. Cliquez sur **Save** pour appliquer vos modifications

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/c6DxxPyY6b7QnGkw/images/integrations/GitHub-Manage-Devin-Permissions.png?fit=max&auto=format&n=c6DxxPyY6b7QnGkw&q=85&s=f926780257bb9628e26d634f4a15c18c" alt="Devin" width="1984" height="1542" data-path="images/integrations/GitHub-Manage-Devin-Permissions.png" />
</Frame>

Devin a besoin des autorisations suivantes :

Accès en **lecture** à :

| Autorisation                     | Description                                                                                                                    |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `dependabot alerts`              | Permet à Devin de résoudre les alertes Dependabot en votre nom (c.-à-d. mettre à jour les versions de dépendances)             |
| `actions`                        | Permet à Devin de consulter les actions configurées pour un dépôt afin de comprendre si les changements de Devin passent la CI |
| `deployments`                    | Permet à Devin de voir quelles versions d’un dépôt ont été déployées                                                           |
| `metadata`                       | Permet à Devin de consulter les métadonnées cruciales d’un dépôt, par exemple qui en est propriétaire                          |
| `packages`                       | Permet à Devin de voir quelles versions d’un dépôt ont été publiées sous forme de package                                      |
| `pages`                          | Permet à Devin de consulter les pages associées à un dépôt, par exemple pour voir la documentation                             |
| `repository security advisories` | Permet à Devin de consulter les avis de sécurité liés à un dépôt afin d’aider à corriger les problèmes de sécurité             |
| `members`                        | Permet à Devin de consulter les membres d’une organisation                                                                     |
| `webhooks`                       | Permet à Devin de consulter les hooks configurés pour un dépôt, par exemple pour le linting et la vérification de types        |

Accès en **lecture** et en **écriture** à :

| Autorisation      | Description                                                                                                                                                      |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `checks`          | Permet à Devin de consulter et de reporter les résultats des checks pour un dépôt afin de comprendre et de communiquer si les changements de Devin passent la CI |
| `commit statuses` | Permet à Devin de consulter et de définir les statuts de commit afin d’indiquer si un commit passe la CI                                                         |
| `contents`        | Permet à Devin de contribuer à la base de code                                                                                                                   |
| `discussions`     | Permet à Devin de contribuer aux discussions                                                                                                                     |
| `issues`          | Permet à Devin d’ouvrir de nouveaux tickets/issues                                                                                                               |
| `pull requests`   | Permet à Devin de créer de nouvelles PR                                                                                                                          |
| `projects`        | Permet à Devin de consulter et de gérer les projets associés à un dépôt, par exemple pour récupérer des informations sur une tâche                               |
| `workflows`       | Permet à Devin de configurer de nouveaux workflows, par exemple pour aider à configurer la CI/CD                                                                 |

Ces autorisations permettent à Devin de travailler dans vos dépôts comme un contributeur classique — en poussant de nouvelles branches, en ouvrant des pull requests et en participant aux discussions de PR.

<div id="pull-request-templates">
  ## Modèles de pull request
</div>

Lorsque Devin crée une pull request, il utilise un modèle provenant de votre dépôt pour structurer la description de la pull request. Si vous fournissez un modèle, Devin en suit le format lorsqu’il soumet des PR sur GitHub.

<div id="devin-specific-template-recommended">
  ### Modèle spécifique à Devin (recommandé)
</div>

Vous pouvez fournir à Devin son propre modèle sans modifier votre modèle par défaut destiné aux humains en ajoutant un fichier nommé `devin_pr_template.md` dans l’un des emplacements `PULL_REQUEST_TEMPLATE` pris en charge ci-dessous. C’est utile si vous souhaitez que Devin ajoute un contexte supplémentaire, comme une checklist de relecture ou un diagramme Mermaid des fichiers modifiés.

<div id="template-search-order">
  ### Ordre de recherche des modèles
</div>

Devin recherche les modèles dans l’ordre suivant et utilise le premier trouvé :

1. PULL\_REQUEST\_TEMPLATE/devin\_pr\_template.md
2. docs/PULL\_REQUEST\_TEMPLATE/devin\_pr\_template.md
3. .github/PULL\_REQUEST\_TEMPLATE/devin\_pr\_template.md
4. pull\_request\_template.md
5. docs/pull\_request\_template.md
6. .github/pull\_request\_template.md

Si aucun modèle n’est trouvé, Devin utilise son format par défaut pour la description de PR.

<Tip>Si vous voulez que Devin utilise votre `pull_request_template.md` existant, copiez-le ou créez un lien symbolique vers l’un des chemins `devin_pr_template.md` listés ci-dessus.</Tip>

<Info>Pour plus d’informations sur les modèles de pull request GitHub (emplacements pris en charge, modèles multiples, paramètres de requête, etc.), consultez la documentation GitHub : <a href="https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository" target="_blank" rel="noopener noreferrer">Creating a pull request template for your repository</a>.</Info>

<div id="commit-signing">
  ### Signature des commits
</div>

Pour signer les commits de Devin avec GPG, configurez la clé dans votre [environnement](/fr/onboard-devin/environment/blueprints) afin qu’elle soit conservée d’une session à l’autre. Générer la clé dans un terminal de session ne fonctionnera pas — chaque session Devin démarre à partir d’une nouvelle copie de l’image de la machine ; toute clé créée pendant la session est donc supprimée à la fin de celle-ci.

<Warning>
  La signature GPG via la configuration de l’environnement ne produit des commits **Verified** que lorsque
  Devin est l’*auteur du commit*. GitHub vérifie les signatures par rapport à l’identité de l’auteur,
  mais dans tout mode **Commit authoring** où l’auteur est
  l’utilisateur à l’origine de la demande (p. ex., "Co-authored", "User only", "User as author, Devin as
  committer"), Devin remplace `user.email` à chaque session par l’adresse e-mail propre à l’utilisateur
  — ce qui ne correspondra pas à une clé GPG partagée unique. Définissez le mode [Commit
  authoring](https://app.devin.ai/settings/profile) de votre organisation sur **"Devin only"** ou
  **"Devin as author, user as committer"** avant de vous appuyer sur cette configuration.
</Warning>

Configurez cela au niveau **de l’organisation** (ou au niveau **Enterprise**, si toutes vos organisations en ont besoin) afin que chaque dépôt reçoive une configuration de signature des commits :

1. Créez (ou choisissez) un compte utilisateur GitHub dédié qui possédera à la fois l’identité d’auteur des commits *et* les identifiants utilisés par Devin pour effectuer les pushs — p. ex., `devin@company.com`. Utiliser un seul compte pour les deux simplifie la configuration de la signature ; en utiliser deux répartit la configuration décrite ci-dessous entre les deux.
2. Générez localement une clé GPG avec l’adresse e-mail de ce compte comme UID, en suivant les [instructions de GitHub](https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key).
3. Téléversez la clé **publique** sur le compte GitHub dont l’adresse e-mail vérifiée correspond à l’UID GPG, dans [GitHub Settings > SSH and GPG keys](https://github.com/settings/keys). GitHub vérifie les signatures par rapport à l’identité de l’*auteur du commit*, et non à l’identité qui effectue le push — la clé publique doit se trouver sur le compte qui possède l’adresse e-mail dans `user.email`. (S’il s’agit du même compte dédié que celui utilisé pour les pushs, vous ne devez le faire qu’une seule fois.)
4. Exportez la clé **privée**, encodez-la en base64, puis ajoutez-la (avec les `GIT_USER_NAME` / `GIT_USER_EMAIL` correspondants) comme secrets dans [Settings > Secrets](https://app.devin.ai/settings/secrets).
5. Dans votre [configuration d’environnement à l’échelle de l’organisation](https://app.devin.ai/settings/environment), importez la clé et activez la signature au démarrage de chaque session. Consultez l’[exemple de signature GPG des commits](/fr/onboard-devin/environment/templates#gpg-commit-signing) prêt à copier-coller pour obtenir le YAML complet.

<Tip>
  L’adresse e-mail du committer (`user.email`) doit correspondre à un UID de la clé GPG, et cette
  même adresse e-mail doit être une adresse vérifiée sur le compte GitHub où vous avez téléversé
  la clé publique. Si l’un de ces trois éléments ne correspond pas, GitHub affichera le commit
  comme **Unverified** même si la signature elle-même est valide.
</Tip>

<div id="security-considerations">
  ### Considérations relatives à la sécurité
</div>

* **Protection de branche :** Nous recommandons d’activer des règles de protection de branche sur votre branche principale afin de garantir que tous les contrôles requis ont été validés avant que Devin ne puisse fusionner les modifications.
* **Autorisations au niveau de l’organisation :** Devin utilise les autorisations accordées au niveau de l’organisation, et non les autorisations de l’utilisateur qui exécute la session.
* **Accès homogène :** Tous les utilisateurs ayant accès aux organisations GitHub et Devin partagent les mêmes autorisations d’intégration Devin.
* **Création de dépôts :** Devin ne peut pas créer de nouveaux dépôts dans votre compte GitHub.

<div id="ip-allowlisting">
  ## Autorisation d’adresses IP
</div>

Si votre organisation exige une autorisation d’adresses IP pour l’accès à GitHub, ajoutez les adresses IP suivantes :

* 100.20.50.251
* 44.238.19.62
* 52.10.84.81
* 52.183.72.253
* 20.172.46.235
* 52.159.232.99
* 4.204.199.103
* 54.201.200.193
* 54.69.238.189
* 100.23.34.160

<Note>Ces adresses IP peuvent changer lors de futures mises à jour. Nous vous recommandons de consulter régulièrement nos notes de version afin de suivre toute modification.</Note>

<div id="troubleshooting-github-organization-connected-to-the-wrong-devin-organization">
  ## Dépannage : organisation GitHub connectée à la mauvaise organisation Devin
</div>

Si votre organisation GitHub est déjà connectée à une organisation Devin à laquelle vous n’avez pas accès, un administrateur de l’organisation GitHub peut supprimer l’installation existante et la réinstaller pour une autre organisation Devin.

<Warning>Nous vous recommandons de confirmer avec le propriétaire de l’organisation Devin actuelle avant de supprimer l’installation.</Warning>

1. Accédez à [github.com/settings/installations](https://github.com/settings/installations) et cliquez sur **Configure** à côté de **Devin.ai Integration**.

   Si nécessaire, basculez vers le bon contexte d’organisation GitHub à l’aide du menu déroulant **Go to settings page** en haut à droite.

   <Frame>
     <img src="https://mintcdn.com/cognitionai-enterprise/Q55SWovKajVuWOnW/images/integrations/GitHub-Settings-Switch-Context.png?fit=max&auto=format&n=Q55SWovKajVuWOnW&q=85&s=2d3a5deeb2792ed3461c5e8f20261ac4" alt="Changer de contexte des paramètres GitHub" width="788" height="192" data-path="images/integrations/GitHub-Settings-Switch-Context.png" />
   </Frame>

2. Sur la page d’installation, faites défiler jusqu’à la section **Danger zone** et cliquez sur **Uninstall** pour supprimer **Devin.ai Integration** de l’organisation GitHub.

   <Frame>
     <img src="https://mintcdn.com/cognitionai-enterprise/Q55SWovKajVuWOnW/images/integrations/GitHub-Uninstall-App.png?fit=max&auto=format&n=Q55SWovKajVuWOnW&q=85&s=6ed985bca3524ea7a574a95752f7cea7" alt="Désinstaller Devin.ai Integration" width="1095" height="839" data-path="images/integrations/GitHub-Uninstall-App.png" />
   </Frame>

3. Revenez à [app.devin.ai](https://app.devin.ai) et actualisez la page. Vous pouvez maintenant réinstaller l’intégration GitHub pour votre organisation Devin.

<div id="github-integration-faqs">
  ## FAQ sur l’intégration GitHub
</div>

<AccordionGroup>
  <Accordion title="Puis-je connecter un compte GitHub personnel au compte Devin de mon organisation ?" icon="user">
    Oui, vous pouvez connecter une organisation GitHub ou un compte GitHub personnel à votre organisation Devin. Nous vous recommandons toutefois de connecter le compte qui dispose des autorisations appropriées pour que Devin puisse accéder aux dépôts dont votre équipe a besoin.
  </Accordion>

  <Accordion title="Comment l’application GitHub gère-t-elle l’authentification des utilisateurs ?" icon="shield-halved">
    Seuls les utilisateurs membres de l’organisation ayant installé l’intégration GitHub peuvent l’utiliser dans leurs sessions Devin. Devin hérite de l’accès à l’intégration GitHub en fonction de l’appartenance de l’utilisateur à cette organisation.
  </Accordion>

  <Accordion title="Comment Devin gère-t-il et fait-il tourner les clés de chiffrement ?" icon="binary">
    Les clés de chiffrement sont gérées par AWS KMS et sont périodiquement renouvelées.
  </Accordion>
</AccordionGroup>
