linear-sdk-cli 0.2.1 → 0.2.4
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/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,24 @@ All notable changes to this project are documented here. The format is based on
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to
|
|
5
5
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.2.4](https://github.com/zhendalf/linear-sdk-cli/compare/v0.2.3...v0.2.4) (2026-08-24)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
- **build:** replace Prettier with Oxfmt ([#23](https://github.com/zhendalf/linear-sdk-cli/issues/23)) ([5490bdc](https://github.com/zhendalf/linear-sdk-cli/commit/5490bdcf352e731fcacc0be4c0e91266863dcfa4))
|
|
12
|
+
|
|
13
|
+
## [0.2.3](https://github.com/zhendalf/linear-sdk-cli/compare/v0.2.2...v0.2.3) (2026-08-24)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- **ci:** guard absent release PR output ([#21](https://github.com/zhendalf/linear-sdk-cli/issues/21)) ([ed082bf](https://github.com/zhendalf/linear-sdk-cli/commit/ed082bfc6673736a9705198f8e2a17c9d7b4698d))
|
|
18
|
+
|
|
19
|
+
## [0.2.2](https://github.com/zhendalf/linear-sdk-cli/compare/v0.2.1...v0.2.2) (2026-08-24)
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
- **ci:** format and verify release PR heads ([#19](https://github.com/zhendalf/linear-sdk-cli/issues/19)) ([a16244d](https://github.com/zhendalf/linear-sdk-cli/commit/a16244d3355a86d3bdaf290d9ee077b06598125e))
|
|
24
|
+
|
|
7
25
|
## [0.2.1](https://github.com/zhendalf/linear-sdk-cli/compare/v0.2.0...v0.2.1) (2026-08-24)
|
|
8
26
|
|
|
9
27
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "linear-sdk-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Ergonomic command-line interface for Linear, built on @linear/sdk",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"lin": "bun run src/bin/linear.ts",
|
|
55
55
|
"typecheck": "tsc --noEmit",
|
|
56
56
|
"lint": "oxlint .",
|
|
57
|
-
"format": "
|
|
58
|
-
"format:check": "
|
|
57
|
+
"format": "oxfmt .",
|
|
58
|
+
"format:check": "oxfmt --check .",
|
|
59
59
|
"test": "bun test test/unit test/contract",
|
|
60
60
|
"test:unit": "bun test test/unit",
|
|
61
61
|
"test:contract": "bun test test/contract",
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@types/bun": "^1.4.0",
|
|
80
80
|
"@types/node": "^26.2.0",
|
|
81
|
+
"oxfmt": "^0.65.0",
|
|
81
82
|
"oxlint": "^1.80.0",
|
|
82
|
-
"prettier": "^3.9.6",
|
|
83
83
|
"typescript": "^7.0.2"
|
|
84
84
|
}
|
|
85
85
|
}
|
|
@@ -295,7 +295,7 @@ async function updateSkillMd(commands: CliCommand[], groups: string[]): Promise<
|
|
|
295
295
|
|
|
296
296
|
const before = current.slice(0, begin + BEGIN_MARKER.length);
|
|
297
297
|
const after = current.slice(end);
|
|
298
|
-
// Format chosen to match
|
|
298
|
+
// Format chosen to match Oxfmt: no blank line after the opening marker,
|
|
299
299
|
// one blank line before the closing marker, so re-running stays a no-op.
|
|
300
300
|
const block = ["", "```text", buildCommandList(commands), "```", "", ""].join("\n");
|
|
301
301
|
const next = `${before}${block}${after}`;
|
|
@@ -311,18 +311,17 @@ async function updateSkillMd(commands: CliCommand[], groups: string[]): Promise<
|
|
|
311
311
|
}
|
|
312
312
|
|
|
313
313
|
/**
|
|
314
|
-
* Run
|
|
314
|
+
* Run Oxfmt over the generated markdown so the output matches the repo's
|
|
315
315
|
* formatting (table alignment, list spacing) and re-running stays a clean no-op.
|
|
316
|
-
* Best-effort: if
|
|
316
|
+
* Best-effort: if Oxfmt isn't available the docs are still valid markdown.
|
|
317
317
|
*/
|
|
318
318
|
function formatGenerated(): void {
|
|
319
|
-
const result = spawnSync(
|
|
320
|
-
"
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
);
|
|
319
|
+
const result = spawnSync("bunx", ["oxfmt", "."], {
|
|
320
|
+
stdio: "inherit",
|
|
321
|
+
cwd: SKILL_DIR,
|
|
322
|
+
});
|
|
324
323
|
if (result.status !== 0) {
|
|
325
|
-
console.warn("Warning:
|
|
324
|
+
console.warn("Warning: Oxfmt formatting step skipped (non-zero exit).");
|
|
326
325
|
}
|
|
327
326
|
}
|
|
328
327
|
|
|
@@ -77,6 +77,10 @@ In scheduled autonomous mode, merge it only when all of the following are true:
|
|
|
77
77
|
trigger them, while the exact release commit has already passed `main` CI);
|
|
78
78
|
- it is cleanly mergeable with no conflicts, review blockers, or unresolved comments.
|
|
79
79
|
|
|
80
|
+
Release Please may rewrite its PR whenever `main` changes. Record the `headRefOid` used by CI
|
|
81
|
+
and review, then fetch the PR again immediately before merging. If its head changed, discard the
|
|
82
|
+
earlier evidence and repeat diff review, verification, and review-comment checks on the new head.
|
|
83
|
+
|
|
80
84
|
After an approved merge, confirm the release workflow completed, then verify the GitHub Release,
|
|
81
85
|
the npm package version, and the `latest` dist-tag. npm publishing must retain OIDC provenance.
|
|
82
86
|
Never retry a failed publish by adding an npm token or disabling provenance; report the failure.
|
package/src/lib/pagination.ts
CHANGED
|
@@ -127,7 +127,9 @@ export async function collectRawQuery<T>(
|
|
|
127
127
|
client.client.rawRequest(query, { ...variables, first: pageLimit, after }),
|
|
128
128
|
);
|
|
129
129
|
const conn = connectionPath.split(".").reduce((acc: any, key) => acc?.[key], data.data) as
|
|
130
|
-
|
|
130
|
+
| RawConnection
|
|
131
|
+
| null
|
|
132
|
+
| undefined;
|
|
131
133
|
// A nested path (`issue.comments`) can land on null when the parent entity
|
|
132
134
|
// is gone; that is an empty list, not a crash.
|
|
133
135
|
if (!conn) break;
|