mirror of
https://github.com/jlengrand/jreleaser.git
synced 2026-03-10 08:31:24 +00:00
Add name templates for clone URLs
This commit is contained in:
@@ -39,6 +39,10 @@ abstract class AbstractRepositoryTap implements RepositoryTap {
|
||||
this.basename = basename;
|
||||
}
|
||||
|
||||
public String getBasename() {
|
||||
return basename;
|
||||
}
|
||||
|
||||
public void setBasename(String basename) {
|
||||
this.basename = basename;
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@ public abstract class GitService implements Releaser, CommitAuthorProvider, Owne
|
||||
private String owner;
|
||||
private String name;
|
||||
private String repoUrlFormat;
|
||||
private String repoCloneUrlFormat;
|
||||
private String commitUrlFormat;
|
||||
private String downloadUrlFormat;
|
||||
private String releaseNotesUrlFormat;
|
||||
@@ -81,6 +82,7 @@ public abstract class GitService implements Releaser, CommitAuthorProvider, Owne
|
||||
this.owner = service.owner;
|
||||
this.name = service.name;
|
||||
this.repoUrlFormat = service.repoUrlFormat;
|
||||
this.repoCloneUrlFormat = service.repoCloneUrlFormat;
|
||||
this.commitUrlFormat = service.commitUrlFormat;
|
||||
this.downloadUrlFormat = service.downloadUrlFormat;
|
||||
this.releaseNotesUrlFormat = service.releaseNotesUrlFormat;
|
||||
@@ -156,6 +158,24 @@ public abstract class GitService implements Releaser, CommitAuthorProvider, Owne
|
||||
return applyTemplate(new StringReader(repoUrlFormat), props(project));
|
||||
}
|
||||
|
||||
public String getResolvedRepoCloneUrl(Project project) {
|
||||
return applyTemplate(new StringReader(repoCloneUrlFormat), props(project));
|
||||
}
|
||||
|
||||
public String getResolvedRepoUrl(Project project, String repoOwner, String repoName) {
|
||||
Map<String, Object> props = props(project);
|
||||
props.put(Constants.KEY_REPO_OWNER, repoOwner);
|
||||
props.put(Constants.KEY_REPO_NAME, repoName);
|
||||
return applyTemplate(new StringReader(repoUrlFormat), props);
|
||||
}
|
||||
|
||||
public String getResolvedRepoCloneUrl(Project project, String repoOwner, String repoName) {
|
||||
Map<String, Object> props = props(project);
|
||||
props.put(Constants.KEY_REPO_OWNER, repoOwner);
|
||||
props.put(Constants.KEY_REPO_NAME, repoName);
|
||||
return applyTemplate(new StringReader(repoCloneUrlFormat), props);
|
||||
}
|
||||
|
||||
public String getResolvedCommitUrl(Project project) {
|
||||
return applyTemplate(new StringReader(commitUrlFormat), props(project));
|
||||
}
|
||||
@@ -225,6 +245,14 @@ public abstract class GitService implements Releaser, CommitAuthorProvider, Owne
|
||||
this.repoUrlFormat = repoUrlFormat;
|
||||
}
|
||||
|
||||
public String getRepoCloneUrlFormat() {
|
||||
return repoCloneUrlFormat;
|
||||
}
|
||||
|
||||
public void setRepoCloneUrlFormat(String repoCloneUrlFormat) {
|
||||
this.repoCloneUrlFormat = repoCloneUrlFormat;
|
||||
}
|
||||
|
||||
public String getCommitUrlFormat() {
|
||||
return commitUrlFormat;
|
||||
}
|
||||
@@ -377,6 +405,7 @@ public abstract class GitService implements Releaser, CommitAuthorProvider, Owne
|
||||
map.put("username", username);
|
||||
map.put("token", isNotBlank(getResolvedToken()) ? "************" : "**unset**");
|
||||
map.put("repoUrlFormat", repoUrlFormat);
|
||||
map.put("repoCloneUrlFormat", repoCloneUrlFormat);
|
||||
map.put("commitUrlFormat", commitUrlFormat);
|
||||
map.put("downloadUrlFormat", downloadUrlFormat);
|
||||
map.put("releaseNotesUrlFormat", releaseNotesUrlFormat);
|
||||
@@ -437,6 +466,7 @@ public abstract class GitService implements Releaser, CommitAuthorProvider, Owne
|
||||
props.put(Constants.KEY_RELEASE_NAME, getEffectiveReleaseName());
|
||||
props.put(Constants.KEY_MILESTONE_NAME, milestone.getEffectiveName());
|
||||
props.put(Constants.KEY_REPO_URL, getResolvedRepoUrl(project));
|
||||
props.put(Constants.KEY_REPO_CLONE_URL, getResolvedRepoCloneUrl(project));
|
||||
props.put(Constants.KEY_COMMIT_URL, getResolvedCommitUrl(project));
|
||||
props.put(Constants.KEY_RELEASE_NOTES_URL, getResolvedReleaseNotesUrl(project));
|
||||
props.put(Constants.KEY_LATEST_RELEASE_URL, getResolvedLatestReleaseUrl(project));
|
||||
|
||||
@@ -33,6 +33,7 @@ public class Gitea extends GitService {
|
||||
public Gitea() {
|
||||
super(NAME);
|
||||
setRepoUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}");
|
||||
setRepoCloneUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git");
|
||||
setCommitUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits");
|
||||
setDownloadUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFileName}}");
|
||||
setReleaseNotesUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}");
|
||||
|
||||
@@ -34,6 +34,7 @@ public class Github extends GitService {
|
||||
super(NAME);
|
||||
setHost("github.com");
|
||||
setRepoUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}");
|
||||
setRepoCloneUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git");
|
||||
setCommitUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits");
|
||||
setDownloadUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/{{tagName}}/{{artifactFileName}}");
|
||||
setReleaseNotesUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/{{tagName}}");
|
||||
|
||||
@@ -32,6 +32,7 @@ public class Gitlab extends GitService {
|
||||
super(NAME);
|
||||
setHost("gitlab.com");
|
||||
setRepoUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}");
|
||||
setRepoCloneUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git");
|
||||
setCommitUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/-/commits");
|
||||
setDownloadUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/-/releases/{{tagName}}/downloads/{{artifactFileName}}");
|
||||
setReleaseNotesUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/-/releases/{{tagName}}");
|
||||
|
||||
@@ -217,6 +217,7 @@ public class JReleaserModel implements Domain {
|
||||
props.put(Constants.KEY_REVERSE_REPO_HOST, service.getReverseRepoHost());
|
||||
props.put(Constants.KEY_CANONICAL_REPO_NAME, service.getCanonicalRepoName());
|
||||
props.put(Constants.KEY_REPO_URL, service.getResolvedRepoUrl(project));
|
||||
props.put(Constants.KEY_REPO_CLONE_URL, service.getResolvedRepoCloneUrl(project));
|
||||
props.put(Constants.KEY_COMMIT_URL, service.getResolvedCommitUrl(project));
|
||||
props.put(Constants.KEY_RELEASE_NOTES_URL, service.getResolvedReleaseNotesUrl(project));
|
||||
props.put(Constants.KEY_LATEST_RELEASE_URL, service.getResolvedLatestReleaseUrl(project));
|
||||
|
||||
@@ -23,6 +23,6 @@ package org.jreleaser.model;
|
||||
*/
|
||||
public class ScoopBucket extends AbstractRepositoryTap {
|
||||
public ScoopBucket() {
|
||||
super("scoop-bucket");
|
||||
super("scoop");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@ import org.jreleaser.model.Packagers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.jreleaser.util.StringUtils.isBlank;
|
||||
|
||||
/**
|
||||
* @author Andres Almiray
|
||||
* @since 0.1.0
|
||||
@@ -46,6 +48,11 @@ public abstract class PackagersValidator extends Validator {
|
||||
validateCommitAuthor(packagers.getScoop(), model.getRelease().getGitService());
|
||||
validateOwner(packagers.getScoop().getBucket(), model.getRelease().getGitService());
|
||||
|
||||
if (isBlank(packagers.getScoop().getBucket().getName())) {
|
||||
packagers.getScoop().getBucket().setName("scoop-" + model.getRelease().getGitService().getOwner());
|
||||
}
|
||||
packagers.getScoop().getBucket().setBasename("scoop-" + model.getRelease().getGitService().getOwner());
|
||||
|
||||
validateCommitAuthor(packagers.getSnap(), model.getRelease().getGitService());
|
||||
validateOwner(packagers.getSnap().getSnap(), model.getRelease().getGitService());
|
||||
}
|
||||
|
||||
@@ -63,9 +63,10 @@ public abstract class ScoopValidator extends Validator {
|
||||
}
|
||||
|
||||
if (isBlank(tool.getBucket().getName())) {
|
||||
tool.getBucket().setName("scoop-bucket");
|
||||
tool.getBucket().setName(model.getPackagers().getScoop().getBucket().getName());
|
||||
}
|
||||
tool.getBucket().setBasename("scoop-bucket");
|
||||
tool.getBucket().setBasename(model.getPackagers().getScoop().getBucket().getBasename());
|
||||
|
||||
if (isBlank(tool.getBucket().getUsername())) {
|
||||
tool.getBucket().setUsername(model.getPackagers().getScoop().getBucket().getUsername());
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ $ brew install <formula>
|
||||
Invoke the following command if the formula is *not* hosted at GitHub
|
||||
|
||||
```sh
|
||||
brew tap {{repoOwner}}/homebrew-tap <git-clone-url>
|
||||
brew tap {{repoOwner}}/homebrew-tap {{tapRepoCloneUrl}}
|
||||
brew install <formula>
|
||||
```
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Scoop Manifests
|
||||
|
||||
## How do I install these tools?
|
||||
|
||||
1. Install [scoop](https://github.com/lukesampson/scoop).
|
||||
|
||||
2. Add this bucket to scoop:
|
||||
|
||||
```
|
||||
scoop bucket add {{repoOwner}} {{scoopBucketRepoCloneUrl}}
|
||||
```
|
||||
|
||||
3. Install tools via `scoop install`:
|
||||
|
||||
```
|
||||
scoop install <toolName>
|
||||
```
|
||||
@@ -17,7 +17,7 @@ $ brew install <formula>
|
||||
Invoke the following command if the formula is *not* hosted at GitHub
|
||||
|
||||
```sh
|
||||
brew tap {{repoOwner}}/homebrew-tap <git-clone-url>
|
||||
brew tap {{repoOwner}}/homebrew-tap {{tapRepoCloneUrl}}
|
||||
brew install <formula>
|
||||
```
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Scoop Manifests
|
||||
|
||||
## How do I install these tools?
|
||||
|
||||
1. Install [scoop](https://github.com/lukesampson/scoop).
|
||||
|
||||
2. Add this bucket to scoop:
|
||||
|
||||
```
|
||||
scoop bucket add {{repoOwner}} {{scoopBucketRepoCloneUrl}}
|
||||
```
|
||||
|
||||
3. Install tools via `scoop install`:
|
||||
|
||||
```
|
||||
scoop install <toolName>
|
||||
```
|
||||
@@ -19,6 +19,7 @@ package org.jreleaser.tools;
|
||||
|
||||
import org.jreleaser.model.Brew;
|
||||
import org.jreleaser.model.Distribution;
|
||||
import org.jreleaser.model.GitService;
|
||||
import org.jreleaser.model.JReleaserContext;
|
||||
import org.jreleaser.model.Project;
|
||||
import org.jreleaser.model.tool.spi.ToolProcessingException;
|
||||
@@ -47,8 +48,16 @@ public class BrewToolProcessor extends AbstractRepositoryToolProcessor<Brew> {
|
||||
|
||||
@Override
|
||||
protected void fillToolProperties(Map<String, Object> props, Distribution distribution) throws ToolProcessingException {
|
||||
Project project = context.getModel().getProject();
|
||||
GitService gitService = context.getModel().getRelease().getGitService();
|
||||
|
||||
props.put(Constants.KEY_HOMEBREW_TAP_REPO_URL,
|
||||
gitService.getResolvedRepoUrl(project, tool.getTap().getOwner(), tool.getTap().getName()));
|
||||
props.put(Constants.KEY_HOMEBREW_TAP_REPO_CLONE_URL,
|
||||
gitService.getResolvedRepoCloneUrl(project, tool.getTap().getOwner(), tool.getTap().getName()));
|
||||
|
||||
if (distribution.getType() == Distribution.DistributionType.JAVA_BINARY) {
|
||||
getTool().addDependency("openjdk@"+ props.get(Constants.KEY_DISTRIBUTION_JAVA_VERSION));
|
||||
getTool().addDependency("openjdk@" + props.get(Constants.KEY_DISTRIBUTION_JAVA_VERSION));
|
||||
}
|
||||
|
||||
props.put(Constants.KEY_BREW_DEPENDENCIES, getTool().getDependenciesAsList()
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.jreleaser.tools;
|
||||
|
||||
import org.jreleaser.model.Chocolatey;
|
||||
import org.jreleaser.model.Distribution;
|
||||
import org.jreleaser.model.GitService;
|
||||
import org.jreleaser.model.JReleaserContext;
|
||||
import org.jreleaser.model.Project;
|
||||
import org.jreleaser.model.releaser.spi.Releaser;
|
||||
@@ -74,6 +75,14 @@ public class ChocolateyToolProcessor extends AbstractRepositoryToolProcessor<Cho
|
||||
|
||||
@Override
|
||||
protected void fillToolProperties(Map<String, Object> props, Distribution distribution) throws ToolProcessingException {
|
||||
Project project = context.getModel().getProject();
|
||||
GitService gitService = context.getModel().getRelease().getGitService();
|
||||
|
||||
props.put(Constants.KEY_CHOCOLATEY_BUCKET_REPO_URL,
|
||||
gitService.getResolvedRepoUrl(project, tool.getBucket().getOwner(), tool.getBucket().getName()));
|
||||
props.put(Constants.KEY_CHOCOLATEY_BUCKET_REPO_CLONE_URL,
|
||||
gitService.getResolvedRepoCloneUrl(project, tool.getBucket().getOwner(), tool.getBucket().getName()));
|
||||
|
||||
props.put(Constants.KEY_CHOCOLATEY_USERNAME, getTool().getUsername());
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ package org.jreleaser.tools;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.jreleaser.model.Distribution;
|
||||
import org.jreleaser.model.GitService;
|
||||
import org.jreleaser.model.JReleaserContext;
|
||||
import org.jreleaser.model.Jbang;
|
||||
import org.jreleaser.model.Project;
|
||||
@@ -64,6 +65,14 @@ public class JbangToolProcessor extends AbstractRepositoryToolProcessor<Jbang> {
|
||||
|
||||
@Override
|
||||
protected void fillToolProperties(Map<String, Object> props, Distribution distribution) throws ToolProcessingException {
|
||||
Project project = context.getModel().getProject();
|
||||
GitService gitService = context.getModel().getRelease().getGitService();
|
||||
|
||||
props.put(Constants.KEY_JBANG_CATALOG_REPO_URL,
|
||||
gitService.getResolvedRepoUrl(project, tool.getCatalog().getOwner(), tool.getCatalog().getName()));
|
||||
props.put(Constants.KEY_JBANG_CATALOG_REPO_CLONE_URL,
|
||||
gitService.getResolvedRepoCloneUrl(project, tool.getCatalog().getOwner(), tool.getCatalog().getName()));
|
||||
|
||||
String aliasName = tool.getAlias();
|
||||
String aliasClassName = aliasName;
|
||||
if (context.getModel().getProject().isSnapshot()) {
|
||||
@@ -82,17 +91,17 @@ public class JbangToolProcessor extends AbstractRepositoryToolProcessor<Jbang> {
|
||||
// if multi-project
|
||||
// {{reverseRepoHost}}.{{repoOwner}}.{{repoName}}:{{distributionArtifactId}
|
||||
|
||||
String reverseRepoHost = context.getModel().getRelease().getGitService().getReverseRepoHost();
|
||||
String reverseRepoHost = gitService.getReverseRepoHost();
|
||||
if (isBlank(reverseRepoHost)) {
|
||||
reverseRepoHost = (String) tool.getExtraProperties().get(KEY_REVERSE_REPO_HOST);
|
||||
reverseRepoHost = tool.getExtraProperties().get(KEY_REVERSE_REPO_HOST);
|
||||
}
|
||||
|
||||
StringBuilder b = new StringBuilder(reverseRepoHost)
|
||||
.append(".")
|
||||
.append(context.getModel().getRelease().getGitService().getOwner());
|
||||
.append(gitService.getOwner());
|
||||
if (distribution.getJava().isMultiProject()) {
|
||||
b.append(".")
|
||||
.append(context.getModel().getRelease().getGitService().getName());
|
||||
.append(gitService.getName());
|
||||
}
|
||||
b.append(":")
|
||||
.append(distribution.getJava().getArtifactId());
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
package org.jreleaser.tools;
|
||||
|
||||
import org.jreleaser.model.Distribution;
|
||||
import org.jreleaser.model.GitService;
|
||||
import org.jreleaser.model.JReleaserContext;
|
||||
import org.jreleaser.model.Project;
|
||||
import org.jreleaser.model.Scoop;
|
||||
import org.jreleaser.model.tool.spi.ToolProcessingException;
|
||||
import org.jreleaser.util.Constants;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.nio.file.Path;
|
||||
import java.util.LinkedHashMap;
|
||||
@@ -48,13 +48,16 @@ public class ScoopToolProcessor extends AbstractRepositoryToolProcessor<Scoop> {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void prepareWorkingCopy(Map<String, Object> props, Path directory, Distribution distribution) throws IOException {
|
||||
super.prepareWorkingCopy(props, directory.resolve(distribution.getName()), distribution);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void fillToolProperties(Map<String, Object> props, Distribution distribution) throws ToolProcessingException {
|
||||
Project project = context.getModel().getProject();
|
||||
GitService gitService = context.getModel().getRelease().getGitService();
|
||||
|
||||
props.put(Constants.KEY_SCOOP_BUCKET_REPO_URL,
|
||||
gitService.getResolvedRepoUrl(project, tool.getBucket().getOwner(), tool.getBucket().getName()));
|
||||
props.put(Constants.KEY_SCOOP_BUCKET_REPO_CLONE_URL,
|
||||
gitService.getResolvedRepoCloneUrl(project, tool.getBucket().getOwner(), tool.getBucket().getName()));
|
||||
|
||||
props.put(Constants.KEY_SCOOP_CHECKVER_URL, resolveCheckverUrl(props));
|
||||
props.put(Constants.KEY_SCOOP_AUTOUPDATE_URL, resolveAutoupdateUrl(props));
|
||||
}
|
||||
@@ -80,8 +83,12 @@ public class ScoopToolProcessor extends AbstractRepositoryToolProcessor<Scoop> {
|
||||
@Override
|
||||
protected void writeFile(Project project, Distribution distribution, String content, Map<String, Object> props, String fileName)
|
||||
throws ToolProcessingException {
|
||||
fileName = trimTplExtension(fileName);
|
||||
|
||||
Path outputDirectory = (Path) props.get(Constants.KEY_PREPARE_DIRECTORY);
|
||||
Path outputFile = outputDirectory.resolve(trimTplExtension(fileName));
|
||||
Path outputFile = "manifest.json".equals(fileName) ?
|
||||
outputDirectory.resolve("bucket").resolve(distribution.getExecutable().concat(".json")) :
|
||||
outputDirectory.resolve(fileName);
|
||||
|
||||
writeFile(content, outputFile);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
package org.jreleaser.tools;
|
||||
|
||||
import org.jreleaser.model.Distribution;
|
||||
import org.jreleaser.model.GitService;
|
||||
import org.jreleaser.model.JReleaserContext;
|
||||
import org.jreleaser.model.Project;
|
||||
import org.jreleaser.model.Snap;
|
||||
@@ -81,6 +82,14 @@ public class SnapToolProcessor extends AbstractRepositoryToolProcessor<Snap> {
|
||||
|
||||
@Override
|
||||
protected void fillToolProperties(Map<String, Object> props, Distribution distribution) throws ToolProcessingException {
|
||||
Project project = context.getModel().getProject();
|
||||
GitService gitService = context.getModel().getRelease().getGitService();
|
||||
|
||||
props.put(Constants.KEY_SNAP_REPO_URL,
|
||||
gitService.getResolvedRepoUrl(project, tool.getSnap().getOwner(), tool.getSnap().getName()));
|
||||
props.put(Constants.KEY_SNAP_REPO_CLONE_URL,
|
||||
gitService.getResolvedRepoCloneUrl(project, tool.getSnap().getOwner(), tool.getSnap().getName()));
|
||||
|
||||
props.put(Constants.KEY_SNAP_BASE, getTool().getBase());
|
||||
props.put(Constants.KEY_SNAP_GRADE, getTool().getGrade());
|
||||
props.put(Constants.KEY_SNAP_CONFINEMENT, getTool().getConfinement());
|
||||
|
||||
@@ -61,6 +61,7 @@ public interface Constants {
|
||||
String KEY_MILESTONE_NAME = "milestoneName";
|
||||
String KEY_CANONICAL_REPO_NAME = "repoCanonicalName";
|
||||
String KEY_REPO_URL = "repoUrl";
|
||||
String KEY_REPO_CLONE_URL = "repoCloneUrl";
|
||||
String KEY_COMMIT_URL = "commitsUrl";
|
||||
String KEY_RELEASE_NOTES_URL = "releaseNotesUrl";
|
||||
String KEY_LATEST_RELEASE_URL = "latestReleaseUrl";
|
||||
@@ -86,6 +87,8 @@ public interface Constants {
|
||||
|
||||
// Brew
|
||||
String KEY_BREW_DEPENDENCIES = "brewDependencies";
|
||||
String KEY_HOMEBREW_TAP_REPO_URL = "brewTapRepoUrl";
|
||||
String KEY_HOMEBREW_TAP_REPO_CLONE_URL = "brewTapRepoCloneUrl";
|
||||
|
||||
// Docker
|
||||
String KEY_DOCKER_BASE_IMAGE = "dockerBaseImage";
|
||||
@@ -94,14 +97,20 @@ public interface Constants {
|
||||
// Scoop
|
||||
String KEY_SCOOP_CHECKVER_URL = "scoopCheckverUrl";
|
||||
String KEY_SCOOP_AUTOUPDATE_URL = "scoopAutoupdateUrl";
|
||||
String KEY_SCOOP_BUCKET_REPO_URL = "scoopBucketRepoUrl";
|
||||
String KEY_SCOOP_BUCKET_REPO_CLONE_URL = "scoopBucketRepoCloneUrl";
|
||||
|
||||
// Chocolatey
|
||||
String KEY_CHOCOLATEY_USERNAME = "chocolateyUsername";
|
||||
String KEY_CHOCOLATEY_BUCKET_REPO_URL = "chocolateyBucketRepoUrl";
|
||||
String KEY_CHOCOLATEY_BUCKET_REPO_CLONE_URL = "chocolateyBucketRepoCloneUrl";
|
||||
|
||||
// Jbang
|
||||
String KEY_JBANG_ALIAS_NAME = "jbangAliasName";
|
||||
String KEY_JBANG_ALIAS_CLASS_NAME = "jbangAliasClassName";
|
||||
String KEY_JBANG_DISTRIBUTION_GA = "jbangDistributionGA";
|
||||
String KEY_JBANG_CATALOG_REPO_URL = "jbangCatalogRepoUrl";
|
||||
String KEY_JBANG_CATALOG_REPO_CLONE_URL = "jbangCatalogRepoCloneUrl";
|
||||
|
||||
// Snap
|
||||
String KEY_SNAP_BASE = "snapBase";
|
||||
@@ -115,6 +124,8 @@ public interface Constants {
|
||||
String KEY_SNAP_LOCAL_PLUGS = "snapLocalPlugs";
|
||||
String KEY_SNAP_HAS_LOCAL_SLOTS = "snapHasLocalSlots";
|
||||
String KEY_SNAP_LOCAL_SLOTS = "snapLocalSlots";
|
||||
String KEY_SNAP_REPO_URL = "snapRepoUrl";
|
||||
String KEY_SNAP_REPO_CLONE_URL = "snapRepoCloneUrl";
|
||||
|
||||
// ToolProcessor
|
||||
String KEY_CHECKSUM_DIRECTORY = "__CHECKSUM_DIRECTORY__";
|
||||
|
||||
@@ -36,6 +36,8 @@ interface GitService extends Releaser {
|
||||
|
||||
Property<String> getRepoUrlFormat()
|
||||
|
||||
Property<String> getRepoCloneUrlFormat()
|
||||
|
||||
Property<String> getCommitUrlFormat()
|
||||
|
||||
Property<String> getDownloadUrlFormat()
|
||||
|
||||
@@ -42,6 +42,7 @@ abstract class AbstractGitService implements GitService {
|
||||
final Property<String> owner
|
||||
final Property<String> name
|
||||
final Property<String> repoUrlFormat
|
||||
final Property<String> repoCloneUrlFormat
|
||||
final Property<String> commitUrlFormat
|
||||
final Property<String> downloadUrlFormat
|
||||
final Property<String> releaseNotesUrlFormat
|
||||
@@ -64,6 +65,7 @@ abstract class AbstractGitService implements GitService {
|
||||
owner = objects.property(String).convention(Providers.notDefined())
|
||||
name = objects.property(String).convention(Providers.notDefined())
|
||||
repoUrlFormat = objects.property(String).convention(Providers.notDefined())
|
||||
repoCloneUrlFormat = objects.property(String).convention(Providers.notDefined())
|
||||
commitUrlFormat = objects.property(String).convention(Providers.notDefined())
|
||||
downloadUrlFormat = objects.property(String).convention(Providers.notDefined())
|
||||
releaseNotesUrlFormat = objects.property(String).convention(Providers.notDefined())
|
||||
@@ -88,6 +90,7 @@ abstract class AbstractGitService implements GitService {
|
||||
owner.present ||
|
||||
name.present ||
|
||||
repoUrlFormat.present ||
|
||||
repoCloneUrlFormat.present ||
|
||||
commitUrlFormat.present ||
|
||||
downloadUrlFormat.present ||
|
||||
releaseNotesUrlFormat.present ||
|
||||
@@ -125,6 +128,7 @@ abstract class AbstractGitService implements GitService {
|
||||
if (owner.present) service.owner = owner.get()
|
||||
if (name.present) service.name = name.get()
|
||||
if (repoUrlFormat.present) service.repoUrlFormat = repoUrlFormat.get()
|
||||
if (repoCloneUrlFormat.present) service.repoCloneUrlFormat = repoCloneUrlFormat.get()
|
||||
if (commitUrlFormat.present) service.commitUrlFormat = commitUrlFormat.get()
|
||||
if (downloadUrlFormat.present) service.downloadUrlFormat = downloadUrlFormat.get()
|
||||
if (releaseNotesUrlFormat.present) service.releaseNotesUrlFormat = releaseNotesUrlFormat.get()
|
||||
|
||||
@@ -30,6 +30,7 @@ public abstract class GitService implements Releaser {
|
||||
private String owner;
|
||||
private String name;
|
||||
private String repoUrlFormat;
|
||||
private String repoCloneUrlFormat;
|
||||
private String commitUrlFormat;
|
||||
private String downloadUrlFormat;
|
||||
private String releaseNotesUrlFormat;
|
||||
@@ -51,6 +52,7 @@ public abstract class GitService implements Releaser {
|
||||
this.owner = service.owner;
|
||||
this.name = service.name;
|
||||
this.repoUrlFormat = service.repoUrlFormat;
|
||||
this.repoCloneUrlFormat = service.repoCloneUrlFormat;
|
||||
this.commitUrlFormat = service.commitUrlFormat;
|
||||
this.downloadUrlFormat = service.downloadUrlFormat;
|
||||
this.releaseNotesUrlFormat = service.releaseNotesUrlFormat;
|
||||
@@ -117,6 +119,14 @@ public abstract class GitService implements Releaser {
|
||||
this.repoUrlFormat = repoUrlFormat;
|
||||
}
|
||||
|
||||
public String getRepoCloneUrlFormat() {
|
||||
return repoCloneUrlFormat;
|
||||
}
|
||||
|
||||
public void setRepoCloneUrlFormat(String repoCloneUrlFormat) {
|
||||
this.repoCloneUrlFormat = repoCloneUrlFormat;
|
||||
}
|
||||
|
||||
public String getCommitUrlFormat() {
|
||||
return commitUrlFormat;
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ public class Gitea extends GitService {
|
||||
public Gitea() {
|
||||
setHost("try.gitea.io");
|
||||
setRepoUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}");
|
||||
setRepoCloneUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git");
|
||||
setCommitUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits");
|
||||
setDownloadUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/v{{projectVersion}}/{{artifactFileName}}");
|
||||
setReleaseNotesUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/v{{projectVersion}}");
|
||||
|
||||
@@ -29,6 +29,7 @@ public class Github extends GitService {
|
||||
public Github() {
|
||||
setHost("github.com");
|
||||
setRepoUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}");
|
||||
setRepoCloneUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git");
|
||||
setCommitUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/commits");
|
||||
setDownloadUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/download/v{{projectVersion}}/{{artifactFileName}}");
|
||||
setReleaseNotesUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/releases/tag/v{{projectVersion}}");
|
||||
|
||||
@@ -27,6 +27,7 @@ public class Gitlab extends GitService {
|
||||
public Gitlab() {
|
||||
setHost("gitlab.com");
|
||||
setRepoUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}");
|
||||
setRepoCloneUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}.git");
|
||||
setCommitUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/-/commits");
|
||||
setDownloadUrlFormat("\"https://{{repoHost}}/{{repoOwner}}/{{repoName}}/-/archive/v{{projectVersion}}/{{artifactFileName}}");
|
||||
setReleaseNotesUrlFormat("https://{{repoHost}}/{{repoOwner}}/{{repoName}}/-/releases/v{{projectVersion}}");
|
||||
|
||||
@@ -165,6 +165,7 @@ public final class JReleaserModelConverter {
|
||||
s.setOwner(service.getOwner());
|
||||
s.setName(service.getName());
|
||||
s.setRepoUrlFormat(service.getRepoUrlFormat());
|
||||
s.setRepoCloneUrlFormat(service.getRepoCloneUrlFormat());
|
||||
s.setCommitUrlFormat(service.getCommitUrlFormat());
|
||||
s.setDownloadUrlFormat(service.getDownloadUrlFormat());
|
||||
s.setReleaseNotesUrlFormat(service.getReleaseNotesUrlFormat());
|
||||
|
||||
@@ -92,7 +92,7 @@ class Gitea {
|
||||
}
|
||||
|
||||
GtRepository findRepository(String owner, String repo) {
|
||||
logger.debug("Lookup repository {}/{}", owner, repo);
|
||||
logger.debug("lookup repository {}/{}", owner, repo);
|
||||
try {
|
||||
return api.getRepository(owner, repo);
|
||||
} catch (GiteaAPIException e) {
|
||||
@@ -105,7 +105,7 @@ class Gitea {
|
||||
}
|
||||
|
||||
Optional<GtMilestone> findMilestoneByName(String owner, String repo, String milestoneName) {
|
||||
logger.debug("Lookup milestone '{}' on {}/{}", milestoneName, owner, repo);
|
||||
logger.debug("lookup milestone '{}' on {}/{}", milestoneName, owner, repo);
|
||||
|
||||
try {
|
||||
GtMilestone milestone = api.findMilestoneByTitle(owner, repo, milestoneName);
|
||||
@@ -125,14 +125,14 @@ class Gitea {
|
||||
}
|
||||
|
||||
void closeMilestone(String owner, String repo, GtMilestone milestone) throws IOException {
|
||||
logger.debug("Closing milestone '{}' on {}/{}", milestone.getTitle(), owner, repo);
|
||||
logger.debug("closing milestone '{}' on {}/{}", milestone.getTitle(), owner, repo);
|
||||
|
||||
api.updateMilestone(CollectionUtils.<String, Object>map()
|
||||
.e("state", "closed"), owner, repo, milestone.getId());
|
||||
}
|
||||
|
||||
GtRepository createRepository(String owner, String repo) {
|
||||
logger.debug("Creating repository {}/{}", owner, repo);
|
||||
logger.debug("creating repository {}/{}", owner, repo);
|
||||
|
||||
Map<String, Object> params = CollectionUtils.<String, Object>map()
|
||||
.e("name", repo)
|
||||
@@ -159,7 +159,7 @@ class Gitea {
|
||||
}
|
||||
|
||||
GtRelease findReleaseByTag(String owner, String repo, String tagName) {
|
||||
logger.debug("Fetching release on {}/{} with tag {}", owner, repo, tagName);
|
||||
logger.debug("fetching release on {}/{} with tag {}", owner, repo, tagName);
|
||||
|
||||
try {
|
||||
return api.getReleaseByTagName(owner, repo, tagName);
|
||||
@@ -173,7 +173,7 @@ class Gitea {
|
||||
}
|
||||
|
||||
void deleteRelease(String owner, String repo, String tagName, Integer id) throws GiteaAPIException {
|
||||
logger.debug("Deleting release {} from {}/{} ({})", tagName, owner, repo, id);
|
||||
logger.debug("deleting release {} from {}/{} ({})", tagName, owner, repo, id);
|
||||
|
||||
try {
|
||||
api.deleteRelease(owner, repo, id);
|
||||
@@ -188,13 +188,13 @@ class Gitea {
|
||||
}
|
||||
|
||||
void deleteTag(String owner, String repo, String tagName) throws GiteaAPIException {
|
||||
logger.debug("Deleting tag {} from {}/{}", tagName, owner, repo);
|
||||
logger.debug("deleting tag {} from {}/{}", tagName, owner, repo);
|
||||
|
||||
api.deleteTag(owner, repo, tagName);
|
||||
}
|
||||
|
||||
GtRelease createRelease(String owner, String repo, GtRelease release) throws GiteaAPIException {
|
||||
logger.debug("Creating release on {}/{} with tag {}", owner, repo, release.getTagName());
|
||||
logger.debug("creating release on {}/{} with tag {}", owner, repo, release.getTagName());
|
||||
|
||||
return api.createRelease(release, owner, repo);
|
||||
}
|
||||
@@ -206,11 +206,11 @@ class Gitea {
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.info(" - Uploading {}", asset.getFileName().toString());
|
||||
logger.info(" - uploading {}", asset.getFileName().toString());
|
||||
try {
|
||||
api.uploadAsset(owner, repo, release.getId(), toFormData(asset));
|
||||
} catch (GiteaAPIException e) {
|
||||
logger.error(" x Failed to upload {}", asset.getFileName());
|
||||
logger.error(" x failed to upload {}", asset.getFileName());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,19 +57,19 @@ public class GiteaReleaser implements Releaser {
|
||||
|
||||
Gitea api = new Gitea(context.getLogger(), gitea.getApiEndpoint(), gitea.getResolvedToken());
|
||||
|
||||
context.getLogger().debug("Looking up release with tag {} at repository {}", tagName, gitea.getCanonicalRepoName());
|
||||
context.getLogger().debug("looking up release with tag {} at repository {}", tagName, gitea.getCanonicalRepoName());
|
||||
GtRelease release = api.findReleaseByTag(gitea.getOwner(), gitea.getName(), tagName);
|
||||
if (null != release) {
|
||||
context.getLogger().debug("Release {} exists", tagName);
|
||||
context.getLogger().debug("release {} exists", tagName);
|
||||
if (gitea.isOverwrite()) {
|
||||
context.getLogger().debug("Deleting release {}", tagName);
|
||||
context.getLogger().debug("deleting release {}", tagName);
|
||||
if (!context.isDryrun()) {
|
||||
api.deleteRelease(gitea.getOwner(), gitea.getName(), tagName, release.getId());
|
||||
}
|
||||
context.getLogger().debug("Creating release {}", tagName);
|
||||
context.getLogger().debug("creating release {}", tagName);
|
||||
createRelease(api, tagName, changelog, context.getModel().getProject().isSnapshot());
|
||||
} else if (gitea.isAllowUploadToExisting()) {
|
||||
context.getLogger().debug("Updating release {}", tagName);
|
||||
context.getLogger().debug("updating release {}", tagName);
|
||||
if (!context.isDryrun()) {
|
||||
api.uploadAssets(gitea.getOwner(), gitea.getName(), release, assets);
|
||||
}
|
||||
@@ -78,8 +78,8 @@ public class GiteaReleaser implements Releaser {
|
||||
tagName + " already exists. overwrite = false; allowUploadToExisting = false");
|
||||
}
|
||||
} else {
|
||||
context.getLogger().debug("Release {} does not exist", tagName);
|
||||
context.getLogger().debug("Creating release {}", tagName);
|
||||
context.getLogger().debug("release {} does not exist", tagName);
|
||||
context.getLogger().debug("creating release {}", tagName);
|
||||
createRelease(api, tagName, changelog, context.getModel().getProject().isSnapshot());
|
||||
}
|
||||
} catch (IOException | IllegalStateException e) {
|
||||
@@ -90,7 +90,7 @@ public class GiteaReleaser implements Releaser {
|
||||
@Override
|
||||
public Repository maybeCreateRepository(String owner, String repo, String password) throws IOException {
|
||||
org.jreleaser.model.Gitea gitea = context.getModel().getRelease().getGitea();
|
||||
context.getLogger().debug("Looking up {}/{}", owner, repo);
|
||||
context.getLogger().debug("looking up {}/{}", owner, repo);
|
||||
|
||||
Gitea api = new Gitea(context.getLogger(), gitea.getApiEndpoint(), password);
|
||||
GtRepository repository = api.findRepository(owner, repo);
|
||||
@@ -115,7 +115,7 @@ public class GiteaReleaser implements Releaser {
|
||||
continue;
|
||||
}
|
||||
|
||||
context.getLogger().debug(" - Uploading asset {}", asset.getFileName().toString());
|
||||
context.getLogger().info(" - uploading {}", asset.getFileName().toString());
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -126,7 +126,7 @@ public class GiteaReleaser implements Releaser {
|
||||
|
||||
// local tag
|
||||
if (deleteTags || !gitea.isSkipTagging()) {
|
||||
context.getLogger().debug("Tagging local repository with {}", tagName);
|
||||
context.getLogger().debug("tagging local repository with {}", tagName);
|
||||
GitSdk.of(context).tag(tagName, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ class Github {
|
||||
}
|
||||
|
||||
GHRepository findRepository(String owner, String repo) throws IOException {
|
||||
logger.debug("Lookup repository {}/{}", owner, repo);
|
||||
logger.debug("lookup repository {}/{}", owner, repo);
|
||||
try {
|
||||
return github.getRepository(owner + "/" + repo);
|
||||
} catch (GHFileNotFoundException e) {
|
||||
@@ -84,7 +84,7 @@ class Github {
|
||||
}
|
||||
|
||||
GHRepository createRepository(String owner, String repo) throws IOException {
|
||||
logger.debug("Creating repository {}/{}", owner, repo);
|
||||
logger.debug("creating repository {}/{}", owner, repo);
|
||||
|
||||
GHOrganization organization = resolveOrganization(owner);
|
||||
if (null != organization) {
|
||||
@@ -97,7 +97,7 @@ class Github {
|
||||
}
|
||||
|
||||
Optional<GHMilestone> findMilestoneByName(String owner, String repo, String milestoneName) throws IOException {
|
||||
logger.debug("Lookup milestone '{}' on {}/{}", milestoneName, owner, repo);
|
||||
logger.debug("lookup milestone '{}' on {}/{}", milestoneName, owner, repo);
|
||||
|
||||
GHRepository repository = findRepository(owner, repo);
|
||||
PagedIterable<GHMilestone> milestones = repository.listMilestones(GHIssueState.OPEN);
|
||||
@@ -107,26 +107,26 @@ class Github {
|
||||
}
|
||||
|
||||
void closeMilestone(String owner, String repo, GHMilestone milestone) throws IOException {
|
||||
logger.debug("Closing milestone '{}' on {}/{}", milestone.getTitle(), owner, repo);
|
||||
logger.debug("closing milestone '{}' on {}/{}", milestone.getTitle(), owner, repo);
|
||||
|
||||
milestone.close();
|
||||
}
|
||||
|
||||
GHRelease findReleaseByTag(String repo, String tagName) throws IOException {
|
||||
logger.debug("Fetching release on {} with tag {}", repo, tagName);
|
||||
logger.debug("fetching release on {} with tag {}", repo, tagName);
|
||||
return github.getRepository(repo)
|
||||
.getReleaseByTagName(tagName);
|
||||
}
|
||||
|
||||
void deleteTag(String repo, String tagName) throws IOException {
|
||||
logger.debug("Deleting tag {} from {}", tagName, repo);
|
||||
logger.debug("deleting tag {} from {}", tagName, repo);
|
||||
github.getRepository(repo)
|
||||
.getRef(REFS_TAGS + tagName)
|
||||
.delete();
|
||||
}
|
||||
|
||||
GHReleaseBuilder createRelease(String repo, String tagName) throws IOException {
|
||||
logger.debug("Creating release on {} with tag {}", repo, tagName);
|
||||
logger.debug("creating release on {} with tag {}", repo, tagName);
|
||||
return github.getRepository(repo)
|
||||
.createRelease(tagName);
|
||||
}
|
||||
@@ -138,10 +138,10 @@ class Github {
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.info(" - Uploading {}", asset.getFileName().toString());
|
||||
logger.info(" - uploading {}", asset.getFileName().toString());
|
||||
GHAsset ghasset = release.uploadAsset(asset.toFile(), MediaType.parse(tika.detect(asset)).toString());
|
||||
if (!"uploaded".equalsIgnoreCase(ghasset.getState())) {
|
||||
logger.warn(" x Failed to upload {}", asset.getFileName());
|
||||
logger.warn(" x failed to upload {}", asset.getFileName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,27 +56,27 @@ public class GithubReleaser implements Releaser {
|
||||
|
||||
Github api = new Github(context.getLogger(), github.getApiEndpoint(), github.getResolvedToken());
|
||||
|
||||
context.getLogger().debug("Looking up release with tag {} at repository {}", tagName, github.getCanonicalRepoName());
|
||||
context.getLogger().debug("looking up release with tag {} at repository {}", tagName, github.getCanonicalRepoName());
|
||||
GHRelease release = api.findReleaseByTag(github.getCanonicalRepoName(), tagName);
|
||||
if (null != release) {
|
||||
context.getLogger().debug("Release {} exists", tagName);
|
||||
context.getLogger().debug("release {} exists", tagName);
|
||||
if (github.isOverwrite()) {
|
||||
context.getLogger().debug("Deleting release {}", tagName);
|
||||
context.getLogger().debug("deleting release {}", tagName);
|
||||
if (!context.isDryrun()) {
|
||||
release.delete();
|
||||
}
|
||||
context.getLogger().debug("Creating release {}", tagName);
|
||||
context.getLogger().debug("creating release {}", tagName);
|
||||
createRelease(api, tagName, changelog, context.getModel().getProject().isSnapshot());
|
||||
} else if (github.isAllowUploadToExisting()) {
|
||||
context.getLogger().debug("Updating release {}", tagName);
|
||||
context.getLogger().debug("updating release {}", tagName);
|
||||
if (!context.isDryrun()) api.uploadAssets(release, assets);
|
||||
} else {
|
||||
throw new IllegalStateException("Github release failed because release " +
|
||||
tagName + " already exists. overwrite = false; allowUploadToExisting = false");
|
||||
}
|
||||
} else {
|
||||
context.getLogger().debug("Release {} does not exist", tagName);
|
||||
context.getLogger().debug("Creating release {}", tagName);
|
||||
context.getLogger().debug("release {} does not exist", tagName);
|
||||
context.getLogger().debug("creating release {}", tagName);
|
||||
createRelease(api, tagName, changelog, context.getModel().getProject().isSnapshot());
|
||||
}
|
||||
} catch (IOException | IllegalStateException e) {
|
||||
@@ -87,7 +87,7 @@ public class GithubReleaser implements Releaser {
|
||||
@Override
|
||||
public Repository maybeCreateRepository(String owner, String repo, String password) throws IOException {
|
||||
org.jreleaser.model.Github github = context.getModel().getRelease().getGithub();
|
||||
context.getLogger().debug("Looking up {}/{}", owner, repo);
|
||||
context.getLogger().debug("looking up {}/{}", owner, repo);
|
||||
|
||||
Github api = new Github(context.getLogger(), github.getApiEndpoint(), password);
|
||||
GHRepository repository = api.findRepository(owner, repo);
|
||||
@@ -112,7 +112,7 @@ public class GithubReleaser implements Releaser {
|
||||
continue;
|
||||
}
|
||||
|
||||
context.getLogger().debug(" - Uploading asset {}", asset.getFileName().toString());
|
||||
context.getLogger().info(" - uploading {}", asset.getFileName().toString());
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -123,7 +123,7 @@ public class GithubReleaser implements Releaser {
|
||||
|
||||
// local tag
|
||||
if (deleteTags || !github.isSkipTagging()) {
|
||||
context.getLogger().debug("Tagging local repository with {}", tagName);
|
||||
context.getLogger().debug("tagging local repository with {}", tagName);
|
||||
GitSdk.of(context).tag(tagName, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ class Gitlab {
|
||||
Project findProject(String projectName) throws GitlabAPIException {
|
||||
User u = getCurrentUser();
|
||||
|
||||
logger.debug("Fetching project {} for user {} ({})", projectName, u.getUsername(), u.getId());
|
||||
logger.debug("fetching project {} for user {} ({})", projectName, u.getUsername(), u.getId());
|
||||
List<Project> projects = api.getProject(u.getId(), CollectionUtils.<String, Object>map()
|
||||
.e("search", projectName));
|
||||
|
||||
@@ -117,7 +117,7 @@ class Gitlab {
|
||||
}
|
||||
|
||||
Optional<Milestone> findMilestoneByName(String owner, String repo, String milestoneName) throws IOException {
|
||||
logger.debug("Lookup milestone '{}' on {}/{}", milestoneName, owner, repo);
|
||||
logger.debug("Llookup milestone '{}' on {}/{}", milestoneName, owner, repo);
|
||||
|
||||
Project project = getProject(repo);
|
||||
|
||||
@@ -141,7 +141,7 @@ class Gitlab {
|
||||
}
|
||||
|
||||
void closeMilestone(String owner, String repo, Milestone milestone) throws IOException {
|
||||
logger.debug("Closing milestone '{}' on {}/{}", milestone.getTitle(), owner, repo);
|
||||
logger.debug("closing milestone '{}' on {}/{}", milestone.getTitle(), owner, repo);
|
||||
|
||||
Project project = getProject(repo);
|
||||
|
||||
@@ -151,14 +151,14 @@ class Gitlab {
|
||||
}
|
||||
|
||||
Project createProject(String owner, String repo) throws IOException {
|
||||
logger.debug("Creating project {}/{}", owner, repo);
|
||||
logger.debug("creating project {}/{}", owner, repo);
|
||||
|
||||
return api.createProject(repo, "public");
|
||||
}
|
||||
|
||||
User getCurrentUser() throws GitlabAPIException {
|
||||
if (null == user) {
|
||||
logger.debug("Fetching current user");
|
||||
logger.debug("fetching current user");
|
||||
user = api.getCurrentUser();
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ class Gitlab {
|
||||
User u = getCurrentUser();
|
||||
|
||||
if (null == project) {
|
||||
logger.debug("Fetching project {} for user {} ({})", projectName, u.getUsername(), u.getId());
|
||||
logger.debug("fetching project {} for user {} ({})", projectName, u.getUsername(), u.getId());
|
||||
List<Project> projects = api.getProject(u.getId(), CollectionUtils.<String, Object>map()
|
||||
.e("search", projectName));
|
||||
|
||||
@@ -184,7 +184,7 @@ class Gitlab {
|
||||
}
|
||||
|
||||
Release findReleaseByTag(String owner, String repoName, String tagName) throws GitlabAPIException {
|
||||
logger.debug("Fetching release on {}/{} with tag {}", owner, repoName, tagName);
|
||||
logger.debug("fetching release on {}/{} with tag {}", owner, repoName, tagName);
|
||||
|
||||
Project project = getProject(repoName);
|
||||
|
||||
@@ -200,7 +200,7 @@ class Gitlab {
|
||||
}
|
||||
|
||||
void deleteTag(String owner, String repoName, String tagName) throws GitlabAPIException {
|
||||
logger.debug("Deleting tag {} from {}/{}", tagName, owner, repoName);
|
||||
logger.debug("deleting tag {} from {}/{}", tagName, owner, repoName);
|
||||
|
||||
Project project = getProject(repoName);
|
||||
|
||||
@@ -208,7 +208,7 @@ class Gitlab {
|
||||
}
|
||||
|
||||
void deleteRelease(String owner, String repoName, String tagName) throws GitlabAPIException {
|
||||
logger.debug("Deleting release {} from {}/{}", tagName, owner, repoName);
|
||||
logger.debug("deleting release {} from {}/{}", tagName, owner, repoName);
|
||||
|
||||
Project project = getProject(repoName);
|
||||
|
||||
@@ -216,7 +216,7 @@ class Gitlab {
|
||||
}
|
||||
|
||||
void createRelease(String owner, String repoName, Release release) throws GitlabAPIException {
|
||||
logger.debug("Creating release on {}/{} with tag {}", owner, repoName, release.getTagName());
|
||||
logger.debug("creating release on {}/{} with tag {}", owner, repoName, release.getTagName());
|
||||
|
||||
Project project = getProject(repoName);
|
||||
|
||||
@@ -224,7 +224,7 @@ class Gitlab {
|
||||
}
|
||||
|
||||
List<FileUpload> uploadAssets(String owner, String repoName, List<Path> assets) throws IOException, GitlabAPIException {
|
||||
logger.debug("Uploading assets to {}/{}", owner, repoName);
|
||||
logger.debug("uploading assets to {}/{}", owner, repoName);
|
||||
|
||||
List<FileUpload> uploads = new ArrayList<>();
|
||||
|
||||
@@ -236,7 +236,7 @@ class Gitlab {
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.info(" - Uploading {}", asset.getFileName().toString());
|
||||
logger.info(" - uploading {}", asset.getFileName().toString());
|
||||
try {
|
||||
FileUpload upload = api.uploadFile(project.getId(), toFormData(asset));
|
||||
upload.setName(asset.getFileName().toString());
|
||||
@@ -251,16 +251,16 @@ class Gitlab {
|
||||
}
|
||||
|
||||
void linkAssets(String owner, String repoName, Release release, List<FileUpload> uploads) throws IOException, GitlabAPIException {
|
||||
logger.debug("Linking assets to {}/{} with tag {}", owner, repoName, release.getTagName());
|
||||
logger.debug("linking assets to {}/{} with tag {}", owner, repoName, release.getTagName());
|
||||
|
||||
Project project = getProject(repoName);
|
||||
|
||||
for (FileUpload upload : uploads) {
|
||||
logger.debug(" - Linking {}", upload.getName());
|
||||
logger.debug(" - linking {}", upload.getName());
|
||||
try {
|
||||
api.linkAsset(upload.toLinkRequest(apiHost), project.getId(), release.getTagName());
|
||||
} catch (GitlabAPIException e) {
|
||||
logger.error(" x Failed to link {}", upload.getName());
|
||||
logger.error(" x failed to link {}", upload.getName());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,19 +58,19 @@ public class GitlabReleaser implements Releaser {
|
||||
|
||||
Gitlab api = new Gitlab(context.getLogger(), gitlab.getApiEndpoint(), gitlab.getResolvedToken());
|
||||
|
||||
context.getLogger().debug("Looking up release with tag {} at repository {}", tagName, gitlab.getCanonicalRepoName());
|
||||
context.getLogger().debug("looking up release with tag {} at repository {}", tagName, gitlab.getCanonicalRepoName());
|
||||
Release release = api.findReleaseByTag(gitlab.getOwner(), gitlab.getName(), tagName);
|
||||
if (null != release) {
|
||||
context.getLogger().debug("Release {} exists", tagName);
|
||||
context.getLogger().debug("release {} exists", tagName);
|
||||
if (gitlab.isOverwrite()) {
|
||||
context.getLogger().debug("Deleting release {}", tagName);
|
||||
context.getLogger().debug("deleting release {}", tagName);
|
||||
if (!context.isDryrun()) {
|
||||
api.deleteRelease(gitlab.getOwner(), gitlab.getName(), tagName);
|
||||
}
|
||||
context.getLogger().debug("Creating release {}", tagName);
|
||||
context.getLogger().debug("creating release {}", tagName);
|
||||
createRelease(api, tagName, changelog, context.getModel().getProject().isSnapshot());
|
||||
} else if (gitlab.isAllowUploadToExisting()) {
|
||||
context.getLogger().debug("Updating release {}", tagName);
|
||||
context.getLogger().debug("updating release {}", tagName);
|
||||
if (!context.isDryrun()) {
|
||||
List<FileUpload> uploads = api.uploadAssets(gitlab.getOwner(), gitlab.getName(), assets);
|
||||
api.linkAssets(gitlab.getOwner(), gitlab.getName(), release, uploads);
|
||||
@@ -80,8 +80,8 @@ public class GitlabReleaser implements Releaser {
|
||||
tagName + " already exists. overwrite = false; allowUploadToExisting = false");
|
||||
}
|
||||
} else {
|
||||
context.getLogger().debug("Release {} does not exist", tagName);
|
||||
context.getLogger().debug("Creating release {}", tagName);
|
||||
context.getLogger().debug("release {} does not exist", tagName);
|
||||
context.getLogger().debug("creating release {}", tagName);
|
||||
createRelease(api, tagName, changelog, context.getModel().getProject().isSnapshot());
|
||||
}
|
||||
} catch (IOException | IllegalStateException e) {
|
||||
@@ -92,7 +92,7 @@ public class GitlabReleaser implements Releaser {
|
||||
@Override
|
||||
public Repository maybeCreateRepository(String owner, String repo, String password) throws IOException {
|
||||
org.jreleaser.model.Gitlab gitlab = context.getModel().getRelease().getGitlab();
|
||||
context.getLogger().debug("Looking up {}/{}", owner, repo);
|
||||
context.getLogger().debug("looking up {}/{}", owner, repo);
|
||||
|
||||
Gitlab api = new Gitlab(context.getLogger(), gitlab.getApiEndpoint(), password);
|
||||
Project project = null;
|
||||
@@ -126,7 +126,7 @@ public class GitlabReleaser implements Releaser {
|
||||
continue;
|
||||
}
|
||||
|
||||
context.getLogger().debug(" - Uploading asset {}", asset.getFileName().toString());
|
||||
context.getLogger().info(" - uploading {}", asset.getFileName().toString());
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -137,7 +137,7 @@ public class GitlabReleaser implements Releaser {
|
||||
|
||||
// local tag
|
||||
if (deleteTags || !gitlab.isSkipTagging()) {
|
||||
context.getLogger().debug("Tagging local repository with {}", tagName);
|
||||
context.getLogger().debug("tagging local repository with {}", tagName);
|
||||
GitSdk.of(context).tag(tagName, true);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user