From 4edb98ffcad349d045e94f3d071c704df40777aa Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Wed, 18 Jul 2018 07:35:41 -0400 Subject: [PATCH 01/90] 1.0.23 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4ff672a..9485051 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.22", + "version": "1.0.23", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 1c515dd..bd7b1a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.22", + "version": "1.0.23", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From b442de3b1af39d808009896a282e446b69e2505b Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Wed, 18 Jul 2018 07:37:28 -0400 Subject: [PATCH 02/90] update(main): New version --- cmd/cmd-packr.go | 2 +- package/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/cmd-packr.go b/cmd/cmd-packr.go index fc644bd..0fa63b5 100644 --- a/cmd/cmd-packr.go +++ b/cmd/cmd-packr.go @@ -7,7 +7,7 @@ import "github.com/gobuffalo/packr" // You can use the "packr clean" command to clean up this, // and any other packr generated files. func init() { - packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRTY/UMAyG7/0VVs87yQ435ggIicNyQEjcWHlTT2uUxJXjDtqt+t9R+qFZiaOfvnXePJkbgDZjovYCbS+nkK7tQ2U30sKSKz67R/fhvOGOSlAebf/0+ekrcAHMMBlHtlcwgWKYO1R+IwiSEhskKgV7KiAZRtE/FKxs+7Ztpb1AbQLQjlKMczGMca+UxwQHedhDSlP+P3VnDcCy7sfJBtGa+SGdci/wHW+oKtvxkQPlsl7+6dvPjfXyiTPq673T4eeQUxugDRU55184H3TStc5gNpaL9z3bML24IMn/wphQ7Qv3bBj95uW0ezldRROakXqlSFio+E7+5ijY+ds872+xLD6k6/O7+Xmex4hWf18H1DAsizNU17/dJXQ0Uu4oB6Z3pjdpte/vR3d2H9d8szT/AgAA///Yz22HEwIAAA==\"") + packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRPW/cMAyGd/8KwnNOStqpN7ZFgQ7pUBTo1oCReTYLSTQo+orE8H8v5A9cgIx8/Jp69WhuANqMidoztL2cQrq0d5VdSQtLrvjB3bsPHzfcUQnKo+2fvjx+Ay6AGSbjyPYCJlAMc4fKrwRBUmKDRKVgTwUkwyj6l4KVbd+2rbRnqE0A2lGKcS6GMe6V8pjgIHd7SGnK71M31gAs636cbBCtmZ/SKfcCP/CKqrIdHzlQLuvlH7//2lgvnzmjvtw6HX4OObUB2lCRc/6Z80EnXesMZmM5e9+zDdOzC5L8b4wJ1b5yz4bRb15Ou5fTRTShGalXioSFiu/kX46Cnb/O8/4Wy+JDujy9mZ/meYxo9fd1QA3DsjhDdf3rTUJHI+WOcmB6Y3qTVvv+uXcP7tOab5bmfwAAAP//4Yhd5BMCAAA=\"") packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/2ySzY6jMBCE73mKkk+JtPsCvjmJtbtaEtBARpojwg1B8k8Um5mJEO8+4ifKDzmiqv66mnLyFu+SjC+A3/gvPzjY5q/Y/5FsAQCRWMuIg6WkqQgIR0K4nAiuRHHMbUV89MVJ9i/ep3z46FHvIjpIDlZSHpozsUkAtjLdcDABS194Uu/G6u8XI+umwp1yszcnlYcXSyxGBYVTNCXG0rjP2lZwZ/iTrsMgruZQ5Qo/Q25d0RiyIQ+1s3BWXyasnwN8uOh5qNTkWl+Hhh/ZZ3vw3hCBfJifpdSv6zHufD2xtw4sdtflLt4eoqcuRVlSEUjBONXoR7tMU/Hc/cYZUwcY8j6viC0yuUsikfXx2nZ8LF23bNtxV9etONp2InUd+wkAAP//N7x2BGECAAA=\"") packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/2ySUY+iMBSF3/0VJ33SZP0Dfava7LqiEstuMo8NVCQDraGXmTGE/z4BcUTxEc65372n94aH/TaM+ASYYyPfONjf9UHMI6E2bAIAgVjIoP2dlRqk/TvWKzawL/+I3W/56FUmNzGBTgZ0ORu4I+KTtqnhV98+jNb7neLdR4v6L4J/koMdjaaqNKwXgJVUSw4mYM0nntRBWfb1omRRpRgod3t1TjS9aGJxVRC7xPQTY1q4j8ymcCX8Oc+oE2djaOJiP0KuXFwVxpKmzFk4m196rB8DPF3y8VCq0Hl+K+oesp3twXtHkPE0jpUkv25hXHmL2Fo71nCXW6mUeF7m0hVFRiiM9zo1bBLJbRiIqO1X1z/H0jSY1vX1GJpmxlHXPa1p2HcAAAD//3U0nrtlAgAA\"") packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/2ySzY6jMBCE73mKkk+JtPsCvjmJtbtaEtBARpojwg1B8k8Um5mJEO8+4ifKDzmiqv66mnLyFu+SjC+A3/gvPzjY5q/Y/5FsAQCRWMuIg6WkqQgIR0K4nAiuRHHMbUV89MVJ9i/ep3z46FHvIjpIDlZSHpozsUkAtjLdcDABS194Uu/G6u8XI+umwp1yszcnlYcXSyxGBYVTNCXG0rjP2lZwZ/iTrsMgruZQ5Qo/Q25d0RiyIQ+1s3BWXyasnwN8uOh5qNTkWl+Hhh/ZZ3vw3hCBfJifpdSv6zHufD2xtw4sdtflLt4eoqcuRVlSEUjBONXoR7tMU/Hc/cYZUwcY8j6viC0yuUsikfXx2nZ8LF23bNtxV9etONp2InUd+wkAAP//N7x2BGECAAA=\"") diff --git a/package/package.json b/package/package.json index 233533a..bd7b1a8 100644 --- a/package/package.json +++ b/package/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.21", + "version": "1.0.23", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 32dc8b6b98396109c2b0f73c830892c4c0d4205a Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Wed, 18 Jul 2018 07:37:36 -0400 Subject: [PATCH 03/90] 1.0.24 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9485051..b885733 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.23", + "version": "1.0.24", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bd7b1a8..a29728c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.23", + "version": "1.0.24", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 9b4b34281d96cf477e43dec9d0f6a9f45b316965 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Mon, 20 Aug 2018 09:42:10 -0300 Subject: [PATCH 04/90] update(utils): Improve working tree reading --- cmd/utils.go | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/cmd/utils.go b/cmd/utils.go index 1fedb63..c082a7d 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -36,6 +36,8 @@ import ( gitconfig "walmart.com/cfm/src/github.com/tcnksm/go-gitconfig" ) +var w *git.Worktree + func checkErr(err error) { if err != nil { color.Set(color.FgMagenta) @@ -106,17 +108,6 @@ func promptList() { } func commit(message string) (err error) { - directory, err := os.Getwd() - checkErr(err) - - // Opens an already existent repository. - r, err := git.PlainOpen(directory) - checkErr(err) - - w, err := r.Worktree() - checkErr(err) - fmt.Println(Gray("Checking working tree...")) - s, err := w.Status() checkErr(err) @@ -149,3 +140,18 @@ func commit(message string) (err error) { return } + +func init() { + directory, err := os.Getwd() + checkErr(err) + + // Opens an already existent repository. + r, err := git.PlainOpen(directory) + checkErr(err) + + go (func() { + w, err = r.Worktree() + checkErr(err) + _ = w + })() +} From 49848056f8e10e8b41043d4a2751543124b80990 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Mon, 20 Aug 2018 09:42:55 -0300 Subject: [PATCH 05/90] update(main): New version --- cmd/cmd-packr.go | 2 +- package/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/cmd-packr.go b/cmd/cmd-packr.go index 0fa63b5..600d628 100644 --- a/cmd/cmd-packr.go +++ b/cmd/cmd-packr.go @@ -7,7 +7,7 @@ import "github.com/gobuffalo/packr" // You can use the "packr clean" command to clean up this, // and any other packr generated files. func init() { - packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRPW/cMAyGd/8KwnNOStqpN7ZFgQ7pUBTo1oCReTYLSTQo+orE8H8v5A9cgIx8/Jp69WhuANqMidoztL2cQrq0d5VdSQtLrvjB3bsPHzfcUQnKo+2fvjx+Ay6AGSbjyPYCJlAMc4fKrwRBUmKDRKVgTwUkwyj6l4KVbd+2rbRnqE0A2lGKcS6GMe6V8pjgIHd7SGnK71M31gAs636cbBCtmZ/SKfcCP/CKqrIdHzlQLuvlH7//2lgvnzmjvtw6HX4OObUB2lCRc/6Z80EnXesMZmM5e9+zDdOzC5L8b4wJ1b5yz4bRb15Ou5fTRTShGalXioSFiu/kX46Cnb/O8/4Wy+JDujy9mZ/meYxo9fd1QA3DsjhDdf3rTUJHI+WOcmB6Y3qTVvv+uXcP7tOab5bmfwAAAP//4Yhd5BMCAAA=\"") + packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRTWvcMBCG7/4Vg89ZKSm9dI9tKfSQHkqht4aJPGtPkTRmNN6SGP/3In+wgRzn8evRq0dzA9BmTNSeoe3lFNKlvavsSlpYcsUP7t59+LjhjkpQHm3/9OXxG3ABzDAZR7YXMIFimDtUfiUIkhIbJCoFeyogGUbRvxSsbPu2baU9Q20C0I5SjHMxjHGvlMcEB7nbQ0pTfp+6sQZgWffjZINozfyUTrkX+IFXVJXt+MiBclkv//j918Z6+cwZ9eXW6fBzyKkN0IaKnPPPnA866VpnMBvL2fuebZieXZDkf2NMqPaVezaMfvNy2r2cLqIJzUi9UiQsVHwn/3IU7Px1nve3WBYf0uXpzfw0z2NEq7+vA2oYlsUZqutfbxI6Gil3lAPTG9ObtNr3z717cJ/WfLM0/wMAAP//FuEtnRMCAAA=\"") packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/2ySzY6jMBCE73mKkk+JtPsCvjmJtbtaEtBARpojwg1B8k8Um5mJEO8+4ifKDzmiqv66mnLyFu+SjC+A3/gvPzjY5q/Y/5FsAQCRWMuIg6WkqQgIR0K4nAiuRHHMbUV89MVJ9i/ep3z46FHvIjpIDlZSHpozsUkAtjLdcDABS194Uu/G6u8XI+umwp1yszcnlYcXSyxGBYVTNCXG0rjP2lZwZ/iTrsMgruZQ5Qo/Q25d0RiyIQ+1s3BWXyasnwN8uOh5qNTkWl+Hhh/ZZ3vw3hCBfJifpdSv6zHufD2xtw4sdtflLt4eoqcuRVlSEUjBONXoR7tMU/Hc/cYZUwcY8j6viC0yuUsikfXx2nZ8LF23bNtxV9etONp2InUd+wkAAP//N7x2BGECAAA=\"") packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/2ySUY+iMBSF3/0VJ33SZP0Dfava7LqiEstuMo8NVCQDraGXmTGE/z4BcUTxEc65372n94aH/TaM+ASYYyPfONjf9UHMI6E2bAIAgVjIoP2dlRqk/TvWKzawL/+I3W/56FUmNzGBTgZ0ORu4I+KTtqnhV98+jNb7neLdR4v6L4J/koMdjaaqNKwXgJVUSw4mYM0nntRBWfb1omRRpRgod3t1TjS9aGJxVRC7xPQTY1q4j8ymcCX8Oc+oE2djaOJiP0KuXFwVxpKmzFk4m196rB8DPF3y8VCq0Hl+K+oesp3twXtHkPE0jpUkv25hXHmL2Fo71nCXW6mUeF7m0hVFRiiM9zo1bBLJbRiIqO1X1z/H0jSY1vX1GJpmxlHXPa1p2HcAAAD//3U0nrtlAgAA\"") packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/2ySzY6jMBCE73mKkk+JtPsCvjmJtbtaEtBARpojwg1B8k8Um5mJEO8+4ifKDzmiqv66mnLyFu+SjC+A3/gvPzjY5q/Y/5FsAQCRWMuIg6WkqQgIR0K4nAiuRHHMbUV89MVJ9i/ep3z46FHvIjpIDlZSHpozsUkAtjLdcDABS194Uu/G6u8XI+umwp1yszcnlYcXSyxGBYVTNCXG0rjP2lZwZ/iTrsMgruZQ5Qo/Q25d0RiyIQ+1s3BWXyasnwN8uOh5qNTkWl+Hhh/ZZ3vw3hCBfJifpdSv6zHufD2xtw4sdtflLt4eoqcuRVlSEUjBONXoR7tMU/Hc/cYZUwcY8j6viC0yuUsikfXx2nZ8LF23bNtxV9etONp2InUd+wkAAP//N7x2BGECAAA=\"") diff --git a/package/package.json b/package/package.json index bd7b1a8..a29728c 100644 --- a/package/package.json +++ b/package/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.23", + "version": "1.0.24", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 70ce0560e19f48953043632060fc9e8b1bb97286 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Mon, 20 Aug 2018 09:43:21 -0300 Subject: [PATCH 06/90] 1.0.25 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b885733..dddc8b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.24", + "version": "1.0.25", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index a29728c..92dca8a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.24", + "version": "1.0.25", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 73008d75f1507da35bc8855b18f9d3171fd9d13e Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Mon, 20 Aug 2018 09:59:32 -0300 Subject: [PATCH 07/90] update(utils): Charsh faster if stage is empty --- cmd/utils.go | 58 ++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/cmd/utils.go b/cmd/utils.go index c082a7d..544c22e 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -37,6 +37,7 @@ import ( ) var w *git.Worktree +var hasStagingFiles bool func checkErr(err error) { if err != nil { @@ -108,35 +109,21 @@ func promptList() { } func commit(message string) (err error) { - s, err := w.Status() + username, err := gitconfig.Username() + email, err := gitconfig.Email() + fmt.Println(Gray("Changes added, Preparing commit...")) + + _, err = w.Commit(message, &git.CommitOptions{ + Author: &object.Signature{ + Name: username, + Email: email, + When: time.Now(), + }, + }) checkErr(err) - - hasStagingFiles := false - for _, status := range s { - if status.Staging != 32 && status.Staging != 63 { - hasStagingFiles = true - } - } - - if hasStagingFiles { - username, err := gitconfig.Username() - email, err := gitconfig.Email() - fmt.Println(Gray("Changes added, Preparing commit...")) - - _, err = w.Commit(message, &git.CommitOptions{ - Author: &object.Signature{ - Name: username, - Email: email, - When: time.Now(), - }, - }) - checkErr(err) - lastCommit := "Last commit: " + message - fmt.Println(Gray(lastCommit)) - fmt.Println(Green("Done")) - } else { - checkErr(errors.New("No changes added to commit")) - } + lastCommit := "Last commit: " + message + fmt.Println(Gray(lastCommit)) + fmt.Println(Green("Done")) return } @@ -152,6 +139,19 @@ func init() { go (func() { w, err = r.Worktree() checkErr(err) - _ = w + + s, err := w.Status() + checkErr(err) + + hasStagingFiles = false + for _, status := range s { + if status.Staging != 32 && status.Staging != 63 { + hasStagingFiles = true + } + } + + if !hasStagingFiles { + checkErr(errors.New("No changes added to commit")) + } })() } From 3132b0159bd2bac6792b670349b2ad18fad24ecd Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Mon, 20 Aug 2018 10:00:23 -0300 Subject: [PATCH 08/90] update(main): New version --- cmd/cmd-packr.go | 2 +- package/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/cmd-packr.go b/cmd/cmd-packr.go index 600d628..585f6e0 100644 --- a/cmd/cmd-packr.go +++ b/cmd/cmd-packr.go @@ -7,7 +7,7 @@ import "github.com/gobuffalo/packr" // You can use the "packr clean" command to clean up this, // and any other packr generated files. func init() { - packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRTWvcMBCG7/4Vg89ZKSm9dI9tKfSQHkqht4aJPGtPkTRmNN6SGP/3In+wgRzn8evRq0dzA9BmTNSeoe3lFNKlvavsSlpYcsUP7t59+LjhjkpQHm3/9OXxG3ABzDAZR7YXMIFimDtUfiUIkhIbJCoFeyogGUbRvxSsbPu2baU9Q20C0I5SjHMxjHGvlMcEB7nbQ0pTfp+6sQZgWffjZINozfyUTrkX+IFXVJXt+MiBclkv//j918Z6+cwZ9eXW6fBzyKkN0IaKnPPPnA866VpnMBvL2fuebZieXZDkf2NMqPaVezaMfvNy2r2cLqIJzUi9UiQsVHwn/3IU7Px1nve3WBYf0uXpzfw0z2NEq7+vA2oYlsUZqutfbxI6Gil3lAPTG9ObtNr3z717cJ/WfLM0/wMAAP//FuEtnRMCAAA=\"") + packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRTWvcMBCG7/4Vg89ZKSn00D22pdBDeiiF3hom8qw9RdKY0XhLYvzfi/zBBnKcx69Hrx7NDUCbMVF7hraXU0iX9q6yK2lhyRU/uHv34eOGOypBebT905fHb8AFMMNkHNlewASKYe5Q+ZUgSEpskKgU7KmAZBhF/1Kwsu3btpX2DLUJQDtKMc7FMMa9Uh4THORuDylN+X3qxhqAZd2Pkw2iNfNTOuVe4AdeUVW24yMHymW9/OP3Xxvr5TNn1Jdbp8PPIac2QBsqcs4/cz7opGudwWwsZ+97tmF6dkGS/40xodpX7tkw+s3LafdyuogmNCP1SpGwUPGd/MtRsPPXed7fYll8SJenN/PTPI8Rrf6+DqhhWBZnqK5/vUnoaKTcUQ5Mb0xv0mrfP/fuwX1a883S/A8AAP//qkENQRMCAAA=\"") packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/2ySzY6jMBCE73mKkk+JtPsCvjmJtbtaEtBARpojwg1B8k8Um5mJEO8+4ifKDzmiqv66mnLyFu+SjC+A3/gvPzjY5q/Y/5FsAQCRWMuIg6WkqQgIR0K4nAiuRHHMbUV89MVJ9i/ep3z46FHvIjpIDlZSHpozsUkAtjLdcDABS194Uu/G6u8XI+umwp1yszcnlYcXSyxGBYVTNCXG0rjP2lZwZ/iTrsMgruZQ5Qo/Q25d0RiyIQ+1s3BWXyasnwN8uOh5qNTkWl+Hhh/ZZ3vw3hCBfJifpdSv6zHufD2xtw4sdtflLt4eoqcuRVlSEUjBONXoR7tMU/Hc/cYZUwcY8j6viC0yuUsikfXx2nZ8LF23bNtxV9etONp2InUd+wkAAP//N7x2BGECAAA=\"") packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/2ySUY+iMBSF3/0VJ33SZP0Dfava7LqiEstuMo8NVCQDraGXmTGE/z4BcUTxEc65372n94aH/TaM+ASYYyPfONjf9UHMI6E2bAIAgVjIoP2dlRqk/TvWKzawL/+I3W/56FUmNzGBTgZ0ORu4I+KTtqnhV98+jNb7neLdR4v6L4J/koMdjaaqNKwXgJVUSw4mYM0nntRBWfb1omRRpRgod3t1TjS9aGJxVRC7xPQTY1q4j8ymcCX8Oc+oE2djaOJiP0KuXFwVxpKmzFk4m196rB8DPF3y8VCq0Hl+K+oesp3twXtHkPE0jpUkv25hXHmL2Fo71nCXW6mUeF7m0hVFRiiM9zo1bBLJbRiIqO1X1z/H0jSY1vX1GJpmxlHXPa1p2HcAAAD//3U0nrtlAgAA\"") packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/2ySzY6jMBCE73mKkk+JtPsCvjmJtbtaEtBARpojwg1B8k8Um5mJEO8+4ifKDzmiqv66mnLyFu+SjC+A3/gvPzjY5q/Y/5FsAQCRWMuIg6WkqQgIR0K4nAiuRHHMbUV89MVJ9i/ep3z46FHvIjpIDlZSHpozsUkAtjLdcDABS194Uu/G6u8XI+umwp1yszcnlYcXSyxGBYVTNCXG0rjP2lZwZ/iTrsMgruZQ5Qo/Q25d0RiyIQ+1s3BWXyasnwN8uOh5qNTkWl+Hhh/ZZ3vw3hCBfJifpdSv6zHufD2xtw4sdtflLt4eoqcuRVlSEUjBONXoR7tMU/Hc/cYZUwcY8j6viC0yuUsikfXx2nZ8LF23bNtxV9etONp2InUd+wkAAP//N7x2BGECAAA=\"") diff --git a/package/package.json b/package/package.json index a29728c..92dca8a 100644 --- a/package/package.json +++ b/package/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.24", + "version": "1.0.25", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From e733005457cda8a8263619b6f5f5c3e649d86b56 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Mon, 20 Aug 2018 10:00:28 -0300 Subject: [PATCH 09/90] 1.0.26 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index dddc8b5..b8ac104 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.25", + "version": "1.0.26", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 92dca8a..240449a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.25", + "version": "1.0.26", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 36a70e28c2b10cd3c930e5ef4b5a3f1a981c09a2 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Mon, 20 Aug 2018 10:05:16 -0300 Subject: [PATCH 10/90] 1.0.27 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b8ac104..fb662ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.26", + "version": "1.0.27", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 240449a..2c04c45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.26", + "version": "1.0.27", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From a25437e66e2aced5b2cb053f0fb8be8dd0241c91 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Tue, 28 Aug 2018 08:59:00 -0300 Subject: [PATCH 11/90] update(prompt): Add new set of types --- cmd/cmd-packr.go | 10 +++++----- configs/default.yaml | 24 +++++++++++++++--------- configs/jira.yaml | 24 +++++++++++++++--------- package/package.json | 2 +- 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/cmd/cmd-packr.go b/cmd/cmd-packr.go index 585f6e0..2bb7063 100644 --- a/cmd/cmd-packr.go +++ b/cmd/cmd-packr.go @@ -7,9 +7,9 @@ import "github.com/gobuffalo/packr" // You can use the "packr clean" command to clean up this, // and any other packr generated files. func init() { - packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRTWvcMBCG7/4Vg89ZKSn00D22pdBDeiiF3hom8qw9RdKY0XhLYvzfi/zBBnKcx69Hrx7NDUCbMVF7hraXU0iX9q6yK2lhyRU/uHv34eOGOypBebT905fHb8AFMMNkHNlewASKYe5Q+ZUgSEpskKgU7KmAZBhF/1Kwsu3btpX2DLUJQDtKMc7FMMa9Uh4THORuDylN+X3qxhqAZd2Pkw2iNfNTOuVe4AdeUVW24yMHymW9/OP3Xxvr5TNn1Jdbp8PPIac2QBsqcs4/cz7opGudwWwsZ+97tmF6dkGS/40xodpX7tkw+s3LafdyuogmNCP1SpGwUPGd/MtRsPPXed7fYll8SJenN/PTPI8Rrf6+DqhhWBZnqK5/vUnoaKTcUQ5Mb0xv0mrfP/fuwX1a883S/A8AAP//qkENQRMCAAA=\"") - packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/2ySzY6jMBCE73mKkk+JtPsCvjmJtbtaEtBARpojwg1B8k8Um5mJEO8+4ifKDzmiqv66mnLyFu+SjC+A3/gvPzjY5q/Y/5FsAQCRWMuIg6WkqQgIR0K4nAiuRHHMbUV89MVJ9i/ep3z46FHvIjpIDlZSHpozsUkAtjLdcDABS194Uu/G6u8XI+umwp1yszcnlYcXSyxGBYVTNCXG0rjP2lZwZ/iTrsMgruZQ5Qo/Q25d0RiyIQ+1s3BWXyasnwN8uOh5qNTkWl+Hhh/ZZ3vw3hCBfJifpdSv6zHufD2xtw4sdtflLt4eoqcuRVlSEUjBONXoR7tMU/Hc/cYZUwcY8j6viC0yuUsikfXx2nZ8LF23bNtxV9etONp2InUd+wkAAP//N7x2BGECAAA=\"") - packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/2ySUY+iMBSF3/0VJ33SZP0Dfava7LqiEstuMo8NVCQDraGXmTGE/z4BcUTxEc65372n94aH/TaM+ASYYyPfONjf9UHMI6E2bAIAgVjIoP2dlRqk/TvWKzawL/+I3W/56FUmNzGBTgZ0ORu4I+KTtqnhV98+jNb7neLdR4v6L4J/koMdjaaqNKwXgJVUSw4mYM0nntRBWfb1omRRpRgod3t1TjS9aGJxVRC7xPQTY1q4j8ymcCX8Oc+oE2djaOJiP0KuXFwVxpKmzFk4m196rB8DPF3y8VCq0Hl+K+oesp3twXtHkPE0jpUkv25hXHmL2Fo71nCXW6mUeF7m0hVFRiiM9zo1bBLJbRiIqO1X1z/H0jSY1vX1GJpmxlHXPa1p2HcAAAD//3U0nrtlAgAA\"") - packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/2ySzY6jMBCE73mKkk+JtPsCvjmJtbtaEtBARpojwg1B8k8Um5mJEO8+4ifKDzmiqv66mnLyFu+SjC+A3/gvPzjY5q/Y/5FsAQCRWMuIg6WkqQgIR0K4nAiuRHHMbUV89MVJ9i/ep3z46FHvIjpIDlZSHpozsUkAtjLdcDABS194Uu/G6u8XI+umwp1yszcnlYcXSyxGBYVTNCXG0rjP2lZwZ/iTrsMgruZQ5Qo/Q25d0RiyIQ+1s3BWXyasnwN8uOh5qNTkWl+Hhh/ZZ3vw3hCBfJifpdSv6zHufD2xtw4sdtflLt4eoqcuRVlSEUjBONXoR7tMU/Hc/cYZUwcY8j6viC0yuUsikfXx2nZ8LF23bNtxV9etONp2InUd+wkAAP//N7x2BGECAAA=\"") - packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/2ySUY+iMBSF3/0VJ33SZP0Dfava7LqiEstuMo8NVCQDraGXmTGE/z4BcUTxEc65372n94aH/TaM+ASYYyPfONjf9UHMI6E2bAIAgVjIoP2dlRqk/TvWKzawL/+I3W/56FUmNzGBTgZ0ORu4I+KTtqnhV98+jNb7neLdR4v6L4J/koMdjaaqNKwXgJVUSw4mYM0nntRBWfb1omRRpRgod3t1TjS9aGJxVRC7xPQTY1q4j8ymcCX8Oc+oE2djaOJiP0KuXFwVxpKmzFk4m196rB8DPF3y8VCq0Hl+K+oesp3twXtHkPE0jpUkv25hXHmL2Fo71nCXW6mUeF7m0hVFRiiM9zo1bBLJbRiIqO1X1z/H0jSY1vX1GJpmxlHXPa1p2HcAAAD//3U0nrtlAgAA\"") + packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRTWvcMBCG7/4Vg89ZKemldI9tKfSQHkqht4aJPGtPkTRmNN6SGP/3In+wgRzn8evRq0dzA9BmTNSeoe3lFNKlvavsSlpYcsUP7t59+LjhjkpQHm3/9OXxG3ABzDAZR7YXMIFimDtUfiUIkhIbJCoFeyogGUbRvxSsbPu2baU9Q20C0I5SjHMxjHGvlMcEB7nbQ0pTfp+6sQZgWffjZINozfyUTrkX+IFXVJXt+MiBclkv//j918Z6+cwZ9eXW6fBzyKkN0IaKnPPPnA866VpnMBvL2fuebZieXZDkf2NMqPaVezaMfvNy2r2cLqIJzUi9UiQsVHwn/3IU7Px1nve3WBYf0uXpzfw0z2NEq7+vA2oYlsUZqutfbxI6Gil3lAPTG9ObtNr3z717cJ/WfLM0/wMAAP//kwY9IhMCAAA=\"") + packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/4xTwW7bMAy95ysefGqB9Ad88xJjK5Y2wZIO2FGV6ESYJRoSvSYw/O+D7LTLGnfYkeLje48iufm2ftjs8hlwh6/ljxzZ4kvx+LnMZgCwKj6VqxzZlmrSAjkQ5NQQuII+KL+nfMStN7v79eM2H4JE9b1YPZU5sufW1iY7PwPLcrtIEkNthByUQFXVK/eARjxFIQcOoKNQ8KqGoYa8Ia8tRdzQUbmmpjw9z+Ebd5tdCWv7sSqD24DFPTT7yu7boMSyR2VrilDeIOpgG7lUWgb2NEcUpX9OqBnW8Upvybp15GVkZ1+fzp8WrwkqUnJFUMDTC1KqDTRRY48TJc/tHheZP/CGQjWB12zo7Guch3VN4F8UkQo4OOX1hHigSmnh8D+MnqwcKCRb6YMHi54DlDEp/LDBKKea/r08huH5rx1ypLz1+7SiKRzM3LwcrNBdbJSmOYamRKzfz+FsjAkdydk7zTX7OAeJnpixUJwYkTGp/JUmYWLaXM0hkE4aoKON8pbMLi7tYb18Wr27tGLohAwcm3bs/g1ebrfF+8tcsHNW4ChGtadstisfNqtilwx33XjKfX/TdaNW39/m6LozU99ns98BAAD//3XUAqwABAAA\"") + packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/4xTwW7bMAy95ysefEqB5Ad88xJjy5o0QZ0N2FGVaEeoJRkSvSYw/O+DnLRLF3fokeTje08iuXvcbnb7dALMcZ//SpF8Xz1m831W3CcTAFhnX/J1TGsvwCI8Y7VMruCLb9nD1/w9tqCaJIMPBD41BFdCHoStKD3jtrv9avtQpEMQqX5m6x95iuSp1bVKLmlgmReLKDH0BvBBMERZvnIPaIRTYDJwHnRk8lbUUNSQVWSlpoApHYVpakpjegbbmLvkRljqj1UdXOuxWEE6W+qq9YK1syh1TQHCKgTpdcPXSkvvLM0QWMjnETXlZLjRWzrZGrJ8Zne2Pl0+LdwSlCT4hiCDpRfEUutppEcfR1qe2gpXlb/whnw5gpdO0cXXeR7aNN79poDY4LwRVo6IeyqFZOc/w2hJ84F8tBU/eLBonYdQKoYfPjDwqab/L49ysO7dDhkSVtsqrmgMBzPTl4NmmodGSJpheBSzttUMRocQ0YGMnktXOxtmIJYjM2YKIyNSKra/0kRMiJsrnfckowboqAO/Fa8vbZMXRfbvqS2cMZphKARRUTLZ55vdOttHB133dsp9j2nXnU+17+9SdN2Fre+TyZ8AAAD//8S9GpQEBAAA\"") + packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/4xTwW7bMAy95ysefGqB9Ad88xJjK5Y2wZIO2FGV6ESYJRoSvSYw/O+D7LTLGnfYkeLje48iufm2ftjs8hlwh6/ljxzZ4kvx+LnMZgCwKj6VqxzZlmrSAjkQ5NQQuII+KL+nfMStN7v79eM2H4JE9b1YPZU5sufW1iY7PwPLcrtIEkNthByUQFXVK/eARjxFIQcOoKNQ8KqGoYa8Ia8tRdzQUbmmpjw9z+Ebd5tdCWv7sSqD24DFPTT7yu7boMSyR2VrilDeIOpgG7lUWgb2NEcUpX9OqBnW8Upvybp15GVkZ1+fzp8WrwkqUnJFUMDTC1KqDTRRY48TJc/tHheZP/CGQjWB12zo7Guch3VN4F8UkQo4OOX1hHigSmnh8D+MnqwcKCRb6YMHi54DlDEp/LDBKKea/r08huH5rx1ypLz1+7SiKRzM3LwcrNBdbJSmOYamRKzfz+FsjAkdydk7zTX7OAeJnpixUJwYkTGp/JUmYWLaXM0hkE4aoKON8pbMLi7tYb18Wr27tGLohAwcm3bs/g1ebrfF+8tcsHNW4ChGtadstisfNqtilwx33XjKfX/TdaNW39/m6LozU99ns98BAAD//3XUAqwABAAA\"") + packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/4xTwW7bMAy95ysefEqB5Ad88xJjy5o0QZ0N2FGVaEeoJRkSvSYw/O+DnLRLF3fokeTje08iuXvcbnb7dALMcZ//SpF8Xz1m831W3CcTAFhnX/J1TGsvwCI8Y7VMruCLb9nD1/w9tqCaJIMPBD41BFdCHoStKD3jtrv9avtQpEMQqX5m6x95iuSp1bVKLmlgmReLKDH0BvBBMERZvnIPaIRTYDJwHnRk8lbUUNSQVWSlpoApHYVpakpjegbbmLvkRljqj1UdXOuxWEE6W+qq9YK1syh1TQHCKgTpdcPXSkvvLM0QWMjnETXlZLjRWzrZGrJ8Zne2Pl0+LdwSlCT4hiCDpRfEUutppEcfR1qe2gpXlb/whnw5gpdO0cXXeR7aNN79poDY4LwRVo6IeyqFZOc/w2hJ84F8tBU/eLBonYdQKoYfPjDwqab/L49ysO7dDhkSVtsqrmgMBzPTl4NmmodGSJpheBSzttUMRocQ0YGMnktXOxtmIJYjM2YKIyNSKra/0kRMiJsrnfckowboqAO/Fa8vbZMXRfbvqS2cMZphKARRUTLZ55vdOttHB133dsp9j2nXnU+17+9SdN2Fre+TyZ8AAAD//8S9GpQEBAAA\"") } diff --git a/configs/default.yaml b/configs/default.yaml index 9649646..73a7b63 100644 --- a/configs/default.yaml +++ b/configs/default.yaml @@ -2,20 +2,26 @@ PROMPT: - KEY: "CHANGE" LABEL: "Select the type of change:" OPTIONS: - - VALUE: "feature" - DESC: "A new feature" - - VALUE: "fix" - DESC: "A Bug fix" - - VALUE: "update" - DESC: "An update code change (moving or split code)" + - VALUE: "build" + DESC: "Changes that affect the build system or external dependencies (example: dep, npm)" + - VALUE: "ci" + DESC: "Changes to our CI configuration files and scripts (example: Drone, stack)" - VALUE: "docs" DESC: "Documentation only changes" + - VALUE: "feat" + DESC: "A new feature" + - VALUE: "fix" + DESC: "A bug fix" + - VALUE: "perf" + DESC: "A code change that improves performance" + - VALUE: "refactor" + DESC: "A code change that neither fixes a bug nor adds a feature" - VALUE: "style" - DESC: "Small changes of code style" + DESC: "Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)" - VALUE: "test" - DESC: "Add, change or update test code" + DESC: "Adding missing tests or correcting existing tests" - KEY: "MODULE" LABEL: "Affected module" - KEY: "MESSAGE" LABEL: "Commit message" -TEMPLATE: "{{CHANGE}}({{MODULE}}): {{MESSAGE}}" \ No newline at end of file +TEMPLATE: "{{CHANGE}}({{MODULE}}): {{MESSAGE}}" diff --git a/configs/jira.yaml b/configs/jira.yaml index 8c13b13..0ce675d 100644 --- a/configs/jira.yaml +++ b/configs/jira.yaml @@ -4,18 +4,24 @@ PROMPT: - KEY: "CHANGE" LABEL: "Select the type of change:" OPTIONS: - - VALUE: "feature" - DESC: "A new feature" - - VALUE: "fix" - DESC: "A Bug fix" - - VALUE: "update" - DESC: "An update code change (moving or split code)" + - VALUE: "build" + DESC: "Changes that affect the build system or external dependencies (example: dep, npm)" + - VALUE: "ci" + DESC: "Changes to our CI configuration files and scripts (example: Drone, stack)" - VALUE: "docs" DESC: "Documentation only changes" + - VALUE: "feat" + DESC: "A new feature" + - VALUE: "fix" + DESC: "A bug fix" + - VALUE: "perf" + DESC: "A code change that improves performance" + - VALUE: "refactor" + DESC: "A code change that neither fixes a bug nor adds a feature" - VALUE: "style" - DESC: "Small changes of code style" + DESC: "Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)" - VALUE: "test" - DESC: "Add, change or update test code" + DESC: "Adding missing tests or correcting existing tests" - KEY: "MESSAGE" LABEL: "Commit message" -TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}" \ No newline at end of file +TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}" diff --git a/package/package.json b/package/package.json index 92dca8a..2c04c45 100644 --- a/package/package.json +++ b/package/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.25", + "version": "1.0.27", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From f8e2ee7fd5413023f29fef32b0b3cf1f5c22659a Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Tue, 28 Aug 2018 09:00:32 -0300 Subject: [PATCH 12/90] 1.0.28 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index fb662ee..6174608 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.27", + "version": "1.0.28", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2c04c45..cc04204 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.27", + "version": "1.0.28", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 38f23ee7c65db053f40baa55b9871ea660072273 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Mon, 3 Sep 2018 18:34:11 -0300 Subject: [PATCH 13/90] refactor(root): Changes on select types of commits --- cmd/cmd-packr.go | 10 +++++----- cmd/root.go | 11 ++++++----- configs/default.yaml | 24 ++++++++++-------------- configs/jira.yaml | 24 ++++++++++-------------- package/package.json | 2 +- 5 files changed, 32 insertions(+), 39 deletions(-) diff --git a/cmd/cmd-packr.go b/cmd/cmd-packr.go index 2bb7063..502666c 100644 --- a/cmd/cmd-packr.go +++ b/cmd/cmd-packr.go @@ -7,9 +7,9 @@ import "github.com/gobuffalo/packr" // You can use the "packr clean" command to clean up this, // and any other packr generated files. func init() { - packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRTWvcMBCG7/4Vg89ZKemldI9tKfSQHkqht4aJPGtPkTRmNN6SGP/3In+wgRzn8evRq0dzA9BmTNSeoe3lFNKlvavsSlpYcsUP7t59+LjhjkpQHm3/9OXxG3ABzDAZR7YXMIFimDtUfiUIkhIbJCoFeyogGUbRvxSsbPu2baU9Q20C0I5SjHMxjHGvlMcEB7nbQ0pTfp+6sQZgWffjZINozfyUTrkX+IFXVJXt+MiBclkv//j918Z6+cwZ9eXW6fBzyKkN0IaKnPPPnA866VpnMBvL2fuebZieXZDkf2NMqPaVezaMfvNy2r2cLqIJzUi9UiQsVHwn/3IU7Px1nve3WBYf0uXpzfw0z2NEq7+vA2oYlsUZqutfbxI6Gil3lAPTG9ObtNr3z717cJ/WfLM0/wMAAP//kwY9IhMCAAA=\"") - packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/4xTwW7bMAy95ysefGqB9Ad88xJjK5Y2wZIO2FGV6ESYJRoSvSYw/O+D7LTLGnfYkeLje48iufm2ftjs8hlwh6/ljxzZ4kvx+LnMZgCwKj6VqxzZlmrSAjkQ5NQQuII+KL+nfMStN7v79eM2H4JE9b1YPZU5sufW1iY7PwPLcrtIEkNthByUQFXVK/eARjxFIQcOoKNQ8KqGoYa8Ia8tRdzQUbmmpjw9z+Ebd5tdCWv7sSqD24DFPTT7yu7boMSyR2VrilDeIOpgG7lUWgb2NEcUpX9OqBnW8Upvybp15GVkZ1+fzp8WrwkqUnJFUMDTC1KqDTRRY48TJc/tHheZP/CGQjWB12zo7Guch3VN4F8UkQo4OOX1hHigSmnh8D+MnqwcKCRb6YMHi54DlDEp/LDBKKea/r08huH5rx1ypLz1+7SiKRzM3LwcrNBdbJSmOYamRKzfz+FsjAkdydk7zTX7OAeJnpixUJwYkTGp/JUmYWLaXM0hkE4aoKON8pbMLi7tYb18Wr27tGLohAwcm3bs/g1ebrfF+8tcsHNW4ChGtadstisfNqtilwx33XjKfX/TdaNW39/m6LozU99ns98BAAD//3XUAqwABAAA\"") - packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/4xTwW7bMAy95ysefEqB5Ad88xJjy5o0QZ0N2FGVaEeoJRkSvSYw/O+DnLRLF3fokeTje08iuXvcbnb7dALMcZ//SpF8Xz1m831W3CcTAFhnX/J1TGsvwCI8Y7VMruCLb9nD1/w9tqCaJIMPBD41BFdCHoStKD3jtrv9avtQpEMQqX5m6x95iuSp1bVKLmlgmReLKDH0BvBBMERZvnIPaIRTYDJwHnRk8lbUUNSQVWSlpoApHYVpakpjegbbmLvkRljqj1UdXOuxWEE6W+qq9YK1syh1TQHCKgTpdcPXSkvvLM0QWMjnETXlZLjRWzrZGrJ8Zne2Pl0+LdwSlCT4hiCDpRfEUutppEcfR1qe2gpXlb/whnw5gpdO0cXXeR7aNN79poDY4LwRVo6IeyqFZOc/w2hJ84F8tBU/eLBonYdQKoYfPjDwqab/L49ysO7dDhkSVtsqrmgMBzPTl4NmmodGSJpheBSzttUMRocQ0YGMnktXOxtmIJYjM2YKIyNSKra/0kRMiJsrnfckowboqAO/Fa8vbZMXRfbvqS2cMZphKARRUTLZ55vdOttHB133dsp9j2nXnU+17+9SdN2Fre+TyZ8AAAD//8S9GpQEBAAA\"") - packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/4xTwW7bMAy95ysefGqB9Ad88xJjK5Y2wZIO2FGV6ESYJRoSvSYw/O+D7LTLGnfYkeLje48iufm2ftjs8hlwh6/ljxzZ4kvx+LnMZgCwKj6VqxzZlmrSAjkQ5NQQuII+KL+nfMStN7v79eM2H4JE9b1YPZU5sufW1iY7PwPLcrtIEkNthByUQFXVK/eARjxFIQcOoKNQ8KqGoYa8Ia8tRdzQUbmmpjw9z+Ebd5tdCWv7sSqD24DFPTT7yu7boMSyR2VrilDeIOpgG7lUWgb2NEcUpX9OqBnW8Upvybp15GVkZ1+fzp8WrwkqUnJFUMDTC1KqDTRRY48TJc/tHheZP/CGQjWB12zo7Guch3VN4F8UkQo4OOX1hHigSmnh8D+MnqwcKCRb6YMHi54DlDEp/LDBKKea/r08huH5rx1ypLz1+7SiKRzM3LwcrNBdbJSmOYamRKzfz+FsjAkdydk7zTX7OAeJnpixUJwYkTGp/JUmYWLaXM0hkE4aoKON8pbMLi7tYb18Wr27tGLohAwcm3bs/g1ebrfF+8tcsHNW4ChGtadstisfNqtilwx33XjKfX/TdaNW39/m6LozU99ns98BAAD//3XUAqwABAAA\"") - packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/4xTwW7bMAy95ysefEqB5Ad88xJjy5o0QZ0N2FGVaEeoJRkSvSYw/O+DnLRLF3fokeTje08iuXvcbnb7dALMcZ//SpF8Xz1m831W3CcTAFhnX/J1TGsvwCI8Y7VMruCLb9nD1/w9tqCaJIMPBD41BFdCHoStKD3jtrv9avtQpEMQqX5m6x95iuSp1bVKLmlgmReLKDH0BvBBMERZvnIPaIRTYDJwHnRk8lbUUNSQVWSlpoApHYVpakpjegbbmLvkRljqj1UdXOuxWEE6W+qq9YK1syh1TQHCKgTpdcPXSkvvLM0QWMjnETXlZLjRWzrZGrJ8Zne2Pl0+LdwSlCT4hiCDpRfEUutppEcfR1qe2gpXlb/whnw5gpdO0cXXeR7aNN79poDY4LwRVo6IeyqFZOc/w2hJ84F8tBU/eLBonYdQKoYfPjDwqab/L49ysO7dDhkSVtsqrmgMBzPTl4NmmodGSJpheBSzttUMRocQ0YGMnktXOxtmIJYjM2YKIyNSKra/0kRMiJsrnfckowboqAO/Fa8vbZMXRfbvqS2cMZphKARRUTLZ55vdOttHB133dsp9j2nXnU+17+9SdN2Fre+TyZ8AAAD//8S9GpQEBAAA\"") + packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRPW/cMAyGd/8KwnNOSjq1N7ZFgQ7pUBTo1oCReTYLSTQo+orE8H8v5A9cgIx8/Jp69WhuANqMidoztL2cQrq0d5VdSQtLrvjB3bsPHzfcUQnKo+2fvjx+Ay6AGSbjyPYCJlAMc4fKrwRBUmKDRKVgTwUkwyj6l4KVbd+2rbRnqE0A2lGKcS6GMe6V8pjgIHd7SGnK71M31gAs636cbBCtmZ/SKfcCP/CKqrIdHzlQLuvlH7//2lgvnzmjvtw6HX4OObUB2lCRc/6Z80EnXesMZmM5e9+zDdOzC5L8b4wJ1b5yz4bRb15Ou5fTRTShGalXioSFiu/kX46Cnb/O8/4Wy+JDujy9mZ/meYxo9fd1QA3DsjhDdf3rTUJHI+WOcmB6Y3qTVvv+uXcP7tOab5bmfwAAAP//wXX9DBMCAAA=\"") + packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/3xSzW6zMBC85ylGnL7vkBfgRglqo5KACqnUIzFLYgnbEV7aIsS7VwbaRiHqCeH52dnVpC/JLs39FbDGc/Tmwwufgv1j5K0AIA4eotiHl1FNgsFnAncXgqkgzoU+kT/xkjTfJvvMH3+c1WsQHyIf3rGVdbkW0psRYBNloZsyyi2MHl1HHmxnmRRMg3CLStZkvYVjRQW3DS0Mg7KEpg/c4FdC+bkU4diecIX80i139Z0pEKakeXmwgVSXxrwTRE2FHsGlFZPle3mlPkFJa93XcazbXJimIcHuzeh7B2ioKgSb5u9sS11phF1oNka0ijQXLI2G0XU360fqdyV2yeYQ31QiqCoSTCWUKdvpUj/0KMuC2wqFRinJUGRt4eLl0S6Ng9wl6/upc8Pwr++nWcPw30ffz07D4K2+AgAA//9hgqHIqQIAAA==\"") + packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/3xSzW6jMBC+5yk+cdo95AW4eQnaZUMSFNiVenTMkFgFO7JNW4R498oEtTREPSHm+5uxvux42GVFuALW2MZPIYK/yZGtC5ZvgxUApOxXnPqxNByO22ckm2BGj/6w/e/4KzenmoSDuxBcdyXoCuLC1ZnCG++QFclhn4fjj7f6z9J/cYjg1Mq6XAsZTAiwifPIp4xyC61G15EH21lHDbRBlKCSNdlg4VgRd62hhSErSyh6xR0+E8q3pQin9owZ8km3rqsfpEDokqbj4TRkczX6hSBq4moEl1aOrHu0r1RnNNJa//Uc6y8X2hgSzs+0evQAhiounDbf77bUlVrYhWajRduQctxJraBV3U16O6/ELs5zdt+JSDeNdGjIWu7ziniXpazwUX3/0blhwI++v3VqGH6G6PvJbRiC1XsAAAD//4MELmetAgAA\"") + packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/3xSzW6zMBC85ylGnL7vkBfgRglqo5KACqnUIzFLYgnbEV7aIsS7VwbaRiHqCeH52dnVpC/JLs39FbDGc/Tmwwufgv1j5K0AIA4eotiHl1FNgsFnAncXgqkgzoU+kT/xkjTfJvvMH3+c1WsQHyIf3rGVdbkW0psRYBNloZsyyi2MHl1HHmxnmRRMg3CLStZkvYVjRQW3DS0Mg7KEpg/c4FdC+bkU4diecIX80i139Z0pEKakeXmwgVSXxrwTRE2FHsGlFZPle3mlPkFJa93XcazbXJimIcHuzeh7B2ioKgSb5u9sS11phF1oNka0ijQXLI2G0XU360fqdyV2yeYQ31QiqCoSTCWUKdvpUj/0KMuC2wqFRinJUGRt4eLl0S6Ng9wl6/upc8Pwr++nWcPw30ffz07D4K2+AgAA//9hgqHIqQIAAA==\"") + packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/3xSzW6jMBC+5yk+cdo95AW4eQnaZUMSFNiVenTMkFgFO7JNW4R498oEtTREPSHm+5uxvux42GVFuALW2MZPIYK/yZGtC5ZvgxUApOxXnPqxNByO22ckm2BGj/6w/e/4KzenmoSDuxBcdyXoCuLC1ZnCG++QFclhn4fjj7f6z9J/cYjg1Mq6XAsZTAiwifPIp4xyC61G15EH21lHDbRBlKCSNdlg4VgRd62hhSErSyh6xR0+E8q3pQin9owZ8km3rqsfpEDokqbj4TRkczX6hSBq4moEl1aOrHu0r1RnNNJa//Uc6y8X2hgSzs+0evQAhiounDbf77bUlVrYhWajRduQctxJraBV3U16O6/ELs5zdt+JSDeNdGjIWu7ziniXpazwUX3/0blhwI++v3VqGH6G6PvJbRiC1XsAAAD//4MELmetAgAA\"") } diff --git a/cmd/root.go b/cmd/root.go index c140333..c1f554d 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -48,12 +48,13 @@ var rootCmd = &cobra.Command{ Short: "Generate commit message for your repo", Long: `CMF (Commit Message Formatter): Generate a formated message for your repo using common notations for: + - Build & CI + - Documentation - Features - - Fixes - - Refactoring - - Updates - - Tests - - Docs`, + - Bug fixes + - Refactor + - Code style + - Test`, PreRun: func(cmd *cobra.Command, args []string) { promptList() }, Run: func(cmd *cobra.Command, args []string) { p := parseTemplate(viper.GetString("template")) diff --git a/configs/default.yaml b/configs/default.yaml index 73a7b63..0778d03 100644 --- a/configs/default.yaml +++ b/configs/default.yaml @@ -2,24 +2,20 @@ PROMPT: - KEY: "CHANGE" LABEL: "Select the type of change:" OPTIONS: - - VALUE: "build" - DESC: "Changes that affect the build system or external dependencies (example: dep, npm)" - - VALUE: "ci" - DESC: "Changes to our CI configuration files and scripts (example: Drone, stack)" - - VALUE: "docs" - DESC: "Documentation only changes" - - VALUE: "feat" - DESC: "A new feature" + - VALUE: "build-ci" + DESC: "Changes on the build system or CI files" + - VALUE: "feature" + DESC: "Add new feature" - VALUE: "fix" DESC: "A bug fix" - - VALUE: "perf" - DESC: "A code change that improves performance" - - VALUE: "refactor" - DESC: "A code change that neither fixes a bug nor adds a feature" - VALUE: "style" - DESC: "Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)" + DESC: "A code change to improve clean code" - VALUE: "test" - DESC: "Adding missing tests or correcting existing tests" + DESC: "Adding missing tests or correcting ones" + - VALUE: "refactor" + DESC: "A code change" + - VALUE: "docs" + DESC: "Documentation only changes" - KEY: "MODULE" LABEL: "Affected module" - KEY: "MESSAGE" diff --git a/configs/jira.yaml b/configs/jira.yaml index 0ce675d..f1f5bbb 100644 --- a/configs/jira.yaml +++ b/configs/jira.yaml @@ -4,24 +4,20 @@ PROMPT: - KEY: "CHANGE" LABEL: "Select the type of change:" OPTIONS: - - VALUE: "build" - DESC: "Changes that affect the build system or external dependencies (example: dep, npm)" - - VALUE: "ci" - DESC: "Changes to our CI configuration files and scripts (example: Drone, stack)" - - VALUE: "docs" - DESC: "Documentation only changes" - - VALUE: "feat" - DESC: "A new feature" + - VALUE: "build-ci" + DESC: "Changes on the build system or CI files" + - VALUE: "feature" + DESC: "Add new feature" - VALUE: "fix" DESC: "A bug fix" - - VALUE: "perf" - DESC: "A code change that improves performance" - - VALUE: "refactor" - DESC: "A code change that neither fixes a bug nor adds a feature" - VALUE: "style" - DESC: "Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)" + DESC: "A code change to improve clean code" - VALUE: "test" - DESC: "Adding missing tests or correcting existing tests" + DESC: "Adding missing tests or correcting ones" + - VALUE: "refactor" + DESC: "A code change" + - VALUE: "docs" + DESC: "Documentation only changes" - KEY: "MESSAGE" LABEL: "Commit message" TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}" diff --git a/package/package.json b/package/package.json index 2c04c45..cc04204 100644 --- a/package/package.json +++ b/package/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.27", + "version": "1.0.28", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From c4c859a15fead338a8774ef441b6ab6dc46e4916 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Mon, 3 Sep 2018 18:34:19 -0300 Subject: [PATCH 14/90] 1.0.29 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6174608..98bf7fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.28", + "version": "1.0.29", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index cc04204..ec10d0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.28", + "version": "1.0.29", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From ee170bcb0f49ce17e18f0f692f307006435f8541 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Wed, 3 Oct 2018 10:46:18 -0300 Subject: [PATCH 15/90] refactor(utils): Use spawn process instead of thirth git libs --- cmd/utils.go | 55 ++++++++++------------------------------------------ 1 file changed, 10 insertions(+), 45 deletions(-) diff --git a/cmd/utils.go b/cmd/utils.go index 544c22e..ad074a1 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -24,27 +24,21 @@ import ( "errors" "fmt" "os" + "os/exec" "strings" - "time" "github.com/fatih/color" . "github.com/logrusorgru/aurora" "github.com/manifoldco/promptui" "github.com/spf13/viper" - git "gopkg.in/src-d/go-git.v4" - "gopkg.in/src-d/go-git.v4/plumbing/object" - gitconfig "walmart.com/cfm/src/github.com/tcnksm/go-gitconfig" ) -var w *git.Worktree -var hasStagingFiles bool - func checkErr(err error) { if err != nil { color.Set(color.FgMagenta) defer color.Unset() fmt.Print(err) - os.Exit(1) + os.Exit(0) } } @@ -109,19 +103,10 @@ func promptList() { } func commit(message string) (err error) { - username, err := gitconfig.Username() - email, err := gitconfig.Email() - fmt.Println(Gray("Changes added, Preparing commit...")) - - _, err = w.Commit(message, &git.CommitOptions{ - Author: &object.Signature{ - Name: username, - Email: email, - When: time.Now(), - }, - }) - checkErr(err) + cmdGit := exec.Command("git", "commit", "-m", message) lastCommit := "Last commit: " + message + _, err = cmdGit.Output() + checkErr(err) fmt.Println(Gray(lastCommit)) fmt.Println(Green("Done")) @@ -129,29 +114,9 @@ func commit(message string) (err error) { } func init() { - directory, err := os.Getwd() - checkErr(err) - - // Opens an already existent repository. - r, err := git.PlainOpen(directory) - checkErr(err) - - go (func() { - w, err = r.Worktree() - checkErr(err) - - s, err := w.Status() - checkErr(err) - - hasStagingFiles = false - for _, status := range s { - if status.Staging != 32 && status.Staging != 63 { - hasStagingFiles = true - } - } - - if !hasStagingFiles { - checkErr(errors.New("No changes added to commit")) - } - })() + cmdGit := exec.Command("git", "diff", "--cached", "--exit-code") + _, err := cmdGit.Output() + if err == nil { + checkErr(errors.New("No changes added to commit")) + } } From 3f2d8335ea61dff670680864d44806f4cd75c523 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Wed, 3 Oct 2018 11:00:39 -0300 Subject: [PATCH 16/90] refactor(config): Reorder display options --- cmd/cmd-packr.go | 10 +++++----- configs/default.yaml | 8 ++++---- configs/jira.yaml | 8 ++++---- package/package.json | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cmd/cmd-packr.go b/cmd/cmd-packr.go index 502666c..abe89f7 100644 --- a/cmd/cmd-packr.go +++ b/cmd/cmd-packr.go @@ -7,9 +7,9 @@ import "github.com/gobuffalo/packr" // You can use the "packr clean" command to clean up this, // and any other packr generated files. func init() { - packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRPW/cMAyGd/8KwnNOSjq1N7ZFgQ7pUBTo1oCReTYLSTQo+orE8H8v5A9cgIx8/Jp69WhuANqMidoztL2cQrq0d5VdSQtLrvjB3bsPHzfcUQnKo+2fvjx+Ay6AGSbjyPYCJlAMc4fKrwRBUmKDRKVgTwUkwyj6l4KVbd+2rbRnqE0A2lGKcS6GMe6V8pjgIHd7SGnK71M31gAs636cbBCtmZ/SKfcCP/CKqrIdHzlQLuvlH7//2lgvnzmjvtw6HX4OObUB2lCRc/6Z80EnXesMZmM5e9+zDdOzC5L8b4wJ1b5yz4bRb15Ou5fTRTShGalXioSFiu/kX46Cnb/O8/4Wy+JDujy9mZ/meYxo9fd1QA3DsjhDdf3rTUJHI+WOcmB6Y3qTVvv+uXcP7tOab5bmfwAAAP//wXX9DBMCAAA=\"") - packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/3xSzW6zMBC85ylGnL7vkBfgRglqo5KACqnUIzFLYgnbEV7aIsS7VwbaRiHqCeH52dnVpC/JLs39FbDGc/Tmwwufgv1j5K0AIA4eotiHl1FNgsFnAncXgqkgzoU+kT/xkjTfJvvMH3+c1WsQHyIf3rGVdbkW0psRYBNloZsyyi2MHl1HHmxnmRRMg3CLStZkvYVjRQW3DS0Mg7KEpg/c4FdC+bkU4diecIX80i139Z0pEKakeXmwgVSXxrwTRE2FHsGlFZPle3mlPkFJa93XcazbXJimIcHuzeh7B2ioKgSb5u9sS11phF1oNka0ijQXLI2G0XU360fqdyV2yeYQ31QiqCoSTCWUKdvpUj/0KMuC2wqFRinJUGRt4eLl0S6Ng9wl6/upc8Pwr++nWcPw30ffz07D4K2+AgAA//9hgqHIqQIAAA==\"") - packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/3xSzW6jMBC+5yk+cdo95AW4eQnaZUMSFNiVenTMkFgFO7JNW4R498oEtTREPSHm+5uxvux42GVFuALW2MZPIYK/yZGtC5ZvgxUApOxXnPqxNByO22ckm2BGj/6w/e/4KzenmoSDuxBcdyXoCuLC1ZnCG++QFclhn4fjj7f6z9J/cYjg1Mq6XAsZTAiwifPIp4xyC61G15EH21lHDbRBlKCSNdlg4VgRd62hhSErSyh6xR0+E8q3pQin9owZ8km3rqsfpEDokqbj4TRkczX6hSBq4moEl1aOrHu0r1RnNNJa//Uc6y8X2hgSzs+0evQAhiounDbf77bUlVrYhWajRduQctxJraBV3U16O6/ELs5zdt+JSDeNdGjIWu7ziniXpazwUX3/0blhwI++v3VqGH6G6PvJbRiC1XsAAAD//4MELmetAgAA\"") - packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/3xSzW6zMBC85ylGnL7vkBfgRglqo5KACqnUIzFLYgnbEV7aIsS7VwbaRiHqCeH52dnVpC/JLs39FbDGc/Tmwwufgv1j5K0AIA4eotiHl1FNgsFnAncXgqkgzoU+kT/xkjTfJvvMH3+c1WsQHyIf3rGVdbkW0psRYBNloZsyyi2MHl1HHmxnmRRMg3CLStZkvYVjRQW3DS0Mg7KEpg/c4FdC+bkU4diecIX80i139Z0pEKakeXmwgVSXxrwTRE2FHsGlFZPle3mlPkFJa93XcazbXJimIcHuzeh7B2ioKgSb5u9sS11phF1oNka0ijQXLI2G0XU360fqdyV2yeYQ31QiqCoSTCWUKdvpUj/0KMuC2wqFRinJUGRt4eLl0S6Ng9wl6/upc8Pwr++nWcPw30ffz07D4K2+AgAA//9hgqHIqQIAAA==\"") - packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/3xSzW6jMBC+5yk+cdo95AW4eQnaZUMSFNiVenTMkFgFO7JNW4R498oEtTREPSHm+5uxvux42GVFuALW2MZPIYK/yZGtC5ZvgxUApOxXnPqxNByO22ckm2BGj/6w/e/4KzenmoSDuxBcdyXoCuLC1ZnCG++QFclhn4fjj7f6z9J/cYjg1Mq6XAsZTAiwifPIp4xyC61G15EH21lHDbRBlKCSNdlg4VgRd62hhSErSyh6xR0+E8q3pQin9owZ8km3rqsfpEDokqbj4TRkczX6hSBq4moEl1aOrHu0r1RnNNJa//Uc6y8X2hgSzs+0evQAhiounDbf77bUlVrYhWajRduQctxJraBV3U16O6/ELs5zdt+JSDeNdGjIWu7ziniXpazwUX3/0blhwI++v3VqGH6G6PvJbRiC1XsAAAD//4MELmetAgAA\"") + packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRPW/cMAyGd/8KwnNOSrrlxrYo0CEdigLdGjAyz2YhiQZFX5EY/u+F/IELkJGPX1OvHs0NQJsxUXuGtpdTSJf2rrIraWHJFT+4e/fpccMdlaA82v7py9M34AKYYTKObK9gAsUwd6j8RhAkJTZIVAr2VEAyjKJ/KVjZ9m3bSnuG2gSgHaUY52IY414pjwkOcreHlKb8MXVjDcCy7sfJBtGa+Smdci/wA6+oKtvxkQPlsl7+6fuvjfXymTPq663T4eeQUxugDRU55184H3TStc5gNpaz9z3bML24IMn/xphQ7Sv3bBj95uW0ezldRBOakXqlSFio+E7+5SjY+es872+xLD6ky/O7+Xmex4hWf18H1DAsizNU17/dJHQ0Uu4oB6Z3pjdpte+fe/fgHtd8szT/AwAA//991d3QEwIAAA==\"") + packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/3xSzW6zMBC85ylGnL7vkBfwjRLURiUBFVKpR2KWxBK2I7y0RYh3r/hpG4WoJ8uenx2vJnmJd0kmVsAaz+GbgBc8+fvH0FsBQOQ/hJGAl1JFksFnArcXgi0hz7k5kZh4cZJt430qxstg9epHh1DAKynnpiZvBoBNmAYCnl8UMPSBG/xKqD6XIhybE66QXzqT43tDlDlBK+eGc+A42BrS1jVJHt6sIbd0c9xWdzJD2oLmj4MtlL7U9p0gK8rNCC6tjo2qirVUC7dgtHGwZlzryINrHZMeMgZblKq6F66mMpds67/zLXWFlW6h2VjZaDKcs7IG1lTtrB+p35XYxZtDdFMJvyxJMhXQtmimbf3QwzT1bysUWK0VQ5Nz+RAvC3dJ5GdDsq6bOtf3/7pumtX3/wW6bnbqe2/1FQAA//9UhR3WqQIAAA==\"") + packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/3xSzW6jMBi85ylGnHYPeQFuXoJ22ZAEBXalHh3zkVgFO7JNW4R498oEtTREPVn+5ucbW5MdD7usCFfAGtv4KUTwNzmydcHybbACgJT9ilM/lobDcfuMZBPM6NEftv8df+XmVJNwcBeC664EXUFcuDpTeOMdsiI57PNwvHir/yz9F4cIKuKuNRRMALCJ8yhEwMoSil5xh8+E8m0pwqk9Y4Z80h1Z92iJVGc00lp/eo6FNhDaGBLOz7Qiu3SzrqsfZIbQJU0Ph9OQzdXoF4KoiasRXFqdWlmXayEXbtFoY6HV+K0jD7azjhqfMUpQyfpROEMVF06b7/MtdaUWdqHZaNE2pBx3UitoVXeT3s4rsYvznN13ItJNIx0aspb7fUW8y1JW+FV9/9G5YcCPvr91ahh+huj7yW0YgtV7AAAA///YXSBkrQIAAA==\"") + packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/3xSzW6zMBC85ylGnL7vkBfwjRLURiUBFVKpR2KWxBK2I7y0RYh3r/hpG4WoJ8uenx2vJnmJd0kmVsAaz+GbgBc8+fvH0FsBQOQ/hJGAl1JFksFnArcXgi0hz7k5kZh4cZJt430qxstg9epHh1DAKynnpiZvBoBNmAYCnl8UMPSBG/xKqD6XIhybE66QXzqT43tDlDlBK+eGc+A42BrS1jVJHt6sIbd0c9xWdzJD2oLmj4MtlL7U9p0gK8rNCC6tjo2qirVUC7dgtHGwZlzryINrHZMeMgZblKq6F66mMpds67/zLXWFlW6h2VjZaDKcs7IG1lTtrB+p35XYxZtDdFMJvyxJMhXQtmimbf3QwzT1bysUWK0VQ5Nz+RAvC3dJ5GdDsq6bOtf3/7pumtX3/wW6bnbqe2/1FQAA//9UhR3WqQIAAA==\"") + packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/3xSzW6jMBi85ylGnHYPeQFuXoJ22ZAEBXalHh3zkVgFO7JNW4R498oEtTREPVn+5ucbW5MdD7usCFfAGtv4KUTwNzmydcHybbACgJT9ilM/lobDcfuMZBPM6NEftv8df+XmVJNwcBeC664EXUFcuDpTeOMdsiI57PNwvHir/yz9F4cIKuKuNRRMALCJ8yhEwMoSil5xh8+E8m0pwqk9Y4Z80h1Z92iJVGc00lp/eo6FNhDaGBLOz7Qiu3SzrqsfZIbQJU0Ph9OQzdXoF4KoiasRXFqdWlmXayEXbtFoY6HV+K0jD7azjhqfMUpQyfpROEMVF06b7/MtdaUWdqHZaNE2pBx3UitoVXeT3s4rsYvznN13ItJNIx0aspb7fUW8y1JW+FV9/9G5YcCPvr91ahh+huj7yW0YgtV7AAAA///YXSBkrQIAAA==\"") } diff --git a/configs/default.yaml b/configs/default.yaml index 0778d03..c8167ee 100644 --- a/configs/default.yaml +++ b/configs/default.yaml @@ -2,16 +2,16 @@ PROMPT: - KEY: "CHANGE" LABEL: "Select the type of change:" OPTIONS: - - VALUE: "build-ci" - DESC: "Changes on the build system or CI files" - VALUE: "feature" DESC: "Add new feature" - VALUE: "fix" DESC: "A bug fix" - - VALUE: "style" - DESC: "A code change to improve clean code" - VALUE: "test" DESC: "Adding missing tests or correcting ones" + - VALUE: "style" + DESC: "A code change to improve clean code" + - VALUE: "build-ci" + DESC: "Changes on the build system or CI files" - VALUE: "refactor" DESC: "A code change" - VALUE: "docs" diff --git a/configs/jira.yaml b/configs/jira.yaml index f1f5bbb..26dafcc 100644 --- a/configs/jira.yaml +++ b/configs/jira.yaml @@ -4,16 +4,16 @@ PROMPT: - KEY: "CHANGE" LABEL: "Select the type of change:" OPTIONS: - - VALUE: "build-ci" - DESC: "Changes on the build system or CI files" - VALUE: "feature" DESC: "Add new feature" - VALUE: "fix" DESC: "A bug fix" - - VALUE: "style" - DESC: "A code change to improve clean code" - VALUE: "test" DESC: "Adding missing tests or correcting ones" + - VALUE: "style" + DESC: "A code change to improve clean code" + - VALUE: "build-ci" + DESC: "Changes on the build system or CI files" - VALUE: "refactor" DESC: "A code change" - VALUE: "docs" diff --git a/package/package.json b/package/package.json index cc04204..ec10d0c 100644 --- a/package/package.json +++ b/package/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.28", + "version": "1.0.29", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 01f06c4086518ac5d8fb2909421a8006086fd3e6 Mon Sep 17 00:00:00 2001 From: R0n0066 Date: Wed, 3 Oct 2018 11:01:21 -0300 Subject: [PATCH 17/90] 1.0.30 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98bf7fb..f79c68f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.29", + "version": "1.0.30", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ec10d0c..dcd39a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.29", + "version": "1.0.30", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 2cf307414cd72f224c5021a0bd63981846b3232b Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 4 Jan 2019 08:56:23 -0300 Subject: [PATCH 18/90] Version --- package-lock.json | 2 +- package.json | 2 +- package/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f79c68f..aac2612 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.30", + "version": "1.0.31", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index dcd39a7..50382b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.30", + "version": "1.0.31", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", diff --git a/package/package.json b/package/package.json index ec10d0c..50382b3 100644 --- a/package/package.json +++ b/package/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.29", + "version": "1.0.31", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 8c7e0d4fa551835da785f50febd5f7cceda3ed92 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 4 Jan 2019 08:56:25 -0300 Subject: [PATCH 19/90] 1.0.32 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index aac2612..39ceee2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.31", + "version": "1.0.32", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 50382b3..960f1eb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.31", + "version": "1.0.32", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 3fea28aebdf2b4e16ed49b4855256491db4b9c1e Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 4 Jan 2019 09:04:22 -0300 Subject: [PATCH 20/90] 1.0.33 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39ceee2..2fbea83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.32", + "version": "1.0.33", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 960f1eb..7614aab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.32", + "version": "1.0.33", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 1080744b9bf8960c57922a17399a003e3c53cce6 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 4 Jan 2019 13:48:54 -0300 Subject: [PATCH 21/90] feature(root): Add print stdout --- cmd/utils.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/utils.go b/cmd/utils.go index ad074a1..af72e04 100644 --- a/cmd/utils.go +++ b/cmd/utils.go @@ -105,8 +105,9 @@ func promptList() { func commit(message string) (err error) { cmdGit := exec.Command("git", "commit", "-m", message) lastCommit := "Last commit: " + message - _, err = cmdGit.Output() + output, err := cmdGit.Output() checkErr(err) + fmt.Println(string(output)) fmt.Println(Gray(lastCommit)) fmt.Println(Green("Done")) From 3da5795cbd081986c522c23c9c8b6c34847516f1 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 4 Jan 2019 13:49:02 -0300 Subject: [PATCH 22/90] 1.0.34 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2fbea83..688b933 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.33", + "version": "1.0.34", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7614aab..e26acad 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.33", + "version": "1.0.34", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From ca2c0931c884a408885bd6df43f8ed775997f9a5 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 18 Jan 2019 18:41:16 -0300 Subject: [PATCH 23/90] TEST --- .gitignore | 1 - Gopkg.lock | 343 --------------------------------- Gopkg.toml | 46 ----- main.go | 9 +- package/package.json | 19 -- pkg/boilerplate/boilerplate.go | 8 + pkg/cmd/cmd.go | 33 ++++ vendor | 1 + 8 files changed, 49 insertions(+), 411 deletions(-) delete mode 100644 Gopkg.lock delete mode 100644 Gopkg.toml delete mode 100644 package/package.json create mode 100644 pkg/boilerplate/boilerplate.go create mode 100644 pkg/cmd/cmd.go create mode 120000 vendor diff --git a/.gitignore b/.gitignore index 9c5e28f..4470dc7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -vendor src dist node_modules \ No newline at end of file diff --git a/Gopkg.lock b/Gopkg.lock deleted file mode 100644 index 2333511..0000000 --- a/Gopkg.lock +++ /dev/null @@ -1,343 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[[projects]] - branch = "master" - name = "github.com/chzyer/readline" - packages = ["."] - revision = "2972be24d48e78746da79ba8e24e8b488c9880de" - -[[projects]] - name = "github.com/emirpasic/gods" - packages = [ - "containers", - "lists", - "lists/arraylist", - "trees", - "trees/binaryheap", - "utils" - ] - revision = "f6c17b524822278a87e3b3bd809fec33b51f5b46" - version = "v1.9.0" - -[[projects]] - name = "github.com/fatih/color" - packages = ["."] - revision = "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4" - version = "v1.7.0" - -[[projects]] - name = "github.com/fsnotify/fsnotify" - packages = ["."] - revision = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9" - version = "v1.4.7" - -[[projects]] - name = "github.com/gobuffalo/packr" - packages = ["."] - revision = "bd47f2894846e32edcf9aa37290fef76c327883f" - version = "v1.11.1" - -[[projects]] - branch = "master" - name = "github.com/hashicorp/hcl" - packages = [ - ".", - "hcl/ast", - "hcl/parser", - "hcl/printer", - "hcl/scanner", - "hcl/strconv", - "hcl/token", - "json/parser", - "json/scanner", - "json/token" - ] - revision = "ef8a98b0bbce4a65b5aa4c368430a80ddc533168" - -[[projects]] - name = "github.com/inconshreveable/mousetrap" - packages = ["."] - revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" - version = "v1.0" - -[[projects]] - branch = "master" - name = "github.com/jbenet/go-context" - packages = ["io"] - revision = "d14ea06fba99483203c19d92cfcd13ebe73135f4" - -[[projects]] - branch = "master" - name = "github.com/juju/ansiterm" - packages = [ - ".", - "tabwriter" - ] - revision = "720a0952cc2ac777afc295d9861263e2a4cf96a1" - -[[projects]] - name = "github.com/kevinburke/ssh_config" - packages = ["."] - revision = "9fc7bb800b555d63157c65a904c86a2cc7b4e795" - version = "0.4" - -[[projects]] - branch = "master" - name = "github.com/logrusorgru/aurora" - packages = ["."] - revision = "d694e6f975a9109e2b063829d563a7c153c4b53c" - -[[projects]] - branch = "master" - name = "github.com/lunixbochs/vtclean" - packages = ["."] - revision = "d14193dfc626125c831501c1c42340b4248e1f5a" - -[[projects]] - name = "github.com/magiconair/properties" - packages = ["."] - revision = "c2353362d570a7bfa228149c62842019201cfb71" - version = "v1.8.0" - -[[projects]] - name = "github.com/manifoldco/promptui" - packages = [ - ".", - "list", - "screenbuf" - ] - revision = "3dd80c00b7cb0bc779d1c204da6f3ae0fa6a4eee" - version = "v0.3.0" - -[[projects]] - name = "github.com/mattn/go-colorable" - packages = ["."] - revision = "167de6bfdfba052fa6b2d3664c8f5272e23c9072" - version = "v0.0.9" - -[[projects]] - name = "github.com/mattn/go-isatty" - packages = ["."] - revision = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39" - version = "v0.0.3" - -[[projects]] - branch = "master" - name = "github.com/mitchellh/go-homedir" - packages = ["."] - revision = "3864e76763d94a6df2f9960b16a20a33da9f9a66" - -[[projects]] - branch = "master" - name = "github.com/mitchellh/mapstructure" - packages = ["."] - revision = "bb74f1db0675b241733089d5a1faa5dd8b0ef57b" - -[[projects]] - name = "github.com/pelletier/go-buffruneio" - packages = ["."] - revision = "c37440a7cf42ac63b919c752ca73a85067e05992" - version = "v0.2.0" - -[[projects]] - name = "github.com/pelletier/go-toml" - packages = ["."] - revision = "c01d1270ff3e442a8a57cddc1c92dc1138598194" - version = "v1.2.0" - -[[projects]] - name = "github.com/pkg/errors" - packages = ["."] - revision = "645ef00459ed84a119197bfb8d8205042c6df63d" - version = "v0.8.0" - -[[projects]] - name = "github.com/sergi/go-diff" - packages = ["diffmatchpatch"] - revision = "1744e2970ca51c86172c8190fadad617561ed6e7" - version = "v1.0.0" - -[[projects]] - name = "github.com/spf13/afero" - packages = [ - ".", - "mem" - ] - revision = "63644898a8da0bc22138abf860edaf5277b6102e" - version = "v1.1.0" - -[[projects]] - name = "github.com/spf13/cast" - packages = ["."] - revision = "8965335b8c7107321228e3e3702cab9832751bac" - version = "v1.2.0" - -[[projects]] - name = "github.com/spf13/cobra" - packages = ["."] - revision = "ef82de70bb3f60c65fb8eebacbb2d122ef517385" - version = "v0.0.3" - -[[projects]] - branch = "master" - name = "github.com/spf13/jwalterweatherman" - packages = ["."] - revision = "7c0cea34c8ece3fbeb2b27ab9b59511d360fb394" - -[[projects]] - name = "github.com/spf13/pflag" - packages = ["."] - revision = "583c0c0531f06d5278b7d917446061adc344b5cd" - version = "v1.0.1" - -[[projects]] - name = "github.com/spf13/viper" - packages = ["."] - revision = "b5e8006cbee93ec955a89ab31e0e3ce3204f3736" - version = "v1.0.2" - -[[projects]] - name = "github.com/src-d/gcfg" - packages = [ - ".", - "scanner", - "token", - "types" - ] - revision = "f187355171c936ac84a82793659ebb4936bc1c23" - version = "v1.3.0" - -[[projects]] - branch = "master" - name = "github.com/xanzy/ssh-agent" - packages = ["."] - revision = "ba9c9e33906f58169366275e3450db66139a31a9" - -[[projects]] - branch = "master" - name = "golang.org/x/crypto" - packages = [ - "cast5", - "curve25519", - "ed25519", - "ed25519/internal/edwards25519", - "internal/chacha20", - "openpgp", - "openpgp/armor", - "openpgp/elgamal", - "openpgp/errors", - "openpgp/packet", - "openpgp/s2k", - "poly1305", - "ssh", - "ssh/agent", - "ssh/knownhosts" - ] - revision = "8ac0e0d97ce45cd83d1d7243c060cb8461dda5e9" - -[[projects]] - branch = "master" - name = "golang.org/x/net" - packages = ["context"] - revision = "db08ff08e8622530d9ed3a0e8ac279f6d4c02196" - -[[projects]] - branch = "master" - name = "golang.org/x/sys" - packages = [ - "unix", - "windows" - ] - revision = "9527bec2660bd847c050fda93a0f0c6dee0800bb" - -[[projects]] - name = "golang.org/x/text" - packages = [ - "internal/gen", - "internal/triegen", - "internal/ucd", - "transform", - "unicode/cldr", - "unicode/norm" - ] - revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0" - version = "v0.3.0" - -[[projects]] - name = "gopkg.in/src-d/go-billy.v4" - packages = [ - ".", - "helper/chroot", - "helper/polyfill", - "osfs", - "util" - ] - revision = "83cf655d40b15b427014d7875d10850f96edba14" - version = "v4.2.0" - -[[projects]] - name = "gopkg.in/src-d/go-git.v4" - packages = [ - ".", - "config", - "internal/revision", - "plumbing", - "plumbing/cache", - "plumbing/filemode", - "plumbing/format/config", - "plumbing/format/diff", - "plumbing/format/gitignore", - "plumbing/format/idxfile", - "plumbing/format/index", - "plumbing/format/objfile", - "plumbing/format/packfile", - "plumbing/format/pktline", - "plumbing/object", - "plumbing/protocol/packp", - "plumbing/protocol/packp/capability", - "plumbing/protocol/packp/sideband", - "plumbing/revlist", - "plumbing/storer", - "plumbing/transport", - "plumbing/transport/client", - "plumbing/transport/file", - "plumbing/transport/git", - "plumbing/transport/http", - "plumbing/transport/internal/common", - "plumbing/transport/server", - "plumbing/transport/ssh", - "storage", - "storage/filesystem", - "storage/filesystem/dotgit", - "storage/memory", - "utils/binary", - "utils/diff", - "utils/ioutil", - "utils/merkletrie", - "utils/merkletrie/filesystem", - "utils/merkletrie/index", - "utils/merkletrie/internal/frame", - "utils/merkletrie/noder" - ] - revision = "b23570073eaee3489e5e3d666f22ba5cbeb53243" - version = "v4.4.1" - -[[projects]] - name = "gopkg.in/warnings.v0" - packages = ["."] - revision = "ec4a0fea49c7b46c2aeb0b51aac55779c607e52b" - version = "v0.1.2" - -[[projects]] - name = "gopkg.in/yaml.v2" - packages = ["."] - revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183" - version = "v2.2.1" - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - inputs-digest = "347b073325ba74c56a5518314a41ee1885ef1b9a897afbe75c18f9d3874f7d3d" - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml deleted file mode 100644 index 5e632ae..0000000 --- a/Gopkg.toml +++ /dev/null @@ -1,46 +0,0 @@ -# Gopkg.toml example -# -# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md -# for detailed Gopkg.toml documentation. -# -# required = ["github.com/user/thing/cmd/thing"] -# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] -# -# [[constraint]] -# name = "github.com/user/project" -# version = "1.0.0" -# -# [[constraint]] -# name = "github.com/user/project2" -# branch = "dev" -# source = "github.com/myfork/project2" -# -# [[override]] -# name = "github.com/x/y" -# version = "2.4.0" -# -# [prune] -# non-go = false -# go-tests = true -# unused-packages = true - - -[[constraint]] - name = "github.com/manifoldco/promptui" - version = "0.3.0" - -[[constraint]] - branch = "master" - name = "github.com/mitchellh/go-homedir" - -[[constraint]] - name = "github.com/spf13/cobra" - version = "0.0.3" - -[[constraint]] - name = "github.com/spf13/viper" - version = "1.0.2" - -[prune] - go-tests = true - unused-packages = true diff --git a/main.go b/main.go index e152b71..692c380 100644 --- a/main.go +++ b/main.go @@ -20,8 +20,13 @@ package main -import "github.com/walmartdigital/commit-message-formatter/cmd" +import ( + "cmd" + "os" +) func main() { - cmd.Execute() + if err := cmd.Root.Execute(); err != nil { + os.Exit(1) + } } diff --git a/package/package.json b/package/package.json deleted file mode 100644 index 50382b3..0000000 --- a/package/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "go-cmf", - "version": "1.0.31", - "description": "CMF is an utility to standarize commit messages on porjects", - "scripts": { - "postinstall": "go-npm install", - "preuninstall": "go-npm uninstall" - }, - "author": "Rodrigo Navarro", - "license": "MIT", - "goBinary": { - "name": "cmf", - "path": "../bin", - "url": "https://github.com/WalmartDigital/commit-message-formatter/releases/download/v{{version}}/cmf_{{version}}_{{platform}}_{{arch}}.tar.gz" - }, - "dependencies": { - "go-npm": "^0.1.9" - } -} diff --git a/pkg/boilerplate/boilerplate.go b/pkg/boilerplate/boilerplate.go new file mode 100644 index 0000000..d34df6a --- /dev/null +++ b/pkg/boilerplate/boilerplate.go @@ -0,0 +1,8 @@ +package boilerplate + +import "fmt" + +// Create a configuration file +func Create() { + fmt.Println("CREATING FILE...") +} diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go new file mode 100644 index 0000000..e7c65fc --- /dev/null +++ b/pkg/cmd/cmd.go @@ -0,0 +1,33 @@ +package cmd + +import ( + "boilerplate" + "fmt" + + "github.com/spf13/cobra" +) + +// Root Root cli command +var Root = &cobra.Command{ + Use: "cmf", + Short: "Commit Message Formatter", + Long: "Generate custom commit message for your repo and standarize your commits log", + PreRun: func(cmd *cobra.Command, args []string) {}, + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("RUN...") + }, +} + +var boilerplateCMD = &cobra.Command{ + Use: "init", + Short: "Create configuration file", + Long: "Create .cmf.yaml configuration file", + PreRun: func(cmd *cobra.Command, args []string) {}, + Run: func(cmd *cobra.Command, args []string) { + boilerplate.Create() + }, +} + +func init() { + Root.AddCommand(boilerplateCMD) +} diff --git a/vendor b/vendor new file mode 120000 index 0000000..40ef090 --- /dev/null +++ b/vendor @@ -0,0 +1 @@ +./pkg \ No newline at end of file From 8657df5783d201e2d4277bef903b8533ff489e40 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Mon, 21 Jan 2019 23:49:21 -0300 Subject: [PATCH 24/90] no-story (feature): Add cmf file with Jira flow as default using v2 type --- .cmf.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .cmf.yaml diff --git a/.cmf.yaml b/.cmf.yaml new file mode 100644 index 0000000..e8536c5 --- /dev/null +++ b/.cmf.yaml @@ -0,0 +1,24 @@ +PROMPT: + - KEY: "JIRA-TASK" + LABEL: "Jira task ID (no-story)" + DEFAULT_VALUE: "no-story" + - KEY: "CHANGE" + LABEL: "Type of change:" + OPTIONS: + - VALUE: "feature" + DESC: "Add new feature" + - VALUE: "fix" + DESC: "A bug fix" + - VALUE: "test" + DESC: "Adding missing tests or correcting ones" + - VALUE: "style" + DESC: "A code change to improve clean code" + - VALUE: "build-ci" + DESC: "Changes on the build system or CI files" + - VALUE: "refactor" + DESC: "A code change" + - VALUE: "docs" + DESC: "Documentation only changes" + - KEY: "MESSAGE" + LABEL: "Commit message" +TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}" From 01a7876ab39e31b634592a353eb6985f4d73f08f Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Mon, 21 Jan 2019 23:52:42 -0300 Subject: [PATCH 25/90] no-story (refactor): Removed old packages impletentation --- cmd/cmd-packr.go | 15 ------ cmd/jira.go | 55 --------------------- cmd/root.go | 121 ---------------------------------------------- cmd/utils.go | 123 ----------------------------------------------- cmd/version.go | 51 -------------------- 5 files changed, 365 deletions(-) delete mode 100644 cmd/cmd-packr.go delete mode 100644 cmd/jira.go delete mode 100644 cmd/root.go delete mode 100644 cmd/utils.go delete mode 100644 cmd/version.go diff --git a/cmd/cmd-packr.go b/cmd/cmd-packr.go deleted file mode 100644 index abe89f7..0000000 --- a/cmd/cmd-packr.go +++ /dev/null @@ -1,15 +0,0 @@ -// Code generated by github.com/gobuffalo/packr. DO NOT EDIT - -package cmd - -import "github.com/gobuffalo/packr" - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -func init() { - packr.PackJSONBytes("../package", "package.json", "\"H4sIAAAAAAAA/2SRPW/cMAyGd/8KwnNOSrrlxrYo0CEdigLdGjAyz2YhiQZFX5EY/u+F/IELkJGPX1OvHs0NQJsxUXuGtpdTSJf2rrIraWHJFT+4e/fpccMdlaA82v7py9M34AKYYTKObK9gAsUwd6j8RhAkJTZIVAr2VEAyjKJ/KVjZ9m3bSnuG2gSgHaUY52IY414pjwkOcreHlKb8MXVjDcCy7sfJBtGa+Smdci/wA6+oKtvxkQPlsl7+6fuvjfXymTPq663T4eeQUxugDRU55184H3TStc5gNpaz9z3bML24IMn/xphQ7Sv3bBj95uW0ezldRBOakXqlSFio+E7+5SjY+es872+xLD6ky/O7+Xmex4hWf18H1DAsizNU17/dJHQ0Uu4oB6Z3pjdpte+fe/fgHtd8szT/AwAA//991d3QEwIAAA==\"") - packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/3xSzW6zMBC85ylGnL7vkBfwjRLURiUBFVKpR2KWxBK2I7y0RYh3r/hpG4WoJ8uenx2vJnmJd0kmVsAaz+GbgBc8+fvH0FsBQOQ/hJGAl1JFksFnArcXgi0hz7k5kZh4cZJt430qxstg9epHh1DAKynnpiZvBoBNmAYCnl8UMPSBG/xKqD6XIhybE66QXzqT43tDlDlBK+eGc+A42BrS1jVJHt6sIbd0c9xWdzJD2oLmj4MtlL7U9p0gK8rNCC6tjo2qirVUC7dgtHGwZlzryINrHZMeMgZblKq6F66mMpds67/zLXWFlW6h2VjZaDKcs7IG1lTtrB+p35XYxZtDdFMJvyxJMhXQtmimbf3QwzT1bysUWK0VQ5Nz+RAvC3dJ5GdDsq6bOtf3/7pumtX3/wW6bnbqe2/1FQAA//9UhR3WqQIAAA==\"") - packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/3xSzW6jMBi85ylGnHYPeQFuXoJ22ZAEBXalHh3zkVgFO7JNW4R498oEtTREPVn+5ucbW5MdD7usCFfAGtv4KUTwNzmydcHybbACgJT9ilM/lobDcfuMZBPM6NEftv8df+XmVJNwcBeC664EXUFcuDpTeOMdsiI57PNwvHir/yz9F4cIKuKuNRRMALCJ8yhEwMoSil5xh8+E8m0pwqk9Y4Z80h1Z92iJVGc00lp/eo6FNhDaGBLOz7Qiu3SzrqsfZIbQJU0Ph9OQzdXoF4KoiasRXFqdWlmXayEXbtFoY6HV+K0jD7azjhqfMUpQyfpROEMVF06b7/MtdaUWdqHZaNE2pBx3UitoVXeT3s4rsYvznN13ItJNIx0aspb7fUW8y1JW+FV9/9G5YcCPvr91ahh+huj7yW0YgtV7AAAA///YXSBkrQIAAA==\"") - packr.PackJSONBytes("../configs", "default.yaml", "\"H4sIAAAAAAAA/3xSzW6zMBC85ylGnL7vkBfwjRLURiUBFVKpR2KWxBK2I7y0RYh3r/hpG4WoJ8uenx2vJnmJd0kmVsAaz+GbgBc8+fvH0FsBQOQ/hJGAl1JFksFnArcXgi0hz7k5kZh4cZJt430qxstg9epHh1DAKynnpiZvBoBNmAYCnl8UMPSBG/xKqD6XIhybE66QXzqT43tDlDlBK+eGc+A42BrS1jVJHt6sIbd0c9xWdzJD2oLmj4MtlL7U9p0gK8rNCC6tjo2qirVUC7dgtHGwZlzryINrHZMeMgZblKq6F66mMpds67/zLXWFlW6h2VjZaDKcs7IG1lTtrB+p35XYxZtDdFMJvyxJMhXQtmimbf3QwzT1bysUWK0VQ5Nz+RAvC3dJ5GdDsq6bOtf3/7pumtX3/wW6bnbqe2/1FQAA//9UhR3WqQIAAA==\"") - packr.PackJSONBytes("../configs", "jira.yaml", "\"H4sIAAAAAAAA/3xSzW6jMBi85ylGnHYPeQFuXoJ22ZAEBXalHh3zkVgFO7JNW4R498oEtTREPVn+5ucbW5MdD7usCFfAGtv4KUTwNzmydcHybbACgJT9ilM/lobDcfuMZBPM6NEftv8df+XmVJNwcBeC664EXUFcuDpTeOMdsiI57PNwvHir/yz9F4cIKuKuNRRMALCJ8yhEwMoSil5xh8+E8m0pwqk9Y4Z80h1Z92iJVGc00lp/eo6FNhDaGBLOz7Qiu3SzrqsfZIbQJU0Ph9OQzdXoF4KoiasRXFqdWlmXayEXbtFoY6HV+K0jD7azjhqfMUpQyfpROEMVF06b7/MtdaUWdqHZaNE2pBx3UitoVXeT3s4rsYvznN13ItJNIx0aspb7fUW8y1JW+FV9/9G5YcCPvr91ahh+huj7yW0YgtV7AAAA///YXSBkrQIAAA==\"") -} diff --git a/cmd/jira.go b/cmd/jira.go deleted file mode 100644 index db0eb26..0000000 --- a/cmd/jira.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright © 2018 Rodrigo Navarro -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package cmd - -import ( - "bytes" - - "github.com/gobuffalo/packr" - "github.com/spf13/cobra" - "github.com/spf13/viper" -) - -// versionCmd represents the version command -var versionCmd = &cobra.Command{ - Use: "jira", - Short: "Display current version", - Long: `version Display the current version of cfm`, - PreRun: jiraPreRun, - Run: func(cmd *cobra.Command, args []string) { - p := parseTemplate(viper.GetString("template")) - commit(p) - }, -} - -func jiraPreRun(cmd *cobra.Command, args []string) { - box := packr.NewBox("../configs") - s := box.String("jira.yaml") - viper.SetConfigType("yaml") - err := viper.ReadConfig(bytes.NewBuffer([]byte(s))) - checkErr(err) - - promptList() -} - -func init() { - rootCmd.AddCommand(versionCmd) -} diff --git a/cmd/root.go b/cmd/root.go deleted file mode 100644 index c1f554d..0000000 --- a/cmd/root.go +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright © 2018 Rodrigo Navarro -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package cmd - -import ( - "bytes" - "os" - - "github.com/gobuffalo/packr" - homedir "github.com/mitchellh/go-homedir" - "github.com/spf13/cobra" - "github.com/spf13/viper" -) - -type option struct { - Value string - Desc string -} -type keyValue struct { - Key string - Value string -} - -var cfgFile string -var variables []keyValue - -// rootCmd represents the base command when called without any subcommands -var rootCmd = &cobra.Command{ - Use: "cmf", - Short: "Generate commit message for your repo", - Long: `CMF (Commit Message Formatter): -Generate a formated message for your repo using common notations for: - - Build & CI - - Documentation - - Features - - Bug fixes - - Refactor - - Code style - - Test`, - PreRun: func(cmd *cobra.Command, args []string) { promptList() }, - Run: func(cmd *cobra.Command, args []string) { - p := parseTemplate(viper.GetString("template")) - commit(p) - }, -} - -// Execute adds all child commands to the root command and sets flags appropriately. -// This is called by main.main(). It only needs to happen once to the rootCmd. -func Execute() { - if err := rootCmd.Execute(); err != nil { - os.Exit(1) - } -} - -func init() { - cobra.OnInitialize(initConfig) - rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cmf.yaml)") -} - -func loadLocalConfigFile(name string) error { - box := packr.NewBox("../configs") - s := box.String(name + ".yaml") - viper.SetConfigType("yaml") - return viper.ReadConfig(bytes.NewBuffer([]byte(s))) -} - -// initConfig reads in config file and ENV variables if set. -func initConfig() { - err := loadLocalConfigFile("default") - checkErr(err) - - projectDir, err := os.Getwd() - checkErr(err) - projectConfigFile := projectDir + "/.cmf.yaml" - - if _, err := os.Stat(projectConfigFile); err == nil { - cfgFile = projectConfigFile - } - - if cfgFile != "" { - // Use config file from the flag. - viper.SetConfigFile(cfgFile) - } else { - // Find home directory. - home, err := homedir.Dir() - checkErr(err) - - // Search config in home directory with name ".cfm" (without extension). - viper.AddConfigPath(home) - viper.SetConfigName(".cmf") - } - - viper.AutomaticEnv() - - // If a config file is found, read it in. - if err := viper.ReadInConfig(); err == nil { - defaultFlow := viper.GetString("default") - if defaultFlow != "" { - err := loadLocalConfigFile(defaultFlow) - checkErr(err) - } - } -} diff --git a/cmd/utils.go b/cmd/utils.go deleted file mode 100644 index af72e04..0000000 --- a/cmd/utils.go +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright © 2018 Rodrigo Navarro -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package cmd - -import ( - "errors" - "fmt" - "os" - "os/exec" - "strings" - - "github.com/fatih/color" - . "github.com/logrusorgru/aurora" - "github.com/manifoldco/promptui" - "github.com/spf13/viper" -) - -func checkErr(err error) { - if err != nil { - color.Set(color.FgMagenta) - defer color.Unset() - fmt.Print(err) - os.Exit(0) - } -} - -func parseTemplate(template string) string { - for _, v := range variables { - template = strings.Replace(template, "{{"+v.Key+"}}", v.Value, -1) - } - - return template -} - -func promptList() { - settings := viper.AllSettings() - prompts := settings["prompt"].([]interface{}) - for _, v := range prompts { - result := "" - pr := v.(map[interface{}]interface{}) - if options := pr["OPTIONS"]; options == nil { - validate := func(input string) error { - if input == "" { - return errors.New("Empty value") - } - return nil - } - p := promptui.Prompt{ - Label: pr["LABEL"], - // Templates: templates, - Validate: validate, - } - r, err := p.Run() - checkErr(err) - result = r - } else { - - templates := &promptui.SelectTemplates{ - Label: "{{ . | bold }}", - Active: "\U0001F449 {{ .Value | cyan }} {{ .Desc | faint }}", - Inactive: " {{ .Value }} {{ .Desc | faint }}", - Selected: "\U0001F44D {{ .Value | bold }}", - } - optList := pr["OPTIONS"].([]interface{}) - var opts []*option - for _, o := range optList { - op := o.(map[interface{}]interface{}) - opts = append(opts, &option{Value: op["VALUE"].(string), Desc: op["DESC"].(string)}) - } - p := promptui.Select{ - Label: pr["LABEL"], - Items: opts, - Templates: templates, - } - i, _, err := p.Run() - checkErr(err) - result = opts[i].Value - } - - variables = append(variables, keyValue{ - Key: pr["KEY"].(string), - Value: result, - }) - } -} - -func commit(message string) (err error) { - cmdGit := exec.Command("git", "commit", "-m", message) - lastCommit := "Last commit: " + message - output, err := cmdGit.Output() - checkErr(err) - fmt.Println(string(output)) - fmt.Println(Gray(lastCommit)) - fmt.Println(Green("Done")) - - return -} - -func init() { - cmdGit := exec.Command("git", "diff", "--cached", "--exit-code") - _, err := cmdGit.Output() - if err == nil { - checkErr(errors.New("No changes added to commit")) - } -} diff --git a/cmd/version.go b/cmd/version.go deleted file mode 100644 index 255476f..0000000 --- a/cmd/version.go +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright © 2018 Rodrigo Navarro -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package cmd - -import ( - "encoding/json" - "fmt" - - "github.com/gobuffalo/packr" - "github.com/spf13/cobra" -) - -// versionCmd represents the version command -var jiraCmd = &cobra.Command{ - Use: "version", - Short: "Display current version", - Long: `version Display the current version of cmf`, - Run: func(cmd *cobra.Command, args []string) { - box := packr.NewBox("../package") - raw := box.Bytes("package.json") - var p struct { - Version string `json:"version"` - Description string `json:"description"` - } - json.Unmarshal(raw, &p) - fmt.Println(p.Description) - fmt.Println("v" + p.Version) - }, -} - -func init() { - rootCmd.AddCommand(jiraCmd) -} From 5c748fa8176f259d64b6bbade23506559ad6d5b4 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 22 Jan 2019 00:00:12 -0300 Subject: [PATCH 26/90] no-story (refactor): Add custom flow file and add options to default flows --- configs/custom.yaml | 23 +++++++++++++++++++++++ configs/default.yaml | 2 +- configs/jira.yaml | 5 +++-- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 configs/custom.yaml diff --git a/configs/custom.yaml b/configs/custom.yaml new file mode 100644 index 0000000..91aa62c --- /dev/null +++ b/configs/custom.yaml @@ -0,0 +1,23 @@ +PROMPT: + - KEY: "CHANGE" + LABEL: "Type of change:" + OPTIONS: + - VALUE: "feature" + DESC: "Add new feature" + - VALUE: "fix" + DESC: "A bug fix" + - VALUE: "test" + DESC: "Adding missing tests or correcting ones" + - VALUE: "style" + DESC: "A code change to improve clean code" + - VALUE: "build-ci" + DESC: "Changes on the build system or CI files" + - VALUE: "refactor" + DESC: "A code change" + - VALUE: "docs" + DESC: "Documentation only changes" + - KEY: "MODULE" + LABEL: "Affected module" + - KEY: "MESSAGE" + LABEL: "Commit message" +TEMPLATE: "Create your own template or options {{CHANGE}}({{MODULE}}): {{MESSAGE}}" diff --git a/configs/default.yaml b/configs/default.yaml index c8167ee..c298310 100644 --- a/configs/default.yaml +++ b/configs/default.yaml @@ -1,6 +1,6 @@ PROMPT: - KEY: "CHANGE" - LABEL: "Select the type of change:" + LABEL: "Type of change:" OPTIONS: - VALUE: "feature" DESC: "Add new feature" diff --git a/configs/jira.yaml b/configs/jira.yaml index 26dafcc..e8536c5 100644 --- a/configs/jira.yaml +++ b/configs/jira.yaml @@ -1,8 +1,9 @@ PROMPT: - KEY: "JIRA-TASK" - LABEL: "Jira task ID" + LABEL: "Jira task ID (no-story)" + DEFAULT_VALUE: "no-story" - KEY: "CHANGE" - LABEL: "Select the type of change:" + LABEL: "Type of change:" OPTIONS: - VALUE: "feature" DESC: "Add new feature" From 329c759a0fbd8db3c70bf5212cc37086e76ab15d Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 22 Jan 2019 00:03:30 -0300 Subject: [PATCH 27/90] no-story (feature): Add boilerplate package to create cmf files on projects --- pkg/boilerplate/boilerplate.go | 71 +++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/pkg/boilerplate/boilerplate.go b/pkg/boilerplate/boilerplate.go index d34df6a..2df33ef 100644 --- a/pkg/boilerplate/boilerplate.go +++ b/pkg/boilerplate/boilerplate.go @@ -1,8 +1,75 @@ package boilerplate -import "fmt" +import ( + "fmt" + "os" + "prompt" + + packr "github.com/gobuffalo/packr/v2" + color "github.com/logrusorgru/aurora" +) + +func checkErr(err error) { + if err != nil { + fmt.Print(color.Red(err)) + os.Exit(0) + } +} + +var flows = map[string][]byte{ + "default": []byte(""), + "jira": []byte(""), + "custom": []byte(""), +} + +var flowTypes = []prompt.SelectItem{ + {Title: "Default", Description: "Flow with module affected and message", Value: "default"}, + {Title: "Jira", Description: "Flow based on Jira task", Value: "jira"}, + {Title: "Custom", Description: "Flow with your own rules", Value: "custom"}, +} + +var configurationSelectFlow = &prompt.SelectConfiguration{ + ActiveTpl: "\U0001F449 {{ .Title | cyan }}", + InactiveTpl: " {{ .Title | white }}", + SelectPrompt: "Flow Type", + SelectedTpl: "{{ \"Flow:\" | bold }} {{ .Title | green | bold }}", + DetailsTpl: `------------------------------- +{{ .Title | white | bold }} {{ .Description | white | bold }}`, +} + +func createConfigurationFile(flowType string) error { + projectFolder, err := os.Getwd() + if err != nil { + return err + } + + configFile, err := os.Create(projectFolder + "/.cmf.yaml") + defer configFile.Close() + + if err != nil { + return err + } + + _, err = configFile.Write(flows[flowType]) + + return err +} // Create a configuration file func Create() { - fmt.Println("CREATING FILE...") + selector := + prompt.Select(flowTypes, *configurationSelectFlow) + + err := createConfigurationFile(selector.Value) + checkErr(err) + + fmt.Println(color.Gray("File .cmf.yaml for " + selector.Value + " flow generated ")) + fmt.Println("Happy coding. \U0001F604") +} + +func init() { + box := packr.New("config", "../../configs") + flows["default"], _ = box.Find("default.yaml") + flows["jira"], _ = box.Find("jira.yaml") + flows["custom"], _ = box.Find("custom.yaml") } From bea1a419eccb936d556ca4f4bf20ca43ab66b991 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 22 Jan 2019 00:06:29 -0300 Subject: [PATCH 28/90] no-story (feature): Add prompt package with input and select utility --- pkg/prompt/prompt.go | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 pkg/prompt/prompt.go diff --git a/pkg/prompt/prompt.go b/pkg/prompt/prompt.go new file mode 100644 index 0000000..e194e64 --- /dev/null +++ b/pkg/prompt/prompt.go @@ -0,0 +1,62 @@ +package prompt + +import ( + "errors" + "strings" + + "github.com/mritd/promptx" +) + +// SelectItem a default item struct +type SelectItem struct { + Title string + Description string + Value string +} + +// SelectConfiguration a complete configuration select options +type SelectConfiguration struct { + ActiveTpl string + InactiveTpl string + SelectPrompt string + SelectedTpl string + DetailsTpl string +} + +// Select Returns a selected item +func Select(items []SelectItem, config SelectConfiguration) SelectItem { + configuration := &promptx.SelectConfig{ + ActiveTpl: config.ActiveTpl, + InactiveTpl: config.InactiveTpl, + SelectPrompt: config.SelectPrompt, + SelectedTpl: config.SelectedTpl, + DisPlaySize: 9, + DetailsTpl: config.DetailsTpl, + } + + selector := &promptx.Select{ + Items: items, + Config: configuration, + } + + return items[selector.Run()] +} + +// Input return a simple user input +func Input(title string, errorMessage string, defaultValue string) string { + input := promptx.NewDefaultPrompt(func(line []rune) error { + if strings.TrimSpace(string(line)) == "" && defaultValue == "" { + return errors.New(errorMessage) + } + + return nil + }, title) + + value := input.Run() + + if value == "" && defaultValue != "" { + return defaultValue + } + + return value +} From 13daaa6c8b2cbaa44170af30f0c8ad56b0671743 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 22 Jan 2019 00:07:44 -0300 Subject: [PATCH 29/90] no-story (feature): Add template parse package --- pkg/template/template.go | 117 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 pkg/template/template.go diff --git a/pkg/template/template.go b/pkg/template/template.go new file mode 100644 index 0000000..c2eff2f --- /dev/null +++ b/pkg/template/template.go @@ -0,0 +1,117 @@ +package template + +import ( + "fmt" + "os" + "prompt" + "strings" + + color "github.com/logrusorgru/aurora" + "github.com/spf13/viper" +) + +type option struct { + Value string + Desc string +} + +type keyValue struct { + Key string + Value string +} + +func checkErr(err error) { + if err != nil { + fmt.Print(color.Red(err)) + os.Exit(0) + } +} + +func parseTemplate(template string, variables []keyValue) string { + for _, v := range variables { + template = strings.Replace(template, "{{"+v.Key+"}}", v.Value, -1) + } + + return template +} + +func executeFlow(settings map[string]interface{}) (variables []keyValue) { + prompts := settings["prompt"].([]interface{}) + for _, v := range prompts { + result := "" + var label = "" + var errorMessage = "Field empty" + var defaultValue = "" + + pr := v.(map[interface{}]interface{}) + + if value, ok := pr["LABEL"]; ok { + label = value.(string) + } + + if value, ok := pr["ERROR_LABEL"]; ok { + errorMessage = value.(string) + } + + if value, ok := pr["DEFAULT_VALUE"]; ok { + defaultValue = value.(string) + } + + if options := pr["OPTIONS"]; options == nil { + result = prompt.Input(label, errorMessage, defaultValue) + } else { + configurationSelectOption := &prompt.SelectConfiguration{ + ActiveTpl: "\U0001F449 {{ .Title | cyan | bold }}", + InactiveTpl: " {{ .Title | white }}", + SelectPrompt: label, + SelectedTpl: "\U0001F44D {{ \"" + label + "\" | cyan }} {{ .Title | cyan | bold }}", + DetailsTpl: `------------------------------- +{{ .Title | white | bold }} {{ .Description | white | bold }}`, + } + + optList := pr["OPTIONS"].([]interface{}) + var opts []prompt.SelectItem + for _, o := range optList { + op := o.(map[interface{}]interface{}) + + opts = append(opts, prompt.SelectItem{Title: op["VALUE"].(string), Value: op["VALUE"].(string), Description: op["DESC"].(string)}) + } + + selector := prompt.Select(opts, *configurationSelectOption) + result = selector.Value + } + + variables = append(variables, keyValue{ + Key: pr["KEY"].(string), + Value: result, + }) + } + + return +} + +func setFlowFileAsVariables() map[string]interface{} { + projectDir, err := os.Getwd() + checkErr(err) + projectConfigFile := projectDir + "/.cmf.yaml" + + _, err = os.Stat(projectConfigFile) + checkErr(err) + + viper.SetConfigFile(projectConfigFile) + viper.SetConfigType("yaml") + viper.AutomaticEnv() + + err = viper.ReadInConfig() + checkErr(err) + + return viper.AllSettings() +} + +// Run initialize prompt flow +func Run() string { + settings := setFlowFileAsVariables() + variables := executeFlow(settings) + template := settings["template"].(string) + return parseTemplate(template, variables) +} From 308c821ede0d485b6280e3567140cd91a0e52f80 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 22 Jan 2019 00:15:04 -0300 Subject: [PATCH 30/90] no-story (feature): Add git package with commit and amend commands --- pkg/git/git.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 pkg/git/git.go diff --git a/pkg/git/git.go b/pkg/git/git.go new file mode 100644 index 0000000..df83b46 --- /dev/null +++ b/pkg/git/git.go @@ -0,0 +1,57 @@ +package git + +import ( + "errors" + "fmt" + "os" + "os/exec" + + color "github.com/logrusorgru/aurora" +) + +func checkErr(err error) { + if err != nil { + fmt.Println(color.Red(err)) + os.Exit(1) + } +} + +// CheckTree perform a git tree check +func CheckTree() { + cmdGit := exec.Command("git", "diff", "--cached", "--exit-code") + _, err := cmdGit.Output() + if err == nil { + checkErr(errors.New("No changes added to commit")) + } +} + +func commit(cmdGit *exec.Cmd, message ...interface{}) { + output, err := cmdGit.Output() + checkErr(err) + + fmt.Println("") + fmt.Println("Committing: ", color.Blue(message)) + fmt.Println(color.Gray("-------------------------------")) + fmt.Println("") + fmt.Println(color.Gray(string(output))) + fmt.Println(color.Gray("-------------------------------")) + fmt.Println(color.Green("Done \U0001F604")) + + return +} + +// Commit execute commit +func Commit(message string) (err error) { + cmdGit := exec.Command("git", "commit", "-m", message) + commit(cmdGit, "Committing: ", color.Blue(message)) + + return +} + +// Amend execute commit amend +func Amend(message string) (err error) { + cmdGit := exec.Command("git", "commit", "--amend", "-m", message) + commit(cmdGit, "Amending: ", color.Blue(message)) + + return +} From 5a4a69f8a5b06b9e4c4617f08120538ea25a5564 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 22 Jan 2019 00:16:20 -0300 Subject: [PATCH 31/90] no-story (feature): Add cmd package to register commands on cobra cli --- pkg/cmd/cmd.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go index e7c65fc..1531b3f 100644 --- a/pkg/cmd/cmd.go +++ b/pkg/cmd/cmd.go @@ -2,8 +2,9 @@ package cmd import ( "boilerplate" - "fmt" + "template" + "github.com/commit-message-formatter/pkg/git" "github.com/spf13/cobra" ) @@ -14,7 +15,20 @@ var Root = &cobra.Command{ Long: "Generate custom commit message for your repo and standarize your commits log", PreRun: func(cmd *cobra.Command, args []string) {}, Run: func(cmd *cobra.Command, args []string) { - fmt.Println("RUN...") + go git.CheckTree() + message := template.Run() + git.Commit(message) + }, +} + +var amend = &cobra.Command{ + Use: "amend", + Short: "Amend commit message", + Long: "Amend last commit message", + PreRun: func(cmd *cobra.Command, args []string) {}, + Run: func(cmd *cobra.Command, args []string) { + message := template.Run() + git.Amend(message) }, } @@ -30,4 +44,5 @@ var boilerplateCMD = &cobra.Command{ func init() { Root.AddCommand(boilerplateCMD) + Root.AddCommand(amend) } From d87285c80af2d18f6aa19607244f04871c0e61f9 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 22 Jan 2019 07:26:54 -0300 Subject: [PATCH 32/90] no-story (feature): Add static files --- packrd/packed-packr.go | 33 ++++++++++++++++++++++++++++ pkg/boilerplate/boilerplate-packr.go | 7 ++++++ 2 files changed, 40 insertions(+) create mode 100644 packrd/packed-packr.go create mode 100644 pkg/boilerplate/boilerplate-packr.go diff --git a/packrd/packed-packr.go b/packrd/packed-packr.go new file mode 100644 index 0000000..590719a --- /dev/null +++ b/packrd/packed-packr.go @@ -0,0 +1,33 @@ +// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. + +// You can use the "packr2 clean" command to clean up this, +// and any other packr generated files. +package packrd + +import ( + "github.com/gobuffalo/packr/v2" + "github.com/gobuffalo/packr/v2/file/resolver" +) + +var _ = func() error { + const gk = "7e12094938b20695eb2a126ff944e858" + g := packr.New(gk, "") + hgr, err := resolver.NewHexGzip(map[string]string{ + "62db5f172a9b22c8d52c942e61af1852": "1f8b08000000000000ff7c52cd6eb33010bce729469cbeef9017f08d12d44625011552a9476296c412f646d8b4458877aff8691b85a827cb9e9f1daf26798977492656c01acfe19b80173cf9fbc7d05b0140e43f84918097b517029790e7dc9c484c609c64db789f8af132e85ffde8100a7825e5aea9c99b016013a68180e717050c7de006bf12aacfa508c7e6842be497eec8ba7b439439412b6b8773e058700dc9754dd20d6f6cc82eddac6bab3b9921b9a0f9e3700ca52f35bf136445b919c1a5d5b15155b1966ae1168c36166ce0ce849107db5a477ac8186c51aaea5eb89aca5c3aaeffceb7d4152ced42b361d968322e778a0dd854edac1fa9df3dd8c59b4374d303bf2c493a2aa0b968a66dfdd0c334f56f7b13b0d6ca4193b5f9102f0b7749e46743b2ae9b8ad6f7ffba6e9ad5f7ff05ba6e76ea7b6ff5150000fffff06ff47b9e020000", + "80fa7149cc272248518019d08636b2ca": "1f8b08000000000000ff7c92cd8e9b301485f7798a2356ed625ec03b4a503b2a1950612a7549cc25b1847d916d9a22c4bb5706da4621ea0ae1f3e30f748a6ff9a9a8c40178c1d7f48740947c89df3ea7d10100b2f8539a0944d5d813b885bcd6e6426215f3a27acddf4ab1bc84fcf7387b4f05a2966a3f588a360138a6652210c54d0343373ce87741f56b1fc279b8e04ef967f7e4fcb34b94b9402be7c233781cd842b2b5247d3863436edfe6fcd83d6186e486b60f876728dd5bfe49901dd56611f755e74175cd8b54bbb664a97160037f252c3eb8d179d281317945abba677096da5a7ab6ffe7dbe71a966e9739b21c34195f7bc5066cba71cb2fd63f3b38e5c7f7ec610771db92f4d4407333ac7febaf3d2dcbf87137096bad3c34395707bc2a3d15595c05b2c452ed09230f167c33f0a4fb2e9cb005f781cc619ad631cef387695a79e6f9a3c0346db7cd7374f81d0000ffffcbb5761ec2020000", + "b3a6c6c38da037c9ce49dbf36d351adb": "1f8b08000000000000ff7c92416f9c301085effb2b9e382587fd03dc5c96b6346c160552a9a7ca31c3c62a7822dbb44588ff5e99252d0dab9c10f3e67df32cbde2e1742caa7807ec71977e8b117dc91ec4be12e55db403805c7c48f330d656c24bf703d9013786f7ceb31d6e2f4b87f4a378ccabef5f45fe98c6885ee568c54d3e8bfb4fe9ffd06a78217003f52ccd99e28b782aaaec745fc6f34ff0bf521b92beb7142d42385b26312251d730f40b6ff49551ffde9af0d49fb152fead7b72feda116dcee8b473e11b761cd842b1b5a47c98b121b7a5393fb4573243714dcbc3e119ba7bb1fc93a05a926616b7a8a75eb7f55ee90d2d99310e6ce09f09f31edce03c75216392a1d1edb570961aa93cdbf7f36d7d352bb7f11c58f51d192fbd660336edb0f8ddba07c7b42cc5db2224dc75daa323e764b857a5c722175538358e7f1b394db819c74b91a6e936c6382eb4698a767f020000ffff9e0a6c4dcb020000", + }) + if err != nil { + panic(err) + } + g.DefaultResolver = hgr + + func() { + b := packr.New("config", "../../configs") + b.SetResolver("custom.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "80fa7149cc272248518019d08636b2ca"}) + b.SetResolver("default.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "62db5f172a9b22c8d52c942e61af1852"}) + b.SetResolver("jira.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "b3a6c6c38da037c9ce49dbf36d351adb"}) + }() + + return nil +}() diff --git a/pkg/boilerplate/boilerplate-packr.go b/pkg/boilerplate/boilerplate-packr.go new file mode 100644 index 0000000..f4b2d7a --- /dev/null +++ b/pkg/boilerplate/boilerplate-packr.go @@ -0,0 +1,7 @@ +// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. + +// You can use the "packr clean" command to clean up this, +// and any other packr generated files. +package boilerplate + +import _ "github.com/commit-message-formatter/packrd" From 6f466d91f09e2ace720e99fb728e8fea53706e4c Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 22 Jan 2019 07:40:51 -0300 Subject: [PATCH 33/90] no-story (feature): Add version command --- pkg/cmd/cmd.go | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go index 1531b3f..b9f40e5 100644 --- a/pkg/cmd/cmd.go +++ b/pkg/cmd/cmd.go @@ -2,6 +2,7 @@ package cmd import ( "boilerplate" + "fmt" "template" "github.com/commit-message-formatter/pkg/git" @@ -10,10 +11,9 @@ import ( // Root Root cli command var Root = &cobra.Command{ - Use: "cmf", - Short: "Commit Message Formatter", - Long: "Generate custom commit message for your repo and standarize your commits log", - PreRun: func(cmd *cobra.Command, args []string) {}, + Use: "cmf", + Short: "Commit Message Formatter", + Long: "Generate custom commit message for your repo and standarize your commits log", Run: func(cmd *cobra.Command, args []string) { go git.CheckTree() message := template.Run() @@ -21,11 +21,19 @@ var Root = &cobra.Command{ }, } +var version = &cobra.Command{ + Use: "version", + Short: "Version cmf", + Long: "Display version of commit message formatter", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("CMF - Commit Message Formatter v2.0") + }, +} + var amend = &cobra.Command{ - Use: "amend", - Short: "Amend commit message", - Long: "Amend last commit message", - PreRun: func(cmd *cobra.Command, args []string) {}, + Use: "amend", + Short: "Amend commit message", + Long: "Amend last commit message", Run: func(cmd *cobra.Command, args []string) { message := template.Run() git.Amend(message) @@ -33,16 +41,16 @@ var amend = &cobra.Command{ } var boilerplateCMD = &cobra.Command{ - Use: "init", - Short: "Create configuration file", - Long: "Create .cmf.yaml configuration file", - PreRun: func(cmd *cobra.Command, args []string) {}, + Use: "init", + Short: "Create configuration file", + Long: "Create .cmf.yaml configuration file", Run: func(cmd *cobra.Command, args []string) { boilerplate.Create() }, } func init() { + Root.AddCommand(version) Root.AddCommand(boilerplateCMD) Root.AddCommand(amend) } From f1a54f2677ad32628e1e55a0e49f4ace6dca4491 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 22 Jan 2019 09:24:49 -0300 Subject: [PATCH 34/90] 2.0.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 688b933..3126fae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.34", + "version": "2.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index e26acad..563c301 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "1.0.34", + "version": "2.0.0", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 36d8ec1c026ecc63c8082423c7a5384652313f83 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Thu, 24 Jan 2019 14:58:49 -0300 Subject: [PATCH 35/90] no-story (fix): Fix error handler when use cmf without cmf file or wrong cmf file --- pkg/template/template.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/template/template.go b/pkg/template/template.go index c2eff2f..846e1b5 100644 --- a/pkg/template/template.go +++ b/pkg/template/template.go @@ -22,7 +22,7 @@ type keyValue struct { func checkErr(err error) { if err != nil { - fmt.Print(color.Red(err)) + fmt.Print(color.Red("An error occurred, maybe 'cmf init' could fix it")) os.Exit(0) } } From 172654e50a9de3b7b21b5f072451458827c88258 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Thu, 24 Jan 2019 14:59:14 -0300 Subject: [PATCH 36/90] 2.0.1 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3126fae..3af38c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.0", + "version": "2.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 563c301..e9728b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.0", + "version": "2.0.1", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From cd89592eccb465ef7ccc4ca5330f353f67edb39c Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Thu, 24 Jan 2019 15:17:26 -0300 Subject: [PATCH 37/90] no-story (feature): Add command exec output to os.sdtout --- pkg/git/git.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkg/git/git.go b/pkg/git/git.go index df83b46..5907229 100644 --- a/pkg/git/git.go +++ b/pkg/git/git.go @@ -1,6 +1,7 @@ package git import ( + "context" "errors" "fmt" "os" @@ -26,14 +27,13 @@ func CheckTree() { } func commit(cmdGit *exec.Cmd, message ...interface{}) { - output, err := cmdGit.Output() - checkErr(err) - fmt.Println("") fmt.Println("Committing: ", color.Blue(message)) fmt.Println(color.Gray("-------------------------------")) fmt.Println("") - fmt.Println(color.Gray(string(output))) + cmdGit.Stdout = os.Stdout + cmdGit.Run() + fmt.Println("") fmt.Println(color.Gray("-------------------------------")) fmt.Println(color.Green("Done \U0001F604")) @@ -42,7 +42,8 @@ func commit(cmdGit *exec.Cmd, message ...interface{}) { // Commit execute commit func Commit(message string) (err error) { - cmdGit := exec.Command("git", "commit", "-m", message) + ctx := context.Background() + cmdGit := exec.CommandContext(ctx, "git", "commit", "-m", message) commit(cmdGit, "Committing: ", color.Blue(message)) return @@ -50,7 +51,8 @@ func Commit(message string) (err error) { // Amend execute commit amend func Amend(message string) (err error) { - cmdGit := exec.Command("git", "commit", "--amend", "-m", message) + ctx := context.Background() + cmdGit := exec.CommandContext(ctx, "git", "commit", "--amend", "-m", message) commit(cmdGit, "Amending: ", color.Blue(message)) return From ab2a36aa8e7226e4f4ceda4cfd6f4520f3e76805 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Thu, 24 Jan 2019 15:17:42 -0300 Subject: [PATCH 38/90] 2.0.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3af38c5..2e74a52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.1", + "version": "2.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index e9728b5..aee35da 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.1", + "version": "2.0.2", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 41ee914da9fbb60c81644a277b81e4af5146f25c Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Wed, 30 Jan 2019 08:48:28 -0300 Subject: [PATCH 39/90] no-story (refactor): Removed duplicated commititng message --- pkg/git/git.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/git/git.go b/pkg/git/git.go index 5907229..495c2e5 100644 --- a/pkg/git/git.go +++ b/pkg/git/git.go @@ -28,7 +28,7 @@ func CheckTree() { func commit(cmdGit *exec.Cmd, message ...interface{}) { fmt.Println("") - fmt.Println("Committing: ", color.Blue(message)) + fmt.Println(message...) fmt.Println(color.Gray("-------------------------------")) fmt.Println("") cmdGit.Stdout = os.Stdout From f12a528962293df30de3935db89a17ad7b20e86a Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Wed, 30 Jan 2019 08:48:35 -0300 Subject: [PATCH 40/90] 2.0.3 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e74a52..496ba68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.2", + "version": "2.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index aee35da..48c3227 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.2", + "version": "2.0.3", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 4a44775f0aa0e44f52fcc6f603d31f36fe60b677 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 8 Feb 2019 08:21:47 -0300 Subject: [PATCH 41/90] v2 (feature): update go-npm package --- package-lock.json | 208 +++++++++++++++++++++++++--------------------- 1 file changed, 112 insertions(+), 96 deletions(-) diff --git a/package-lock.json b/package-lock.json index 496ba68..5cdf013 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,20 +5,23 @@ "requires": true, "dependencies": { "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz", + "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } }, "assert-plus": { "version": "1.0.0", @@ -36,9 +39,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, "balanced-match": { "version": "1.0.0", @@ -46,10 +49,9 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { "tweetnacl": "^0.14.3" } @@ -76,15 +78,10 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "requires": { "delayed-stream": "~1.0.0" } @@ -113,18 +110,18 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "~0.1.0" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extsprintf": { "version": "1.3.0", @@ -132,9 +129,9 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -147,12 +144,12 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { "asynckit": "^0.4.0", - "combined-stream": "1.0.6", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, @@ -181,9 +178,9 @@ } }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -204,9 +201,9 @@ } }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, "har-schema": { "version": "2.0.0", @@ -214,11 +211,11 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "^5.1.0", + "ajv": "^6.5.5", "har-schema": "^2.0.0" } }, @@ -259,8 +256,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-schema": { "version": "0.2.3", @@ -268,9 +264,9 @@ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stringify-safe": { "version": "5.0.1", @@ -289,16 +285,16 @@ } }, "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" }, "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "requires": { - "mime-db": "~1.33.0" + "mime-db": "~1.37.0" } }, "minimatch": { @@ -323,9 +319,9 @@ } }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "once": { "version": "1.4.0", @@ -345,10 +341,15 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "psl": { + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" + }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { "version": "6.5.2", @@ -356,38 +357,38 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "uuid": "^3.3.2" } }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "safe-buffer": { @@ -401,9 +402,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -427,11 +428,19 @@ } }, "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { + "psl": "^1.1.24", "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } } }, "tunnel-agent": { @@ -445,13 +454,20 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } }, "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "verror": { "version": "1.10.0", From bbe8ae2785d15f92e8defc1cbead0202b9c5e58d Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 8 Feb 2019 08:24:00 -0300 Subject: [PATCH 42/90] v2 (feature): Upgrade cmf file with branch name default value --- .cmf.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cmf.yaml b/.cmf.yaml index e8536c5..57ec265 100644 --- a/.cmf.yaml +++ b/.cmf.yaml @@ -1,7 +1,7 @@ PROMPT: - KEY: "JIRA-TASK" - LABEL: "Jira task ID (no-story)" - DEFAULT_VALUE: "no-story" + LABEL: "Jira task ID" + DEFAULT_VALUE: "{{BRANCH_NAME}}" - KEY: "CHANGE" LABEL: "Type of change:" OPTIONS: From e066b38ccac8d06eeb415e4b6d1950eda116a085 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 8 Feb 2019 08:27:53 -0300 Subject: [PATCH 43/90] v2 (feature): Upgrade flows templates --- .cmf.yaml | 2 +- Makefile | 3 +-- configs/custom.yaml | 2 +- configs/default.yaml | 2 +- configs/jira.yaml | 6 +++--- packrd/packed-packr.go | 6 +++--- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.cmf.yaml b/.cmf.yaml index 57ec265..1ac5e41 100644 --- a/.cmf.yaml +++ b/.cmf.yaml @@ -3,7 +3,7 @@ PROMPT: LABEL: "Jira task ID" DEFAULT_VALUE: "{{BRANCH_NAME}}" - KEY: "CHANGE" - LABEL: "Type of change:" + LABEL: "Type of change" OPTIONS: - VALUE: "feature" DESC: "Add new feature" diff --git a/Makefile b/Makefile index f84120f..b874383 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,5 @@ build: - cp package.json package/package.json - packr -v -z + packr2 build publish: if [ -d ./dist ]; then rm -Rf ./dist; fi diff --git a/configs/custom.yaml b/configs/custom.yaml index 91aa62c..1102f69 100644 --- a/configs/custom.yaml +++ b/configs/custom.yaml @@ -1,6 +1,6 @@ PROMPT: - KEY: "CHANGE" - LABEL: "Type of change:" + LABEL: "Type of change" OPTIONS: - VALUE: "feature" DESC: "Add new feature" diff --git a/configs/default.yaml b/configs/default.yaml index c298310..09c2ae2 100644 --- a/configs/default.yaml +++ b/configs/default.yaml @@ -1,6 +1,6 @@ PROMPT: - KEY: "CHANGE" - LABEL: "Type of change:" + LABEL: "Type of change" OPTIONS: - VALUE: "feature" DESC: "Add new feature" diff --git a/configs/jira.yaml b/configs/jira.yaml index e8536c5..1ac5e41 100644 --- a/configs/jira.yaml +++ b/configs/jira.yaml @@ -1,9 +1,9 @@ PROMPT: - KEY: "JIRA-TASK" - LABEL: "Jira task ID (no-story)" - DEFAULT_VALUE: "no-story" + LABEL: "Jira task ID" + DEFAULT_VALUE: "{{BRANCH_NAME}}" - KEY: "CHANGE" - LABEL: "Type of change:" + LABEL: "Type of change" OPTIONS: - VALUE: "feature" DESC: "Add new feature" diff --git a/packrd/packed-packr.go b/packrd/packed-packr.go index 590719a..885b13c 100644 --- a/packrd/packed-packr.go +++ b/packrd/packed-packr.go @@ -13,9 +13,9 @@ var _ = func() error { const gk = "7e12094938b20695eb2a126ff944e858" g := packr.New(gk, "") hgr, err := resolver.NewHexGzip(map[string]string{ - "62db5f172a9b22c8d52c942e61af1852": "1f8b08000000000000ff7c52cd6eb33010bce729469cbeef9017f08d12d44625011552a9476296c412f646d8b4458877aff8691b85a827cb9e9f1daf26798977492656c01acfe19b80173cf9fbc7d05b0140e43f84918097b517029790e7dc9c484c609c64db789f8af132e85ffde8100a7825e5aea9c99b016013a68180e717050c7de006bf12aacfa508c7e6842be497eec8ba7b439439412b6b8773e058700dc9754dd20d6f6cc82eddac6bab3b9921b9a0f9e3700ca52f35bf136445b919c1a5d5b15155b1966ae1168c36166ce0ce849107db5a477ac8186c51aaea5eb89aca5c3aaeffceb7d4152ced42b361d968322e778a0dd854edac1fa9df3dd8c59b4374d303bf2c493a2aa0b968a66dfdd0c334f56f7b13b0d6ca4193b5f9102f0b7749e46743b2ae9b8ad6f7ffba6e9ad5f7ff05ba6e76ea7b6ff5150000fffff06ff47b9e020000", - "80fa7149cc272248518019d08636b2ca": "1f8b08000000000000ff7c92cd8e9b301485f7798a2356ed625ec03b4a503b2a1950612a7549cc25b1847d916d9a22c4bb5706da4621ea0ae1f3e30f748a6ff9a9a8c40178c1d7f48740947c89df3ea7d10100b2f8539a0944d5d813b885bcd6e6426215f3a27acddf4ab1bc84fcf7387b4f05a2966a3f588a360138a6652210c54d0343373ce87741f56b1fc279b8e04ef967f7e4fcb34b94b9402be7c233781cd842b2b5247d3863436edfe6fcd83d6186e486b60f876728dd5bfe49901dd56611f755e74175cd8b54bbb664a97160037f252c3eb8d179d281317945abba677096da5a7ab6ffe7dbe71a966e9739b21c34195f7bc5066cba71cb2fd63f3b38e5c7f7ec610771db92f4d4407333ac7febaf3d2dcbf87137096bad3c34395707bc2a3d15595c05b2c452ed09230f167c33f0a4fb2e9cb005f781cc619ad631cef387695a79e6f9a3c0346db7cd7374f81d0000ffffcbb5761ec2020000", - "b3a6c6c38da037c9ce49dbf36d351adb": "1f8b08000000000000ff7c92416f9c301085effb2b9e382587fd03dc5c96b6346c160552a9a7ca31c3c62a7822dbb44588ff5e99252d0dab9c10f3e67df32cbde2e1742caa7807ec71977e8b117dc91ec4be12e55db403805c7c48f330d656c24bf703d9013786f7ceb31d6e2f4b87f4a378ccabef5f45fe98c6885ee568c54d3e8bfb4fe9ffd06a78217003f52ccd99e28b782aaaec745fc6f34ff0bf521b92beb7142d42385b26312251d730f40b6ff49551ffde9af0d49fb152fead7b72feda116dcee8b473e11b761cd842b1b5a47c98b121b7a5393fb4573243714dcbc3e119ba7bb1fc93a05a926616b7a8a75eb7f55ee90d2d99310e6ce09f09f31edce03c75216392a1d1edb570961aa93cdbf7f36d7d352bb7f11c58f51d192fbd660336edb0f8ddba07c7b42cc5db2224dc75daa323e764b857a5c722175538358e7f1b394db819c74b91a6e936c6382eb4698a767f020000ffff9e0a6c4dcb020000", + "62db5f172a9b22c8d52c942e61af1852": "1f8b08000000000000ff7c524d6eb33014dce7142356dfb7c805d85182daa824a0422a7549cc23b184fd226cda22c4dd2b036da310d51bcb9e9f37b6267d497669eeaf80359ea3371f5ef814ec1f236f050071f010c53ebcbcbb10b8823817fa441396a4f936d967fe7870f2d7203e443ebc8a0adb3633cbad4d94853ebca02ca1e90337f895507e2e4538b6275c21bf744bc6de1b22f5094a1ae376c731e006829b86847577acc92cdd8cedea3b9921b8a4f9ddb00ca92e0dbf13444d851ec1a5d5b19575b91672e1168e3606ac61cf849107d3194bca650cb7a8647d2f5c4355212c377fe75bea4a1666a1d9b06815695b58c91aaceb6ed68fd4ef1aec92cd21bea9415055242c95505cb6d36ffdd0a32c0b6e6b13b252d2429131858b9747bb340e7297acefa79e0dc3bfbe9f660dc37f1f7d3f3b0d83b7fa0a0000fffff72404029d020000", + "80fa7149cc272248518019d08636b2ca": "1f8b08000000000000ff7c92c10e9b301044eff98a11a7f6901fe046096aa392800aa9d423314b62097b916d9a22c4bf5706da46212a17847766f6614dfe2d3be565b803f6f89afc0811c45fa2f3e724d801401a7d4ad210413974046e20ee95bed132cbf2f2989d8b70fef0f6ef517a4942040d55ae37abca3f87a4884304515d43d3032ff327a3fcb535e1dadff034f9277764ddbb2552dfa0a4b5feed35166c20d81812ce9fb126bb4db36e68df3043704deb7fc331a4ea0cff2488962a3d0fb751d75eb6f55ec84d5a3cc758b086bb13661dec601d29cf181fd1c8f61d9ca1a6128ecdfff9b6be9a85dd780e2c7a45da554eb206eb7658fdb3f44f0d4ed9e192bed4206a1a128e6a28aefbe5b6feca93a2885e6b13b352d24191b595c72b93539e46a5278b0d558e30706fc00f0d47aa6bfd091b70e7c92cc671e9e2347d18c785679a3e8618c775db3405bbdf010000ffff1488fed3c1020000", + "b3a6c6c38da037c9ce49dbf36d351adb": "1f8b08000000000000ff7c92c18e9b301884effb14234eed212fc0cd4bdc2e5d2028b0957a8a1c6312ab6047b6698b10ef5e19684b43b427c43fff7cff589afc7848f3327c027678a5df42045fe223d995a4780d9e002021cf34f16369181cb3df11ef67654f3f91b7a43c7d25c91b0d110cc3f39164d1cb2923291dc760c58c5e48f699fe0f2cfb9b80aec1af4c5dc4ac1df2323e644538fd78fb1f762d98ebccb2351f2fa21001a92a28f11377faca287f6d4d387717ac947feb4e58f7e8885417b4d25afff53b16da806b6304777ea695b05b9a757df32033b8aec4f26e380dd9de8cfe21c01bc1d4246e51e74e36d58ecb0d2d9a30165ac15d05a63dd8de3ad1fa8c518c5a368fc2195133eeb4793fdfd657696e379ebde65d2b94634e6a05ad9a7ef1db750d525a14e4be07916e5be9d00a6b99bf57d2344f483937ea6f19c7111f8661eed1387e0c310c0bcd37ed77000000ffff240909b8c6020000", }) if err != nil { panic(err) From f7c0ee62e427f5c3ea28a6f765cd0f75d972e141 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 8 Feb 2019 08:28:26 -0300 Subject: [PATCH 44/90] v2 (feature): Add BRANCH_NAME variable to templates --- pkg/git/git.go | 12 ++++++++++++ pkg/template/template.go | 11 ++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/pkg/git/git.go b/pkg/git/git.go index 495c2e5..50d8ddc 100644 --- a/pkg/git/git.go +++ b/pkg/git/git.go @@ -6,6 +6,7 @@ import ( "fmt" "os" "os/exec" + "strings" color "github.com/logrusorgru/aurora" ) @@ -57,3 +58,14 @@ func Amend(message string) (err error) { return } + +// BranchName return current branch name +func BranchName() string { + cmdGit := exec.Command("git", "rev-parse", "--abbrev-ref", "HEAD") + branchName, err := cmdGit.Output() + if err != nil { + return "" + } + + return strings.TrimSuffix(string(branchName), "\n") +} diff --git a/pkg/template/template.go b/pkg/template/template.go index 846e1b5..f976a12 100644 --- a/pkg/template/template.go +++ b/pkg/template/template.go @@ -6,6 +6,8 @@ import ( "prompt" "strings" + "git" + color "github.com/logrusorgru/aurora" "github.com/spf13/viper" ) @@ -55,10 +57,17 @@ func executeFlow(settings map[string]interface{}) (variables []keyValue) { if value, ok := pr["DEFAULT_VALUE"]; ok { defaultValue = value.(string) + defaultValue = strings.Replace(defaultValue, "{{BRANCH_NAME}}", git.BranchName(), -1) } if options := pr["OPTIONS"]; options == nil { - result = prompt.Input(label, errorMessage, defaultValue) + var labelMessage = label + + if defaultValue != "" { + labelMessage = label + " (" + defaultValue + ")" + } + + result = prompt.Input(labelMessage+":", errorMessage, defaultValue) } else { configurationSelectOption := &prompt.SelectConfiguration{ ActiveTpl: "\U0001F449 {{ .Title | cyan | bold }}", From c1c92a507cd4ae0237959966b02ee096f6bbb549 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Fri, 8 Feb 2019 08:28:46 -0300 Subject: [PATCH 45/90] 2.0.4 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5cdf013..7f63903 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.3", + "version": "2.0.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 48c3227..fe230f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.3", + "version": "2.0.4", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From af5e2d99b035d718986405b569b3be11ff5f5abb Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sat, 23 Feb 2019 12:15:46 -0300 Subject: [PATCH 46/90] v2 (docs): Add readme v2 updates --- Readme.md | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/Readme.md b/Readme.md index efcdf40..5e49391 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,4 @@ -# CMF Commit Message Formatter +# CMF Commit Message Formatter - V2 CMF is a simple to use utility to standarize commit messages on projects. @@ -8,15 +8,15 @@ Install via npm, just do `$ npm install -g go-cmf` Or from Go `go install github.com/walmartdigital/commit-message-formatter` -Once installed, go to your project an run `$ cmf` after add your files to your stage area. +Once installed, go to your project an run `$ cmf init` and select one of the flows, it will create a `.cmf.yaml`file on your project with your selected flow. ## Flows -CMF have two flows (for now) default and jira +CMF have three flows (for now) default, Jira and custom ### Default -Running `$ cmf` you get the default flow, you will be prompt for: +Running `$ cmf init` and select default, you will get the default flow and prompted for: - Type of change you made to your code - Module affected by this change @@ -24,31 +24,27 @@ Running `$ cmf` you get the default flow, you will be prompt for: ### Jira -Running `$ cmf jira` you get jira flow, this time you will be prompt for: +Running `$ cmf init` and select Jira, you will get the jira flow, this time you will be prompt for: - Jira task ID - Type of change you made to your code - Commit message or description of your change -> If you want to do jira as a defualt flow just create a `.cmf.yaml`in the root of your project: +### Custom -``` -DEFAULT: jira -``` +Running `$ cmf init`and select custom, you will get the custom flow, this time it will create a `.cmf.yaml`file with default flow but with annotations of how change it. --- -## Configurations +## Variables -It is possible to config CMF as you like, you can change **custom flows, templates or assign default flows**. You can do this using a local file on the root of your porject or setting as global preferences with a file on your Home directory called `.cmf.yaml`. +CMF have inner variables and you can access it throw templates using `{{}}`: -### DEFAULT +- {{BRANCH_NAME}} it will print the current branch name of your repository -Set a flow as default: +## Configurations -``` -DEFAULT: jira -``` +It is possible to config CMF as you like, you can change **custom flows, templates or assign default flows**. You can do this using a local file on the root of your porject or setting as global preferences with a file on your Home directory called `.cmf.yaml`. ### TEMPLATE @@ -70,7 +66,7 @@ TEMPLATE: "{{CHANGE}}({{MODULE}}): {{MESSAGE}}" Default template `{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}`. You can use this variables: -- JIRA*TASK \_jira task id* +- JIRA*TASK \_jira task id, by default {{BRANCH_NAME}}* - CHANGE _type of change: feature, fix, update_ - MESSAGE _commit message_ From 0fb4ab85ea0e42ec4beee268b9d4ba7d70483518 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sat, 23 Feb 2019 12:24:32 -0300 Subject: [PATCH 47/90] v2 (refactor): Ignore binary generated by packr2 --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4470dc7..0db082a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ src dist -node_modules \ No newline at end of file +node_modules +commit-message-formatter \ No newline at end of file From a62bcaaf4c0506944cbafcb8201873d826ef1b9f Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sat, 23 Feb 2019 12:25:18 -0300 Subject: [PATCH 48/90] v2 (feature): Add label key to Jira flow --- .cmf.yaml | 11 ++++++++++- configs/jira.yaml | 11 ++++++++++- packrd/packed-packr.go | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.cmf.yaml b/.cmf.yaml index 1ac5e41..aec32f7 100644 --- a/.cmf.yaml +++ b/.cmf.yaml @@ -21,4 +21,13 @@ PROMPT: DESC: "Documentation only changes" - KEY: "MESSAGE" LABEL: "Commit message" -TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}" + - KEY: "LABEL" + LABEL: "Label" + OPTIONS: + - VALUE: "" + DESC: "No label" + - VALUE: "[CI SKIP]" + DESC: "Skip continous integration pipeline" + - VALUE: "[WIP]" + DESC: "Work In Progress" +TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}{{LABEL}}" diff --git a/configs/jira.yaml b/configs/jira.yaml index 1ac5e41..aec32f7 100644 --- a/configs/jira.yaml +++ b/configs/jira.yaml @@ -21,4 +21,13 @@ PROMPT: DESC: "Documentation only changes" - KEY: "MESSAGE" LABEL: "Commit message" -TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}" + - KEY: "LABEL" + LABEL: "Label" + OPTIONS: + - VALUE: "" + DESC: "No label" + - VALUE: "[CI SKIP]" + DESC: "Skip continous integration pipeline" + - VALUE: "[WIP]" + DESC: "Work In Progress" +TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}{{LABEL}}" diff --git a/packrd/packed-packr.go b/packrd/packed-packr.go index 885b13c..9dbf064 100644 --- a/packrd/packed-packr.go +++ b/packrd/packed-packr.go @@ -15,7 +15,7 @@ var _ = func() error { hgr, err := resolver.NewHexGzip(map[string]string{ "62db5f172a9b22c8d52c942e61af1852": "1f8b08000000000000ff7c524d6eb33014dce7142356dfb7c805d85182daa824a0422a7549cc23b184fd226cda22c4dd2b036da310d51bcb9e9f37b6267d497669eeaf80359ea3371f5ef814ec1f236f050071f010c53ebcbcbb10b8823817fa441396a4f936d967fe7870f2d7203e443ebc8a0adb3633cbad4d94853ebca02ca1e90337f895507e2e4538b6275c21bf744bc6de1b22f5094a1ae376c731e006829b86847577acc92cdd8cedea3b9921b8a4f9ddb00ca92e0dbf13444d851ec1a5d5b19575b91672e1168e3606ac61cf849107d3194bca650cb7a8647d2f5c4355212c377fe75bea4a1666a1d9b06815695b58c91aaceb6ed68fd4ef1aec92cd21bea9415055242c95505cb6d36ffdd0a32c0b6e6b13b252d2429131858b9747bb340e7297acefa79e0dc3bfbe9f660dc37f1f7d3f3b0d83b7fa0a0000fffff72404029d020000", "80fa7149cc272248518019d08636b2ca": "1f8b08000000000000ff7c92c10e9b301044eff98a11a7f6901fe046096aa392800aa9d423314b62097b916d9a22c4bf5706da46212a17847766f6614dfe2d3be565b803f6f89afc0811c45fa2f3e724d801401a7d4ad210413974046e20ee95bed132cbf2f2989d8b70fef0f6ef517a4942040d55ae37abca3f87a4884304515d43d3032ff327a3fcb535e1dadff034f9277764ddbb2552dfa0a4b5feed35166c20d81812ce9fb126bb4db36e68df3043704deb7fc331a4ea0cff2488962a3d0fb751d75eb6f55ec84d5a3cc758b086bb13661dec601d29cf181fd1c8f61d9ca1a6128ecdfff9b6be9a85dd780e2c7a45da554eb206eb7658fdb3f44f0d4ed9e192bed4206a1a128e6a28aefbe5b6feca93a2885e6b13b352d24191b595c72b93539e46a5278b0d558e30706fc00f0d47aa6bfd091b70e7c92cc671e9e2347d18c785679a3e8618c775db3405bbdf010000ffff1488fed3c1020000", - "b3a6c6c38da037c9ce49dbf36d351adb": "1f8b08000000000000ff7c92c18e9b301884effb14234eed212fc0cd4bdc2e5d2028b0957a8a1c6312ab6047b6698b10ef5e19684b43b427c43fff7cff589afc7848f3327c027678a5df42045fe223d995a4780d9e002021cf34f16369181cb3df11ef67654f3f91b7a43c7d25c91b0d110cc3f39164d1cb2923291dc760c58c5e48f699fe0f2cfb9b80aec1af4c5dc4ac1df2323e644538fd78fb1f762d98ebccb2351f2fa21001a92a28f11377faca287f6d4d387717ac947feb4e58f7e8885417b4d25afff53b16da806b6304777ea695b05b9a757df32033b8aec4f26e380dd9de8cfe21c01bc1d4246e51e74e36d58ecb0d2d9a30165ac15d05a63dd8de3ad1fa8c518c5a368fc2195133eeb4793fdfd657696e379ebde65d2b94634e6a05ad9a7ef1db750d525a14e4be07916e5be9d00a6b99bf57d2344f483937ea6f19c7111f8661eed1387e0c310c0bcd37ed77000000ffff240909b8c6020000", + "b3a6c6c38da037c9ce49dbf36d351adb": "1f8b08000000000000ff8453cd6e9b4010befb293e716a0f7e016e1b4c1b6a8c91218daaa88af0b2262bc30eda5dda5a8877af00a721063527c47e3ff3cd68263eec7771eaae8035b6fe0f17ceb7e0c0d6294bb6ce0a004276e787fdb3d4196c66ce083623b2f1bfb087307dfecec207df85d3b677071679f7cf11dbf95de74c3cbd7b167df5df1ba6975a804ee02f992ac488ede334d847893bfcf4f257ef93c86ca3afacb178e2b970589e4389dfb8c12742f9672ec2b1293041dee85618bb5444aa029534a6fff61c03d2e0a4b5e0b67f2325ccdccdd84bb990199c7271ed1b9620ab5ad32f015e8a4c0de0dcead8c8325f733973f3061b0352b02f02030fe662aca8fa8c5e80932c97c26971cab825fdff7c735d4edccc341be24d2594cdac240552e5e5aa37d335d8f949c26ef7c0a3aa92169530261bebbdd207c67b72981d45f9c1aeccc24584f24d37a53e7901926d10ff9c6992b3acc14959a9a83190ca8a428fddd5b216a5540ba3797a5cb27a247d46a0106b2ab430c659a5fe2e0e593a1ecdbf7beb3a7c6adbf154baeeb38bb6bd0eacebda7698407f557f030000fffffab364e8b2030000", }) if err != nil { panic(err) From 94ccc89c66b61510cdee94cf02dd85b5e44d7b9c Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sat, 23 Feb 2019 12:25:38 -0300 Subject: [PATCH 49/90] 2.0.5 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f63903..a5405b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.4", + "version": "2.0.5", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fe230f2..68081dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.4", + "version": "2.0.5", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 5cd59fb5f265ee0aca90b47eb9892db617ba2938 Mon Sep 17 00:00:00 2001 From: Rodrig Navarro Date: Sat, 23 Feb 2019 12:31:50 -0300 Subject: [PATCH 50/90] Create LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1c7af4a --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Walmart Digital + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 0d745e6a1cece5c065f1fd4505db6a8b7d4a0697 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 12 Mar 2019 11:05:10 -0300 Subject: [PATCH 51/90] master (fix): Get error from git command execution and set success or fail --- pkg/git/git.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/git/git.go b/pkg/git/git.go index 50d8ddc..9be09fd 100644 --- a/pkg/git/git.go +++ b/pkg/git/git.go @@ -33,10 +33,14 @@ func commit(cmdGit *exec.Cmd, message ...interface{}) { fmt.Println(color.Gray("-------------------------------")) fmt.Println("") cmdGit.Stdout = os.Stdout - cmdGit.Run() + err := cmdGit.Run() fmt.Println("") fmt.Println(color.Gray("-------------------------------")) - fmt.Println(color.Green("Done \U0001F604")) + if err == nil { + fmt.Println(color.Green("Done \U0001F604")) + } else { + fmt.Println(color.Red("Something went grong \U0001F92F")) + } return } From b50216d9c0269a04e251fec82654058d9f3adb13 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 12 Mar 2019 11:06:27 -0300 Subject: [PATCH 52/90] 2.0.6 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index a5405b5..a1455f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.5", + "version": "2.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 68081dd..6b3f2f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.5", + "version": "2.0.6", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 1c64f5400e1381f594398a5670c4729692d1b6bb Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sat, 30 Mar 2019 08:40:55 -0300 Subject: [PATCH 53/90] master (fix): Add StdErr pipe to command --- pkg/git/git.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/git/git.go b/pkg/git/git.go index 9be09fd..9cb6093 100644 --- a/pkg/git/git.go +++ b/pkg/git/git.go @@ -33,6 +33,7 @@ func commit(cmdGit *exec.Cmd, message ...interface{}) { fmt.Println(color.Gray("-------------------------------")) fmt.Println("") cmdGit.Stdout = os.Stdout + cmdGit.Stderr = os.Stderr err := cmdGit.Run() fmt.Println("") fmt.Println(color.Gray("-------------------------------")) From 9b910ad540a8d58516a2a4a653c3de5353aea38d Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sat, 30 Mar 2019 08:40:59 -0300 Subject: [PATCH 54/90] 2.0.7 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1455f2..2f7706b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.6", + "version": "2.0.7", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6b3f2f3..de97146 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.6", + "version": "2.0.7", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 9f6b04677de226e7b66921993c31938dca9d513c Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Tue, 10 Sep 2019 08:55:27 -0300 Subject: [PATCH 55/90] no-story (fix): Fix security vulnerabilities --- package-lock.json | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2f7706b..8c584e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -159,9 +159,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -178,9 +178,9 @@ } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -201,9 +201,9 @@ } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==" }, "har-schema": { "version": "2.0.0", @@ -239,9 +239,9 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "is-typedarray": { "version": "1.0.0", @@ -384,9 +384,9 @@ } }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { "glob": "^7.1.3" } @@ -418,12 +418,12 @@ } }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", "requires": { "block-stream": "*", - "fstream": "^1.0.2", + "fstream": "^1.0.12", "inherits": "2" } }, From b29a50865354336f68c5049b8af56900de6003f9 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Tue, 10 Sep 2019 09:00:21 -0300 Subject: [PATCH 56/90] 2.0.8 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c584e1..3ebcf71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.7", + "version": "2.0.8", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index de97146..dd9229b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-cmf", - "version": "2.0.7", + "version": "2.0.8", "description": "CMF is an utility to standarize commit messages on porjects", "scripts": { "postinstall": "go-npm install", From 5fd29a37c173b4318bf21b3fde32aff089e514c0 Mon Sep 17 00:00:00 2001 From: Sebastian Diaz Date: Mon, 24 May 2021 12:00:26 -0400 Subject: [PATCH 57/90] fix(dependency): update minimist version to solve a vulnerability --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3ebcf71..a37afc5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -306,16 +306,16 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.5" } }, "oauth-sign": { From 38f5ba82adf08e49a13ac2b275a0a3969689a0cb Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 08:08:21 -0400 Subject: [PATCH 58/90] v3.0 (feature): add go mod to the project --- go.mod | 8 ++ go.sum | 288 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ main.go | 7 +- 3 files changed, 298 insertions(+), 5 deletions(-) create mode 100644 go.mod create mode 100644 go.sum diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..1924b13 --- /dev/null +++ b/go.mod @@ -0,0 +1,8 @@ +module github.com/walmartdigital/commit-message-formatter + +go 1.16 + +require ( + github.com/logrusorgru/aurora v2.0.3+incompatible // indirect + github.com/spf13/cobra v1.1.3 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..1574a11 --- /dev/null +++ b/go.sum @@ -0,0 +1,288 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= +github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M= +github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/main.go b/main.go index 692c380..b36881c 100644 --- a/main.go +++ b/main.go @@ -21,12 +21,9 @@ package main import ( - "cmd" - "os" + "github.com/walmartdigital/commit-message-formatter/cmd" ) func main() { - if err := cmd.Root.Execute(); err != nil { - os.Exit(1) - } + cmd.Execute() } From 4e9d9838d6ac9bfbf36fd8278f1a4f8bcaf04c0a Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 08:09:25 -0400 Subject: [PATCH 59/90] v3.0 (refactor): removed pkg folder in order to expose cmf packages for reuse --- pkg/boilerplate/boilerplate-packr.go | 7 -- pkg/boilerplate/boilerplate.go | 75 ---------------- pkg/cmd/cmd.go | 56 ------------ pkg/git/git.go | 76 ---------------- pkg/prompt/prompt.go | 62 ------------- pkg/template/template.go | 126 --------------------------- vendor | 1 - 7 files changed, 403 deletions(-) delete mode 100644 pkg/boilerplate/boilerplate-packr.go delete mode 100644 pkg/boilerplate/boilerplate.go delete mode 100644 pkg/cmd/cmd.go delete mode 100644 pkg/git/git.go delete mode 100644 pkg/prompt/prompt.go delete mode 100644 pkg/template/template.go delete mode 120000 vendor diff --git a/pkg/boilerplate/boilerplate-packr.go b/pkg/boilerplate/boilerplate-packr.go deleted file mode 100644 index f4b2d7a..0000000 --- a/pkg/boilerplate/boilerplate-packr.go +++ /dev/null @@ -1,7 +0,0 @@ -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package boilerplate - -import _ "github.com/commit-message-formatter/packrd" diff --git a/pkg/boilerplate/boilerplate.go b/pkg/boilerplate/boilerplate.go deleted file mode 100644 index 2df33ef..0000000 --- a/pkg/boilerplate/boilerplate.go +++ /dev/null @@ -1,75 +0,0 @@ -package boilerplate - -import ( - "fmt" - "os" - "prompt" - - packr "github.com/gobuffalo/packr/v2" - color "github.com/logrusorgru/aurora" -) - -func checkErr(err error) { - if err != nil { - fmt.Print(color.Red(err)) - os.Exit(0) - } -} - -var flows = map[string][]byte{ - "default": []byte(""), - "jira": []byte(""), - "custom": []byte(""), -} - -var flowTypes = []prompt.SelectItem{ - {Title: "Default", Description: "Flow with module affected and message", Value: "default"}, - {Title: "Jira", Description: "Flow based on Jira task", Value: "jira"}, - {Title: "Custom", Description: "Flow with your own rules", Value: "custom"}, -} - -var configurationSelectFlow = &prompt.SelectConfiguration{ - ActiveTpl: "\U0001F449 {{ .Title | cyan }}", - InactiveTpl: " {{ .Title | white }}", - SelectPrompt: "Flow Type", - SelectedTpl: "{{ \"Flow:\" | bold }} {{ .Title | green | bold }}", - DetailsTpl: `------------------------------- -{{ .Title | white | bold }} {{ .Description | white | bold }}`, -} - -func createConfigurationFile(flowType string) error { - projectFolder, err := os.Getwd() - if err != nil { - return err - } - - configFile, err := os.Create(projectFolder + "/.cmf.yaml") - defer configFile.Close() - - if err != nil { - return err - } - - _, err = configFile.Write(flows[flowType]) - - return err -} - -// Create a configuration file -func Create() { - selector := - prompt.Select(flowTypes, *configurationSelectFlow) - - err := createConfigurationFile(selector.Value) - checkErr(err) - - fmt.Println(color.Gray("File .cmf.yaml for " + selector.Value + " flow generated ")) - fmt.Println("Happy coding. \U0001F604") -} - -func init() { - box := packr.New("config", "../../configs") - flows["default"], _ = box.Find("default.yaml") - flows["jira"], _ = box.Find("jira.yaml") - flows["custom"], _ = box.Find("custom.yaml") -} diff --git a/pkg/cmd/cmd.go b/pkg/cmd/cmd.go deleted file mode 100644 index b9f40e5..0000000 --- a/pkg/cmd/cmd.go +++ /dev/null @@ -1,56 +0,0 @@ -package cmd - -import ( - "boilerplate" - "fmt" - "template" - - "github.com/commit-message-formatter/pkg/git" - "github.com/spf13/cobra" -) - -// Root Root cli command -var Root = &cobra.Command{ - Use: "cmf", - Short: "Commit Message Formatter", - Long: "Generate custom commit message for your repo and standarize your commits log", - Run: func(cmd *cobra.Command, args []string) { - go git.CheckTree() - message := template.Run() - git.Commit(message) - }, -} - -var version = &cobra.Command{ - Use: "version", - Short: "Version cmf", - Long: "Display version of commit message formatter", - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("CMF - Commit Message Formatter v2.0") - }, -} - -var amend = &cobra.Command{ - Use: "amend", - Short: "Amend commit message", - Long: "Amend last commit message", - Run: func(cmd *cobra.Command, args []string) { - message := template.Run() - git.Amend(message) - }, -} - -var boilerplateCMD = &cobra.Command{ - Use: "init", - Short: "Create configuration file", - Long: "Create .cmf.yaml configuration file", - Run: func(cmd *cobra.Command, args []string) { - boilerplate.Create() - }, -} - -func init() { - Root.AddCommand(version) - Root.AddCommand(boilerplateCMD) - Root.AddCommand(amend) -} diff --git a/pkg/git/git.go b/pkg/git/git.go deleted file mode 100644 index 9cb6093..0000000 --- a/pkg/git/git.go +++ /dev/null @@ -1,76 +0,0 @@ -package git - -import ( - "context" - "errors" - "fmt" - "os" - "os/exec" - "strings" - - color "github.com/logrusorgru/aurora" -) - -func checkErr(err error) { - if err != nil { - fmt.Println(color.Red(err)) - os.Exit(1) - } -} - -// CheckTree perform a git tree check -func CheckTree() { - cmdGit := exec.Command("git", "diff", "--cached", "--exit-code") - _, err := cmdGit.Output() - if err == nil { - checkErr(errors.New("No changes added to commit")) - } -} - -func commit(cmdGit *exec.Cmd, message ...interface{}) { - fmt.Println("") - fmt.Println(message...) - fmt.Println(color.Gray("-------------------------------")) - fmt.Println("") - cmdGit.Stdout = os.Stdout - cmdGit.Stderr = os.Stderr - err := cmdGit.Run() - fmt.Println("") - fmt.Println(color.Gray("-------------------------------")) - if err == nil { - fmt.Println(color.Green("Done \U0001F604")) - } else { - fmt.Println(color.Red("Something went grong \U0001F92F")) - } - - return -} - -// Commit execute commit -func Commit(message string) (err error) { - ctx := context.Background() - cmdGit := exec.CommandContext(ctx, "git", "commit", "-m", message) - commit(cmdGit, "Committing: ", color.Blue(message)) - - return -} - -// Amend execute commit amend -func Amend(message string) (err error) { - ctx := context.Background() - cmdGit := exec.CommandContext(ctx, "git", "commit", "--amend", "-m", message) - commit(cmdGit, "Amending: ", color.Blue(message)) - - return -} - -// BranchName return current branch name -func BranchName() string { - cmdGit := exec.Command("git", "rev-parse", "--abbrev-ref", "HEAD") - branchName, err := cmdGit.Output() - if err != nil { - return "" - } - - return strings.TrimSuffix(string(branchName), "\n") -} diff --git a/pkg/prompt/prompt.go b/pkg/prompt/prompt.go deleted file mode 100644 index e194e64..0000000 --- a/pkg/prompt/prompt.go +++ /dev/null @@ -1,62 +0,0 @@ -package prompt - -import ( - "errors" - "strings" - - "github.com/mritd/promptx" -) - -// SelectItem a default item struct -type SelectItem struct { - Title string - Description string - Value string -} - -// SelectConfiguration a complete configuration select options -type SelectConfiguration struct { - ActiveTpl string - InactiveTpl string - SelectPrompt string - SelectedTpl string - DetailsTpl string -} - -// Select Returns a selected item -func Select(items []SelectItem, config SelectConfiguration) SelectItem { - configuration := &promptx.SelectConfig{ - ActiveTpl: config.ActiveTpl, - InactiveTpl: config.InactiveTpl, - SelectPrompt: config.SelectPrompt, - SelectedTpl: config.SelectedTpl, - DisPlaySize: 9, - DetailsTpl: config.DetailsTpl, - } - - selector := &promptx.Select{ - Items: items, - Config: configuration, - } - - return items[selector.Run()] -} - -// Input return a simple user input -func Input(title string, errorMessage string, defaultValue string) string { - input := promptx.NewDefaultPrompt(func(line []rune) error { - if strings.TrimSpace(string(line)) == "" && defaultValue == "" { - return errors.New(errorMessage) - } - - return nil - }, title) - - value := input.Run() - - if value == "" && defaultValue != "" { - return defaultValue - } - - return value -} diff --git a/pkg/template/template.go b/pkg/template/template.go deleted file mode 100644 index f976a12..0000000 --- a/pkg/template/template.go +++ /dev/null @@ -1,126 +0,0 @@ -package template - -import ( - "fmt" - "os" - "prompt" - "strings" - - "git" - - color "github.com/logrusorgru/aurora" - "github.com/spf13/viper" -) - -type option struct { - Value string - Desc string -} - -type keyValue struct { - Key string - Value string -} - -func checkErr(err error) { - if err != nil { - fmt.Print(color.Red("An error occurred, maybe 'cmf init' could fix it")) - os.Exit(0) - } -} - -func parseTemplate(template string, variables []keyValue) string { - for _, v := range variables { - template = strings.Replace(template, "{{"+v.Key+"}}", v.Value, -1) - } - - return template -} - -func executeFlow(settings map[string]interface{}) (variables []keyValue) { - prompts := settings["prompt"].([]interface{}) - for _, v := range prompts { - result := "" - var label = "" - var errorMessage = "Field empty" - var defaultValue = "" - - pr := v.(map[interface{}]interface{}) - - if value, ok := pr["LABEL"]; ok { - label = value.(string) - } - - if value, ok := pr["ERROR_LABEL"]; ok { - errorMessage = value.(string) - } - - if value, ok := pr["DEFAULT_VALUE"]; ok { - defaultValue = value.(string) - defaultValue = strings.Replace(defaultValue, "{{BRANCH_NAME}}", git.BranchName(), -1) - } - - if options := pr["OPTIONS"]; options == nil { - var labelMessage = label - - if defaultValue != "" { - labelMessage = label + " (" + defaultValue + ")" - } - - result = prompt.Input(labelMessage+":", errorMessage, defaultValue) - } else { - configurationSelectOption := &prompt.SelectConfiguration{ - ActiveTpl: "\U0001F449 {{ .Title | cyan | bold }}", - InactiveTpl: " {{ .Title | white }}", - SelectPrompt: label, - SelectedTpl: "\U0001F44D {{ \"" + label + "\" | cyan }} {{ .Title | cyan | bold }}", - DetailsTpl: `------------------------------- -{{ .Title | white | bold }} {{ .Description | white | bold }}`, - } - - optList := pr["OPTIONS"].([]interface{}) - var opts []prompt.SelectItem - for _, o := range optList { - op := o.(map[interface{}]interface{}) - - opts = append(opts, prompt.SelectItem{Title: op["VALUE"].(string), Value: op["VALUE"].(string), Description: op["DESC"].(string)}) - } - - selector := prompt.Select(opts, *configurationSelectOption) - result = selector.Value - } - - variables = append(variables, keyValue{ - Key: pr["KEY"].(string), - Value: result, - }) - } - - return -} - -func setFlowFileAsVariables() map[string]interface{} { - projectDir, err := os.Getwd() - checkErr(err) - projectConfigFile := projectDir + "/.cmf.yaml" - - _, err = os.Stat(projectConfigFile) - checkErr(err) - - viper.SetConfigFile(projectConfigFile) - viper.SetConfigType("yaml") - viper.AutomaticEnv() - - err = viper.ReadInConfig() - checkErr(err) - - return viper.AllSettings() -} - -// Run initialize prompt flow -func Run() string { - settings := setFlowFileAsVariables() - variables := executeFlow(settings) - template := settings["template"].(string) - return parseTemplate(template, variables) -} diff --git a/vendor b/vendor deleted file mode 120000 index 40ef090..0000000 --- a/vendor +++ /dev/null @@ -1 +0,0 @@ -./pkg \ No newline at end of file From 1d7a490b2f411f3193fc50d4b8f9d17962424f55 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 08:09:56 -0400 Subject: [PATCH 60/90] v3.0 (feature): add simple mock flow for cmf --- cmd/cmd.go | 69 +++++++++++++++++++++++++++++++++++++++++ cmf/cmf.go | 51 ++++++++++++++++++++++++++++++ git/git.go | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 211 insertions(+) create mode 100644 cmd/cmd.go create mode 100644 cmf/cmf.go create mode 100644 git/git.go diff --git a/cmd/cmd.go b/cmd/cmd.go new file mode 100644 index 0000000..4690da6 --- /dev/null +++ b/cmd/cmd.go @@ -0,0 +1,69 @@ +package cmd + +import ( + "fmt" + "os" + + "github.com/spf13/cobra" + "github.com/walmartdigital/commit-message-formatter/cmf" + git "github.com/walmartdigital/commit-message-formatter/git" +) + +var cmfInstance cmf.CMF + +// Root Root cli command +var root = &cobra.Command{ + Use: "cmf", + Short: "Commit Message Formatter", + Long: "Generate custom commit message for your repo and standarize your commits log", + Run: func(cmd *cobra.Command, args []string) { + cmfInstance.CommitChanges() + // go git.CheckTree() + // message := template.Run() + // git.Commit(message) + }, +} + +var version = &cobra.Command{ + Use: "version", + Short: "Version cmf", + Long: "Display version of commit message formatter", + Run: func(cmd *cobra.Command, args []string) { + // fmt.Println("CMF - Commit Message Formatter v2.0") + cmfInstance.GetVersion() + }, +} + +var amend = &cobra.Command{ + Use: "amend", + Short: "Amend commit message", + Long: "Amend last commit message", + Run: func(cmd *cobra.Command, args []string) { + cmfInstance.CommitAmend() + // message := template.Run() + // git.Amend(message) + }, +} + +var boilerplateCMD = &cobra.Command{ + Use: "init", + Short: "Create configuration file", + Long: "Create .cmf.yaml configuration file", + Run: func(cmd *cobra.Command, args []string) { + cmfInstance.InitializeProject() + }, +} + +func Execute() { + if err := root.Execute(); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } +} + +func init() { + cmfInstance = cmf.NewCMF(git.NewGitWrapper()) + root.AddCommand(version) + root.AddCommand(boilerplateCMD) + root.AddCommand(amend) +} diff --git a/cmf/cmf.go b/cmf/cmf.go new file mode 100644 index 0000000..8d5862a --- /dev/null +++ b/cmf/cmf.go @@ -0,0 +1,51 @@ +package cmf + +import ( + "fmt" +) + +var version = "3.0" + +type Repository interface { + CheckWorkspaceChanges() + Commit(message string) + Amend(message string) +} +type cmf struct { + repository Repository +} + +type CMF interface { + GetVersion() + CommitChanges() + CommitAmend() + InitializeProject() +} + +func NewCMF(repository Repository) CMF { + return &cmf{ + repository: repository, + } +} + +// GetVersion return current cmf version +func (cmfInstance *cmf) GetVersion() { + fmt.Println("Git - Commit Message Formatter v", version) +} + +// CommitChanges perform a commit changes over current repository +func (cmfInstance *cmf) CommitChanges() { + cmfInstance.repository.CheckWorkspaceChanges() + // message := template.Run() + cmfInstance.repository.Commit("message") +} + +// CommitAmend perform a commit amend over current repository +func (cmfInstance *cmf) CommitAmend() { + fmt.Println("amend!!") +} + +// InitializeProject initialize current directory with a inner cmf template +func (cmfInstance *cmf) InitializeProject() { + fmt.Println("initialize!!") +} diff --git a/git/git.go b/git/git.go new file mode 100644 index 0000000..0ce4690 --- /dev/null +++ b/git/git.go @@ -0,0 +1,91 @@ +package git + +import "fmt" + +type git struct{} + +type Git interface { + CheckWorkspaceChanges() + Commit(message string) + Amend(message string) +} + +func NewGitWrapper() Git { + return &git{} +} + +func (gitInstance *git) CheckWorkspaceChanges() { + fmt.Println("check wrokspace") +} + +func (gitInstance *git) Commit(message string) { + fmt.Println(message) +} + +func (gitInstance *git) Amend(message string) { + fmt.Println("amend") +} + +// func checkErr(err error) { +// if err != nil { +// fmt.Println(color.Red(err)) +// os.Exit(1) +// } +// } + +// // CheckTree perform a git tree check +// func CheckTree() { +// cmdGit := exec.Command("git", "diff", "--cached", "--exit-code") +// _, err := cmdGit.Output() +// if err == nil { +// checkErr(errors.New("No changes added to commit")) +// } +// } + +// func commit(cmdGit *exec.Cmd, message ...interface{}) { +// fmt.Println("") +// fmt.Println(message...) +// // fmt.Println(color.Gray("-------------------------------")) +// fmt.Println("") +// cmdGit.Stdout = os.Stdout +// cmdGit.Stderr = os.Stderr +// err := cmdGit.Run() +// fmt.Println("") +// // fmt.Println(color.Gray("-------------------------------")) +// if err == nil { +// fmt.Println(color.Green("Done \U0001F604")) +// } else { +// fmt.Println(color.Red("Something went grong \U0001F92F")) +// } + +// return +// } + +// // Commit execute commit +// func Commit(message string) (err error) { +// ctx := context.Background() +// cmdGit := exec.CommandContext(ctx, "git", "commit", "-m", message) +// commit(cmdGit, "Committing: ", color.Blue(message)) + +// return +// } + +// // Amend execute commit amend +// func Amend(message string) (err error) { +// ctx := context.Background() +// cmdGit := exec.CommandContext(ctx, "git", "commit", "--amend", "-m", message) +// commit(cmdGit, "Amending: ", color.Blue(message)) + +// return +// } + +// // BranchName return current branch name +// func BranchName() string { +// cmdGit := exec.Command("git", "rev-parse", "--abbrev-ref", "HEAD") +// branchName, err := cmdGit.Output() +// if err != nil { +// return "" +// } + +// return strings.TrimSuffix(string(branchName), "\n") +// } From 2050263bdf26b65b4b640c32cd685d0089c8c3a2 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 13:41:12 -0400 Subject: [PATCH 61/90] v3.0 (feat): add fs package to handle user directory and cmf inner directory --- fs/fs.go | 66 +++++++++++++++++++++++ fs/fs_test.go | 68 ++++++++++++++++++++++++ mocks/fs.go | 116 +++++++++++++++++++++++++++++++++++++++++ packrd/packed-packr.go | 33 ------------ 4 files changed, 250 insertions(+), 33 deletions(-) create mode 100644 fs/fs.go create mode 100644 fs/fs_test.go create mode 100644 mocks/fs.go delete mode 100644 packrd/packed-packr.go diff --git a/fs/fs.go b/fs/fs.go new file mode 100644 index 0000000..c7a1365 --- /dev/null +++ b/fs/fs.go @@ -0,0 +1,66 @@ +package fs + +import ( + "errors" + "io/ioutil" + "os" +) + +// GetFileFromVirtualFSError vfs.ReadFileSync fail +const GetFileFromVirtualFSError = "open file from vfs error" + +// GetFileFromFSError ioutil.ReadFile fail +const GetFileFromFSError = "open file from user fs error" + +type fs struct { + vfs VFS +} + +// VFS VirtualFS main object +type VFS interface { + ReadFile(path string) ([]byte, error) +} + +// FS file system interface +type FS interface { + GetFileFromVirtualFS(path string) (string, error) + GetFileFromFS(path string) (string, error) + GetCurrentDirectory() (string, error) +} + +// NewFs return new file system with virtual file system +func NewFs(vfs VFS) FS { + return &fs{ + vfs: vfs, + } +} + +// GetFileFromVirtualFS return a file from virtual fs +func (vfs *fs) GetFileFromVirtualFS(path string) (string, error) { + file, err := vfs.vfs.ReadFile(path) + if err != nil { + return "", errors.New(GetFileFromVirtualFSError) + } + + return string(file), nil +} + +// GetFileFromFS return a file from user fs +func (vfs *fs) GetFileFromFS(path string) (string, error) { + file, err := ioutil.ReadFile(path) + if err != nil { + return "", errors.New(GetFileFromFSError) + } + + return string(file), nil +} + +// GetCurrentDirectory return user current directory +func (vfs *fs) GetCurrentDirectory() (string, error) { + path, err := os.Getwd() + if err != nil { + return "", errors.New(GetFileFromFSError) + } + + return path, nil +} diff --git a/fs/fs_test.go b/fs/fs_test.go new file mode 100644 index 0000000..c344015 --- /dev/null +++ b/fs/fs_test.go @@ -0,0 +1,68 @@ +package fs_test + +import ( + "errors" + "os" + "testing" + + "github.com/golang/mock/gomock" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + + "github.com/walmartdigital/commit-message-formatter/fs" + "github.com/walmartdigital/commit-message-formatter/mocks" +) + +var ctrl *gomock.Controller + +func TestAll(t *testing.T) { + ctrl = gomock.NewController(t) + defer ctrl.Finish() + + RegisterFailHandler(Fail) + RunSpecs(t, "fs tests") +} + +var _ = Describe("fs package", func() { + var ( + fakeVFS *mocks.MockVFS + ) + + BeforeEach(func() { + fakeVFS = mocks.NewMockVFS(ctrl) + }) + + It("should return a file from VirtualFS", func() { + fakeVFS.EXPECT().ReadFile(gomock.Any().String()).Return([]byte{}, nil).Times(1) + + vfs := fs.NewFs(fakeVFS) + file, err := vfs.GetFileFromVirtualFS(gomock.Any().String()) + + Expect(vfs).ToNot(BeNil()) + Expect(err).To(BeNil()) + Expect(file).To(Equal("")) + }) + + It("should not return a file from VirtualFS when readFile fails", func() { + fakeVFS.EXPECT().ReadFile(gomock.Any().String()).Return([]byte(""), errors.New(gomock.Any().String())).Times(1) + + vfs := fs.NewFs(fakeVFS) + file, err := vfs.GetFileFromVirtualFS(gomock.Any().String()) + + Expect(vfs).ToNot(BeNil()) + Expect(file).To(Equal("")) + Expect(err).To(Equal(errors.New(fs.GetFileFromVirtualFSError))) + }) + + It("should return a file from user FS", func() { + + vfs := fs.NewFs(fakeVFS) + folder, _ := os.Getwd() + filePath := folder + "/fs.go" + file, err := vfs.GetFileFromFS(filePath) + + Expect(vfs).ToNot(BeNil()) + Expect(err).To(BeNil()) + Expect(file).ToNot(Equal("")) + }) +}) diff --git a/mocks/fs.go b/mocks/fs.go new file mode 100644 index 0000000..08f4661 --- /dev/null +++ b/mocks/fs.go @@ -0,0 +1,116 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: ./fs/fs.go + +// Package mocks is a generated GoMock package. +package mocks + +import ( + gomock "github.com/golang/mock/gomock" + reflect "reflect" +) + +// MockVFS is a mock of VFS interface +type MockVFS struct { + ctrl *gomock.Controller + recorder *MockVFSMockRecorder +} + +// MockVFSMockRecorder is the mock recorder for MockVFS +type MockVFSMockRecorder struct { + mock *MockVFS +} + +// NewMockVFS creates a new mock instance +func NewMockVFS(ctrl *gomock.Controller) *MockVFS { + mock := &MockVFS{ctrl: ctrl} + mock.recorder = &MockVFSMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockVFS) EXPECT() *MockVFSMockRecorder { + return m.recorder +} + +// ReadFile mocks base method +func (m *MockVFS) ReadFile(path string) ([]byte, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReadFile", path) + ret0, _ := ret[0].([]byte) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ReadFile indicates an expected call of ReadFile +func (mr *MockVFSMockRecorder) ReadFile(path interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadFile", reflect.TypeOf((*MockVFS)(nil).ReadFile), path) +} + +// MockFS is a mock of FS interface +type MockFS struct { + ctrl *gomock.Controller + recorder *MockFSMockRecorder +} + +// MockFSMockRecorder is the mock recorder for MockFS +type MockFSMockRecorder struct { + mock *MockFS +} + +// NewMockFS creates a new mock instance +func NewMockFS(ctrl *gomock.Controller) *MockFS { + mock := &MockFS{ctrl: ctrl} + mock.recorder = &MockFSMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockFS) EXPECT() *MockFSMockRecorder { + return m.recorder +} + +// GetFileFromVirtualFS mocks base method +func (m *MockFS) GetFileFromVirtualFS(path string) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFileFromVirtualFS", path) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFileFromVirtualFS indicates an expected call of GetFileFromVirtualFS +func (mr *MockFSMockRecorder) GetFileFromVirtualFS(path interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileFromVirtualFS", reflect.TypeOf((*MockFS)(nil).GetFileFromVirtualFS), path) +} + +// GetFileFromFS mocks base method +func (m *MockFS) GetFileFromFS(path string) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFileFromFS", path) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFileFromFS indicates an expected call of GetFileFromFS +func (mr *MockFSMockRecorder) GetFileFromFS(path interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileFromFS", reflect.TypeOf((*MockFS)(nil).GetFileFromFS), path) +} + +// GetCurrentDirectory mocks base method +func (m *MockFS) GetCurrentDirectory() (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetCurrentDirectory") + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetCurrentDirectory indicates an expected call of GetCurrentDirectory +func (mr *MockFSMockRecorder) GetCurrentDirectory() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetCurrentDirectory", reflect.TypeOf((*MockFS)(nil).GetCurrentDirectory)) +} diff --git a/packrd/packed-packr.go b/packrd/packed-packr.go deleted file mode 100644 index 9dbf064..0000000 --- a/packrd/packed-packr.go +++ /dev/null @@ -1,33 +0,0 @@ -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr2 clean" command to clean up this, -// and any other packr generated files. -package packrd - -import ( - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/packr/v2/file/resolver" -) - -var _ = func() error { - const gk = "7e12094938b20695eb2a126ff944e858" - g := packr.New(gk, "") - hgr, err := resolver.NewHexGzip(map[string]string{ - "62db5f172a9b22c8d52c942e61af1852": "1f8b08000000000000ff7c524d6eb33014dce7142356dfb7c805d85182daa824a0422a7549cc23b184fd226cda22c4dd2b036da310d51bcb9e9f37b6267d497669eeaf80359ea3371f5ef814ec1f236f050071f010c53ebcbcbb10b8823817fa441396a4f936d967fe7870f2d7203e443ebc8a0adb3633cbad4d94853ebca02ca1e90337f895507e2e4538b6275c21bf744bc6de1b22f5094a1ae376c731e006829b86847577acc92cdd8cedea3b9921b8a4f9ddb00ca92e0dbf13444d851ec1a5d5b19575b91672e1168e3606ac61cf849107d3194bca650cb7a8647d2f5c4355212c377fe75bea4a1666a1d9b06815695b58c91aaceb6ed68fd4ef1aec92cd21bea9415055242c95505cb6d36ffdd0a32c0b6e6b13b252d2429131858b9747bb340e7297acefa79e0dc3bfbe9f660dc37f1f7d3f3b0d83b7fa0a0000fffff72404029d020000", - "80fa7149cc272248518019d08636b2ca": "1f8b08000000000000ff7c92c10e9b301044eff98a11a7f6901fe046096aa392800aa9d423314b62097b916d9a22c4bf5706da46212a17847766f6614dfe2d3be565b803f6f89afc0811c45fa2f3e724d801401a7d4ad210413974046e20ee95bed132cbf2f2989d8b70fef0f6ef517a4942040d55ae37abca3f87a4884304515d43d3032ff327a3fcb535e1dadff034f9277764ddbb2552dfa0a4b5feed35166c20d81812ce9fb126bb4db36e68df3043704deb7fc331a4ea0cff2488962a3d0fb751d75eb6f55ec84d5a3cc758b086bb13661dec601d29cf181fd1c8f61d9ca1a6128ecdfff9b6be9a85dd780e2c7a45da554eb206eb7658fdb3f44f0d4ed9e192bed4206a1a128e6a28aefbe5b6feca93a2885e6b13b352d24191b595c72b93539e46a5278b0d558e30706fc00f0d47aa6bfd091b70e7c92cc671e9e2347d18c785679a3e8618c775db3405bbdf010000ffff1488fed3c1020000", - "b3a6c6c38da037c9ce49dbf36d351adb": "1f8b08000000000000ff8453cd6e9b4010befb293e716a0f7e016e1b4c1b6a8c91218daaa88af0b2262bc30eda5dda5a8877af00a721063527c47e3ff3cd68263eec7771eaae8035b6fe0f17ceb7e0c0d6294bb6ce0a004276e787fdb3d4196c66ce083623b2f1bfb087307dfecec207df85d3b677071679f7cf11dbf95de74c3cbd7b167df5df1ba6975a804ee02f992ac488ede334d847893bfcf4f257ef93c86ca3afacb178e2b970589e4389dfb8c12742f9672ec2b1293041dee85618bb5444aa029534a6fff61c03d2e0a4b5e0b67f2325ccdccdd84bb990199c7271ed1b9620ab5ad32f015e8a4c0de0dcead8c8325f733973f3061b0352b02f02030fe662aca8fa8c5e80932c97c26971cab825fdff7c735d4edccc341be24d2594cdac240552e5e5aa37d335d8f949c26ef7c0a3aa92169530261bebbdd207c67b72981d45f9c1aeccc24584f24d37a53e7901926d10ff9c6992b3acc14959a9a83190ca8a428fddd5b216a5540ba3797a5cb27a247d46a0106b2ab430c659a5fe2e0e593a1ecdbf7beb3a7c6adbf154baeeb38bb6bd0eacebda7698407f557f030000fffffab364e8b2030000", - }) - if err != nil { - panic(err) - } - g.DefaultResolver = hgr - - func() { - b := packr.New("config", "../../configs") - b.SetResolver("custom.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "80fa7149cc272248518019d08636b2ca"}) - b.SetResolver("default.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "62db5f172a9b22c8d52c942e61af1852"}) - b.SetResolver("jira.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "b3a6c6c38da037c9ce49dbf36d351adb"}) - }() - - return nil -}() From ffa0ffb91165b08e52db7ce93d8c027803a6b3cd Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 13:41:47 -0400 Subject: [PATCH 62/90] v3.0 (feat): add template runner and it dependency prompt wrapper to load and parse cmf yaml file --- mocks/templaterunner.go | 100 +++++++++++++++++++ prompt/prompt.go | 62 ++++++++++++ promptxWrapper/promptxwrapper.go | 61 ++++++++++++ templaterunner/templaterunner.go | 125 ++++++++++++++++++++++++ templaterunner/templaterunner_test.go | 132 ++++++++++++++++++++++++++ 5 files changed, 480 insertions(+) create mode 100644 mocks/templaterunner.go create mode 100644 prompt/prompt.go create mode 100644 promptxWrapper/promptxwrapper.go create mode 100644 templaterunner/templaterunner.go create mode 100644 templaterunner/templaterunner_test.go diff --git a/mocks/templaterunner.go b/mocks/templaterunner.go new file mode 100644 index 0000000..ff6433d --- /dev/null +++ b/mocks/templaterunner.go @@ -0,0 +1,100 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: templaterunner/templaterunner.go + +// Package mocks is a generated GoMock package. +package mocks + +import ( + gomock "github.com/golang/mock/gomock" + templaterunner "github.com/walmartdigital/commit-message-formatter/templaterunner" + reflect "reflect" +) + +// MockPromptManager is a mock of PromptManager interface +type MockPromptManager struct { + ctrl *gomock.Controller + recorder *MockPromptManagerMockRecorder +} + +// MockPromptManagerMockRecorder is the mock recorder for MockPromptManager +type MockPromptManagerMockRecorder struct { + mock *MockPromptManager +} + +// NewMockPromptManager creates a new mock instance +func NewMockPromptManager(ctrl *gomock.Controller) *MockPromptManager { + mock := &MockPromptManager{ctrl: ctrl} + mock.recorder = &MockPromptManagerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockPromptManager) EXPECT() *MockPromptManagerMockRecorder { + return m.recorder +} + +// ReadValue mocks base method +func (m *MockPromptManager) ReadValue(title, errorMessage, defaultValue string) string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReadValue", title, errorMessage, defaultValue) + ret0, _ := ret[0].(string) + return ret0 +} + +// ReadValue indicates an expected call of ReadValue +func (mr *MockPromptManagerMockRecorder) ReadValue(title, errorMessage, defaultValue interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadValue", reflect.TypeOf((*MockPromptManager)(nil).ReadValue), title, errorMessage, defaultValue) +} + +// ReadValueFromList mocks base method +func (m *MockPromptManager) ReadValueFromList(title string, options []templaterunner.Options) string { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ReadValueFromList", title, options) + ret0, _ := ret[0].(string) + return ret0 +} + +// ReadValueFromList indicates an expected call of ReadValueFromList +func (mr *MockPromptManagerMockRecorder) ReadValueFromList(title, options interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadValueFromList", reflect.TypeOf((*MockPromptManager)(nil).ReadValueFromList), title, options) +} + +// MockTemplateRunner is a mock of TemplateRunner interface +type MockTemplateRunner struct { + ctrl *gomock.Controller + recorder *MockTemplateRunnerMockRecorder +} + +// MockTemplateRunnerMockRecorder is the mock recorder for MockTemplateRunner +type MockTemplateRunnerMockRecorder struct { + mock *MockTemplateRunner +} + +// NewMockTemplateRunner creates a new mock instance +func NewMockTemplateRunner(ctrl *gomock.Controller) *MockTemplateRunner { + mock := &MockTemplateRunner{ctrl: ctrl} + mock.recorder = &MockTemplateRunnerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockTemplateRunner) EXPECT() *MockTemplateRunnerMockRecorder { + return m.recorder +} + +// Run mocks base method +func (m *MockTemplateRunner) Run(yamlData string, injectedVariables map[string]string) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Run", yamlData, injectedVariables) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Run indicates an expected call of Run +func (mr *MockTemplateRunnerMockRecorder) Run(yamlData, injectedVariables interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Run", reflect.TypeOf((*MockTemplateRunner)(nil).Run), yamlData, injectedVariables) +} diff --git a/prompt/prompt.go b/prompt/prompt.go new file mode 100644 index 0000000..e194e64 --- /dev/null +++ b/prompt/prompt.go @@ -0,0 +1,62 @@ +package prompt + +import ( + "errors" + "strings" + + "github.com/mritd/promptx" +) + +// SelectItem a default item struct +type SelectItem struct { + Title string + Description string + Value string +} + +// SelectConfiguration a complete configuration select options +type SelectConfiguration struct { + ActiveTpl string + InactiveTpl string + SelectPrompt string + SelectedTpl string + DetailsTpl string +} + +// Select Returns a selected item +func Select(items []SelectItem, config SelectConfiguration) SelectItem { + configuration := &promptx.SelectConfig{ + ActiveTpl: config.ActiveTpl, + InactiveTpl: config.InactiveTpl, + SelectPrompt: config.SelectPrompt, + SelectedTpl: config.SelectedTpl, + DisPlaySize: 9, + DetailsTpl: config.DetailsTpl, + } + + selector := &promptx.Select{ + Items: items, + Config: configuration, + } + + return items[selector.Run()] +} + +// Input return a simple user input +func Input(title string, errorMessage string, defaultValue string) string { + input := promptx.NewDefaultPrompt(func(line []rune) error { + if strings.TrimSpace(string(line)) == "" && defaultValue == "" { + return errors.New(errorMessage) + } + + return nil + }, title) + + value := input.Run() + + if value == "" && defaultValue != "" { + return defaultValue + } + + return value +} diff --git a/promptxWrapper/promptxwrapper.go b/promptxWrapper/promptxwrapper.go new file mode 100644 index 0000000..f3c89ca --- /dev/null +++ b/promptxWrapper/promptxwrapper.go @@ -0,0 +1,61 @@ +package promptxwrapper + +import ( + "errors" + "strings" + + "github.com/mritd/promptx" + "github.com/walmartdigital/commit-message-formatter/prompt" + "github.com/walmartdigital/commit-message-formatter/templaterunner" +) + +// PromptxWrapper promptx wrapper object +type PromptxWrapper struct{} + +// NewPromptxWrapper return a new instance of promptxWrapper +func NewPromptxWrapper() *PromptxWrapper { + return &PromptxWrapper{} +} + +// ReadValue return a value from user single input +func (pw *PromptxWrapper) ReadValue(title string, errorMessage string, defaultValue string) string { + input := promptx.NewDefaultPrompt(func(line []rune) error { + if strings.TrimSpace(string(line)) == "" && defaultValue == "" { + return errors.New(errorMessage) + } + + return nil + }, title) + + value := input.Run() + + if value == "" && defaultValue != "" { + return defaultValue + } + + return value +} + +// ReadValueFromList return a value from user multi select input +func (pw *PromptxWrapper) ReadValueFromList(title string, options []templaterunner.Options) string { + configuration := &promptx.SelectConfig{ + ActiveTpl: "\U0001F449 {{ .Title | cyan | bold }}", + InactiveTpl: " {{ .Title | white }}", + SelectPrompt: title, + SelectedTpl: "\U0001F44D {{ \"" + title + "\" | cyan }} {{ .Title | cyan | bold }}", + DetailsTpl: `------------------------------- + {{ .Title | white | bold }} {{ .Description | white | bold }}`, + } + + var items []prompt.SelectItem + for _, option := range options { + items = append(items, prompt.SelectItem{Title: option.Value, Value: option.Value, Description: option.Description}) + } + + selector := &promptx.Select{ + Items: items, + Config: configuration, + } + + return items[selector.Run()].Value +} diff --git a/templaterunner/templaterunner.go b/templaterunner/templaterunner.go new file mode 100644 index 0000000..47ee40b --- /dev/null +++ b/templaterunner/templaterunner.go @@ -0,0 +1,125 @@ +package templaterunner + +import ( + "errors" + "strings" + + "gopkg.in/yaml.v2" +) + +type templateRunner struct { + promptManager PromptManager +} + +// PromptManager ... +type PromptManager interface { + ReadValue(title string, errorMessage string, defaultValue string) string + ReadValueFromList(title string, options []Options) string +} + +// TemplateRunner main template interface +type TemplateRunner interface { + Run(yamlData string, injectedVariables map[string]string) (message string, err error) +} + +// Template main template struct +type Template struct { + Prompt []PromptItem `yaml:"PROMPT"` + Template string `yaml:"TEMPLATE"` +} + +//PromptItem ... +type PromptItem struct { + Key string `yaml:"KEY"` + Label string `yaml:"LABEL"` + ErrorLabel string `yaml:"ERROR_LABEL"` + DefaultValue string `yaml:"DEFAULT_VALUE"` + Options []Options `yaml:"OPTIONS"` +} + +// Options multiselect option struct +type Options struct { + Value string `yaml:"VALUE"` + Description string `yaml:"DESC"` +} + +type keyValue struct { + Key string + Value string +} + +// NewTemplateRunner return a bluetnew instance of template +func NewTemplateRunner(promptManager PromptManager) TemplateRunner { + return &templateRunner{ + promptManager: promptManager, + } +} + +func (tr *templateRunner) parseYaml(yamlData string) (Template, error) { + template := Template{} + err := yaml.Unmarshal([]byte(yamlData), &template) + + if err != nil { + return Template{}, errors.New("parsing yaml error") + } + + return template, nil +} + +// Run return the result of run the template +func (tr *templateRunner) Run(yamlData string, injectedVariables map[string]string) (string, error) { + template, err := tr.parseYaml(yamlData) + if err != nil { + return "", err + } + + variables := tr.prompt(template) + for k, v := range injectedVariables { + variables = append(variables, keyValue{Key: k, Value: v}) + } + + message := tr.parseTemplate(template.Template, variables) + + return message, err +} + +func (tr *templateRunner) parseTemplate(template string, variables []keyValue) string { + for _, v := range variables { + template = strings.Replace(template, "{{"+v.Key+"}}", v.Value, -1) + } + + return template +} + +func (tr *templateRunner) prompt(template Template) []keyValue { + variables := []keyValue{} + for _, step := range template.Prompt { + result := "" + var errorMessage = "empty value" + + if step.ErrorLabel != "" { + errorMessage = step.ErrorLabel + } + + if step.Options == nil { + var labelMessage = step.Label + + if step.DefaultValue != "" { + labelMessage += " (" + step.DefaultValue + ")" + } + + labelMessage += ":" + + result = tr.promptManager.ReadValue(labelMessage, errorMessage, step.DefaultValue) + } else { + result = tr.promptManager.ReadValueFromList(step.Label, step.Options) + } + + variables = append(variables, keyValue{ + Key: step.Key, + Value: result, + }) + } + + return variables +} diff --git a/templaterunner/templaterunner_test.go b/templaterunner/templaterunner_test.go new file mode 100644 index 0000000..2f29a5d --- /dev/null +++ b/templaterunner/templaterunner_test.go @@ -0,0 +1,132 @@ +package templaterunner_test + +import ( + "testing" + + "github.com/golang/mock/gomock" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + + "github.com/walmartdigital/commit-message-formatter/mocks" + "github.com/walmartdigital/commit-message-formatter/templaterunner" +) + +var ctrl *gomock.Controller + +type promptCallback func([]rune) error + +func TestAll(t *testing.T) { + ctrl = gomock.NewController(t) + defer ctrl.Finish() + + RegisterFailHandler(Fail) + RunSpecs(t, "templaterunner tests") +} + +var _ = Describe("templaterunner package", func() { + var ( + fakePromptManager *mocks.MockPromptManager + ) + BeforeEach(func() { + fakePromptManager = mocks.NewMockPromptManager(ctrl) + }) + + It("should return a template instance", func() { + template := templaterunner.NewTemplateRunner(fakePromptManager) + + Expect(template).ToNot(BeNil()) + }) + + It("should return a message from a 1 input template", func() { + label := "label test:" + template := templaterunner.NewTemplateRunner(fakePromptManager) + yaml := `PROMPT: +- KEY: "TEST" + LABEL: "label test" +TEMPLATE: "{{TEST}}"` + + fakePromptManager.EXPECT().ReadValue(label, "empty value", "").Return("ok").Times(1) + messageFromTemplate, err := template.Run(yaml, nil) + + Expect(template).ToNot(BeNil()) + Expect(err).To(BeNil()) + Expect(messageFromTemplate).To(Equal("ok")) + }) + + It("should return a message from a 1 input template with all options available filled", func() { + label := "label test (test value):" + defaultValue := "test value" + template := templaterunner.NewTemplateRunner(fakePromptManager) + yaml := `PROMPT: +- KEY: "TEST" + LABEL: "label test" + ERROR_LABEL: "error value" + DEFAULT_VALUE: "test value" +TEMPLATE: "{{TEST}}"` + + fakePromptManager.EXPECT().ReadValue(label, "error value", defaultValue).Return("test value").Times(1) + messageFromTemplate, err := template.Run(yaml, nil) + + Expect(template).ToNot(BeNil()) + Expect(err).To(BeNil()) + Expect(messageFromTemplate).To(Equal(defaultValue)) + }) + + It("should return a message from a 1 multi selection item template", func() { + label := "label test" + template := templaterunner.NewTemplateRunner(fakePromptManager) + yaml := `PROMPT: +- KEY: "TEST" + LABEL: "label test" + OPTIONS: + - VALUE: "opt1" + DESC: "Test option1" + - VALUE: "opt2" + DESC: "Test option2" +TEMPLATE: "{{TEST}}"` + + options := []templaterunner.Options{ + {Value: "opt1", Description: "Test option1"}, + {Value: "opt2", Description: "Test option2"}, + } + + fakePromptManager.EXPECT().ReadValueFromList(label, options).Return("Test option1").Times(1) + messageFromTemplate, err := template.Run(yaml, nil) + + Expect(template).ToNot(BeNil()) + Expect(err).To(BeNil()) + Expect(messageFromTemplate).To(Equal("Test option1")) + }) + + It("should return a message from a 1 input template with extra variables", func() { + label := "label test:" + template := templaterunner.NewTemplateRunner(fakePromptManager) + yaml := `PROMPT: +- KEY: "TEST" + LABEL: "label test" +TEMPLATE: "{{TEST}}: {{SAMPLE}}"` + injectedVariables := map[string]string{ + "SAMPLE": "sample value", + } + + fakePromptManager.EXPECT().ReadValue(label, "empty value", "").Return("ok").Times(1) + messageFromTemplate, err := template.Run(yaml, injectedVariables) + + Expect(template).ToNot(BeNil()) + Expect(err).To(BeNil()) + Expect(messageFromTemplate).To(Equal("ok: sample value")) + }) + + It("should fail if parseYaml fail", func() { + template := templaterunner.NewTemplateRunner(fakePromptManager) + // this yaml fails because it is bad format + yaml := `PROMPT: + - KEY: "TEST" + LABEL: "label test"` + + _, err := template.Run(yaml, nil) + + Expect(template).ToNot(BeNil()) + Expect(err).To(Not(BeNil())) + }) +}) From 9327bc52c1bd89fafc27525b1968547dc1f8069c Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 13:42:16 -0400 Subject: [PATCH 63/90] v3.0 (feat): clear cmd package and add amd builder for initialization --- cmd/cmd.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/cmd/cmd.go b/cmd/cmd.go index 4690da6..01e6b9f 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -1,12 +1,16 @@ package cmd import ( + "embed" "fmt" "os" "github.com/spf13/cobra" "github.com/walmartdigital/commit-message-formatter/cmf" + "github.com/walmartdigital/commit-message-formatter/fs" git "github.com/walmartdigital/commit-message-formatter/git" + promptxwrapper "github.com/walmartdigital/commit-message-formatter/promptxWrapper" + "github.com/walmartdigital/commit-message-formatter/templaterunner" ) var cmfInstance cmf.CMF @@ -18,9 +22,6 @@ var root = &cobra.Command{ Long: "Generate custom commit message for your repo and standarize your commits log", Run: func(cmd *cobra.Command, args []string) { cmfInstance.CommitChanges() - // go git.CheckTree() - // message := template.Run() - // git.Commit(message) }, } @@ -29,7 +30,6 @@ var version = &cobra.Command{ Short: "Version cmf", Long: "Display version of commit message formatter", Run: func(cmd *cobra.Command, args []string) { - // fmt.Println("CMF - Commit Message Formatter v2.0") cmfInstance.GetVersion() }, } @@ -40,8 +40,6 @@ var amend = &cobra.Command{ Long: "Amend last commit message", Run: func(cmd *cobra.Command, args []string) { cmfInstance.CommitAmend() - // message := template.Run() - // git.Amend(message) }, } @@ -61,8 +59,11 @@ func Execute() { } } -func init() { - cmfInstance = cmf.NewCMF(git.NewGitWrapper()) +func Build(vfs embed.FS) { + fsManager := fs.NewFs(vfs) + promptManager := promptxwrapper.NewPromptxWrapper() + templateManager := templaterunner.NewTemplateRunner(promptManager) + cmfInstance = cmf.NewCMF(git.NewGitWrapper(), templateManager, fsManager) root.AddCommand(version) root.AddCommand(boilerplateCMD) root.AddCommand(amend) From 2c1caa6a043425a6ff8b794b765790016849b54d Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 13:42:39 -0400 Subject: [PATCH 64/90] v3.0 (feat): add cmf initializsation and dependencies --- cmf/cmf.go | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/cmf/cmf.go b/cmf/cmf.go index 8d5862a..ead7966 100644 --- a/cmf/cmf.go +++ b/cmf/cmf.go @@ -4,15 +4,30 @@ import ( "fmt" ) -var version = "3.0" +const version = "3.0" +const defaultYamlFile = "resources/default.yaml" +const defaultCMFFile = ".cmf.yaml" type Repository interface { CheckWorkspaceChanges() Commit(message string) Amend(message string) } + +type TemplateManager interface { + Run(yamlData string, injectedVariables map[string]string) (string, error) +} + +type FS interface { + GetFileFromVirtualFS(path string) (string, error) + GetFileFromFS(path string) (string, error) + GetCurrentDirectory() (string, error) +} + type cmf struct { - repository Repository + repository Repository + templateManager TemplateManager + fs FS } type CMF interface { @@ -22,9 +37,11 @@ type CMF interface { InitializeProject() } -func NewCMF(repository Repository) CMF { +func NewCMF(repository Repository, templateManager TemplateManager, fsManager FS) CMF { return &cmf{ - repository: repository, + repository: repository, + templateManager: templateManager, + fs: fsManager, } } @@ -36,8 +53,15 @@ func (cmfInstance *cmf) GetVersion() { // CommitChanges perform a commit changes over current repository func (cmfInstance *cmf) CommitChanges() { cmfInstance.repository.CheckWorkspaceChanges() - // message := template.Run() - cmfInstance.repository.Commit("message") + currentDirectory, _ := cmfInstance.fs.GetCurrentDirectory() + cmfFile, err := cmfInstance.fs.GetFileFromFS(currentDirectory + "/" + defaultCMFFile) + if err != nil { + cmfFile, _ = cmfInstance.fs.GetFileFromVirtualFS(defaultYamlFile) + } + + extra := map[string]string{} + message, _ := cmfInstance.templateManager.Run(cmfFile, extra) + cmfInstance.repository.Commit(message) } // CommitAmend perform a commit amend over current repository From 9c20d191c8476682f33b3f475b7dc79dfaa67de7 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 13:43:12 -0400 Subject: [PATCH 65/90] v3.0 (feat): add embed vfs files using embed from go 1.16 and the call to build command --- go.mod | 5 ++++ go.sum | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ main.go | 6 ++++ 3 files changed, 102 insertions(+) diff --git a/go.mod b/go.mod index 1924b13..9698e07 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,11 @@ module github.com/walmartdigital/commit-message-formatter go 1.16 require ( + github.com/golang/mock v1.6.0 // indirect github.com/logrusorgru/aurora v2.0.3+incompatible // indirect + github.com/mritd/promptx v0.0.0-20201227060029-3c9bd8aa86dd // indirect + github.com/onsi/ginkgo v1.16.4 // indirect + github.com/onsi/gomega v1.13.0 // indirect github.com/spf13/cobra v1.1.3 + gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index 1574a11..7888753 100644 --- a/go.sum +++ b/go.sum @@ -24,6 +24,8 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -37,12 +39,15 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -50,13 +55,26 @@ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4er github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -88,6 +106,7 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -107,6 +126,8 @@ github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/z github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -119,8 +140,25 @@ github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:F github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mritd/promptx v0.0.0-20201227060029-3c9bd8aa86dd h1:7i0LjsJlcQNe6diQvItJzAUrBDMoU3M4ZCH8X7BHOL4= +github.com/mritd/promptx v0.0.0-20201227060029-3c9bd8aa86dd/go.mod h1:3fywjHX11nsf0f4lrmJ5zuwdxTEn6qh5v3LV2Nt8nVc= +github.com/mritd/readline v0.0.0-20190919142632-e26f42a56c34 h1:BPeB6AxncRXhTouiFcv++Gso1IOki6rCVhkEE36DI6I= +github.com/mritd/readline v0.0.0-20190919142632-e26f42a56c34/go.mod h1:RCmOeHfgzDd3ofo+QDJZ4tjCOv3SWN8WPk3piOfjqiU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= +github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak= +github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -160,9 +198,13 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -174,6 +216,8 @@ golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -192,8 +236,11 @@ golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -206,6 +253,11 @@ golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -214,9 +266,12 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -227,9 +282,25 @@ golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190919044723-0c1ff786ef13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -249,7 +320,13 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -271,15 +348,29 @@ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvx google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/main.go b/main.go index b36881c..689f799 100644 --- a/main.go +++ b/main.go @@ -21,9 +21,15 @@ package main import ( + "embed" + "github.com/walmartdigital/commit-message-formatter/cmd" ) +//go:embed resources +var vfs embed.FS + func main() { + cmd.Build(vfs) cmd.Execute() } From e01ef93a8440ff07c0d9cbcad8ad6a6186e3b854 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 14:14:38 -0400 Subject: [PATCH 66/90] feat(git): add missing implementations of methods (commit, amend and get branch name) --- git/git.go | 115 +++++++++++++++++++++++------------------------------ 1 file changed, 49 insertions(+), 66 deletions(-) diff --git a/git/git.go b/git/git.go index 0ce4690..fedb078 100644 --- a/git/git.go +++ b/git/git.go @@ -1,6 +1,15 @@ package git -import "fmt" +import ( + "context" + "errors" + "fmt" + "os" + "os/exec" + "strings" + + color "github.com/logrusorgru/aurora" +) type git struct{} @@ -10,82 +19,56 @@ type Git interface { Amend(message string) } +func commit(cmdGit *exec.Cmd, message ...interface{}) { + fmt.Println("") + fmt.Println(message...) + fmt.Println(color.Gray(16-1, "-------------------------------")) + fmt.Println("") + cmdGit.Stdout = os.Stdout + cmdGit.Stderr = os.Stderr + err := cmdGit.Run() + fmt.Println("") + fmt.Println(color.Gray(16-1, "-------------------------------")) + if err == nil { + fmt.Println(color.Green("Done \U0001F604")) + } else { + fmt.Println(color.Red("Something went grong \U0001F92F")) + os.Exit(2) + } +} + func NewGitWrapper() Git { return &git{} } func (gitInstance *git) CheckWorkspaceChanges() { - fmt.Println("check wrokspace") + cmdGit := exec.Command("git", "diff", "--cached", "--exit-code") + _, err := cmdGit.Output() + if err == nil { + fmt.Println(color.Red(errors.New("no tracked changes"))) + fmt.Println(color.Blue("run git add or . 'to track changes'")) + os.Exit(1) + } } func (gitInstance *git) Commit(message string) { - fmt.Println(message) + ctx := context.Background() + cmdGit := exec.CommandContext(ctx, "git", "commit", "-m", message) + commit(cmdGit, "Committing: ", color.Blue(message)) } func (gitInstance *git) Amend(message string) { - fmt.Println("amend") + ctx := context.Background() + cmdGit := exec.CommandContext(ctx, "git", "commit", "--amend", "-m", message) + commit(cmdGit, "Amending: ", color.Blue(message)) } -// func checkErr(err error) { -// if err != nil { -// fmt.Println(color.Red(err)) -// os.Exit(1) -// } -// } - -// // CheckTree perform a git tree check -// func CheckTree() { -// cmdGit := exec.Command("git", "diff", "--cached", "--exit-code") -// _, err := cmdGit.Output() -// if err == nil { -// checkErr(errors.New("No changes added to commit")) -// } -// } - -// func commit(cmdGit *exec.Cmd, message ...interface{}) { -// fmt.Println("") -// fmt.Println(message...) -// // fmt.Println(color.Gray("-------------------------------")) -// fmt.Println("") -// cmdGit.Stdout = os.Stdout -// cmdGit.Stderr = os.Stderr -// err := cmdGit.Run() -// fmt.Println("") -// // fmt.Println(color.Gray("-------------------------------")) -// if err == nil { -// fmt.Println(color.Green("Done \U0001F604")) -// } else { -// fmt.Println(color.Red("Something went grong \U0001F92F")) -// } - -// return -// } +func (gitInstance *git) BranchName() string { + cmdGit := exec.Command("git", "rev-parse", "--abbrev-ref", "HEAD") + branchName, err := cmdGit.Output() + if err != nil { + return "" + } -// // Commit execute commit -// func Commit(message string) (err error) { -// ctx := context.Background() -// cmdGit := exec.CommandContext(ctx, "git", "commit", "-m", message) -// commit(cmdGit, "Committing: ", color.Blue(message)) - -// return -// } - -// // Amend execute commit amend -// func Amend(message string) (err error) { -// ctx := context.Background() -// cmdGit := exec.CommandContext(ctx, "git", "commit", "--amend", "-m", message) -// commit(cmdGit, "Amending: ", color.Blue(message)) - -// return -// } - -// // BranchName return current branch name -// func BranchName() string { -// cmdGit := exec.Command("git", "rev-parse", "--abbrev-ref", "HEAD") -// branchName, err := cmdGit.Output() -// if err != nil { -// return "" -// } - -// return strings.TrimSuffix(string(branchName), "\n") -// } + return strings.TrimSuffix(string(branchName), "\n") +} From 394ef28ab179ff6e602dd21a8003905291e0649e Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 14:15:05 -0400 Subject: [PATCH 67/90] feat(go.mod): add dependencies --- go.mod | 1 + go.sum | 2 ++ 2 files changed, 3 insertions(+) diff --git a/go.mod b/go.mod index 9698e07..261d026 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.16 require ( github.com/golang/mock v1.6.0 // indirect github.com/logrusorgru/aurora v2.0.3+incompatible // indirect + github.com/logrusorgru/aurora/v3 v3.0.0 // indirect github.com/mritd/promptx v0.0.0-20201227060029-3c9bd8aa86dd // indirect github.com/onsi/ginkgo v1.16.4 // indirect github.com/onsi/gomega v1.13.0 // indirect diff --git a/go.sum b/go.sum index 7888753..895c465 100644 --- a/go.sum +++ b/go.sum @@ -123,6 +123,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= +github.com/logrusorgru/aurora/v3 v3.0.0 h1:R6zcoZZbvVcGMvDCKo45A9U/lzYyzl5NfYIvznmDfE4= +github.com/logrusorgru/aurora/v3 v3.0.0/go.mod h1:vsR12bk5grlLvLXAYrBsb5Oc/N+LxAlxggSjiwMnCUc= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= From 44d1eacf62449d5c271ea79181bbda443cbe0426 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 14:15:53 -0400 Subject: [PATCH 68/90] fix(go.mod): fix aurora dependency using v3 --- git/git.go | 2 +- go.mod | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/git/git.go b/git/git.go index fedb078..dd1b632 100644 --- a/git/git.go +++ b/git/git.go @@ -8,7 +8,7 @@ import ( "os/exec" "strings" - color "github.com/logrusorgru/aurora" + color "github.com/logrusorgru/aurora/v3" ) type git struct{} diff --git a/go.mod b/go.mod index 261d026..a1e9207 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,6 @@ go 1.16 require ( github.com/golang/mock v1.6.0 // indirect - github.com/logrusorgru/aurora v2.0.3+incompatible // indirect github.com/logrusorgru/aurora/v3 v3.0.0 // indirect github.com/mritd/promptx v0.0.0-20201227060029-3c9bd8aa86dd // indirect github.com/onsi/ginkgo v1.16.4 // indirect From 923d33e72db762fd772a7078dfac671b303ca568 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 14:21:10 -0400 Subject: [PATCH 69/90] feat(git): add extra value BRANCH_NAME --- cmf/cmf.go | 5 ++++- git/git.go | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cmf/cmf.go b/cmf/cmf.go index ead7966..d525ad3 100644 --- a/cmf/cmf.go +++ b/cmf/cmf.go @@ -12,6 +12,7 @@ type Repository interface { CheckWorkspaceChanges() Commit(message string) Amend(message string) + BranchName() string } type TemplateManager interface { @@ -59,7 +60,9 @@ func (cmfInstance *cmf) CommitChanges() { cmfFile, _ = cmfInstance.fs.GetFileFromVirtualFS(defaultYamlFile) } - extra := map[string]string{} + extra := map[string]string{ + "BRANCH_NAME": cmfInstance.repository.BranchName(), + } message, _ := cmfInstance.templateManager.Run(cmfFile, extra) cmfInstance.repository.Commit(message) } diff --git a/git/git.go b/git/git.go index dd1b632..1f9a131 100644 --- a/git/git.go +++ b/git/git.go @@ -17,6 +17,7 @@ type Git interface { CheckWorkspaceChanges() Commit(message string) Amend(message string) + BranchName() string } func commit(cmdGit *exec.Cmd, message ...interface{}) { From efb5ac371957e79d22f7b8b36ae3935db9ed9fdd Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 14:21:40 -0400 Subject: [PATCH 70/90] chore(root): removed cmf file because it is not usefull anymore --- .cmf.yaml | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 .cmf.yaml diff --git a/.cmf.yaml b/.cmf.yaml deleted file mode 100644 index aec32f7..0000000 --- a/.cmf.yaml +++ /dev/null @@ -1,33 +0,0 @@ -PROMPT: - - KEY: "JIRA-TASK" - LABEL: "Jira task ID" - DEFAULT_VALUE: "{{BRANCH_NAME}}" - - KEY: "CHANGE" - LABEL: "Type of change" - OPTIONS: - - VALUE: "feature" - DESC: "Add new feature" - - VALUE: "fix" - DESC: "A bug fix" - - VALUE: "test" - DESC: "Adding missing tests or correcting ones" - - VALUE: "style" - DESC: "A code change to improve clean code" - - VALUE: "build-ci" - DESC: "Changes on the build system or CI files" - - VALUE: "refactor" - DESC: "A code change" - - VALUE: "docs" - DESC: "Documentation only changes" - - KEY: "MESSAGE" - LABEL: "Commit message" - - KEY: "LABEL" - LABEL: "Label" - OPTIONS: - - VALUE: "" - DESC: "No label" - - VALUE: "[CI SKIP]" - DESC: "Skip continous integration pipeline" - - VALUE: "[WIP]" - DESC: "Work In Progress" -TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}{{LABEL}}" From 7849a4668a214864b646980ec0293375dff0cbb7 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 14:21:59 -0400 Subject: [PATCH 71/90] feat(resources): add default files --- resources/default.yaml | 34 ++++++++++++++++++++++++++++++++++ resources/jira.yaml | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 resources/default.yaml create mode 100644 resources/jira.yaml diff --git a/resources/default.yaml b/resources/default.yaml new file mode 100644 index 0000000..62a7e60 --- /dev/null +++ b/resources/default.yaml @@ -0,0 +1,34 @@ +PROMPT: + - KEY: "CHANGE" + LABEL: "Type of change" + OPTIONS: + - VALUE: "feat" + DESC: "Add new feature" + - VALUE: "fix" + DESC: "A bug fix" + - VALUE: "test" + DESC: "Adding missing tests or correcting ones" + - VALUE: "chore" + DESC: "Add non bussiness logic change" + - VALUE: "style" + DESC: "A code change to improve clean code" + - VALUE: "ci/cd" + DESC: "Changes on the build system or CI files" + - VALUE: "refactor" + DESC: "A code change" + - VALUE: "docs" + DESC: "Documentation changes" + - KEY: "MODULE" + LABEL: "Affected module" + - KEY: "MESSAGE" + LABEL: "Commit message" + - KEY: "LABEL" + LABEL: "Label" + OPTIONS: + - VALUE: "" + DESC: "No label" + - VALUE: "[CI SKIP]" + DESC: "Skip continous integration pipeline" + - VALUE: "[WIP]" + DESC: "Work In Progress" +TEMPLATE: "{{CHANGE}}({{MODULE}}): {{MESSAGE}} {{LABEL}}" diff --git a/resources/jira.yaml b/resources/jira.yaml new file mode 100644 index 0000000..40e4abf --- /dev/null +++ b/resources/jira.yaml @@ -0,0 +1,35 @@ +PROMPT: + - KEY: "JIRA-TASK" + LABEL: "Jira task ID" + DEFAULT_VALUE: "{{BRANCH_NAME}}" + - KEY: "CHANGE" + LABEL: "Type of change" + OPTIONS: + - VALUE: "feat" + DESC: "Add new feature" + - VALUE: "fix" + DESC: "A bug fix" + - VALUE: "test" + DESC: "Adding missing tests or correcting ones" + - VALUE: "chore" + DESC: "Add non bussiness logic change" + - VALUE: "style" + DESC: "A code change to improve clean code" + - VALUE: "ci/cd" + DESC: "Changes on the build system or CI files" + - VALUE: "refactor" + DESC: "A code change" + - VALUE: "docs" + DESC: "Documentation changes" + - KEY: "MESSAGE" + LABEL: "Commit message" + - KEY: "LABEL" + LABEL: "Label" + OPTIONS: + - VALUE: "" + DESC: "No label" + - VALUE: "[CI SKIP]" + DESC: "Skip continous integration pipeline" + - VALUE: "[WIP]" + DESC: "Work In Progress" +TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}} {{LABEL}}" From 486b489bce3bbaa9f5ff349a383ec75a257876d7 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Sun, 13 Jun 2021 14:22:53 -0400 Subject: [PATCH 72/90] feat(cmf): add amend logic --- cmf/cmf.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cmf/cmf.go b/cmf/cmf.go index d525ad3..6deaa2b 100644 --- a/cmf/cmf.go +++ b/cmf/cmf.go @@ -69,7 +69,18 @@ func (cmfInstance *cmf) CommitChanges() { // CommitAmend perform a commit amend over current repository func (cmfInstance *cmf) CommitAmend() { - fmt.Println("amend!!") + cmfInstance.repository.CheckWorkspaceChanges() + currentDirectory, _ := cmfInstance.fs.GetCurrentDirectory() + cmfFile, err := cmfInstance.fs.GetFileFromFS(currentDirectory + "/" + defaultCMFFile) + if err != nil { + cmfFile, _ = cmfInstance.fs.GetFileFromVirtualFS(defaultYamlFile) + } + + extra := map[string]string{ + "BRANCH_NAME": cmfInstance.repository.BranchName(), + } + message, _ := cmfInstance.templateManager.Run(cmfFile, extra) + cmfInstance.repository.Amend(message) } // InitializeProject initialize current directory with a inner cmf template From 00269802c089c4626db965f3cdeb17b0dacb49bb Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Mon, 14 Jun 2021 17:21:41 -0400 Subject: [PATCH 73/90] feat(cmf): add initializeProject logic, to create a cmf file on the working directory --- cmf/cmf.go | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/cmf/cmf.go b/cmf/cmf.go index 6deaa2b..c0ed261 100644 --- a/cmf/cmf.go +++ b/cmf/cmf.go @@ -1,7 +1,14 @@ package cmf import ( + "bufio" "fmt" + "io/ioutil" + "log" + "os" + "strings" + + color "github.com/logrusorgru/aurora/v3" ) const version = "3.0" @@ -38,6 +45,27 @@ type CMF interface { InitializeProject() } +func askForConfirmation(s string) bool { + reader := bufio.NewReader(os.Stdin) + + for { + fmt.Printf("%s [y/n]: ", s) + + response, err := reader.ReadString('\n') + if err != nil { + log.Fatal(err) + } + + response = strings.ToLower(strings.TrimSpace(response)) + + if response == "y" || response == "yes" { + return true + } else if response == "n" || response == "no" { + return false + } + } +} + func NewCMF(repository Repository, templateManager TemplateManager, fsManager FS) CMF { return &cmf{ repository: repository, @@ -85,5 +113,16 @@ func (cmfInstance *cmf) CommitAmend() { // InitializeProject initialize current directory with a inner cmf template func (cmfInstance *cmf) InitializeProject() { - fmt.Println("initialize!!") + if askForConfirmation("This action will create a new .cmf.yaml file on your working directory. Do you want to continue?") { + currentDirectory, _ := cmfInstance.fs.GetCurrentDirectory() + cmfFilePath := currentDirectory + "/" + defaultCMFFile + cmfFile, _ := cmfInstance.fs.GetFileFromVirtualFS(defaultYamlFile) + err := ioutil.WriteFile(cmfFilePath, []byte(cmfFile), 0644) + if err != nil { + fmt.Println(color.Red("Cannot create .cmf.yaml file")) + os.Exit(2) + } + + fmt.Println(color.Green("You can customize your flow, just visit: https://github.com/walmartdigital/commit-message-formatter. Enjoy!")) + } } From 676354ecb741086bc9c629ff1c93457e2c761a5a Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Mon, 14 Jun 2021 18:15:58 -0400 Subject: [PATCH 74/90] fix(go.mod): run go mod tidy --- go.mod | 12 ++++++------ go.sum | 9 +++++++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index a1e9207..f84ddec 100644 --- a/go.mod +++ b/go.mod @@ -3,11 +3,11 @@ module github.com/walmartdigital/commit-message-formatter go 1.16 require ( - github.com/golang/mock v1.6.0 // indirect - github.com/logrusorgru/aurora/v3 v3.0.0 // indirect - github.com/mritd/promptx v0.0.0-20201227060029-3c9bd8aa86dd // indirect - github.com/onsi/ginkgo v1.16.4 // indirect - github.com/onsi/gomega v1.13.0 // indirect + github.com/golang/mock v1.6.0 + github.com/logrusorgru/aurora/v3 v3.0.0 + github.com/mritd/promptx v0.0.0-20201227060029-3c9bd8aa86dd + github.com/onsi/ginkgo v1.16.4 + github.com/onsi/gomega v1.13.0 github.com/spf13/cobra v1.1.3 - gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v2 v2.4.0 ) diff --git a/go.sum b/go.sum index 895c465..7a223b5 100644 --- a/go.sum +++ b/go.sum @@ -24,7 +24,9 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= @@ -67,6 +69,7 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -118,11 +121,11 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= -github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/logrusorgru/aurora/v3 v3.0.0 h1:R6zcoZZbvVcGMvDCKo45A9U/lzYyzl5NfYIvznmDfE4= github.com/logrusorgru/aurora/v3 v3.0.0/go.mod h1:vsR12bk5grlLvLXAYrBsb5Oc/N+LxAlxggSjiwMnCUc= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -357,9 +360,11 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= From 77e9bf3d2bd5fb58a1b2466865eb78a4842b82d8 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Mon, 14 Jun 2021 18:17:01 -0400 Subject: [PATCH 75/90] feat(ci): add goreleaser yaml file --- .gitignore | 3 ++- .goreleaser.yml | 45 +++++++++++++++++++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 0db082a..3cb9516 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ src dist node_modules -commit-message-formatter \ No newline at end of file +commit-message-formatter +dist/ diff --git a/.goreleaser.yml b/.goreleaser.yml index db10b2e..081bff6 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,12 +1,41 @@ -# Build customization -project_name: cmf +# This is an example .goreleaser.yml file with some sane defaults. +# Make sure to check the documentation at http://goreleaser.com +before: + hooks: + # You may remove this if you don't use go modules. + - go mod tidy builds: - - binary: cmf + - env: + - CGO_ENABLED=0 + binary: git-cmf + ldflags: + - -a -installsuffix goos: + - linux - windows - darwin - - linux - goarch: - - amd64 - ldflags: - - -a -installsuffix \ No newline at end of file +archives: + - replacements: + darwin: Darwin + linux: Linux + windows: Windows + 386: i386 + amd64: x86_64 +checksum: + name_template: 'checksums.txt' +snapshot: + name_template: "{{ .Tag }}-next" +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' +brews: + - name: git-cmf + github: + owner: walmartdigital + name: https://github.com/walmartdigital/homebrew-git-cmf + folder: Formula + homepage: https://github.com/walmartdigital/commit-message-formatter + description: A simple description of your application. \ No newline at end of file From ded73b068ae116a7647279558270694ccd7625bc Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Mon, 14 Jun 2021 18:17:23 -0400 Subject: [PATCH 76/90] feat(ci/cd): add goreleaser github action --- .github/workflows/goreleaser.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/goreleaser.yml diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml new file mode 100644 index 0000000..8b263e7 --- /dev/null +++ b/.github/workflows/goreleaser.yml @@ -0,0 +1,31 @@ +name: goreleaser + +on: + pull_request: + push: + tags: + - '*' + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - + name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.16 + - + name: Run GoReleaser + uses: goreleaser/goreleaser-action@v2 + with: + distribution: goreleaser + version: latest + args: release --rm-dist + env: + GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} \ No newline at end of file From fc337138655ce9cf80d0bb7b17a59380c461aee3 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 09:17:53 -0400 Subject: [PATCH 77/90] feat(prompt): add ENV key to aad environment variables to the flow and regex capacity hover default values --- cmf/cmf.go | 18 ++++++++++-------- templaterunner/templaterunner.go | 30 ++++++++++++++++++++++++------ 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/cmf/cmf.go b/cmf/cmf.go index c0ed261..d91c083 100644 --- a/cmf/cmf.go +++ b/cmf/cmf.go @@ -74,6 +74,14 @@ func NewCMF(repository Repository, templateManager TemplateManager, fsManager FS } } +func (cmfInstance *cmf) getInnerVariables() map[string]string { + extra := map[string]string{ + "BRANCH_NAME": cmfInstance.repository.BranchName(), + } + + return extra +} + // GetVersion return current cmf version func (cmfInstance *cmf) GetVersion() { fmt.Println("Git - Commit Message Formatter v", version) @@ -88,10 +96,7 @@ func (cmfInstance *cmf) CommitChanges() { cmfFile, _ = cmfInstance.fs.GetFileFromVirtualFS(defaultYamlFile) } - extra := map[string]string{ - "BRANCH_NAME": cmfInstance.repository.BranchName(), - } - message, _ := cmfInstance.templateManager.Run(cmfFile, extra) + message, _ := cmfInstance.templateManager.Run(cmfFile, cmfInstance.getInnerVariables()) cmfInstance.repository.Commit(message) } @@ -104,10 +109,7 @@ func (cmfInstance *cmf) CommitAmend() { cmfFile, _ = cmfInstance.fs.GetFileFromVirtualFS(defaultYamlFile) } - extra := map[string]string{ - "BRANCH_NAME": cmfInstance.repository.BranchName(), - } - message, _ := cmfInstance.templateManager.Run(cmfFile, extra) + message, _ := cmfInstance.templateManager.Run(cmfFile, cmfInstance.getInnerVariables()) cmfInstance.repository.Amend(message) } diff --git a/templaterunner/templaterunner.go b/templaterunner/templaterunner.go index 47ee40b..72edbb3 100644 --- a/templaterunner/templaterunner.go +++ b/templaterunner/templaterunner.go @@ -2,6 +2,8 @@ package templaterunner import ( "errors" + "os" + "regexp" "strings" "gopkg.in/yaml.v2" @@ -24,6 +26,7 @@ type TemplateRunner interface { // Template main template struct type Template struct { + Env []string `yaml:"ENV"` Prompt []PromptItem `yaml:"PROMPT"` Template string `yaml:"TEMPLATE"` } @@ -34,6 +37,7 @@ type PromptItem struct { Label string `yaml:"LABEL"` ErrorLabel string `yaml:"ERROR_LABEL"` DefaultValue string `yaml:"DEFAULT_VALUE"` + Regex string `yaml:"REGEX"` Options []Options `yaml:"OPTIONS"` } @@ -67,17 +71,24 @@ func (tr *templateRunner) parseYaml(yamlData string) (Template, error) { } // Run return the result of run the template -func (tr *templateRunner) Run(yamlData string, injectedVariables map[string]string) (string, error) { +func (tr *templateRunner) Run(yamlData string, defaultVariables map[string]string) (string, error) { template, err := tr.parseYaml(yamlData) if err != nil { return "", err } - variables := tr.prompt(template) - for k, v := range injectedVariables { + variables := []keyValue{} + for k, v := range defaultVariables { variables = append(variables, keyValue{Key: k, Value: v}) } + for _, environmentVariable := range template.Env { + variables = append(variables, keyValue{Key: environmentVariable, Value: os.Getenv(environmentVariable)}) + } + + promptVariables := tr.prompt(template, variables) + variables = append(variables, promptVariables...) + message := tr.parseTemplate(template.Template, variables) return message, err @@ -91,10 +102,11 @@ func (tr *templateRunner) parseTemplate(template string, variables []keyValue) s return template } -func (tr *templateRunner) prompt(template Template) []keyValue { +func (tr *templateRunner) prompt(template Template, defaultVariables []keyValue) []keyValue { variables := []keyValue{} for _, step := range template.Prompt { result := "" + defaultValue := "" var errorMessage = "empty value" if step.ErrorLabel != "" { @@ -105,12 +117,18 @@ func (tr *templateRunner) prompt(template Template) []keyValue { var labelMessage = step.Label if step.DefaultValue != "" { - labelMessage += " (" + step.DefaultValue + ")" + defaultValue = tr.parseTemplate(step.DefaultValue, defaultVariables) + if step.Regex != "" { + r, _ := regexp.Compile(step.Regex) + defaultValue = r.FindStringSubmatch(defaultValue)[0] + } + + labelMessage += " (" + defaultValue + ")" } labelMessage += ":" - result = tr.promptManager.ReadValue(labelMessage, errorMessage, step.DefaultValue) + result = tr.promptManager.ReadValue(labelMessage, errorMessage, defaultValue) } else { result = tr.promptManager.ReadValueFromList(step.Label, step.Options) } From b48bddc0d877d43bfd02edeb5d2e701599e1f13a Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 09:19:29 -0400 Subject: [PATCH 78/90] fix(cmf): fix amend command, removed check tree action in amend command --- cmf/cmf.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cmf/cmf.go b/cmf/cmf.go index d91c083..c5f1cb6 100644 --- a/cmf/cmf.go +++ b/cmf/cmf.go @@ -102,7 +102,6 @@ func (cmfInstance *cmf) CommitChanges() { // CommitAmend perform a commit amend over current repository func (cmfInstance *cmf) CommitAmend() { - cmfInstance.repository.CheckWorkspaceChanges() currentDirectory, _ := cmfInstance.fs.GetCurrentDirectory() cmfFile, err := cmfInstance.fs.GetFileFromFS(currentDirectory + "/" + defaultCMFFile) if err != nil { From 06e628de8977a693fe64c626bf81667ce3600c31 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 09:20:39 -0400 Subject: [PATCH 79/90] fix(resources): removed jira yaml flow --- resources/jira.yaml | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 resources/jira.yaml diff --git a/resources/jira.yaml b/resources/jira.yaml deleted file mode 100644 index 40e4abf..0000000 --- a/resources/jira.yaml +++ /dev/null @@ -1,35 +0,0 @@ -PROMPT: - - KEY: "JIRA-TASK" - LABEL: "Jira task ID" - DEFAULT_VALUE: "{{BRANCH_NAME}}" - - KEY: "CHANGE" - LABEL: "Type of change" - OPTIONS: - - VALUE: "feat" - DESC: "Add new feature" - - VALUE: "fix" - DESC: "A bug fix" - - VALUE: "test" - DESC: "Adding missing tests or correcting ones" - - VALUE: "chore" - DESC: "Add non bussiness logic change" - - VALUE: "style" - DESC: "A code change to improve clean code" - - VALUE: "ci/cd" - DESC: "Changes on the build system or CI files" - - VALUE: "refactor" - DESC: "A code change" - - VALUE: "docs" - DESC: "Documentation changes" - - KEY: "MESSAGE" - LABEL: "Commit message" - - KEY: "LABEL" - LABEL: "Label" - OPTIONS: - - VALUE: "" - DESC: "No label" - - VALUE: "[CI SKIP]" - DESC: "Skip continous integration pipeline" - - VALUE: "[WIP]" - DESC: "Work In Progress" -TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}} {{LABEL}}" From 776a0d7c4c2c967d7fc302dbfb17692b701af8a3 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 16:38:27 -0400 Subject: [PATCH 80/90] fix(resources): add more change type to default yaml file --- resources/default.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/resources/default.yaml b/resources/default.yaml index 62a7e60..836413f 100644 --- a/resources/default.yaml +++ b/resources/default.yaml @@ -6,14 +6,16 @@ PROMPT: DESC: "Add new feature" - VALUE: "fix" DESC: "A bug fix" - - VALUE: "test" - DESC: "Adding missing tests or correcting ones" - VALUE: "chore" DESC: "Add non bussiness logic change" + - VALUE: "test" + DESC: "Adding missing tests or correcting ones" - VALUE: "style" DESC: "A code change to improve clean code" - - VALUE: "ci/cd" - DESC: "Changes on the build system or CI files" + - VALUE: "build" + DESC: "Changes on build files and flows" + - VALUE: "ci" + DESC: "Changes on CI files" - VALUE: "refactor" DESC: "A code change" - VALUE: "docs" From 8a4305b5e0ba18359acb5fc6374be2c301aa8781 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 17:04:58 -0400 Subject: [PATCH 81/90] docs(readme): refactor readme according to v3 changes --- Readme.md | 116 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 60 insertions(+), 56 deletions(-) diff --git a/Readme.md b/Readme.md index 5e49391..ebf35aa 100644 --- a/Readme.md +++ b/Readme.md @@ -1,97 +1,94 @@ -# CMF Commit Message Formatter - V2 +# CMF Commit Message Formatter - V3 -CMF is a simple to use utility to standarize commit messages on projects. +CMF is a simple-to-use utility to standarized commit messages on projects. -## Getting started +## Migrating from V2 -Install via npm, just do `$ npm install -g go-cmf` +- Installation via npm command is now deprecated and no longer maintained on **V3**. +- You can still be using your `.cmf.yaml` file. Now you can extend this file with new attributes. -Or from Go `go install github.com/walmartdigital/commit-message-formatter` +## Major changes -Once installed, go to your project an run `$ cmf init` and select one of the flows, it will create a `.cmf.yaml`file on your project with your selected flow. +- .cmf.yaml file is no longer required if you want to use a simple flow. +- The default flow of v3 is now strongly forced to use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). +- CMF binary is renamed to git-cmf, so now you can use it directly from git as `git cmf` command. +- CMF is now available from Homebrew. +- `cmf init` is cleaner now, it just creates a .cmf.yaml file with +a simple flow to let you customize as you want. -## Flows +## Getting Started -CMF have three flows (for now) default, Jira and custom +### Install CMF -### Default +- Using go install: `go install github.com/walmartdigital/commit-message-formatter` +- Using Brew: + - `brew tap /walmartdigital/homebrew-git-cmf` + - `brew install homebrew-git-cmf` +- Download binaries from Github -Running `$ cmf init` and select default, you will get the default flow and prompted for: +### Initialize project (optional) - - Type of change you made to your code - - Module affected by this change - - Commit message or description of your change +If you want to customize your flow, you can run `git cmf init`, +this command will create a .cmf.yaml file with the default flow. -### Jira +Then you can change the flow as you want. -Running `$ cmf init` and select Jira, you will get the jira flow, this time you will be prompt for: +### Variables - - Jira task ID - - Type of change you made to your code - - Commit message or description of your change - -### Custom - -Running `$ cmf init`and select custom, you will get the custom flow, this time it will create a `.cmf.yaml`file with default flow but with annotations of how change it. - ---- - -## Variables - -CMF have inner variables and you can access it throw templates using `{{}}`: +CMF has inner variables and you can access it throw templates using `{{}}`: - {{BRANCH_NAME}} it will print the current branch name of your repository -## Configurations +Additionally, you can include external environment variables using the **ENV** +block described on the template. -It is possible to config CMF as you like, you can change **custom flows, templates or assign default flows**. You can do this using a local file on the root of your porject or setting as global preferences with a file on your Home directory called `.cmf.yaml`. +### Extending -### TEMPLATE +It is possible to config CMF as you like, you can change + **custom flows, templates, or assign default flows**. You can do this using + a local file on the root of your project or set as global + preferences with a file on your Home directory called `.cmf.yaml`. -Set a template string for commit messages. +### Template Structure -#### Default flow +A `.cmf.yaml` file is composite by 3 main blocks: + - ENV + - PROMPT + - TEMPLATE -Default template `{{CHANGE}}({{MODULE}}): {{MESSAGE}}`. You can use this variables: +#### ENV -- CHANGE _type of change: feature, fix, update_ -- MODULE _module affected_ -- MESSAGE _commit message_ +It is a list of environment variables names, that later are mappings to be +accessible from other blocks. ``` -TEMPLATE: "{{CHANGE}}({{MODULE}}): {{MESSAGE}}" +ENV: + - ENVIRONMENT_1 + - ENVIRONMENT_2 + ... + - ENVIRONMENT_10 ``` -#### Jira flow - -Default template `{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}`. You can use this variables: +#### PROMPT -- JIRA*TASK \_jira task id, by default {{BRANCH_NAME}}* -- CHANGE _type of change: feature, fix, update_ -- MESSAGE _commit message_ +Describe an input flow. -``` -TEMPLATE: "{{JIRA-TASK}} ({{CHANGE}}): {{MESSAGE}}" -``` +You can create your custom flows using this configuration attribute.` +Every `KEY` attribute is mapping as a variable within the flow. -### PROMPT - -You can create your custom flows using this configuration attribute. - -Prompt accept two types of prompts: +Prompt accepts two kinds of questions: - Single question: - KEY _variable name_ - LABEL _prompt title_ -- Select: + +- Select question: - KEY _variable name_ - LABEL _prompt title_ - OPTIONS _list of options_ - VALUE _variable value_ - DESC _variable description_ -_default .cmf.yaml sample file_ - ``` PROMPT: - KEY: "CHANGE" @@ -116,13 +113,20 @@ PROMPT: TEMPLATE: "{{CHANGE}}({{MODULE}}): {{MESSAGE}}" ``` +#### TEMPLATE + +Defines the way the commit message will be formatted using variables described on .cmf.yaml file. + +``` +TEMPLATE: "{{CHANGE}}({{MODULE}}): {{MESSAGE}}" +``` --- ## Contributions Use GitHub issues for requests. -I actively welcome pull requests; learn how to contribute. +I actively welcome pull requests; learn how to [contribute](CONTRIBUTING.md). --- From b2328e6f19be81ba0b13d0b39a206c7b8c4874d2 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 17:05:15 -0400 Subject: [PATCH 82/90] docs(contributing): add contributing file --- CONTRIBUTING.md | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ed9cd4d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,89 @@ +# Contributing + +When contributing to this repository, please first discuss the change you wish to make via issue, +email, or any other method with the owners of this repository before making a change. + +Please note we have a code of conduct, please follow it in all your interactions with the project. + +## Pull Request Process + +1. Ensure any install or build dependencies are removed before the end of the layer when doing a + build. +2. Update the README.md with details of changes to the interface, this includes new environment + variables, exposed ports, useful file locations and container parameters. +3. Increase the version numbers in any examples files and the README.md to the new version that this + Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/). +4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you + do not have permission to do that, you may request the second reviewer to merge it for you. + +## Code of Conduct + +### Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +### Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +### Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +### Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +### Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at rodrigo.navarro@walmart.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +### Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] \ No newline at end of file From 7c207b23690d588dfe35be50d176159857e42049 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 17:06:45 -0400 Subject: [PATCH 83/90] ci(action): removed on tag release --- .github/workflows/goreleaser.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index 8b263e7..6332c1c 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -3,8 +3,8 @@ name: goreleaser on: pull_request: push: - tags: - - '*' + # tags: + # - '*' jobs: goreleaser: From 4b7e7f86d5f5cfb9adb9bbe0642c25b8fff2cfa3 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 17:17:33 -0400 Subject: [PATCH 84/90] fix(goreleaser): change invalid github attribute with valid tap attrbute on brews block --- .goreleaser.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 081bff6..19aca09 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -33,7 +33,7 @@ changelog: - '^test:' brews: - name: git-cmf - github: + tap: owner: walmartdigital name: https://github.com/walmartdigital/homebrew-git-cmf folder: Formula From def0a458661a2664fff70d684bc7bf8acf1e08b3 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 17:27:17 -0400 Subject: [PATCH 85/90] ci(actions): uncomment tag filter on github actions --- .github/workflows/goreleaser.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index 6332c1c..8b263e7 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -3,8 +3,8 @@ name: goreleaser on: pull_request: push: - # tags: - # - '*' + tags: + - '*' jobs: goreleaser: From 3a5d361d2a3c6ae69ebcf0be6ffd72f916bd9cb8 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 17:34:45 -0400 Subject: [PATCH 86/90] fix(ci): fix goreleaser brew repo name --- .goreleaser.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 19aca09..8cd21b9 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -35,7 +35,7 @@ brews: - name: git-cmf tap: owner: walmartdigital - name: https://github.com/walmartdigital/homebrew-git-cmf + name: homebrew-git-cmf folder: Formula homepage: https://github.com/walmartdigital/commit-message-formatter description: A simple description of your application. \ No newline at end of file From 5a4892f52540b994918eeef67b8d569b3c62efdb Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 17:44:18 -0400 Subject: [PATCH 87/90] docs(readme): fix brew steps --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index ebf35aa..5ec50d7 100644 --- a/Readme.md +++ b/Readme.md @@ -22,7 +22,7 @@ a simple flow to let you customize as you want. - Using go install: `go install github.com/walmartdigital/commit-message-formatter` - Using Brew: - - `brew tap /walmartdigital/homebrew-git-cmf` + - `brew tap walmartdigital/homebrew-git-cmf` - `brew install homebrew-git-cmf` - Download binaries from Github From 15026a9caba290d23b5f1e9ec8640e021577b661 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 17:44:59 -0400 Subject: [PATCH 88/90] ci(goreleaser): fix brew properties to install correctly --- .goreleaser.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 8cd21b9..123f037 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -36,6 +36,9 @@ brews: tap: owner: walmartdigital name: homebrew-git-cmf + description: "CMF is a simple-to-use utility to standarized commit messages on projects." + license: "MIT" + install: | + bin.install "git-cmf" folder: Formula - homepage: https://github.com/walmartdigital/commit-message-formatter - description: A simple description of your application. \ No newline at end of file + homepage: https://github.com/walmartdigital/commit-message-formatter \ No newline at end of file From 985083ba0a8fbc678a49c1f1c4e32ea797031d79 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Tue, 15 Jun 2021 17:49:28 -0400 Subject: [PATCH 89/90] docs(readme): fix hombre install command --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 5ec50d7..c620afb 100644 --- a/Readme.md +++ b/Readme.md @@ -23,7 +23,7 @@ a simple flow to let you customize as you want. - Using go install: `go install github.com/walmartdigital/commit-message-formatter` - Using Brew: - `brew tap walmartdigital/homebrew-git-cmf` - - `brew install homebrew-git-cmf` + - `brew install git-cmf` - Download binaries from Github ### Initialize project (optional) From 07949245d776423b083445173e1aeef15abd8181 Mon Sep 17 00:00:00 2001 From: Rodrigo Navarro Date: Wed, 20 Oct 2021 14:36:59 -0300 Subject: [PATCH 90/90] chore(root): remove unused package json files --- package-lock.json | 488 ---------------------------------------------- package.json | 19 -- 2 files changed, 507 deletions(-) delete mode 100644 package-lock.json delete mode 100644 package.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index a37afc5..0000000 --- a/package-lock.json +++ /dev/null @@ -1,488 +0,0 @@ -{ - "name": "go-cmf", - "version": "2.0.8", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "ajv": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz", - "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "~2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "go-npm": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/go-npm/-/go-npm-0.1.9.tgz", - "integrity": "sha1-hcExXcsFVB7GOmAjjdOePAowcE8=", - "requires": { - "mkdirp": "^0.5.1", - "request": "^2.81.0", - "tar": "^2.2.1" - } - }, - "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" - }, - "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", - "requires": { - "mime-db": "~1.37.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index dd9229b..0000000 --- a/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "go-cmf", - "version": "2.0.8", - "description": "CMF is an utility to standarize commit messages on porjects", - "scripts": { - "postinstall": "go-npm install", - "preuninstall": "go-npm uninstall" - }, - "author": "Rodrigo Navarro", - "license": "MIT", - "goBinary": { - "name": "cmf", - "path": "../bin", - "url": "https://github.com/WalmartDigital/commit-message-formatter/releases/download/v{{version}}/cmf_{{version}}_{{platform}}_{{arch}}.tar.gz" - }, - "dependencies": { - "go-npm": "^0.1.9" - } -}