Skip to content

Settings

Project Settings

This section purpose is to manage the project settings.

The settings should be as documented at GitLab's Project API docs, except the id.

You can provide any number of the settings from there - if you don't provide a setting then it will be not changed.

Note that some keys and values can be very complex here - see the Container Registry cleanup policies under the container_expiration_policy_attributes key in the code below as an example.

Note

Some Merge Requests-related settings are also set here.

Example:

projects_and_groups:
  group_1/project_1:
    project_settings:
      default_branch: main
      builds_access_level: enabled
      visibility: internal
      only_allow_merge_if_pipeline_succeeds: true
      only_allow_merge_if_all_discussions_are_resolved: true
      container_expiration_policy_attributes:
        cadence: "1month"
        enabled: true
        keep_n: 1
        older_than: "14d"
        name_regex: ""
        name_regex_delete: ".*"
        name_regex_keep: ".*-main"
      # (...)

Group Settings

This section purpose is to manage the group settings.

The settings should be as documented at GitLab's Groups API docs, except the id.

You can provide any number of the settings from there - if you don't provide a setting then it will be not changed.

projects_and_groups:
  group_1/*:
    # configures settings for the 'group-with-spammy-projects' group
    group_settings:
      # keys and values here are as described at https://docs.gitlab.com/ee/api/groups.html#update-group
      emails_disabled: true