The `pr +close` shortcut called the `refuse_merge` API, which is
misleading — "close" suggests a benign operation, but the actual
behavior is to refuse/reject the pull request permanently.
Rename the shortcut to `pr +refuse` so the name matches the API
semantics, and add a warning in the docs that it must never be used
as a substitute for `pr +merge`.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Drop fetchIssueDetail — issue list response already contains all needed fields
- Add tags/issue_tags/pull_tags tables with indexes
- Persist PR and Issue tags during savePull/saveIssue
- Fix issue aggregate field names (total_count/opened_count/closed_count)
- Document tag tables and queries in queries.md
Migrate health analysis from Python scripts to a native Go shortcut
for better performance and single-binary distribution. Remove the
Python collector (fetcher.py) and move schema.sql into shortcuts/health/.
Resolved conflicts with i18n infrastructure from PR #95 and metadata
lookup shortcuts from PR #43.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The GitLink API has two separate systems for PR feedback:
- POST /pulls/:id/reviews creates a formal review (approve/reject/comment)
that only appears in the "Reviews" panel
- POST /issues/:issueID/journals creates a comment visible in the main
PR conversation tab
Previously, `pr +review` only called the reviews API, so the review
content was invisible to the contributor in the main PR conversation.
Now it also posts a journal summary so the review is visible where
contributors expect to see it.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add checkout and setup-go steps to Gitea CI workflow, use make targets
- Exclude errcheck for test files in golangci-lint config
- Fix staticcheck QF1002 (tagged switch) in repo_test.go
- Fix gofmt trailing newline in triage_rules_test.go
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add 18 new test files covering formatter, envelope, config, auth,
client, context, register, and all shortcut group packages.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add a `label` shortcut group wrapping the GitLink issue_tags (项目标记) API
with +list / +create / +update / +delete, plus the gitlink-label Skill,
bilingual README usage, and a changelog entry.
- +list supports keyword filter, only-name, and sort options
- +create defaults color to #1E90FF and validates hex client-side
- +update fetches current values and merges, preserving unspecified fields
- unit tests cover HTTP method, path, query, payload, color validation, id coercion
- ignore the local `gitlink-cli` build artifact (.gitignore previously only
ignored the Windows .exe)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PR #49 (dtwdtw): enrich PR view with closed_at from issue journals
- Fetches close timestamp for closed/rejected PRs
- Skips extra API call for open PRs
- 2 new tests
PR #52 (dtwdtw): add repo +readme shortcut
- Fetches README content with optional --ref and --path params
- normalizeAPIPath prevents duplicate /api prefix in client
- 4 new tests (3 client + 1 repo)
Co-authored-by: dtwdtw <dtwdtw>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- hasLocalTriageInput now also detects triage-specific flags (--body,
--number, --author, --url, --labels) to enter local input mode.
- hasLocalHealthInput now checks all health-related flags to prevent
invalid values like --open-issues=abc from silently falling through
to remote fetch instead of being validated.
- Remote fetch failure in +triage now includes a hint suggesting
--title or --from for local analysis.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The API returns both "id" (global database PK) and "project_issues_index"
(per-project sequential number). The +list JSON output was a raw API
pass-through, making the database ID the most prominent identifier.
This change normalizes each issue in the list:
- Add "number" field from project_issues_index (matches the web URL)
- Rename "id" to "database_id" to prevent confusion
The "number" field now matches the --number flag used by +view, +close,
+update, and +comment commands.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Use v1 API paths for all webhook endpoints (fixes view/test returning HTML/404)
- Add +tasks command for listing webhook delivery tasks
- Add webhook event validation (10-event whitelist)
- Add webhook type validation (10-type whitelist)
- Add content-type and http-method validation
- Fix update to preserve unspecified fields via fetch-and-merge
- Add event deduplication in parseWebhookEvents
- Add 9 comprehensive unit tests (up from 3)
- Use --http-method flag (maintains backward compatibility with PR #20)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Resolved conflicts between PR #24 (+versions, +version-diff) and PR #26
(+reviews, +review). Unified prReviewsPath() to use existing prV1Path() helper.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add a convenience command to comment on pull requests directly,
without needing to look up the underlying issue ID first.
Internally resolves the PR's issue ID via pr +view, then posts
to the issues journals API.