Work with IOModel models and specs in a GitLab repository — Git-projects or cloud sync.
GitLab is a first-class git host next to GitHub: file-based Git-projects keep the repository as the source of truth, and cloud projects can sync Standard and Protected branches the same way as GitHub (including self-hosted GitLab).
Git-project (files in GitLab)
| Capability | How |
|---|---|
| Versioning | Standard Git commits and branches |
| Review | Merge requests on model and spec files |
| CI | IOModel validation in GitLab CI |
| Editing | VS Code / Cursor extension |
# .gitlab-ci.yml
iomodel-validate:
image: node:20
script:
- npx @iomodel/cli validate --json > validation.json
artifacts:
when: always
paths:
- validation.jsonPut the project in a GitLab repo
Use the Git Project layout.
Commit and push
Version with Git and push to GitLab.
Review in merge requests
Reviewers read the model/spec diff in the MR.
Validate in CI
Add the validation job so merge requests are checked.
Cloud GitLab sync
Organisation Settings → Git Integration must list GitLab Cloud or your self-hosted GitLab. Then Project settings → Git accepts a GitLab HTTPS URL and a project/group access token with read_repository + write_repository.
Behaviour matches GitHub Connection:
- Only Standard and Protected branches sync; Collab rooms stay in Studio.
- The exported snapshot includes
_attachments/and other binaries. - Git LFS is not supported — sync stops instead of corrupting files.
- Status
conflict/problempauses that branch until you resolve it.
Import a GitLab repo as a new cloud project from Projects → New → Import Project.
The validation command and exit codes are the same across providers — see CI Validation.
Last updated on