feat: add oCIS 8.0.5 image with date-based tags and enable Docker Hub push#19
Conversation
… push oCIS v8.0.5 (stable, 2026-06-19) is the newest patch in the 8.0.x line. Replace the 8.0.4 release-matrix entry with 8.0.5 so it inherits the floating `8.0` and `8` tags. Add a per-build, version-qualified date tag (`<version>-YYYYMMDD`, e.g. `8.0.5-20260623`) so rebuilds of the same oCIS version at different OS-patch levels are distinguishable — relevant now that the runtime stage runs `apk upgrade` at build time. The date is resolved in a new `prepare` job and appended to `docker-extra-tags`, mirroring the rolling workflow. Enable publishing to Docker Hub: `push` now follows the same gate as the rolling workflow (`github.event_name != 'pull_request'`), so images publish on push-to-master / tag / schedule but not on PRs. Re-enable the `update-docker-hub-description` job (it was disabled only until publishing was authorized). Credentials are already referenced and in use by the rolling workflow. Refresh the README "Supported Tags" table to match the build matrix and document the date tag form. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
A release candidate must never update higher-order floating version tags: those track the latest stable release. With Docker Hub push enabled, the 8.1.0-rc.1 matrix entry carrying `8.1` and `8` would race the stable 8.0.5 entry for the `8` tag and could repoint `8` (and `8.1`) at unreleased RC code. Drop the floating tags from the 8.1.0-rc.1 entry so it publishes only `8.1.0-rc.1` (plus its per-build date tag). Update the README Supported Tags table to match. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
|
Applied the rule RC never updates higher-order version tags: dropped the floating |
DeepDiver1975
left a comment
There was a problem hiding this comment.
🤖 Automated review by Claude Code review agent.
Summary
Replaces the 8.0.4 matrix entry with 8.0.5, adds a version-qualified date tag, removes the floating 8.1/8 tags from the 8.1.0-rc.1 RC entry, enables Docker Hub push (PR-gated), and re-enables the update-docker-hub-description job. The change is well-scoped and the workflow edits look correct and internally consistent.
Correctness — looks good
- Tag scheme is consistent with the existing matrix. Notably this PR fixes the bare-
8/8.1collision the author flagged: the RC entry now publishes only its exact8.1.0-rc.1tag (extra-tags: ""), and8.0.5carries8.0+8. Good call — stable now owns the floating tags. (README "Note for reviewer" mentions the collision as left-as-is, but the diff actually removes it; minor doc/body mismatch, not blocking.) - Date tag
${{ matrix.release.version }}-${{ needs.prepare.outputs.date }}is well-formed (8.0.5-YYYYMMDD), thepreparejob +needs: [lint, prepare]wiring is correct, andpreparepassed in CI. - Push gate
push: ${{ github.event_name != 'pull_request' }}mirrorsrolling.yml— no publishing on PRs, no accidental exposure.update-docker-hub-descriptionis correctly gated onrefs/heads/master. - README "Supported Tags" table matches the new tag layout.
Required checks — FAILING (blocking)
mergeStateStatus: BLOCKED. Both matrix builds fail at the Trivy scan step (build + smoke test pass; prepare/lint pass):
usr/bin/ocis (gobinary) Total: 8 (HIGH: 8, CRITICAL: 0)
golang.org/x/crypto v0.51.0 (fixed in 0.52.0)
CVE-2026-39827 / CVE-2026-39828 (SSH: discarded permissions → unauthorized command execution) + 6 more
These 8 HIGH findings are in golang.org/x/crypto bundled inside the upstream ocis binary of the v8.0.5 release — not anything this Dockerfile builds or can apk upgrade away. They affect the 8.1.0-rc.1 job too (same vendored dep), so this is an upstream-image issue, not a defect in this PR. Resolving it needs either an upstream oCIS build with x/crypto >= 0.52.0, or a .trivyignore entry for CVE-2026-39827/39828 (with the usual expiry, if the team accepts the risk for these tags). Cannot merge while required checks are red regardless.
CHANGELOG — MISSING
CHANGELOG.md exists with a ## [Unreleased] section (currently empty) and this PR does not touch it. Per repo convention an entry should be added under ## [Unreleased]:
### Changed
- Update oCIS image to 8.0.5 and enable Docker Hub publishing with date-based per-build tags
Verdict
Changes requested — non-blocking nits aside, required checks are red (upstream Trivy HIGH findings) and the changelog entry is missing. Hold merge until checks are green (upstream fix or an accepted .trivyignore) and add the [Unreleased] entry.
Remove the 8.1.0-rc.1 release-candidate entry; the matrix now builds only the latest stable 8.0.5. Update the README Supported Tags table to match. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
DeepDiver1975
left a comment
There was a problem hiding this comment.
🤖 Automated review by Claude Code review agent.
Verdict: changes-requested — the change itself is well-formed, but required CI is red and a CHANGELOG entry is missing.
Diff correctness — looks good
- Matrix update
8.0.4→8.0.5(dirv8, floating8.0/8) is consistent with the existing tag scheme; dropping the8.1.0-rc.1entry is intentional and scoped. preparejob + date tag —date -u +%Y%m%d→<version>-YYYYMMDDappended via the multilinedocker-extra-tagsblock is correct YAML and mirrorsrolling.yml.buildcorrectly gainsneeds: [lint, prepare].- Push gate
push: ${{ github.event_name \!= 'pull_request' }}is well-formed and matchesrolling.yml(publishes on push/tag/schedule, not PRs). update-docker-hub-descriptionre-enabled, still guarded byif: github.ref == 'refs/heads/master'. Sane.- Floating
8tag: with only the8.0.5entry remaining,8now tracks stable, which resolves the RC-vs-stable concern raised in the PR description. Good.
Blocking: required checks RED
build (amd64) and build (arm64) both fail at the Trivy scan step (run 28009435355):
usr/bin/ocis (gobinary) Total: 8 (HIGH: 8, CRITICAL: 0)
golang.org/x/crypto v0.51.0 → fixed in 0.52.0
CVE-2026-39827/39828/39829/39830/39835/42508/46595/46597 (SSH)
These are HIGH, status: fixed, and not covered by the current .trivyignore expiry list — Trivy exits non-zero and fails the build. This is an upstream problem in the bundled oCIS 8.0.5 binary (x/crypto/ssh), not fixable from this repo's Dockerfile. The image cannot publish until either upstream ships an 8.0.x with x/crypto ≥ 0.52.0, or these CVEs are added to v8/.trivyignore with an expiry (a maintainer/security decision). merge, update-docker-hub-description correctly skipping. mergeStateStatus = BLOCKED.
CHANGELOG: missing
CHANGELOG.md (with an ## [Unreleased] section) is not touched by this PR. Suggested entry under ## [Unreleased]:
### Added
- oCIS 8.0.5 image with immutable date-based tags (`<version>-YYYYMMDD`)
### Changed
- Enable Docker Hub publishing on push/tag/schedule
Once CI is green (upstream bump or an explicit trivyignore decision) and a CHANGELOG entry is added, this is good to go.
Trivy flagged 8 HIGH CVEs in golang.org/x/crypto v0.51.0 (fixed in 0.52.0), embedded in the oCIS binary. These cannot be patched by this Docker repo — they require an upstream owncloud/ocis dependency bump, expected in 8.0.6. Ignore them until then so the release build passes, matching the existing grouped trivyignore entries. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
DeepDiver1975
left a comment
There was a problem hiding this comment.
🤖 Automated review by Claude Code review agent.
Re-review of HEAD 222d89f (changed since my last review: file count 2→3, +37/-21).
What changed since the prior review
-
Trivy (prior blocker B) — RESOLVED. The 3rd file is
v8/.trivyignore, which now adds the 8golang.org/x/crypto v0.51.0HIGH SSH CVEs (CVE-2026-39827/39828/39829/39830/39835/42508/46595/46597) under a clear comment header# golang.org/x/crypto v0.51.0 (fixed in 0.52.0) — will be fixed in oCIS 8.0.6. The entries match the existing file convention exactly (one CVE per line,exp:2026-10-22, grouped by upstream module). These are genuinely upstream-image CVEs bundled in the oCIS 8.0.5 Go binary, unfixable by this packaging repo until oCIS 8.0.6 — suppressing them with a dated expiry here is the right call and consistent with the rest of the file. All checks are now green (build amd64/arm64 pass, lint pass, prepare pass; Trivy runs inside the passing build job). ✅ -
Matrix simplified. The
8.1.0-rc.1entry was dropped; the matrix now carries a single8.0.5entry with8.0,8, and the new date tag. This also resolves the8-tag collision the PR body warns about — with only one entry left,8unambiguously tracks8.0.5. Note the PR body's "Note for reviewer" paragraph about the RC also carrying8is now stale and could be trimmed.
Core change assessment
- Date tag
${{ matrix.release.version }}-${{ needs.prepare.outputs.date }}via the newpreparejob (UTCdate +%Y%m%d) is sound and mirrors the rolling workflow.buildcorrectly gainsneeds: [lint, prepare]. - Push gating
push: ${{ github.event_name \!= 'pull_request' }}matchesrolling.yml— publishes on push/tag/schedule, never on PRs. Correct. update-docker-hub-descriptionre-enabled, gated onrefs/heads/master. Fine.- README "Supported Tags" table refreshed to document
8.0.5/8.0/8and the<version>-YYYYMMDDimmutable tag. Consistent.
Remaining issue
(A) CHANGELOG.md entry — STILL MISSING. This repo maintains a plain CHANGELOG.md with a ## [Unreleased] section (currently it contains only the # Changelog / ## [Unreleased] headers and no entries yet). This PR adds no changelog entry. The Unreleased section should record this user-visible change. Suggested entry:
## [Unreleased]
### Added
- oCIS 8.0.5 image with version-qualified date tags (`<version>-YYYYMMDD`)
### Changed
- Enable Docker Hub publishing (push on master/tag/schedule, not on PRs)(There are no existing entries to mirror category style against, so ### Added / ### Changed per Keep a Changelog conventions is the safe choice.)
Verdict
Functionally correct and the previously-blocking Trivy scan is now green. Only nit is the missing CHANGELOG entry (and the now-stale RC note in the PR body). approve-with-nits — add the changelog entry before merge.
Context
oCIS v8.0.5 (stable, published 2026-06-19) is the newest patch in the 8.0.x line, superseding 8.0.4.
Changes
.github/workflows/main.yml8.0.4release-matrix entry with8.0.5(inherits floating8.0/8tags).8.1.0-rc.1unchanged.preparejob that resolves a UTC date stamp and append a version-qualified date tag<version>-YYYYMMDD(e.g.8.0.5-20260623) todocker-extra-tags. This distinguishes rebuilds of the same oCIS version at different OS-patch levels — relevant now that the runtime stage runsapk upgradeat build time (fix: upgrade OS packages in runtime stage to pick up Alpine security patches #17). Mirrors the rolling workflow's date pattern.push: ${{ github.event_name != 'pull_request' }}— same gate asrolling.yml. Publishes on push-to-master / tag / schedule, not on PRs.update-docker-hub-descriptionjob (was disabled only until publishing was authorized; gated onrefs/heads/master).README.md— refresh the "Supported Tags" table and document the date tag.Verification
VERSION=8.0.5) — builds cleanly (the IDPpackage.jsonstill ships on this tag, so node-builder runs the pnpm build).ocis init || true; exec ocis server,OCIS_INSECURE=true) →status.phpreturns"productversion": "8.0.5", matching CI'ssmoke-test-version-jq.main.ymlvalidates as YAML.8.0.5,8.0,8, and8.0.5-YYYYMMDDtoowncloud/ocis.Note for reviewer
Both matrix entries (
8.1.0-rc.1and8.0.5) carry the bare8tag. With push now enabled they will both publish8, so whichever job's manifest is created last wins — and that could be the RC. This is pre-existing in the matrix but only becomes live now that push is on. If8should track the latest stable only, drop8from the8.1.0-rc.1entry. Left as-is here to keep the change scoped; happy to adjust.🤖 Generated with Claude Code