Skip to content

Add postil respond parity for GitLab, Bitbucket, and Azure DevOps - #18

Merged
morgaesis merged 3 commits into
mainfrom
feat/respond-parity
Jun 13, 2026
Merged

morgaesis merged 3 commits into
mainfrom
feat/respond-parity

Conversation

@morgaesis

Copy link
Copy Markdown
Contributor

postil respond was GitHub-only. Lifts fetch_thread/post_comment onto the Forge trait (with a ThreadKind to disambiguate issue vs pull endpoints) and implements the interactive reply for GitLab (issues + MR notes), Bitbucket (PR comments), and Azure DevOps (PR threads), each using the comment endpoint already proven by that forge's review path. GitHub respond is unchanged. Bitbucket issue-tracker and Azure work-item comments are deferred with clear per-forge scope errors and TODOs (their APIs differ from the proven git base). Adds four wiremock e2e respond tests; full suite (68), clippy -D warnings, and fmt all green.

Move GitHub's respond helpers (fetch_issue/post_issue_comment) onto the
Forge trait as fetch_thread and post_comment so non-GitHub forges can
implement the interactive-bot path. A ThreadKind discriminates issue vs
pull for forges that key them on different endpoints; GitHub ignores it
(the issues API covers both) and its behavior is unchanged.
Implement fetch_thread/post_comment for the remaining forges and rewrite
postil respond to dispatch through the trait for every host, dropping the
GitHub-only guard. GitLab covers both issues and MRs (issues/notes and
merge_requests/notes). Bitbucket (pullrequests/comments) and Azure DevOps
(pullRequests/threads) are scoped to pull requests: their issue-tracker and
work-item comment endpoints use a different base/version we cannot verify
against a live host, so those paths return a clear error and carry a TODO.
Scope stays review-and-answer only with the Postil model footer.
Add wiremock tests covering a GitLab MR mention (reply posted to
merge_requests/notes), a GitLab issue mention (grounded on the issue body,
reply to issues/notes), a Bitbucket PR mention (pullrequests/comments), and
an Azure PR mention (pullRequests/threads), each asserting the model footer.
Update ROADMAP to reflect respond parity shipping.
@morgaesis
morgaesis merged commit c61ff06 into main Jun 13, 2026
6 checks passed
@morgaesis morgaesis mentioned this pull request Jun 13, 2026
@morgaesis
morgaesis deleted the feat/respond-parity branch July 2, 2026 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant