GitHubリポジトリでGitLab CI/CDを使用する
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLab CI/CDは、GitHub.comおよびGitHub Enterpriseで、CI/CDプロジェクトを作成して、GitHubリポジトリをGitLabに接続することで使用できます。
GitHubリポジトリでGitLab CI/CDパイプラインを使用するのビデオをご覧ください。
GitHubの制限事項により、外部CI/CDリポジトリとしてGitHub OAuthを使用してGitHubで認証することはできません。
パーソナルアクセストークンで接続
パーソナルアクセストークンは、GitHub.comリポジトリをGitLabに接続するためにのみ使用でき、GitHubユーザーはオーナーロールを持っている必要があります。
GitHubで1回限りの認可を実行して、GitLabにリポジトリへのアクセスを許可するには、次の手順に従います:
- GitHubで、トークンを作成します:
- https://github.com/settings/tokens/newを開きます。
- パーソナルアクセストークンを作成します。
- トークンの説明を入力し、
repoとadmin:repo_hookを許可するようにスコープを更新して、GitLabがプロジェクトにアクセスし、コミットステータスを更新し、新しいコミットをGitLabに通知するWebhookを作成できるようにします。
- GitLabで、プロジェクトを作成します:
- 左側のサイドバーの上部で、新規作成( )を選択し、新規プロジェクト/リポジトリを選択します。
- 外部リポジトリのCI/CDを実行を選択します。
- GitHubを選択します。
- パーソナルアクセストークンには、トークンを貼り付けます。
- List Repositories(リポジトリ一覧)を選択します。
- 接続を選択して、リポジトリを選択します。
- GitHubで、
.gitlab-ci.ymlを追加して、GitLab CI/CDを構成します。
GitLab:
- プロジェクトをインポートします。
- プルミラーリングを有効にします。
- GitHubプロジェクトインテグレーションを有効にします。
- GitHubにWebhookを作成して、新しいコミットをGitLabに通知します。
手動で接続
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で、
APIスコープのパーソナルアクセストークンを作成して、新しいコミットをGitLabに通知するGitHub Webhookを認証します。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.ymlを追加して、GitLab CI/CDを構成します。