@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.
Files changed (2) hide show
  1. package/README.md +45 -9
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -1,16 +1,16 @@
1
- # Releases CLI
1
+ # Release Notes Index CLI
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/@buildinternet/releases?color=cb3837&label=npm&logo=npm)](https://www.npmjs.com/package/@buildinternet/releases)
4
4
  [![Release](https://github.com/buildinternet/releases-cli/actions/workflows/release.yml/badge.svg)](https://github.com/buildinternet/releases-cli/actions/workflows/release.yml)
5
5
  [![Test](https://github.com/buildinternet/releases-cli/actions/workflows/test.yml/badge.svg)](https://github.com/buildinternet/releases-cli/actions/workflows/test.yml)
6
6
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
7
7
  [![Backend](https://img.shields.io/badge/backend-buildinternet%2Freleases-24292e?logo=github)](https://github.com/buildinternet/releases)
8
- [![skills.sh](https://skills.sh/b/buildinternet/releases-cli)](https://skills.sh/buildinternet/releases-cli)
8
+ [![skills.sh](https://skills.sh/b/buildinternet/releases)](https://skills.sh/buildinternet/releases)
9
9
  [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/buildinternet/releases-cli)
10
10
 
11
- **[releases.sh](https://releases.sh)**  ·  **[Backend monorepo →](https://github.com/buildinternet/releases)**  ·  [Install](#install)  ·  [Usage](#usage)  ·  [Authentication](#authentication)
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 — a lean HTTP client for [releases.sh](https://releases.sh). Search and browse release notes from GitHub, RSS/Atom/JSON feeds, and product changelog pages, with no local infrastructure.
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 & Claude Code
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 is also a Claude Code marketplace with the `releases` plugin — hosted MCP tools, a `/releases` lookup command, and auto-trigger skills:
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-cli
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-cli
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 — used by the [`publish-changelog` GitHub Action](https://releases.sh/docs/integrations/github-actions) as `RELEASES_API_TOKEN`. Like `releases keys`, this opens its own browser approval each time:
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.82.0",
4
- "description": "The changelog & release-notes registry for developers and AI agents",
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.82.0",
17
- "@buildinternet/releases-darwin-x64": "0.82.0",
18
- "@buildinternet/releases-linux-x64": "0.82.0",
19
- "@buildinternet/releases-linux-arm64": "0.82.0",
20
- "@buildinternet/releases-windows-x64": "0.82.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",