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.

Unify account terminology and clarify ACL commands

2e024cc96a391c0959ad2914caeed78b600fcfc1 · Keenan Nemetz · 14d ago · parent ab326d3a

Unify account terminology and clarify ACL commands

Use account consistently in the CLI, help, docs, and remote admin messages. Rename the CLI account command from user to account while retaining the old user spelling as an alias.

Replace positional ACL mutations with explicit verbs such as set-role, protect add, runners remove, and checks enable. Update local and remote admin parsing, hints, docs, and tests.

Tidy repository filter alignment and remove duplicated issue/change counts from page subtitles.

forge/identity/identity.go +2−2

@@ -26,7 +26,7 @@
26 26 // Nothing stored here is a usable secret: public keys and public credential
27 27 // halves, plus hashes of session and invite tokens. The database file can still
28 28 // be copied as a backup, but it carries authentication state, so restoring an
29 // old copy should be followed by `vole admin user revoke-sessions`. Copy it with
29 // old copy should be followed by `vole admin account revoke-sessions`. Copy it with
30 30 // Backup rather than cp: the database runs in WAL mode, so the newest committed
31 31 // rows may still be in the -wal file.
32 32 package identity
@@ -168,7 +168,7 @@ CREATE INDEX IF NOT EXISTS sessions_expiry ON sessions(expires);
168 168
169 169 func openDB(path string) (*sql.DB, error) {
170 170 // _txlock=immediate makes every write transaction take the write lock up
171 // front, so a second `vole admin user` process waits on busy_timeout instead of
171 // front, so a second `vole admin account` process waits on busy_timeout instead of
172 172 // failing when it tries to upgrade a read lock mid-transaction.
173 173 db, err := sql.Open("sqlite", path+"?_pragma=busy_timeout(5000)&_pragma=journal_mode(WAL)&_pragma=foreign_keys(1)&_txlock=immediate")
174 174 if err != nil {