本文整理汇总了Golang中github.com/jingweno/gh/github.Project类的典型用法代码示例。如果您正苦于以下问题:Golang Project类的具体用法?Golang Project怎么用?Golang Project使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Project类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: transformRemoteArgs
func transformRemoteArgs(args *Args) {
ownerWithName := args.LastParam()
owner, name, match := parseRepoNameOwner(ownerWithName)
if !match {
return
}
var err error
if name == "" {
name, err = utils.DirName()
utils.Check(err)
}
isPriavte := parseRemotePrivateFlag(args)
if owner == "origin" {
owner = github.CurrentConfig().FetchUser()
} else if args.ParamsSize() > 2 {
// `git remote add jingweno foo/bar`
args.RemoveParam(args.ParamsSize() - 1)
}
project := github.Project{Owner: owner, Name: name}
url := project.GitURL(name, owner, isPriavte)
args.AppendParams(url)
}
示例2: transformCloneArgs
func transformCloneArgs(args *Args) {
isSSH := parseClonePrivateFlag(args)
hasValueRegxp := regexp.MustCompile("^(--(upload-pack|template|depth|origin|branch|reference|name)|-[ubo])$")
nameWithOwnerRegexp := regexp.MustCompile(NameWithOwnerRe)
for i, a := range args.Params {
if hasValueRegxp.MatchString(a) {
continue
}
if nameWithOwnerRegexp.MatchString(a) && !isDir(a) {
name, owner := parseCloneNameAndOwner(a)
config := github.CurrentConfig()
isSSH = isSSH || owner == config.User
if owner == "" {
owner = config.User
}
project := github.Project{Name: name, Owner: owner}
url := project.GitURL(name, owner, isSSH)
args.ReplaceParam(i, url)
break
}
}
}
示例3: browse
/*
$ gh browse
> open https://github.com/YOUR_USER/CURRENT_REPO
$ gh browse commit/SHA
> open https://github.com/YOUR_USER/CURRENT_REPO/commit/SHA
$ gh browse issues
> open https://github.com/YOUR_USER/CURRENT_REPO/issues
$ gh browse -p jingweno/gh
> open https://github.com/jingweno/gh
$ gh browse -p jingweno/gh commit/SHA
> open https://github.com/jingweno/gh/commit/SHA
$ gh browse -p resque
> open https://github.com/YOUR_USER/resque
$ gh browse -p resque network
> open https://github.com/YOUR_USER/resque/network
*/
func browse(command *Command, args *Args) {
var (
project *github.Project
branch *github.Branch
err error
)
localRepo := github.LocalRepo()
if flagBrowseProject != "" {
// gh browse -p jingweno/gh
// gh browse -p gh
project = github.NewProject("", flagBrowseProject, "")
} else {
// gh browse
branch, project, err = localRepo.RemoteBranchAndProject("")
utils.Check(err)
}
if project == nil {
err := fmt.Errorf(command.FormattedUsage())
utils.Check(err)
}
master := localRepo.MasterBranch()
if branch == nil {
branch = master
}
var subpage string
if !args.IsParamsEmpty() {
subpage = args.RemoveParam(0)
}
if subpage == "commits" {
subpage = fmt.Sprintf("commits/%s", branchInURL(branch))
} else if subpage == "tree" || subpage == "" {
if !reflect.DeepEqual(branch, master) && branch.IsRemote() {
subpage = fmt.Sprintf("tree/%s", branchInURL(branch))
}
}
pageUrl := project.WebURL("", "", subpage)
launcher, err := utils.BrowserLauncher()
utils.Check(err)
if flagBrowseURLOnly {
args.Replace("echo", pageUrl)
} else {
args.Replace(launcher[0], "", launcher[1:]...)
args.AppendParams(pageUrl)
}
}
示例4: transformInitArgs
func transformInitArgs(args *Args) error {
if !parseInitFlag(args) {
return nil
}
name, err := utils.DirName()
if err != nil {
return err
}
owner := github.CurrentConfig().FetchUser()
project := github.Project{Owner: owner, Name: name}
url := project.GitURL(name, owner, true)
args.After("git", "remote", "add", "origin", url)
return nil
}
示例5: compare
/*
$ gh compare refactor
> open https://github.com/CURRENT_REPO/compare/refactor
$ gh compare 1.0..1.1
> open https://github.com/CURRENT_REPO/compare/1.0...1.1
$ gh compare -u other-user patch
> open https://github.com/other-user/REPO/compare/patch
*/
func compare(command *Command, args *Args) {
localRepo := github.LocalRepo()
var (
branch *github.Branch
project *github.Project
r string
err error
)
branch, project, err = localRepo.RemoteBranchAndProject("")
utils.Check(err)
if args.IsParamsEmpty() {
master := localRepo.MasterBranch()
if master.ShortName() == branch.ShortName() {
err = fmt.Errorf(command.FormattedUsage())
utils.Check(err)
} else {
r = branch.ShortName()
}
} else {
r = parseCompareRange(args.RemoveParam(args.ParamsSize() - 1))
if args.IsParamsEmpty() {
project, err = localRepo.CurrentProject()
utils.Check(err)
} else {
project = github.NewProject(args.RemoveParam(args.ParamsSize()-1), "", "")
}
}
r = strings.Replace(r, "/", ";", -1)
subpage := utils.ConcatPaths("compare", r)
url := project.WebURL("", "", subpage)
launcher, err := utils.BrowserLauncher()
utils.Check(err)
if flagCompareURLOnly {
args.Replace("echo", url)
} else {
args.Replace(launcher[0], "", launcher[1:]...)
args.AppendParams(url)
}
}
示例6: transformCloneArgs
func transformCloneArgs(args *Args) {
isSSH := parseClonePrivateFlag(args)
hasValueRegxp := regexp.MustCompile("^(--(upload-pack|template|depth|origin|branch|reference|name)|-[ubo])$")
nameWithOwnerRegexp := regexp.MustCompile(NameWithOwnerRe)
var skipNext bool
for i, a := range args.Params {
if skipNext {
skipNext = false
continue
}
if strings.HasPrefix(a, "-") {
if hasValueRegxp.MatchString(a) {
skipNext = true
}
continue
}
if github.MatchURL(a) != nil {
break
}
if nameWithOwnerRegexp.MatchString(a) && !isDir(a) {
name, owner := parseCloneNameAndOwner(a)
config := github.CurrentConfig()
isSSH = isSSH || args.Command != "submodule" && owner == config.User
if owner == "" {
owner = config.User
isSSH = true
}
project := github.Project{Name: name, Owner: owner}
url := project.GitURL(name, owner, isSSH)
args.ReplaceParam(i, url)
break
}
}
}