-
v0.1.28 Stable
released this
2026-07-10 16:41:32 +00:00 | 137 commits to main since this releaseChanged
- Incremental release.
Included changes (v0.1.27 -> v0.1.28)
f11365dd3c95fix(maxsec-3c): requireSignedCommits is TRUNK-ONLY, not trunk+main
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.1.27 Stable
released this
2026-07-10 07:31:21 +00:00 | 141 commits to main since this release- Per-project branch-protection security dials. New
spec.branchProtection.security
(BranchSecuritySpec: statusCheck/statusCheckContexts/requiredApprovals/requireSignedCommits/
blockOnOutdatedBranch/dismissStaleApprovals) lets a project opt into strongerForgejoBranchProtection.
PR-gate dials apply to trunk only (main is releases-only); requireSignedCommits to both. Unset =
byte-identical to the historical render (goldens unchanged). Foundation for the max-repo-security rollout.
Included changes (v0.1.26 -> v0.1.27)
5f7b23025c63feat(crd): per-project branch-protection security dials
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Per-project branch-protection security dials. New
-
v0.1.26 Stable
released this
2026-07-09 21:24:10 +00:00 | 145 commits to main since this releaseRemoved
- The scheduled release-cadence cron (the "cadence" idea). Dropped
ReleaseSpec.Cadenceand
TaxonomySpec.CadenceStylefrom the CRDs, thecadencerender partial (the per-project
<project>-release-cadenceCronWorkflow/CronJob) + its skeleton gate, and the seeded
cadenceStylevalues. Releases are now purely on-demand (pipectl ship): theReleaseSubmitter
drives every declared release regardless of taxonomy (stage-1 resolves the version + fast-forward
lands the release commit on trunk; operator-submittable shapes also get an operator-submitted
stage-2, non-submittable shapes fall back to their trunk-push sensor). The operator prunes the
now-unrendered CronWorkflows on reconcile. Kept:ReleaseSpec.Changelog, thecadenceDeclaredBy
enum (historical-CR validation), theCadenceWorkflowstatus field, and therelease-cadence/<v>
release-prep branch/template (the on-demand mechanism, unchanged).go test ./...green incl. envtest.
Included changes (v0.1.25 -> v0.1.26)
94fc07907d6cfeat(release): remove the scheduled release-cadence cron (the cadence idea)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- The scheduled release-cadence cron (the "cadence" idea). Dropped
-
v0.1.25 Stable
released this
2026-07-09 12:56:39 +00:00 | 149 commits to main since this release- Add a
config/seanfarmdeployment overlay that basesconfig/defaultand folds in the two
prerequisites previously delivered by the separate sean/pipelinesinfra/operator-prereqs
ArgoCD app: the registry-pull-secret ExternalSecret and the controller CiliumNetworkPolicy.
The seanfarm ArgoCD app now sourcesconfig/seanfarm, making one app the single owner of
pipelines-operator-system(retires the two-app split + its $patch:delete-namespace workaround).
Included changes (v0.1.24 -> v0.1.25)
8e9d53e65076feat(config): add config/seanfarm overlay folding in operator prereqs
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Add a
-
v0.1.24 Stable
released this
2026-07-09 02:38:04 +00:00 | 154 commits to main since this releaseChanged
- Incremental release.
Included changes (v0.1.23 -> v0.1.24)
1810ea7dcd7bfeat(render): per-project spec.test.template override for the staging test gate64dc0abab085docs(crd): lifecycle contracts across the pipeline CRDs (kubectl explain)
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
v0.1.23 Stable
released this
2026-07-08 22:36:22 +00:00 | 161 commits to main since this releaseChanged
- Incremental release.
Included changes (v0.1.22 -> v0.1.23)
ae63605de265feat(chain): typed Build<-Release<-Deploy chain refsc27b1582e088style(render): gofmt5ac8b68a6f24refactor(render): delete 7 legacy template dirs, retire templateDir knob77be27ea5b00refactor(render): migrate all 8 shapes to the data-driven skeleton7dd1ff6d781crefactor(render): data-driven sensor skeleton + provision/CM partials (pilot: dockerfile-set)c760b00c26ddrefactor(render): extract branch/tag protection into shared partials3369e072e757test(render): golden snapshot of full object set per taxonomy
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
v0.1.22 Stable
released this
2026-07-08 19:58:59 +00:00 | 172 commits to main since this release- Add the
PipelineTaxonomyCRD: a pipeline SHAPE as data. The five taxonomyswitchstatements in
internal/render (template dir, build-script-required, default keyset/builder image/promote
template/staging deadline, operator-submittable) collapse to reads off a resolved PipelineTaxonomy.
The operator seeds the builtin set (render.BuiltinTaxonomies) into workflows-alice at startup and
resolves it there for every project; the parity test proves the table renders byte-identical to the
hand-authored reference dirs. render.Objects/dataFor/StagingArgs now take the taxonomy; the
PipelineProject reconciler watches PipelineTaxonomy to re-render on change. - Fix: a declared release whose taxonomy read fails no longer closes the intent as a false
Succeeded— NotFound requeues (bootstrap window), other errors back off; only a present,
non-submittable shape stays on the sensor path.
Included changes (v0.1.21 -> v0.1.22)
0bfc9bdcbd94feat(taxonomy): PipelineTaxonomy CRD — pipeline shape as data
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Add the
-
v0.1.21 Stable
released this
2026-07-08 16:26:34 +00:00 | 177 commits to main since this releaseChanged
- Follow the pipelines
land → mergeverb rename: the autoland sensor now submitspipeline-merge
(waspipeline-land) with<proj>-merge-auto-workflow names +<proj>-mergepurpose, and the
PipelineBuild.status.triggerenum ispush;merge;manual(wasland). Theautolandfeature
name (spec.deploy.flux.autoland, the<proj>-autolandsensor) is unchanged.
Added
PipelineRelease.status.deployable+ a/activequery endpoint — "Releases are Deployable", and
the dashboard pulse becomes CR-sourced.DeployablemirrorsPipelineBuild.status.releasable: a
sticky bool theWorkflowProjectorlatches true once the release run Succeeds (tag/artifacts
published), never cleared by a later Failed/Running re-projection. Adds aDeployableprintcolumn +
ReleaseLeg.deployablein the query API. NewGET /activereturns every project with a
Running/Pending Change CR (one per line,text/plain, matching the oldactive.txtwire format) so
the dashboard sidebar pulse can read the SAME Change CRs the panes do — makingpulse ⟺ a visible Running/Pending rowtrue by construction. Envtest asserts the sticky latch; a query unit test
assertsactive(p) ⟺ ∃ non-terminal row in panes(p).
Included changes (v0.1.20 -> v0.1.21)
8c7f7bd72cd8refactor(pipeline): follow land->merge verb renamee79c4105e66bci: re-trigger (buildkitd restarted for rotated token)6c8e4e5ea6faci: re-trigger (pipeline-bot token rotated post-migration)0e58f1474571ci: re-trigger (forgejo back up)2065b983f444ci: re-trigger (forgejo git-fetch recovered post-migration)803174126630ci: re-trigger (compile leg hit a forgejo git-fetch 403)352e03d350d6feat(cd-state): PipelineRelease.Deployable + /active endpoint (pulse ⟺ running)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Follow the pipelines
-
v0.1.20 Stable
released this
2026-07-07 07:26:05 +00:00 | 189 commits to main since this releaseFixed
- Manager RBAC grants
forgejotagprotections(create/update/patch/…). v0.1.19 rendered the new
ForgejoTagProtectionper project but the operator's own ClusterRole only covered
forgejobranchprotections, so every tag-protection apply failedforbidden ... cannot patch forgejotagprotections. Adds the kubebuilder RBAC marker + regenerated role.
Included changes (v0.1.19 -> v0.1.20)
b26594dbea57fix(rbac): grant manager access to forgejotagprotections
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Manager RBAC grants
-
v0.1.19 Stable
released this
2026-07-07 07:06:17 +00:00 | 194 commits to main since this releaseAdded
- Rendered protections lock trunk/main + tags to
pipeline-bot(every taxonomy). Each project's
main/trunkForgejoBranchProtectionnow setsenableMergeWhitelist: true+
mergeWhitelistUsernames: [pipeline-bot]— withenablePush:falsealready blocking direct pushes,
the branch advances ONLY via a bot-merged PR (a non-whitelisted merge, incl. the repo owner /
site-admin, is refused). Each project also renders a newForgejoTagProtection <project>-tags
(namePattern: "**",whitelistUsernames: [pipeline-bot]) so cutting a release (a tag) is a
pipeline-only operation — verified live: a non-whitelisted tag create returns HTTP 422, the bot
gets 201. Completes the pipeline-bot de-admin: humans propose via PR; only the pipeline integrates
and releases.
Included changes (v0.1.18 -> v0.1.19)
126f74d0e999feat(render): lock trunk/main merge + tag creation to pipeline-bot
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Rendered protections lock trunk/main + tags to