Add flag to fail publishing if version conflict in NPM

This commit is contained in:
jmlaplante
2018-11-30 10:13:10 +00:00
parent dee44e8263
commit 46bfdccab9
2 changed files with 28 additions and 18 deletions
+15 -9
View File
@@ -54,6 +54,11 @@ func main() {
Usage: "skip SSL verification",
EnvVar: "PLUGIN_SKIP_VERIFY",
},
cli.BoolFlag{
Name: "fail_if_conflict",
Usage: "fail NPM publish if version already exists",
EnvVar: "PLUGIN_FAIL_IF_CONFLICT",
},
cli.StringFlag{
Name: "env-file",
Usage: "source env file",
@@ -82,15 +87,16 @@ func run(c *cli.Context) error {
plugin := Plugin{
Config: Config{
Username: c.String("username"),
Password: c.String("password"),
Token: c.String("token"),
Email: c.String("email"),
Registry: c.String("registry"),
Folder: c.String("folder"),
SkipVerify: c.Bool("skip_verify"),
Tag: c.String("tag"),
Access: c.String("access"),
Username: c.String("username"),
Password: c.String("password"),
Token: c.String("token"),
Email: c.String("email"),
Registry: c.String("registry"),
Folder: c.String("folder"),
SkipVerify: c.Bool("skip_verify"),
FailIfConflict: c.Bool("fail_if_conflict"),
Tag: c.String("tag"),
Access: c.String("access"),
},
}
+13 -9
View File
@@ -19,15 +19,16 @@ import (
type (
// Config for the plugin.
Config struct {
Username string
Password string
Token string
Email string
Registry string
Folder string
SkipVerify bool
Tag string
Access string
Username string
Password string
Token string
Email string
Registry string
Folder string
SkipVerify bool
FailIfConflict bool
Tag string
Access string
}
npmPackage struct {
@@ -252,6 +253,9 @@ func shouldPublishPackage(config Config, npm *npmPackage) (bool, error) {
if strings.Compare(npm.Version, value) == 0 {
log.Info("Version found in the registry")
if config.FailIfConflict {
return false, errors.New("Cannot publish package due to version conflict")
}
return false, nil
}
}