fork-sync-all

Built with Ona KDE Eco Blue Angel Energy

When Git Platforms Give You Anxiety Attacks, Who Are You Going To Call? Fork-Sync-All!

Control plane for the Interested-Deving-1896 GitHub org. Runs 147 GitHub Actions workflows that keep three GitHub orgs and two GitLab groups in sync, manage READMEs and badges across OSP-bound repos, resolve CI failures, and maintain registered upstream imports.

Workflows182
Registered imports157
Template consumers82
GitLab subgroups14
GitLab repos mirrored225

How it works

┌─────────────────────────────────────────────────────────────────────────────┐
│  Mirror chain (outward, every 6h)                                           │
│                                                                             │
│  Interested-Deving-1896 ──► OpenOS-Project-OSP                              │
│          ▲                         │                                        │
│          │                         ▼                                        │
│          │              OpenOS-Project-Ecosystem-OOC                        │
│          │                         │                                        │
│          │                         ▼                                        │
│          │                  GitLab openos-project                           │
│          │             (14 subgroups, 225 repos mirrored)                   │
│          │                                                                  │
│          └──── upstream-commits / upstream-prs (OSP + OOC → I-D-1896) ─────┘
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  Full pipeline (manual / monthly)                                           │
│                                                                             │
│  flush-lifecycle ──► pre-flush-prep ──► full-chain-flush (25 stages) ──► post-flush-prep │
│       │                      │                             │                │
│  QUOTA_SNAPSHOT          QUOTA_SNAPSHOT               QUOTA_SNAPSHOT        │
│  (chain entry)           (chain start)                (chain exit)          │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  Quota & queue management (automatic, every 30 min)                         │
│                                                                             │
│  quota-reserve ──► queue-manager ──► rate-limit-rerun                       │
│                                           │                                 │
│                                    cancel-stale-runs                        │
│                                      quota-monitor                          │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  OTA system (versioned updates for independent forks)                       │
│                                                                             │
│  ota-release ──► ota-deliver ──► opted-in forks (PR per fork)               │
│       ▲                                                                     │
│  semver tag push                                                            │
│                                                                             │
│  ota-reconcile (weekly) ──► path A: stamp · B: drift PR · C: quota PR      │
└─────────────────────────────────────────────────────────────────────────────┘

This project automates repository management tasks for git-based platforms, addressing challenges in maintaining forks, synchronizing changes, and managing organizational repositories. It provides workflows for fork synchronization, upstream tracking, mirroring, README generation, badge injection, and release management. It is used by developers and organizations to streamline version control and ensure consistency across repositories.


Documentation

ResourceDescription
Full documentationArchitecture, quota management, workflow reference, runbooks
Workflow TriggersAll 185 workflows — schedules, triggers, synopses (plain text · published)
OTA ReconcileHybrid A/B/C fallback layer for mirror-chain consumers
OTA SystemOTA delivery architecture and opt-in guide
AI Agent CostsOCU pricing, tokenizer reference, per-task estimates
Quota CostsPer-workflow REST call estimates (p50/p95)
Workflow SchedulingOptimal dispatch windows, quota floors, EST/UTC timing
RunbooksIncident response and operational procedures

Workflow groups

159 workflows across 20 functional groups. Full detail in DOCS/workflow-triggers.md.

GroupWorkflowsDescription
Accessibility1CODEOWNERS coverage, screen-reader scan, WCAG audit, audio overview, Braille output
AI & Cost Tracking4Session cost log, weekly price sync
BDFS / Filesystem Workspace5DwarFS/BTRFS workspace dev and packaging
Bugzilla Integration4Sync commits/PRs to Bugzilla, milestone shipping
Build & Release10Build, checks, release, kernel content, arch config
CI & Failure Resolution7Rate-limit rerun, failure resolver, runner status
Documentation & Publishing9mdBook, GitBook, NotebookLM, translate docs, triggers doc
Fork & Import Sync20Upstream fork sync, registered imports, platform import
Full Pipeline7pre-flush → full-chain-flush → post-flush + critical-deploy
Git Platform Sync5Bidirectional push/pull sync with GitLab
Infrastructure & Environment4Dev container SDK, Incus, FSA API
Maintenance & Housekeeping15Config validation, cleanup, token rotation, dep updates
Mirror Chain14Outward mirror: I-D-1896 → OSP → OOC → GitLab
OSP-Bound Repo Management7Add mirror repo, CI status, setup OSP mirrors
OTA System5Release delivery, reconcile, self-update, discover, opt-in
PR Governance & Trust10Vouch, PR gate, labeler, auto-merge, rebase
Quota & Queue Management5Reserve, dedup, monitor, cost registry
README Management10Create, update, badge, translate, validate READMEs
Security & Compliance6SBOM, CodeQL, vendor audit, arch audit, pin workflows
Utility / On-Demand11Manual and specialised workflows

Key config files

FilePurpose
config/agent-cost-profiles.ymlMachine-readable AI agent cost profiles (8 variants, 10 complexity tiers)
config/gitlab-subgroups.ymlSingle source of truth for GitLab subgroup placement
config/ota-blocklist.ymlOrgs/profiles excluded from OTA delivery by default
config/ota-registry.ymlOpted-in forks receiving OTA updates
config/template-consumers.yml80 repos that receive template updates via sync-template.yml
config/template-manifest.ymlProfile definitions for template sync (full / mirror / infra-core / standalone)
config/workflow-priority-tiers.ymlCancellation priority (Tier 1 = never cancel, Tier 4 = cancel first)
config/workflow-quota-costs.ymlPer-workflow REST call cost estimates — drives quota pre-flight and quota-reserve.yml
config/workflow-sync.ymlWhich workflows have GitLab CI counterparts
registered-imports.json156 upstream repos kept in ongoing sync

Secrets

SecretUsed byNotes
ACTIVITYSMITH_API_KEYfull-chain-flush.ymlOptional — live activity tracking; skipped if unset
ADD_MIRROR_REPO_SYNCadd-mirror-repo.ymlScoped PAT for repo creation
BITBUCKET_TOKENimport-repo.yml, sync-registered-imports.ymlBitbucket app password (private repos only)
GH_SYNC_TOKENGitLab CI sync-from-gitlab jobSame PAT stored as a GitLab CI variable
GITEA_TOKENimport-repo.yml, sync-registered-imports.ymlGitea/Codeberg PAT (private repos only)
GITLAB_SYNC_TOKENmirror-osp-to-gitlab.yml, post-flush verificationGitLab PAT for mirror operations
GITLAB_TOKENGitLab workflowsGitLab PAT — api + write_repository on openos-project
NOTEBOOKLM_AUTH_JSONgenerate-notebooklm.ymlShort-lived auth state, rotated weekly by refresh-notebooklm-auth.yml
OSP_ADMIN_TOKENOSP org admin operationsPAT with admin:org on OpenOS-Project-OSP
SOURCEHUT_TOKENimport-repo.ymlSourcehut PAT (private repos only)
SYNC_IN_SERVER_URLsync-in.ymlURL of the local sync-in server instance
SYNC_TOKENAll workflowsGitHub PAT — repo + workflow + admin:org scopes
gh secret set <SECRET_NAME> --repo Interested-Deving-1896/fork-sync-all

Rate limits

Both SYNC_TOKEN and GH_SYNC_TOKEN belong to the same user and share the same 5,000 req/hr REST bucket. Treat them as one pool. raw.githubusercontent.com fetches do not count against the quota.

APILimitReset
GitHub REST5,000 req/hr per tokenTop of the hour
GitHub GraphQL5,000 pts/hr (counts as 1 REST call)Top of the hour
GitHub ModelsVaries by modelPer-minute window
GitLab REST2,000 req/min per tokenPer-minute window

quota-reserve.yml cancels low-priority queued runs when remaining quota drops below 1,000. Check current quota:

curl -sf -H "Authorization: token $SYNC_TOKEN" \
  "https://api.github.com/rate_limit" | \
  python3 -c "
import sys, json, datetime
d = json.load(sys.stdin)['resources']['core']
reset = datetime.datetime.utcfromtimestamp(d['reset']).strftime('%H:%M UTC')
print(f'remaining={d[\"remaining\"]}  resets={reset}')
"

GitLab subgroups

14 subgroups under gitlab.com/openos-project, 225 repos mirrored. Assignments are in config/gitlab-subgroups.yml.

SubgroupReposFocus
accessibility_deving9Screen readers, Braille, WCAG auditing, audio overviews
agnostic-api_deving29Unified Agnostic API — virtual filesystems, AI/LLM adapters, OS-compat layers
ai-agents_deving10AI agent frameworks and tools
cachyos_deving12CachyOS distro packages
git-management_deving9Git tooling and org management
immutable-filesystem_deving1Immutable filesystem projects
incus_deving49Incus container/VM tooling
linux-kernel_filesystem_deving14Kernel and filesystem repos
neon-deving8KDE Neon repos
ops30Infrastructure and org management tooling
penguins-eggs_deving17penguins-eggs distro tools
rust-systems_deving2Rust systems programming
taubyte_deving1Taubyte protocol
yaml-tooling_deving34YAML tools, linters, schema validators, GH Actions tooling

The project consists of several key components designed for managing git repositories and organizations across multiple platforms. It automates tasks such as fork synchronization, README generation, mirroring, badge injection, upstream tracking, and release management. The architecture is built around modular workflows, primarily written in Shell, which are executed via CI/CD pipelines. These workflows are defined in YAML files located in the .github/workflows and .gitlab directories, enabling platform-agnostic operations.

The repository is organized as follows:

.
├── .github/               # GitHub-specific configurations and workflows
│   └── workflows/         # GitHub Actions workflow definitions
├── .gitlab/               # GitLab-specific configurations and workflows
├── assets/                # Static assets for documentation and automation
├── config/                # Configuration files for various tools and workflows
├── data/                  # Data files used by workflows and scripts
├── dep-graph/             # Dependency graph generation scripts
├── docs/                  # Project documentation
├── .devcontainer/         # Development container configuration
├── .dotdrop/              # Dotfiles management
├── .ota/                  # Over-the-air update configurations
├── .reuse/                # Licensing compliance files
├── AGENTS.md              # Documentation for agent-based workflows
├── CHANGELOG.md           # Project changelog
├── CONTRIBUTING.md        # Contribution guidelines
├── LICENSE                # License file
├── README.md              # Project overview and usage instructions
└── book.toml              # Configuration for documentation generation

Workflows are the core of the project, enabling tasks like repository synchronization (sync-forks.yml), badge injection (inject-badges.yml), and upstream tracking (sync-upstream-mirrors.yml). These workflows interact with git-based platforms via APIs and are triggered by events or schedules. Configuration files and scripts in the config/ and data/ directories provide customization and support for these workflows.


  • ci.yaml: Executes the main CI pipeline, including linting, testing, and build steps. No secrets required.
  • codeql-analysis.yml: Runs CodeQL for static code analysis to detect vulnerabilities. Requires GH_TOKEN secret.
  • sync-forks.yml: Synchronizes forked repositories with their upstream counterparts. Requires GH_TOKEN secret.
  • inject-badges.yml: Updates repository README files with status badges. Requires GH_TOKEN secret.
  • mirror-orgs-full.yml: Mirrors all repositories in an organization across platforms. Requires GH_TOKEN and MIRROR_TOKEN secrets.
  • update-readmes.yml: Automates README generation and updates. Requires GH_TOKEN secret.
  • pr-gate.yml: Validates pull requests with tests and linting before merge. No secrets required.
  • auto-merge-prs.yml: Automatically merges pull requests meeting predefined criteria. Requires GH_TOKEN secret.
  • cleanup-branches.yml: Deletes stale branches from repositories. Requires GH_TOKEN secret.
  • validate-config.yml: Validates configuration files for syntax and schema compliance. No secrets required.
  • mirror-releases.yml: Mirrors release assets across platforms. Requires GH_TOKEN and MIRROR_TOKEN secrets.
  • sync-upstream-mirrors.yml: Synchronizes upstream mirrors for repositories. Requires GH_TOKEN and MIRROR_TOKEN secrets.
  • check-ci.yml: Ensures CI workflows are functioning correctly. No secrets required.

Origins

Logic extracted from

ProjectWhat
andrewthetechie/gha-repo-managerDeclarative repo settings drift detection pattern and settings.yml schema; reimplemented as a shell script using gh-api.sh ()
ioncakephper/repo-descriptionPer-file AI description generation pattern; reimplemented using llm.sh + GitHub Models (gpt-4o-mini) instead of Groq + Node.js ()
msoap/shell2httpHTTP server that executes shell scripts as endpoints; primary transport backend for vendor/unified-agnostic-api server/ ()
adnanh/webhookLightweight webhook server triggering shell scripts; alternate backend for vendor/unified-agnostic-api server/ ()
Lifailon/bash-api-serverApache CGI REST API pattern in pure bash; CGI fallback backend and deploy-cgi.sh pattern ()
locus313/github-api-scriptsOrg admin bash scripts for bulk permissions, repo creation, and monthly reports; adapted into github adapter ()
CadmusCJung/git-release-shellGitHub Releases via curl/shell; release creation pattern adapted into adapters/github/create-release.sh ()
Trusera/ai-bomAI Bill of Materials scanner (CycloneDX/SARIF/SPDX); wrapped in adapters/ai/bom-scan.sh with built-in fallback scanner ()

Inspired by

ProjectWhat
gabrie30/ghorgBulk org cloning concept; reimplemented natively for GitHub Actions without requiring a Go binary on the runner ()
svandragt/repomanRepo manifest export/import concept; extended to support multi-platform sources and bulk GitHub org import ()
helpmatteo/multirepos-to-monorepofilter-repo + LFS preservation + tag prefixing approach for monorepo merges ()
sebmellen/monorepo-importerSequential merge approach for preserving per-repo commit history ()
chrisdothtml/monorepo-importCommit-replay strategy for clean history rewriting during monorepo import ()
swingbit/mergeGitReposYAML branch mapping schema for declarative multi-repo merge configuration ()
robinst/git-merge-reposN-parent merge commit pattern; reimplemented in native bash without Java dependency ()
actions/github-scriptWorkflow-dispatch-as-API pattern; influenced the design of the critical deploy chain and dispatch-and-wait.sh ()
bashly-framework/bashlyBash CLI framework and generator; CLI argument parsing and subcommand routing pattern in cli/uaa.sh ()
Bash-it/bash-itCommunity bash framework with plugins, aliases, and themes; lib/ include structure and sourcing conventions ()
Flux159/agentic-shellLLM-driven natural language shell (AGIsh); concept and safety model adapted into adapters/ai/agentic-shell.sh ()
zen-fs/coreCross-platform virtual FS abstraction with pluggable backends; mount registry and backend plugin architecture in filesystem adapter ()
scottvr/apifusefsOpenAPI spec → FUSE filesystem bridge; API-as-filesystem concept applied to routes.yml → adapter mapping ()
rmatsuoka/apifsPlan 9-style API-as-filesystem in Go; filesystem-as-API routing concept in lib/routes.sh ()
fmartini23/cross-platform-system-interactionNode.js cross-platform OS abstraction (file/process/clipboard); namespace structure adapted into os-compat adapter ()
tislib/apibrewDeclarative YAML → REST/gRPC API generator; routes.yml declarative route manifest design ()
beamitpal/unified-ai-apiDesign spec for a platform-agnostic native AI API; multi-provider routing pattern in adapters/ai/complete.sh ()
notgiven688/jail-shBash shell with filesystem access restricted by Linux Landlock; sandboxing concept applied to UAA_FS_ROOTS path restriction in filesystem adapter () — Tracked as registered import in agnostic-api_deving subgroup
leifdenby/shellqueueFilesystem-based task queue in Python/shell; queue-as-filesystem concept referenced for adapter job queuing design — Tracked as registered import in ops subgroup

Used as reference

ProjectWhat
turahe/git-repo-managerMulti-platform repo management CLI; referenced for GitLab group pagination and concurrent clone patterns ()
hakoerber/git-repo-managerDeclarative local repo and worktree management via TOML/YAML; referenced for worktree lifecycle patterns — Forked as git-repo-worktrees-manager in Interested-Deving-1896
chopratejas/headroomContext compression proxy for LLM agents; referenced for token-budget management patterns in llm.sh () — Tracked as a registered import and deployed in the ops GitLab subgroup
kohofinancial/rtkHigh-performance Rust token compression proxy; referenced alongside headroom for LLM token reduction strategies — Tracked as a registered import in the ops GitLab subgroup
nautilus-cyberneering/git-queueGit-native queue implementation; referenced for queue-manager.sh's deduplication and eviction logic () — Tracked as a registered import
pa11y/pa11yAutomated accessibility testing CLI; used directly in check-accessibility.sh for WCAG audit ()
rust-lang/mdBookStatic site generator for documentation books; used directly in deploy-book.yml to render DOCS/ ()
DamageLabs/clahubCLA management via GitHub; referenced for contributor agreement workflow patterns — Tracked as a registered import in the ai-agents_deving GitLab subgroup
yennanliu/utility_shellGeneral-purpose bash utility collection; referenced for cross-platform shell patterns in os-compat adapter ()
alexkli/github-api-scriptsGitHub REST API shell scripts; referenced for curl-based API call patterns in github adapter ()
GoogleChromeLabs/browser-fs-accessBrowser File System Access API ponyfill; referenced for browser-side FS abstraction patterns ()
SupraSummus/ipfs-api-mountIPFS directory → FUSE mount with caching; ipfs backend type in filesystem/mount.sh ()
lifo-sh/lifoBrowser-native Unix OS with VFS, shell, and 60+ coreutils; referenced for browser runtime layer design ()
topboyasante/api-baseGo API scaffold with Swagger, metrics, and modular monolith architecture; referenced for adapter manifest.yml structure ()
Alex313031/puppeteerPuppeteer fork for CDP-based browser control; referenced for screenshot and automation adapter tooling ()
quitecode9-lab/chromium-automationLightweight CDP automation library; referenced for browser step action model in adapters/browser/automate.sh ()
dyne/tombEncrypted filesystem container using dm-crypt/LUKS; referenced for secure storage patterns in filesystem adapter () — Tracked as registered import in agnostic-api_deving subgroup
vadmium/mkinitcpio-dirInitcpio hook to mount a subdirectory as the root filesystem; referenced for early-boot FS mount patterns — Tracked as registered import in agnostic-api_deving subgroup
digitaltvguy/fswatch-Filesystem-Events-Watchfolder-Shell-ScriptShell script for fswatch watchfolder with growing-file detection; referenced for filesystem event patterns in filesystem adapter () — Tracked as registered import in agnostic-api_deving subgroup
zdk/rm-safelySafe rm wrapper that moves files to trash instead of deleting; referenced for safe file operation patterns — Tracked as registered import in agnostic-api_deving subgroup
andrachiritoiu/User-FilesystemMonitors active users and represents them as a filesystem; referenced for user-as-filesystem abstraction concept — Tracked as registered import in agnostic-api_deving subgroup
jogor9/swap.shSafely swaps two files on a filesystem using atomic rename; referenced for safe file swap in filesystem write adapter () — Tracked as registered import in agnostic-api_deving subgroup
jsbmg/mist.shSyncs directories securely via SSH filesystem; referenced for remote sync patterns in os-compat adapter — Tracked as registered import in agnostic-api_deving subgroup
sevenreasons/sizesFast CLI for extension-based disk usage summaries; referenced for filesystem stat and size reporting in filesystem adapter () — Tracked as registered import in agnostic-api_deving subgroup
aplund/bibhelperBibliographic database using shell scripts and ordinary filesystem features; referenced for filesystem-as-database pattern — Tracked as registered import in agnostic-api_deving subgroup
dparoli/hrsyncrsync backup with moved/renamed file detection; referenced for sync patterns in remote-sync and os-compat adapters — Tracked as registered import in ops subgroup
CodesOfRishi/smartcdSmart cd with filesystem navigation shortcuts and history; referenced for shell navigation patterns in cli/uaa.sh () — Tracked as registered import in ops subgroup
PavaraM/Smart-File-OrganizerAuto-sorts files into folders by type using bash; referenced for file classification patterns in filesystem adapter — Tracked as registered import in ops subgroup
pinkorca/namefixCross-platform filename sanitizer and validator; referenced for safe path handling in filesystem write adapter () — Tracked as registered import in ops subgroup
Amalzalu/operation-phantom-shellBash scripting challenges covering log analysis, process monitoring, and system automation; referenced for os-compat adapter patterns () — Tracked as registered import in ops subgroup
omyldrm/linux-shell-script-archiveArchives and searches .sh files in home directory; referenced for script discovery patterns in cli/uaa.sh — Tracked as registered import in ops subgroup
tchartron/remote-syncRemote server folder sync via rsync/SSH; referenced for remote filesystem sync patterns in os-compat adapter — Tracked as registered import in ops subgroup
nathanielop/achievementsShell scripts to unlock GitHub achievements via API; referenced for GitHub API automation patterns in github adapter () — Tracked as registered import in ops subgroup
niklasberglund/ipinfoBash wrapper for ipinfo.io IP address API; referenced for curl-based API wrapper patterns in github adapter — Tracked as registered import in ops subgroup
konzy/mass_cloneShell script to clone multiple repositories; referenced for bulk repo operation patterns in github adapter () — Tracked as registered import in ops subgroup
Vaelatern/simple-deployCollection of simple software deployment approaches; referenced for deployment pattern design in server/start.sh () — Tracked as registered import in ops subgroup

Auto-generated by generate-dep-graph.sh. Do not edit manually. Last generated: 2026-06-12 (stub — full graph generated on next scheduled run)

This graph maps every OSP-bound repo in Interested-Deving-1896 to its upstream origin(s), as declared in each repo's ## Origins README section.

RepoOriginHostFork in I-D-1896
github-codeownerskohofinancial/github-codeownersGitHub
github-codeownersjjmschofield/github-codeownersGitHub
gitlab-enhancedopenos-project/git-management_deving/gitlab-enhancedGitLab

Summary

  • OSP-bound repos scanned: stub (full scan runs weekly via generate-dep-graph.yml)
  • Tooling dependencies tracked: github-codeowners (CODEOWNERS auditing across all OSP repos)

Tooling Dependencies

ToolPurposeUpstream
github-codeownersAudits CODEOWNERS coverage — surfaces ownership stats per repokohofinancial/github-codeowners

Resources

FileDescription
dep-graph/origins.mdDependency graph (Markdown table)
dep-graph/provenance.ymlStructured upstream provenance — inspirations, extractions, references
registered-imports.jsonRegistered ongoing-sync imports
config/gitlab-subgroups.ymlGitLab subgroup map
config/repo-settings.ymlDeclarative repo settings (drift detection + enforcement)
.gitlab/merge_request_templates/Default.mdGitLab MR template

Accessibility

This repo uses automated accessibility auditing via check-accessibility.yml.

Checks include: CODEOWNERS ownership coverage, README screen-reader compatibility, WCAG 2.1 AA HTML compliance, audio overview (espeak-ng), and Braille output (liblouis).

Run the Check Accessibility workflow to generate the first report and accessibility artifacts. See DOCS/accessibility.md for the full reference.


This repo is maintained in Interested-Deving-1896/fork-sync-all and mirrored through:

Interested-Deving-1896/fork-sync-all  ──►  OpenOS-Project-OSP/fork-sync-all  ──►  OpenOS-Project-Ecosystem-OOC/fork-sync-all

Changes flow downstream automatically via the hourly mirror chain in fork-sync-all. Direct commits to OSP or OOC are detected and opened as PRs back to Interested-Deving-1896.


Contributors

@Interested-Deving-1896: 480 commits @github-actions[bot]: 78 commits @actions-user: 7 commits @dependabot[bot]: 6 commits @web-flow: 5 commits

Note: This repository may be a mirror. Please refer to the upstream source for additional context.


License

GPL-3.0 © 2026 Interested-Deving-1896

Install

Usage

Configuration