Commit 386714bd authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

docs: add explanations about NEW_GROUP_OPTIONS / NEW_PROJECT_OPTIONS

parent b943e308
Loading
Loading
Loading
Loading
+41 −16
Original line number Diff line number Diff line
@@ -20,13 +20,14 @@ The job only requires a GitLab token, that shall be configured declaring a `$GIT
All the other parameters/variables are automatically determined by the job but might be overwritten with the appropriate project variables if need be:

| Env. Variable                    | Description                                                                                                      | Default Value                           |
| -------------------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------- |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| `$SRC_GITLAB_API`                | GitLab source API url                                                                                            | `https://gitlab.com/api/v4`             |
| `$SRC_SYNC_PATH`                 | GitLab source root group path to synchronize                                                                     | `to-be-continuous`                      |
| `$DEST_GITLAB_API`               | GitLab destination API url                                                                                       | `$CI_API_V4_URL`                        |
| `$DEST_TOKEN` or `$GITLAB_TOKEN` | GitLab destination token with at least scopes `api,read_repository,write_repository` and `Owner` role            | _none_ (**mandatory**)                  |
| `$DEST_SYNC_PATH`                | GitLab destination root group path to synchronize (defaults to `--src-sync-path`)                                | determined from `$CI_PROJECT_NAMESPACE` |
| `$MAX_VISIBILITY`                | maximum visibility of projects in destination group (defaults to `public`)                                       | `$CI_PROJECT_VISIBILITY`                |
| `$SKIP_VISIBILITY`               | skip updating the destination group or project visibility (when it exists already)                               | `false`                                 |
| `$EXCLUDE`                       | project/group path(s) to exclude (multiple CLI option; env. variable is a coma separated list)                   | `samples,custom`                        |
| `$INCLUDE`                       | project/group path(s) to include (multiple CLI option; env. variable is a coma separated list)                   | `tools,docker,ansible`                  |
| `$INSECURE`                      | skip SSL verification                                                                                            | `false`                                 |
@@ -34,8 +35,32 @@ All the other parameters/variables are automatically determined by the job but m
| `$UPDATE_AVATAR`                 | force update the avatar images even when they exist and look the same                                            | `false`                                 |
| `$GROUP_DESCRIPTION_DISABLED`    | don't synchronize group description                                                                              | `false`                                 |
| `$PROJECT_DESCRIPTION_DISABLED`  | don't synchronize project description                                                                            | `false`                                 |
| `$NEW_GROUP_OPTIONS`             | a JSON string with [extra options for groups creation](https://docs.gitlab.com/api/groups/#create-a-group)       | _none_                                  |
| `$NEW_PROJECT_OPTIONS`           | a JSON string with [extra options for projects creation](https://docs.gitlab.com/api/projects/#create-a-project) | _none_                                  |
| `$CACHE_DIR`                     | cache directory (used to download resources such as images and Git repositories) (defaults to `.work`)           | `.work`                                 |

### Customizing copied project options

Projects are copied with the following default options:

```json
{
  "issues_access_level": "disabled",
  "merge_requests_access_level": "disabled"
}
```

You can customize those default options with your own ones with the `$NEW_PROJECT_OPTIONS` variable.
For instance if you want to globally disable CI/CD pipelines in copied projects:

```json
{
  "builds_access_level": "disabled"
}
```

Similarly, you can customize default group options with the `$NEW_GROUP_OPTIONS` variable.

## CI/CD Catalog

To use _to be continuous_ templates as CI/CD Catalog resources in your GitLab server, you'll have to manually activate the _CI/CD Catalog resource_ option (`Settings > General > Visibility > Project Features > Permissions`) in each template project.