2025年4月、GitHub, Inc.社がCLI(コマンドラインインターフェース)のアップデートを発表した。今回のアップデートに伴い、フォークされたリポジトリで作業するオープンソースのコントリビューターにはおなじみの三角形ワークフロー(Triangular Workflows)のサポート改善が実装されることとなった。
三角形ワークフローは、主にオリジナルのリポジトリ(upstream)、個人用フォーク(origin)、ローカル開発環境の3つの部分からなるワークフロー形態である。三角形ワークフローでは、リポジトリのフォークを作成してoriginリポジトリを作り、upstreamリポジトリとは別のリモートリポジトリとして保存する。さらに、Gitの設定を変更し、upstreamリポジトリからのアップデート内容のダウンロードとフォークへの変更を許可すれば、セットアップが完了だ。これで、メインプロジェクトからの変更同期をオンにしながら、個別に作業を進めることができる。
今回のアップデートは、三角形ワークフローの利用時に生じるGitHub CLIの gh prコマンドとGit側の承認設定の問題を改善するものであり、プルリクエスト管理の障害が改善されている。今回の改善により、CLIを通じたGitのプッシュリクエストやプルリクエストの承認が行えるようになった。結果、シームレス開発やフォークからupstreamリポジトリへのプルリクエスト管理が可能になっている。
今回のアップデートに、開発者コミュニティから称賛の声が集まっているほか、GitHub, Inc.社のLinkedInでも、以下のように発表がなされている。
「リポジトリのフォークに依存したコントリビューションも、GitHub CLIの最新アップデート版で一元化が可能です!今回のアップデートで、三角形ワークフローのサポートがさらに充実。フォークとオリジナルリポジトリのプルリクエスト管理で大幅な円滑化・効率化が実現いたしました!」
また、実際に使用したN8Group社からは、このような反応が上がっている。
「ついに、GitHub CLIが三角形ワークフローのサポート対応を開始しました!フォークや複雑化したブランチ戦略に長年頭を抱えていたチームには、朗報ですよ。」
オープンソースプロジェクトに貢献している開発者やリポジトリのフォークを頻繁に作成する開発者であれば、今回のGitHub CLIアップデートでワークフローの効率化が期待できるだろう。また、フリクションの軽減やGitのネイティブ操作とより近い形でのコマンドライン実行が可能になっている。
リポジトリのフォークを作成する三角形ワークフローでは、ローカル環境で作成した変更をプルリクエストで元のリポジトリにアップロードする。これは、オープンソース貢献にもコラボレーション開発にも一般的に用いられる手法だ。他の手法としては、CI/CD(継続的インテグレーション/継続的デリバリー)プラットフォームで、さまざまな段階にわたるサポートが提供されているが、各手法ごとで機能や制限が異なる点に注意が必要である。
GitLabで三角形ワークフローを実行するには、ユーザーがリポジトリのフォークを作成し、マージリクエストを作成して、upstreamプロジェクトへ変更点を反映する必要がある。たいして、CI/CDパイプラインでは、マージリクエスト実行があらかじめ設定されているため、シームレスな統合体験が実現している。また加えて、GitLabでは、フォークの同期機能やプルリクエストのミラーリング機能が実装されており、フォークとupstreamリポジトリの変更反映が自動化されている。
また、Bitbucketではフォークからのプルリクエストを実行するパイプライン機能がサポートされているが、いくつかの注意が必要だ。デフォルト設定では、フォークからのプルリクエストの自動パイプライン機能がオフになっている。これは、権限のないユーザーによるシークレットやセンシティブデータへのアクセスを防止するためだ。このため、リポジトリの管理者には、自動パイプライン機能の設定変更や、データセキュリティとユーザーの利便性を考慮した慎重な権限管理が求められている。
さらなる詳細は、GitHub blogで閲覧可能だ。また、お好きなパッケージマネージャーまたはcli.github.comからCLIのダウンロードも可能である。