Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Sawicki2011-05-16 20:56:37 +0000
committerKevin Sawicki2011-05-16 20:56:37 +0000
commit462911f81b4568c9a7e811b8b7c609b7f488763b (patch)
tree0b1b882986e82d8c36237714fac1ed8f925d2d3e /org.eclipse.mylyn.github.core/src/org/eclipse
parentf196bf7bc2f5e6f61f86a0f41a4ee9ce061b8b31 (diff)
downloadegit-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')
-rw-r--r--org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueAttribute.java18
-rw-r--r--org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueConnector.java13
-rw-r--r--org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/IssueTaskDataHandler.java48
-rw-r--r--org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/Messages.java2
-rw-r--r--org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/internal/github/core/issue/messages.properties1
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:

Back to the top