You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(forge): close GitLab/Bitbucket gaps for v2.14 (#22)
Wires GitLab diff-line discussions, Bitbucket CI checks and
draft→ready, plus updateComment/deleteComment on both providers.
Makes conflict preview, hotspots, and file history forge-agnostic
by routing through the resolved ForgeProvider instead of gh* calls.
🪄 Commit via GitWand
Co-authored-by: Laurent Guitton <laurent.guitton@dendreo.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+24Lines changed: 24 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [2.14.0] - 2026-05-19
11
+
12
+
v2.14 closes the remaining `ForgeNotImplementedError` gaps on GitLab and Bitbucket and makes all three intelligence methods (conflict preview, hotspots, file history) forge-agnostic.
13
+
14
+
### Added
15
+
16
+
-**GitLab diff-line discussions** — `createComment` now routes to the GitLab Discussions API (`POST /projects/:id/merge_requests/:iid/discussions`) when `path` + `line` are supplied, anchoring the comment to the exact diff line instead of posting a general MR note. New Rust command `gl_mr_create_discussion`; new TS wrapper `glMrCreateDiscussion` in `backend-gitlab.ts`.
17
+
-**Bitbucket CI checks** — `getCIChecks` wired to the Bitbucket Pipelines commit statuses endpoint (`/commit/{sha}/statuses`). The PR's `source.commit.hash` is extracted to form the URL, then each status is mapped to the common `CICheck` shape. New Rust command `bb_pr_ci_checks`; new TS wrapper `bbPrCiChecks`.
18
+
-**Bitbucket draft → ready** — `convertDraftToReady` strips the `"Draft: "` title prefix (case-insensitive) via a `PUT` PR update. New Rust command `bb_convert_draft_to_ready`; new TS wrapper `bbConvertDraftToReady`.
19
+
-**`updateComment` / `deleteComment` on GitLab and Bitbucket** — both methods now fully wired: GitLab via `gl_mr_update_note` / `gl_mr_delete_note`, Bitbucket via `bb_update_comment` / `bb_delete_comment`. `prNumber` added as optional 4th parameter to the `ForgeProvider` interface (required at runtime for non-GitHub providers; ignored on GitHub where comment IDs are globally unique).
20
+
-**`setAccount(account: Account | null): void`** — new method on `ForgeProvider` interface implemented by all three providers; stores an `Account` context in-memory to enable multi-workspace credential resolution (Bitbucket) and multi-profile switching (GitLab, GitHub) without re-authenticating.
21
+
22
+
### Changed
23
+
24
+
-**`getConflictPreview` / `getHotspots` — forge-agnostic** — both methods now delegate to the same local-git implementation (`ghPrConflictPreview` / `ghPrHotspots`) in `GitLabProvider` and `BitbucketProvider`. These methods run `git merge-tree` and `git log --merges` locally — no forge API required. The `forge.name === "github"` guard that was previously needed in consumers is no longer necessary.
25
+
-**`PullRequestPanel.vue` — forge bypass fixed** — the panel now uses `forge.value.getConflictPreview`, `forge.value.getHotspots`, and `forge.value.getFileHistory` through the resolved `ForgeProvider` instead of calling `gh*` functions directly.
26
+
27
+
### Technical
28
+
29
+
-`ForgeNotImplementedError` import removed from `GitLabProvider` and `BitbucketProvider` — all stubs replaced; no remaining `throw new ForgeNotImplementedError(…)` in either provider.
30
+
-`PrFileHistory` zeroed stubs corrected: `{ reviewCommentCount: 0, reviewers: [], lastComment: null }` — matches the actual interface shape.
31
+
-`CreatePrCommentParams.diff_hunk` reference removed from `GitLabProvider.createComment` — `diff_hunk` is not part of the interface; condition simplified to `params.path && params.line != null`.
Copy file name to clipboardExpand all lines: ROADMAP.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -790,7 +790,7 @@ Deux extensions du workflow de review déjà en place.
790
790
791
791
---
792
792
793
-
### v2.14.0 — Forge completeness
793
+
### ✅ v2.14.0 — Forge completeness
794
794
795
795
_Suite de v2.10 : combler les stubs `ForgeNotImplementedError` sur GitLab et Bitbucket, et ouvrir les trois méthodes d'intelligence forge-agnostiques._
0 commit comments