diff --git a/docs/docs/usage-guide/automations_and_usage.md b/docs/docs/usage-guide/automations_and_usage.md index 1c6e8052..b3d92fcd 100644 --- a/docs/docs/usage-guide/automations_and_usage.md +++ b/docs/docs/usage-guide/automations_and_usage.md @@ -121,10 +121,14 @@ Specifically, start by setting the following environment variables: github_action_config.auto_review: "true" # enable\disable auto review github_action_config.auto_describe: "true" # enable\disable auto describe github_action_config.auto_improve: "true" # enable\disable auto improve + github_action_config.pr_actions: ["opened", "reopened", "ready_for_review", "review_requested"] ``` `github_action_config.auto_review`, `github_action_config.auto_describe` and `github_action_config.auto_improve` are used to enable/disable automatic tools that run when a new PR is opened. If not set, the default configuration is for all three tools to run automatically when a new PR is opened. +`github_action_config.pr_actions` is used to configure which `pull_requests` events will trigger the enabled auto flags +If not set, the default configuration is `["opened", "reopened", "ready_for_review", "review_requested"]` + `github_action_config.enable_output` are used to enable/disable github actions [output parameter](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#outputs-for-docker-container-and-javascript-actions) (default is `true`). Review result is output as JSON to `steps.{step-id}.outputs.review` property. The JSON structure is equivalent to the yaml data structure defined in [pr_reviewer_prompts.toml](https://github.com/idubnori/pr-agent/blob/main/pr_agent/settings/pr_reviewer_prompts.toml). diff --git a/pr_agent/servers/github_action_runner.py b/pr_agent/servers/github_action_runner.py index 94577211..bdd4f5cf 100644 --- a/pr_agent/servers/github_action_runner.py +++ b/pr_agent/servers/github_action_runner.py @@ -83,7 +83,11 @@ async def run_action(): # Handle pull request event if GITHUB_EVENT_NAME == "pull_request": action = event_payload.get("action") - if action in ["opened", "reopened", "ready_for_review", "review_requested"]: + + # Retrieve the list of actions from the configuration + pr_actions = get_settings().get("GITHUB_ACTION_CONFIG.PR_ACTIONS", ["opened", "reopened", "ready_for_review", "review_requested"]) + + if action in pr_actions: pr_url = event_payload.get("pull_request", {}).get("url") if pr_url: # legacy - supporting both GITHUB_ACTION and GITHUB_ACTION_CONFIG diff --git a/pr_agent/settings/configuration.toml b/pr_agent/settings/configuration.toml index d3e0d8cb..b464b1e9 100644 --- a/pr_agent/settings/configuration.toml +++ b/pr_agent/settings/configuration.toml @@ -200,6 +200,7 @@ ignore_bot_pr = true # auto_review = true # set as env var in .github/workflows/pr-agent.yaml # auto_describe = true # set as env var in .github/workflows/pr-agent.yaml # auto_improve = true # set as env var in .github/workflows/pr-agent.yaml +# pr_actions = ['opened', 'reopened', 'ready_for_review', 'review_requested'] [github_app] # these toggles allows running the github app from custom deployments