Settings on existing principals (ADR-0005): group and project members,
project shares, LDAP and SAML group links, job token allowlists, plus the
remaining project deployment surfaces that declare references — remote
mirrors, Pages domains, and deploy tokens.
Existing principals only
A declared member whose user does not exist, or a referenced project/group
path that does not resolve, is an error in strict mode and a recorded
skip in compatible mode, never an implicit creation. Undeclared members
are not pruned; only declared memberships are managed.
Project shares with existing groups. Shares are add/remove only: changing access reports drift through strict/compatible handling, so remove and re-share to change it.
Properties of projects[].shared_with_groups
groupstringRequired unless alternate identity is set
Existing group path, resolved to an id. Declare exactly one of group or group_id.
group_idintegerRequired unless alternate identity is set
Existing group id. Declare exactly one of group or group_id.
LDAP group links, matched by their LDAP identity and provider. Links are add/remove only; removal sends the identity in the request body as required by GitLab's API.
Properties of groups[].ldap_group_links
cnstringRequired unless alternate identity is set
LDAP common name. Declare cn or filter.
filterstringRequired unless alternate identity is set
LDAP filter used instead of cn.
providerstringRequired
LDAP provider name; participates in composite matching.
SAML group links. GitLab can store the same SAML group name under multiple providers; declare the provider to disambiguate those links. Links are add/remove only.
Properties of groups[].saml_group_links
saml_group_namestringRequired
SAML group name and primary identity.
providerstring
Optional provider used to disambiguate duplicate group names; carried on the item route for deletion.
Push mirrors matched by URL with embedded credentials stripped on both sides because GitLab masks them in responses. Rotate URL credentials by removing and recreating the mirror.
Properties of projects[].remote_mirrors
urlstringRequired
Mirror URL and identity. The full credentialed value is secret: never displayed, compared, or diffed, and carried on every ordinary update.
enabledboolean
Whether the mirror is active; reconciles with drift detection.
only_protected_branchesboolean
Mirror only protected branches; reconciles with drift detection.
keep_divergent_refsboolean
Keep divergent refs; reconciles with drift detection.
force_secret_updateboolean
Unsupported for mirror URLs because GitLab cannot safely replace credential-bearing URLs in place. Declare state: absent, apply, then declare the new URL.