tasks

package
v0.0.0-...-1fa52ee Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2024 License: Apache-2.0, BSD-2-Clause, ISC, + 1 more Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// https://docs.gitlab.com/ee/api/pipelines.html#list-project-pipelines
	// https://docs.gitlab.com/ee/api/deployments.html#list-project-deployments
	// https://docs.gitlab.com/ee/api/jobs.html#list-project-jobs
	StatusSuccess            = "success"
	StatusFailed             = "failed"
	StatusCanceled           = "canceled"
	StatusRunning            = "running"
	StatusWaitingForResource = "waiting_for_resource"
	StatusPending            = "pending"
	StatusPreparing          = "preparing"
	StatusCreated            = "created"
	StatusManual             = "manual"
	StatusScheduled          = "scheduled"
	StatusSkipped            = "skipped"
	StatusBlocked            = "blocked"
	// the following two status are handle in codes, but cannot be seen in documents.
	StatusCompleted  = "COMPLETED"
	StatusUndeployed = "UNDEPLOYED"
)
View Source
const RAW_COMMIT_TABLE = "gitlab_api_commit"
View Source
const (
	RAW_DEPLOYMENT = "gitlab_api_deployments"
)
View Source
const RAW_ISSUE_TABLE = "gitlab_api_issues"
View Source
const RAW_JOB_TABLE = "gitlab_api_job"
View Source
const RAW_MERGE_REQUEST_COMMITS_TABLE = "gitlab_api_merge_request_commits"
View Source
const RAW_MERGE_REQUEST_DETAIL_TABLE = "gitlab_api_merge_request_details"
View Source
const RAW_MERGE_REQUEST_NOTES_TABLE = "gitlab_api_merge_request_notes"
View Source
const RAW_MERGE_REQUEST_TABLE = "gitlab_api_merge_requests"
View Source
const RAW_PIPELINE_DETAILS_TABLE = "gitlab_api_pipeline_details"
View Source
const RAW_PIPELINE_TABLE = "gitlab_api_pipeline"
View Source
const RAW_PROJECT_TABLE = "gitlab_api_project"
View Source
const RAW_TAG_TABLE = "gitlab_api_tag"
View Source
const RAW_TRIGGER_JOB_TABLE = "gitlab_api_trigger_job"
View Source
const RAW_USER_TABLE = "gitlab_api_users"

Variables

View Source
var CollectAccountsMeta = plugin.SubTaskMeta{
	Name:             "Collect Users",
	EntryPoint:       CollectAccounts,
	EnabledByDefault: true,
	Description:      "collect gitlab users, does not support either timeFilter or diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CROSS},
	Dependencies:     []*plugin.SubTaskMeta{&EnrichMergeRequestsMeta},
}
View Source
var CollectApiCommitsMeta = plugin.SubTaskMeta{
	Name:             "Collect Commits",
	EntryPoint:       CollectApiCommits,
	EnabledByDefault: false,
	Description:      "Collect commit data from gitlab api, does not support either timeFilter or diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertJobMeta},
}
View Source
var CollectApiIssuesMeta = plugin.SubTaskMeta{
	Name:             "Collect Issues",
	EntryPoint:       CollectApiIssues,
	EnabledByDefault: true,
	Description:      "Collect issues data from Gitlab api, supports both timeFilter and diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_TICKET},
	Dependencies:     []*plugin.SubTaskMeta{},
}
View Source
var CollectApiJobsMeta = plugin.SubTaskMeta{
	Name:             "Collect Job Runs",
	EntryPoint:       CollectApiJobs,
	EnabledByDefault: true,
	Description:      "Collect job data from gitlab api, supports both timeFilter and diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiPipelineDetailsMeta},
}
View Source
var CollectApiMergeRequestDetailsMeta = plugin.SubTaskMeta{
	Name:             "Collect MR Details",
	EntryPoint:       CollectApiMergeRequestDetails,
	EnabledByDefault: true,
	Description:      "Collect merge request Details data from gitlab api, supports timeFilter but not diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiMergeRequestsMeta},
}
View Source
var CollectApiMergeRequestsMeta = plugin.SubTaskMeta{
	Name:             "Collect Merge Requests",
	EntryPoint:       CollectApiMergeRequests,
	EnabledByDefault: true,
	Description:      "Collect merge requests data from gitlab api, supports both timeFilter and diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiIssuesMeta},
}
View Source
var CollectApiMrCommitsMeta = plugin.SubTaskMeta{
	Name:             "Collect MR Commits",
	EntryPoint:       CollectApiMergeRequestsCommits,
	EnabledByDefault: true,
	Description:      "Collect merge requests commits data from gitlab api, supports timeFilter but not diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiMrNotesMeta},
}
View Source
var CollectApiMrNotesMeta = plugin.SubTaskMeta{
	Name:             "Collect MR Notes",
	EntryPoint:       CollectApiMergeRequestsNotes,
	EnabledByDefault: true,
	Description:      "Collect merge requests notes data from gitlab api, supports timeFilter but not diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiMergeRequestDetailsMeta},
}
View Source
var CollectApiPipelineDetailsMeta = plugin.SubTaskMeta{
	Name:             "Collect Pipeline Details",
	EntryPoint:       CollectApiPipelineDetails,
	EnabledByDefault: true,
	Description:      "Collect pipeline details data from gitlab api, supports both timeFilter and diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiPipelinesMeta},
}
View Source
var CollectApiPipelinesMeta = plugin.SubTaskMeta{
	Name:             "Collect Pipelines",
	EntryPoint:       CollectApiPipelines,
	EnabledByDefault: true,
	Description:      "Collect pipeline data from gitlab api, supports both timeFilter and diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiMrCommitsMeta},
}
View Source
var CollectApiTriggerJobsMeta = plugin.SubTaskMeta{
	Name:             "Collect Trigger Jobs",
	EntryPoint:       CollectApiTriggerJobs,
	EnabledByDefault: false,
	Description:      "Collect job data from gitlab api, supports both timeFilter and diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiPipelineDetailsMeta},
}
View Source
var CollectDeploymentMeta = plugin.SubTaskMeta{
	Name:             "Collect Deployments",
	EntryPoint:       CollectDeployment,
	EnabledByDefault: true,
	Description:      "Collect gitlab deployment from api into raw layer table",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{},
}
View Source
var CollectTagMeta = plugin.SubTaskMeta{
	Name:             "Collect Tags",
	EntryPoint:       CollectApiTag,
	EnabledByDefault: false,
	Description:      "Collect tag data from gitlab api, does not support either timeFilter or diffSync.",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiMergeRequestDetailsMeta},
}
View Source
var ConvertAccountsMeta = plugin.SubTaskMeta{
	Name:             "Convert Users",
	EntryPoint:       ConvertAccounts,
	EnabledByDefault: true,
	Description:      "Convert tool layer table gitlab_users into  domain layer table accounts",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CROSS},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractAccountsMeta},
}
View Source
var ConvertApiMergeRequestsMeta = plugin.SubTaskMeta{
	Name:             "Convert Merge Requests",
	EntryPoint:       ConvertApiMergeRequests,
	EnabledByDefault: true,
	Description:      "Add domain layer PullRequest according to GitlabMergeRequest",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertProjectMeta},
}
View Source
var ConvertApiMrCommitsMeta = plugin.SubTaskMeta{
	Name:             "Convert MR Commits",
	EntryPoint:       ConvertApiMergeRequestsCommits,
	EnabledByDefault: true,
	Description:      "Add domain layer PullRequestCommit according to GitlabMrCommit",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertMrCommentMeta},
}
View Source
var ConvertCommitsMeta = plugin.SubTaskMeta{
	Name:             "Convert Commits",
	EntryPoint:       ConvertApiCommits,
	EnabledByDefault: false,
	Description:      "Update domain layer commit according to GitlabCommit",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertMrLabelsMeta},
}
View Source
var ConvertDeploymentMeta = plugin.SubTaskMeta{
	Name:             "Convert Deployments",
	EntryPoint:       ConvertDeployment,
	EnabledByDefault: true,
	Description:      "Convert gitlab deployment from tool layer to domain layer",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractDeploymentMeta},
}
View Source
var ConvertDetailPipelineMeta = plugin.SubTaskMeta{
	Name:             "Convert Detail Pipelines",
	EntryPoint:       ConvertDetailPipelines,
	EnabledByDefault: true,
	Description:      "Convert tool layer table gitlab_detail_pipeline into domain layer table pipeline",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertCommitsMeta},
}
View Source
var ConvertIssueAssigneeMeta = plugin.SubTaskMeta{
	Name:             "convert Issue Assignees",
	EntryPoint:       ConvertIssueAssignee,
	EnabledByDefault: true,
	Description:      "Convert tool layer table _tool_gitlab_issue_assignees into  domain layer table issue_assignees",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_TICKET},
}
View Source
var ConvertIssueLabelsMeta = plugin.SubTaskMeta{
	Name:             "Convert Issue Labels",
	EntryPoint:       ConvertIssueLabels,
	EnabledByDefault: true,
	Description:      "Convert tool layer table gitlab_issue_labels into  domain layer table issue_labels",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_TICKET},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertIssuesMeta},
}
View Source
var ConvertIssuesMeta = plugin.SubTaskMeta{
	Name:             "Convert Issues",
	EntryPoint:       ConvertIssues,
	EnabledByDefault: true,
	Description:      "Convert tool layer table gitlab_issues into  domain layer table issues",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_TICKET},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertApiMrCommitsMeta},
}
View Source
var ConvertJobMeta = plugin.SubTaskMeta{
	Name:             "Convert Job Runs",
	EntryPoint:       ConvertJobs,
	EnabledByDefault: true,
	Description:      "Convert tool layer table gitlab_job into domain layer table job",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertPipelineCommitMeta},
}
View Source
var ConvertMrCommentMeta = plugin.SubTaskMeta{
	Name:             "Convert MR Comments",
	EntryPoint:       ConvertMergeRequestComment,
	EnabledByDefault: true,
	Description:      "Add domain layer Comment according to GitlabMrComment",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertApiMergeRequestsMeta},
}
View Source
var ConvertMrLabelsMeta = plugin.SubTaskMeta{
	Name:             "Convert MR Labels",
	EntryPoint:       ConvertMrLabels,
	EnabledByDefault: true,
	Description:      "Convert tool layer table gitlab_mr_labels into  domain layer table pull_request_labels",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertIssueLabelsMeta},
}
View Source
var ConvertPipelineCommitMeta = plugin.SubTaskMeta{
	Name:             "Convert Pipeline Commits",
	EntryPoint:       ConvertPipelineCommits,
	EnabledByDefault: true,
	Description:      "Convert tool layer table gitlab_pipeline_project into domain layer table pipeline",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertDetailPipelineMeta},
}
View Source
var ConvertProjectMeta = plugin.SubTaskMeta{
	Name:             "Convert Projects",
	EntryPoint:       ConvertApiProjects,
	EnabledByDefault: true,
	Description:      "Add domain layer Repo according to GitlabProject",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE, plugin.DOMAIN_TYPE_TICKET},
	Dependencies:     []*plugin.SubTaskMeta{&ConvertAccountsMeta},
}
View Source
var EnrichMergeRequestsMeta = plugin.SubTaskMeta{
	Name:             "Enrich  Merge Requests",
	EntryPoint:       EnrichMergeRequests,
	EnabledByDefault: true,
	Description:      "Enrich merge requests data from GitlabCommit, GitlabMrNote and GitlabMergeRequest",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiJobsMeta},
}
View Source
var ExtractAccountsMeta = plugin.SubTaskMeta{
	Name:             "Extract Users",
	EntryPoint:       ExtractAccounts,
	EnabledByDefault: true,
	Description:      "Extract raw workspace data into tool layer table _tool_gitlab_accounts",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CROSS},
	Dependencies:     []*plugin.SubTaskMeta{&CollectAccountsMeta},
}
View Source
var ExtractApiCommitsMeta = plugin.SubTaskMeta{
	Name:             "Extract Commits",
	EntryPoint:       ExtractApiCommits,
	EnabledByDefault: false,
	Description:      "Extract raw commit data into tool layer table GitlabCommit,GitlabAccount and GitlabProjectCommit",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiCommitsMeta},
}
View Source
var ExtractApiIssuesMeta = plugin.SubTaskMeta{
	Name:             "Extract Issues",
	EntryPoint:       ExtractApiIssues,
	EnabledByDefault: true,
	Description:      "Extract raw Issues data into tool layer table gitlab_issues",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_TICKET},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiIssuesMeta},
}
View Source
var ExtractApiJobsMeta = plugin.SubTaskMeta{
	Name:             "Extract Job Runs",
	EntryPoint:       ExtractApiJobs,
	EnabledByDefault: true,
	Description:      "Extract raw GitlabJob data into tool layer table GitlabPipeline",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiJobsMeta},
}
View Source
var ExtractApiMergeRequestDetailsMeta = plugin.SubTaskMeta{
	Name:             "Extract MR Details",
	EntryPoint:       ExtractApiMergeRequestDetails,
	EnabledByDefault: true,
	Description:      "Extract raw merge request Details data into tool layer table GitlabMergeRequest and GitlabReviewer",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&ExtractApiCommitsMeta},
}
View Source
var ExtractApiMergeRequestsMeta = plugin.SubTaskMeta{
	Name:             "Extract Merge Requests",
	EntryPoint:       ExtractApiMergeRequests,
	EnabledByDefault: true,
	Description:      "Extract raw merge requests data into tool layer table GitlabMergeRequest and GitlabReviewer",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiMergeRequestsMeta},
}
View Source
var ExtractApiMrCommitsMeta = plugin.SubTaskMeta{
	Name:             "Extract MR Commits",
	EntryPoint:       ExtractApiMergeRequestsCommits,
	EnabledByDefault: true,
	Description:      "Extract raw merge requests commit data into tool layer table GitlabMrCommit and GitlabCommit",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiMrCommitsMeta},
}
View Source
var ExtractApiMrNotesMeta = plugin.SubTaskMeta{
	Name:             "Extract MR Notes",
	EntryPoint:       ExtractApiMergeRequestsNotes,
	EnabledByDefault: true,
	Description:      "Extract raw merge requests notes data into tool layer table GitlabMrNote",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE_REVIEW},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiMrNotesMeta},
}
View Source
var ExtractApiPipelineDetailsMeta = plugin.SubTaskMeta{
	Name:             "Extract Pipeline Details",
	EntryPoint:       ExtractApiPipelineDetails,
	EnabledByDefault: true,
	Description:      "Extract raw pipeline details data into tool layer table GitlabPipeline",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiPipelineDetailsMeta},
}
View Source
var ExtractApiPipelinesMeta = plugin.SubTaskMeta{
	Name:             "Extract Pipelines",
	EntryPoint:       ExtractApiPipelines,
	EnabledByDefault: true,
	Description:      "Extract raw pipelines data into tool layer table GitlabPipeline",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiPipelinesMeta},
}
View Source
var ExtractApiTriggerJobsMeta = plugin.SubTaskMeta{
	Name:             "Extract Trigger Jobs",
	EntryPoint:       ExtractApiTriggerJobs,
	EnabledByDefault: true,
	Description:      "Extract raw Gitlab trigger jobs data into tool layer table GitlabPipeline",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&CollectApiTriggerJobsMeta},
}
View Source
var ExtractDeploymentMeta = plugin.SubTaskMeta{
	Name:             "Extract Deployments",
	EntryPoint:       ExtractDeployment,
	EnabledByDefault: true,
	Description:      "Extract gitlab deployment from raw layer to tool layer",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CICD},
	Dependencies:     []*plugin.SubTaskMeta{&CollectDeploymentMeta},
}
View Source
var ExtractTagMeta = plugin.SubTaskMeta{
	Name:             "Extract Tags",
	EntryPoint:       ExtractApiTag,
	EnabledByDefault: false,
	Description:      "Extract raw tag data into tool layer table GitlabTag",
	DomainTypes:      []string{plugin.DOMAIN_TYPE_CODE},
	Dependencies:     []*plugin.SubTaskMeta{&CollectTagMeta},
}
View Source
var SubTaskMetaList []*plugin.SubTaskMeta

Functions

func CollectAccounts

func CollectAccounts(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiCommits

func CollectApiCommits(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiIssues

func CollectApiIssues(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiJobs

func CollectApiJobs(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiMergeRequestDetails

func CollectApiMergeRequestDetails(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiMergeRequests

func CollectApiMergeRequests(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiMergeRequestsCommits

func CollectApiMergeRequestsCommits(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiMergeRequestsNotes

func CollectApiMergeRequestsNotes(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiPipelineDetails

func CollectApiPipelineDetails(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiPipelines

func CollectApiPipelines(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiTag

func CollectApiTag(taskCtx plugin.SubTaskContext) errors.Error

func CollectApiTriggerJobs

func CollectApiTriggerJobs(taskCtx plugin.SubTaskContext) errors.Error

func CollectDeployment

func CollectDeployment(taskCtx plugin.SubTaskContext) errors.Error

func ConvertAccounts

func ConvertAccounts(taskCtx plugin.SubTaskContext) errors.Error

func ConvertApiCommits

func ConvertApiCommits(taskCtx plugin.SubTaskContext) errors.Error

func ConvertApiMergeRequests

func ConvertApiMergeRequests(taskCtx plugin.SubTaskContext) errors.Error

func ConvertApiMergeRequestsCommits

func ConvertApiMergeRequestsCommits(taskCtx plugin.SubTaskContext) errors.Error

func ConvertApiProjects

func ConvertApiProjects(taskCtx plugin.SubTaskContext) errors.Error

func ConvertCommit

func ConvertCommit(commit *GitlabApiCommit) (*models.GitlabCommit, errors.Error)

Convert the API response to our DB model instance

func ConvertDeployment

func ConvertDeployment(taskCtx plugin.SubTaskContext) errors.Error

ConvertDeployment should be split into two task theoretically But in GitLab, all deployments have commits, so there is no need to change it.

func ConvertDetailPipelines

func ConvertDetailPipelines(taskCtx plugin.SubTaskContext) errors.Error

func ConvertIssueAssignee

func ConvertIssueAssignee(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 ConvertMergeRequestComment

func ConvertMergeRequestComment(taskCtx plugin.SubTaskContext) errors.Error

func ConvertMrLabels

func ConvertMrLabels(taskCtx plugin.SubTaskContext) errors.Error

func ConvertPipelineCommits

func ConvertPipelineCommits(taskCtx plugin.SubTaskContext) errors.Error

func CreateGitlabAsyncApiClient

func CreateGitlabAsyncApiClient(
	taskCtx plugin.TaskContext,
	apiClient *api.ApiClient,
	connection *models.GitlabConnection,
) (*api.ApiAsyncClient, errors.Error)

func EnrichMergeRequests

func EnrichMergeRequests(taskCtx plugin.SubTaskContext) errors.Error

func ExtractAccounts

func ExtractAccounts(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiCommits

func ExtractApiCommits(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiIssues

func ExtractApiIssues(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiJobs

func ExtractApiJobs(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiMergeRequestDetails

func ExtractApiMergeRequestDetails(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiMergeRequests

func ExtractApiMergeRequests(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiMergeRequestsCommits

func ExtractApiMergeRequestsCommits(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiMergeRequestsNotes

func ExtractApiMergeRequestsNotes(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiPipelineDetails

func ExtractApiPipelineDetails(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiPipelines

func ExtractApiPipelines(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiTag

func ExtractApiTag(taskCtx plugin.SubTaskContext) errors.Error

func ExtractApiTriggerJobs

func ExtractApiTriggerJobs(taskCtx plugin.SubTaskContext) errors.Error

func ExtractDeployment

func ExtractDeployment(taskCtx plugin.SubTaskContext) errors.Error

func GetAllPipelinesIterator

func GetAllPipelinesIterator(taskCtx plugin.SubTaskContext, collectorWithState *helper.ApiCollectorStateManager) (*helper.DalCursorIterator, errors.Error)

func GetMergeRequestDetailsIterator

func GetMergeRequestDetailsIterator(taskCtx plugin.SubTaskContext, collectorWithState *helper.ApiCollectorStateManager) (*helper.DalCursorIterator, errors.Error)

func GetMergeRequestsIterator

func GetMergeRequestsIterator(taskCtx plugin.SubTaskContext, collectorWithState *helper.ApiCollectorStateManager) (*helper.DalCursorIterator, errors.Error)

func GetOneRawMessageFromResponse

func GetOneRawMessageFromResponse(res *http.Response) ([]json.RawMessage, errors.Error)

func GetPipelinesIterator

func GetPipelinesIterator(taskCtx plugin.SubTaskContext, collectorWithState *helper.ApiCollectorStateManager) (*helper.DalCursorIterator, errors.Error)

func GetQuery

func GetQuery(reqData *helper.RequestData) (url.Values, errors.Error)

func GetRawMessageFromResponse

func GetRawMessageFromResponse(res *http.Response) ([]json.RawMessage, errors.Error)

func GetRawMessageUpdatedAtAfter

func GetRawMessageUpdatedAtAfter(timeAfter *time.Time) func(res *http.Response) ([]json.RawMessage, errors.Error)

func GetTotalPagesFromResponse

func GetTotalPagesFromResponse(res *http.Response, args *helper.ApiCollectorArgs) (int, errors.Error)

func NewGitlabApiClient

func NewGitlabApiClient(taskCtx plugin.TaskContext, connection *models.GitlabConnection) (*api.ApiAsyncClient, errors.Error)

func RegisterSubtaskMeta

func RegisterSubtaskMeta(meta *plugin.SubTaskMeta)

Types

type ApiDetailedStatus

type ApiDetailedStatus struct {
	Icon        string
	Text        string
	Label       string
	Group       string
	Tooltip     string
	HasDetails  bool   `json:"has_details"`
	DetailsPath string `json:"details_path"`
	Favicon     string
}

type ApiJob

type ApiJob struct {
	Id           int `json:"id"`
	Status       string
	Stage        string
	Name         string
	Ref          string
	Tag          bool
	AllowFailure bool `json:"allow_failure"`
	Duration     float64
	WebUrl       string `json:"web_url"`
	Pipeline     struct {
		Id int
	}
	QueuedDuration float64             `json:"queued_duration"`
	CreatedAt      *common.Iso8601Time `json:"created_at"`
	StartedAt      *common.Iso8601Time `json:"started_at"`
	FinishedAt     *common.Iso8601Time `json:"finished_at"`
}

type ApiPipeline

type ApiPipeline struct {
	Id             int `json:"id"`
	Ref            string
	Sha            string
	Status         string
	Tag            bool
	Duration       int
	QueuedDuration *float64 `json:"queued_duration"`
	WebUrl         string   `json:"web_url"`

	CreatedAt  *common.Iso8601Time `json:"created_at"`
	UpdatedAt  *common.Iso8601Time `json:"updated_at"`
	StartedAt  *common.Iso8601Time `json:"started_at"`
	FinishedAt *common.Iso8601Time `json:"finished_at"`

	ApiDetailedStatus
}

type ApiTriggerJob

type ApiTriggerJob struct {
	Id       int `json:"id"`
	Status   string
	Stage    string
	Name     string
	Ref      string
	Duration float64
	Pipeline struct {
		Id int
	}
	CreatedAt  *time.Time `json:"created_at"`
	StartedAt  *time.Time `json:"started_at"`
	FinishedAt *time.Time `json:"finished_at"`
}

type GitlabApiCommit

type GitlabApiCommit struct {
	GitlabId       string `json:"id"`
	Title          string
	Message        string
	ProjectId      int
	ShortId        string             `json:"short_id"`
	AuthorName     string             `json:"author_name"`
	AuthorEmail    string             `json:"author_email"`
	AuthoredDate   common.Iso8601Time `json:"authored_date"`
	CommitterName  string             `json:"committer_name"`
	CommitterEmail string             `json:"committer_email"`
	CommittedDate  common.Iso8601Time `json:"committed_date"`
	WebUrl         string             `json:"web_url"`
	Stats          struct {
		Additions int
		Deletions int
		Total     int
	}
}

type GitlabApiProject

type GitlabApiProject struct {
	GitlabId          int    `json:"id"`
	Name              string `json:"name"`
	Description       string `json:"description"`
	DefaultBranch     string `json:"default_branch"`
	PathWithNamespace string `json:"path_with_namespace"`
	WebUrl            string `json:"web_url"`
	CreatorId         int
	Visibility        string              `json:"visibility"`
	OpenIssuesCount   int                 `json:"open_issues_count"`
	StarCount         int                 `json:"star_count"`
	ForkedFromProject *GitlabApiProject   `json:"forked_from_project"`
	CreatedAt         common.Iso8601Time  `json:"created_at"`
	LastActivityAt    *common.Iso8601Time `json:"last_activity_at"`
	HttpUrlToRepo     string              `json:"http_url_to_repo"`
	Archived          bool                `json:"archived"`
}

type GitlabApiTag

type GitlabApiTag struct {
	Name      string
	Message   string
	Target    string
	Protected bool
	Release   struct {
		TagName     string
		Description string
	}
}

type GitlabDeploymentArtifacts

type GitlabDeploymentArtifacts struct {
	FileType   string `json:"file_type"`
	Size       int    `json:"size"`
	Filename   string `json:"filename"`
	FileFormat any    `json:"file_format"`
}

type GitlabDeploymentCommit

type GitlabDeploymentCommit struct {
	AuthorEmail string     `json:"author_email"`
	AuthorName  string     `json:"author_name"`
	CreatedAt   *time.Time `json:"created_at"`
	ID          string     `json:"id"`
	Message     string     `json:"message"`
	ShortID     string     `json:"short_id"`
	Title       string     `json:"title"`
}

type GitlabDeploymentDeployable

type GitlabDeploymentDeployable struct {
	Commit     GitlabDeploymentCommit   `json:"commit"`
	Coverage   any                      `json:"coverage"`
	CreatedAt  *time.Time               `json:"created_at"`
	FinishedAt *time.Time               `json:"finished_at"`
	ID         int                      `json:"id"`
	Name       string                   `json:"name"`
	Ref        string                   `json:"ref"`
	Runner     any                      `json:"runner"`
	Stage      string                   `json:"stage"`
	StartedAt  *time.Time               `json:"started_at"`
	Status     string                   `json:"status"`
	Tag        bool                     `json:"tag"`
	Project    GitlabDeploymentProject  `json:"project"`
	User       GitlabDeploymentFullUser `json:"user"`
	Pipeline   GitlabDeploymentPipeline `json:"pipeline"`

	AllowFailure bool       `json:"allow_failure"`
	ErasedAt     *time.Time `json:"erased_at"`

	Duration          *float64                    `json:"duration"`
	QueuedDuration    *float64                    `json:"queued_duration"`
	ArtifactsExpireAt *time.Time                  `json:"artifacts_expire_at "`
	TagList           []string                    `json:"tag_list"`
	Artifacts         []GitlabDeploymentArtifacts `json:"artifacts"`
}

type GitlabDeploymentEnvironment

type GitlabDeploymentEnvironment struct {
	ExternalURL string `json:"external_url"`
	ID          int    `json:"id"`
	Name        string `json:"name"`
}

type GitlabDeploymentFullUser

type GitlabDeploymentFullUser struct {
	ID           int        `json:"id"`
	Name         string     `json:"name"`
	Username     string     `json:"username"`
	State        string     `json:"state"`
	AvatarURL    string     `json:"avatar_url"`
	WebURL       string     `json:"web_url"`
	CreatedAt    *time.Time `json:"created_at"`
	Bio          any        `json:"bio"`
	Location     any        `json:"location"`
	PublicEmail  string     `json:"public_email"`
	Skype        string     `json:"skype"`
	Linkedin     string     `json:"linkedin"`
	Twitter      string     `json:"twitter"`
	WebsiteURL   string     `json:"website_url"`
	Organization string     `json:"organization"`
}

type GitlabDeploymentPipeline

type GitlabDeploymentPipeline struct {
	CreatedAt *time.Time `json:"created_at"`
	ID        int        `json:"id"`
	Ref       string     `json:"ref"`
	Sha       string     `json:"sha"`
	Status    string     `json:"status"`
	UpdatedAt *time.Time `json:"updated_at"`
	WebURL    string     `json:"web_url"`
}

type GitlabDeploymentProject

type GitlabDeploymentProject struct {
	CiJobTokenScopeEnabled bool `json:"ci_job_token_scope_enabled"`
}

type GitlabDeploymentResp

type GitlabDeploymentResp struct {
	CreatedAt   time.Time                   `json:"created_at"`
	UpdatedAt   *time.Time                  `json:"updated_at"`
	Status      string                      `json:"status"`
	Deployable  GitlabDeploymentDeployable  `json:"deployable"`
	Environment GitlabDeploymentEnvironment `json:"environment"`
	ID          int                         `json:"id"`
	Iid         int                         `json:"iid"`
	Ref         string                      `json:"ref"`
	Sha         string                      `json:"sha"`
	User        GitlabDeploymentSimpleUser  `json:"user"`
}

type GitlabDeploymentSimpleUser

type GitlabDeploymentSimpleUser struct {
	AvatarURL string `json:"avatar_url"`
	ID        int    `json:"id"`
	Name      string `json:"name"`
	State     string `json:"state"`
	Username  string `json:"username"`
	WebURL    string `json:"web_url"`
}

type GitlabInput

type GitlabInput struct {
	GitlabId int
	Iid      int
}

type GitlabOptions

type GitlabOptions struct {
	ConnectionId            uint64                    `mapstructure:"connectionId" json:"connectionId"`
	ProjectId               int                       `mapstructure:"projectId" json:"projectId"`
	FullName                string                    `mapstructure:"fullName" json:"fullName"`
	ScopeConfigId           uint64                    `mapstructure:"scopeConfigId" json:"scopeConfigId"`
	ScopeConfig             *models.GitlabScopeConfig `mapstructure:"scopeConfig" json:"scopeConfig"`
	helper.CollectorOptions `mapstructure:",squash"`
}

func DecodeAndValidateTaskOptions

func DecodeAndValidateTaskOptions(options map[string]interface{}) (*GitlabOptions, errors.Error)

type GitlabTaskData

type GitlabTaskData struct {
	Options       *GitlabOptions
	ApiClient     *helper.ApiAsyncClient
	ProjectCommit *models.GitlabProjectCommit
	RegexEnricher *helper.RegexEnricher
}

func CreateRawDataSubTaskArgs

func CreateRawDataSubTaskArgs(taskCtx plugin.SubTaskContext, Table string) (*helper.RawDataSubTaskArgs, *GitlabTaskData)

type IssuesResponse

type IssuesResponse struct {
	ProjectId int `json:"project_id"`
	Milestone struct {
		Due_date    string
		Project_id  int
		State       string
		Description string
		Iid         int
		Id          int
		Title       string
		CreatedAt   common.Iso8601Time
		UpdatedAt   common.Iso8601Time
	}
	Author *struct {
		State     string
		WebUrl    string `json:"web_url"`
		AvatarUrl string `json:"avatar_url"`
		Username  string
		Id        int    `json:"id"`
		Name      string `json:"name"`
	}
	Description string
	State       string
	Iid         int
	Assignees   []struct {
		AvatarUrl string `json:"avatar_url"`
		WebUrl    string `json:"web_url"`
		State     string
		Username  string
		Id        int
		Name      string
	}
	Assignee *struct {
		AvatarUrl string
		WebUrl    string
		State     string
		Username  string
		Id        int
		Name      string
	}
	Type               string
	Labels             []string `json:"labels"`
	UpVotes            int
	DownVotes          int
	MergeRequestsCount int
	Id                 int `json:"id"`
	Title              string
	GitlabUpdatedAt    common.Iso8601Time  `json:"updated_at"`
	GitlabCreatedAt    common.Iso8601Time  `json:"created_at"`
	GitlabClosedAt     *common.Iso8601Time `json:"closed_at"`
	ClosedBy           struct {
		State     string
		WebUrl    string
		AvatarUrl string
		Username  string
		Id        int
		Name      string
	}
	UserNotesCount int
	DueDate        common.Iso8601Time
	WebUrl         string `json:"web_url"`
	References     struct {
		Short    string
		Relative string
		Full     string
	}
	TimeStats struct {
		TimeEstimate        *int64
		TotalTimeSpent      *int64
		HumanTimeEstimate   string
		HumanTotalTimeSpent string
	}
	HasTasks         bool
	TaskStatus       string
	Confidential     bool
	DiscussionLocked bool
	IssueType        string
	Severity         string
	Component        string
	Priority         string
	Links            struct {
		Self       string `json:"url"`
		Notes      string
		AwardEmoji string
		Project    string
	}
	TaskCompletionStatus struct {
		Count          int
		CompletedCount int
	}
}

type MergeRequestNote

type MergeRequestNote struct {
	GitlabId        int    `json:"id"`
	MergeRequestId  int    `json:"noteable_id"`
	MergeRequestIid int    `json:"noteable_iid"`
	NoteableType    string `json:"noteable_type"`
	Body            string
	GitlabCreatedAt common.Iso8601Time `json:"created_at"`
	Confidential    bool
	Resolvable      bool `json:"resolvable"`
	System          bool `json:"system"`
	Author          struct {
		Id       int    `json:"id"`
		Username string `json:"username"`
	}
	Type string `json:"type"`
}

type MergeRequestRes

type MergeRequestRes struct {
	GitlabId        int `json:"id"`
	Iid             int
	ProjectId       int `json:"project_id"`
	SourceProjectId int `json:"source_project_id"`
	TargetProjectId int `json:"target_project_id"`
	State           string
	Title           string
	Description     string
	WebUrl          string              `json:"web_url"`
	UserNotesCount  int                 `json:"user_notes_count"`
	WorkInProgress  bool                `json:"work_in_progress"`
	SourceBranch    string              `json:"source_branch"`
	TargetBranch    string              `json:"target_branch"`
	GitlabCreatedAt common.Iso8601Time  `json:"created_at"`
	GitlabUpdatedAt *common.Iso8601Time `json:"updated_at"`
	MergedAt        *common.Iso8601Time `json:"merged_at"`
	ClosedAt        *common.Iso8601Time `json:"closed_at"`
	MergeCommitSha  string              `json:"merge_commit_sha"`
	SquashCommitSha string              `json:"squash_commit_sha"`
	DiffHeadSha     string              `json:"sha"`
	MergedBy        struct {
		Username string `json:"username"`
	} `json:"merged_by"`
	Author struct {
		Id       int    `json:"id"`
		Username string `json:"username"`
	}
	Reviewers        []Reviewer
	FirstCommentTime common.Iso8601Time
	Labels           []string `json:"labels"`
}

type PipelineInput

type PipelineInput struct {
	PipelineId int
}

type Reviewer

type Reviewer struct {
	GitlabId       int `json:"id"`
	MergeRequestId int
	Name           string
	Username       string
	State          string
	AvatarUrl      string `json:"avatar_url"`
	WebUrl         string `json:"web_url"`
}

type SimpleGitlabApiJob

type SimpleGitlabApiJob struct {
	GitlabId  int
	CreatedAt common.Iso8601Time `json:"created_at"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL