Issues and pull requests
Issues and PRs in fremforge are standard Forgejo features. The Forgejo documentation is the reference for the full feature set. This page covers fremforge-specific policies and integrations.
Audit logging
Every state change to an issue or PR (open, close, reopen, label change, assignee change, review submitted, merge) is recorded in the org audit log. Audit log entries include the actor, timestamp, repository, and action. Access at Org admin → Audit log or via the API.
PR merge gates and branch protection
PRs into protected branches must satisfy all configured branch protection rules before the merge button is enabled. See Org admin for rule configuration.
Apply review suggestions
Forgejo renders ```suggestion code blocks inside PR review comments. fremforge layers a one-click Apply suggestion button on top — the same UX as GHEC. Click it on any suggestion comment and the suggested code is spliced into the file at the PR’s head commit, attributed to the user who clicked.
Mechanics:
- The button appears on every review comment that contains a
```suggestioncode-fence block. Single-line and multi-line suggestions both work. - The applying user must have write or admin permission on the repo. Read-only collaborators don’t see the button.
- fremforge verifies the PR is still open and the head SHA matches the suggestion’s render-time SHA. If the PR was force-pushed after the suggestion was rendered, the apply fails with a 409 and the user is asked to refresh — this prevents a stale suggestion from overwriting newer work.
- The commit is authored as the applying user (not a fremforge service account), exactly mirroring GHEC behaviour.
- The action is captured in the org audit log as
pr.suggestion.appliedwith the PR number, file path, line range, and review-comment id.
Resolving the conversation after applying is a manual step (click Resolve in Forgejo’s review UI) — fremforge does not auto-resolve because Forgejo’s resolve endpoint and review thread model differ subtly from GitHub’s and we’d rather under-promise here.
Auto-merge
PRs can be set to auto-merge when all required checks pass. Enable at the PR level: click the dropdown next to Merge → Enable auto-merge. Select the merge strategy (merge commit, squash, rebase).
Auto-merge is disabled if new commits are pushed to the branch after auto-merge is enabled, to prevent unreviewed code landing silently.
Merge strategies
Merge commit, squash merge, and rebase merge are all available per-repository. Set the default strategy at Repository → Settings → Merging. Org owners can restrict which strategies are available at Org admin → Repo defaults → Merging strategy.
Signed commits on merge
If signed commits are required on a branch, the merge commit is signed by the user performing the merge using their registered SSH or GPG signing key. See Security and supply chain.
Issue and PR references in CI
Workflow runs are linked to the PR that triggered them. From a PR, click the Checks tab to see all workflow runs for the PR’s head commit. From a workflow run, the triggering PR is linked in the run summary.
Cross-repository references
Reference issues and PRs across repositories using the full slug: <org>/<repo>#<number> (e.g., acme/backend#42). Cross-repo references create a linked mention in both issues.
Closing issues via PR
Use keywords in the PR body or commits: Closes #42, Fixes #42, Resolves #42. The referenced issue closes automatically when the PR merges into the default branch. For non-default branches, the issue closes when that branch is set as the repository’s default.
Data export
All issues and PRs are included in the full org data export bundle. See Data export.
Cross-references
- Org admin, branch protection rule configuration and audit log access
- Security and supply chain, signed commits (SSH default, GPG also supported)
- CI runners, workflow run configuration and runner labels
- API, programmatic access to issues, PRs, and audit log
- Data export, full org data bundle including issues and PRs