cmd

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 20, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HookCmd = &cobra.Command{
	Use:   "hook",
	Short: "通过Hook可以触发jenkins刷代码",
	Run: func(cmd *cobra.Command, args []string) {
		config := repo.GetConfig(configPath).Init()

		if project == "" {
			project = config.Patch.CurrentProject
		}

		r, err := config.CurrentRepo()

		config.CheckErr(err)

		if branchList == "" {
			logrus.Fatal("分支名不能为空")
		}

		p := repo.NewRepoPush(r, config, branchList, nil, false)
		p.AutoMergeBranchHook()

	},
}
View Source
var InfoCmd = &cobra.Command{
	Use:   "info",
	Short: "info",
	Run: func(cmd *cobra.Command, args []string) {
		config := repo.GetConfig(configPath).Init()
		r, err := config.CurrentRepo()
		config.CheckErr(err)
		fmt.Println("repo url is: ", r.Url)
	},
}
View Source
var InitCmd = &cobra.Command{
	Use:   "init",
	Short: "初始化项目配置文件",
	Run: func(cmd *cobra.Command, args []string) {
		if try {
			config := repo.GetConfig()
			config.Print()

			return
		}
		err := createPatchConfig()
		checkErr(err)

		return
	},
}
View Source
var JiraCmd = &cobra.Command{
	Use:   "jira",
	Short: "jira",
	Run: func(cmd *cobra.Command, args []string) {
		config := repo.GetConfig(configPath).Init()
		jc, err := controller.NewJiraController(config)
		config.CheckErr(err)
		if project == "" {
			project = config.Patch.CurrentProject
		}

		fmt.Println("current project:", project)
		switch action {
		case "add":
			err = jc.Add(project, jiraID, strings.Split(branchList, ","))
		case "del":
			err = jc.Del(project, jiraID)
		case "clear":
			err = jc.Clear(project, disableCheckMerged)
		case "print":
			err = jc.Print(project, jiraID)
		default:
			err = fmt.Errorf("action not suppert:%s", action)
		}

		config.CheckErr(err)

		fmt.Printf("%s success\n", action)
	},
}
View Source
var PullCmd = &cobra.Command{
	Use:   "pull",
	Short: "pull",
	Run: func(cmd *cobra.Command, args []string) {
		var (
			err error
		)

		config := repo.GetConfig(configPath)

		for _, project := range strings.Split(project, ",") {
			if project == "" {
				continue
			}
			err = pullProject(project, config)
			config.CheckErr(err)
		}
		return
	},
}
View Source
var (
	PushCmd = &cobra.Command{
		Use:   "push",
		Short: "cherry-pick方式推送patch",
		Run: func(cmd *cobra.Command, args []string) {
			var (
				err                     error
				mergeUrls, tmpMergeUrls []*repo.RepoPushResult
			)
			config := repo.GetConfig(configPath)
			if debug {
				config.LogLevel = 5
			}
			config.Patch.AutoMergeHook = true
			if disableAutoMergeHook {
				config.Patch.AutoMergeHook = false
			}

			config.Init().ParseJIRA(jiraID)

			if branchList != "" {
				config.Patch.TgtBranchs = strings.Split(branchList, ",")
			}

			if planTgtBranchList != "" {
				config.Patch.PlanTgtBranchList = strings.Split(planTgtBranchList, ",")
			}

			if project == "" {
				project = config.Patch.CurrentProject
			}

			if len(config.Patch.TgtBranchs) == 0 {
				logrus.Fatalf("目标分支不能为空")
			}

			if config.Patch.DevBranch == "" {
				logrus.Fatalf("开发分支不能为空")
			}

			if project == "" {
				logrus.Fatalf("项目不能为空")
			}

			for _, project := range strings.Split(project, ",") {
				if project == "" {
					continue
				}
				tmpMergeUrls, err = pushProject(project, config)
				config.CheckErr(err)

				mergeUrls = append(mergeUrls, tmpMergeUrls...)
			}

			if len(mergeUrls) == 0 {
				return
			}

			logrus.Debugf("patch push ok! \n\n")

			fmt.Println("result:")
			var rows [][]string
			for _, row := range mergeUrls {
				desc := ""
				if len(row.OutCommits) > 0 {
					desc = row.OutCommits[0].Desc
				}
				desc = strings.Replace(desc, " ", "", -1)
				rows = append(rows, []string{row.Project, fmt.Sprintf("%s=>%s", row.DevBranch, row.TargetBranch), desc, row.MergeUrl, row.MergeRes})
			}

			util.PrintTable(rows, []string{"项目", "分支", "描述", "MR", "已合入"})
		},
	}
)

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL