587ff2cf47
Publish snapshot / snapshot (push) Failing after 1m58s
Publishing infrastructure - Three Gitea workflows: ci.yml (PRs, non-main pushes), publish-snapshot.yml (main -> Gitea under dist-tag @main) and release.yml (tags -> Gitea + npmjs) - Tag-driven releases as <package-dir>-v<version>; the manifest stays the source of truth and release.yml refuses to run if tag and manifest disagree - Every publish is idempotent: each step checks the registry first, so a run that fails on the second registry can simply be re-run - Hard coverage gate (85% branches) shared by CI, the pre-push hook and local runs, since the thresholds live in vitest.config.ts rather than a CI flag - README.PUBLISH.md documents the whole mechanism Toolchain - TypeScript 7 native compiler; drop tsgo and ts-node, use tsx for dev runs - Biome 1.9 -> 2.x, Vitest 1 -> 4, zod 3 -> 4, inquirer 8 -> 14, pnpm 11.17.0 - Replace inquirer-checkbox-plus-prompt, which is peer-capped at inquirer <9, with enquirer's AutoComplete; the CubeSelection contract is unchanged - Stand in for zod 4's removed z.AnyZodObject with a local AnyObjectSchema Repo hygiene - Stop tracking dist/; ignore coverage/, *.tsbuildinfo, .npmrc* and release.json - Drop package-lock.json in favour of pnpm-lock.yaml Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
user:edit
Modify an existing user's password or group membership
Purpose
This cube allows you to update existing user accounts on the target system. It can be used to change passwords, add users to new groups (like docker or sudo), or revoke group memberships.
What This Cube Does
- Identifies the existing user on the target system
- Updates the user's password if
PASSWORDis provided - Adds the user to the groups specified in
GROUPS - Removes the user from the groups specified in
GROUPS_ABSENT
Configuration
| Variable | Type | Description | Required |
|---|---|---|---|
USER |
string |
The username of the account to modify | Yes |
PASSWORD |
string |
New password for the user | No |
GROUPS |
string |
Comma-separated list of groups to ADD (e.g., docker,sudo) |
No |
GROUPS_ABSENT |
string |
Comma-separated list of groups to REMOVE | No |
Dependencies
apt/essentials: Standard system utilities.
Usage
Changing a Password
nopy install user:edit --env USER=myuser --env PASSWORD=newsecurepassword
Adding a User to the Docker Group
nopy install user:edit --env USER=myuser --env GROUPS=docker
Revoking Sudo Access
nopy install user:edit --env USER=myuser --env GROUPS_ABSENT=sudo
Security Notes
- When setting passwords via the CLI, they may be visible in your shell history. Consider using a session file or interactive prompts for sensitive values.
- Changing your own user's groups or password may require a re-login to take full effect.