forge-agnostic git workflow for Neovim
- Lua 99.7%
- Shell 0.2%
## Problem The consolidated deploy workflow uses one publish job with a dynamic job name. On main pushes, Forgejo rendered the job as `deploy / LuaRocks` instead of `deploy / Nightly`, even though the step-level `github.ref` conditions still selected the correct publish path. ## Solution Use `github.ref` for the job-name expression, matching the step conditions and the runner-provided compatibility context. This keeps the one-file `deploy.yaml` layout while preserving the expected rendered names. Validation: - parsed `.forgejo/workflows/*.yaml` with PyYAML via Nix - `git diff --check` Reviewed-on: #577 |
||
|---|---|---|
| .forgejo | ||
| doc | ||
| lua/forge | ||
| plugin | ||
| scripts | ||
| spec | ||
| .busted | ||
| .editorconfig | ||
| .gitignore | ||
| .luarc.json | ||
| biome.json | ||
| flake.lock | ||
| flake.nix | ||
| forge.nvim-scm-1.rockspec | ||
| justfile | ||
| LICENSE | ||
| README.md | ||
| selene.toml | ||
| stylua.toml | ||
| vim.yaml | ||
forge.nvim
Forge-agnostic git workflow for Neovim
PR, issue, and CI workflows across GitHub, GitLab, and Forgejo/Gitea/Codeberg — without leaving your editor.
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.
Requirements
- Neovim 0.10.0+
- tree-sitter-yaml for YAML issue form templates
- At least one forge CLI:
gh,glab, ortea - (Optionally) fzf-lua >= 0.40 for
interactive built-in routes (
require('forge').open()) and the picker API (require('forge.picker').pick()) - (Optionally) a code reviewing plugin:
diffview.nvim,codediff.nvim, ordiffs.nvim
Installation
With vim.pack (Neovim 0.12+):
vim.pack.add({
'https://git.barrettruth.com/barrettruth/forge.nvim',
})
Or via luarocks:
luarocks install forge.nvim
Releases
Stable releases are cut from manual tags named v0.x.y. Pushing one of those
tags publishes the tagged version to LuaRocks.
Nightly prereleases are automated snapshots from main. They are published as
the rolling prerelease nightly, with the current short commit hash in the
release title, and are kept off the stable LuaRocks channel.
Documentation
:help forge.nvim