Documentation
¶
Index ¶
- Constants
- Variables
- func CollectAccount(taskCtx plugin.SubTaskContext) errors.Error
- func CollectDeployments(taskCtx plugin.SubTaskContext) errors.Error
- func CollectIssues(taskCtx plugin.SubTaskContext) errors.Error
- func CollectJobs(taskCtx plugin.SubTaskContext) errors.Error
- func CollectPrs(taskCtx plugin.SubTaskContext) errors.Error
- func CreateRawDataSubTaskArgs(taskCtx plugin.SubTaskContext, table string) (*helper.RawDataSubTaskArgs, *githubTasks.GithubTaskData)
- func ExtractAccounts(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractDeployments(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractIssues(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractJobs(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractPrs(taskCtx plugin.SubTaskContext) errors.Error
- type GithubAccountEdge
- type GraphqlInlineAccountQuery
- type GraphqlQueryAccount
- type GraphqlQueryAccountWrapper
- type GraphqlQueryCheckRunWrapper
- type GraphqlQueryCheckSuite
- type GraphqlQueryCommit
- type GraphqlQueryDeploymentDeployment
- type GraphqlQueryDeploymentWrapper
- 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_DEPLOYMENT = "github_graphql_deployment"
)
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: "Collect Users", 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 CollectDeploymentsMeta = plugin.SubTaskMeta{ Name: "Collect Deployments", EntryPoint: CollectDeployments, EnabledByDefault: true, Description: "collect github deployments to raw and tool layer from GithubGraphql api", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, }
View Source
var CollectIssuesMeta = plugin.SubTaskMeta{ Name: "Collect Issues", EntryPoint: CollectIssues, EnabledByDefault: true, Description: "Collect Issue data from GithubGraphql api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, }
View Source
var CollectJobsMeta = plugin.SubTaskMeta{ Name: "Collect Job Runs", EntryPoint: CollectJobs, EnabledByDefault: true, Description: "Collect Jobs(CheckRun) data from GithubGraphql api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, }
View Source
var CollectPrsMeta = plugin.SubTaskMeta{ Name: "Collect Pull Requests", EntryPoint: CollectPrs, EnabledByDefault: true, Description: "Collect Pr data from GithubGraphql api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE_REVIEW}, }
View Source
var ExtractAccountsMeta = plugin.SubTaskMeta{ Name: "Extract Users", EntryPoint: ExtractAccounts, EnabledByDefault: true, Description: "extract raw account data into tool layer table github_accounts", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS}, }
View Source
var ExtractDeploymentsMeta = plugin.SubTaskMeta{ Name: "Extract Deployments", EntryPoint: ExtractDeployments, EnabledByDefault: true, Description: "extract raw deployment data into tool layer table github_graphql_deployment", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, }
View Source
var ExtractIssuesMeta = plugin.SubTaskMeta{ Name: "Extract Issues", EntryPoint: ExtractIssues, EnabledByDefault: true, Description: "Extract raw Issues data into tool layer table github_issues", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, }
View Source
var ExtractJobsMeta = plugin.SubTaskMeta{ Name: "Extract Jobs", EntryPoint: ExtractJobs, EnabledByDefault: true, Description: "Extract raw run data into tool layer table github_jobs", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, }
View Source
var ExtractPrsMeta = plugin.SubTaskMeta{ Name: "Extract Pull Requests", EntryPoint: ExtractPrs, EnabledByDefault: true, Description: "Extract raw PullRequests data into tool layer table github_pull_requests", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE_REVIEW}, }
Functions ¶
func CollectAccount ¶
func CollectAccount(taskCtx plugin.SubTaskContext) errors.Error
func CollectDeployments ¶
func CollectDeployments(taskCtx plugin.SubTaskContext) errors.Error
CollectDeployments will request github api via graphql and store the result into raw layer.
func CollectIssues ¶
func CollectIssues(taskCtx plugin.SubTaskContext) errors.Error
func CollectJobs ¶
func CollectJobs(taskCtx plugin.SubTaskContext) errors.Error
func CollectPrs ¶
func CollectPrs(taskCtx plugin.SubTaskContext) errors.Error
func CreateRawDataSubTaskArgs ¶
func CreateRawDataSubTaskArgs(taskCtx plugin.SubTaskContext, table string) (*helper.RawDataSubTaskArgs, *githubTasks.GithubTaskData)
func ExtractAccounts ¶
func ExtractAccounts(taskCtx plugin.SubTaskContext) errors.Error
func ExtractDeployments ¶
func ExtractDeployments(taskCtx plugin.SubTaskContext) errors.Error
func ExtractIssues ¶
func ExtractIssues(taskCtx plugin.SubTaskContext) errors.Error
func ExtractJobs ¶
func ExtractJobs(taskCtx plugin.SubTaskContext) errors.Error
func ExtractPrs ¶
func ExtractPrs(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 GraphqlQueryDeploymentDeployment ¶
type GraphqlQueryDeploymentDeployment struct {
Task string `graphql:"task"` // is value always "deploy"? not sure.
Id string `graphql:"id"`
CommitOid string `graphql:"commitOid"`
Environment string `graphql:"environment"`
State string `graphql:"state"`
DatabaseId uint `graphql:"databaseId"`
Description string `graphql:"description"`
Payload string `graphql:"payload"`
Ref *struct {
ID string `graphql:"id"`
Name string `graphql:"name"`
Prefix string `graphql:"prefix"`
} `graphql:"ref"`
LatestStatus struct {
Id string `graphql:"id"`
State string `graphql:"state"`
UpdatedAt *time.Time `json:"updatedAt"`
} `graphql:"latestStatus"`
Repository struct {
Id string `graphql:"id"`
Name string `graphql:"name"`
Url string `graphql:"url"`
} `graphql:"repository"`
CreatedAt time.Time
UpdatedAt time.Time
}
type GraphqlQueryDeploymentWrapper ¶
type GraphqlQueryDeploymentWrapper struct {
RateLimit struct {
Cost int `graphql:"cost"`
} `graphql:"rateLimit"`
Repository struct {
Deployments struct {
TotalCount graphql.Int `graphql:"totalCount"`
PageInfo *helper.GraphqlQueryPageInfo `graphql:"pageInfo"`
Deployments []GraphqlQueryDeploymentDeployment `graphql:"nodes"`
} `graphql:"deployments(first: $pageSize, after: $skipCursor, orderBy: {field: CREATED_AT, direction: DESC})"`
} `graphql:"repository(owner: $owner, name: $name)"`
}
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
} `graphql:"issues(first: $pageSize, after: $skipCursor, orderBy: {field: UPDATED_AT, direction: DESC})"`
} `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: CREATED_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.