•  
     
    story #26799 associate a Tuleap project and a GitLab group
Summary
git administrator
associate a Tuleap project and a GitLab group
Empty

At Tuleap project level, I can associate a GitLab group. This association carry:

  • Artifact closure configuration
  • Branch prefix configuration

Once done:

  • All Gitlab projects existing in the group are made visible in Tuleap.
    • those repositories are created with the defaults defined at project level (artifact closure, branch prefix) but remains independent (each repo can be modified afterward)
  • Subgroups are not supported
  • When a new project is created at GitLab side. As there is no webhook available at GitLab side to trigger the add:
    • A Git Administrator can re-synchronize manually the list of repositories

Synchronization behaviour

  • Only missing project are created (there is no "update" of existing groups)
  • When a project is transferred in another group, nothing happens in Tuleap. The repository remains in Tuleap, no move of project.

When a git administrator removes the synchronization with GitLab, the existing GitLab repositories remains as is in Tuleap.

https://www.figma.com/proto/tifLgfl1OhkXIvv8LIz1Wg/Git---Link-to-a-GitLab-group---story-%2326799?page-id=0%3A1&node-id=5%3A2655&viewport=-2521%2C-3299%2C0.38&scaling=scale-down&starting-point-node-id=5%3A2655

Empty
Empty
Status
SCM/GitLab
Done
Development
  • [ ] Does it involves User Interface? 
  • [ ] Are there any mockups?
  • [ ] Are permissions checked?
  • [ ] Does it need Javascript development?
  • [ ] Does it need a forge upgrade bucket?
  • [ ] Does it need to execute things in system events?
  • [ ] Does it impact project creation (templates)?
  • [ ] Is it exploratory?
Empty
Details
#26799
Manuel Vacelet (vaceletm)
2022-11-08 15:22
2022-05-17 13:21
28698

References
Referencing story #26799

Git commit

tuleap/tuleap/stable

Add a new tab Gitlab Group Link section + feature flag bd115fae9f
chore: clean-up unused code in Gitlab action button f98324889d
Create the Vue3 app + display empty state 142cf790a8
Introduce the POST gitlab_group REST route 7f0971ebf4
fix: replace usage of Project::buildForTest 05df371196
Use the pagination to retrieve the Gitlab group projects 5c6720eaf1
chore: split the two vue3 apps in separate packages b414fc25b3
Save the gitlab group in database 172f944a66
Introduce GitLab server pane + pinia + vue-router 5878d88bc6
refactor: Separate tests for repository integration 43db4bf308
feat: Link the created Gitlab group with integrations 5f93ee825d
Retrieve groups with provided credentials 0d2c22a89c
refactor: rebuild the plugin_gitlab_group table e550c71c66
Display GitLab groups pane + prevent direct navigation df7debb558
refactor: move interfaces to DAO 2185582b63
Configuration pane + enforce navigation guards 9ee2470a33
feat: stop REST route if project is already linked b8d3e79ac6
refactor: GroupCreatorTest should be a sociable test 82b6ee64c0
chore: Upgrade GitLab CE to 15.3.3 5d8e3da098
feat: Apply configuration on new integrations 6105f464b2
Call the REST route b77038cdb8
Clear stores when user cancels c2ca06bea2
Do not serve the wizard app when a group is already linked 031b6721bb
fix: prefix input element should be disabled when option is not checked 76abb794bc
feat: Better error message for group 690dc789dc
chore: rename with "wizard" the Group link app 933355a552
feat: Update branch prefix for linked GitLab group 86dfe531ba
chore: Drop unused class 000dddbb70
feat: Edit GitLab group link artifact closure using REST 7d0eb05af9
feat: Display mock information for group af12f39583
feat: Token must be translated as "Jeton" d28201b194
refactor: DAO returns object instead of array d14dd95952
chore: Rename GitlabGroup class into GroupLink b1ec6f58f2
feat: Display the group link info from database 48f40b8261
feat: Respond status code 403 instead of 401 when unauthorized 617400c77d
refactor: Group update is separated from REST 777f8ee000
feat: Unlink Project from GitLab Group d0afb6e8e6
refactor: DOM lib to reuse common selections 1b44e58c77
feat: Unlink button is active b81a8ad5a7
Be able to update the Group Link token 2428e963ee
feat: fetch-result returns JSON payload of response c91badfe86
feat: Disabled update configuration modal cc2576dc42
Add the gitlab_groups/:id/synchronize REST route 3510b64652
fix: Polish Synchronize REST route 9907a9f0ae
feat: Hide inactive buttons a37ca5862c
Fix integration_id value stored in a6186eb1e9
fix: group link of integration should be also removed 85bca92042
feat: GitLab group link is available 7c6d993fdb
feat: keep wizard submit button disabled 722260c4a8
feat: Active update configuration modal 7203fb272a
chore: DB test for Repository Integration table 55945d710f
feat: Synchronize button 81dfc9ff91
refactor: read group_id only once 256f36d613
chore: Upgrade GitLab version deployed by Docker to 15.4.0-ce a7c00f0458
refacto: DRY of the GitlabGroupLinkRepositoryHandler::integrateOneProject function 288c6e75f4
Replace all 401 to 403 in Gitlab REST routes 1905cd48da
Rename Group to Group Link e9e5aee93a
refactor: use orElse() to create an integration ee37ea02c1
feat: Disabled token modal 82d43b795a
chore: EventDispatcherStub has typo in namespace 1b125b01fe
Caught Gitlab errors which are never caught in REST route 6eaa8179eb
refactor: lib to query GitLab 745cf09df6
feat: Active token modal 4921365de9
chore: synchronizer should return a Domain object f51f1a891a
chore: add missing REST tests c43af92295
chore: dedupe neverthrow 977ac6678c
Design check part I c9b1f37190
feat: TLP h2 are now dark-color 3e20f38bb2
chore: Spinner is just shown/hidden 386a7a239d
Add feedback when a group is unlinked 2876a39684

Follow-ups

User avatar

Nightly synchronization is removed from the initial acceptance criteria because the whole synchronization feature proved to be already hard enough and we need to limit the overrun.

Plus we identified that nightly will be more challenging than initially thought because of rate limit on API that can be put in place.

Let's see how the feature is used first. Nightly synchro should naturally come back if there is enough usage of the feature.


  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
  • Status changed from On going to Done
User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes