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:3000ouhttps://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 :
- Ouvrez Settings.
- Ouvrez Developer settings.
- Ouvrez OAuth Apps.
- Choisissez New OAuth App.
- Renseignez le nom de l’app et l’URL de la page d’accueil.
- Définissez Authorization callback URL sur l’URL de callback OpenConnector exacte.
- Enregistrez l’app.
Consultez le guide officiel GitHub 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 :
- Ouvrez la console web d’OpenConnector, par exemple
http://localhost:3000. - Ouvrez Providers et sélectionnez GitHub.
- Choisissez Configure OAuth Client ou Edit OAuth Client.
- Collez l’ID et le secret du client GitHub.
- 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. |
Wanta