| Filename | Latest commit message | Latest commit date |
|---|---|---|
| cache | ||
| config | ||
| runs | ||
| latest.md | ||
| metrics.md | ||
| README.md | ||
reports
What each scheduled run of the mirror pipeline saw and changed, written by the job itself. This repository is the operational record of git.opencode.swiss: the rules live elsewhere, and what actually happened lives here.
Nothing here is written by hand. Every file is regenerated by mirrors/sync.py in meta/opencode-forges, so an edit would be overwritten by the next run. To change what a report says, change the job that writes it.
What is here
latest.md |
The most recent run. Start here. |
runs/YYYY-MM-DD.md |
The same report, kept per day, so a change can be traced back to the run that made it. |
| Issues | One open ticket per repository the import is holding for a human decision — see below. |
Logs answer "did it run". These answer "what is true now, and what moved" — which is the question worth asking before writing to a publisher. They are also durable: a forge expires job logs, and a committed file diffs against the run before it.
Reading a report
Each report opens with when the run happened and whether it applied changes or was report-only, then:
- Corpus — how many mirrors each source contributes, and the total.
- publiccode.yml — how many mirrored repositories carry the file, which ones the federal catalogue does not list yet (those are the actionable ones), and which are a rename away from being crawlable.
- Changes this run — repositories newly mirrored, topics that changed, and anything on the instance that no source still lists. That last group is reported and never acted on: removing a mirror is a deliberate act, not a side effect of a job.
- Awaiting sign-off — see below.
- Upstream link-outs — how many mirrors' Issues/Wiki tabs were pointed at their upstream this run, how many were already in place, and how many have gone stale because the upstream closed the unit they link to — those are named, because taking a link down again is an operator decision, not something a run can do.
- Upstream sources and ossbenchmark crawl freshness — how current the underlying data actually is. The crawl behind one source is years stale for most cantons and cities, so "no new repositories" from it is never evidence that there are none. The report says so on every run rather than in a document nobody re-reads.
A run that fails says so at the top, under a heading you cannot miss, and everything below it describes the state after the steps that did complete.
Awaiting sign-off
Repositories above the import size limit are not mirrored automatically — they wait for a person to agree to the disk. Each one gets a single open issue in this repository's tracker, filed by the job the first time the repository is held; the report repeats the standing list in readable form, dated from the ticket.
A ticket exists so the notification only fires the first time a repository is held. A standing decision re-sent every week teaches the reader to filter the alert, and then the one that mattered is missed too. So the alert carries what changed, and the open tickets carry what stands. The ticket's title is how the job recognises it — leave the title as filed.
The ticket is the venue and the audit trail, never the decision: approval is a line in the versioned configuration (size_approvals.txt, changed by pull request), and the job closes the ticket with a comment saying how it resolved.
Where the answers actually are
This repository records outcomes. For what the mirror is and why a given repository is or is not part of it:
- meta/about — what this instance is, what mirroring does and does not imply, and how to report or remove something.
- SCOPE.md — which sources feed the corpus, what each one misses, what every topic actually records, the size limit and how sign-off works, and why an absence means nothing.
- meta/opencode-forges — the generators, deduplication rules, exclusion lists and size approvals that decide all of it. The instance holds no state that cannot be rebuilt from them.
This repository's own issue tracker exists for the operators' sign-off bookkeeping. For anything about mirrored content — a report, a removal, a repository listed in a way you did not expect — write to info@zentrumsds.ch (see REPORTING.md); a report that looks wrong is worth the same address.