chore: align repo with owncloud-docker org conventions and unblock image publishing - #5
Merged
Merged
Conversation
Bring the repo in line with every other active repo in the owncloud-docker organisation. CODE_OF_CONDUCT.md, SUPPORT.md and .renovaterc.json are byte-identical copies of the org boilerplate; CONTRIBUTING.md and agents.md are adapted to this repo. The missing .renovaterc.json is why the Dockerfile base-image digests went stale — the owncloud-ops/renovate-presets:docker preset auto-merges golang and alpine digest bumps, and without it nothing was watching. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
No other repo in the organisation declares a docker ecosystem for Dependabot. IMAGE-LIFECYCLE.md assigns Docker base-image digests to Renovate and GitHub Actions to Dependabot; running both duplicates the work and leaves neither clearly responsible. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
The pinned golang:1.26-alpine digest was Go 1.26.5, so every image built since this repo was created failed the Trivy gate on eight HIGH findings in the Go standard library linked into /usr/local/bin/app: CVE-2026-33818 encoding/asn1 DoS CVE-2026-39821 x/net/idna privilege escalation CVE-2026-46600 x/net/dns/dnsmessage DoS CVE-2026-56853 net/http unencrypted HTTP/2 DoS CVE-2026-56858 html/template XSS CVE-2026-56859 encoding/xml DoS CVE-2026-56860 net/url quadratic complexity DoS CVE-2026-56862 crypto/tls KeyUpdate DoS All eight are fixed in Go 1.26.6. The new digest is Go 1.26.7, verified with 'go version -m' against the binary built from it. These findings have fixes, so .trivyignore is deliberately left untouched. The node:24-alpine pin is bumped in the same commit; it is a build-only stage with no bearing on the shipped image, but it leaves Renovate's first run with nothing stale to chase. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
LukasHirt
reviewed
Aug 25, 2026
| @@ -0,0 +1,4 @@ | |||
| { | |||
Contributor
There was a problem hiding this comment.
Haven't we moved away from renovate in favour of dependabot?
Contributor
Author
There was a problem hiding this comment.
Not yet in this orga. Open task. Until then: consistency
LukasHirt
approved these changes
Aug 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
ocis-workflowswas created as a standalone image-build repo and just moved intoowncloud-docker. It never went through the org's repo-setup conventions: seven filesthat every other active repo in the org carries are missing, and one config diverges.
Auditing it surfaced a harder problem: the image has never been published. Docker Hub
returns
object not foundforowncloud/ocis-workflows, andDocker CIhas failed onevery run on
mainsince the repo was created. This PR fixes the cause.What
Org conventions
Copied verbatim from
owncloud-docker/ocis(confirmed byte-identical org boilerplate):CODE_OF_CONDUCT.md,SUPPORT.md,.renovaterc.json,.gitignore,.github/CODEOWNERSAdapted for this repo:
CONTRIBUTING.md— shared preamble and "Pull requests" section kept verbatim; "Aboutthis repository" rewritten to describe the two-deployables-one-image arrangement and to
direct application bug reports upstream to
owncloud/ocis-workflows.agents.md— same section structure asocis/agents.md, with this repo's specifics:the three-stage
Dockerfile.multiarch, rolling-only tagging with no version matrix yet,and the
NOTICE.md/LICENSES/third-party attribution..github/dependabot.ymldropped itsdockerecosystem. No sibling declares one;IMAGE-LIFECYCLE.mdassigns Docker digests to Renovate and GitHub Actions to Dependabot.Renovate's onboarding PR #4 exists precisely because
.renovaterc.jsonwas absent, andshould close itself once this lands.
The Trivy failure
The pinned
golang:1.26-alpinedigest was Go 1.26.5, so the binary carried eight HIGHstdlib CVEs and the publish gate failed every time:
encoding/asn1DoSx/net/idnaprivilege escalationx/net/dns/dnsmessageDoSnet/httpunencrypted HTTP/2 DoShtml/templateXSSencoding/xmlDoSnet/urlquadratic complexity DoScrypto/tlsKeyUpdate DoSAll eight are fixed in Go 1.26.6; the new digest is Go 1.26.7.
alpine:3.24was alreadycurrent and is untouched.
node:24-alpineis bumped too — build-only stage, no CVE impact,but it leaves Renovate nothing stale to chase on its first run.
.trivyignoreis deliberately unchanged. These findings have fixes, and perIMAGE-LIFECYCLE.md§4 a.trivyignoreentry is for unfixable or false-positive findingsonly.
Verification
Built locally with the CI build args and confirmed the toolchain fix directly:
Smoke test, as CI runs it:
A local Trivy run exits 0, but that is not evidence on its own — my local vuln DB is
from 2026-06-05 and a control scan of the known-vulnerable Go 1.26.5 base also reports
Total: 0. A fresh DB download is blocked here (ghcr.iodenied), so CI's Trivy job isthe real gate. The
go1.26.7result above is the load-bearing evidence.Follow-ups, not in this PR
31288029995passed build, Trivy andsmoke test, then failed at
Login to Docker HubwithUsername and password required.Org
DOCKERHUB_USERNAMEandDOCKERHUB_TOKENare now bothvisibility: all, so itshould be resolved — but it has never been observed working for this repo. If it fails
again, or the push is rejected because the Docker Hub repository does not exist yet, that
needs a manual Docker Hub step rather than a CI workaround.
owncloud-docker/.github—docs/IMAGE-LIFECYCLE.mddoes not mention this repo.Separate PR.
owncloud-docker/admin— safe-settings enrolment (topics, labels, team access,rulesets). Deferred until safe-settings is live. Worth noting: this repo is the first in
the org whose image build can be gated as a required check, because it has no version
matrix embedding a release number in the job name.
Deliberately left alone
permissions:blocks in both workflows and the[LICENSES/*]stanza in.editorconfig. No sibling has the former; this repo is stricter, not wrong. Porting thathardening to the siblings is worth doing separately; weakening it here is not.
CHANGELOG.mdand no.github/issue_template.md— matchingocis, the most recentlymodernised repo in the org.
SUPPORT.mdsupersedes the issue template, whose siblingcopies point at retired channels.
🤖 Generated with Claude Code