Merge pull request #44 from jeanml/master

Add flag to fail publishing if version conflict in NPM
This commit is contained in:
Thomas Boerger
2018-12-06 08:05:17 +01:00
committed by GitHub
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_on_version_conflict",
Usage: "fail NPM publish if version already exists in NPM registry",
EnvVar: "PLUGIN_FAIL_ON_VERSION_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"),
FailOnVersionConflict: c.Bool("fail_on_version_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
FailOnVersionConflict 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.FailOnVersionConflict {
return false, errors.New("Cannot publish package due to version conflict")
}
return false, nil
}
}