はじめに
本記事は どすこい塾 Advent Calendar 2025 の7日目の記事です。
昨日は @bull012 さんで AIエージェントに「レール」を敷け。バグ報告を「プロンプト化」してエンジニアの調査を「極小化」する でした。
みなさんは、例えば「別リポジトリで管理しているOpenAPI Specification(OAS)のYAMLファイルを更新するたび、クライアントコードを自動生成してPRを作成する」など、「別リポジトリのプッシュをトリガーに、他リポジトリを更新する」を実現したいことはありませんか?
それを実現すべく、本記事では他リポジトリのGitHub Actionsのワークフローを実行する方法を紹介します。
登場人物
わかりやすくするため、架空のリポジトリを使って説明します。
- 本リポジトリ:
uhooi/loki-ios- iOSアプリのコードを管理している
- 別リポジトリ:
uhooi/loki-oas-
uhooi/loki-iosで使うOASのYAMLファイルを管理している
-
別リポジトリをクローンして作業するワークフローを作る
まずはトリガーを気にせず、別リポジトリをクローンして作業するワークフローを作ります。
手動でも実行できるよう、 workflow_dispatch: を指定するのがオススメです。
on:
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
update-openapi-codes:
runs-on: macos-15
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout loki-oas
uses: actions/checkout@v4
with:
repository: 'uhooi/loki-oas'
ref: 'feature/foo' # デフォルトブランチ以外を使う場合は指定する
path: 'loki-oas'
- name: Update OpenAPI codes
run: |
# OpenAPIのクライアントコードを生成し、PRを作成する
他リポジトリのワークフローを実行する
次に、先ほど作成したワークフローを実行するだけのワークフローを別リポジトリに作ります。
gh workflow run で他リポジトリのワークフローを実行できるのが便利です。
on:
workflow_dispatch:
push:
branches:
- main
jobs:
update-openapi-codes-ios:
runs-on: macos-15
steps:
- name: Update OpenAPI codes for iOS
run: gh workflow run update-openapi-codes.yml --repo 'uhooi/loki-ios' --ref 'feature/bar' # `--ref` はデフォルトブランチ以外を使う場合のみ指定する
今回は main ブランチのプッシュをトリガーにしていますが、必要に応じて変更してください。
また update-openapi-codes-android のようなジョブを追加することで、今後Androidアプリが増えた場合も簡単に対応できます。
おわりに
簡単に他リポジトリのワークフローを実行できるので、ぜひみなさんもやってみてください。
本記事では省略しましたが、GitHub Enterpriseなどを使う場合は、追加でトークンの指定が必要になるので注意です。
以上 どすこい塾 Advent Calendar 2025 の7日目の記事でした。
明日は未定です。