mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-12-12 02:45:18 +00:00
Merge pull request #1 from ElmarKenguerli/PR_TestBranch
docs: add provider-agnostic push outputs and Slack relay usage - Adds `push_outputs` with channels (stdout/file/webhook), disabled by default - Integrates into review flow; - Includes optional Slack relay service - Updates `README` with usage instructions. No changes to default behavior.
This commit is contained in:
commit
b57337f854
2 changed files with 42 additions and 4 deletions
27
README.md
27
README.md
|
|
@ -328,6 +328,33 @@ ___
|
|||
</div>
|
||||
<hr>
|
||||
|
||||
## Provider-agnostic push outputs and Slack relay
|
||||
|
||||
PR-Agent can optionally emit review results to external sinks without calling git provider APIs.
|
||||
This is disabled by default. To enable and forward to Slack via a lightweight relay:
|
||||
|
||||
1) Start the relay (in a separate shell):
|
||||
- Set an Incoming Webhook URL for Slack:
|
||||
- CMD: set SLACK_WEBHOOK_URL=https://hooks.slack.com/services/TXXXX/BXXXX/XXXXXXXX
|
||||
- PS: $env:SLACK_WEBHOOK_URL="https://hooks.slack.com/services/TXXXX/BXXXX/XXXXXXXX"
|
||||
- Run:
|
||||
uvicorn pr_agent.servers.push_outputs_relay:app --host 0.0.0.0 --port 8000
|
||||
|
||||
2) In your repository, configure PR-Agent to emit to the relay by creating .pr_agent.toml:
|
||||
|
||||
```
|
||||
[push_outputs]
|
||||
enable = true
|
||||
channels = ["webhook"]
|
||||
webhook_url = "http://localhost:8000/relay"
|
||||
presentation = "markdown"
|
||||
```
|
||||
|
||||
Notes:
|
||||
- This mechanism is provider-agnostic and uses minimal API calls.
|
||||
- You can also use the "file" channel to append JSONL records locally.
|
||||
- The relay transforms the generic payload into Slack’s Incoming Webhook schema.
|
||||
|
||||
## Try It Now
|
||||
|
||||
Try the GPT-5 powered PR-Agent instantly on _your public GitHub repository_. Just mention `@CodiumAI-Agent` and add the desired command in any PR comment. The agent will generate a response based on your command.
|
||||
|
|
|
|||
|
|
@ -70,6 +70,17 @@ async def relay(record: Dict[str, Any]):
|
|||
|
||||
text = _to_slack_text(record)
|
||||
|
||||
# If using a Slack Workflow "triggers" URL, the workflow expects top-level fields
|
||||
# that match the configured variables in the Workflow (e.g., "markdown", "payload").
|
||||
# Otherwise, for Incoming Webhooks ("services" URL), use the standard {text, mrkdwn}.
|
||||
if "hooks.slack.com/triggers/" in slack_url:
|
||||
body = {
|
||||
# Map our computed text to the workflow variable named "markdown"
|
||||
"markdown": text,
|
||||
# Provide original payload if the workflow defines a variable for it
|
||||
"payload": record.get("payload", {}),
|
||||
}
|
||||
else:
|
||||
body = {
|
||||
"text": text,
|
||||
"mrkdwn": True,
|
||||
|
|
|
|||
Loading…
Reference in a new issue