Skip to content

Commit

Permalink
feat: adjustments after merge (refs #106)
Browse files Browse the repository at this point in the history
  • Loading branch information
tomasbjerre committed Nov 16, 2021
1 parent afb929c commit 00ce6b5
Show file tree
Hide file tree
Showing 17 changed files with 210 additions and 225 deletions.
4 changes: 1 addition & 3 deletions src/main/java/se/bjurr/gitchangelog/api/GitChangelogApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -465,9 +465,7 @@ public GitChangelogApi withJiraUsername(final String string) {
return this;
}

/**
* Pattern to recognize Redmine:s. <code>#([0-9]+)</code>
*/
/** Pattern to recognize Redmine:s. <code>#([0-9]+)</code> */
public GitChangelogApi withRedmineIssuePattern(final String redmineIssuePattern) {
this.settings.setRedmineIssuePattern(redmineIssuePattern);
return this;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/se/bjurr/gitchangelog/api/model/Issue.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.GITHUB;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.GITLAB;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.JIRA;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.REDMINE;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.NOISSUE;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.REDMINE;
import static se.bjurr.gitchangelog.internal.util.Preconditions.checkNotNull;
import static se.bjurr.gitchangelog.internal.util.Preconditions.checkState;
import static se.bjurr.gitchangelog.internal.util.Preconditions.isNullOrEmpty;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.GITHUB;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.GITLAB;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.JIRA;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.REDMINE;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.NOISSUE;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.REDMINE;
import static se.bjurr.gitchangelog.internal.util.Preconditions.checkNotNull;
import static se.bjurr.gitchangelog.internal.util.Preconditions.checkState;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,51 +9,51 @@

public class DefaultRedmineClient extends RedmineClient {

private RestClient client;

public DefaultRedmineClient(final String api) {
super(api);
this.client = new RestClient();
private RestClient client;

public DefaultRedmineClient(final String api) {
super(api);
this.client = new RestClient();
}

@Override
public RedmineClient withBasicCredentials(final String username, final String password) {
this.client = this.client.withBasicAuthCredentials(username, password);
return this;
}

@Override
public RedmineClient withTokenCredentials(final String token) {
String authToken;
try {
authToken = Base64.getEncoder().encodeToString((token + ":changelog").getBytes("UTF-8"));
} catch (final UnsupportedEncodingException e) {
throw new RuntimeException(e);
}

@Override
public RedmineClient withBasicCredentials(final String username, final String password) {
this.client = this.client.withBasicAuthCredentials(username, password);
return this;
this.client = this.client.withTokenAuthCredentials(authToken);
return this;
}

@Override
public RedmineClient withHeaders(final Map<String, String> headers) {
this.client = this.client.withHeaders(headers);
return this;
}

@Override
public Optional<RedmineIssue> getIssue(final String issue)
throws GitChangelogIntegrationException {
final String endpoint = this.getEndpoint(issue);
final Optional<String> json = this.client.get(endpoint);
if (json.isPresent()) {
final String jsonString = json.get();
try {
final RedmineIssue redmineIssue = this.toRedmineIssue(issue, jsonString);
return Optional.of(redmineIssue);
} catch (final Exception e) {
throw new GitChangelogIntegrationException("Unable to parse:\n" + jsonString, e);
}
}

@Override
public RedmineClient withTokenCredentials(final String token) {
String authToken;
try {
authToken = Base64.getEncoder().encodeToString((token + ":changelog" ).getBytes("UTF-8"));
} catch (final UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
this.client = this.client.withTokenAuthCredentials(authToken);
return this;
}

@Override
public RedmineClient withHeaders(final Map<String, String> headers) {
this.client = this.client.withHeaders(headers);
return this;
}

@Override
public Optional<RedmineIssue> getIssue(final String issue) throws GitChangelogIntegrationException {
final String endpoint = this.getEndpoint(issue);
final Optional<String> json = this.client.get(endpoint);
if (json.isPresent()) {
final String jsonString = json.get();
try {
final RedmineIssue redmineIssue = this.toRedmineIssue(issue, jsonString);
return Optional.of(redmineIssue);
} catch (final Exception e) {
throw new GitChangelogIntegrationException("Unable to parse:\n" + jsonString, e);
}
}
return Optional.empty();
}

return Optional.empty();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,50 +4,50 @@

import java.util.Map;
import java.util.Optional;

import se.bjurr.gitchangelog.api.exceptions.GitChangelogIntegrationException;

public abstract class RedmineClient {
private final String api;

public RedmineClient(final String api) {
if (api.endsWith("/")) {
this.api = api.substring(0, api.length() - 1);
} else {
this.api = api;
}
}
private final String api;

public String getApi() {
return this.api;
public RedmineClient(final String api) {
if (api.endsWith("/")) {
this.api = api.substring(0, api.length() - 1);
} else {
this.api = api;
}
}

protected String getEndpoint(final String issue) {
final String issueNo = getIssueNumber(issue);
final String endpoint = this.api + "/issues/" + issueNo + ".json";
return endpoint;
}
public String getApi() {
return this.api;
}

protected RedmineIssue toRedmineIssue(final String issue, final String json) {
final String issueNo = getIssueNumber(issue);
final String title = read(json, "$.issue.subject");
final String description = read(json, "$.issue.description");
final String type = read(json, "$.issue.tracker.name");
final String link = this.api + "/issues/" + issueNo;
protected String getEndpoint(final String issue) {
final String issueNo = getIssueNumber(issue);
final String endpoint = this.api + "/issues/" + issueNo + ".json";
return endpoint;
}

final RedmineIssue redmineIssue = new RedmineIssue(title, description, link, issue, type);
return redmineIssue;
}
protected RedmineIssue toRedmineIssue(final String issue, final String json) {
final String issueNo = getIssueNumber(issue);
final String title = read(json, "$.issue.subject");
final String description = read(json, "$.issue.description");
final String type = read(json, "$.issue.tracker.name");
final String link = this.api + "/issues/" + issueNo;

protected String getIssueNumber( String issue ){
return issue.startsWith("#") ? issue.substring(1) : issue;
}
final RedmineIssue redmineIssue = new RedmineIssue(title, description, link, issue, type);
return redmineIssue;
}

protected String getIssueNumber(String issue) {
return issue.startsWith("#") ? issue.substring(1) : issue;
}

public abstract RedmineClient withBasicCredentials(String username, String password);
public abstract RedmineClient withBasicCredentials(String username, String password);

public abstract RedmineClient withTokenCredentials(String token);
public abstract RedmineClient withTokenCredentials(String token);

public abstract RedmineClient withHeaders(Map<String, String> headers);
public abstract RedmineClient withHeaders(Map<String, String> headers);

public abstract Optional<RedmineIssue> getIssue(String matched) throws GitChangelogIntegrationException;
public abstract Optional<RedmineIssue> getIssue(String matched)
throws GitChangelogIntegrationException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,21 @@

public class RedmineClientFactory {

private static RedmineClient redmineClient;
private static RedmineClient redmineClient;

public static void reset() {
redmineClient = null;
}
public static void reset() {
redmineClient = null;
}

/**
* The Bitbucket Server plugin uses this method to inject the Atlassian Client.
*/
public static void setRedmineClient(final RedmineClient redmineClient) {
RedmineClientFactory.redmineClient = redmineClient;
}
/** The Bitbucket Server plugin uses this method to inject the Atlassian Client. */
public static void setRedmineClient(final RedmineClient redmineClient) {
RedmineClientFactory.redmineClient = redmineClient;
}

public static RedmineClient createRedmineClient(final String apiUrl) {
if (redmineClient != null) {
return redmineClient;
}
return new DefaultRedmineClient(apiUrl);
public static RedmineClient createRedmineClient(final String apiUrl) {
if (redmineClient != null) {
return redmineClient;
}

return new DefaultRedmineClient(apiUrl);
}
}
Original file line number Diff line number Diff line change
@@ -1,44 +1,52 @@
package se.bjurr.gitchangelog.internal.integrations.redmine;

public class RedmineIssue {
private final String title;
private final String link;
private final String issue;
private final String issueType;
private final String description;


public RedmineIssue(String title, String description, String link, String issue, String issueType ) {
this.title = title;
this.link = link;
this.issue = issue;
this.issueType = issueType;
this.description = description;
}

public String getIssue() {
return issue;
}

public String getLink() {
return link;
}

public String getTitle() {
return title;
}

public String getIssueType() {
return issueType;
}

public String getDescription() {

return description;
}

@Override
public String toString() {
return "RedmineIssue [title=" + title + ", link=" + link + ", issue=" + issue + ", issueType=" + issueType + "]";
}
private final String title;
private final String link;
private final String issue;
private final String issueType;
private final String description;

public RedmineIssue(
String title, String description, String link, String issue, String issueType) {
this.title = title;
this.link = link;
this.issue = issue;
this.issueType = issueType;
this.description = description;
}

public String getIssue() {
return issue;
}

public String getLink() {
return link;
}

public String getTitle() {
return title;
}

public String getIssueType() {
return issueType;
}

public String getDescription() {

return description;
}

@Override
public String toString() {
return "RedmineIssue [title="
+ title
+ ", link="
+ link
+ ", issue="
+ issue
+ ", issueType="
+ issueType
+ "]";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.GITHUB;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.GITLAB;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.JIRA;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.REDMINE;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.NOISSUE;
import static se.bjurr.gitchangelog.internal.settings.SettingsIssueType.REDMINE;

import java.util.ArrayList;
import java.util.HashMap;
Expand Down Expand Up @@ -60,9 +60,10 @@ public List<ParsedIssue> parseForIssues(final boolean useIntegrationIfConfigured

final GitHubHelper gitHubHelper = useIntegrationIfConfigured ? this.createGitHubClient() : null;
final JiraClient jiraClient = useIntegrationIfConfigured ? this.createJiraClient() : null;
final RedmineClient redmineClient = useIntegrationIfConfigured ? this.createRedmineClient() : null;
final RedmineClient redmineClient =
useIntegrationIfConfigured ? this.createRedmineClient() : null;
final GitLabClient gitLabClient = useIntegrationIfConfigured ? this.createGitLabClient() : null;

final List<SettingsIssue> patterns = new IssuesUtil(this.settings).getIssues();

for (final GitCommit gitCommit : this.commits) {
Expand Down Expand Up @@ -193,7 +194,8 @@ private JiraClient createJiraClient() {
private RedmineClient createRedmineClient() {
RedmineClient redmineClient = null;
if (this.settings.getRedmineServer().isPresent()) {
redmineClient = RedmineClientFactory.createRedmineClient(this.settings.getRedmineServer().get());
redmineClient =
RedmineClientFactory.createRedmineClient(this.settings.getRedmineServer().get());
if (this.settings.getRedmineUsername().isPresent()) {
redmineClient.withBasicCredentials(
this.settings.getRedmineUsername().get(), this.settings.getRedminePassword().get());
Expand Down Expand Up @@ -271,7 +273,9 @@ private ParsedIssue createParsedIssue(
}

private ParsedIssue createParsedIssue(
final RedmineClient redmineClient, final SettingsIssue issuePattern, final String matchedIssue) {
final RedmineClient redmineClient,
final SettingsIssue issuePattern,
final String matchedIssue) {
String link = "";
String title = "";
String desc = "";
Expand Down Expand Up @@ -301,7 +305,6 @@ private ParsedIssue createParsedIssue(
labels);
}


private ParsedIssue createParsedIssue(
final GitHubHelper gitHubHelper,
final SettingsIssue issuePattern,
Expand Down

0 comments on commit 00ce6b5

Please sign in to comment.