From 179466485d4d42fcee7d737eb444407092bcbcfe Mon Sep 17 00:00:00 2001 From: Isaac Martinez Date: Sun, 23 Jul 2023 10:20:09 -0400 Subject: [PATCH] feat: 90 create support to custom flow - Add support to read config file - Add support to create PR based on flow - Create branch based on flow --- cmd/branch.go | 11 ++----- cmd/branch/bugfix.go | 19 ----------- cmd/branch/feature.go | 19 ----------- cmd/branch/hotfix.go | 19 ----------- cmd/branch/main.go | 36 ++++++++++++++++----- cmd/branch/release.go | 19 ----------- cmd/branch/support.go | 19 ----------- cmd/branch/sync.go | 19 ----------- cmd/branch/test.go | 19 ----------- config/main.go | 14 ++++---- controllers/git/branch.go | 39 ++++------------------ controllers/git/getters.go | 35 +++++++++++++------- controllers/git/switch.go | 2 +- controllers/project/main.go | 46 ++++++++++++++++++++++++++ controllers/project/structs.go | 40 +++++++++++++++++++++++ main.go | 2 ++ pkg/cli/actions/branch.go | 50 +++++++++++++--------------- pkg/git/Branch.go | 54 ++----------------------------- pkg/git/Checkers/BranchChecker.go | 30 +++-------------- pkg/github/pr.go | 18 +++-------- pkg/github/publish.go | 23 ++++++------- 21 files changed, 204 insertions(+), 329 deletions(-) delete mode 100644 cmd/branch/bugfix.go delete mode 100644 cmd/branch/feature.go delete mode 100644 cmd/branch/hotfix.go delete mode 100644 cmd/branch/release.go delete mode 100644 cmd/branch/support.go delete mode 100644 cmd/branch/sync.go delete mode 100644 cmd/branch/test.go create mode 100644 controllers/project/main.go create mode 100644 controllers/project/structs.go diff --git a/cmd/branch.go b/cmd/branch.go index 501dfae..5c98364 100644 --- a/cmd/branch.go +++ b/cmd/branch.go @@ -8,20 +8,13 @@ import ( var branchCmd = &cobra.Command{ Use: "branch", - Short: "Create a new branch. This is variant of git-flow by Minnek", + Short: "Create a new branch.", Run: func(cmd *cobra.Command, args []string) { pkg_action.Branch() }, } func init() { - branch.SetFlags() - branchCmd.AddCommand(branch.BranchFeatureCmd) - branchCmd.AddCommand(branch.BranchReleaseCmd) - branchCmd.AddCommand(branch.BranchHotfixCmd) - branchCmd.AddCommand(branch.BranchSupportCmd) - branchCmd.AddCommand(branch.BranchBugfixCmd) - branchCmd.AddCommand(branch.BranchTestCmd) - branchCmd.AddCommand(branch.BranchSyncCmd) + branch.SetCommands(branchCmd) rootCmd.AddCommand(branchCmd) } diff --git a/cmd/branch/bugfix.go b/cmd/branch/bugfix.go deleted file mode 100644 index 584ee1b..0000000 --- a/cmd/branch/bugfix.go +++ /dev/null @@ -1,19 +0,0 @@ -package branch - -import ( - "github.com/Minnek-Digital-Studio/cominnek/config" - pkg_action "github.com/Minnek-Digital-Studio/cominnek/pkg/cli/actions" - "github.com/spf13/cobra" -) - -var BranchBugfixCmd = &cobra.Command{ - Use: "bugfix ", - Short: "create a new feature branch from develop", - Run: func(cmd *cobra.Command, args []string) { - config.AppData.Branch.Type = "bugfix" - config.AppData.Branch.Stash = stash - setTicket(args) - - pkg_action.Branch() - }, -} diff --git a/cmd/branch/feature.go b/cmd/branch/feature.go deleted file mode 100644 index c35d254..0000000 --- a/cmd/branch/feature.go +++ /dev/null @@ -1,19 +0,0 @@ -package branch - -import ( - "github.com/Minnek-Digital-Studio/cominnek/config" - pkg_action "github.com/Minnek-Digital-Studio/cominnek/pkg/cli/actions" - "github.com/spf13/cobra" -) - -var BranchFeatureCmd = &cobra.Command{ - Use: "feature ", - Short: "create a new feature branch from develop", - Run: func(cmd *cobra.Command, args []string) { - config.AppData.Branch.Type = "feature" - config.AppData.Branch.Stash = stash - setTicket(args) - - pkg_action.Branch() - }, -} diff --git a/cmd/branch/hotfix.go b/cmd/branch/hotfix.go deleted file mode 100644 index 946d6eb..0000000 --- a/cmd/branch/hotfix.go +++ /dev/null @@ -1,19 +0,0 @@ -package branch - -import ( - "github.com/Minnek-Digital-Studio/cominnek/config" - pkg_action "github.com/Minnek-Digital-Studio/cominnek/pkg/cli/actions" - "github.com/spf13/cobra" -) - -var BranchHotfixCmd = &cobra.Command{ - Use: "hotfix ", - Short: "create a new hotfix branch from master", - Run: func(cmd *cobra.Command, args []string) { - config.AppData.Branch.Type = "hotfix" - config.AppData.Branch.Stash = stash - setTicket(args) - - pkg_action.Branch() - }, -} diff --git a/cmd/branch/main.go b/cmd/branch/main.go index 5b23079..ec8f860 100644 --- a/cmd/branch/main.go +++ b/cmd/branch/main.go @@ -2,19 +2,39 @@ package branch import ( "github.com/Minnek-Digital-Studio/cominnek/config" + "github.com/Minnek-Digital-Studio/cominnek/controllers/project" + pkg_action "github.com/Minnek-Digital-Studio/cominnek/pkg/cli/actions" "github.com/spf13/cobra" ) var stash bool -func SetFlags() { - addFlags(BranchFeatureCmd) - addFlags(BranchReleaseCmd) - addFlags(BranchHotfixCmd) - addFlags(BranchSupportCmd) - addFlags(BranchBugfixCmd) - addFlags(BranchTestCmd) - addFlags(BranchSyncCmd) +func SetCommands(Command *cobra.Command) { + project.ReadConfigFile() + + for _, branch := range project.Config.Git.Branches { + if branch.Config.Hidden { + continue + } + + branchName := branch.Name + branchData := branch + branchCmd := &cobra.Command{ + Use: branchName, + Example: branchName + " ", + Short: "Create a new " + branchName + " branch", + Long: branch.Config.Description, + Run: func(cmd *cobra.Command, args []string) { + setTicket(args) + config.AppData.Branch.Stash = stash + config.AppData.Branch.Data = branchData + pkg_action.Branch() + }, + } + + addFlags(branchCmd) + Command.AddCommand(branchCmd) + } } func addFlags(cmd *cobra.Command) { diff --git a/cmd/branch/release.go b/cmd/branch/release.go deleted file mode 100644 index eeeb732..0000000 --- a/cmd/branch/release.go +++ /dev/null @@ -1,19 +0,0 @@ -package branch - -import ( - "github.com/Minnek-Digital-Studio/cominnek/config" - pkg_action "github.com/Minnek-Digital-Studio/cominnek/pkg/cli/actions" - "github.com/spf13/cobra" -) - -var BranchReleaseCmd = &cobra.Command{ - Use: "release ", - Short: "create a new release branch from develop", - Run: func(cmd *cobra.Command, args []string) { - config.AppData.Branch.Type = "release" - config.AppData.Branch.Stash = stash - setTicket(args) - - pkg_action.Branch() - }, -} diff --git a/cmd/branch/support.go b/cmd/branch/support.go deleted file mode 100644 index 004e85e..0000000 --- a/cmd/branch/support.go +++ /dev/null @@ -1,19 +0,0 @@ -package branch - -import ( - "github.com/Minnek-Digital-Studio/cominnek/config" - pkg_action "github.com/Minnek-Digital-Studio/cominnek/pkg/cli/actions" - "github.com/spf13/cobra" -) - -var BranchSupportCmd = &cobra.Command{ - Use: "support ", - Short: "create a new support branch from master", - Run: func(cmd *cobra.Command, args []string) { - config.AppData.Branch.Type = "support" - config.AppData.Branch.Stash = stash - setTicket(args) - - pkg_action.Branch() - }, -} diff --git a/cmd/branch/sync.go b/cmd/branch/sync.go deleted file mode 100644 index 47c8f71..0000000 --- a/cmd/branch/sync.go +++ /dev/null @@ -1,19 +0,0 @@ -package branch - -import ( - "github.com/Minnek-Digital-Studio/cominnek/config" - pkg_action "github.com/Minnek-Digital-Studio/cominnek/pkg/cli/actions" - "github.com/spf13/cobra" -) - -var BranchSyncCmd = &cobra.Command{ - Use: "sync ", - Short: "create a new sync branch from develop", - Run: func(cmd *cobra.Command, args []string) { - config.AppData.Branch.Type = "sync" - config.AppData.Branch.Stash = stash - setTicket(args) - - pkg_action.Branch() - }, -} diff --git a/cmd/branch/test.go b/cmd/branch/test.go deleted file mode 100644 index a0f007a..0000000 --- a/cmd/branch/test.go +++ /dev/null @@ -1,19 +0,0 @@ -package branch - -import ( - "github.com/Minnek-Digital-Studio/cominnek/config" - pkg_action "github.com/Minnek-Digital-Studio/cominnek/pkg/cli/actions" - "github.com/spf13/cobra" -) - -var BranchTestCmd = &cobra.Command{ - Use: "test ", - Short: "create a new test branch from develop", - Run: func(cmd *cobra.Command, args []string) { - config.AppData.Branch.Type = "test" - config.AppData.Branch.Stash = stash - setTicket(args) - - pkg_action.Branch() - }, -} diff --git a/config/main.go b/config/main.go index 3a5c754..0e04b29 100644 --- a/config/main.go +++ b/config/main.go @@ -4,6 +4,8 @@ import ( "os" "path/filepath" "time" + + "github.com/Minnek-Digital-Studio/cominnek/controllers/project" ) type ICommit struct { @@ -34,9 +36,9 @@ type IAppData struct { Base string } Branch struct { - Type string - Ticket string + Data project.Branch Stash bool + Ticket string } Stash struct { Branch string @@ -51,10 +53,10 @@ type IAppData struct { Name string } Reset struct { - Type string - Commit string - Number string - Target string + Type string + Commit string + Number string + Target string Confirm bool } } diff --git a/controllers/git/branch.go b/controllers/git/branch.go index 0b4ccba..a76e819 100644 --- a/controllers/git/branch.go +++ b/controllers/git/branch.go @@ -1,42 +1,15 @@ package git_controller -import "fmt" +import ( + "fmt" + "strings" +) func getBaseCmd(branch string) string { return fmt.Sprintf("git branch %s; git checkout %s", branch, branch) } -func Feature(ticket string) (string, string) { - branchName := "feature/" + ticket - return getBaseCmd(branchName), branchName -} - -func Bugfix(ticket string) (string, string) { - branchName := "bugfix/" + ticket - return getBaseCmd(branchName), branchName -} - -func Hotfix(ticket string) (string, string) { - branchName := "hotfix/" + ticket - return getBaseCmd(branchName), branchName -} - -func Release(ticket string) (string, string) { - branchName := "release/" + ticket - return getBaseCmd(branchName), branchName -} - -func Support(ticket string) (string, string) { - branchName := "support/" + ticket - return getBaseCmd(branchName), branchName -} - -func Test(ticket string) (string, string) { - branchName := "test/" + ticket - return getBaseCmd(branchName), branchName -} - -func Sync(ticket string) (string, string) { - branchName := "sync/" + ticket +func Custom(path string, ticket string) (string, string) { + branchName := strings.Replace(path, "*", ticket, 1) return getBaseCmd(branchName), branchName } diff --git a/controllers/git/getters.go b/controllers/git/getters.go index 9d47512..c122093 100644 --- a/controllers/git/getters.go +++ b/controllers/git/getters.go @@ -4,6 +4,7 @@ import ( "os" "strings" + "github.com/Minnek-Digital-Studio/cominnek/controllers/project" "github.com/Minnek-Digital-Studio/cominnek/pkg/shell" "github.com/fatih/color" ) @@ -30,18 +31,28 @@ func GetCurrentBranch() string { func GetTicketNumber() string { currentBranch := GetCurrentBranch() - if strings.HasPrefix(currentBranch, "feature/") { - return strings.TrimPrefix(currentBranch, "feature/") - } else if strings.HasPrefix(currentBranch, "hotfix/") { - return strings.TrimPrefix(currentBranch, "hotfix/") - } else if strings.HasPrefix(currentBranch, "release/") { - return strings.TrimPrefix(currentBranch, "release/") - } else if strings.HasPrefix(currentBranch, "support/") { - return strings.TrimPrefix(currentBranch, "support/") - } else if strings.HasPrefix(currentBranch, "bugfix/") { - return strings.TrimPrefix(currentBranch, "bugfix/") - } else if strings.HasPrefix(currentBranch, "sync/") { - return strings.TrimPrefix(currentBranch, "sync/") + var paths []string + + for _, path := range project.Config.Git.Branches { + paths = append(paths, strings.ReplaceAll(path.Path, "*", "")) + } + + for _, path := range paths { + if strings.HasPrefix(currentBranch, path) { + return strings.TrimPrefix(currentBranch, path) + } + } + + return "" +} + +func GetBranchType() string { + currentBranch := GetCurrentBranch() + + for _, path := range project.Config.Git.Branches { + if strings.HasPrefix(currentBranch, strings.ReplaceAll(path.Path, "*", "")) { + return path.Name + } } return "" diff --git a/controllers/git/switch.go b/controllers/git/switch.go index 33623cf..0df5d3e 100644 --- a/controllers/git/switch.go +++ b/controllers/git/switch.go @@ -14,4 +14,4 @@ func Switch(branch string) { shell.ExecuteCommand("git checkout "+branch, false) loading.Stop() color.HiGreen(switchedMsg) -} \ No newline at end of file +} diff --git a/controllers/project/main.go b/controllers/project/main.go new file mode 100644 index 0000000..9704cbc --- /dev/null +++ b/controllers/project/main.go @@ -0,0 +1,46 @@ +package project + +import ( + "encoding/json" + + "github.com/Minnek-Digital-Studio/cominnek/controllers/files" +) + +var Config Cominnek + +func ReadConfigFile() bool { + fileNames := []string{ + "mnk-config.json", + } + + for _, fileName := range fileNames { + if files.CheckExist(fileName) { + configByte := files.Read(fileName) + Config = convertToJSON(configByte).Cominnek + return true + } + } + + return false +} + +func convertToJSON(data []byte) Project { + var project Project + err := json.Unmarshal([]byte(data), &project) + + if err != nil { + panic(err) + } + + return project +} + +func GetConfigByName(name string) Branch { + for _, branch := range Config.Git.Branches { + if branch.Name == name { + return branch + } + } + + return Branch{} +} diff --git a/controllers/project/structs.go b/controllers/project/structs.go new file mode 100644 index 0000000..85c7cc6 --- /dev/null +++ b/controllers/project/structs.go @@ -0,0 +1,40 @@ +package project + +type Project struct { + Cominnek Cominnek `json:"cominnek"` +} + +type Cominnek struct { + Git Git `json:"git"` +} + +type Git struct { + GitConfig + Flow string `json:"flow"` // flow: "git", "github" or "custom" + Extends GitConfig `json:"extends"` +} + +type GitConfig struct { + Branches []Branch `json:"branches"` +} + +type Branch struct { + Name string `json:"name"` + Path string `json:"path"` + Type string `json:"type"` // type: "production", "development" or "test" + From string `json:"from"` + To []string `json:"to"` + Config BranchConfig `json:"config"` +} + +type Action struct { + Dispatcher string `json:"dispatcher"` + Args []string `json:"args"` +} + +type BranchConfig struct { + Actions []Action `json:"actions"` + Description string `json:"description"` + Hidden bool `json:"hidden"` + Unique bool `json:"unique"` +} diff --git a/main.go b/main.go index 11c70b3..891fd26 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( "github.com/Minnek-Digital-Studio/cominnek/controllers" "github.com/Minnek-Digital-Studio/cominnek/controllers/loading" "github.com/Minnek-Digital-Studio/cominnek/controllers/logger" + "github.com/Minnek-Digital-Studio/cominnek/controllers/project" "github.com/Minnek-Digital-Studio/cominnek/helper" "github.com/Minnek-Digital-Studio/cominnek/pkg/emitters" "github.com/Minnek-Digital-Studio/cominnek/pkg/events" @@ -17,6 +18,7 @@ import ( func init() { events.Watcher() config.AppData.Start = time.Now() + project.ReadConfigFile() } func main() { diff --git a/pkg/cli/actions/branch.go b/pkg/cli/actions/branch.go index 72d4114..44f12b5 100644 --- a/pkg/cli/actions/branch.go +++ b/pkg/cli/actions/branch.go @@ -8,6 +8,7 @@ import ( "github.com/Minnek-Digital-Studio/cominnek/config" git_controller "github.com/Minnek-Digital-Studio/cominnek/controllers/git" "github.com/Minnek-Digital-Studio/cominnek/controllers/loading" + "github.com/Minnek-Digital-Studio/cominnek/controllers/project" "github.com/Minnek-Digital-Studio/cominnek/pkg/ask" "github.com/Minnek-Digital-Studio/cominnek/pkg/emitters" emitterTypes "github.com/Minnek-Digital-Studio/cominnek/pkg/emitters/types" @@ -20,26 +21,35 @@ var branchEmitter = new(emitters.Branch) func branchQuestion() { fmt.Println() - - if config.AppData.Branch.Type == "" { + var branchesNames []string + if config.AppData.Branch.Data.Name == "" { + for _, branch := range project.Config.Git.Branches { + if branch.Config.Hidden { + continue + } + + branchesNames = append(branchesNames, branch.Name) + } ask.One(&survey.Select{ Message: "Select the branch type:", - Options: []string{"feature", "bugfix", "hotfix", "release", "support", "test", "sync"}, - }, &config.AppData.Branch.Type, survey.WithValidator(survey.Required)) + Options: branchesNames, + }, &config.AppData.Branch.Data.Name, survey.WithValidator(survey.Required)) + + config.AppData.Branch.Data = project.GetConfigByName(config.AppData.Branch.Data.Name) } if config.AppData.Branch.Ticket == "" { message := "Enter the ticket number or name:" - if config.AppData.Branch.Type == "release" { + if config.AppData.Branch.Data.Name == "release" { message = "Enter the release version:" } - if config.AppData.Branch.Type == "hotfix" { + if config.AppData.Branch.Data.Name == "hotfix" { message = "Enter the hotfix version:" } - if config.AppData.Branch.Type == "test" { + if config.AppData.Branch.Data.Name == "test" { message = "Enter the test version:" } @@ -59,7 +69,7 @@ func Branch() { branchQuestion() ticket := config.AppData.Branch.Ticket data := emitterTypes.IBranchEventData{ - Type: config.AppData.Branch.Type, + Type: config.AppData.Branch.Data.Name, Ticket: ticket, } @@ -75,23 +85,9 @@ func Branch() { } middleware(func(exec bool) string { - var branch string; - switch config.AppData.Branch.Type { - case "feature": - branch = git.Feature(ticket, exec) - case "bugfix": - branch = git.Bugfix(ticket, exec) - case "hotfix": - branch = git.HotFix(ticket, exec) - case "release": - branch = git.Release(ticket, exec) - case "support": - branch = git.Support(ticket, exec) - case "test": - branch = git.Test(ticket, exec) - case "sync": - branch = git.Sync(ticket, exec) - } + var branch string + branchData := config.AppData.Branch.Data + branch = git.Custom(branchData.Path, ticket, exec) return branch }) @@ -110,7 +106,7 @@ func middleware(callBack func(exe bool) string) { Error: "Branch already exists", Data: emitterTypes.IBranchEventData{ Ticket: config.AppData.Branch.Ticket, - Type: config.AppData.Branch.Type, + Type: config.AppData.Branch.Data.Name, }, }) os.Exit(1) @@ -130,7 +126,7 @@ func middleware(callBack func(exe bool) string) { Error: "Branch creation failed: " + originErr, Data: emitterTypes.IBranchEventData{ Ticket: config.AppData.Branch.Ticket, - Type: config.AppData.Branch.Type, + Type: config.AppData.Branch.Data.Name, }, }) }) diff --git a/pkg/git/Branch.go b/pkg/git/Branch.go index 04eb055..2faef39 100644 --- a/pkg/git/Branch.go +++ b/pkg/git/Branch.go @@ -5,57 +5,9 @@ import ( checkers "github.com/Minnek-Digital-Studio/cominnek/pkg/git/Checkers" ) -func Feature(ticket string, execute bool) string { - cmd, branch := git_controller.Feature(ticket) - if(execute) { - checkers.CheckBranch(cmd) - } - return branch -} - -func Bugfix(ticket string, execute bool) string { - cmd, branch := git_controller.Bugfix(ticket) - if(execute) { - checkers.CheckBranch(cmd) - } - return branch -} - -func HotFix(ticket string, execute bool) string { - cmd, branch := git_controller.Hotfix(ticket) - if(execute) { - checkers.CheckBranch(cmd) - } - return branch -} - -func Release(ticket string, execute bool) string { - cmd, branch := git_controller.Release(ticket) - if(execute) { - checkers.CheckBranch(cmd) - } - return branch -} - -func Support(ticket string, execute bool) string { - cmd, branch := git_controller.Support(ticket) - if(execute) { - checkers.CheckBranch(cmd) - } - return branch -} - -func Test(ticket string, execute bool) string { - cmd, branch := git_controller.Test(ticket) - if(execute) { - checkers.CheckBranch(cmd) - } - return branch -} - -func Sync(ticket string, execute bool) string { - cmd, branch := git_controller.Sync(ticket) - if(execute) { +func Custom(path string, ticket string, execute bool) string { + cmd, branch := git_controller.Custom(path, ticket) + if execute { checkers.CheckBranch(cmd) } return branch diff --git a/pkg/git/Checkers/BranchChecker.go b/pkg/git/Checkers/BranchChecker.go index 8e3faa4..9d78e62 100644 --- a/pkg/git/Checkers/BranchChecker.go +++ b/pkg/git/Checkers/BranchChecker.go @@ -37,32 +37,12 @@ func GetChanges() { } func CheckBranch(mainCmd string) { - branch := "develop" + branchData := config.AppData.Branch.Data + branch := branchData.From if !git_controller.CheckBranchExist(branch) { - println("\nBranch develop not found\n") - - if !git_controller.CheckBranchExist("master") { - println("\nBranch master not found\n") - color.Red("Please create a master branch first\n") - os.Exit(1) - } - - if !git_controller.CheckBranchExistOnOrigin("develop") { - println("\nBranch develop not found on origin\n") - color.Yellow("Creating a new branch \n") - shell.ExecuteCommand("git branch develop master", false) - shell.ExecuteCommand("git checkout develop", false) - shell.ExecuteCommand("git push origin develop", false) - color.Green("\nBranch develop created\n\n") - } else { - color.Yellow("Getting branch develop from origin\n") - shell.ExecuteCommand("git checkout develop", false) - } - } - - if config.AppData.Branch.Type == "hotfix" || config.AppData.Branch.Type == "support" { - branch = "master" + println("\nBranch " + branch + " not found\n") + os.Exit(1) } if !git_controller.CheckIfBranch(branch) { @@ -90,7 +70,7 @@ func CheckBranch(mainCmd string) { loading.Stop() branchEmitter.Success(emitterTypes.IBranchEventData{ - Type: config.AppData.Branch.Type, + Type: config.AppData.Branch.Data.Name, Ticket: config.AppData.Branch.Ticket, }) diff --git a/pkg/github/pr.go b/pkg/github/pr.go index d3c0ab5..3b91319 100644 --- a/pkg/github/pr.go +++ b/pkg/github/pr.go @@ -2,8 +2,8 @@ package github import ( "log" - "strings" + "github.com/Minnek-Digital-Studio/cominnek/config" git_controller "github.com/Minnek-Digital-Studio/cominnek/controllers/git" github_controller "github.com/Minnek-Digital-Studio/cominnek/controllers/github" "github.com/Minnek-Digital-Studio/cominnek/controllers/loading" @@ -20,20 +20,11 @@ func _checkTicket(ticket string) string { return ticket } -func _getBranch(_baseBranch string, currentBranch string) string { - baseBranch := _baseBranch - - if _baseBranch == "" { - baseBranch = "develop" - } - - return baseBranch -} - func _getTitle(currentBranch string, baseBranch string) string { title := currentBranch + branchData := config.AppData.Branch.Data - if strings.Contains(currentBranch, "release") || strings.Contains(currentBranch, "hotfix") { + if len(branchData.To) > 1 { title = currentBranch + " " + baseBranch } @@ -44,10 +35,11 @@ func CreatePullRequest(_ticket string, _baseBranch string) { origin := git_controller.GetOrigin() loading.Start("Preparing your pull request ") + currentBranch := git_controller.GetCurrentBranch() ticket := _checkTicket(_ticket) body := git_controller.Pull_request(ticket, currentBranch) - baseBranch := _getBranch(_baseBranch, currentBranch) + baseBranch := _baseBranch title := _getTitle(currentBranch, baseBranch) loading.Stop() diff --git a/pkg/github/publish.go b/pkg/github/publish.go index 375f257..081fdd8 100644 --- a/pkg/github/publish.go +++ b/pkg/github/publish.go @@ -2,10 +2,11 @@ package github import ( "log" - "strings" + "github.com/Minnek-Digital-Studio/cominnek/config" git_controller "github.com/Minnek-Digital-Studio/cominnek/controllers/git" "github.com/Minnek-Digital-Studio/cominnek/controllers/loading" + "github.com/Minnek-Digital-Studio/cominnek/controllers/project" "github.com/Minnek-Digital-Studio/cominnek/pkg/emitters" "github.com/Minnek-Digital-Studio/cominnek/pkg/git" ) @@ -15,14 +16,18 @@ var publishEmmiter = new(emitters.Publish) func _checkBranch() []string { var branch []string currentBranch := git_controller.GetCurrentBranch() + branchType := git_controller.GetBranchType() + branchData := project.GetConfigByName(branchType) + config.AppData.Branch.Data = branchData if currentBranch == "master" { log.Fatal("You can't create a pull request from the master branch") } - if strings.Contains(currentBranch, "hotfix") || strings.Contains(currentBranch, "release") { - branch = append(branch, "master") - branch = append(branch, "develop") + if len(branchData.To) > 0 { + branch = append(branch, branchData.To...) + } else { + branch = append(branch, branchData.From) } return branch @@ -30,15 +35,11 @@ func _checkBranch() []string { func NewCreatePullRequest(ticket string, baseBranch string) { loading.Start("Checking branch ") - branchs := _checkBranch() + branches := _checkBranch() loading.Stop() - if len(branchs) > 1 { - for _, branch := range branchs { - CreatePullRequest(ticket, branch) - } - } else { - CreatePullRequest(ticket, baseBranch) + for _, branch := range branches { + CreatePullRequest(ticket, branch) } }