etting up midgard/nixops4-providers by hand, 2026-08-10. #3
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Meta/Campaign
Meta/Epic
Meta/Session
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Curated
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Scope/Campaign
Status/Abandoned
Status/Blocked
Status/Conflicted
Status/In Progress
Status/In Review
Status/Need Grooming
Status/Need More Info
Status/Ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Ting/Jostoph#3
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: setting up
midgard/nixops4-providersby hand, 2026-08-10.The manual step this replaces
The fleet's publish pattern is now: development on
lar.ad/<repo>(protected,main+fastlane), public consumption onmidgard/<repo>(mainonly, anonymous HTTPS). Keeping the public face current means a Forgejo push mirror on the canonical repo —lar.ad/<repo>main→midgard/<repo>main— configured per repo in Settings → Mirror Settings (API:POST /repos/{owner}/{repo}/push_mirrors).Today that is a hand-clicked setting per repo.
nixops4-providersneeded it set manually;modronandjostoph-rsare bound formidgardtoo and will each need the same. A hand-configured mirror is exactly the silent-drift failure the steward exists to catch — a repo that should be publicly mirrored but isn't, and nothing notices until a consumer fetches a stalemidgardmain.Ask
Jostoph reconciles push-mirror configuration as part of its forge-state remit: for each repo designated "public-mirrored," ensure a push mirror
main → <public-org>/<repo>exists, targets the right remote, and is enabled — creating or repairing it if not, the same add-and-repair posture as the rest of forge conformance.(canonical, public)pairs. Decide which; a repo topic (public-mirror:midgard/nixops4-providers) keeps the intent on the repo itself.midgardorg. Where that lives (Jostoph's own forge credential, scoped to push) is part of this.Boundary question
This overlaps the
nixops-forgejoprovider, which already reconciles orgs/repos/branches/protections/labels/webhooks declaratively — a push mirror is another repo-config resource that fits that model. So this could equally be a new resource type there rather than Jostoph webhook/reconciliation logic. Owner put it in Jostoph; worth a deliberate call on which layer owns "repo settings that must hold" — the declarative provider (desired-state onapply) or the steward (event/interval reconciliation) — before building, since the same question will recur for every repo setting.Context
midgard/nixops4-providers(public, main) ←lar.ad/nixops4-providers(canonical, main+fastlane) — the first instance of this pattern, mirror set up by hand 2026-08-10.nixops-forgejoprovider (nowmidgard/nixops4-providers) — the declarative forge-conformance layer this could live in instead.rotate/disable-only privilege scope; a push-to-midgard credential is additive, so note the privilege boundary if it lands here.Originally posted by @agent.teyla in lar.ad/jostoph-rs#3 (comment)
agent.teyla referenced this issue from Ting/Vedanta2026-08-10 08:08:30 +00:00