Documentation ¶
Index ¶
- Constants
- Variables
- func CollectAccount(taskCtx plugin.SubTaskContext) errors.Error
- func CollectGraphqlJobs(taskCtx plugin.SubTaskContext) errors.Error
- func CollectIssue(taskCtx plugin.SubTaskContext) errors.Error
- func CollectPr(taskCtx plugin.SubTaskContext) errors.Error
- type GithubAccountEdge
- type GraphqlInlineAccountQuery
- type GraphqlQueryAccount
- type GraphqlQueryAccountWrapper
- type GraphqlQueryCheckRunWrapper
- type GraphqlQueryCheckSuite
- type GraphqlQueryCommit
- type GraphqlQueryIssue
- type GraphqlQueryIssueWrapper
- type GraphqlQueryPr
- type GraphqlQueryPrWrapper
- type GraphqlQueryReview
- type SimpleAccount
- type SimpleWorkflowRun
Constants ¶
View Source
const RAW_ACCOUNTS_TABLE = "github_graphql_accounts"
View Source
const RAW_GRAPHQL_JOBS_TABLE = "github_graphql_jobs"
View Source
const RAW_ISSUES_TABLE = "github_graphql_issues"
View Source
const RAW_PRS_TABLE = "github_graphql_prs"
Variables ¶
View Source
var CollectAccountMeta = plugin.SubTaskMeta{ Name: "CollectAccount", EntryPoint: CollectAccount, EnabledByDefault: true, Description: "Collect Account data from GithubGraphql api, does not support either timeFilter or diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS}, }
View Source
var CollectGraphqlJobsMeta = plugin.SubTaskMeta{ Name: "CollectGraphqlJobs", EntryPoint: CollectGraphqlJobs, EnabledByDefault: true, Description: "Collect Jobs(CheckRun) data from GithubGraphql api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, }
View Source
var CollectIssueMeta = plugin.SubTaskMeta{ Name: "CollectIssue", EntryPoint: CollectIssue, EnabledByDefault: true, Description: "Collect Issue data from GithubGraphql api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, }
View Source
var CollectPrMeta = plugin.SubTaskMeta{ Name: "CollectPr", EntryPoint: CollectPr, EnabledByDefault: true, Description: "Collect Pr data from GithubGraphql api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE_REVIEW}, }
Functions ¶
func CollectAccount ¶
func CollectAccount(taskCtx plugin.SubTaskContext) errors.Error
func CollectGraphqlJobs ¶
func CollectGraphqlJobs(taskCtx plugin.SubTaskContext) errors.Error
func CollectIssue ¶
func CollectIssue(taskCtx plugin.SubTaskContext) errors.Error
Types ¶
type GithubAccountEdge ¶
type GraphqlInlineAccountQuery ¶
type GraphqlInlineAccountQuery struct {
GithubAccountEdge `graphql:"... on User"`
}
type GraphqlQueryAccount ¶
type GraphqlQueryAccount struct { Login string Id int `graphql:"databaseId"` Name string Company string Email string AvatarUrl string HtmlUrl string `graphql:"url"` //Type string Organizations struct { Nodes []struct { Email string Name string DatabaseId int Login string } } `graphql:"organizations(first: 10)"` }
type GraphqlQueryAccountWrapper ¶
type GraphqlQueryAccountWrapper struct { RateLimit struct { Cost int } Users []GraphqlQueryAccount `graphql:"user(login: $login)" graphql-extend:"true"` }
type GraphqlQueryCheckRunWrapper ¶
type GraphqlQueryCheckRunWrapper struct { RateLimit struct { Cost int } Node []GraphqlQueryCheckSuite `graphql:"node(id: $id)" graphql-extend:"true"` }
type GraphqlQueryCheckSuite ¶
type GraphqlQueryCheckSuite struct { Id string Typename string `graphql:"__typename"` // equal to Run in rest CheckSuite struct { WorkflowRun struct { DatabaseId int } // equal to Job in rest CheckRuns struct { TotalCount int Nodes []struct { Id string Name string DetailsUrl string DatabaseId int Status string StartedAt *time.Time Conclusion string CompletedAt *time.Time Steps struct { TotalCount int Nodes []struct { CompletedAt *time.Time `json:"completed_at"` Conclusion string `json:"conclusion"` Name string `json:"name"` Number int `json:"number"` SecondsToCompletion int `json:"seconds_to_completion"` StartedAt *time.Time `json:"started_at"` Status string `json:"status"` } } `graphql:"steps(first: 50)"` } } `graphql:"checkRuns(first: 50)"` } `graphql:"... on CheckSuite"` }
type GraphqlQueryCommit ¶
type GraphqlQueryIssue ¶
type GraphqlQueryIssue struct { DatabaseId int Number int State string StateReason string Title string Body string Author *GraphqlInlineAccountQuery Url string ClosedAt *time.Time CreatedAt time.Time UpdatedAt time.Time AssigneeList struct { // FIXME now domain layer just support one assignee Assignees []GraphqlInlineAccountQuery `graphql:"nodes"` } `graphql:"assignees(first: 100)"` Milestone *struct { Number int } `json:"milestone"` Labels struct { Nodes []struct { Id string Name string } } `graphql:"labels(first: 100)"` }
type GraphqlQueryIssueWrapper ¶
type GraphqlQueryIssueWrapper struct { RateLimit struct { Cost int } Repository struct { IssueList struct { TotalCount graphql.Int Issues []GraphqlQueryIssue `graphql:"nodes"` PageInfo *helper.GraphqlQueryPageInfo } `` /* 128-byte string literal not displayed */ } `graphql:"repository(owner: $owner, name: $name)"` }
type GraphqlQueryPr ¶
type GraphqlQueryPr struct { DatabaseId int Number int State string Title string Body string Url string Labels struct { Nodes []struct { Id string Name string } } `graphql:"labels(first: 100)"` Author *GraphqlInlineAccountQuery Assignees struct { // FIXME now domain layer just support one assignee Assignees []GraphqlInlineAccountQuery `graphql:"nodes"` } `graphql:"assignees(first: 1)"` ClosedAt *time.Time MergedAt *time.Time UpdatedAt time.Time CreatedAt time.Time MergeCommit *struct { Oid string } HeadRefName string HeadRefOid string BaseRefName string BaseRefOid string Commits struct { PageInfo *api.GraphqlQueryPageInfo Nodes []GraphqlQueryCommit `graphql:"nodes"` TotalCount graphql.Int } `graphql:"commits(first: 100)"` Reviews struct { TotalCount graphql.Int Nodes []GraphqlQueryReview `graphql:"nodes"` } `graphql:"reviews(first: 100)"` }
type GraphqlQueryPrWrapper ¶
type GraphqlQueryPrWrapper struct { RateLimit struct { Cost int } // now it orderBy UPDATED_AT and use cursor pagination // It may miss some PRs updated when collection. // Because these missed PRs will be collected on next, But it's not enough. // So Next Millstone(0.17) we should change it to filter by CREATE_AT + collect detail Repository struct { PullRequests struct { PageInfo *api.GraphqlQueryPageInfo Prs []GraphqlQueryPr `graphql:"nodes"` TotalCount graphql.Int } `graphql:"pullRequests(first: $pageSize, after: $skipCursor, orderBy: {field: UPDATED_AT, direction: DESC})"` } `graphql:"repository(owner: $owner, name: $name)"` }
type GraphqlQueryReview ¶
type SimpleAccount ¶
type SimpleAccount struct {
Login string
}
type SimpleWorkflowRun ¶
type SimpleWorkflowRun struct {
CheckSuiteNodeID string
}
Click to show internal directories.
Click to hide internal directories.