114 Commits

Author SHA1 Message Date
duong-vu 7a4f8c6d51 Refactor sync release description argument (#141)
Co-authored-by: linear-code[bot] <222613912+linear-code[bot]@users.noreply.github.com>
2026-09-08 07:02:07 -07:00
duong-vu 77c6a7431e Expose release descriptions in CLI (#135)
* Expose release descriptions in CLI

Co-authored-by: linear-code[bot] <222613912+linear-code[bot]@users.noreply.github.com>

* Make release description examples platform-neutral

Updated release descriptions to highlight rollout details.

Co-authored-by: linear-code[bot] <222613912+linear-code[bot]@users.noreply.github.com>

---------

Co-authored-by: linear-code[bot] <222613912+linear-code[bot]@users.noreply.github.com>
2026-09-03 07:55:49 -07:00
Axel Niklasson Yun a02ddf5bbd Bump package.json to 0.17.2 (#140) v0.17.2 2026-09-01 13:36:33 +02:00
Axel Niklasson Yun bf53b8e883 Keep the stored release commit when HEAD is behind it (#139)
* Keep the stored release commit when HEAD is behind it

A sync from a rolled-back checkout used to write its older HEAD onto an
existing release, rewinding the pipeline's scan baseline. The next sync
then re-scanned the range up to the current HEAD and re-attached issues
that had already shipped.

Before syncing, compare HEAD to the newest stored release anchor from
recentReleasesByAccessKey. When HEAD is strictly behind it, omit
commitSha from the sync input and log that the release commit is left
unchanged. The scan range itself is unaffected; --base-ref keeps
controlling it without dragging the anchor backwards as a side effect.

Requires server support for a nullable commitSha on ReleaseSyncInputBase.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Send preserveStoredCommitSha instead of omitting the commit

Omitting commitSha broke continuous pipelines, which identify releases
by it. Always send the checked-out commit and set
preserveStoredCommitSha when HEAD is behind the stored anchor; the
server applies it to scheduled pipelines only. The field is only sent
when set, so normal syncs remain compatible with older servers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Always send preserveStoredCommitSha

The field was dropped from the payload when false to tolerate servers
without it. The server change deploys before this releases, so the
compatibility gate is unnecessary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Prefer the syncing version's release in the rollback check

The candidate list is ordered by activity, not ancestry, so a release
from a divergent train could rank first. Ancestry to it cannot be
established, the check failed open, and the sync could still replace
the syncing version's stored commit with the rollback HEAD.

When a version is supplied and a candidate carries it, that release's
commit alone decides preservation, mirroring the scan-base rule that
prefers the syncing version's release.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 12:07:39 +02:00
Romain Cascino 2c3741305c Bump package.json to 0.17.1 (#137) v0.17.1 2026-08-27 12:33:00 +02:00
Romain Cascino c9d6459d9f Prefer the syncing version's own release as scan base (#134) 2026-08-27 11:42:16 +02:00
Romain Cascino 9fc31ce7a5 Clarify publish-time versioning workflow (#133) 2026-08-26 16:24:36 +02:00
Romain Cascino 44aca7de6b Pass the repository to gh release download in verify-release (#132) 2026-08-26 11:23:48 +02:00
Romain Cascino 6fc26e0cc6 Bump package.json to 0.17.0 (#131) v0.17.0 2026-08-26 11:15:35 +02:00
Romain Cascino d03e82e623 Harden CLI release artifact publishing (#130) 2026-08-26 09:44:06 +02:00
Axel Niklasson Yun cbd166fad9 Bump package.json to 0.16.0 (#128) v0.16.0 2026-08-21 06:34:57 +02:00
linear-code[bot] 634acc78f0 Support negated release path filters (#127)
* Support negated release path filters

Co-authored-by: linear-code[bot] <222613912+linear-code[bot]@users.noreply.github.com>

* Trim whitespace after negation so the exclusion is not silently dropped

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Reject a pathless negation instead of scanning unfiltered

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Linear <linear-6ee3ee0f-1ea6-4b88-a969-f63432eeb657@linear.linear.app>
Co-authored-by: linear-code[bot] <222613912+linear-code[bot]@users.noreply.github.com>
Co-authored-by: Axel Niklasson Yun <axel@linear.app>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 14:07:47 +02:00
Romain Cascino cd53782754 Bump package.json to 0.15.0 (#126) v0.15.0 2026-07-27 13:59:54 +02:00
Romain Cascino 4c8723ed81 Cap automatic scan ranges at 10k commits with a rev-list precheck (#123) 2026-07-27 12:13:16 +02:00
Romain Cascino 9537c01710 Stream git log instead of buffering to fix ENOBUFS on large ranges (#122) 2026-07-27 12:05:12 +02:00
Romain Cascino a0a29036d3 Add --issue-pattern flag for custom subject identifier extraction (#124) 2026-07-27 12:01:35 +02:00
Romain Cascino fd89c16afb Detect provider from GitLab CI for self-hosted hosts, add override (#121)
* Detect repository provider for self-hosted VCS hosts

* Trim provider detection to GitLab CI inference and explicit override

* Rename override to LINEAR_VCS_PROVIDER and move resolution into provider module

* Simplify provider resolution after cleanup review

* Tighten provider detection note in README

* Move repo URL parsing and provider knowledge into the provider module
2026-07-27 11:17:11 +02:00
Romain Cascino bbd6b2ea56 Bump package.json to 0.14.4 (#120) v0.14.4 2026-07-24 10:58:24 +02:00
Romain Cascino 890175c12f Scan only the current commit when release anchors are unusable (#119)
* Warn on unusable scan bases and send scan metadata with sync

* Scan only the current commit when release anchors are unusable
2026-07-24 10:06:17 +02:00
Romain Cascino 473d1f205f Bump package.json to 0.14.3 (#112) v0.14.3 2026-06-23 13:53:41 +02:00
Romain Cascino 2e68eaa61e Attribute the re-applied PR for squash revert-of-revert commits (#111) 2026-06-23 13:51:35 +02:00
Romain Cascino c40ed43eca Bump package.json to 0.14.2 (#109) v0.14.2 2026-06-11 15:08:52 +02:00
Romain Cascino f82e8b01ff Ignore branch-ref decorations on merge commits when extracting issue keys (#108) 2026-06-11 14:42:37 +02:00
Romain Cascino 16a814f930 Bump package.json to 0.14.1 (#105) v0.14.1 2026-06-09 13:53:27 +02:00
Romain Cascino bbeffdfa21 Ensure stale branch are not taken into account by --include-paths (#104)
* Ensure stale branch are not taken into account by --include-paths

* Address review: drop #62 links and clarify parent-parsing/stale-merge comments
2026-06-09 10:27:18 +02:00
Romain Cascino 927b1e58b1 Set maxBuffer on runLog to avoid ENOBUFS on large commit ranges (#103) 2026-06-09 08:56:28 +02:00
Romain Cascino a24fb75efb Bump package.json to 0.14.0 (#99) v0.14.0 2026-05-26 10:29:33 +02:00
Oldřich Jedlička 707c2b7681 Add --dry-run option and recognize KEY-N: subject prefix (#97)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
2026-05-26 09:27:08 +01:00
Autumn 435516fc6f Add --include-subjects option to filter commits by subject regex (#76)
* Add --include-messages option to filter commits by subject regex

* Extract subject-parsing into a shared helper

* Apply --include-messages to inner subject of revert commits

* Rename --include-messages to --include-subjects

* Group scanCommits filters into a ScanOptions object

---------

Co-authored-by: Axel Niklasson Yun <axel@linear.app>
2026-05-22 14:33:13 +02:00
Romain Cascino 54c235fcac Bump package.json to 0.13.0 (#96) v0.13.0 2026-05-22 10:19:54 +01:00
Romain Cascino 45bde8cc4a Allow passing document and release-notes flags (#95) 2026-05-22 10:16:08 +01:00
Romain Cascino 24407d8571 Fix CLI_VERSION ReferenceError in pnpm dev (#94) 2026-05-21 15:56:32 +02:00
Romain Cascino 1ae492d6f1 Allow passing --link to add links to a release (#92) 2026-05-21 14:53:03 +01:00
Romain Cascino f4911c091e Bump package.json to 0.12.0 (#93) v0.12.0 2026-05-21 10:53:58 +02:00
Romain Cascino ec0879834d Add --base-ref to manually override scan base (#91) 2026-05-21 08:35:30 +00:00
Romain Cascino d30cd25828 Logs improvements (#89) 2026-05-20 15:04:20 +01:00
Romain Cascino 7ca5b4eabc Bump package.json to 0.11.2 (#85) v0.11.2 2026-05-19 08:42:24 +01:00
Romain Cascino 16832d6a89 Parse nested GitLab group paths in parseRepoUrl (#84) 2026-05-19 08:40:42 +01:00
Jason Robinaugh 66db7797f0 Add support for RWX to CI user agents (#53) v0.1-test 2026-05-18 17:48:39 +02:00
Axel Niklasson Yun 9d63f17f11 Bump package.json to 0.11.1 (#82) v0.11.1 2026-05-18 13:14:31 +02:00
Axel Niklasson Yun 6367b71fb6 Add broader for matching issues identifiers (#81)
* Add support for matching issues identifiers in brackets

* Update tests

* Broaden support to more patterns
2026-05-18 10:02:59 +00:00
Romain Cascino 5a202e418b Verify ancestor walkability on shallow clones in findBaseSha (#80) 2026-05-18 10:05:32 +01:00
Axel Niklasson Yun 4624914d57 Bump package.json to 0.11.0 (#79) v0.11.0 2026-05-18 10:05:03 +02:00
Axel Niklasson Yun 87d0b623fa Update README.md (#78) 2026-05-18 10:00:42 +02:00
Axel Niklasson Yun 19cdc68026 Update README (#77)
* Update README

* Address feedback
2026-05-18 09:32:17 +02:00
Axel Niklasson Yun 4e382c418c Extract added issues from the body of a revert commit (#73)
* Update extractor to extract issues from custom messages in revert commits

* Update comments

* Address feedback

* Update
2026-05-15 14:55:10 +02:00
Romain Cascino 3b0ebdbd47 Parse MR number properly for Gitlab (#72) 2026-05-13 10:43:57 +01:00
Matthijs Wolting 138a85bf11 Set up Zizmor (#70) 2026-05-12 10:09:22 +02:00
Romain Cascino 800d52caaf Various improvements to logs (#68) 2026-05-11 14:51:05 +01:00
Romain Cascino 5f682f9514 Fix needs in .github/workflows/release.yml 2026-05-11 11:05:02 +01:00