@bensandee/tooling 0.81.0 → 0.82.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 +26 -26
- package/dist/bin.mjs +15533 -15384
- package/package.json +6 -6
- package/tooling.schema.json +24 -1
package/README.md
CHANGED
|
@@ -28,12 +28,12 @@ The tool auto-detects project structure, CI platform, project type, and Docker p
|
|
|
28
28
|
|
|
29
29
|
### Project management
|
|
30
30
|
|
|
31
|
-
| Command | Description
|
|
32
|
-
| --------------------------------- |
|
|
33
|
-
| `tooling repo:sync [dir]` | Detect, generate, and sync project tooling (idempotent). First run prompts for release strategy, CI platform (if not detected), and formatter (if Prettier found). Subsequent runs are non-interactive.
|
|
31
|
+
| Command | Description |
|
|
32
|
+
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `tooling repo:sync [dir]` | Detect, generate, and sync project tooling (idempotent). First run prompts for release strategy, CI platform (if not detected), and formatter (if Prettier found). Subsequent runs are non-interactive. |
|
|
34
34
|
| `tooling repo:sync --check [dir]` | Dry-run drift detection. Exits 1 if files would change, except drift confined to `.forgejo/workflows/`/`.github/workflows/`, which is reported on the `::bst-checks:: warn` marker at exit 0. CI-friendly. |
|
|
35
|
-
| `tooling checks:run` | Run project checks -- `bst checks:run --help` lists the ordered steps. Flags: `--skip`, `--add`, `--fail-fast`, `--verbose`, `--with-coverage`, `--coverage`, `--no-coverage`.
|
|
36
|
-
| `tooling lint:types` | Type-aware linting (`oxlint --type-aware`, backed by `oxlint-tsgolint`). Flags: `--json`. See [Type-aware linting](#type-aware-linting) below.
|
|
35
|
+
| `tooling checks:run` | Run project checks -- `bst checks:run --help` lists the ordered steps. Flags: `--skip`, `--add`, `--fail-fast`, `--verbose`, `--with-coverage`, `--coverage`, `--no-coverage`. |
|
|
36
|
+
| `tooling lint:types` | Type-aware linting (`oxlint --type-aware`, backed by `oxlint-tsgolint`). Flags: `--json`. See [Type-aware linting](#type-aware-linting) below. |
|
|
37
37
|
|
|
38
38
|
**Flags:** `--yes` (accept all defaults), `--no-ci` (negates `--ci`), `--no-prompt` (negates `--prompt`), `--eslint-plugin`
|
|
39
39
|
|
|
@@ -172,15 +172,15 @@ Renovate moves the pinned `node` version, but only within its current major -- a
|
|
|
172
172
|
|
|
173
173
|
### Release management
|
|
174
174
|
|
|
175
|
-
| Command | Description
|
|
176
|
-
| -------------------------------- |
|
|
177
|
-
| `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`.
|
|
178
|
-
| `tooling release:simple` | Streamlined release using commit-and-tag-version. Flags: `--release-as`, `--first-release`, `--prerelease`, `--verbose`. Env: `RELEASE_TOKEN` (required on every platform).
|
|
179
|
-
| `tooling release:trigger` | Trigger a release workflow.
|
|
180
|
-
| `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).
|
|
181
|
-
| `tooling forgejo:create-release` | Create a Forgejo release from a tag.
|
|
182
|
-
| `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.
|
|
183
|
-
| `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.
|
|
175
|
+
| Command | Description |
|
|
176
|
+
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
177
|
+
| `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`. |
|
|
178
|
+
| `tooling release:simple` | Streamlined release using commit-and-tag-version. Flags: `--release-as`, `--first-release`, `--prerelease`, `--verbose`. Env: `RELEASE_TOKEN` (required on every platform). |
|
|
179
|
+
| `tooling release:trigger` | Trigger a release workflow. |
|
|
180
|
+
| `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). |
|
|
181
|
+
| `tooling forgejo:create-release` | Create a Forgejo release from a tag. |
|
|
182
|
+
| `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. |
|
|
183
|
+
| `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. |
|
|
184
184
|
|
|
185
185
|
#### `release:simple`
|
|
186
186
|
|
|
@@ -296,22 +296,22 @@ For a repo whose released artifact carries its version somewhere other than `pac
|
|
|
296
296
|
}
|
|
297
297
|
```
|
|
298
298
|
|
|
299
|
-
| Field | Description
|
|
300
|
-
| -------- |
|
|
299
|
+
| Field | Description |
|
|
300
|
+
| -------- | ------------------------------------------------------------------------------------------ |
|
|
301
301
|
| `file` | Path to the file whose version line gets stamped, relative to the project root (required). |
|
|
302
|
-
| `prefix` | Literal string (never a pattern) the target line must start with (required).
|
|
303
|
-
| `suffix` | Literal string (never a pattern) the target line must end with (optional; default: none).
|
|
302
|
+
| `prefix` | Literal string (never a pattern) the target line must start with (required). |
|
|
303
|
+
| `suffix` | Literal string (never a pattern) the target line must end with (optional; default: none). |
|
|
304
304
|
|
|
305
305
|
`prefix` and `suffix` are literal strings, not regexes -- the target line is read straight off `prefix + version + suffix`:
|
|
306
306
|
|
|
307
307
|
| Target | `prefix` | `suffix` |
|
|
308
|
-
|
|
|
309
|
-
| `Version: 1.2.3` (WordPress theme) | `"Version: "`
|
|
310
|
-
| ` * Version: 1.2.3` (plugin header) | `" * Version: "`
|
|
311
|
-
| `Version: v1.2.3` | `"Version: v"`
|
|
312
|
-
| `__version__ = "1.2.3"`
|
|
313
|
-
| `<version>1.2.3</version>` | `"<version>"`
|
|
314
|
-
| `define('FOO_VERSION', '1.2.3');` | `"define('FOO_VERSION', '"`
|
|
308
|
+
| ----------------------------------- | --------------------------- | -------------- |
|
|
309
|
+
| `Version: 1.2.3` (WordPress theme) | `"Version: "` | -- |
|
|
310
|
+
| ` * Version: 1.2.3` (plugin header) | `" * Version: "` | -- |
|
|
311
|
+
| `Version: v1.2.3` | `"Version: v"` | -- |
|
|
312
|
+
| `__version__ = "1.2.3"` | `"__version__ = \""` | `"\""` |
|
|
313
|
+
| `<version>1.2.3</version>` | `"<version>"` | `"</version>"` |
|
|
314
|
+
| `define('FOO_VERSION', '1.2.3');` | `"define('FOO_VERSION', '"` | `"');"` |
|
|
315
315
|
|
|
316
316
|
`release:assets` stamps every configured file before building assets, then verifies the stamp survived the build. Exactly one line in the file must match `prefix`/`suffix` or the release fails loudly -- zero matches means the config is broken, and more than one is an ambiguous config that needs a more specific `prefix` or a second entry. The stamp is never committed: the tracked copy of the file keeps its placeholder version on purpose, so there is only ever one source of truth (`package.json#version`) and nothing to drift. Run `bst release:assets --dry-run` to rehearse a `versionStamp` config locally, with no forge access and no release -- the rehearsal does still write the stamp, so it leaves the tracked file modified in your working tree. Discard it with `git checkout -- <file>`; committing it is exactly the drift this design exists to prevent.
|
|
317
317
|
|
|
@@ -619,7 +619,7 @@ There is exactly one credential to be careful with, and its lifetime is the part
|
|
|
619
619
|
|
|
620
620
|
| | Board token | Session cookie it mints |
|
|
621
621
|
| --------- | ----------------------------------------------------------------- | ----------------------- |
|
|
622
|
-
| Lifetime | the agent **process** -- a service, so weeks
|
|
622
|
+
| Lifetime | the agent **process** -- a service, so weeks | 12 hours |
|
|
623
623
|
| Scope | label transitions + comments + kill, every repo the bot can write | the board, nothing else |
|
|
624
624
|
| Holders | one, shared | one browser |
|
|
625
625
|
| Persisted | never | never |
|