• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

opendefensecloud / artifact-conduit / 39946487918
86%

Build:
DEFAULT BRANCH: main
Ran 23 Oct 2026 11:35AM UTC
Jobs 1
Files 17
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Oct 2026 11:29AM UTC coverage: 85.932% (-0.6%) from 86.508%
39946487918

push

github

web-flow
fix(controller): make a future-dated force-at force once and settle (#530)

## What
Order and ArtifactWorkflow store the honoured `force-at` value in
`lastForceAt` instead of `now()`, so a future date forces once and then
settles. Values the status cant hold (past year 9999) are rejected in
`GetForceAtAnnotationValue`, shared by all three controllers.

Closes #497

## Why
With `now()` a future annotation always looks newer -> forces on every
pass. On the dev cluster the Order even ends up with zero AWs and
nothing transfers until the date passes.

`recordableForceAt` from the issue got removed in 07e448f, so its back
in `helpers.go`.

## Testing
- envtest: force specs on Order and AW now cover "now" and "future",
future failed before the fix. Full suite + lint green
- dev cluster, `examples/oci` with `now+1h`: old image churns, this
branch forces once and stays quiet. `99999999999999` gets logged and
ignored

## Notes for reviewers
- Kept the `After` check, so nothing re-forces on upgrade. A value lower
than the last honoured one wont force (documented)
## Checklist
- [x] Tests added/updated, or confirmed that no tests are required
- [x] No breaking changes, or upgrade path documented above
- [x] Readable commit history (squashed and cleaned up as desired)
- [ ] AI code review considered and comments resolved


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

<!-- coderabbit-ai-generated:v1 -->

## Summary by CodeRabbit

* **Bug Fixes**
* Force-reconciliation timestamps are now recorded consistently, so
future-dated values trigger reconciliation once instead of on every
controller pass.
  * Timestamps that cannot be recorded are rejected and ignored.
* **Documentation**
* Clarified that a newer force-reconciliation value acts immediately; it
does not schedule reconciliation for that timestamp.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

7 of 7 new or added lines in 3 files covered. (100.0%)

12 existing lines in 2 files now uncovered.

1411 of 1642 relevant lines covered (85.93%)

2243.49 hits per line

Coverage Regressions

Lines Coverage ∆ File
8
81.82
-3.64% pkg/controller/workflow_handler.go
4
78.63
-1.06% pkg/controller/order_controller.go
Jobs
ID Job ID Ran Files Coverage
1 39946487918.1 23 Oct 2026 11:35AM UTC 17
85.93
GitHub Action Run
Source Files on build 39946487918
  • Tree
  • List 17
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39946487918
  • 66d2f9bf on github
  • Prev Build on main (#39943565771)
  • Next Build on main (#40254836837)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc