Documentation
¶
Index ¶
- Constants
- Variables
- func CollectAccountOrg(taskCtx plugin.SubTaskContext) errors.Error
- func CollectAccounts(taskCtx plugin.SubTaskContext) errors.Error
- func CollectApiComments(taskCtx plugin.SubTaskContext) errors.Error
- func CollectApiCommitStats(taskCtx plugin.SubTaskContext) errors.Error
- func CollectApiCommits(taskCtx plugin.SubTaskContext) errors.Error
- func CollectApiEvents(taskCtx plugin.SubTaskContext) errors.Error
- func CollectApiIssues(taskCtx plugin.SubTaskContext) errors.Error
- func CollectApiMilestones(taskCtx plugin.SubTaskContext) errors.Error
- func CollectApiPullRequestCommits(taskCtx plugin.SubTaskContext) errors.Error
- func CollectApiPullRequestReviews(taskCtx plugin.SubTaskContext) errors.Error
- func CollectApiPullRequests(taskCtx plugin.SubTaskContext) errors.Error
- func CollectJobs(taskCtx plugin.SubTaskContext) errors.Error
- func CollectPrReviewComments(taskCtx plugin.SubTaskContext) errors.Error
- func CollectRuns(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertAccounts(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertCommits(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertDeployment(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertIssueAssignee(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertIssueComments(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertIssueLabels(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertIssues(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertJobs(taskCtx plugin.SubTaskContext) (err errors.Error)
- func ConvertMilestones(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertPullRequestComments(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertPullRequestCommits(taskCtx plugin.SubTaskContext) (err errors.Error)
- func ConvertPullRequestIssues(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertPullRequestLabels(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertPullRequestReviews(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertPullRequests(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertRepo(taskCtx plugin.SubTaskContext) errors.Error
- func ConvertRuns(taskCtx plugin.SubTaskContext) errors.Error
- func CreateApiClient(taskCtx plugin.TaskContext, connection *models.GithubConnection) (*api.ApiAsyncClient, errors.Error)
- func EnrichPullRequestIssues(taskCtx plugin.SubTaskContext) (err errors.Error)
- func ExtractAccountOrg(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractAccounts(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractApiComments(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractApiCommitStats(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractApiCommits(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractApiEvents(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractApiIssues(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractApiPrReviewComments(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractApiPullRequestCommits(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractApiPullRequestReviews(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractApiPullRequests(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractJobs(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractMilestones(taskCtx plugin.SubTaskContext) errors.Error
- func ExtractRuns(taskCtx plugin.SubTaskContext) errors.Error
- func GetTotalPagesFromResponse(res *http.Response, args *api.ApiCollectorArgs) (int, errors.Error)
- func RegisterSubtaskMeta(meta *plugin.SubTaskMeta)
- func ValidateTaskOptions(op *GithubOptions) errors.Error
- type ApiSingleCommitResponse
- type Commit
- type CommitsResponse
- type DetailGithubAccountResponse
- type GithubAccountOrgsResponse
- type GithubAccountResponse
- type GithubAccountWithOrg
- type GithubApiParams
- type GithubApiPullRequest
- type GithubApiRepo
- type GithubOptions
- type GithubRawJobsResult
- type GithubRawRunsResult
- type GithubTaskData
- type IssueComment
- type IssueEvent
- type IssueRegexes
- type IssuesResponse
- type MilestoneConverterModel
- type MilestonesResponse
- type PrCommitsResponse
- type PullRequestCommit
- type PullRequestReview
- type SimpleAccount
- type SimpleAccountWithId
- type SimpleBranch
- type SimpleGithubApiEvents
- type SimpleGithubApiJob
- type SimpleGithubApiPr
- type SimpleGithubPr
- type SimpleGithubRun
- type SimplePr
Constants ¶
View Source
const ( // https://docs.github.com/en/graphql/reference/enums#checkrunstate // https://docs.github.com/en/graphql/reference/enums#checkstatusstate // https://docs.github.com/en/graphql/reference/enums#deploymentstate // https://docs.github.com/en/graphql/reference/enums#checkconclusionstate StatusCompleted = "COMPLETED" StatusSuccess = "SUCCESS" StatusFailure = "FAILURE" StatusCancelled = "CANCELLED" StatusTimedOut = "TIMED_OUT" StatusStartUpFailure = "STARTUP_FAILURE" StatusInProgress = "IN_PROGRESS" StatusQueued = "QUEUED" StatusWaiting = "WAITING" StatusPending = "PENDING" StatusNeutral = "NEUTRAL" StatusSkipped = "SKIPPED" StatusStale = "STALE" StatusActionRequired = "ACTION_REQUIRED" StatusRequested = "REQUESTED" StatusAbandoned = "ABANDONED" StatusActive = "ACTIVE" StatusInactive = "INACTIVE" StatusDestroyed = "DESTROYED" StatusError = "ERROR" )
View Source
const PAGE_SIZE = 30
Although the API accepts a maximum of 100 entries per page, sometimes the response body is too large which would lead to request failures https://github.com/apache/incubator-devlake/issues/3199
View Source
const RAW_ACCOUNT_ORG_TABLE = "github_api_account_orgs"
View Source
const RAW_ACCOUNT_TABLE = "github_api_accounts"
View Source
const RAW_COMMENTS_TABLE = "github_api_comments"
View Source
const RAW_COMMIT_STATS_TABLE = "github_api_commit_stats"
View Source
const RAW_COMMIT_TABLE = "github_api_commits"
View Source
const (
RAW_DEPLOYMENT_TABLE = "github_deployment"
)
View Source
const RAW_EVENTS_TABLE = "github_api_events"
View Source
const RAW_ISSUE_TABLE = "github_api_issues"
View Source
const RAW_JOB_TABLE = "github_api_jobs"
View Source
const RAW_MILESTONE_TABLE = "github_milestones"
View Source
const RAW_PR_COMMIT_TABLE = "github_api_pull_request_commits"
View Source
const RAW_PR_REVIEW_COMMENTS_TABLE = "github_api_pull_request_review_comments"
View Source
const RAW_PR_REVIEW_TABLE = "github_api_pull_request_reviews"
View Source
const RAW_PULL_REQUEST_TABLE = "github_api_pull_requests"
View Source
const RAW_RUN_TABLE = "github_api_runs"
Variables ¶
View Source
var CollectAccountOrgMeta = plugin.SubTaskMeta{ Name: "Collect User Org", EntryPoint: CollectAccountOrg, EnabledByDefault: true, Description: "Collect accounts org data from Github api, does not support either timeFilter or diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS}, DependencyTables: []string{ models.GithubRepoAccount{}.TableName(), models.GithubAccount{}.TableName(), }, ProductTables: []string{RAW_ACCOUNT_ORG_TABLE}, }
View Source
var CollectAccountsMeta = plugin.SubTaskMeta{ Name: "Collect Users", EntryPoint: CollectAccounts, EnabledByDefault: true, Description: "Collect accounts data from Github api, does not support either timeFilter or diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS}, DependencyTables: []string{}, ProductTables: []string{RAW_ACCOUNT_TABLE}, }
View Source
var CollectApiCommentsMeta = plugin.SubTaskMeta{ Name: "Collect Comments", EntryPoint: CollectApiComments, EnabledByDefault: true, Description: "Collect comments data from Github api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE_REVIEW, plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{}, ProductTables: []string{RAW_COMMENTS_TABLE}, }
View Source
var CollectApiCommitStatsMeta = plugin.SubTaskMeta{ Name: "Collect Commit Stats", EntryPoint: CollectApiCommitStats, EnabledByDefault: false, Description: "Collect commitStats data from Github api, does not support either timeFilter or diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE}, DependencyTables: []string{}, ProductTables: []string{RAW_COMMIT_STATS_TABLE}, }
View Source
var CollectApiCommitsMeta = plugin.SubTaskMeta{ Name: "Collect Commits", EntryPoint: CollectApiCommits, EnabledByDefault: false, Description: "Collect commits data from Github api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE}, DependencyTables: []string{}, ProductTables: []string{RAW_COMMIT_TABLE}, }
View Source
var CollectApiEventsMeta = plugin.SubTaskMeta{ Name: "Collect Events", EntryPoint: CollectApiEvents, EnabledByDefault: true, Description: "Collect Events data from Github api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{}, ProductTables: []string{RAW_EVENTS_TABLE}, }
View Source
var CollectApiIssuesMeta = plugin.SubTaskMeta{ Name: "Collect Issues", EntryPoint: CollectApiIssues, EnabledByDefault: true, Description: "Collect issues data from Github api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{}, ProductTables: []string{RAW_ISSUE_TABLE}, }
View Source
var CollectApiPrReviewCommentsMeta = plugin.SubTaskMeta{ Name: "Collect PR Review Comments", EntryPoint: CollectPrReviewComments, EnabledByDefault: true, Description: "Collect pr review comments data from Github api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{}, ProductTables: []string{RAW_PR_REVIEW_COMMENTS_TABLE}, }
View Source
var CollectApiPullRequestCommitsMeta = plugin.SubTaskMeta{ Name: "Collect PR Commits", EntryPoint: CollectApiPullRequestCommits, EnabledByDefault: true, Description: "Collect PullRequestCommits data from Github api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{models.GithubPullRequest{}.TableName()}, ProductTables: []string{RAW_PR_COMMIT_TABLE}, }
View Source
var CollectApiPullRequestReviewsMeta = plugin.SubTaskMeta{ Name: "Collect PR Reviews", EntryPoint: CollectApiPullRequestReviews, EnabledByDefault: true, Description: "Collect PullRequestReviews data from Github api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{models.GithubPullRequest{}.TableName()}, ProductTables: []string{RAW_PR_REVIEW_TABLE}, }
View Source
var CollectApiPullRequestsMeta = plugin.SubTaskMeta{ Name: "Collect Pull Requests", EntryPoint: CollectApiPullRequests, EnabledByDefault: true, Description: "Collect PullRequests data from Github api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{}, ProductTables: []string{RAW_PULL_REQUEST_TABLE}, }
View Source
var CollectJobsMeta = plugin.SubTaskMeta{ Name: "Collect Job Runs", EntryPoint: CollectJobs, EnabledByDefault: true, Description: "Collect Jobs data from Github action api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, DependencyTables: []string{models.GithubRun{}.TableName()}, ProductTables: []string{RAW_JOB_TABLE}, }
View Source
var CollectMilestonesMeta = plugin.SubTaskMeta{ Name: "Collect Milestones", EntryPoint: CollectApiMilestones, EnabledByDefault: true, Description: "Collect milestone data from Github api, does not support either timeFilter or diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{}, ProductTables: []string{RAW_MILESTONE_TABLE}, }
View Source
var CollectRunsMeta = plugin.SubTaskMeta{ Name: "Collect Workflow Runs", EntryPoint: CollectRuns, EnabledByDefault: true, Description: "Collect Runs data from Github action api, supports both timeFilter and diffSync.", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, DependencyTables: []string{}, ProductTables: []string{RAW_RUN_TABLE}, }
View Source
var ConvertAccountsMeta = plugin.SubTaskMeta{ Name: "Convert Users", EntryPoint: ConvertAccounts, EnabledByDefault: true, Description: "Convert tool layer table github_accounts into domain layer table accounts", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS}, DependencyTables: []string{ models.GithubAccount{}.TableName(), models.GithubRepoAccount{}.TableName(), models.GithubAccountOrg{}.TableName()}, ProductTables: []string{crossdomain.Account{}.TableName()}, }
View Source
var ConvertCommitsMeta = plugin.SubTaskMeta{ Name: "Convert Commits", EntryPoint: ConvertCommits, EnabledByDefault: false, Description: "Convert tool layer table github_commits into domain layer table commits", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE}, DependencyTables: []string{ models.GithubCommit{}.TableName(), models.GithubRepoCommit{}.TableName(), RAW_COMMIT_TABLE}, ProductTables: []string{ code.Commit{}.TableName(), code.RepoCommit{}.TableName()}, }
View Source
var ConvertDeploymentsMeta = plugin.SubTaskMeta{ Name: "Convert Deployments", EntryPoint: ConvertDeployment, EnabledByDefault: true, Description: "Convert tool layer table github_deployments into domain layer table deployment", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, DependencyTables: []string{models.GithubDeployment{}.TableName()}, ProductTables: []string{devops.CicdDeploymentCommit{}.TableName(), devops.CICDDeployment{}.TableName()}, }
View Source
var ConvertIssueAssigneeMeta = plugin.SubTaskMeta{ Name: "Convert Issue Assignees", EntryPoint: ConvertIssueAssignee, EnabledByDefault: true, Description: "Convert tool layer table _tool_github_issue_assignees into domain layer table issue_assignees", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{ models.GithubIssue{}.TableName(), RAW_ISSUE_TABLE, }, ProductTables: []string{models.GithubIssueAssignee{}.TableName()}, }
View Source
var ConvertIssueCommentsMeta = plugin.SubTaskMeta{ Name: "Convert Issue Comments", EntryPoint: ConvertIssueComments, EnabledByDefault: true, Description: "ConvertIssueComments data from Github api", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{ models.GithubIssueComment{}.TableName(), models.GithubIssue{}.TableName(), models.GithubAccount{}.TableName(), RAW_COMMENTS_TABLE}, ProductTables: []string{ticket.IssueComment{}.TableName()}, }
View Source
var ConvertIssueLabelsMeta = plugin.SubTaskMeta{ Name: "Convert Issue Labels", EntryPoint: ConvertIssueLabels, EnabledByDefault: true, Description: "Convert tool layer table github_issue_labels into domain layer table issue_labels", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{ models.GithubIssueLabel{}.TableName(), models.GithubIssue{}.TableName(), RAW_ISSUE_TABLE}, ProductTables: []string{ticket.IssueLabel{}.TableName()}, }
View Source
var ConvertIssuesMeta = plugin.SubTaskMeta{ Name: "Convert Issues", EntryPoint: ConvertIssues, EnabledByDefault: true, Description: "Convert tool layer table github_issues into domain layer table issues", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{ models.GithubIssue{}.TableName(), models.GithubAccount{}.TableName(), RAW_ISSUE_TABLE}, ProductTables: []string{ ticket.Issue{}.TableName(), ticket.BoardIssue{}.TableName()}, }
View Source
var ConvertJobsMeta = plugin.SubTaskMeta{ Name: "Convert Jobs", EntryPoint: ConvertJobs, EnabledByDefault: true, Description: "Convert tool layer table github_jobs into domain layer table cicd_tasks", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, DependencyTables: []string{ RAW_JOB_TABLE, models.GithubJob{}.TableName(), models.GithubRun{}.TableName(), }, ProductTables: []string{devops.CICDTask{}.TableName()}, }
View Source
var ConvertMilestonesMeta = plugin.SubTaskMeta{ Name: "Convert Milestones", EntryPoint: ConvertMilestones, EnabledByDefault: true, Description: "Convert tool layer table github_milestones into domain layer table milestones", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{ models.GithubIssue{}.TableName(), models.GithubMilestone{}.TableName(), RAW_MILESTONE_TABLE}, ProductTables: []string{ ticket.Sprint{}.TableName(), ticket.BoardSprint{}.TableName(), ticket.SprintIssue{}.TableName()}, }
View Source
var ConvertPullRequestCommentsMeta = plugin.SubTaskMeta{ Name: "Convert PR Comments", EntryPoint: ConvertPullRequestComments, EnabledByDefault: true, Description: "ConvertPullRequestComments data from Github api", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{ models.GithubPrComment{}.TableName(), models.GithubPullRequest{}.TableName(), models.GithubAccount{}.TableName(), models.GithubPrReview{}.TableName(), RAW_COMMENTS_TABLE}, ProductTables: []string{code.PullRequestComment{}.TableName()}, }
View Source
var ConvertPullRequestCommitsMeta = plugin.SubTaskMeta{ Name: "Convert PR Commits", EntryPoint: ConvertPullRequestCommits, EnabledByDefault: true, Description: "Convert tool layer table github_pull_request_commits into domain layer table pull_request_commits", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{ models.GithubPrCommit{}.TableName(), models.GithubPullRequest{}.TableName(), models.GithubPullRequest{}.TableName(), RAW_PR_COMMIT_TABLE}, ProductTables: []string{code.PullRequestCommit{}.TableName()}, }
View Source
var ConvertPullRequestIssuesMeta = plugin.SubTaskMeta{ Name: "Convert PR Issues", EntryPoint: ConvertPullRequestIssues, EnabledByDefault: true, Description: "Convert tool layer table github_pull_request_issues into domain layer table pull_request_issues", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS}, DependencyTables: []string{ models.GithubPrIssue{}.TableName(), models.GithubPullRequest{}.TableName(), RAW_PULL_REQUEST_TABLE}, ProductTables: []string{crossdomain.PullRequestIssue{}.TableName()}, }
View Source
var ConvertPullRequestLabelsMeta = plugin.SubTaskMeta{ Name: "Convert PR Labels", EntryPoint: ConvertPullRequestLabels, EnabledByDefault: true, Description: "Convert tool layer table github_pull_request_labels into domain layer table pull_request_labels", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{ models.GithubPrLabel{}.TableName(), models.GithubPullRequest{}.TableName(), RAW_PULL_REQUEST_TABLE}, ProductTables: []string{code.PullRequestLabel{}.TableName()}, }
View Source
var ConvertPullRequestReviewsMeta = plugin.SubTaskMeta{ Name: "Convert PR Reviews", EntryPoint: ConvertPullRequestReviews, EnabledByDefault: true, Description: "ConvertPullRequestReviews data from Github api", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{ models.GithubPrReview{}.TableName(), models.GithubPullRequest{}.TableName(), models.GithubAccount{}.TableName(), RAW_PR_REVIEW_TABLE}, ProductTables: []string{code.PullRequestComment{}.TableName()}, }
View Source
var ConvertPullRequestsMeta = plugin.SubTaskMeta{ Name: "Convert Pull Requests", EntryPoint: ConvertPullRequests, EnabledByDefault: true, Description: "ConvertPullRequests data from Github api", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{ models.GithubPullRequest{}.TableName(), models.GithubAccount{}.TableName(), RAW_PULL_REQUEST_TABLE}, ProductTables: []string{code.PullRequest{}.TableName()}, }
View Source
var ConvertRepoMeta = plugin.SubTaskMeta{ Name: "Convert Repos", EntryPoint: ConvertRepo, EnabledByDefault: true, Description: "Convert tool layer table github_repos into domain layer table repos and boards", DomainTypes: []string{ plugin.DOMAIN_TYPE_CODE, plugin.DOMAIN_TYPE_TICKET, plugin.DOMAIN_TYPE_CICD, plugin.DOMAIN_TYPE_CODE_REVIEW, plugin.DOMAIN_TYPE_CROSS}, DependencyTables: []string{}, ProductTables: []string{ code.Repo{}.TableName(), ticket.Board{}.TableName(), crossdomain.BoardRepo{}.TableName(), devops.CicdScope{}.TableName()}, }
View Source
var ConvertRunsMeta = plugin.SubTaskMeta{ Name: "Convert Workflow Runs", EntryPoint: ConvertRuns, EnabledByDefault: true, Description: "Convert tool layer table github_runs into domain layer table cicd_pipeline", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, DependencyTables: []string{ models.GithubRun{}.TableName(), RAW_RUN_TABLE, }, ProductTables: []string{ devops.CICDPipeline{}.TableName(), devops.CiCDPipelineCommit{}.TableName(), }, }
View Source
var EnrichPullRequestIssuesMeta = plugin.SubTaskMeta{ Name: "Enrich PR Issues", EntryPoint: EnrichPullRequestIssues, EnabledByDefault: true, Description: "Create tool layer table github_pull_request_issues from github_pull_requests", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS}, DependencyTables: []string{ models.GithubPullRequest{}.TableName(), RAW_PULL_REQUEST_TABLE}, ProductTables: []string{models.GithubPrIssue{}.TableName()}, }
View Source
var ExtractAccountOrgMeta = plugin.SubTaskMeta{ Name: "Extract User Org", EntryPoint: ExtractAccountOrg, EnabledByDefault: true, Description: "Extract raw account org data into tool layer table github_account_orgs", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS}, DependencyTables: []string{RAW_ACCOUNT_ORG_TABLE}, ProductTables: []string{models.GithubAccountOrg{}.TableName()}, }
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}, DependencyTables: []string{RAW_ACCOUNT_TABLE}, ProductTables: []string{models.GithubAccount{}.TableName()}, }
View Source
var ExtractApiCommentsMeta = plugin.SubTaskMeta{ Name: "Extract Comments", EntryPoint: ExtractApiComments, EnabledByDefault: true, Description: "Extract raw comment data into tool layer table github_pull_request_comments" + "and github_issue_comments", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE_REVIEW, plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{RAW_COMMENTS_TABLE}, ProductTables: []string{ models.GithubPrComment{}.TableName(), models.GithubIssueComment{}.TableName(), models.GithubRepoAccount{}.TableName()}, }
View Source
var ExtractApiCommitStatsMeta = plugin.SubTaskMeta{ Name: "Extract Commit Stats", EntryPoint: ExtractApiCommitStats, EnabledByDefault: false, Description: "Extract raw commit stats data into tool layer table github_commit_stats", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE}, DependencyTables: []string{RAW_COMMIT_STATS_TABLE}, ProductTables: []string{ models.GithubCommit{}.TableName(), models.GithubCommitStat{}.TableName()}, }
View Source
var ExtractApiCommitsMeta = plugin.SubTaskMeta{ Name: "Extract Commits", EntryPoint: ExtractApiCommits, EnabledByDefault: false, Description: "Extract raw commit data into tool layer table github_commits", DomainTypes: []string{plugin.DOMAIN_TYPE_CODE}, DependencyTables: []string{RAW_COMMIT_TABLE}, ProductTables: []string{ models.GithubCommit{}.TableName(), models.GithubRepoCommit{}.TableName()}, }
View Source
var ExtractApiEventsMeta = plugin.SubTaskMeta{ Name: "Extract Events", EntryPoint: ExtractApiEvents, EnabledByDefault: true, Description: "Extract raw Events data into tool layer table github_issue_events", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{RAW_EVENTS_TABLE}, ProductTables: []string{models.GithubIssueEvent{}.TableName()}, }
View Source
var ExtractApiIssuesMeta = plugin.SubTaskMeta{ Name: "Extract Issues", EntryPoint: ExtractApiIssues, EnabledByDefault: true, Description: "Extract raw Issues data into tool layer table github_issues", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{RAW_ISSUE_TABLE}, ProductTables: []string{ models.GithubIssue{}.TableName(), models.GithubIssueLabel{}.TableName(), models.GithubRepoAccount{}.TableName(), models.GithubIssueAssignee{}.TableName()}, }
View Source
var ExtractApiPrReviewCommentsMeta = plugin.SubTaskMeta{ Name: "Extract PR Review Comments", EntryPoint: ExtractApiPrReviewComments, EnabledByDefault: true, Description: "Extract raw comment data into tool layer table github_pull_request_comments" + "and github_issue_comments", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{RAW_PR_REVIEW_COMMENTS_TABLE}, ProductTables: []string{ models.GithubRepoAccount{}.TableName(), models.GithubPrCommit{}.TableName()}, }
View Source
var ExtractApiPullRequestCommitsMeta = plugin.SubTaskMeta{ Name: "Extract PR Commits", EntryPoint: ExtractApiPullRequestCommits, EnabledByDefault: true, Description: "Extract raw PullRequestCommits data into tool layer table github_commits", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{RAW_PR_COMMIT_TABLE}, ProductTables: []string{ models.GithubRepoCommit{}.TableName(), models.GithubCommit{}.TableName(), models.GithubPrCommit{}.TableName()}, }
View Source
var ExtractApiPullRequestReviewsMeta = plugin.SubTaskMeta{ Name: "Extract PR Reviews", EntryPoint: ExtractApiPullRequestReviews, EnabledByDefault: true, Description: "Extract raw PullRequestReviewers data into tool layer table github_reviewers", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{RAW_PR_REVIEW_TABLE}, ProductTables: []string{ models.GithubRepoAccount{}.TableName(), models.GithubReviewer{}.TableName(), models.GithubPrReview{}.TableName()}, }
View Source
var ExtractApiPullRequestsMeta = plugin.SubTaskMeta{ Name: "Extract Pull Requests", EntryPoint: ExtractApiPullRequests, EnabledByDefault: true, Description: "Extract raw PullRequests data into tool layer table github_pull_requests", DomainTypes: []string{plugin.DOMAIN_TYPE_CROSS, plugin.DOMAIN_TYPE_CODE_REVIEW}, DependencyTables: []string{RAW_PULL_REQUEST_TABLE}, ProductTables: []string{ models.GithubRepoAccount{}.TableName(), models.GithubPrLabel{}.TableName(), models.GithubPullRequest{}.TableName()}, }
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}, DependencyTables: []string{RAW_JOB_TABLE}, ProductTables: []string{models.GithubJob{}.TableName()}, }
View Source
var ExtractMilestonesMeta = plugin.SubTaskMeta{ Name: "Extract Milestones", EntryPoint: ExtractMilestones, EnabledByDefault: true, Description: "Extract raw milestone data into tool layer table github_milestones", DomainTypes: []string{plugin.DOMAIN_TYPE_TICKET}, DependencyTables: []string{RAW_MILESTONE_TABLE}, ProductTables: []string{models.GithubMilestone{}.TableName()}, }
View Source
var ExtractRunsMeta = plugin.SubTaskMeta{ Name: "Extract Workflow Runs", EntryPoint: ExtractRuns, EnabledByDefault: true, Description: "Extract raw run data into tool layer table github_runs", DomainTypes: []string{plugin.DOMAIN_TYPE_CICD}, DependencyTables: []string{RAW_RUN_TABLE}, ProductTables: []string{models.GithubRun{}.TableName()}, }
View Source
var SubTaskMetaList []*plugin.SubTaskMeta
Functions ¶
func CollectAccountOrg ¶
func CollectAccountOrg(taskCtx plugin.SubTaskContext) errors.Error
func CollectAccounts ¶
func CollectAccounts(taskCtx plugin.SubTaskContext) errors.Error
func CollectApiComments ¶
func CollectApiComments(taskCtx plugin.SubTaskContext) errors.Error
func CollectApiCommitStats ¶
func CollectApiCommitStats(taskCtx plugin.SubTaskContext) errors.Error
func CollectApiCommits ¶
func CollectApiCommits(taskCtx plugin.SubTaskContext) errors.Error
func CollectApiEvents ¶
func CollectApiEvents(taskCtx plugin.SubTaskContext) errors.Error
func CollectApiIssues ¶
func CollectApiIssues(taskCtx plugin.SubTaskContext) errors.Error
func CollectApiMilestones ¶
func CollectApiMilestones(taskCtx plugin.SubTaskContext) errors.Error
func CollectApiPullRequestCommits ¶
func CollectApiPullRequestCommits(taskCtx plugin.SubTaskContext) errors.Error
func CollectApiPullRequestReviews ¶
func CollectApiPullRequestReviews(taskCtx plugin.SubTaskContext) errors.Error
func CollectApiPullRequests ¶
func CollectApiPullRequests(taskCtx plugin.SubTaskContext) errors.Error
func CollectJobs ¶
func CollectJobs(taskCtx plugin.SubTaskContext) errors.Error
func CollectPrReviewComments ¶
func CollectPrReviewComments(taskCtx plugin.SubTaskContext) errors.Error
func CollectRuns ¶
func CollectRuns(taskCtx plugin.SubTaskContext) errors.Error
func ConvertAccounts ¶
func ConvertAccounts(taskCtx plugin.SubTaskContext) errors.Error
func ConvertCommits ¶
func ConvertCommits(taskCtx plugin.SubTaskContext) errors.Error
func ConvertDeployment ¶
func ConvertDeployment(taskCtx plugin.SubTaskContext) errors.Error
ConvertDeployment should be split into two task theoretically But in GitHub, all deployments have commits, so there is no need to change it.
func ConvertIssueAssignee ¶
func ConvertIssueAssignee(taskCtx plugin.SubTaskContext) errors.Error
func ConvertIssueComments ¶
func ConvertIssueComments(taskCtx plugin.SubTaskContext) errors.Error
func ConvertIssueLabels ¶
func ConvertIssueLabels(taskCtx plugin.SubTaskContext) errors.Error
func ConvertIssues ¶
func ConvertIssues(taskCtx plugin.SubTaskContext) errors.Error
func ConvertJobs ¶
func ConvertJobs(taskCtx plugin.SubTaskContext) (err errors.Error)
func ConvertMilestones ¶
func ConvertMilestones(taskCtx plugin.SubTaskContext) errors.Error
func ConvertPullRequestComments ¶
func ConvertPullRequestComments(taskCtx plugin.SubTaskContext) errors.Error
func ConvertPullRequestCommits ¶
func ConvertPullRequestCommits(taskCtx plugin.SubTaskContext) (err errors.Error)
func ConvertPullRequestIssues ¶
func ConvertPullRequestIssues(taskCtx plugin.SubTaskContext) errors.Error
func ConvertPullRequestLabels ¶
func ConvertPullRequestLabels(taskCtx plugin.SubTaskContext) errors.Error
func ConvertPullRequestReviews ¶
func ConvertPullRequestReviews(taskCtx plugin.SubTaskContext) errors.Error
func ConvertPullRequests ¶
func ConvertPullRequests(taskCtx plugin.SubTaskContext) errors.Error
func ConvertRepo ¶
func ConvertRepo(taskCtx plugin.SubTaskContext) errors.Error
func ConvertRuns ¶
func ConvertRuns(taskCtx plugin.SubTaskContext) errors.Error
func CreateApiClient ¶
func CreateApiClient(taskCtx plugin.TaskContext, connection *models.GithubConnection) (*api.ApiAsyncClient, errors.Error)
func EnrichPullRequestIssues ¶
func EnrichPullRequestIssues(taskCtx plugin.SubTaskContext) (err errors.Error)
func ExtractAccountOrg ¶
func ExtractAccountOrg(taskCtx plugin.SubTaskContext) errors.Error
func ExtractAccounts ¶
func ExtractAccounts(taskCtx plugin.SubTaskContext) errors.Error
func ExtractApiComments ¶
func ExtractApiComments(taskCtx plugin.SubTaskContext) errors.Error
func ExtractApiCommitStats ¶
func ExtractApiCommitStats(taskCtx plugin.SubTaskContext) errors.Error
func ExtractApiCommits ¶
func ExtractApiCommits(taskCtx plugin.SubTaskContext) errors.Error
func ExtractApiEvents ¶
func ExtractApiEvents(taskCtx plugin.SubTaskContext) errors.Error
func ExtractApiIssues ¶
func ExtractApiIssues(taskCtx plugin.SubTaskContext) errors.Error
func ExtractApiPrReviewComments ¶
func ExtractApiPrReviewComments(taskCtx plugin.SubTaskContext) errors.Error
func ExtractApiPullRequestCommits ¶
func ExtractApiPullRequestCommits(taskCtx plugin.SubTaskContext) errors.Error
func ExtractApiPullRequestReviews ¶
func ExtractApiPullRequestReviews(taskCtx plugin.SubTaskContext) errors.Error
func ExtractApiPullRequests ¶
func ExtractApiPullRequests(taskCtx plugin.SubTaskContext) errors.Error
func ExtractJobs ¶
func ExtractJobs(taskCtx plugin.SubTaskContext) errors.Error
func ExtractMilestones ¶
func ExtractMilestones(taskCtx plugin.SubTaskContext) errors.Error
func ExtractRuns ¶
func ExtractRuns(taskCtx plugin.SubTaskContext) errors.Error
func RegisterSubtaskMeta ¶
func RegisterSubtaskMeta(meta *plugin.SubTaskMeta)
func ValidateTaskOptions ¶
func ValidateTaskOptions(op *GithubOptions) errors.Error
Types ¶
type ApiSingleCommitResponse ¶
type Commit ¶
type Commit struct {
Author struct {
Name string
Email string
Date common.Iso8601Time
}
Committer struct {
Name string
Email string
Date common.Iso8601Time
}
Message string
}
type CommitsResponse ¶
type CommitsResponse struct {
Sha string `json:"sha"`
Commit Commit
Url string
Author *models.GithubAccount
Committer *models.GithubAccount
}
type DetailGithubAccountResponse ¶
type DetailGithubAccountResponse struct {
GithubAccountResponse
Name string `json:"name"`
Company string `json:"company"`
Blog string `json:"blog"`
Location string `json:"location"`
Email string `json:"email"`
Hireable bool `json:"hireable"`
Bio string `json:"bio"`
TwitterUsername string `json:"twitter_username"`
PublicRepos int `json:"public_repos"`
PublicGists int `json:"public_gists"`
Followers int `json:"followers"`
Following int `json:"following"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type GithubAccountResponse ¶
type GithubAccountResponse struct {
Login string `json:"login"`
Id int `json:"id"`
NodeId string `json:"node_id"`
AvatarUrl string `json:"avatar_url"`
GravatarId string `json:"gravatar_id"`
Url string `json:"url"`
HtmlUrl string `json:"html_url"`
FollowersUrl string `json:"followers_url"`
FollowingUrl string `json:"following_url"`
GistsUrl string `json:"gists_url"`
StarredUrl string `json:"starred_url"`
SubscriptionsUrl string `json:"subscriptions_url"`
OrganizationsUrl string `json:"organizations_url"`
ReposUrl string `json:"repos_url"`
EventsUrl string `json:"events_url"`
ReceivedEventsUrl string `json:"received_events_url"`
Type string `json:"type"`
SiteAdmin bool `json:"site_admin"`
}
type GithubAccountWithOrg ¶
type GithubAccountWithOrg struct {
models.GithubAccount
Login string `json:"login" gorm:"type:varchar(255)"`
common.NoPKModel
}
type GithubApiParams ¶
type GithubApiParams models.GithubApiParams
TODO: avoid touching too many files, should be removed in the future
type GithubApiPullRequest ¶
type GithubApiPullRequest struct {
GithubId int `json:"id"`
Number int `json:"number"`
State string `json:"state"`
Title string `json:"title"`
Body json.RawMessage `json:"body"`
HtmlUrl string `json:"html_url"`
Labels []struct {
Name string `json:"name"`
} `json:"labels"`
Assignee *GithubAccountResponse `json:"assignee"`
User *GithubAccountResponse `json:"user"`
ClosedAt *common.Iso8601Time `json:"closed_at"`
MergedAt *common.Iso8601Time `json:"merged_at"`
GithubCreatedAt common.Iso8601Time `json:"created_at"`
GithubUpdatedAt common.Iso8601Time `json:"updated_at"`
MergeCommitSha string `json:"merge_commit_sha"`
Head struct {
Ref string `json:"ref"`
Sha string `json:"sha"`
Repo *GithubApiRepo `json:"repo"`
} `json:"head"`
Base struct {
Ref string `json:"ref"`
Sha string `json:"sha"`
Repo *GithubApiRepo `json:"repo"`
} `json:"base"`
}
type GithubApiRepo ¶
type GithubApiRepo struct {
Name string `json:"name"`
FullName string `json:"full_name"`
GithubId int `json:"id"`
HTMLUrl string `json:"html_url"`
Language string `json:"language"`
Description string `json:"description"`
Owner *GithubAccountResponse
Parent *GithubApiRepo `json:"parent"`
CreatedAt common.Iso8601Time `json:"created_at"`
UpdatedAt *common.Iso8601Time `json:"updated_at"`
CloneUrl string `json:"clone_url"`
}
type GithubOptions ¶
type GithubOptions struct {
ConnectionId uint64 `json:"connectionId" mapstructure:"connectionId,omitempty"`
ScopeConfigId uint64 `json:"scopeConfigId" mapstructure:"scopeConfigId,omitempty"`
GithubId int `json:"githubId" mapstructure:"githubId,omitempty"`
Owner string `json:"owner" mapstructure:"owner,omitempty"`
Repo string `json:"repo" mapstructure:"repo,omitempty"`
Name string `json:"name" mapstructure:"name,omitempty"`
FullName string `json:"fullName" mapstructure:"fullName,omitempty"`
ScopeConfig *models.GithubScopeConfig `mapstructure:"scopeConfig,omitempty" json:"scopeConfig"`
helper.CollectorOptions `mapstructure:",squash"`
}
func DecodeAndValidateTaskOptions ¶
func DecodeAndValidateTaskOptions(options map[string]interface{}) (*GithubOptions, errors.Error)
func DecodeTaskOptions ¶
func DecodeTaskOptions(options map[string]interface{}) (*GithubOptions, errors.Error)
type GithubRawJobsResult ¶
type GithubRawJobsResult struct {
TotalCount int64 `json:"total_count"`
GithubWorkflowJobs []json.RawMessage `json:"jobs"`
}
type GithubRawRunsResult ¶
type GithubRawRunsResult struct {
TotalCount int `json:"total_count"`
WorkflowRuns []struct {
ID int64 `json:"id"`
Name string `json:"name"`
NodeID string `json:"node_id"`
HeadBranch string `json:"head_branch"`
HeadSha string `json:"head_sha"`
Path string `json:"path"`
DisplayTitle string `json:"display_title"`
RunNumber int `json:"run_number"`
Event string `json:"event"`
Status string `json:"status"`
Conclusion string `json:"conclusion"`
WorkflowID int `json:"workflow_id"`
CheckSuiteID int64 `json:"check_suite_id"`
CheckSuiteNodeID string `json:"check_suite_node_id"`
URL string `json:"url"`
HTMLURL string `json:"html_url"`
PullRequests []struct {
URL string `json:"url"`
ID int `json:"id"`
Number int `json:"number"`
Head struct {
Ref string `json:"ref"`
Sha string `json:"sha"`
Repo struct {
ID int `json:"id"`
URL string `json:"url"`
Name string `json:"name"`
} `json:"repo"`
} `json:"head"`
Base struct {
Ref string `json:"ref"`
Sha string `json:"sha"`
Repo struct {
ID int `json:"id"`
URL string `json:"url"`
Name string `json:"name"`
} `json:"repo"`
} `json:"base"`
} `json:"pull_requests"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Actor struct {
Login string `json:"login"`
ID int `json:"id"`
NodeID string `json:"node_id"`
AvatarURL string `json:"avatar_url"`
GravatarID string `json:"gravatar_id"`
URL string `json:"url"`
HTMLURL string `json:"html_url"`
FollowersURL string `json:"followers_url"`
FollowingURL string `json:"following_url"`
GistsURL string `json:"gists_url"`
StarredURL string `json:"starred_url"`
SubscriptionsURL string `json:"subscriptions_url"`
OrganizationsURL string `json:"organizations_url"`
ReposURL string `json:"repos_url"`
EventsURL string `json:"events_url"`
ReceivedEventsURL string `json:"received_events_url"`
Type string `json:"type"`
SiteAdmin bool `json:"site_admin"`
} `json:"actor"`
RunAttempt int `json:"run_attempt"`
ReferencedWorkflows []any `json:"referenced_workflows"`
RunStartedAt time.Time `json:"run_started_at"`
TriggeringActor struct {
Login string `json:"login"`
ID int `json:"id"`
NodeID string `json:"node_id"`
AvatarURL string `json:"avatar_url"`
GravatarID string `json:"gravatar_id"`
URL string `json:"url"`
HTMLURL string `json:"html_url"`
FollowersURL string `json:"followers_url"`
FollowingURL string `json:"following_url"`
GistsURL string `json:"gists_url"`
StarredURL string `json:"starred_url"`
SubscriptionsURL string `json:"subscriptions_url"`
OrganizationsURL string `json:"organizations_url"`
ReposURL string `json:"repos_url"`
EventsURL string `json:"events_url"`
ReceivedEventsURL string `json:"received_events_url"`
Type string `json:"type"`
SiteAdmin bool `json:"site_admin"`
} `json:"triggering_actor"`
JobsURL string `json:"jobs_url"`
LogsURL string `json:"logs_url"`
CheckSuiteURL string `json:"check_suite_url"`
ArtifactsURL string `json:"artifacts_url"`
CancelURL string `json:"cancel_url"`
RerunURL string `json:"rerun_url"`
PreviousAttemptURL any `json:"previous_attempt_url"`
WorkflowURL string `json:"workflow_url"`
HeadCommit struct {
ID string `json:"id"`
TreeID string `json:"tree_id"`
Message string `json:"message"`
Timestamp time.Time `json:"timestamp"`
Author struct {
Name string `json:"name"`
Email string `json:"email"`
} `json:"author"`
Committer struct {
Name string `json:"name"`
Email string `json:"email"`
} `json:"committer"`
} `json:"head_commit"`
Repository struct {
ID int `json:"id"`
NodeID string `json:"node_id"`
Name string `json:"name"`
FullName string `json:"full_name"`
Private bool `json:"private"`
Owner struct {
Login string `json:"login"`
ID int `json:"id"`
NodeID string `json:"node_id"`
AvatarURL string `json:"avatar_url"`
GravatarID string `json:"gravatar_id"`
URL string `json:"url"`
HTMLURL string `json:"html_url"`
FollowersURL string `json:"followers_url"`
FollowingURL string `json:"following_url"`
GistsURL string `json:"gists_url"`
StarredURL string `json:"starred_url"`
SubscriptionsURL string `json:"subscriptions_url"`
OrganizationsURL string `json:"organizations_url"`
ReposURL string `json:"repos_url"`
EventsURL string `json:"events_url"`
ReceivedEventsURL string `json:"received_events_url"`
Type string `json:"type"`
SiteAdmin bool `json:"site_admin"`
} `json:"owner"`
HTMLURL string `json:"html_url"`
Description string `json:"description"`
Fork bool `json:"fork"`
URL string `json:"url"`
ForksURL string `json:"forks_url"`
KeysURL string `json:"keys_url"`
CollaboratorsURL string `json:"collaborators_url"`
TeamsURL string `json:"teams_url"`
HooksURL string `json:"hooks_url"`
IssueEventsURL string `json:"issue_events_url"`
EventsURL string `json:"events_url"`
AssigneesURL string `json:"assignees_url"`
BranchesURL string `json:"branches_url"`
TagsURL string `json:"tags_url"`
BlobsURL string `json:"blobs_url"`
GitTagsURL string `json:"git_tags_url"`
GitRefsURL string `json:"git_refs_url"`
TreesURL string `json:"trees_url"`
StatusesURL string `json:"statuses_url"`
LanguagesURL string `json:"languages_url"`
StargazersURL string `json:"stargazers_url"`
ContributorsURL string `json:"contributors_url"`
SubscribersURL string `json:"subscribers_url"`
SubscriptionURL string `json:"subscription_url"`
CommitsURL string `json:"commits_url"`
GitCommitsURL string `json:"git_commits_url"`
CommentsURL string `json:"comments_url"`
IssueCommentURL string `json:"issue_comment_url"`
ContentsURL string `json:"contents_url"`
CompareURL string `json:"compare_url"`
MergesURL string `json:"merges_url"`
ArchiveURL string `json:"archive_url"`
DownloadsURL string `json:"downloads_url"`
IssuesURL string `json:"issues_url"`
PullsURL string `json:"pulls_url"`
MilestonesURL string `json:"milestones_url"`
NotificationsURL string `json:"notifications_url"`
LabelsURL string `json:"labels_url"`
ReleasesURL string `json:"releases_url"`
DeploymentsURL string `json:"deployments_url"`
} `json:"repository"`
HeadRepository struct {
ID int `json:"id"`
NodeID string `json:"node_id"`
Name string `json:"name"`
FullName string `json:"full_name"`
Private bool `json:"private"`
Owner struct {
Login string `json:"login"`
ID int `json:"id"`
NodeID string `json:"node_id"`
AvatarURL string `json:"avatar_url"`
GravatarID string `json:"gravatar_id"`
URL string `json:"url"`
HTMLURL string `json:"html_url"`
FollowersURL string `json:"followers_url"`
FollowingURL string `json:"following_url"`
GistsURL string `json:"gists_url"`
StarredURL string `json:"starred_url"`
SubscriptionsURL string `json:"subscriptions_url"`
OrganizationsURL string `json:"organizations_url"`
ReposURL string `json:"repos_url"`
EventsURL string `json:"events_url"`
ReceivedEventsURL string `json:"received_events_url"`
Type string `json:"type"`
SiteAdmin bool `json:"site_admin"`
} `json:"owner"`
HTMLURL string `json:"html_url"`
Description string `json:"description"`
Fork bool `json:"fork"`
URL string `json:"url"`
ForksURL string `json:"forks_url"`
KeysURL string `json:"keys_url"`
CollaboratorsURL string `json:"collaborators_url"`
TeamsURL string `json:"teams_url"`
HooksURL string `json:"hooks_url"`
IssueEventsURL string `json:"issue_events_url"`
EventsURL string `json:"events_url"`
AssigneesURL string `json:"assignees_url"`
BranchesURL string `json:"branches_url"`
TagsURL string `json:"tags_url"`
BlobsURL string `json:"blobs_url"`
GitTagsURL string `json:"git_tags_url"`
GitRefsURL string `json:"git_refs_url"`
TreesURL string `json:"trees_url"`
StatusesURL string `json:"statuses_url"`
LanguagesURL string `json:"languages_url"`
StargazersURL string `json:"stargazers_url"`
ContributorsURL string `json:"contributors_url"`
SubscribersURL string `json:"subscribers_url"`
SubscriptionURL string `json:"subscription_url"`
CommitsURL string `json:"commits_url"`
GitCommitsURL string `json:"git_commits_url"`
CommentsURL string `json:"comments_url"`
IssueCommentURL string `json:"issue_comment_url"`
ContentsURL string `json:"contents_url"`
CompareURL string `json:"compare_url"`
MergesURL string `json:"merges_url"`
ArchiveURL string `json:"archive_url"`
DownloadsURL string `json:"downloads_url"`
IssuesURL string `json:"issues_url"`
PullsURL string `json:"pulls_url"`
MilestonesURL string `json:"milestones_url"`
NotificationsURL string `json:"notifications_url"`
LabelsURL string `json:"labels_url"`
ReleasesURL string `json:"releases_url"`
DeploymentsURL string `json:"deployments_url"`
} `json:"head_repository"`
} `json:"workflow_runs"`
}
type GithubTaskData ¶
type GithubTaskData struct {
Options *GithubOptions
ApiClient *helper.ApiAsyncClient
GraphqlClient *helper.GraphqlAsyncClient
RegexEnricher *helper.RegexEnricher
}
func CreateRawDataSubTaskArgs ¶
func CreateRawDataSubTaskArgs(taskCtx plugin.SubTaskContext, table string) (*api.RawDataSubTaskArgs, *GithubTaskData)
type IssueComment ¶
type IssueComment struct {
GithubId int `json:"id"`
Body json.RawMessage
User *GithubAccountResponse
IssueUrl string `json:"issue_url"`
GithubCreatedAt common.Iso8601Time `json:"created_at"`
GithubUpdatedAt common.Iso8601Time `json:"updated_at"`
}
type IssueEvent ¶
type IssueEvent struct {
GithubId int `json:"id"`
Event string
Actor *GithubAccountResponse
Issue struct {
Id int
}
GithubCreatedAt common.Iso8601Time `json:"created_at"`
}
type IssueRegexes ¶
type IssueRegexes struct {
SeverityRegex *regexp.Regexp
ComponentRegex *regexp.Regexp
PriorityRegex *regexp.Regexp
TypeBugRegex *regexp.Regexp
TypeRequirementRegex *regexp.Regexp
TypeIncidentRegex *regexp.Regexp
}
func NewIssueRegexes ¶
func NewIssueRegexes(config *models.GithubScopeConfig) (*IssueRegexes, errors.Error)
type IssuesResponse ¶
type IssuesResponse struct {
GithubId int `json:"id"`
Number int
State string
Title string
Body json.RawMessage
HtmlUrl string `json:"html_url"`
PullRequest struct {
Url string `json:"url"`
HtmlUrl string `json:"html_url"`
} `json:"pull_request"`
Labels []struct {
Name string `json:"name"`
} `json:"labels"`
Assignee *GithubAccountResponse `json:"assignee"`
Assignees []GithubAccountResponse `json:"assignees"`
User *GithubAccountResponse
Milestone *struct {
Id int
}
ClosedAt *common.Iso8601Time `json:"closed_at"`
GithubCreatedAt common.Iso8601Time `json:"created_at"`
GithubUpdatedAt common.Iso8601Time `json:"updated_at"`
}
type MilestoneConverterModel ¶
type MilestoneConverterModel struct {
common.RawDataOrigin
models.GithubMilestone
GithubId int
}
type MilestonesResponse ¶
type MilestonesResponse struct {
Url string `json:"url"`
HtmlUrl string `json:"html_url"`
LabelsUrl string `json:"labels_url"`
Id int `json:"id"`
NodeId string `json:"node_id"`
Number int `json:"number"`
Title string `json:"title"`
Description string `json:"description"`
Creator struct {
Login string `json:"login"`
Id int `json:"id"`
NodeId string `json:"node_id"`
AvatarUrl string `json:"avatar_url"`
GravatarId string `json:"gravatar_id"`
Url string `json:"url"`
HtmlUrl string `json:"html_url"`
FollowersUrl string `json:"followers_url"`
FollowingUrl string `json:"following_url"`
GistsUrl string `json:"gists_url"`
StarredUrl string `json:"starred_url"`
SubscriptionsUrl string `json:"subscriptions_url"`
OrganizationsUrl string `json:"organizations_url"`
ReposUrl string `json:"repos_url"`
EventsUrl string `json:"events_url"`
ReceivedEventsUrl string `json:"received_events_url"`
Type string `json:"type"`
SiteAdmin bool `json:"site_admin"`
} `json:"creator"`
OpenIssues int `json:"open_issues"`
ClosedIssues int `json:"closed_issues"`
State string `json:"state"`
CreatedAt common.Iso8601Time `json:"created_at"`
UpdatedAt common.Iso8601Time `json:"updated_at"`
DueOn *common.Iso8601Time `json:"due_on"`
ClosedAt *common.Iso8601Time `json:"closed_at"`
}
type PrCommitsResponse ¶
type PrCommitsResponse struct {
Sha string `json:"sha"`
Commit PullRequestCommit
Url string
}
type PullRequestCommit ¶
type PullRequestCommit struct {
Author struct {
Id int
Name string
Email string
Date common.Iso8601Time
}
Committer struct {
Name string
Email string
Date common.Iso8601Time
}
Message json.RawMessage
}
type PullRequestReview ¶
type PullRequestReview struct {
GithubId int `json:"id"`
User *GithubAccountResponse
Body string
State string
CommitId string `json:"commit_id"`
SubmittedAt common.Iso8601Time `json:"submitted_at"`
}
type SimpleAccount ¶
type SimpleAccount struct {
Login string
}
type SimpleAccountWithId ¶
type SimpleBranch ¶
type SimpleBranch struct {
HeadBranch string `json:"head_branch" gorm:"type:varchar(255)"`
}
type SimpleGithubApiEvents ¶
type SimpleGithubApiEvents struct {
GithubId int64
CreatedAt common.Iso8601Time `json:"created_at"`
}
type SimpleGithubApiJob ¶
type SimpleGithubApiJob struct {
ID int64
CreatedAt common.Iso8601Time `json:"created_at"`
}
type SimpleGithubApiPr ¶
type SimpleGithubPr ¶
type SimpleGithubPr struct {
Number int64
}
type SimpleGithubRun ¶
type SimpleGithubRun struct {
ID int64
}
Source Files
¶
- account_collector.go
- account_convertor.go
- account_extractor.go
- account_org_collector.go
- account_org_extractor.go
- account_pre_extractor.go
- api_client.go
- cicd_job_collector.go
- cicd_job_convertor.go
- cicd_job_extractor.go
- cicd_run_collector.go
- cicd_run_convertor.go
- cicd_run_extractor.go
- comment_collector.go
- comment_extractor.go
- commit_collector.go
- commit_convertor.go
- commit_extractor.go
- commit_stats_collector.go
- commit_stats_extractor.go
- deployment_convertor.go
- event_collector.go
- event_extractor.go
- issue_assignee_convertor.go
- issue_collector.go
- issue_comment_convertor.go
- issue_convertor.go
- issue_extractor.go
- issue_label_convertor.go
- milestone_collector.go
- milestone_converter.go
- milestone_extractor.go
- pr_collector.go
- pr_comment_convertor.go
- pr_commit_collector.go
- pr_commit_convertor.go
- pr_commit_extractor.go
- pr_convertor.go
- pr_extractor.go
- pr_issue_convertor.go
- pr_issue_enricher.go
- pr_label_convertor.go
- pr_review_collector.go
- pr_review_comment_collector.go
- pr_review_comment_extractor.go
- pr_review_convertor.go
- pr_review_extractor.go
- register.go
- repo_convertor.go
- shared.go
- task_data.go
Click to show internal directories.
Click to hide internal directories.