Skip to content

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 or eclipse/asciidoc/asciidoc-lang).
    • Validation logic should be such that the namespace looks like eclipse/<TLP project ID>/<Project ID> or eclipse/<project ID>
    • The deepest these groups can nest is 3 levels like in the second example.

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 and eclipse/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