Skip to main content

Enterprise Server 3.15 est actuellement disponible en tant que version finale (RC).

Authentification auprès de l’API GitHub

Découvrez comment vous authentifier auprès de l’API GitHub pour utiliser Actions Runner Controller avec GitHub.

Mentions légales

Vue d'ensemble

Vous pouvez authentifier Actions Runner Controller (ARC) auprès de l’API GitHub à l’aide d’une GitHub App ou d’un personal access token (classic).

Remarque : Vous ne pouvez pas vous authentifier avec une GitHub App pour les exécuteurs au niveau de l’entreprise. Pour plus d’informations, consultez « Gestion de l’accès aux exécuteurs auto-hébergés à l’aide de groupes ».

Authentification d’ARC avec une GitHub App

  1. Créez une GitHub App appartenant à une organisation. Pour plus d’informations, consultez « Inscription d’une application GitHub ». Configurez l’GitHub App comme suit.

    1. Pour « URL de la page d’accueil », entrez https://github.com/actions/actions-runner-controller.

    2. Sous « Autorisations », cliquez sur Autorisations du dépôt. Utilisez ensuite les menus déroulants pour sélectionner les autorisations d’accès suivantes.

      • Administration : Lecture et écriture

        Remarque : Administration: Read and write n’est nécessaire que lors de la configuration de Actions Runner Controller pour s’inscrire dans l’étendue du référentiel. Il n’est pas nécessaire de s’inscrire dans l’étendue de l’organisation.

      • Métadonnées : Lecture seule

    3. Sous « Autorisations », cliquez sur Autorisations de l’organisation. Utilisez ensuite les menus déroulants pour sélectionner les autorisations d’accès suivantes.

      • Exécuteurs auto-hébergés : Lecture et écriture
  2. Après avoir créé GitHub App, dans la page de GitHub App, notez la valeur « ID d’application ». Vous utiliserez cette valeur plus tard.

  3. Sous « Clés privées », cliquez sur Générer une clé privée et enregistrez le fichier .pem. Vous utiliserez cette clé plus tard.

  4. Dans le menu en haut à gauche de la page, cliquez sur Installer l’application, puis à côté de votre organisation, cliquez sur Installer pour installer l’application dans votre organisation.

  5. Après avoir confirmé les autorisations d’installation sur votre organisation, notez l’ID d’installation de l’application. Vous le réutiliserez ultérieurement. Vous trouverez l’ID d’installation de l’application dans la page d’installation de l’application, qui a le format d’URL suivant :

    https://HOSTNAME/organizations/ORGANIZATION/settings/installations/INSTALLATION_ID

  6. Enregistrez l’ID de l’application, l’ID d’installation et le fichier de clé privée .pem téléchargé via les étapes précédentes dans Kubernetes en tant que secret.

    Pour créer un secret Kubernetes avec les valeurs de vos GitHub App, exécutez la commande suivante.

    Remarque : créez le secret dans le même espace de noms que celui où le graphique gha-runner-scale-set est installé. Dans cet exemple, l’espace de noms est arc-runners, de sorte correspondre à la documentation de démarrage rapide. Pour plus d’informations, consultez « Démarrage rapide avec Actions Runner Controller ».

    Bash
    kubectl create secret generic pre-defined-secret \
       --namespace=arc-runners \
       --from-literal=github_app_id=123456 \
       --from-literal=github_app_installation_id=654321 \
       --from-literal=github_app_private_key='-----BEGIN RSA PRIVATE KEY-----********'
    

    Ensuite, à l’aide de la propriété githubConfigSecret dans votre copie du fichier values.yaml, transmettez le nom du secret en tant que référence.

    githubConfigSecret: pre-defined-secret
    

Pour obtenir d’autres options de configuration de Helm, consultez values.yaml dans le référentiel ARC.

Authentification d’ARC avec un personal access token (classic)

ARC peut utiliser des personal access tokens (classic) pour inscrire des exécuteurs auto-hébergés.

Remarque : l’authentification ARC avec un personal access token (classic) est la seule méthode d’authentification prise en charge pour enregistrer les exécuteurs au niveau de l’entreprise.

  1. Créez un personal access token (classic) avec les étendues requises. Les étendues requises varient selon que vous inscrivez des exécuteurs au niveau du dépôt, de l’organisation ou de l’entreprise. Pour plus d’informations sur la création d’un personal access token (classic), consultez « Gestion de vos jetons d'accès personnels ».

    Voici la liste des étendues de personal access token requises pour les exécuteurs ARC.

    • Exécuteurs de dépôt : repo
    • Exécuteurs d’organisation : admin:org
    • Exécuteurs d’entreprise : manage_runners:enterprise
  2. Pour créer un secret Kubernetes avec les valeurs de votre personal access token (classic), utilisez la commande suivante.

    Remarque : créez le secret dans le même espace de noms que celui où le graphique gha-runner-scale-set est installé. Dans cet exemple, l’espace de noms est arc-runners, de sorte correspondre à la documentation de démarrage rapide. Pour plus d’informations, consultez « Démarrage rapide avec Actions Runner Controller ».

    Bash
    kubectl create secret generic pre-defined-secret \
       --namespace=arc-runners \
       --from-literal=github_token='YOUR-PAT'
    
  3. Dans votre copie du fichier values.yaml, passez le nom du secret en tant que référence.

    githubConfigSecret: pre-defined-secret
    

    Pour obtenir d’autres options de configuration de Helm, consultez values.yaml dans le référentiel ARC.

Certaines parties ont été adaptées à partir de https://github.com/actions/actions-runner-controller/ sous la licence Apache-2.0 :

Copyright 2019 Moto Ishizawa

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.