Documentation ¶
Index ¶
- Constants
- func ProjectNumber(val any) int
- type Assignees
- type CommonField
- type Content
- type Field
- type FieldValue
- type FieldValues
- type IssueContent
- type Project
- type ProjectItem
- type ProjectItemsWithFields
- type ProjectLabel
- type ProjectLabels
- type ProjectV2FieldCommon
- type ProjectV2ItemContent
- type ProjectV2ItemFieldDateValue
- type ProjectV2ItemFieldIterationValue
- type ProjectV2ItemFieldLabelValue
- type ProjectV2ItemFieldNumberValue
- type ProjectV2ItemFieldRepositoryValue
- type ProjectV2ItemFieldReviewerValue
- type ProjectV2ItemFieldSingleSelectValue
- type ProjectV2ItemFieldTextValue
- type Projects
- type QueryListProjects
- type QueryListProjectsByUser
- type QueryProject
- type QueryProjectByUser
- type Reviewer
- type Reviewers
Constants ¶
const PageNumberLimit = 2
PageNumberLimit is the limit on the number of pages that will be traversed
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CommonField ¶
type CommonField struct {
Common ProjectV2FieldCommon `graphql:"... on ProjectV2FieldCommon"`
}
CommonField ...
type Content ¶
type Content struct { Title *string Body *string CreatedAt *githubv4.DateTime Assignees *Assignees `graphql:"assignees(first: 10)"` }
Content of the ProjectItem
type Field ¶
type Field struct {
Common ProjectV2FieldCommon `graphql:"... on ProjectV2FieldCommon"`
}
Field is a field on a ProjectItem
type FieldValue ¶
type FieldValue struct { DateValue ProjectV2ItemFieldDateValue `graphql:"... on ProjectV2ItemFieldDateValue"` TextValue ProjectV2ItemFieldTextValue `graphql:"... on ProjectV2ItemFieldTextValue"` SelectValue ProjectV2ItemFieldSingleSelectValue `graphql:"... on ProjectV2ItemFieldSingleSelectValue"` IterationValue ProjectV2ItemFieldIterationValue `graphql:"... on ProjectV2ItemFieldIterationValue"` LabelsValue ProjectV2ItemFieldLabelValue `graphql:"... on ProjectV2ItemFieldLabelValue"` NumberValue ProjectV2ItemFieldNumberValue `graphql:"... on ProjectV2ItemFieldNumberValue"` ReviewerValue ProjectV2ItemFieldReviewerValue `graphql:"... on ProjectV2ItemFieldReviewerValue"` RepoValue ProjectV2ItemFieldRepositoryValue `graphql:"... on ProjectV2ItemFieldRepositoryValue"` }
FieldValue is a value for a Field
type FieldValues ¶
type FieldValues struct { PageInfo models.PageInfo TotalCount int64 Nodes []FieldValue }
FieldValues are the values of each Field of a ProjectItem
type IssueContent ¶
type IssueContent struct { Title *string Body *string CreatedAt *githubv4.DateTime Assignees *Assignees `graphql:"assignees(first: 10)"` Milestone *models.Milestone ClosedAt *githubv4.DateTime }
IssueContent of the ProjectItem
type Project ¶
type Project struct { Number int64 Title string URL string Closed bool Public bool ClosedAt githubv4.DateTime CreatedAt githubv4.DateTime UpdatedAt githubv4.DateTime ShortDescription string }
Project is a GitHub project
type ProjectItem ¶
type ProjectItem struct { Content ProjectV2ItemContent FieldValues FieldValues `graphql:"fieldValues(first: 100)"` ID string IsArchived bool Type string CreatedAt githubv4.DateTime UpdatedAt githubv4.DateTime }
ProjectItem is a GitHub project item
type ProjectItemsWithFields ¶
type ProjectItemsWithFields struct { Items []ProjectItem Fields []Field Filters []models.Filter }
ProjectItemsWithFields ...
func GetAllProjectItems ¶
func GetAllProjectItems(ctx context.Context, client models.Client, opts models.ProjectOptions) (*ProjectItemsWithFields, error)
GetAllProjectItems uses the graphql endpoint API to list all project items in the repository
func GetProjectsItemsInRange ¶
func GetProjectsItemsInRange(ctx context.Context, client models.Client, opts models.ProjectOptions, from time.Time, to time.Time) (*ProjectItemsWithFields, error)
GetProjectsItemsInRange retrieves every project from the org and then returns the ones that fall within the given time range.
func (ProjectItemsWithFields) Frames ¶
func (p ProjectItemsWithFields) Frames() data.Frames
Frames converts the list of Projects to a Grafana DataFrame
type ProjectV2FieldCommon ¶
ProjectV2FieldCommon is common to fields
type ProjectV2ItemContent ¶
type ProjectV2ItemContent struct { DraftIssue Content `graphql:"... on DraftIssue"` Issue IssueContent `graphql:"... on Issue"` PullRequest IssueContent `graphql:"... on PullRequest"` }
ProjectV2ItemContent contains Content for a ProjectItem
type ProjectV2ItemFieldDateValue ¶
type ProjectV2ItemFieldDateValue struct { CreatedAt githubv4.DateTime Date *string UpdatedAt githubv4.DateTime Field CommonField }
ProjectV2ItemFieldDateValue is a value for a Date field
type ProjectV2ItemFieldIterationValue ¶
type ProjectV2ItemFieldIterationValue struct { Title *string Field CommonField }
ProjectV2ItemFieldIterationValue is a value for an Iteration field
type ProjectV2ItemFieldLabelValue ¶
type ProjectV2ItemFieldLabelValue struct { ProjectLabels `graphql:"labels(first: 10)"` Field CommonField }
ProjectV2ItemFieldLabelValue is a value for a Labels field
type ProjectV2ItemFieldNumberValue ¶
type ProjectV2ItemFieldNumberValue struct { Number *float64 Field CommonField }
ProjectV2ItemFieldNumberValue is a value for a Number field
type ProjectV2ItemFieldRepositoryValue ¶
type ProjectV2ItemFieldRepositoryValue struct { Repository models.Repository Field CommonField }
ProjectV2ItemFieldRepositoryValue ...
type ProjectV2ItemFieldReviewerValue ¶
type ProjectV2ItemFieldReviewerValue struct { Reviewers `graphql:"reviewers(first: 10)"` Field CommonField }
ProjectV2ItemFieldReviewerValue ...
type ProjectV2ItemFieldSingleSelectValue ¶
type ProjectV2ItemFieldSingleSelectValue struct { Name *string Field CommonField }
ProjectV2ItemFieldSingleSelectValue is a value for a SingleSelect field
type ProjectV2ItemFieldTextValue ¶
type ProjectV2ItemFieldTextValue struct { Text *string Field CommonField }
ProjectV2ItemFieldTextValue is a value for a Text field
type Projects ¶
type Projects []Project
Projects is a list of GitHub Projects
func GetAllProjects ¶
func GetAllProjects(ctx context.Context, client models.Client, opts models.ProjectOptions) (Projects, error)
GetAllProjects uses the graphql endpoint API to list all projects in the repository
type QueryListProjects ¶
type QueryListProjects struct { Organization struct { ProjectsV2 struct { Nodes []Project PageInfo models.PageInfo } `graphql:"projectsV2(first: 100, after: $cursor)"` } `graphql:"organization(login: $login)"` }
QueryListProjects lists all projects in a repository
organization(login: "grafana") { projectsV2(first: 100) { nodes { id title ... } } }
type QueryListProjectsByUser ¶
type QueryListProjectsByUser struct { User struct { ProjectsV2 struct { Nodes []Project PageInfo models.PageInfo } `graphql:"projectsV2(first: 100, after: $cursor)"` } `graphql:"user(login: $login)"` }
QueryListProjectsByUser lists all projects by user
type QueryProject ¶
type QueryProject struct { Organization struct { ProjectV2 struct { Fields struct { TotalCount int64 Nodes []Field PageInfo models.PageInfo } `graphql:"fields(first: 100)"` Items struct { // Edges TotalCount int64 Nodes []ProjectItem PageInfo models.PageInfo } `graphql:"items(first: 100, after: $cursor)"` } `graphql:"projectV2(number: $number)"` } `graphql:"organization(login: $login)"` }
QueryProject lists project items in a project
organization(login: "grafana") { projectV2(number: 218) { items(first: 50) { totalCount nodes { id createdAt } }, fields(first: 50) { totalCount nodes{ ... on ProjectV2FieldCommon { name dataType } } }, } }
type QueryProjectByUser ¶
type QueryProjectByUser struct { User struct { ProjectV2 struct { Fields struct { TotalCount int64 Nodes []Field PageInfo models.PageInfo } `graphql:"fields(first: 100)"` Items struct { // Edges TotalCount int64 Nodes []ProjectItem PageInfo models.PageInfo } `graphql:"items(first: 100, after: $cursor)"` } `graphql:"projectV2(number: $number)"` } `graphql:"user(login: $login)"` }
QueryProjectByUser lists Github projects by User