---
author: OOMOL
author_url: https://oomol.com/fr/about/
title: Créer une app OAuth GitHub pour OpenConnector
description: Créez une app OAuth GitHub, configurez l’URL de callback et
  connectez GitHub à un runtime OOMOL OpenConnector auto-hébergé.
lang: fr
canonical_url: https://oomol.com/fr/docs/openconnector-github-oauth-app/
markdown_url: https://oomol.com/fr/docs/openconnector-github-oauth-app.md
---

# Créer une app OAuth GitHub pour OpenConnector

Utilisez une app OAuth GitHub lorsqu’OpenConnector a besoin d’une connexion GitHub autorisée par l’utilisateur. Une app OAuth fournit un flux d’autorisation dans le navigateur ; un jeton d’accès personnel permet une configuration de jeton gérée par un administrateur.

## Service OpenConnector

| ID du service | Fournisseur | Type d’authentification |
| --- | --- | --- |
| `github` | GitHub | OAuth2 |

Le fournisseur OAuth GitHub d’OpenConnector peut demander des scopes comme `read:user`, `user:email`, `repo`, `workflow` et `delete_repo`. Accordez uniquement les scopes nécessaires aux opérations prévues.

## Prérequis

- Un runtime OpenConnector en cours d’exécution.
- Un compte ou une organisation GitHub où vous pouvez créer des apps OAuth.
- L’origine OpenConnector ouverte par les utilisateurs dans le navigateur, par exemple `http://localhost:3000` ou `https://connect.example.com`.

## Étape 1 : définir l’URL de callback OpenConnector

Ajoutez `/oauth/callback` à l’origine OpenConnector pour construire l’URL de callback. Pour un test local, utilisez `http://localhost:3000/oauth/callback`. Pour un déploiement public, définissez `OOMOL_CONNECT_ORIGIN`, redémarrez OpenConnector et utilisez l’URL de callback publique, par exemple `https://connect.example.com/oauth/callback`.

## Étape 2 : enregistrer une app OAuth GitHub

Dans GitHub :

1. Ouvrez **Settings**.
2. Ouvrez **Developer settings**.
3. Ouvrez **OAuth Apps**.
4. Choisissez **New OAuth App**.
5. Renseignez le nom de l’app et l’URL de la page d’accueil.
6. Définissez **Authorization callback URL** sur l’URL de callback OpenConnector exacte.
7. Enregistrez l’app.

Consultez le guide officiel GitHub [Creating an OAuth app](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app). Une app OAuth GitHub ne possède qu’une seule URL de callback d’autorisation ; créez donc des apps distinctes pour les environnements local, de staging et de production si leurs URL diffèrent.

## Étape 3 : copier les identifiants du client

Depuis la page de l’app OAuth GitHub, copiez :

| Valeur GitHub | Champ OpenConnector |
| --- | --- |
| Identifiant client | `clientId` |
| Secret client | `clientSecret` |

## Étape 4 : enregistrer le client GitHub dans OpenConnector

Utilisez la console web d’OpenConnector :

1. Ouvrez la console web d’OpenConnector, par exemple `http://localhost:3000`.
2. Ouvrez **Providers** et sélectionnez **GitHub**.
3. Choisissez **Configure OAuth Client** ou **Edit OAuth Client**.
4. Collez l’ID et le secret du client GitHub.
5. Choisissez **Save OAuth Client**.

## Étape 5 : connecter et tester

Après avoir enregistré le client OAuth, choisissez **Connect** sur la page du fournisseur GitHub. Approuvez l’app OAuth GitHub, revenez dans OpenConnector et vérifiez que la page du fournisseur indique que le compte est connecté.

Utilisez `github.get_current_user` comme opération de test à faible risque depuis la liste des opérations de la console.

## Résolution des problèmes

| Symptôme | Vérification |
| --- | --- |
| Incompatibilité de l’URI de redirection | L’URL de callback d’autorisation GitHub doit correspondre exactement à `<openconnector-origin>/oauth/callback`. |
| Le mauvais compte a autorisé l’app | Déconnectez-vous de GitHub ou utilisez un profil de navigateur vierge avant de lancer l’autorisation. |
| Les opérations sur les dépôts échouent | La connexion ne possède peut-être pas le scope `repo`, ou l’utilisateur n’a pas accès au dépôt cible. |
| Les opérations de workflow échouent | La connexion ne possède peut-être pas le scope `workflow`. Reconnectez-la après avoir ajusté les scopes demandés. |
| Les opérations de suppression échouent | Évitez `delete_repo` sauf si vous avez réellement besoin d’opérations destructrices sur les dépôts. |
