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がリポジトリにアクセスできるようにするには:
- GitHubで、トークンを作成します:
- https://github.com/settings/tokens/newを開きます。
- パーソナルアクセストークンを作成します。
- トークンの説明を入力し、スコープを
repoとadmin:repo_hookを許可するように更新して、GitLabがプロジェクトにアクセスし、コミットステータスを更新し、新しいコミットをGitLabに通知するWebhookを作成できるようにします。
- GitLabで、プロジェクトを作成します:
- 右上隅で、新規作成( )と新規プロジェクト/リポジトリを選択します。
- 外部リポジトリのCI/CDを実行を選択します。
- GitHubを選択します。
- パーソナルアクセストークンに、トークンを貼り付けます。
- List Repositoriesを選択します。
- リポジトリを選択するために接続を選択します。
- GitHubで、GitLab CI/CDを設定するために
.gitlab-ci.ymlを追加します。
GitLab:
- プロジェクトをインポートします。
- プルミラーリングを有効にします。
- GitHubプロジェクトインテグレーションを有効にします。
- 新しいコミットをGitLabに通知するWebhookをGitHub上に作成します。
手動で接続
GitHub EnterpriseをGitLab.comで使用するには、この方法を使用します。
リポジトリでGitLab CI/CDを手動で有効にするには:
GitHubで、トークンを作成します:
- https://github.com/settings/tokens/newを開きます。
- パーソナルアクセストークンを作成します。
- トークンの説明を入力し、スコープを
repoを許可するように更新して、GitLabがプロジェクトにアクセスし、コミットステータスを更新できるようにします。
GitLabで、プロジェクトを作成します:
- 右上隅で、新規作成( )と新規プロジェクト/リポジトリを選択します。
- 外部リポジトリのCI/CDを実行とリポジトリのURLを選択します。
- GitリポジトリのURLフィールドに、あなたのGitHubリポジトリのHTTPS URLを入力します。プロジェクトがプライベートな場合は、作成したばかりのパーソナルアクセストークンを認証に使用します。
- 他のすべてのフィールドに入力し、プロジェクトを作成を選択します。GitLabはポーリングベースのプルミラーリングを自動的に構成します。
GitLabで、GitHubプロジェクトインテグレーションを有効にします:
- 左サイドバーで、設定 > インテグレーションを選択します。
- 有効チェックボックスを選択します。
- あなたのパーソナルアクセストークンとHTTPSリポジトリURLをフォームに貼り付け、保存を選択します。
GitLabで、新しいコミットをGitLabに通知するGitHub Webhookを認証するために、
APIスコープを持つパーソナルアクセストークンを作成します。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オプションを選択し、プルリクエストとプッシュのチェックボックスをオンにします。これらの設定は、外部プルリクエスト用のパイプラインに必要です。
GitHubで、GitLab CI/CDを設定するために
.gitlab-ci.ymlを追加します。