/src/main/java/com/atlassian/jira/plugins/bitbucket/webwork/BitbucketTabPanel.java
Java | 66 lines | 56 code | 10 blank | 0 comment | 2 complexity | c2b5382beedf826a14d9c3cdfa751134 MD5 | raw file
- package com.atlassian.jira.plugins.bitbucket.webwork;
- import com.atlassian.crowd.embedded.api.User;
- import com.atlassian.jira.issue.Issue;
- import com.atlassian.jira.issue.tabpanels.GenericMessageAction;
- import com.atlassian.jira.plugin.issuetabpanel.AbstractIssueTabPanel;
- import com.atlassian.jira.plugin.issuetabpanel.IssueAction;
- import com.atlassian.jira.plugins.bitbucket.api.Changeset;
- import com.atlassian.jira.plugins.bitbucket.api.SourceControlRepository;
- import com.atlassian.jira.plugins.bitbucket.spi.RepositoryManager;
- import com.atlassian.jira.security.PermissionManager;
- import com.atlassian.jira.security.Permissions;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Qualifier;
- import java.util.ArrayList;
- import java.util.List;
- public class BitbucketTabPanel extends AbstractIssueTabPanel
- {
- private static final GenericMessageAction DEFAULT_MESSAGE = new GenericMessageAction("");
- private final PermissionManager permissionManager;
- private final Logger logger = LoggerFactory.getLogger(BitbucketTabPanel.class);
- private final RepositoryManager globalRepositoryManager;
- public BitbucketTabPanel(PermissionManager permissionManager, @Qualifier("globalRepositoryManager") RepositoryManager globalRepositoryManager)
- {
- this.permissionManager = permissionManager;
- this.globalRepositoryManager = globalRepositoryManager;
- }
- @Override
- public List<IssueAction> getActions(Issue issue, User user)
- {
- String issueId = issue.getKey();
- List<IssueAction> bitbucketActions = new ArrayList<IssueAction>();
- try
- {
- for (Changeset changeset : globalRepositoryManager.getChangesets(issueId))
- {
- logger.debug("found changeset [ {} ] on issue [ {} ]", changeset.getNode(), issueId);
- SourceControlRepository repository = globalRepositoryManager.getRepository(changeset.getRepositoryId());
- String changesetAsHtml = globalRepositoryManager.getHtmlForChangeset(repository, changeset);
- bitbucketActions.add(new CommitsIssueAction(changesetAsHtml, changeset.getTimestamp()));
- }
- } catch (com.atlassian.jira.plugins.bitbucket.api.SourceControlException e)
- {
- logger.debug("Could not retrieve changeset for [ " + issueId + " ]: " + e, e);
- }
- if (bitbucketActions.isEmpty())
- bitbucketActions.add(DEFAULT_MESSAGE);
- return bitbucketActions;
- }
- @Override
- public boolean showPanel(Issue issue, User user)
- {
- return permissionManager.hasPermission(Permissions.VIEW_VERSION_CONTROL, issue, user) &&
- !globalRepositoryManager.getRepositories(issue.getProjectObject().getKey()).isEmpty();
- }
- }