When the project have the following pre-conditons:
- At least one GitLab connected git repository
- And this repository has a token (early version of Tuleap <-> GitLab integrations didn't kept the token)
- And the user is member of
project_members
group and have access to the artifact
- this permission is adhoc and avoid the introduction of yet another permission on an already hard to understand model. There should be a compelling reason to add a new permission and it can be added later on.
Then, In "Action" menu of an artifact contains an entry "Create development branch on GitLab".
When this action is clicked
- If there is only one GitLab repository in the project, the creation of the branch is performed right away
- A popup is prompted to the requester with a string field to choose the git reference from where the branch should be created
- By default, it's the repository default branch that is pre-filled (eg
main
, develop
, ...)
- The requester can change the reference (a git commit, a tag name, a branch name)
- If the reference is invalid, an error should be raised at submission and the popup is not closed.
- If there is more than one GitLab repository in the project that matches the criteria defined earlier, a popup is displayed to the requester to ask them to select the repository.
- Then the popup allows to select the reference before creation (same workflow than if there is only one GitLab repo in the project)
- As soon as the requester change the selected repository, regardless of reference modification they have made, the reference is reset to default.
When the repository is known, the branch is created on GitLab with the following pattern:
-
prefix``tuleap-XXXX
-slugify(artifact title)
-
prefix
can be set in the configuration of the GitLab integration (at repository level). Common forms would be dev-
or dev/
-
tuleap-XXXX
is the patterns that allows Tuleap to know about the branch (see story #17182)
- if the
title
semantic is defined for the tracker, the slugified version of the summary is the suffix
Mockup here:
https://www.figma.com/proto/LMA5XhZGLwTqUfwGem23nn/Create-GitLab-branch-from-artifact-view?page-id=0%3A1&node-id=1%3A1128&viewport=297%2C538%2C0.5&scaling=scale-down-width