feat: add fullsend AI agents for scorecard workspace#3256
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a review-only Fullsend pilot for selected AI-related workspaces in rhdh-plugins, using a dedicated GitHub Actions workflow shim plus guardrail documentation and CODEOWNERS protection.
Changes:
- Introduces a
pull_request_target-based Fullsend dispatch workflow scoped bypathsto three pilot workspaces and configured for per-repo install mode. - Adds
.fullsend/configuration + scaffold directories for future customization. - Documents the pilot’s scope/operations and protects Fullsend config/workflow via CODEOWNERS.
Reviewed changes
Copilot reviewed 4 out of 11 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
docs/fullsend.md |
Operational documentation for the pilot, scope, and expansion/debug guidance. |
.github/workflows/fullsend.yaml |
Fullsend dispatch “shim” workflow for the review-only pilot, scoped by workspace paths. |
.github/CODEOWNERS |
Adds maintainer ownership for Fullsend config and workflow guardrails. |
.fullsend/config.yaml |
Enables review role for Fullsend. |
.fullsend/customized/**/.gitkeep |
Scaffolds customization directories for future Fullsend extensions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| dispatch: | ||
| concurrency: | ||
| group: fullsend-dispatch-${{ github.event.pull_request.number }} | ||
| cancel-in-progress: false | ||
| uses: fullsend-ai/fullsend/.github/workflows/reusable-dispatch.yml@v0 |
There was a problem hiding this comment.
Intentional: fork PRs should be reviewed — that's the point of the review agent. pull_request_target runs the BASE branch version of this workflow, so fork PRs cannot modify the shim to exfiltrate secrets. The shim never checks out PR code; it only forwards event context to fullsend's reusable workflow, which runs in its own sandboxed environment.
| permissions: | ||
| actions: write | ||
| id-token: write | ||
| contents: write | ||
| issues: write | ||
| packages: read | ||
| pull-requests: write |
There was a problem hiding this comment.
These permissions match the fullsend reference shim (used across multiple repos in the redhat-developer org). The reusable workflow needs contents: write for code suggestions, pull-requests: write for posting reviews, issues: write for triage labeling, id-token: write for WIF auth, and actions: write for workflow dispatch. Reducing them risks breaking the reusable workflow contract. The blast radius is mitigated by the shim never checking out or executing PR code.
| concurrency: | ||
| group: fullsend-dispatch-${{ github.event.pull_request.number }} | ||
| cancel-in-progress: false | ||
| uses: fullsend-ai/fullsend/.github/workflows/reusable-dispatch.yml@v0 |
There was a problem hiding this comment.
@v0 is the fullsend team's supported semver tag — it receives security patches and bug fixes without consumer repos needing to update. Pinning to a SHA would require manual tracking and risks missing fixes. This is a conscious tradeoff: we trust the fullsend team (internal Red Hat) to maintain the @v0 contract, same as all other consumer repos in the org.
| dispatch: | ||
| concurrency: | ||
| group: fullsend-dispatch-${{ github.event.pull_request.number }} | ||
| cancel-in-progress: false | ||
| uses: fullsend-ai/fullsend/.github/workflows/reusable-dispatch.yml@v0 |
| permissions: | ||
| actions: write | ||
| id-token: write | ||
| contents: write | ||
| issues: write | ||
| packages: read | ||
| pull-requests: write |
| concurrency: | ||
| group: fullsend-dispatch-${{ github.event.pull_request.number }} | ||
| cancel-in-progress: false | ||
| uses: fullsend-ai/fullsend/.github/workflows/reusable-dispatch.yml@v0 |
| dispatch: | ||
| concurrency: | ||
| group: fullsend-dispatch-${{ github.event.pull_request.number }} | ||
| cancel-in-progress: false | ||
| uses: fullsend-ai/fullsend/.github/workflows/reusable-dispatch.yml@v0 |
| permissions: | ||
| actions: write | ||
| id-token: write | ||
| contents: write | ||
| issues: write | ||
| packages: read | ||
| pull-requests: write |
| concurrency: | ||
| group: fullsend-dispatch-${{ github.event.pull_request.number }} | ||
| cancel-in-progress: false | ||
| uses: fullsend-ai/fullsend/.github/workflows/reusable-dispatch.yml@v0 |
|
1 similar comment
|
Enable fullsend Review agent on three AI-related workspaces (ai-integrations, lightspeed, mcp-integrations) via a hardened shim workflow. Slash commands are intentionally disabled because rhdh-plugins is public and fullsend has no auth check on issue_comment-triggered agents. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Expand from review-only to full agent set (triage, coder, review, fix). Add auth gate on dispatch job to restrict slash commands to org members/collaborators — prevents external users from burning Vertex AI tokens on this public repo. Add stop-fix job for /fs-fix-stop command. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document actual fullsend agent behavior — designed auto-triggers vs what actually fires. Only Review reliably auto-triggers; the rest require slash commands. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5a246d9 to
ea6951d
Compare
|
New changes are detected. LGTM label has been removed. |
|


Summary
workspaces/scorecard/workspaces/scorecard/**; all other agents are available via/fs-*slash commands.fullsend/and.github/workflows/fullsend.yamldocs/fullsend.mdWhat this PR does NOT do
fullsend admin install— the customized shim (with auth gate) would be overwritten by the installer's default template.pr_agent.toml— PR Agent continues running as-is; both agents will run in parallel for comparisonFiles
.fullsend/config.yaml.github/workflows/fullsend.yamlpathsfilter forworkspaces/scorecard/**, stop-fix job.fullsend/customized/.gitkeepdocs/fullsend.md.github/CODEOWNERS/.fullsend/and/.github/workflows/fullsend.yaml→@redhat-developer/rhdh-plugins-maintainersPost-merge steps
Set GitHub repo variables:
FULLSEND_MINT_URL— shared token mint URL (get from fullsend team or rhdh-agentic's settings)FULLSEND_GCP_REGION— GCP region for Vertex AI inferenceSet GitHub repo secrets:
FULLSEND_GCP_WIF_PROVIDER— WIF provider for this repo in the inference GCP projectFULLSEND_GCP_PROJECT_ID— GCP project for Vertex AI inferenceAdd
rhdh-pluginsto fullsend GitHub Apps access:The fullsend-ai GitHub Apps are already installed in the
redhat-developerorg with selected repos. Addrhdh-pluginsto the repository access for:fullsend-ai-triage,fullsend-ai-coder,fullsend-ai-review.Test: Open a PR touching files in
workspaces/scorecard/and verify the review agent triggers. Post/fs-triageon an issue to test slash command auth gate.Test plan
validate-codeowners.ymlwill check CODEOWNERS)workspaces/scorecard/and confirm review agent triggers/fs-triageas an org member — should trigger triage agent🤖 Generated with Claude Code