Fields needed for Gitlab group nesting
For the updates for Gitlab arbitrary nesting, we will need at least 1 updated field and 1 new one, with 2 new fields being optimal for data integrity.
Updated:
- gitlab_repos
- Logic should be updated to accept group namespaces from Gitlab (e.g.
eclipse/asciidoc-lang
oreclipse/asciidoc/asciidoc-lang
). - Validation logic should be such that the namespace looks like
eclipse/<TLP project ID>/<Project ID>
oreclipse/<project ID>
- The deepest these groups can nest is 3 levels like in the second example.
- Logic should be updated to accept group namespaces from Gitlab (e.g.
New:
- excluded_3rd_party_groups
- This would be an array of strings that are namespaces in Gitlab that should be excluded from sync operations/management. This would be consumed by the ECA API and the sync scripts to determine what groups are managed under projects
- Any value here should be a sub-resource of at least 1 namespace defined under gitlab_repos. Examples using the above entries would be
eclipse/asciidoc-lang/3rd-party
andeclipse/asciidoc/asciidoc-lang/mirrors
.
- tlp_id
- This is optional but would be greatly helpful in checks downstream. This value would be calculated at the request time and is the top-level project ID if it exists, or null. This would be used to validate the groups indicated in the 2 above fields and provide extra validation and safety to protect against typos and such.
We don't want to merge this in until we are ready to release the updates to the Gitlab sync script. I would likely just request staging be updated and use that for testing/validation when needed.
cc @cguindon