PageRenderTime 25ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/java/com/atlassian/jira/plugins/bitbucket/spi/bitbucket/webwork/AddBitbucketRepository.java

https://bitbucket.org/atlassian/jira-bitbucket-connector/
Java | 183 lines | 152 code | 28 blank | 3 comment | 5 complexity | 0cdbe80339b09863c4247582b7706db4 MD5 | raw file
  1. package com.atlassian.jira.plugins.bitbucket.spi.bitbucket.webwork;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import org.springframework.beans.factory.annotation.Qualifier;
  5. import com.atlassian.jira.plugins.bitbucket.Synchronizer;
  6. import com.atlassian.jira.plugins.bitbucket.api.SourceControlException;
  7. import com.atlassian.jira.plugins.bitbucket.api.SourceControlException.UnauthorisedException;
  8. import com.atlassian.jira.plugins.bitbucket.api.SourceControlRepository;
  9. import com.atlassian.jira.plugins.bitbucket.spi.RepositoryManager;
  10. import com.atlassian.jira.plugins.bitbucket.spi.bitbucket.impl.BitbucketRepositoryManager;
  11. import com.atlassian.jira.security.xsrf.RequiresXsrfCheck;
  12. import com.atlassian.jira.web.action.JiraWebActionSupport;
  13. import com.atlassian.sal.api.ApplicationProperties;
  14. /**
  15. * Webwork action used to configure the bitbucket repositories
  16. */
  17. public class AddBitbucketRepository extends JiraWebActionSupport
  18. {
  19. private final Logger log = LoggerFactory.getLogger(AddBitbucketRepository.class);
  20. private String repositoryUrl;
  21. private String projectKey;
  22. private String isPrivate;
  23. private String adminUsername = "";
  24. private String adminPassword = "";
  25. private String bbUsername = "";
  26. private String bbPassword = "";
  27. private String addPostCommitService = "";
  28. private String postCommitUrl;
  29. private final RepositoryManager globalRepositoryManager;
  30. private final Synchronizer synchronizer;
  31. private final String baseUrl;
  32. public AddBitbucketRepository(@Qualifier("globalRepositoryManager") RepositoryManager globalRepositoryManager,
  33. Synchronizer synchronizer, ApplicationProperties applicationProperties)
  34. {
  35. this.globalRepositoryManager = globalRepositoryManager;
  36. this.synchronizer = synchronizer;
  37. this.baseUrl = applicationProperties.getBaseUrl();
  38. }
  39. @Override
  40. protected void doValidation()
  41. {
  42. }
  43. @Override
  44. @RequiresXsrfCheck
  45. protected String doExecute() throws Exception
  46. {
  47. if (!addPostCommitService())
  48. {
  49. adminUsername = "";
  50. adminPassword = "";
  51. }
  52. SourceControlRepository repository;
  53. try
  54. {
  55. repository = globalRepositoryManager.addRepository(BitbucketRepositoryManager.BITBUCKET, projectKey, repositoryUrl, bbUsername, bbPassword,
  56. adminUsername, adminPassword, "");
  57. synchronizer.synchronize(repository);
  58. } catch (UnauthorisedException e)
  59. {
  60. addErrorMessage("Failed adding the repository: ["+e.getMessage()+"]");
  61. log.debug("Failed adding the repository: ["+e.getMessage()+"]");
  62. return INPUT;
  63. } catch (SourceControlException e)
  64. {
  65. addErrorMessage("Failed adding the repository: ["+e.getMessage()+"]");
  66. log.debug("Failed adding the repository: ["+e.getMessage()+"]");
  67. return INPUT;
  68. }
  69. try
  70. {
  71. if (addPostCommitService())
  72. {
  73. globalRepositoryManager.setupPostcommitHook(repository);
  74. }
  75. } catch (SourceControlException e)
  76. {
  77. log.debug("Failed adding postcommit hook: ["+e.getMessage()+"]");
  78. postCommitUrl = baseUrl + "/rest/bitbucket/1.0/repository/" + repository.getId() + "/sync";
  79. return ERROR;
  80. }
  81. return getRedirect("ConfigureBitbucketRepositories.jspa?addedRepositoryId="+repository.getId()+"&atl_token=" + getXsrfToken());
  82. }
  83. public String getRepositoryUrl()
  84. {
  85. return repositoryUrl;
  86. }
  87. public void setRepositoryUrl(String repositoryUrl)
  88. {
  89. this.repositoryUrl = repositoryUrl;
  90. }
  91. public String getProjectKey()
  92. {
  93. return projectKey;
  94. }
  95. public void setProjectKey(String projectKey)
  96. {
  97. this.projectKey = projectKey;
  98. }
  99. public boolean isPrivate()
  100. {
  101. return Boolean.parseBoolean(isPrivate);
  102. }
  103. public void setIsPrivate(String isPrivate)
  104. {
  105. this.isPrivate = isPrivate;
  106. }
  107. public String getAdminUsername()
  108. {
  109. return adminUsername;
  110. }
  111. public void setAdminUsername(String adminUsername)
  112. {
  113. this.adminUsername = adminUsername;
  114. }
  115. public String getAdminPassword()
  116. {
  117. return adminPassword;
  118. }
  119. public void setAdminPassword(String adminPassword)
  120. {
  121. this.adminPassword = adminPassword;
  122. }
  123. public String getBbUsername()
  124. {
  125. return bbUsername;
  126. }
  127. public void setBbUsername(String bbUsername)
  128. {
  129. this.bbUsername = bbUsername;
  130. }
  131. public String getBbPassword()
  132. {
  133. return bbPassword;
  134. }
  135. public void setBbPassword(String bbPassword)
  136. {
  137. this.bbPassword = bbPassword;
  138. }
  139. public String getPostCommitUrl()
  140. {
  141. return postCommitUrl;
  142. }
  143. public void setPostCommitUrl(String postCommitUrl)
  144. {
  145. this.postCommitUrl = postCommitUrl;
  146. }
  147. public boolean addPostCommitService()
  148. {
  149. return addPostCommitService != null && (addPostCommitService.toLowerCase().equals("on") || addPostCommitService.toLowerCase().equals("true"));
  150. }
  151. public void setAddPostCommitService(String addPostCommitService)
  152. {
  153. this.addPostCommitService = addPostCommitService;
  154. }
  155. }