Skip to content

Latest commit

 

History

History
161 lines (119 loc) · 7.79 KB

README-ja.md

File metadata and controls

161 lines (119 loc) · 7.79 KB

Repo Dispatch Event Sender

Run Tests Multi-OS GitHub Marketplace

English | 日本語

repo-dispatch-event-sender は、GitHub CLI (gh) を使用してrepository_dispatch webhookイベントをトリガーするためのPythonプロジェクトです。環境変数に基づいてペイロードを作成し、リポジトリ内の特定のワークフローを開始するために gh コマンドを実行します。

目次

機能

  • repository_dispatch webhookイベントのトリガーはPythonコマンドとGitHub Actionsのアクションコンポーネントで実行できます。
  • osversionなどのペイロードをサポートします。

Important

repository_dispatch イベントは mainブランチへのpushトリガーでは動作しますが、プルリクエストイベントではトリガーされない という仕様があります。プルリクエストイベントで repository_dispatch イベントを使用することはできませんので、注意が必要です。詳細については、GitHubの公式ドキュメントをご確認ください。

使用条件

必須

  • Python 3.10+
  • GitHub CLI (gh)

任意

使用方法

Python向け

プロジェクトをクローンする

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 ファイルをご覧ください。