forge-agnostic git workflow for Neovim
  • Lua 99.7%
  • Shell 0.2%
Find a file
barrettruth 2ce6005022
Some checks are pending
deploy / LuaRocks (nightly) (push) Waiting to run
quality / Format (push) Waiting to run
quality / Lint (push) Waiting to run
quality / Test (push) Waiting to run
Update README.md
2026-06-08 23:05:35 +00:00
.forgejo docs: add contributing guide (#593) 2026-05-05 17:52:48 +00:00
.github/workflows chore: clean up Forgejo mirror routing (#585) 2026-05-05 00:46:57 +00:00
doc Make PR edit resolve the current PR (#783) 2026-06-06 09:44:46 +00:00
lua/forge Read GitHub job logs from the raw REST endpoint; decode JSON with luanil (#786) 2026-06-08 21:49:20 +00:00
plugin refactor: remove <Plug> mapping surface (#364) 2026-04-20 09:32:22 -05:00
scripts test: speed up async spec waits 2026-05-02 19:13:29 +00:00
spec Read GitHub job logs from the raw REST endpoint; decode JSON with luanil (#786) 2026-06-08 21:49:20 +00:00
.busted ci: run busted in quality workflow (#69) 2026-04-06 16:26:13 -04:00
.editorconfig feat: initial commit 2026-03-27 16:46:28 -04:00
.gitignore feat: gitignore demo files 2026-03-28 18:38:09 -04:00
.luarc.json feat: initial commit 2026-03-27 16:46:28 -04:00
biome.json chore(format): replace prettier with biome (#404) 2026-04-25 16:00:19 -04:00
CONTRIBUTING.md docs: add quick start and rename vimdoc (#684) 2026-05-09 15:43:04 +00:00
flake.lock build(nix): use nixpkgs vimdoc-language-server (#369) 2026-04-20 18:22:00 -04:00
flake.nix chore(format): replace prettier with biome (#404) 2026-04-25 16:00:19 -04:00
forge.nvim-scm-1.rockspec docs: normalize port cleanup metadata (#581) 2026-05-04 21:29:21 +00:00
justfile docs: normalize port cleanup metadata (#581) 2026-05-04 21:29:21 +00:00
LICENSE chore: switch LICENSE to GPLv3 (post-remigrate) 2026-05-01 11:42:46 +00:00
README.md Update README.md 2026-06-08 23:05:35 +00:00
selene.toml fix 2026-03-30 17:20:52 -04:00
stylua.toml feat: initial commit 2026-03-27 16:46:28 -04:00
vim.yaml feat: initial commit 2026-03-27 16:46:28 -04:00

forge.nvim

Forge-agnostic git workflow for Neovim

PR, issue, and CI workflows across GitHub, GitLab, and Forgejo/Gitea/Codeberg — without leaving your editor.

Note

Due to GitHub's historic unreliability, active development is hosted on Forgejo. GitHub is maintained as a read-only mirror. See :help forge-forgejo for canonical project links.

Features

  • Work with PRs: list, create, review, open/close, draft, merge and more
  • Issue workflows: list, create, edit, browse, close/reopen
  • CI/CD: list runs, filter by status, inspect summaries, stream logs, etc.
  • Releases: list, browse, copy links, filter drafts/prereleases, delete
  • Browse forge URLs and yank commit-pinned source links for the current file/range

Requirements

Installation

With vim.pack (Neovim 0.12+):

vim.pack.add({
  'https://git.barrettruth.com/barrettruth/forge.nvim',
})

Or via luarocks:

luarocks install forge.nvim

Quick Start

Check that forge.nvim can see the CLI for the current repository's forge:

:checkhealth forge

Create an issue from a template; Forge opens a compose buffer, and :w submits it:

:Forge issue create template=bug

Open the PR picker and press <c-a> to create a PR from the current branch:

:lua require('forge').open('prs.open')

Close the current branch's PR from Ex mode:

:Forge pr close

Inspect CI for the current branch's PR without leaving Ex mode:

:Forge pr ci

Documentation

:help forge

Acknowledgements