Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

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"