メインコンテンツまでスキップ

GitLab 連携

GitLab リポジトリを ArchiCore に接続して自動分析を行います。

機能

  • セルフホスティングサポート — gitlab.com または独自の GitLab インスタンスに接続
  • 複数インスタンス — 複数の GitLab サーバーを同時に接続
  • プライベートリポジトリ — プライベートプロジェクトへのフルアクセス
  • ブランチ選択 — 分析するブランチを選択
  • 自動分析 — プッシュイベント時に自動分析
  • マージリクエストレビュー — MR での AI によるコードレビュー

セットアップ

ステップ 1: パーソナルアクセストークンの作成

  1. GitLab → 設定アクセストークン に移動
  2. 以下の必須スコープで新しいトークンを作成:
    • api必須、完全な API アクセス用(プライベートリポジトリ、Webhook、MR コメント)
    • read_repository必須、リポジトリコンテンツの読み取り用
必須スコープ

プライベートリポジトリの場合、api スコープは必須です。これがないと、リポジトリのオーナーや管理者であっても、ArchiCore はプライベートプロジェクトにアクセスできません。

  1. トークンをコピー(再度表示されません!)

ステップ 2: GitLab インスタンスの接続

Web インターフェース経由:

  1. ArchiCore → 設定連携 に移動
  2. GitLab を追加 をクリック
  3. GitLab URL を入力(例:https://gitlab.com または https://gitlab.company.com
  4. パーソナルアクセストークンを貼り付け
  5. 接続 をクリック

API 経由:

curl -X POST https://api.archicore.io/api/gitlab/instances \
-H "Authorization: Bearer あなたの_ARCHICORE_トークン" \
-H "Content-Type: application/json" \
-d '{
"instanceUrl": "https://gitlab.company.com",
"accessToken": "あなたの_GITLAB_PAT",
"name": "会社の GitLab"
}'

ステップ 3: リポジトリの接続

  1. GitLab インスタンス接続後、プロジェクトを追加 をクリック
  2. GitLab インスタンスを選択
  3. リポジトリを検索
  4. ブランチを選択
  5. 接続 をクリック

セルフホスト GitLab

ArchiCore はセルフホスト GitLab インスタンスを完全にサポートしています。

SSL 証明書

GitLab が自己署名証明書を使用している場合:

  1. 接続時に 「自己署名証明書を許可」 を有効にする
  2. または API 呼び出しで rejectUnauthorizedSSL: false を設定

ネットワークアクセス

Webhook が機能するには、GitLab インスタンスが ArchiCore の webhook エンドポイントに到達できる必要があります:

https://api.archicore.io/api/gitlab/webhook

ArchiCore もセルフホストの場合は、環境で GITLAB_WEBHOOK_URL を設定してください。

複数インスタンス

複数の GitLab インスタンスを接続できます:

  • gitlab.com(パブリック)
  • gitlab.company.com(企業)
  • gitlab.client.com(クライアントプロジェクト)

各インスタンスは独自の認証情報で個別に管理されます。

Webhooks

ArchiCore は以下の用途で自動的に webhook を作成できます:

  • プッシュイベント — コードがプッシュされたときに分析をトリガー
  • マージリクエストイベント — MR に AI レビューコメントを追加

Webhook 設定

「自動分析」を有効にしてリポジトリを接続すると、webhook は自動的に作成されます。

手動 webhook 設定:

  1. GitLab プロジェクト → 設定Webhooks に移動
  2. URL を追加:https://api.archicore.io/api/gitlab/webhook
  3. シークレットトークン:(ArchiCore が提供)
  4. 有効にする:プッシュイベント、マージリクエストイベント

API リファレンス

インスタンス一覧

GET /api/gitlab/instances

インスタンス追加

POST /api/gitlab/instances
Content-Type: application/json

{
"instanceUrl": "https://gitlab.company.com",
"accessToken": "glpat-xxxxxxxxxxxx",
"name": "私の GitLab",
"rejectUnauthorizedSSL": true
}

プロジェクト一覧

GET /api/gitlab/instances/{instanceId}/projects?search=myproject

ブランチ一覧

GET /api/gitlab/instances/{instanceId}/projects/{projectId}/branches

リポジトリ接続

POST /api/gitlab/repositories/connect
Content-Type: application/json

{
"instanceId": "uuid",
"projectId": 123,
"autoAnalyze": true,
"analyzeMRs": true,
"branch": "main"
}

リポジトリ切断

DELETE /api/gitlab/repositories/{repoId}

トラブルシューティング

「無効なトークン」

  • 有効期限を確認 — PAT の有効期限が切れていないことを確認
  • スコープを確認 — トークンには apiread_repository スコープが必要
  • URL を確認 — セルフホスト GitLab の場合、URL が正しいことを確認(https:// を含む)
  • トークンを再生成 — 問題が続く場合は、正しいスコープで新しいトークンを作成

「SSL 証明書エラー」

  • 接続時に「自己署名証明書を許可」を有効にする
  • または CA 証明書をシステム信頼ストアに追加

「Webhook がイベントを受信しない」

  • GitLab が webhook URL に到達できることを確認
  • GitLab → プロジェクト → 設定 → Webhooks → 最近の配信を確認
  • webhook シークレットが一致していることを確認

「リポジトリが見つからない」

  • トークンスコープを確認 — プライベートリポジトリの場合、PAT には api スコープが必要です。read_api スコープだけでは不十分です。
  • トークン権限を確認 — リポジトリの管理者やオーナーであっても、スコープが不正なトークンではプライベートプロジェクトにアクセスできません。
  • 完全なパスを入力 — 接続時は、プロジェクト名だけでなく、完全なリポジトリパス(例:グループ/サブグループ/プロジェクト名)を使用してください。
  • アーカイブ状態を確認 — アーカイブされたリポジトリは検索結果に表示されない場合があります。
  • 正しいインスタンスを確認 — 正しい GitLab サーバー(gitlab.com vs セルフホスト)を見ていることを確認してください。