Aller au contenu

GitLab

GitLab accepte deux types d’identifiants ; les deux fonctionnent avec gitlab.com et avec un GitLab autogéré.

Application OAuthJeton d’accès personnel
Appartient àUne application que vous enregistrez sur GitLabLe compte d’une personne
JetonsJeton d’accès renouvelé automatiquementValable jusqu’à sa propre date d’expiration
Scopesapi, read_user, read_repositoryapi (usage complet) ou read_api (lecture seule)
  1. Credentials → Add credential → GitLab.
  2. Choisissez où se trouve GitLab : gitlab.com (Cloud) ou Self-hosted. Pour Self-hosted, saisissez l’URL de l’instance, par ex. https://gitlab.acme.com (sans chemin final).
  3. Choisissez le mode d’authentification : Register an application ou Paste a token.
  1. Dans GitLab, créez une application sous User Settings → Applications.
  2. Collez la Redirect URI affichée par l’assistant, exactement telle quelle.
  3. Cochez les scopes api, read_user, read_repository.
  4. Reportez l’Application ID et le Secret dans l’assistant et enregistrez. Un nom de groupe est facultatif.
  5. Terminez l’autorisation avec Connect with GitLab sur l’identifiant.
  1. Dans GitLab, créez un jeton d’accès personnel avec api ou read_api.
  2. Collez-le dans l’assistant. Un nom de groupe est facultatif.

Avant d’enregistrer le jeton, AppArch lit ses scopes et sa date d’expiration auprès de GitLab. Un jeton sans api ni read_api est refusé. Un jeton read_api est accepté avec un avertissement de lecture seule : analyses et rapports fonctionnent, mais ArchPilot ne peut pas écrire de commentaires avec.

  • ArchPilot commente les merge requests.
  • Les résultats ArchScan / ArchSecurity des exécutions CI apparaissent dans le panneau.

Ajoutez le job du runner à votre pipeline GitLab CI :

# Image pulls are authorized with your INSTALLATION credential, not the project token
# (Settings → CI/CD → Variables):
# DOCKER_AUTH_CONFIG = {"auths":{"hub.apparch.io":{"auth":"base64(<installation-id>:<installation-key>)"}}}
archpilot:
image: hub.apparch.io/collectors/dotnet:latest
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
variables:
APPARCH_Collector__Token: "$APPARCH_TOKEN"
APPARCH_Collector__ApiUrl: "https://api.yourdomain.com"
script:
# Optional flags: --modules archpilot,archscan (pin what runs)
# --fail-on critical (fail this step when findings at/above the level exist)
- apparch "$CI_PROJECT_DIR"

Autres exemples de CI et configuration du jeton : Ajouter le runner à la CI.