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>
|
</div>
|
||||||
<hr>
|
<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 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.
|
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,10 +70,21 @@ async def relay(record: Dict[str, Any]):
|
||||||
|
|
||||||
text = _to_slack_text(record)
|
text = _to_slack_text(record)
|
||||||
|
|
||||||
body = {
|
# If using a Slack Workflow "triggers" URL, the workflow expects top-level fields
|
||||||
"text": text,
|
# that match the configured variables in the Workflow (e.g., "markdown", "payload").
|
||||||
"mrkdwn": True,
|
# 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,
|
||||||
|
}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
resp = requests.post(slack_url, json=body, timeout=8)
|
resp = requests.post(slack_url, json=body, timeout=8)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue