背景
CodePipeline で GitHub を Source Action とする場合、v1 と v2 が選択できる。
2022/04 現在、v1 は非推奨の方法となっている。
GitHub バージョン 1 アクションは OAuth トークンを使用して GitHub で認証し、別のウェブフックを使用して変更を検出します。これはもはや推奨される方法ではありません。
https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/update-github-action-connections.html
必然的に v2 を選ぶことになるが、非 Owner な GitHub アカウントで作業したときにハマったのでメモしておく。
v2 連携するために必要な手順
以下が詳しい。
ざっくりと記すと、以下のようになる。
- GitHub コネクションを作成する
- AWS Connector を GitHub にインストールすることで、コネクションを利用可能にする
- パイプラインの Source Action で GitHub (バージョン 2) を選択する
ハマった点
非 Owner アカウントで AWS Connector のインストールができない
手順の 2. にて、GitHub コネクションを有効化するために AWS Connector というものを GitHub にインストールする必要がある。
パイプラインで扱いたいリポジトリを含む GitHub の Organization を選択するわけだが、選択した Organization において自身が Owner 権限を持っていない場合、以下のようなエラーになる。
マネージドコンソールを操作する人が Owner の GitHub ユーザーでログインしている必要がある
エラー発生後、以下のようなメールが Organization のメール宛に届く。
Integration Installation Request
@tsubasaogawa requests you to install AWS Connector for GitHub for <Organization Name>
Hello there!
You’re receiving this email because @tsubasaogawa has requested the installation of AWS Connector for GitHub at your organization <Organization Name>.
To review the request, please click here.
「click here」から AWS Connector をインストールする画面にいけるようだったので、Owner 権限を持っている人に代わりにインストールしてもらった。
これで Organization に AWS Connector がインストールされたはず。コネクションの有効化もできる算段だったのだが、以下の画面で「GitHub アプリ」にインストール済の Connector が表示されなかった。
原因は、作業時にやはり非 Owner の GitHub ユーザーでログインしていたため。Owner ユーザーでログインされていれば、以下のように「GitHub アプリ」にサジェストされる。
まとめ
GitHub の Owner ユーザーで作業すれば、上記のような問題は生じずにスムーズに進めるはず。逆に非 Owner ユーザーの場合は、一時的に Owner にしてもらうなどしてから作業するのが確実と思われる。