package cmd import ( "code.gitea.io/sdk/gitea" "gitea.com/jolheiser/beaver" "gitea.com/jolheiser/beaver/color" "gitea.com/jolheiser/sip/modules/sdk" "github.com/urfave/cli/v2" "strconv" ) var Repo = cli.Command{ Name: "repo", Usage: "Commands for interacting with a Gitea repository", Action: doRepo, } func doRepo(ctx *cli.Context) error { client := getClient(ctx) issues, err := sdk.GetIssues(client, ctx.String("owner"), ctx.String("repo"), gitea.ListIssueOption{State: "open"}) if err != nil { return err } var issueCount, pullCount int for _, issue := range issues { if issue.PullRequest != nil { pullCount++ continue } issueCount++ } forks, err := sdk.GetForks(client, ctx.String("owner"), ctx.String("repo")) if err != nil { return err } yellow := color.New(color.FgYellow) beaver.Infof("Repository: %s", yellow.Format(ctx.String("owner")+"/"+ctx.String("repo"))) beaver.Infof("URL: %s", yellow.Format(ctx.String("url")+"/"+ctx.String("owner")+"/"+ctx.String("repo"))) beaver.Info() beaver.Infof("Open Issues: %s", yellow.Format(strconv.Itoa(issueCount))) beaver.Infof("Open Pulls: %s", yellow.Format(strconv.Itoa(pullCount))) beaver.Info() beaver.Infof("Forks: %s", yellow.Format(strconv.Itoa(len(forks)))) return nil }