コード例 #1
0
ファイル: github.go プロジェクト: supu-io/issue-tracker
func (t *Github) getIssuesList(input *messages.GetIssuesList) []github.Issue {

	if input.Repo == "" {
		options := github.IssueListOptions{
			Filter: "all",
		}
		if input.Status != "" {
			options.Labels = []string{input.Status}
		}
		options.Page = 0
		options.PerPage = 100
		githubIssues, _, err := t.client.Issues.ListByOrg(input.Org, &options)
		if err != nil {
			log.Println(err.Error())
		}
		return githubIssues
	}

	options := github.IssueListByRepoOptions{}
	if input.Status != "" {
		options.Labels = []string{input.Status}
	}
	options.Page = 0
	options.PerPage = 100
	githubIssues, _, err := t.client.Issues.ListByRepo(input.Org, input.Repo, &options)
	if err != nil {
		log.Println(err.Error())
	}
	return githubIssues
}
コード例 #2
0
ファイル: gitissue.go プロジェクト: butlerx/AgileGit
// Filters issues based on mileston, assignee, creatoror, labels or state.
// Pass empty strings for things that arnt to be filtered.
// Returns array of issues in order asked for.
// TODO(butlerx) filter offline issues if query of repo fails.
func IssuesFilter(repo, state, milestone, assignee, creator, sort, order string, labels []string) ([]github.Issue, error) {
	s := strings.Split(repo, "/")
	sorting := new(github.IssueListByRepoOptions)
	if len(labels) != 0 {
		sorting.Labels = labels
	}
	if state != "" {
		sorting.State = state
	}
	if milestone != "" {
		sorting.Milestone = milestone
	}
	if assignee != "" {
		sorting.Assignee = assignee
	}
	if creator != "" {
		sorting.Creator = creator
	}
	if sort != "" {
		sorting.Sort = sort
	}
	if order != "" {
		sorting.Direction = order
	}
	issues, _, err := client.Issues.ListByRepo(s[0], s[1], sorting)
	return issues, err
}