正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitHubリポジトリでGitLab CI/CDを使用する

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLab CI/CDは、GitHub.comおよびGitHub Enterpriseで、あなたのGitHubリポジトリをGitLabに接続するCI/CDプロジェクトを作成して使用できます。

GitHubリポジトリでGitLab CI/CDパイプラインを使用するの動画をご覧ください。

GitHubの制限により、外部のCI/CDリポジトリとしてGitHubと認証するためにGitHub OAuthを使用することはできません。

パーソナルアクセストークンで接続

パーソナルアクセストークンは、GitHub.comリポジトリをGitLabに接続するためにのみ使用でき、GitHubユーザーはオーナーロールを持っている必要があります。

GitHubで一度限りの認可を実行して、GitLabがリポジトリにアクセスできるようにするには:

  1. GitHubで、トークンを作成します:
    1. https://github.com/settings/tokens/newを開きます。
    2. パーソナルアクセストークンを作成します。
    3. トークンの説明を入力し、スコープをrepoadmin:repo_hookを許可するように更新して、GitLabがプロジェクトにアクセスし、コミットステータスを更新し、新しいコミットをGitLabに通知するWebhookを作成できるようにします。
  2. GitLabで、プロジェクトを作成します:
    1. 右上隅で、新規作成 plus )と新規プロジェクト/リポジトリを選択します。
    2. 外部リポジトリのCI/CDを実行を選択します。
    3. GitHubを選択します。
    4. パーソナルアクセストークンに、トークンを貼り付けます。
    5. List Repositoriesを選択します。
    6. リポジトリを選択するために接続を選択します。
  3. GitHubで、GitLab CI/CDを設定するために.gitlab-ci.ymlを追加します。

GitLab:

  1. プロジェクトをインポートします。
  2. プルミラーリングを有効にします。
  3. GitHubプロジェクトインテグレーションを有効にします。
  4. 新しいコミットをGitLabに通知するWebhookをGitHub上に作成します。

手動で接続

GitHub EnterpriseGitLab.comで使用するには、この方法を使用します。

リポジトリでGitLab CI/CDを手動で有効にするには:

  1. GitHubで、トークンを作成します:

    1. https://github.com/settings/tokens/newを開きます。
    2. パーソナルアクセストークンを作成します。
    3. トークンの説明を入力し、スコープをrepoを許可するように更新して、GitLabがプロジェクトにアクセスし、コミットステータスを更新できるようにします。
  2. GitLabで、プロジェクトを作成します:

    1. 右上隅で、新規作成 plus )と新規プロジェクト/リポジトリを選択します。
    2. 外部リポジトリのCI/CDを実行リポジトリのURLを選択します。
    3. GitリポジトリのURLフィールドに、あなたのGitHubリポジトリのHTTPS URLを入力します。プロジェクトがプライベートな場合は、作成したばかりのパーソナルアクセストークンを認証に使用します。
    4. 他のすべてのフィールドに入力し、プロジェクトを作成を選択します。GitLabはポーリングベースのプルミラーリングを自動的に構成します。
  3. GitLabで、GitHubプロジェクトインテグレーションを有効にします:

    1. 左サイドバーで、設定 > インテグレーションを選択します。
    2. 有効チェックボックスを選択します。
    3. あなたのパーソナルアクセストークンとHTTPSリポジトリURLをフォームに貼り付け、保存を選択します。
  4. GitLabで、新しいコミットをGitLabに通知するGitHub Webhookを認証するために、APIスコープを持つパーソナルアクセストークンを作成します。

  5. GitHubで、設定 > Webhooksから、新しいコミットをGitLabに通知するWebhookを作成します。

    Webhook URLは、作成したGitLabパーソナルアクセストークンを使用して、プルミラーリングをトリガーするためにGitLab APIに設定する必要があります:

    https://gitlab.com/api/v4/projects/<NAMESPACE>%2F<PROJECT>/mirror/pull?private_token=<PERSONAL_ACCESS_TOKEN>

    Let me select individual eventsオプションを選択し、プルリクエストプッシュのチェックボックスをオンにします。これらの設定は、外部プルリクエスト用のパイプラインに必要です。

  6. GitHubで、GitLab CI/CDを設定するために.gitlab-ci.ymlを追加します。