English | 日本語
repo-dispatch-event-sender
は、GitHub CLI (gh) を使用してrepository_dispatch webhookイベントをトリガーするためのPythonプロジェクトです。環境変数に基づいてペイロードを作成し、リポジトリ内の特定のワークフローを開始するために gh
コマンドを実行します。
- repository_dispatch webhookイベントのトリガーはPythonコマンドとGitHub Actionsのアクションコンポーネントで実行できます。
os
やversion
などのペイロードをサポートします。
Important
repository_dispatch イベントは mainブランチへのpushトリガーでは動作しますが、プルリクエストイベントではトリガーされない という仕様があります。プルリクエストイベントで repository_dispatch イベントを使用することはできませんので、注意が必要です。詳細については、GitHubの公式ドキュメントをご確認ください。
- Python 3.10+
- GitHub CLI (
gh
)
git clone https://github.com/7rikazhexde/repo-dispatch-event-sender.git
cd repo-dispatch-event-sender
Poetry がインストールされていることを確認し、以下を実行します。これにより、仮想環境が作成され、必要な依存関係がインストールされます。
poetry install
venv
などの仮想環境を使用する場合は、下記で依存関係をインストールしてください。
pip install requirement.txt requirement-dev.txt
プロジェクトでは、GitHub APIに送信されるペイロードを作成するために環境変数を使用します。
Note
事前に以下の環境変数を設定してください。
入力項目 | 説明 | Required |
---|---|---|
REPOSITORY_NAME |
対象リポジトリの名前 (例: yourusername/yourrepo ) |
Yes |
EVENT_TYPE |
トリガーするイベントの種類 (例: test_workflow ) |
Yes |
OS_LIST |
OS一覧 (例: '[ubuntu-latest,macos-13,windows-latest]') | Yes |
VERSION_LIST |
バージョン一覧 (例: Pythonの場合: '[3.11,3.12,3.13]') | Yes |
GHPAGES_BRANCH |
GitHub Pagesブランチ (デフォルトは gh_pages ) |
No |
CUSTOM_PARAM |
ペイロードのカスタムパラメータ(オプション) | No |
GitHubリポジトリディスパッチイベントをトリガーするには、以下のコマンドを実行します。
poetry run python repo_dispatch_event_sender/src/dispatch/send_payload.py
Note
ワークフローで使用する場合はgh
コマンドのインストールは不要です。
ペイロードは環境変数を元に送信されますが、ワークフローではアクションコンポーネントによって定義される入力パラメーターをwith
で設定してください。ワークフロー内で指定することで内部で環境変数の設定とペイロード作成と送信が実行されます。
name: Sample Use repo-dispatch-event-sender Action
on:
push:
branches:
- 'main'
jobs:
test-and-send-dispatch:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Send Payload to Pytest Testmon
uses: 7rikazhexde/repo-dispatch-event-sender@main
with:
repository_name: '7rikazhexde/repo-dispatch-event-sender'
event_type: 'repo-dispatch-event-receive'
ghpages_branch: 'ghpages' # オプション1
os_list: '[ubuntu-latest,macos-13,windows-latest]'
version_list: '[3.11,3.12]'
custom_param: 'custom_param_test_val' # オプション2
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # オプション3
#GH_TOKEN: ${{ secrets.YOURT_GHA_PAT }} # オプション3
Note
オプション1:
デフォルト値('gh_pages'
)と異なるブランチ名を指定する場合はその値でペイロードを作成します。
省略した場合はデフォルト値('gh_pages'
)でペイロードを作成します。
オプション2:
省略可能です。省略した場合はペイロードに含まれません。
Important
オプション3:
GITHUB_TOKEN
:
GitHub Actions で自動的に発行されるトークンで、リポジトリへのアクセス権を持ちます。
GITHUB_TOKEN を使用する場合は、Actions -> Workflow permissions から Read and write permissions を有効にしてください。
セキュリティの観点から、GITHUB_TOKEN
の使用が推奨されます。
Personal Access Token (PAT)
:
GITHUB_TOKEN
では対応できない操作が必要な場合は、リポジトリ権限を付与した PAT
を設定する必要があります。
PAT
は適切に管理し、漏洩リスクを防ぐよう注意してください。
ペイロードの送信: send_payload_to_pytest.yml
ペイロードの受信: receive_payload_to_pytest.yml
このプロジェクトはMITライセンスの下で提供されています。詳細は LICENSE ファイルをご覧ください。