GitHub リポジトリで GitLab CI/CD を使用する場合
GitLab CI/CDはGitHub.comと GitHub Enterpriseで使用することができます。CI/CDプロジェクトを作成し、GitHubリポジトリとGitLabを接続します。
GitLabのCI/CDパイプラインをGitHubリポジトリで使うのビデオをご覧ください。
個人アクセストークンでの接続
個人アクセストークンはGitHub.comのリポジトリとGitLabの接続にのみ使用でき、GitHubユーザーはオーナーロールを持っている必要があります。
GitLabにリポジトリへのアクセスを許可するために、GitHubで1回限りの認証を行うには:
- GitHub でトークンを作成します:
- https://github.com/settings/tokens/new を開いてください。
- パーソナルアクセストークンを作成します。
- 
トークンの説明を入力し、GitLab がプロジェクトにアクセスし、コミットステータスを更新し、新しいコミットを GitLab に通知するためのウェブフックを作成できるように、repoとadmin:repo_hookを許可するようにスコープを更新します。
 
- GitLab でプロジェクトを作成します:
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- View all my projects を選択します。
- ページの右側で、新規プロジェクトを選択します。
- Run CI/CD for external repositoryを選択します。
- GitHub を選択します。
- パーソナルアクセストークンには、トークンを貼り付けます。
- リポジトリの一覧]を選択します。
- Connectを選択して、リポジトリを選択します。
 
- GitHub で、.gitlab-ci.ymlを追加してGitLab CI/CD を設定します。
GitLab:
- プロジェクトをインポートします。
- プルミラーリングを有効にします。
- GitHub プロジェクトインテグレーションを有効にします。
- GitLab に新しいコミットを通知する GitHub のウェブフックを作成します。
手動で接続
GitLab.com でGitHub Enterpriseを使うには、この方法を使います。
リポジトリの GitLab CI/CD を手動で有効にするには:
- GitHub でトークンを作成します:
- https://github.com/settings/tokens/new を開いてください。
- パーソナルアクセストークンを作成します。
- 
トークンの説明を入力し、GitLab がプロジェクトにアクセスしてコミットステータスを更新できるように、repoを許可するようにスコープを更新します。
 
- GitLab でプロジェクトを作成します:
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- View all my projects を選択します。
- 新規プロジェクトを選択します。
- Run CI/CD for externalrepositoryとRepository by URLを選択します。
- Git リポジトリの URLフィールドに、GitHub リポジトリの HTTPS URL を入力します。プロジェクトが非公開の場合は、先ほど作成した個人アクセストークンを認証に使用します。
- その他のフィールドをすべて入力し、プロジェクトの作成を選択します。GitLabは自動的にポーリングベースのプルミラーリングを設定します。
 
- GitLabで、GitHubプロジェクトインテグレーションを有効にします:
- 左のサイドバーで、Settings > Integrations を選択してください。
- アクティブ]チェックボックスを選択します。
- 個人アクセストークンと HTTPS リポジトリ URL をフォームに貼り付け、[保存] を選択します。
 
- GitLab で、新しいコミットを GitLab に通知する GitHub ウェブフックを認証するために、APIスコープでパーソナルアクセストークンを作成します。
- 
GitHubの設定 > Webhooksから、新しいコミットをGitLabに通知するWebフックを作成します。 ウェブフックの URL には GitLab API を指定し、先ほど作成した GitLab パーソナルアクセストークンを使ってプルミラーリングを起動します: https://gitlab.com/api/v4/projects/<NAMESPACE>%2F<PROJECT>/mirror/pull?private_token=<PERSONAL_ACCESS_TOKEN>Let me select individual eventsオプションを選択し、Pull requestsとPushesのチェックボックスをオンにします。これらの設定は、外部からのプルリクエスト用のパイプラインに必要です。 
- GitHubで、GitLab CI/CDを設定するために.gitlab-ci.yml。
