You've already forked go-semantic-release
chore(config): add providers default domains, git providers can now specify a custom provider url for supported providers, add releaseTitle in config
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
commitFormat: angular
|
commitFormat: angular
|
||||||
|
title: "testr release"
|
||||||
branch:
|
branch:
|
||||||
master: release
|
master: release
|
||||||
rc: rc
|
rc: rc
|
||||||
@@ -13,6 +14,7 @@ assets:
|
|||||||
- name:
|
- name:
|
||||||
compress:
|
compress:
|
||||||
provider:
|
provider:
|
||||||
name: ""
|
name: "GitHub"
|
||||||
url: ""
|
repo: ""
|
||||||
user: ""
|
user: ""
|
||||||
|
customURL: ""
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// List of all supported git providers
|
// List of all supported git providers
|
||||||
var gitPorviders = map[string]string{"GitHub": "", "GitLab": ""}
|
var gitProviders = map[string]string{"GitHub": "https://github.com/", "GitLab": "https://gitlab.com/"}
|
||||||
|
|
||||||
// ChangelogConfig struct
|
// ChangelogConfig struct
|
||||||
type ChangelogConfig struct {
|
type ChangelogConfig struct {
|
||||||
@@ -24,8 +24,9 @@ type ChangelogConfig struct {
|
|||||||
// GitProvider struct
|
// GitProvider struct
|
||||||
type GitProvider struct {
|
type GitProvider struct {
|
||||||
Name string `yaml:"name"`
|
Name string `yaml:"name"`
|
||||||
URL string `yaml:"url"`
|
Repo string `yaml:"repo"`
|
||||||
User string `yaml:"user"`
|
User string `yaml:"user"`
|
||||||
|
customProviderURL string `yaml:"customURL"`
|
||||||
AccessToken string
|
AccessToken string
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,6 +44,7 @@ type ReleaseConfig struct {
|
|||||||
Release string `yaml:"release,omitempty"`
|
Release string `yaml:"release,omitempty"`
|
||||||
GitProvider GitProvider `yaml:"provider,omitempty"`
|
GitProvider GitProvider `yaml:"provider,omitempty"`
|
||||||
Assets []Asset `yaml:"assets"`
|
Assets []Asset `yaml:"assets"`
|
||||||
|
ReleaseTitle string `yaml:"title"`
|
||||||
IsPreRelease, IsDraft bool
|
IsPreRelease, IsDraft bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,14 +73,14 @@ func Read(configPath string) (*ReleaseConfig, error) {
|
|||||||
|
|
||||||
func checkProvider(config ReleaseConfig) (ReleaseConfig, error) {
|
func checkProvider(config ReleaseConfig) (ReleaseConfig, error) {
|
||||||
if config.GitProvider != (GitProvider{}) {
|
if config.GitProvider != (GitProvider{}) {
|
||||||
if _, ok := gitPorviders[config.GitProvider.Name]; !ok {
|
if _, ok := gitProviders[config.GitProvider.Name]; !ok {
|
||||||
return ReleaseConfig{}, fmt.Errorf("config: provider: configured provider %s is not supported", config.GitProvider.Name)
|
return ReleaseConfig{}, fmt.Errorf("config: provider: configured provider %s is not supported", config.GitProvider.Name)
|
||||||
}
|
}
|
||||||
envName := fmt.Sprintf("%s_ACCESS_TOKEN", strings.ToUpper(config.GitProvider.Name))
|
envName := fmt.Sprintf("%s_ACCESS_TOKEN", strings.ToUpper(config.GitProvider.Name))
|
||||||
|
|
||||||
token, isSet := os.LookupEnv(envName)
|
token, isSet := os.LookupEnv(envName)
|
||||||
if !isSet {
|
if !isSet {
|
||||||
return ReleaseConfig{}, fmt.Errorf("config: Can not find environment variable %s", token)
|
return ReleaseConfig{}, fmt.Errorf("config: Can not find environment variable %s", envName)
|
||||||
}
|
}
|
||||||
config.GitProvider.AccessToken = token
|
config.GitProvider.AccessToken = token
|
||||||
} else {
|
} else {
|
||||||
@@ -86,3 +88,12 @@ func checkProvider(config ReleaseConfig) (ReleaseConfig, error) {
|
|||||||
}
|
}
|
||||||
return config, nil
|
return config, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetRepositoryURL returns the repo FQDN
|
||||||
|
func (c *ReleaseConfig) GetRepositoryURL() string {
|
||||||
|
if c.GitProvider.customProviderURL == "" {
|
||||||
|
return fmt.Sprintf("%s/%s/%s/", c.GitProvider.customProviderURL, c.GitProvider.User, c.GitProvider.Repo)
|
||||||
|
} else {
|
||||||
|
return fmt.Sprintf("%s/%s/%s/", gitProviders[c.GitProvider.Name], c.GitProvider.User, c.GitProvider.Repo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user