Control repo that keeps GitHub mirrors of Codeberg-hosted Composer dependencies
in sync, so owncloud CI never has to clone from
codeberg.org (which intermittently returns HTTP 503) during composer install.
owncloud/core's composer.lock pins two packages whose canonical home is
Codeberg, and Packagist lists no dist archive for them — so Composer is forced
to git clone from codeberg.org. When Codeberg is down, every downstream CI job
that builds core (guests, and other apps) fails.
These packages are mirrored to GitHub, where Composer can fetch a dist zipball
via the API and never touches Codeberg at install time:
| Package | Upstream (canonical) | GitHub mirror |
|---|---|---|
icewind/streams |
https://codeberg.org/icewind/streams | https://github.com/DeepDiver1975/streams |
icewind/smb |
https://codeberg.org/icewind/SMB | https://github.com/DeepDiver1975/SMB |
mirror-sync.yml runs weekly (and on
workflow_dispatch). For each package it git clone --mirrors the Codeberg repo
and git push --mirrors it into the GitHub mirror, keeping branches and tags an
exact copy of upstream.
The workflow lives here, in a dedicated control repo, rather than inside the
mirror repos: git push --mirror makes the target an exact copy of the source,
so a workflow stored in a mirror would delete itself on the first run.
MIRROR_PAT — a fine-grained personal access token with Contents: read and
write on DeepDiver1975/streams and DeepDiver1975/SMB. The built-in
GITHUB_TOKEN cannot be used because it only grants access to this control repo.