aws-samples / aws-samples/sample-autonomous-cloud-coding-agents

feat(github): support @bgagent comment-triggered PR iteration

Ouverte
#587 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
adapters enhancement orchestration
Langage dominant
TypeScript
Étoiles
143
Forks
46
Merge moyen
3 j 10 h
PR mergées (30 j)
24

Description

## Component

CDK GitHub adapter, orchestration, agent workflows

## Describe the feature

GitHub Issues should support reviewer follow-up comments that trigger ABCA to iterate on an existing PR, matching the Linear and Jira parity `@bgagent ` flow.

When a human comments on a GitHub issue with `@bgagent `, ABCA should find the active or most recent PR-producing task for that issue and run `coding/pr-iteration-v1` against that PR.

## Use case

After ABCA opens a PR from a GitHub issue, reviewers may add follow-up instructions on the originating issue. They should not need to leave the issue and manually submit a new task or comment on the PR.

## Proposed solution

Add a GitHub issue-comment trigger path:

- Subscribe the GitHub webhook setup to `issue_comment` events in addition to `issues`.
- Parse comment bodies for an `@bgagent` mention and extract the remaining instruction.
- Ignore comments authored by ABCA/the app user to prevent self-trigger loops.
- Resolve the GitHub issue to an existing ABCA task/PR using `channel_source === "github"` and GitHub issue metadata.
- Create a new task with `workflow_ref: "coding/pr-iteration-v1"`, the resolved repo, PR number, and reviewer instruction.
- Attribute the iteration to the linked GitHub user when available; otherwise use the original task owner rather than dropping the request.
- Post an immediate GitHub acknowledgement comment, then rely on platform-side final-status fanout for the terminal cost/outcome comment.
- For orchestrated GitHub child issues, route the iteration to the child task/PR and let orchestration re-integration restack dependents when available.

## Acceptance criteria

- A GitHub issue comment `@bgagent update the README too` on an issue with an ABCA PR creates a `coding/pr-iteration-v1` task for that PR.
- The GitHub issue receives an acknowledgement comment quickly after the trigger is accepted.
- The terminal GitHub final-status comment includes the iteration outcome and cost once the run finishes.
- Comments without `@bgagent`, comments from the ABCA app/bot, and unsupported comment events are no-ops.
- If no PR-producing ABCA task can be found for the issue, ABCA posts a clear GitHub comment instead of creating a task.
- Webhook redelivery does not create duplicate iteration tasks.
- Existing label-trigger behavior remains unchanged.

## Tests

- GitHub webhook tests cover comment parsing, bot/self-comment skip, no-PR fallback, idempotent redelivery, and successful iteration task creation.
- Task lookup tests cover resolving a GitHub issue to the correct prior PR task.
- Orchestration tests cover GitHub child-issue iteration metadata where applicable.
- Docs update the GitHub Issues setup guide with the required `issue_comment` event and usage examples.

## Out of scope

- Arbitrary comments as task triggers without an `@bgagent` mention.
- PR review comments or PR-native triggers; tracked separately.
- Natural-language routing from a parent issue to one of several child issues.
- GitHub Projects automation.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par la configuration du webhook GitHub et le chemin du déclencheur issue-comment, puis suivez les points d’entrée existants pour la recherche des tâches et l’orchestration. Exécutez les tests du webhook GitHub, de la recherche des tâches et de l’orchestration décrits dans l’issue ; c’est terminé lorsque les mentions acceptées créent une tâche d’itération de PR, que les accusés de réception et le statut final sont publiés, que les cas no-op restent sûrs et que le guide de configuration documente issue_comment.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
github, typescript
Domaine
backend, devops
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
65/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.