How matching works
Each repository declares its platform in its root Makefile:
PLATFORM = go # or joomla, npm, php, generic
A sync profile targets every repo whose Makefile matches its platform and copies the template’s .mokogit/ files into those repos. Files a repo owns itself - anything named custom-* - are always preserved and never overwritten.
Running a sync on demand
Profiles sync on a regular schedule, but you can trigger one yourself at any time:
- Go to your organization → Settings → Sync Profiles.
- Find the profile you want to run.
- Click Run.
MokoGIT applies the profile immediately and shows a summary of how many repositories were updated, skipped (already up to date), or failed.
Targeting sub-organizations
If your organization has sub-organizations, a profile can extend into them (from the profile’s Edit form):
- Apply to sub-organizations - also sync matching repos owned by descendant sub-orgs (descendants only - never the parent).
- Auto-apply to future sub-orgs - automatically include sub-orgs created later.
- Or pin a specific set of sub-organizations to target.
For automation: the API
Every profile exposes a /sync endpoint:
- Preview (dry-run, no changes) -
GET /api/v1/orgs/{org}/sync-profiles/{id}/sync - Apply (run the sync) -
POST /api/v1/orgs/{org}/sync-profiles/{id}/sync
# Preview what would change
curl -H "Authorization: token YOUR_TOKEN" \
https://git.mokoconsulting.tech/api/v1/orgs/YourOrg/sync-profiles/2/sync
# Apply it
curl -X POST -H "Authorization: token YOUR_TOKEN" \
https://git.mokoconsulting.tech/api/v1/orgs/YourOrg/sync-profiles/2/sync
Coming soon
- Explicit target branch - choose which branch a profile writes its synced files to, rather than always the default branch.
- Open an issue on failure - when a repository fails to sync, automatically open a tracking issue on it so the failure is visible and actionable.
Get help
Open a support ticket or call (931) 820-0265.