diff options
author | Kevin Sawicki | 2011-05-16 20:56:37 +0000 |
---|---|---|
committer | Kevin Sawicki | 2011-05-16 20:56:37 +0000 |
commit | 462911f81b4568c9a7e811b8b7c609b7f488763b (patch) | |
tree | 0b1b882986e82d8c36237714fac1ed8f925d2d3e /org.eclipse.mylyn.github.core/src/org/eclipse | |
parent | f196bf7bc2f5e6f61f86a0f41a4ee9ce061b8b31 (diff) | |
download | egit-github-462911f81b4568c9a7e811b8b7c609b7f488763b.tar.gz egit-github-462911f81b4568c9a7e811b8b7c609b7f488763b.tar.xz egit-github-462911f81b4568c9a7e811b8b7c609b7f488763b.zip |
Add custom task kind label for issues and pull requests.
Change-Id: Id1c0c1df1210c8e65b0595a9e665a4391a2f5a9d
Signed-off-by: Kevin Sawicki <kevin@github.com>
Diffstat (limited to 'org.eclipse.mylyn.github.core/src/org/eclipse')
5 files changed, 45 insertions, 37 deletions
diff --git a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueAttribute.java b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueAttribute.java index 8c97c965..86259739 100644 --- a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueAttribute.java +++ b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueAttribute.java @@ -34,9 +34,8 @@ public enum IssueAttribute { /** * Issue description */ - BODY(Messages.IssueAttribute_LabelDescription, - TaskAttribute.DESCRIPTION, TaskAttribute.TYPE_LONG_RICH_TEXT, - false, true), + BODY(Messages.IssueAttribute_LabelDescription, TaskAttribute.DESCRIPTION, + TaskAttribute.TYPE_LONG_RICH_TEXT, false, true), /** * Issue creation date @@ -109,7 +108,14 @@ public enum IssueAttribute { */ REPORTER_GRAVATAR(Messages.IssueAttribute_LabelReporterGravatar, "github.issue.reporter.gravatar", TaskAttribute.TYPE_URL, null, //$NON-NLS-1$ - true, false); + true, false), + + /** + * URL to diff if issue is a pull request + */ + PULL_REQUEST_DIFF(Messages.IssueAttribute_LabelPullRequestDiffUrl, + "github.issue.pull.diff", //$NON-NLS-2$ + TaskAttribute.TYPE_URL, null, true, false); private final String id; private final String label; @@ -123,8 +129,8 @@ public enum IssueAttribute { this(label, id, type, TaskAttribute.KIND_DEFAULT, readOnly, initTask); } - private IssueAttribute(String label, String id, String type, - String kind, boolean readOnly, boolean initTask) { + private IssueAttribute(String label, String id, String type, String kind, + boolean readOnly, boolean initTask) { this.label = label; this.id = id; this.kind = kind; diff --git a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java index 274c4bcc..3473ef35 100644 --- a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java +++ b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java @@ -255,8 +255,7 @@ public class IssueConnector extends AbstractRepositoryConnector { List<String> statuses = QueryUtils.getAttributes( IssueService.FILTER_STATE, query); - monitor.beginTask(Messages.IssueConector_TaskQuerying, - statuses.size()); + monitor.beginTask(Messages.IssueConector_TaskQuerying, statuses.size()); try { Repository repo = GitHub.getRepository(repository .getRepositoryUrl()); @@ -406,8 +405,16 @@ public class IssueConnector extends AbstractRepositoryConnector { if (!taskData.isNew()) { task.setUrl(getTaskUrl(taskRepository.getUrl(), taskData.getTaskId())); + String diffUrl = null; + TaskAttribute prDiff = taskData.getRoot().getAttribute( + IssueAttribute.PULL_REQUEST_DIFF.getId()); + if (prDiff != null) { + diffUrl = taskData.getAttributeMapper().getValue(prDiff); + if (diffUrl.length() == 0) + diffUrl = null; + } + task.setAttribute(IssueAttribute.PULL_REQUEST_DIFF.getId(), diffUrl); } new TaskMapper(taskData).applyTo(task); } - } diff --git a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java index 3cb43c81..7b4fd84a 100644 --- a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java +++ b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java @@ -24,6 +24,7 @@ import org.eclipse.egit.github.core.Comment; import org.eclipse.egit.github.core.Issue; import org.eclipse.egit.github.core.Label; import org.eclipse.egit.github.core.Milestone; +import org.eclipse.egit.github.core.PullRequest; import org.eclipse.egit.github.core.Repository; import org.eclipse.egit.github.core.User; import org.eclipse.egit.github.core.client.GitHubClient; @@ -67,8 +68,7 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { @Override public TaskAttributeMapper getAttributeMapper(TaskRepository taskRepository) { if (this.taskAttributeMapper == null) - this.taskAttributeMapper = new IssueAttributeMapper( - taskRepository); + this.taskAttributeMapper = new IssueAttributeMapper(taskRepository); return this.taskAttributeMapper; } @@ -77,8 +77,7 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { String key = Integer.toString(issue.getNumber()); TaskData data = new TaskData(getAttributeMapper(repository), - IssueConnector.KIND, repository.getRepositoryUrl(), - key); + IssueConnector.KIND, repository.getRepositoryUrl(), key); data.setVersion(DATA_VERSION); createOperations(data, issue); @@ -91,20 +90,17 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { issue.getCreatedAt()); createAttribute(data, IssueAttribute.MODIFICATION_DATE, issue.getUpdatedAt()); - createAttribute(data, IssueAttribute.CLOSED_DATE, - issue.getClosedAt()); + createAttribute(data, IssueAttribute.CLOSED_DATE, issue.getClosedAt()); User reporter = issue.getUser(); - createAttribute(data, IssueAttribute.REPORTER, reporter, - repository); + createAttribute(data, IssueAttribute.REPORTER, reporter, repository); String reporterGravatar = reporter != null ? reporter.getGravatarUrl() : null; createAttribute(data, IssueAttribute.REPORTER_GRAVATAR, reporterGravatar); User assignee = issue.getAssignee(); - createAttribute(data, IssueAttribute.ASSIGNEE, assignee, - repository); + createAttribute(data, IssueAttribute.ASSIGNEE, assignee, repository); String assigneeGravatar = assignee != null ? assignee.getGravatarUrl() : null; createAttribute(data, IssueAttribute.ASSIGNEE_GRAVATAR, @@ -116,6 +112,10 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { createMilestone(repository, data, issue); + PullRequest pr = issue.getPullRequest(); + String prDiffUrl = pr != null ? pr.getDiffUrl() : null; + createAttribute(data, IssueAttribute.PULL_REQUEST_DIFF, prDiffUrl); + return data; } @@ -146,8 +146,8 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { private void createLabels(TaskRepository repository, TaskData data, Issue issue) { - TaskAttribute labels = createAttribute(data, - IssueAttribute.LABELS, issue.getLabels()); + TaskAttribute labels = createAttribute(data, IssueAttribute.LABELS, + issue.getLabels()); if (!this.connector.hasCachedLabels(repository)) try { @@ -192,8 +192,7 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { } } - private String createOperationLabel(Issue issue, - IssueOperation operation) { + private String createOperationLabel(Issue issue, IssueOperation operation) { return operation == IssueOperation.LEAVE ? operation.getLabel() + issue.getState() : operation.getLabel(); } @@ -258,8 +257,7 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { return issue; } - private String getAttributeValue(TaskData taskData, - IssueAttribute attr) { + private String getAttributeValue(TaskData taskData, IssueAttribute attr) { TaskAttribute attribute = taskData.getRoot().getAttribute(attr.getId()); return attribute == null ? null : attribute.getValue(); } @@ -277,18 +275,16 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { private TaskAttribute createAttribute(TaskData data, IssueAttribute attribute, String value) { TaskAttribute attr = createAttribute(data, attribute); - if (value != null) { + if (value != null) data.getAttributeMapper().setValue(attr, value); - } return attr; } private TaskAttribute createAttribute(TaskData data, IssueAttribute attribute, Date value) { TaskAttribute attr = createAttribute(data, attribute); - if (value != null) { + if (value != null) data.getAttributeMapper().setDateValue(attr, value); - } return attr; } @@ -308,9 +304,8 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { TaskAttribute attr = createAttribute(data, attribute); if (values != null) { List<String> labels = new LinkedList<String>(); - for (Label label : values) { + for (Label label : values) labels.add(label.getName()); - } data.getAttributeMapper().setValues(attr, labels); } return attr; @@ -323,11 +318,9 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { data.setVersion(DATA_VERSION); - for (IssueAttribute attr : IssueAttribute.values()) { - if (attr.isInitTask()) { + for (IssueAttribute attr : IssueAttribute.values()) + if (attr.isInitTask()) createAttribute(data, attr, (String) null); - } - } return true; } @@ -394,8 +387,7 @@ public class IssueTaskDataHandler extends AbstractTaskDataHandler { Issue issue = createIssue(taskData); Repository repo = GitHub.getRepository(repository.getRepositoryUrl()); try { - GitHubClient client = IssueConnector - .createClient(repository); + GitHubClient client = IssueConnector.createClient(repository); IssueService service = new IssueService(client); if (taskData.isNew()) { issue.setState(IssueService.STATE_OPEN); diff --git a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/Messages.java b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/Messages.java index 6b97a831..d89ea045 100644 --- a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/Messages.java +++ b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/Messages.java @@ -64,6 +64,8 @@ public class Messages extends NLS { /** */ public static String IssueAttribute_LabelModified; + public static String IssueAttribute_LabelPullRequestDiffUrl; + /** */ public static String IssueAttribute_LabelReporter; diff --git a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/messages.properties b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/messages.properties index b64e1b8a..b9eb4f2a 100644 --- a/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/messages.properties +++ b/org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/messages.properties @@ -13,6 +13,7 @@ IssueAttribute_LabelKey=Key IssueAttribute_LabelLabels=Labels: IssueAttribute_LabelMilestone=Milestone: IssueAttribute_LabelModified=Modified: +IssueAttribute_LabelPullRequestDiffUrl=Pull Request Diff: IssueAttribute_LabelReporter=Reporter: IssueAttribute_LabelReporterGravatar=Reporter IssueAttribute_LabelStatus=Status: |