Status: To Do
MMF-1353 and MMF-1140, Administrators can bind existing SC organization to their ALM organization. Once the organization is bound, they can create projects from selected GH/BBC repositories.
For BitBucketCloud, when the administrator creates a project from a BBC repo, the quality widget is configured and displayed automatically.
Currently, it’s not possible to bind manual projects to their repositories in a bound org, and this affects the user in several ways:
- The user may create duplicates when analysing a new project by selecting a repository for which a manual project already exists in SC.
- It’s confusing for the user as there are some projects bound to a repository and some not, and she can not do anything about that. The current UX is not homogenous for the user.
- For BBC, if the repo is not configured with the quality widget, the user has to do it manually.
- It can help users to migrate from an ALM to another one (https://community.sonarsource.com/t/move-from-bitbucket-to-github-rebind-sonar-account/)
Overall, this MMF will help users bind their manual projects and they will have everything needed to benefit from our next features, when we will introduce group & permissions synchronization with the ALM.
As the date of 27.01, we can see that we still have a lot of projects unbound 66%. Note that projects on AzureDevops are counted in unbound projects as it's not possible to bind org and project.
Seeing a significant increase in number of bound project for GH and BBC after one month
- As an admin of the project,
I'd like to bind my existing manual projects inside my bound org to their ALM repository
Because I'd like to benefit from the synchronised features with the ALM repository (ex. have the BBC widget configured for me in the repository)
- As an admin of the project,
I’d like to analyze a project and I'd like to see which repositories might be bound to an existing project
Because I want to have accurate list of repositories that I can select, and avoid creating project duplicates
- Corner case
For a user who has the organization level provisioning permissions, but is not admin of the project
When she goes to the Analyze project/Select Repositories
She sees that a repository can be associated to an existing project but she cannot bind the repository to the suggested project
- Automatically detect repositories that can be bound to manual project inside a bound org
- With PR analysis, when they are set up
- With commits
- Once the repository is detected : suggest it to the Admin to bind to a manual project and he can:
- Choose to bind
- Discard for later
- The repository can not be suggested if it is already bound to another project (as per the current SC model one repository [-] one project).
- When the admin selects repositories to analyze a project (Analyze project/Select repositories), SonarCloud detects and suggests to the Admin the manual projects that can be bound to repositories
- SonarCloud binds the repository with the corresponding project by default
- The admin can choose to create a new project from the repository
Out of scope
- Binding a project inside a manual org
- Renaming repositories inside SC
- Choose manually a repository to bind to a SC project
- Unbinding repositories -> workaround : Delete SC project and recreate
- One repository with several langages and several SC projects as well as symlink between repositories.
- Currently the SC model does not allow the link between one repository and several SC projects and there is an objective later to make that possible.
- That's why we need to check that the repository is not already bound to a SC project to suggest to bind a SC project.
- -> The repository will be suggested for the first SC project of the repository that will be analyzed
Link to the mockups: https://invis.io/4QQXOTAPEHU
Mockups 1 to 3: Suggest binding within a manual "project page" with the ALM logo.
Mockups 4 to 5: Suggest binding when the user is importing a new repository to SonarCloud.
Mockup 6: How it looks when the user selects more than one repository.
Mockup 7 (for the corner case): How it looks when a non-admin user wants to import a new repository in SonarCloud that matches an existing manual project.