vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0: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.
docs/cli.md +51−32
| @@ -35,50 +35,52 @@ vole version | |||
| 35 | 35 | ||
| 36 | 36 | ## Server management | |
| 37 | 37 | ||
| 38 | `vole admin` is the single namespace for account (`user`), repository (`repo`), and | ||
| 39 | access (`acl`) management. | ||
| 38 | `vole admin` is the single namespace for account, repository (`repo`), and access | ||
| 39 | (`acl`) management. | ||
| 40 | 40 | Without `--remote`, it changes the instance named by the local `vole.toml`. With | |
| 41 | 41 | `--remote`, it sends the same command over SSH and must be run by an instance | |
| 42 | 42 | admin. | |
| 43 | 43 | ||
| 44 | 44 | ```sh | |
| 45 | vole admin user create alice --key ~/.ssh/id_ed25519.pub | ||
| 46 | vole admin --remote origin user create bob --key bob.pub | ||
| 47 | vole admin --remote ssh://git@forge.example.com:2222 user list | ||
| 45 | vole admin account create alice --key ~/.ssh/id_ed25519.pub | ||
| 46 | vole admin --remote origin account create bob --key bob.pub | ||
| 47 | vole admin --remote ssh://git@forge.example.com:2222 account list | ||
| 48 | 48 | ``` | |
| 49 | 49 | ||
| 50 | 50 | See [Accounts and access](accounts-and-access.md#remote-administration). | |
| 51 | 51 | ||
| 52 | The pre-admin spellings `vole user`, `vole repo`, `vole acl`, `vole index` and | ||
| 53 | `vole gc` remain as compatibility aliases; documentation and help use `vole admin`. | ||
| 52 | `vole admin account` is the documented spelling. The old `vole admin user` form | ||
| 53 | and the pre-admin aliases (`vole account`, `vole user`, `vole repo`, `vole acl`, | ||
| 54 | `vole index`, and `vole gc`) remain for compatibility; documentation and help use | ||
| 55 | `vole admin account`. | ||
| 54 | 56 | ||
| 55 | 57 | ### Accounts | |
| 56 | 58 | ||
| 57 | The `user` commands manage accounts. | ||
| 59 | The `account` commands manage accounts. | ||
| 58 | 60 | ||
| 59 | 61 | ```sh | |
| 60 | vole admin user create [--key <file|->] [--role <role>] <name> | ||
| 61 | vole admin user invite <name> | ||
| 62 | vole admin user credentials <name> | ||
| 63 | vole admin user rm-credential <name> <credential-id> | ||
| 64 | vole admin user sessions <name> | ||
| 65 | vole admin user revoke-sessions [--all | <name>] | ||
| 66 | vole admin user add-key --key <file|-> <name> | ||
| 67 | vole admin user rm-key <name> <fingerprint> | ||
| 68 | vole admin user retire <name> | ||
| 69 | vole admin user role <name> <none|read|contribute|maintain|admin> | ||
| 70 | vole admin user grant-admin <name> | ||
| 71 | vole admin user revoke-admin <name> | ||
| 72 | vole admin user show <name> | ||
| 73 | vole admin user list | ||
| 74 | vole admin user backup <path> | ||
| 62 | vole admin account create [--key <file|->] [--role <role>] <name> | ||
| 63 | vole admin account invite <name> | ||
| 64 | vole admin account credentials <name> | ||
| 65 | vole admin account rm-credential <name> <credential-id> | ||
| 66 | vole admin account sessions <name> | ||
| 67 | vole admin account revoke-sessions [--all | <name>] | ||
| 68 | vole admin account add-key --key <file|-> <name> | ||
| 69 | vole admin account rm-key <name> <fingerprint> | ||
| 70 | vole admin account retire <name> | ||
| 71 | vole admin account role <name> <none|read|contribute|maintain|admin> | ||
| 72 | vole admin account grant-admin <name> | ||
| 73 | vole admin account revoke-admin <name> | ||
| 74 | vole admin account show <name> | ||
| 75 | vole admin account list | ||
| 76 | vole admin account backup <path> | ||
| 75 | 77 | vole whoami [--remote <name>] | |
| 76 | 78 | ``` | |
| 77 | 79 | ||
| 78 | 80 | Omitting `--key` creates a browser-only account and prints a one-time enrollment | |
| 79 | 81 | link. `--role` sets the account's instance-wide role; it applies to public | |
| 80 | repositories, while `admin` applies to every repository. `user role` changes it | ||
| 81 | later. `user invite` issues a fresh link for an existing account. `user backup` | ||
| 82 | repositories, while `admin` applies to every repository. `account role` changes it | ||
| 83 | later. `account invite` issues a fresh link for an existing account. `account backup` | ||
| 82 | 84 | writes a file on the host, so it is local-only. | |
| 83 | 85 | ||
| 84 | 86 | The account name is the only identifier an account has. It cannot be changed: it | |
| @@ -102,16 +104,33 @@ New repositories are private. The owner becomes the first admin. | |||
| 102 | 104 | Instance-wide roles are account standing; repository rules are set with `acl`: | |
| 103 | 105 | ||
| 104 | 106 | ```sh | |
| 105 | vole admin user role <name> <none|read|contribute|maintain|admin> | ||
| 107 | vole admin account role <name> <none|read|contribute|maintain|admin> | ||
| 108 | |||
| 106 | 109 | vole admin acl show <repo> | |
| 107 | vole admin acl set <repo> <account> <none|read|contribute|maintain|admin> | ||
| 108 | vole admin acl default <repo> <none|read|contribute|maintain|admin> | ||
| 109 | vole admin acl protect <repo> <ref-pattern>... | ||
| 110 | vole admin acl approvals <repo> <n> | ||
| 111 | vole admin acl checks <repo> <on|off> | ||
| 112 | vole admin acl runners <repo> [<account>...] [--add <account> | --remove <account> | --clear] | ||
| 110 | vole admin acl set-role <repo> <account> <none|read|contribute|maintain|admin> | ||
| 111 | vole admin acl set-default-role <repo> <none|read|contribute|maintain|admin> | ||
| 112 | vole admin acl set-approvals <repo> <n> | ||
| 113 | |||
| 114 | vole admin acl checks enable <repo> | ||
| 115 | vole admin acl checks disable <repo> | ||
| 116 | |||
| 117 | vole admin acl protect list <repo> | ||
| 118 | vole admin acl protect add <repo> <ref-pattern>... | ||
| 119 | vole admin acl protect remove <repo> <ref-pattern>... | ||
| 120 | vole admin acl protect set <repo> <ref-pattern>... | ||
| 121 | vole admin acl protect clear <repo> | ||
| 122 | |||
| 123 | vole admin acl runners list <repo> | ||
| 124 | vole admin acl runners add <repo> <account>... | ||
| 125 | vole admin acl runners remove <repo> <account>... | ||
| 126 | vole admin acl runners set <repo> <account>... | ||
| 127 | vole admin acl runners clear <repo> | ||
| 113 | 128 | ``` | |
| 114 | 129 | ||
| 130 | `set-role` and `set-default-role` accept `none` to remove access. `protect set` | ||
| 131 | and `runners set` replace the whole list; the `add` and `remove` forms change one | ||
| 132 | entry at a time. | ||
| 133 | |||
| 115 | 134 | See [Accounts and access](accounts-and-access.md) and | |
| 116 | 135 | [Runners](runner.md#who-can-run-jobs-and-report-results). | |
| 117 | 136 | ||