@buildinternet/releases 0.82.0 → 0.83.1
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 +45 -9
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Release Notes Index CLI
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@buildinternet/releases)
|
|
4
4
|
[](https://github.com/buildinternet/releases-cli/actions/workflows/release.yml)
|
|
5
5
|
[](https://github.com/buildinternet/releases-cli/actions/workflows/test.yml)
|
|
6
6
|
[](./LICENSE)
|
|
7
7
|
[](https://github.com/buildinternet/releases)
|
|
8
|
-
[](https://skills.sh/buildinternet/releases)
|
|
9
9
|
[](https://deepwiki.com/buildinternet/releases-cli)
|
|
10
10
|
|
|
11
|
-
**[
|
|
11
|
+
**[Release Notes Index](https://releases.sh)** · **[Backend monorepo →](https://github.com/buildinternet/releases)** · [Install](#install) · [Usage](#usage) · [Authentication](#authentication)
|
|
12
12
|
|
|
13
|
-
The changelog & release-notes registry for developers and AI agents
|
|
13
|
+
The command-line client for [Release Notes Index](https://releases.sh), the changelog & release-notes registry for developers and AI agents. It's a lean HTTP client: search and browse release notes from GitHub, RSS/Atom/JSON feeds, and product changelog pages, with no local infrastructure.
|
|
14
14
|
|
|
15
15
|
This repo is the **CLI** only. The backend that powers `api.releases.sh` — the API worker, MCP server, web frontend, and ingest pipeline — is open source in its own repo: [buildinternet/releases](https://github.com/buildinternet/releases).
|
|
16
16
|
|
|
@@ -98,7 +98,7 @@ releases json validate releases.json # check a releases.json manife
|
|
|
98
98
|
|
|
99
99
|
`json validate` is a read-only manifest check: it validates a [`releases.json`](https://releases.sh/docs/listing) v2 file against the published schema (pass a path or `-` for stdin) and adds `--json` for machine-readable output — no network, no submission.
|
|
100
100
|
|
|
101
|
-
### MCP &
|
|
101
|
+
### MCP & agent plugins
|
|
102
102
|
|
|
103
103
|
Point any MCP-compatible agent at the hosted server:
|
|
104
104
|
|
|
@@ -106,19 +106,21 @@ Point any MCP-compatible agent at the hosted server:
|
|
|
106
106
|
npx mcp-remote https://agents.releases.sh/mcp
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
-
This repo
|
|
109
|
+
This repo also ships the `releases` plugin (`plugins/claude/releases`) — hosted MCP tools, a `/releases` lookup command, and auto-trigger skills — in the common agent-plugin layout. In Claude Code:
|
|
110
110
|
|
|
111
111
|
```bash
|
|
112
|
-
/plugin marketplace add buildinternet/releases
|
|
112
|
+
/plugin marketplace add buildinternet/releases
|
|
113
113
|
/plugin install releases@releases
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
+
Other agent marketplaces (Grok Build via the [xAI plugin marketplace](https://github.com/xai-org/plugin-marketplace), and more as they are listed) install the same folder. Per-agent steps are in the [plugin README](plugins/claude/releases/README.md).
|
|
117
|
+
|
|
116
118
|
Operator/maintainer skills (source onboarding, parsing, playbooks) live with the backend in the [releases monorepo](https://github.com/buildinternet/releases) — its `.claude/skills/` tree is picked up automatically in a checkout.
|
|
117
119
|
|
|
118
120
|
Or install just the skills into any agent (Cursor, Codex, Gemini CLI, Windsurf, …):
|
|
119
121
|
|
|
120
122
|
```bash
|
|
121
|
-
releases skills install # or, without the CLI: npx skills add buildinternet/releases
|
|
123
|
+
releases skills install # or, without the CLI: npx skills add buildinternet/releases
|
|
122
124
|
```
|
|
123
125
|
|
|
124
126
|
## Authentication
|
|
@@ -132,7 +134,7 @@ releases login --no-browser # print the URL + code to open yourself (headless /
|
|
|
132
134
|
|
|
133
135
|
This uses the OAuth 2.0 Device Authorization Grant (RFC 8628): approve a short code at [releases.sh/device](https://releases.sh/device) in a signed-in browser, and a read-only key is saved to `~/.releases/credentials` (`0600`) — **the browser session itself is never saved**, only that key. Manage keys with `releases keys list` / `create` / `revoke`; each of those opens its own fresh browser approval and signs out again once the command finishes, rather than reusing a stored session (add `--no-browser` to print the URL + code instead, same as `login`).
|
|
134
136
|
|
|
135
|
-
If you've verified ownership of a source's domain, mint a `publish-token` scoped to that one source
|
|
137
|
+
If you've verified ownership of a source's domain, mint a `publish-token` scoped to that one source. The [`publish-changelog` GitHub Action](https://releases.sh/docs/integrations/github-actions) and `releases publish` both read it as `RELEASES_API_TOKEN`. Like `releases keys`, this opens its own browser approval each time:
|
|
136
138
|
|
|
137
139
|
```bash
|
|
138
140
|
releases publish-token create --source src_… | gh secret set RELEASES_API_TOKEN
|
|
@@ -142,11 +144,45 @@ releases publish-token revoke <id>
|
|
|
142
144
|
|
|
143
145
|
Already issued a token (e.g. a write/admin key during the closed beta)? Store it without the browser flow via `releases auth login` (interactive, `--token <token>`, or `--token -` for stdin); it's verified before being saved. `releases auth status` shows the current state (`whoami` is an alias). `RELEASES_API_KEY` in the environment overrides any stored credential — handy for CI.
|
|
144
146
|
|
|
147
|
+
## Publish from any CI
|
|
148
|
+
|
|
149
|
+
`releases publish` pushes changelog updates with `POST /v1/sources/…/releases/batch` (`mode: upsert-content`) — the same request as the [publish-changelog GitHub Action](https://releases.sh/docs/integrations/github-actions), for GitLab CI, Buildkite, or a local docs build.
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
releases publish --source src_… --dry-run
|
|
153
|
+
releases publish --source acme/docs --changelog CHANGELOG.md --since "$CI_COMMIT_BEFORE_SHA" \
|
|
154
|
+
--url-template "https://gitlab.com/acme/app/-/blob/main/CHANGELOG.md#{key}"
|
|
155
|
+
releases publish --source src_… --glob "changelog/**/*.mdx"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
`--dry-run` prints the batch body and does not call the API (no token required). A real publish reads `RELEASES_API_TOKEN` and exits if it is missing. `--since <sha>` limits the plan to entries changed since that commit; omit it, or pass an all-zero first-push SHA, to publish every parsed entry. Repeating a publish is safe: unchanged bodies are not written again.
|
|
159
|
+
|
|
160
|
+
Single-file mode parses versioned `##` headings (Keep a Changelog, conventional-changelog) and `## Month D, YYYY` sections. `--glob` switches to one MDX or Markdown file per release, with metadata in YAML frontmatter (`draft: true` is skipped). Deleted files are reported and left in the index.
|
|
161
|
+
|
|
162
|
+
The commit you pass to `--since` has to be in the local clone (`fetch-depth: 0` on GitHub, or GitLab's default full clone). `--url-template` accepts `{key}`, `{version}`, `{date}`, `{path}`, and `{slug}`. When `GITHUB_REPOSITORY` is set and the template is omitted, the URL falls back to the file's GitHub blob URL, same as the Action.
|
|
163
|
+
|
|
164
|
+
```yaml
|
|
165
|
+
# .gitlab-ci.yml
|
|
166
|
+
publish-changelog:
|
|
167
|
+
image: node:22
|
|
168
|
+
rules:
|
|
169
|
+
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
170
|
+
changes: [CHANGELOG.md]
|
|
171
|
+
script:
|
|
172
|
+
- npm install -g @buildinternet/releases
|
|
173
|
+
- |
|
|
174
|
+
releases publish \
|
|
175
|
+
--source "$RELEASES_SOURCE" \
|
|
176
|
+
--since "$CI_COMMIT_BEFORE_SHA" \
|
|
177
|
+
--url-template "https://gitlab.com/${CI_PROJECT_PATH}/-/blob/${CI_COMMIT_REF_NAME}/CHANGELOG.md#{key}"
|
|
178
|
+
```
|
|
179
|
+
|
|
145
180
|
## Environment
|
|
146
181
|
|
|
147
182
|
Reader access requires nothing. Useful overrides:
|
|
148
183
|
|
|
149
184
|
- `RELEASES_API_KEY` — Bearer token for write endpoints; overrides stored credentials.
|
|
185
|
+
- `RELEASES_API_TOKEN` — write-scoped publish token for `releases publish` (see [Publish from any CI](#publish-from-any-ci)).
|
|
150
186
|
- `RELEASES_API_URL` — override the default `https://api.releases.sh` (e.g. staging).
|
|
151
187
|
- `RELEASES_TELEMETRY_DISABLED=1` — opt out of anonymous usage pings (`DO_NOT_TRACK=1` also honored).
|
|
152
188
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buildinternet/releases",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.83.1",
|
|
4
|
+
"description": "CLI for Release Notes Index — the changelog & release-notes registry for developers and AI agents",
|
|
5
5
|
"bin": {
|
|
6
6
|
"releases": "bin/releases"
|
|
7
7
|
},
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
"README.md"
|
|
14
14
|
],
|
|
15
15
|
"optionalDependencies": {
|
|
16
|
-
"@buildinternet/releases-darwin-arm64": "0.
|
|
17
|
-
"@buildinternet/releases-darwin-x64": "0.
|
|
18
|
-
"@buildinternet/releases-linux-x64": "0.
|
|
19
|
-
"@buildinternet/releases-linux-arm64": "0.
|
|
20
|
-
"@buildinternet/releases-windows-x64": "0.
|
|
16
|
+
"@buildinternet/releases-darwin-arm64": "0.83.1",
|
|
17
|
+
"@buildinternet/releases-darwin-x64": "0.83.1",
|
|
18
|
+
"@buildinternet/releases-linux-x64": "0.83.1",
|
|
19
|
+
"@buildinternet/releases-linux-arm64": "0.83.1",
|
|
20
|
+
"@buildinternet/releases-windows-x64": "0.83.1"
|
|
21
21
|
},
|
|
22
22
|
"keywords": [
|
|
23
23
|
"changelog",
|