Skip to content

feat(comments): expose thread resolution in list output (CLI + MCP) - #6

Open
Millon15 wants to merge 1 commit into
zach-snell:mainfrom
Millon15:feat/list-comment-resolution
Open

feat(comments): expose thread resolution in list output (CLI + MCP)#6
Millon15 wants to merge 1 commit into
zach-snell:mainfrom
Millon15:feat/list-comment-resolution

Conversation

@Millon15

Copy link
Copy Markdown
Contributor

Problem

Bitbucket's default PR-comments projection omits the thread resolution object, so bbkt prs comments list (and the MCP list tool) cannot distinguish an open thread from a resolved one.

Fix

  • Request resolution explicitly: append fields=+values.resolution.user.display_name to the list URL (+ percent-encoded as %2B, kept out of the format string so fmt does not treat it as a verb).
  • Add a Resolution field (+ Resolution type) to PRComment.
  • Surface a Resolved column in the CLI table (shows the resolver). The MCP list tool returns the same struct, so it gains resolution for free.

Verification

  • TestFixture_Comments_ResolutionParses covers resolved (non-nil + resolver), explicit-null, and absent cases via a VCR cassette.
  • go test ./... green; verified live against a real PR (correct resolved-vs-open split + resolver name).

Independent of the --all pagination PR. If both land, whichever merges second is a trivial rebase.

Bitbucket's default PR-comments projection omits the resolution object, so
callers cannot tell an open thread from a resolved one. Request it with
fields=+values.resolution.user.display_name, add a Resolution field to
PRComment, and surface a Resolved column in the CLI table. The MCP list
tool returns the same struct, so it gains resolution for free.

Fixture + test cover resolved (non-nil), explicit-null, and absent cases.
Millon15 added a commit to Millon15/bbkt that referenced this pull request Jun 25, 2026
…-snell#6 x zach-snell#7 integration)

Combining the resolution-aware list (zach-snell#6) with --all paging (zach-snell#7): ListAllPRComments
routes every page through ListPRComments, which appends
`&fields=%2Bvalues.resolution.user.display_name`. The list_comments_paged cassette
was recorded before zach-snell#6, so its request URLs lacked that param and the exact-URL VCR
matcher (matchMethodAndURL) missed. Add the param to both recorded request URLs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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