vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
Add remote administration and local workflow runs
3abbe749096f4d7ff76f4d468e4427829b8a6f95 · Keenan Nemetz · 16d ago · parent 520470e1
Add remote administration and local workflow runs Make `vole admin` the single namespace for user, repository, and access management, runnable locally or over SSH by instance admins. Instance-admin grants live in users.db, and the audit log names the actor separately from the account being changed. Add `vole workflow run` to execute workflow jobs in the working tree without a server or runner. Positional arguments select workflows, --job selects jobs, and the command reuses the push-time validator. Update the README and guides for the new command shapes.
forge/config/config.go +2−2
| @@ -108,7 +108,7 @@ func (c *Config) IndexDB() string { return filepath.Join(c.DataDir, "index.db") | |||
| 108 | 108 | // not happened yet — a queued or leased job exists only there — while the finished | |
| 109 | 109 | // half is derived from the records on each repository's metadata branch, and pending | |
| 110 | 110 | // work is reconciled from the refs. Deleting it loses the attempts that were in | |
| 111 | // flight; the current tip of every ref is queued once and `vole index rebuild` | ||
| 111 | // flight; the current tip of every ref is queued once and `vole admin index rebuild` | ||
| 112 | 112 | // restores the finished history. | |
| 113 | 113 | func (c *Config) RunsDB() string { return filepath.Join(c.DataDir, "runs.db") } | |
| 114 | 114 | ||
| @@ -132,7 +132,7 @@ func (c *Config) SSHHostKey() string { return filepath.Join(c.DataDir, "ssh_host | |||
| 132 | 132 | // "/r/<repo>/issues/<id>" without thinking about it. | |
| 133 | 133 | func (c *Config) BaseURL() string { return strings.TrimRight(c.PublicURL, "/") } | |
| 134 | 134 | ||
| 135 | // Sample renders a starter config for `vole init`. | ||
| 135 | // Sample renders a starter config for `vole admin init`. | ||
| 136 | 136 | func Sample() string { | |
| 137 | 137 | return `# Vole configuration | |
| 138 | 138 | data_dir = "./data" | |