Tracker: forge backend abilities #367

Open
opened 2026-04-20 15:58:11 +00:00 by barrettruth · 0 comments
barrettruth commented 2026-04-20 15:58:11 +00:00

Tracker: unresolved forge backend abilities

Problem

:h forge-compatibility defines Forge's expected backend capability surface,
but there is no single tracker that keeps the full matrix and any concrete
upstream blockers together.

The matrix below is copied from the current vimdoc compatibility table and
seeded with the upstream trackers we know today.

Proposed solution

Keep the full vimdoc-derived matrix here and add upstream tracker links only
where there is a concrete external dependency.

Ability GitHub GitLab Forgejo Tracked upstream
PR list/filter yes yes yes
PR create yes yes yes
PR create (draft) yes yes no (7) forgejo/forgejo#12206
PR draft toggle yes yes no (7) forgejo/forgejo#12206
PR add/remove reviewer yes yes yes
PR add/remove label yes yes yes
PR add assignee yes yes yes
PR remove assignee yes yes no (1) gitea/tea#965
PR set/clear milestone yes yes yes
Issue add/remove label yes yes yes
Issue add assignee yes yes yes
Issue remove assignee yes yes no (8) gitea/tea#966
Issue set/clear milestone yes yes yes
Per-PR CI checks yes yes yes (2)
Per-check log viewing yes yes no (9) go-gitea/gitea#35382
Per-job live watch no (6) yes yes cli/cli#3484
CI runs (repo-wide) yes yes yes
CI cancel / rerun yes yes (4) yes (5) go-gitea/gitea#35382
Issue create / edit / list yes yes yes
Branches / commits yes yes yes
Worktrees yes yes yes
Release list / browse yes yes yes
Release delete yes yes yes
Release draft/prerelease yes no (3) yes gitlab-org/gitlab#517424; gitlab-org/gitlab#32589
Browse yes yes yes

Notes copied from :h forge-compatibility:

  • (1) tea pr edit only exposes --add-assignees; removing or clearing
    PR assignees is tracked by gitea/tea#965.
  • (2) Forgejo per-PR checks show external commit statuses. Browse opens the
    provider page; log viewing requires forge-native CI.
  • (3) GitLab releases currently expose released_at / upcoming_release,
    but no draft or prerelease release field. Draft release support is tracked
    by gitlab-org/gitlab#517424;
    prerelease release support is tracked by
    gitlab-org/gitlab#32589.
  • (4) GitLab rerun retries failed and cancelled jobs only. Cancel uses
    glab ci cancel pipeline.
  • (5) Forgejo cancel and rerun need Gitea >= 1.22 or Forgejo >= 10 on
    self-hosted instances.
  • (6) gh run watch only supports live watch at the run level. When opening a
    job during an active watch, Forge falls back to a refreshing job log. Tracked
    by cli/cli#3484.
  • (7) Forgejo still treats draft pull requests as WIP title prefixes rather
    than a toggleable draft/ready state. This leaks into downstream Forgejo
    tooling. Tracked by forgejo/forgejo#12206,
    which tracks go-gitea/gitea#30600.
  • (8) tea issues edit only exposes --add-assignees; removing or
    clearing issue assignees is tracked by
    gitea/tea#966.
  • (9) Forgejo per-check log viewing depends on Gitea Actions log APIs,
    tracked by go-gitea/gitea#35382.

Known tracked rows:

  • forgejo/forgejo#12206
    tracks replacing WIP-prefix PR draft semantics with a first-class
    draft/ready state for Forgejo, and points at
    go-gitea/gitea#30600
    upstream. This maps onto the current Forgejo PR create (draft) and
    PR draft toggle rows.
  • go-gitea/gitea#35382 adds
    the missing Gitea Actions API endpoints for workflow run management and logs
    that map onto the current Forgejo CI/log rows.
  • cli/cli#3484 tracks log streaming
    for gh run watch, which maps onto the GitHub Per-job live watch row.
  • gitea/tea#965 tracks adding a
    remove/clear assignee path to tea pr edit, which maps onto the current
    Forgejo PR remove assignee row.
  • gitea/tea#966 tracks adding a
    remove/clear assignee path to tea issues edit, which maps onto the current
    Forgejo Issue remove assignee row.
  • gitlab-org/gitlab#517424
    tracks draft releases without a tag, which maps onto the draft half of the
    current GitLab Release draft/prerelease row.
  • gitlab-org/gitlab#32589
    tracks adding a prerelease release type, which maps onto the prerelease half
    of the current GitLab Release draft/prerelease row.

Alternatives considered

Keep this only in the vimdoc, but that leaves no issue-level place to tie
specific compatibility rows to concrete upstream work.

# Tracker: unresolved forge backend abilities ## Problem `:h forge-compatibility` defines Forge's expected backend capability surface, but there is no single tracker that keeps the full matrix and any concrete upstream blockers together. The matrix below is copied from the current vimdoc compatibility table and seeded with the upstream trackers we know today. ## Proposed solution Keep the full vimdoc-derived matrix here and add upstream tracker links only where there is a concrete external dependency. | Ability | GitHub | GitLab | Forgejo | Tracked upstream | | --- | --- | --- | --- | --- | | PR list/filter | yes | yes | yes | — | | PR create | yes | yes | yes | — | | PR create (draft) | yes | yes | no (7) | [forgejo/forgejo#12206](https://codeberg.org/forgejo/forgejo/issues/12206) | | PR draft toggle | yes | yes | no (7) | [forgejo/forgejo#12206](https://codeberg.org/forgejo/forgejo/issues/12206) | | PR add/remove reviewer | yes | yes | yes | — | | PR add/remove label | yes | yes | yes | — | | PR add assignee | yes | yes | yes | — | | PR remove assignee | yes | yes | no (1) | [gitea/tea#965](https://gitea.com/gitea/tea/issues/965) | | PR set/clear milestone | yes | yes | yes | — | | Issue add/remove label | yes | yes | yes | — | | Issue add assignee | yes | yes | yes | — | | Issue remove assignee | yes | yes | no (8) | [gitea/tea#966](https://gitea.com/gitea/tea/issues/966) | | Issue set/clear milestone | yes | yes | yes | — | | Per-PR CI checks | yes | yes | yes (2) | — | | Per-check log viewing | yes | yes | no (9) | [go-gitea/gitea#35382](https://github.com/go-gitea/gitea/pull/35382) | | Per-job live watch | no (6) | yes | yes | [cli/cli#3484](https://github.com/cli/cli/issues/3484) | | CI runs (repo-wide) | yes | yes | yes | — | | CI cancel / rerun | yes | yes (4) | yes (5) | [go-gitea/gitea#35382](https://github.com/go-gitea/gitea/pull/35382) | | Issue create / edit / list | yes | yes | yes | — | | Branches / commits | yes | yes | yes | — | | Worktrees | yes | yes | yes | — | | Release list / browse | yes | yes | yes | — | | Release delete | yes | yes | yes | — | | Release draft/prerelease | yes | no (3) | yes | [gitlab-org/gitlab#517424](https://gitlab.com/gitlab-org/gitlab/-/issues/517424); [gitlab-org/gitlab#32589](https://gitlab.com/gitlab-org/gitlab/-/issues/32589) | | Browse | yes | yes | yes | — | Notes copied from `:h forge-compatibility`: - (1) `tea pr edit` only exposes `--add-assignees`; removing or clearing PR assignees is tracked by [gitea/tea#965](https://gitea.com/gitea/tea/issues/965). - (2) Forgejo per-PR checks show external commit statuses. Browse opens the provider page; log viewing requires forge-native CI. - (3) GitLab releases currently expose `released_at` / `upcoming_release`, but no draft or prerelease release field. Draft release support is tracked by [gitlab-org/gitlab#517424](https://gitlab.com/gitlab-org/gitlab/-/issues/517424); prerelease release support is tracked by [gitlab-org/gitlab#32589](https://gitlab.com/gitlab-org/gitlab/-/issues/32589). - (4) GitLab rerun retries failed and cancelled jobs only. Cancel uses `glab ci cancel pipeline`. - (5) Forgejo cancel and rerun need Gitea >= 1.22 or Forgejo >= 10 on self-hosted instances. - (6) `gh run watch` only supports live watch at the run level. When opening a job during an active watch, Forge falls back to a refreshing job log. Tracked by [cli/cli#3484](https://github.com/cli/cli/issues/3484). - (7) Forgejo still treats draft pull requests as WIP title prefixes rather than a toggleable draft/ready state. This leaks into downstream Forgejo tooling. Tracked by [forgejo/forgejo#12206](https://codeberg.org/forgejo/forgejo/issues/12206), which tracks [go-gitea/gitea#30600](https://github.com/go-gitea/gitea/issues/30600). - (8) `tea issues edit` only exposes `--add-assignees`; removing or clearing issue assignees is tracked by [gitea/tea#966](https://gitea.com/gitea/tea/issues/966). - (9) Forgejo per-check log viewing depends on Gitea Actions log APIs, tracked by [go-gitea/gitea#35382](https://github.com/go-gitea/gitea/pull/35382). Known tracked rows: - [forgejo/forgejo#12206](https://codeberg.org/forgejo/forgejo/issues/12206) tracks replacing WIP-prefix PR draft semantics with a first-class draft/ready state for Forgejo, and points at [go-gitea/gitea#30600](https://github.com/go-gitea/gitea/issues/30600) upstream. This maps onto the current Forgejo `PR create (draft)` and `PR draft toggle` rows. - [go-gitea/gitea#35382](https://github.com/go-gitea/gitea/pull/35382) adds the missing Gitea Actions API endpoints for workflow run management and logs that map onto the current Forgejo CI/log rows. - [cli/cli#3484](https://github.com/cli/cli/issues/3484) tracks log streaming for `gh run watch`, which maps onto the GitHub `Per-job live watch` row. - [gitea/tea#965](https://gitea.com/gitea/tea/issues/965) tracks adding a remove/clear assignee path to `tea pr edit`, which maps onto the current Forgejo `PR remove assignee` row. - [gitea/tea#966](https://gitea.com/gitea/tea/issues/966) tracks adding a remove/clear assignee path to `tea issues edit`, which maps onto the current Forgejo `Issue remove assignee` row. - [gitlab-org/gitlab#517424](https://gitlab.com/gitlab-org/gitlab/-/issues/517424) tracks draft releases without a tag, which maps onto the draft half of the current GitLab `Release draft/prerelease` row. - [gitlab-org/gitlab#32589](https://gitlab.com/gitlab-org/gitlab/-/issues/32589) tracks adding a prerelease release type, which maps onto the prerelease half of the current GitLab `Release draft/prerelease` row. ## Alternatives considered Keep this only in the vimdoc, but that leaves no issue-level place to tie specific compatibility rows to concrete upstream work.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
barrettruth/forge.nvim#367
No description provided.