@bensandee/tooling 0.82.0 → 0.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -14
- package/dist/bin.mjs +25173 -26597
- package/package.json +5 -3
- package/tooling.schema.json +72 -36
package/README.md
CHANGED
|
@@ -163,24 +163,26 @@ Renovate moves the pinned `node` version, but only within its current major -- a
|
|
|
163
163
|
|
|
164
164
|
### Repository setup
|
|
165
165
|
|
|
166
|
-
| Command
|
|
167
|
-
|
|
|
168
|
-
| `tooling setup:secrets`
|
|
169
|
-
| `tooling forgejo:secrets` | Manage Forgejo Actions secrets directly. Subcommands: `set`, `list`, `delete`. |
|
|
166
|
+
| Command | Description |
|
|
167
|
+
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
168
|
+
| `tooling setup:secrets` | Configure CI secrets (Forgejo or GitHub). Auto-detects platform from `package.json` repository URL. Flags: `--dry-run`, `--no-docker` (negates `--docker`). |
|
|
170
169
|
|
|
171
170
|
`setup:secrets` detects the hosting platform from the `repository` field in `package.json`. For Forgejo repositories, it prompts for username and password, creates an access token with appropriate scopes, then sets `RELEASE_TOKEN` (and Docker secrets if Docker packages are detected). For GitHub repositories, it prompts for an existing Personal Access Token and uses `gh secret set` to configure secrets.
|
|
172
171
|
|
|
173
172
|
### Release management
|
|
174
173
|
|
|
175
|
-
| Command
|
|
176
|
-
|
|
|
177
|
-
| `tooling release:changesets`
|
|
178
|
-
| `tooling release:simple`
|
|
179
|
-
| `tooling release:trigger`
|
|
180
|
-
| `tooling workflow:dispatch`
|
|
181
|
-
| `tooling
|
|
182
|
-
| `tooling
|
|
183
|
-
|
|
174
|
+
| Command | Description |
|
|
175
|
+
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
176
|
+
| `tooling release:changesets` | Changesets version/publish for Forgejo CI. A prerelease package moves only its own `<name>@<version>` tag; `<name>@latest`, `<name>@vX` and `<name>@vX.Y` move only for a release (see `release:simple`). Flags: `--dry-run`, `--verbose`. Env: `FORGEJO_SERVER_URL`, `FORGEJO_REPOSITORY`, `RELEASE_TOKEN`. |
|
|
177
|
+
| `tooling release:simple` | Streamlined release using commit-and-tag-version. Flags: `--release-as`, `--first-release`, `--prerelease`, `--verbose`. Env: `RELEASE_TOKEN` (required on every platform). |
|
|
178
|
+
| `tooling release:trigger` | Trigger a release workflow. |
|
|
179
|
+
| `tooling workflow:dispatch` | Dispatch a `workflow_dispatch` event for any workflow in any repo on the same git host. Flags: `--repo`, `--workflow` (required), `--ref`, `--input key=value` (repeatable). |
|
|
180
|
+
| `tooling changesets:merge` | Merge a changesets version PR. Gated on a live read of the PR; refuses an empty version PR. On Forgejo, a first `mergeable: false` re-reads once after a short delay before refusing, since the forge reports `false` both for a conflict and while still checking. |
|
|
181
|
+
| `tooling webhook:send <url>` | POST a structured JSON release payload with HMAC-SHA256 auth. Best-effort by default: a delivery failure is logged, annotated `::error::` under CI, and the command exits 0; `--strict` restores a non-zero exit. Flags: `--tag`, `--repository`, `--server-url`, `--actor`, `--prerelease`, `--strict`. Secret from `WEBHOOK_SECRET` env var. |
|
|
182
|
+
|
|
183
|
+
The Forgejo API commands -- secrets, webhooks, labels, `release:create`, `pr:checks`, `pr:list` and
|
|
184
|
+
`commit:status` -- are not on `bst`. They ship on the `bst-fj` bin of `@bensandee/forgejo-cli`
|
|
185
|
+
(see that package's README).
|
|
184
186
|
|
|
185
187
|
#### `release:simple`
|
|
186
188
|
|
|
@@ -502,7 +504,7 @@ When `package.json#repository` and `.tooling.json#registryHost` are both absent
|
|
|
502
504
|
|
|
503
505
|
Registry-specific names keep one credential per registry, so a repo publishing to more than one never has to decide which registry the generic pair belongs to.
|
|
504
506
|
|
|
505
|
-
**Names a forge will not accept.** A secret name must match `[A-Za-z_][A-Za-z0-9_]*` and must not start with `FORGEJO_`, `GITEA_`, `GITHUB_`, or a digit -- Forgejo answers `invalid secret name` and refuses to create it. The generator sanitizes every derived name against those rules, which is why `code.orangebikelabs.com` is `OBL_REGISTRY_*` rather than the `FORGEJO_*` the hostname would suggest, and why a host like `10.0.0.5:5000` or `forgejo.example.com` derives a `REGISTRY_`-prefixed name. `bst
|
|
507
|
+
**Names a forge will not accept.** A secret name must match `[A-Za-z_][A-Za-z0-9_]*` and must not start with `FORGEJO_`, `GITEA_`, `GITHUB_`, or a digit -- Forgejo answers `invalid secret name` and refuses to create it. The generator sanitizes every derived name against those rules, which is why `code.orangebikelabs.com` is `OBL_REGISTRY_*` rather than the `FORGEJO_*` the hostname would suggest, and why a host like `10.0.0.5:5000` or `forgejo.example.com` derives a `REGISTRY_`-prefixed name. `bst-fj secrets set` refuses an invalid name up front rather than passing it to the API.
|
|
506
508
|
|
|
507
509
|
**Forgejo setup:** On Forgejo, the username secret is your Forgejo account username, and the password secret can reuse the same token as `RELEASE_TOKEN`. The token needs write permissions on the org, package, and repository scopes. These permissions should be set for the **user** if the package is under a user namespace (e.g. `bensandee`), or the **organization** if it's under an org namespace (e.g. `orangebikelabs`). After migrating, the old `DOCKER_USERNAME` / `DOCKER_PASSWORD` user/org-level secrets can be deleted once every consumer has been regenerated.
|
|
508
510
|
|