PageRenderTime 46ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/src/main/java/com/atlassian/jira/plugins/bitbucket/webwork/GithubPostCommit.java

https://bitbucket.org/atlassian/jira-bitbucket-connector/
Java | 104 lines | 82 code | 18 blank | 4 comment | 5 complexity | 82ebb60bdd8dd1a1ea6714ac4c5daf01 MD5 | raw file
  1. package com.atlassian.jira.plugins.bitbucket.webwork;
  2. import java.util.List;
  3. import org.apache.commons.lang.StringUtils;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Qualifier;
  7. import com.atlassian.jira.plugins.bitbucket.Synchronizer;
  8. import com.atlassian.jira.plugins.bitbucket.api.Changeset;
  9. import com.atlassian.jira.plugins.bitbucket.api.SourceControlRepository;
  10. import com.atlassian.jira.plugins.bitbucket.rest.RootResource;
  11. import com.atlassian.jira.plugins.bitbucket.spi.RepositoryManager;
  12. import com.atlassian.jira.util.json.JSONObject;
  13. import com.atlassian.jira.web.action.JiraWebActionSupport;
  14. /**
  15. * Webwork action used to recieve the callback hook from github
  16. * Deprecated, use {@link RootResource} instead
  17. */
  18. @Deprecated
  19. public class GithubPostCommit extends JiraWebActionSupport
  20. {
  21. private final Logger log = LoggerFactory.getLogger(GithubPostCommit.class);
  22. private String validations = "";
  23. private String projectKey = "";
  24. private String payload = "";
  25. private final Synchronizer synchronizer;
  26. private final RepositoryManager globalRepositoryManager;
  27. public GithubPostCommit(@Qualifier("globalRepositoryManager") RepositoryManager globalRepositoryManager,
  28. Synchronizer synchronizer)
  29. {
  30. this.globalRepositoryManager = globalRepositoryManager;
  31. this.synchronizer = synchronizer;
  32. }
  33. @Override
  34. protected void doValidation()
  35. {
  36. if (StringUtils.isBlank(projectKey))
  37. {
  38. validations += "Missing required parameter 'projectKey'<br/>";
  39. }
  40. if (StringUtils.isBlank(payload))
  41. {
  42. validations += "Missing required 'payload' parameter. <br/>";
  43. }
  44. }
  45. @Override
  46. protected String doExecute() throws Exception
  47. {
  48. if (StringUtils.isBlank(validations))
  49. {
  50. log.debug("Received call to sync payload ["+payload+"] with projectKey ["+projectKey+"]");
  51. JSONObject jsonPayload = new JSONObject(payload);
  52. JSONObject jsonRepository = jsonPayload.getJSONObject("repository");
  53. String baseRepositoryURL = jsonRepository.getString("url");
  54. List<SourceControlRepository> repositories = globalRepositoryManager.getRepositories(projectKey);
  55. for (SourceControlRepository repo : repositories)
  56. {
  57. if (repo.getRepositoryUri().getRepositoryUrl().equals(baseRepositoryURL))
  58. {
  59. List<Changeset> changesets = globalRepositoryManager.parsePayload(repo, payload);
  60. synchronizer.synchronize(repo, changesets);
  61. }
  62. }
  63. }
  64. return "postcommit";
  65. }
  66. public String getValidations()
  67. {
  68. return this.validations;
  69. }
  70. public void setProjectKey(String value)
  71. {
  72. this.projectKey = value;
  73. }
  74. public String getProjectKey()
  75. {
  76. return projectKey;
  77. }
  78. public void setPayload(String value)
  79. {
  80. this.payload = value;
  81. }
  82. public String getPayload()
  83. {
  84. return payload;
  85. }
  86. }