Crucible LightSCM Plugins repositories do not appear in Edit Project Default Repository combobox
Asked by Tan Mai:

From Crucible 4.2.x to 4.5.0, I have noticed that the repositories created by Crucible's LightSCM Plugins (i.e FileSystem, Git, Subversion) do NOT appear as possible choices in the Edit Project screen in the "Default Repository" combobox.

How am I supposed to associate repositories created by LightSCM plugins as Default Repository for a project? This problem also affects any SCMModule plugin created by me and NOT just the SCMModule plugins that come packaged with Crucible.


Answers:
author: Tan Mai
body: As a temporary fix for this bug, can I just manually update the Crucible database table with the name of the repository associated with the SCMModule Plugin? For example, could I just execute SQL like the following?

update cru_project set cru_default_repository_name= 'My Repository' where cru_project_id = 44;

In the SQL above, the project I am concerned with has ID 44 and my SCMModule repository has name "My Repository". Would this be an acceptable work around for the bug in the Edit Project screen that prevents me from entering a Default Repository for a project?

comments: author: Felipe Kraemer
body: Hi [@Tan Mai](/t5/user/viewprofilepage/user-id/1159510)

I have just tried that, but it didn't work for me.

I have even restarted the instance after running a query similar to yours, but the Default Repository still showed blank in the Edit Project screen.


author: Tan Mai
body: Due to the bug in the Edit Project, the default repository name will never display a SCM module plugin repository name even if the default repository name is set in the database. You can only tell if it works if you view the Project information using something like the REST API.

For other users experiencing this issue, you can set the Default Repository name using the REST API instead of using SQL on the database. Using a REST API client like Google ARC or a simple command line tool like "curl" which is commonly available for most Linux/Unix systems, the Default Repository name can be set using the endpoint [http://{CRUCIBLE_URL}/rest-service-fecru/admin/projects/{PROJECT_KEY}](http://%7bCRUCIBLE_URL%7d/rest-service-fecru/admin/projects/%7bPROJECT_KEY%7d) given that {CRUCIBLE_URL} will be the host name, port number, and web context of your Crucible server (i.e. <http://localhost:8060/fecru>) and "{PROJECT_KEY}" is the key value you entered for the project when you created it. You just need to send simple JSON like

{ "defaultRepositoryName" : "{SCM_PLUGIN_REPO}" }

Using HTTP PUT where the {SCM_PLUGIN_REPO} represents the Crucible repository name you created for your SCM. As an example, using "curl", you can execute the following:

curl -X PUT -H "Content-Type: application/json" -d '{"defaultRepositoryName":"my_scm_repo"}' --user test1:test1passwd <http://localhost:8060/fecru/rest-service-fecru/admin/projects/MYKEY>

Where the "my_scm_repo" is the default repository name you want to set for the project associated with the project key "MYKEY". The Crucible server is accessible by user name "test1" with password "test1passwd"


author: Felipe Kraemer
body: Hello [@Tan Mai](/t5/user/viewprofilepage/user-id/1159510),

I have been able to replicate this issue while still using Crucible 4.2.x by having some Subversion repositories added as LightSCM plugin and then when editing a Crucible project the "Default Repository" field was empty. So, this is not related to the upgrade.

<br />

According to [Advantages of Native Repository Access over lightSCM plugins](https://confluence.atlassian.com/display/CRUCIBLE037/Advantages+of+Native+Repository+Access+over+lightSCM+plugins), from version 2.4, Crucible provides native repository access which supersedes Crucible's bundled lightSCM plugins, and that if you are currently using any of the bundled lightSCM plugins you should migrate to using native repository access.

Once I added the exact same repository as Native Repository Access, when I went to edit the Crucible project, that repository was picked as "Default Repository".

Can you please delete your lightSCM repositories and add them as native ones?

I hope this helps!

comments: author: Tan Mai
body: Thank you so much for your reply Felipe. When I wrote "From From Crucible 4.2.x to 4.5.0", I meant to say that the problem exists for every Crucible release from 4.2.x to the present 4.5.0. I did not intend to say that I had upgraded from Crucible 4.2.x to Crucible 4.5.0. Sorry about the confusion. I have seen that the problem does NOT exist in Crucible 4.1.2 or older versions of Crucible. It seems to be a bug that was introduced in Crucible 4.2.x.

The problem I am having is that I want to develop a SCCMModule for a source control system that is NOT supported by Crucible. I want to follow the process outlined here <https://developer.atlassian.com/fecrudev/tutorials/crucible-scm-plugin-tutorial> by Atlassian. However, it appears that SCCModule plugins like the ones developed by Atlassian themselves are not properly supported by Crucible.

I really need Atlassian to fix the Edit Project dialog to that it properly accounts for repositories created by SCMModule plugins. The repositories appear in other dialogs like "Explore repositories". It is only in the Edit Project dialog that Crucible is not properly displaying repositories created by SCMModule plugins.

Do you have any idea when Atlassian will fix this bug. I'm sure their are other source control developers that want to integrate with Crucible and they need this bug fix too. Thanks again for your help.


author: Felipe Kraemer
body: Hi [@Tan Mai](/t5/user/viewprofilepage/user-id/1159510),

There are [a few issues in the public issue tracker](https://jira.atlassian.com/issues/?jql=text%20~%20%22%5C%22Default%20Repository%5C%22%22%20AND%20project%20%3D%20CRUC%20AND%20((resolution%20%3D%20Fixed%20AND%20fixVersion%20%3E%3D%204.2.0)%20or%20(resolution%20is%20EMPTY))) regarding the "Default Repository" field in Crucible. You might want to check if any of them matches this problem and report a new bug if none of them apply.

We at Atlassian provide support for [our own plugins](https://marketplace.atlassian.com/vendors/85/atlassian) only because we don't have access to the source code of plugins developed by third-party in order to check for problems or fix anything.


author: Tan Mai
body: Thanks Felipe. I will try to enter a bug, because I could not see a bug in the public issue tracker. I will need to upgrade my account to a Commercial license so I can do this. Is this correct?

Could you enter this bug for me? I am not sure how long I will have to wait for this upgrade due to some business constraints.