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
。