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.