The GitOps extension brings version-controlled configuration management to Universe. It clones a Git repository at startup, then pulls updates on a configurable interval, copying the repo’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/universeclouddev/Universe/llms.txt
Use this file to discover all available pages before exploring further.
templates/ and configuration/ directories into the live Universe directories after each pull. No native git binary is required — the extension uses JGit 7.6.0 for pure-Java Git operations.
When to Use This
- You want version history and pull-request reviews for changes to templates and instance configurations.
- You run a CI/CD pipeline that builds server JARs or configuration files and pushes them to a Git repository.
- You need automated rollouts when changes land on a branch — Universe will pick them up within
intervalMsmilliseconds.
How It Works
Clone on startup
On
onLoad(), the extension clones the configured repository to targetPath (default: ./git-sync). If the directory already exists and contains a valid Git repository, it opens it in place instead of cloning again.Scheduled pull
A single-threaded scheduled executor fires every
intervalMs milliseconds and runs a Git pull against the configured branch.Configuration
Create./extensions/gitops/config.json:
| Field | Default | Description |
|---|---|---|
url | "" | Git repository URL (HTTPS or SSH git@ format) |
branch | "main" | Branch to track |
targetPath | "./git-sync" | Local directory where the repository is cloned |
intervalMs | 300000 | Pull interval in milliseconds (default: 5 minutes) |
enabled | false | Must be true for syncing to be active |
username | "" | HTTP Basic Auth username for private HTTPS repositories |
password | "" | HTTP Basic Auth password or personal access token |
sshKeyPath | "" | Path to an SSH private key file for git@ URLs |
Repository Structure
Your Git repository must mirror the Universe directory layout:templates/ and configuration/ as top-level directories. Files outside these two directories in the repository are ignored.
Authentication Examples
- HTTPS with PAT
- SSH Key
- Public Repository
Use a GitHub (or GitLab) personal access token as the
password field:Manual Sync
The extension syncs automatically on its configured interval. To force an immediate sync without restarting Universe, trigger a reload:onReload() re-pulls the latest commits and copies files immediately, then continues the background schedule as before.