gitlab

package
v0.22.2 Latest Latest
Warning

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

Go to latest
Published: Sep 1, 2021 License: CC0-1.0 Imports: 16 Imported by: 0

Documentation

Overview

Package gitlab is an internal wrapper for the go-gitlab package

Most functions serve to expose debug logging if set and accept a project name string over an ID.

Index

Constants

View Source
const (
	TmplMR    = "merge_request_templates/default.md"
	TmplIssue = "issue_templates/default.md"
)

Defines filepath for default GitLab templates

Variables

View Source
var (
	// ErrActionRepeated is returned when a GitLab action is executed again.  For example
	// this can be returned when an MR is approved twice.
	ErrActionRepeated = errors.New("GitLab action repeated")
	// ErrGroupNotFound is returned when a GitLab group cannot be found.
	ErrGroupNotFound = errors.New("GitLab group not found")
	// ErrNotModified is returned when adding an already existing item to a Todo list
	ErrNotModified = errors.New("Not Modified")
	// ErrProjectNotFound is returned when a GitLab project cannot be found.
	ErrProjectNotFound = errors.New("GitLab project not found, verify you have access to the requested resource")
	// ErrStatusForbidden is returned when attempting to access a GitLab project with insufficient permissions
	ErrStatusForbidden = errors.New("Insufficient permissions for GitLab project")
)

Functions

func AddIssueDiscussionNote added in v0.22.1

func AddIssueDiscussionNote(project string, issueNum int, discussionID string, body string) (string, error)

AddIssueDiscussionNote adds a note to an existing issue discussion on GitLab

func AddMRDiscussionNote added in v0.22.1

func AddMRDiscussionNote(project string, mrNum int, discussionID string, body string) (string, error)

AddMRDiscussionNote adds a note to an existing MR discussion on GitLab

func BranchList added in v0.22.1

func BranchList(project string, opts *gitlab.ListBranchesOptions) ([]*gitlab.Branch, error)

BranchList get all branches from the project that somehow matches the requested options

func CIArtifacts added in v0.22.1

func CIArtifacts(pid interface{}, id int, name, path string, followBridge bool, bridgeName string) (io.Reader, string, error)

CIArtifacts searches by name for a job and returns its artifacts archive together with the upstream filename. If path is specified and refers to a single file within the artifacts archive, that file is returned instead. If no name is provided, the last job with an artifacts file is picked.

func CICancel added in v0.12.0

func CICancel(pid interface{}, jobID int) (*gitlab.Job, error)

CICancel cancels a job for a given project by its ID.

func CICreate added in v0.13.0

func CICreate(pid interface{}, opts *gitlab.CreatePipelineOptions) (*gitlab.Pipeline, error)

CICreate creates a pipeline for given ref

func CIPlayOrRetry added in v0.12.0

func CIPlayOrRetry(pid interface{}, jobID int, status string) (*gitlab.Job, error)

CIPlayOrRetry runs a job either by playing it for the first time or by retrying it based on the currently known job state

func CITrace added in v0.11.0

func CITrace(pid interface{}, id int, name string, followBridge bool, bridgeName string) (io.Reader, *gitlab.Job, error)

CITrace searches by name for a job and returns its trace file. The trace is static so may only be a portion of the logs if the job is till running. If no name is provided job is picked using the first available: 1. Last Running Job 2. First Pending Job 3. Last Job in Pipeline

func CITrigger added in v0.13.0

func CITrigger(pid interface{}, opts gitlab.RunPipelineTriggerOptions) (*gitlab.Pipeline, error)

CITrigger triggers a pipeline for given ref

func CreateCommitComment added in v0.22.1

func CreateCommitComment(project string, sha string, newFile string, oldFile string, line int, linetype string, comment string) (string, error)

func CreateMergeRequestCommitDiscussion added in v0.22.1

func CreateMergeRequestCommitDiscussion(project string, mrID int, sha string, newFile string, oldFile string, line int, linetype string, comment string) (string, error)

func FindProject

func FindProject(project string) (*gitlab.Project, error)

FindProject looks up the Gitlab project. If the namespace is not provided in the project string it will search for projects in the users namespace

func Fork

func Fork(project string, opts *gitlab.ForkProjectOptions, useHTTP bool, wait bool) (string, error)

Fork creates a user fork of a GitLab project using the specified protocol

func GetCommit added in v0.22.1

func GetCommit(pid interface{}, ref string) (*gitlab.Commit, error)

GetCommit returns top Commit by ref (hash, branch or tag).

func GetCommitDiff added in v0.22.1

func GetCommitDiff(project string, sha string) ([]*gitlab.Diff, error)

func GetMRApprovalsConfiguration added in v0.22.1

func GetMRApprovalsConfiguration(project string, mrNum int) (*gitlab.MergeRequestApprovals, error)

GetMRApprovalsConfiguration returns the current MR approval rule

func GetProject added in v0.10.0

func GetProject(projectID interface{}) (*gitlab.Project, error)

GetProject looks up a Gitlab project by ID.

func GroupSearch added in v0.22.1

func GroupSearch(query string) (*gitlab.Group, error)

GroupSearch searches for a namespace on GitLab

func Host added in v0.6.0

func Host() string

Host exposes the GitLab scheme://hostname used to interact with the API

func Init added in v0.6.0

func Init(_host, _user, _token string, allowInsecure bool)

Init initializes a gitlab client for use throughout lab.

func InitWithCustomCA added in v0.22.1

func InitWithCustomCA(_host, _user, _token, caFile string) error

InitWithCustomCA open the HTTP client using a custom CA file (a self signed one for instance) instead of relying only on those installed in the current system database

func IssueClose added in v0.8.0

func IssueClose(pid interface{}, id int) error

IssueClose closes an issue on a GitLab project

func IssueCreate

func IssueCreate(project string, opts *gitlab.CreateIssueOptions) (string, error)

IssueCreate opens a new issue on a GitLab project

func IssueCreateNote added in v0.22.1

func IssueCreateNote(project string, issueNum int, opts *gitlab.CreateIssueNoteOptions) (string, error)

IssueCreateNote creates a new note on an issue and returns the note URL

func IssueDuplicate added in v0.22.1

func IssueDuplicate(pid interface{}, id int, dupID string) error

IssueDuplicate closes an issue as duplicate of another

func IssueGet added in v0.7.0

func IssueGet(project interface{}, issueNum int) (*gitlab.Issue, error)

IssueGet retrieves the issue information from a GitLab project

func IssueList

func IssueList(project string, opts gitlab.ListProjectIssuesOptions, n int) ([]*gitlab.Issue, error)

IssueList gets a list of issues on a GitLab Project

func IssueListDiscussions added in v0.22.1

func IssueListDiscussions(project string, issueNum int) ([]*gitlab.Discussion, error)

IssueListDiscussions retrieves the discussions (aka notes & comments) for an issue

func IssueReopen added in v0.22.1

func IssueReopen(pid interface{}, id int) error

IssueReopen reopens a closed issue

func IssueSubscribe added in v0.22.1

func IssueSubscribe(pid interface{}, id int) error

IssueSubscribe subscribes to an issue on a GitLab project

func IssueUnsubscribe added in v0.22.1

func IssueUnsubscribe(pid interface{}, id int) error

IssueUnsubscribe unsubscribes from an issue on a GitLab project

func IssueUpdate added in v0.22.1

func IssueUpdate(project string, issueNum int, opts *gitlab.UpdateIssueOptions) (string, error)

IssueUpdate edits an issue on a GitLab project

func LabelCreate added in v0.22.1

func LabelCreate(project string, opts *gitlab.CreateLabelOptions) error

LabelCreate creates a new project label

func LabelDelete added in v0.22.1

func LabelDelete(project, name string) error

LabelDelete removes a project label

func LabelList added in v0.22.1

func LabelList(project string) ([]*gitlab.Label, error)

LabelList gets a list of labels on a GitLab Project

func Lint added in v0.9.0

func Lint(content string) (bool, error)

Lint validates .gitlab-ci.yml contents

func ListIssuesClosedOnMerge added in v0.22.1

func ListIssuesClosedOnMerge(project string, mrNum int) ([]int, error)

ListIssuesClosedOnMerge retuns a list of issue numbers that were closed by an MR being merged

func ListMRsClosingIssue added in v0.22.1

func ListMRsClosingIssue(project string, issueNum int) ([]int, error)

ListMRsClosingIssue returns a list of MR IDs that has relation to an issue being closed

func ListMRsRelatedToIssue added in v0.22.1

func ListMRsRelatedToIssue(project string, issueNum int) ([]int, error)

ListMRsRelatedToIssue return a list of MR IDs that has any relations to a certain issue

func LoadGitLabTmpl added in v0.5.1

func LoadGitLabTmpl(tmplName string) string

LoadGitLabTmpl loads gitlab templates for use in creating Issues and MRs

https://gitlab.com/help/user/project/description_templates.md#setting-a-default-template-for-issues-and-merge-requests

func MRApprove added in v0.13.0

func MRApprove(pid interface{}, id int) error

MRApprove approves an mr on a GitLab project

func MRClose added in v0.8.0

func MRClose(pid interface{}, id int) error

MRClose closes an mr on a GitLab project

func MRCreate added in v0.8.0

func MRCreate(project string, opts *gitlab.CreateMergeRequestOptions) (string, error)

MRCreate opens a merge request on GitLab

func MRCreateDiscussion added in v0.22.1

func MRCreateDiscussion(project string, mrNum int, opts *gitlab.CreateMergeRequestDiscussionOptions) (string, error)

MRCreateDiscussion creates a discussion on a merge request on GitLab

func MRCreateNote added in v0.22.1

func MRCreateNote(project string, mrNum int, opts *gitlab.CreateMergeRequestNoteOptions) (string, error)

MRCreateNote adds a note to a merge request on GitLab

func MRDelete added in v0.22.1

func MRDelete(project string, mrNum int) error

MRDelete deletes an merge request on a GitLab project

func MRGet added in v0.8.0

func MRGet(project interface{}, mrNum int) (*gitlab.MergeRequest, error)

MRGet retrieves the merge request from GitLab project

func MRList added in v0.8.0

MRList lists the MRs on a GitLab project

func MRListDiscussions added in v0.22.1

func MRListDiscussions(project string, mrNum int) ([]*gitlab.Discussion, error)

MRListDiscussions retrieves the discussions (aka notes & comments) for a merge request

func MRMerge added in v0.8.0

func MRMerge(pid interface{}, id int, opts *gitlab.AcceptMergeRequestOptions) error

MRMerge merges an mr on a GitLab project

func MRRebase added in v0.22.1

func MRRebase(pid interface{}, id int) error

MRRebase merges an mr on a GitLab project

func MRReopen added in v0.22.1

func MRReopen(pid interface{}, id int) error

MRReopen reopen an already close mr on a GitLab project

func MRSubscribe added in v0.22.1

func MRSubscribe(pid interface{}, id int) error

MRSubscribe subscribes to an mr on a GitLab project

func MRThumbDown added in v0.13.0

func MRThumbDown(pid interface{}, id int) error

MRThumbDown places a thumb up/down on a merge request

func MRThumbUp added in v0.13.0

func MRThumbUp(pid interface{}, id int) error

MRThumbUp places a thumb up/down on a merge request

func MRUnapprove added in v0.22.1

func MRUnapprove(pid interface{}, id int) error

MRUnapprove Unapproves a previously approved mr on a GitLab project

func MRUnsubscribe added in v0.22.1

func MRUnsubscribe(pid interface{}, id int) error

MRUnsubscribe unsubscribes from a previously mr on a GitLab project

func MRUpdate added in v0.22.1

func MRUpdate(project string, mrNum int, opts *gitlab.UpdateMergeRequestOptions) (string, error)

MRUpdate edits an merge request on a GitLab project

func MilestoneCreate added in v0.22.1

func MilestoneCreate(project string, opts *gitlab.CreateMilestoneOptions) error

MilestoneCreate creates a new project milestone

func MilestoneDelete added in v0.22.1

func MilestoneDelete(project, name string) error

MilestoneDelete deletes a project milestone

func MilestoneGet added in v0.22.1

func MilestoneGet(project string, name string) (*gitlab.Milestone, error)

MilestoneGet get a specific milestone from the list of available ones

func MilestoneList added in v0.22.1

func MilestoneList(project string, opt *gitlab.ListMilestonesOptions) ([]*gitlab.Milestone, error)

MilestoneList gets a list of milestones on a GitLab Project

func MoveIssue added in v0.22.1

func MoveIssue(project string, issueNum int, dest string) (string, error)

MoveIssue moves one issue from one project to another

func ProjectCreate added in v0.10.0

func ProjectCreate(opts *gitlab.CreateProjectOptions) (*gitlab.Project, error)

ProjectCreate creates a new project on GitLab

func ProjectDelete added in v0.10.0

func ProjectDelete(pid interface{}) error

ProjectDelete creates a new project on GitLab

func ProjectList added in v0.12.0

func ProjectList(opts gitlab.ListProjectsOptions, n int) ([]*gitlab.Project, error)

ProjectList gets a list of projects on GitLab

func ProjectSnippetCreate added in v0.6.0

func ProjectSnippetCreate(pid interface{}, opts *gitlab.CreateProjectSnippetOptions) (*gitlab.Snippet, error)

ProjectSnippetCreate creates a snippet in a project

func ProjectSnippetDelete added in v0.6.0

func ProjectSnippetDelete(pid interface{}, id int) error

ProjectSnippetDelete deletes a project snippet

func ProjectSnippetList added in v0.6.0

func ProjectSnippetList(pid interface{}, opts gitlab.ListProjectSnippetsOptions, n int) ([]*gitlab.Snippet, error)

ProjectSnippetList lists snippets on a project

func ResolveMRDiscussion added in v0.22.1

func ResolveMRDiscussion(project string, mrNum int, discussionID string, noteID int) (string, error)

ResolveMRDiscussion resolves a discussion (blocking thread) based on its ID

func SnippetCreate added in v0.6.0

func SnippetCreate(opts *gitlab.CreateSnippetOptions) (*gitlab.Snippet, error)

SnippetCreate creates a personal snippet

func SnippetDelete added in v0.6.0

func SnippetDelete(id int) error

SnippetDelete deletes a personal snippet

func SnippetList added in v0.6.0

func SnippetList(opts gitlab.ListSnippetsOptions, n int) ([]*gitlab.Snippet, error)

SnippetList lists snippets on a project

func TodoIssueCreate added in v0.22.1

func TodoIssueCreate(project string, issueNum int) (int, error)

TodoIssueCreate create a Todo item for an specific Issue

func TodoList added in v0.22.1

func TodoList(opts gitlab.ListTodosOptions, n int) ([]*gitlab.Todo, error)

TodoList retuns a list of *gitlab.Todo refering to user's Todo list

func TodoMRCreate added in v0.22.1

func TodoMRCreate(project string, mrNum int) (int, error)

TodoMRCreate create a Todo item for an specific MR

func TodoMarkAllDone added in v0.22.1

func TodoMarkAllDone() error

TodoMarkAllDone marks all Todos items as done

func TodoMarkDone added in v0.22.1

func TodoMarkDone(todoNum int) error

TodoMarkDone marks a specific Todo as done

func UpdateIssueDiscussionNote added in v0.22.1

func UpdateIssueDiscussionNote(project string, issueNum int, discussionID string, noteID int, body string) (string, error)

UpdateIssueDiscussionNote updates a specific discussion or note in the specified issue number

func UpdateMRDiscussionNote added in v0.22.1

func UpdateMRDiscussionNote(project string, mrNum int, discussionID string, noteID int, body string) (string, error)

UpdateMRDiscussionNote updates a specific discussion or note in the specified MR ID.

func User

func User() string

User exposes the configured GitLab user

func UserID added in v0.22.1

func UserID() (int, error)

UserID get the current user ID from gitlab server

func UserIDFromEmail added in v0.22.1

func UserIDFromEmail(email string) (int, error)

UserIDFromEmail returns the associated Users ID in GitLab. This is useful for API calls that allow you to reference a user, but only by ID.

func UserIDFromUsername added in v0.12.0

func UserIDFromUsername(username string) (int, error)

UserIDFromUsername returns the associated Users ID in GitLab. This is useful for API calls that allow you to reference a user, but only by ID.

Types

type JobStruct added in v0.22.1

type JobStruct struct {
	Job *gitlab.Job
	// A project ID can either be a string or an integer
	ProjectID interface{}
}

JobStruct maps the project ID to which a certain job belongs to. It's needed due to multi-projects pipeline, which allows jobs from different projects be triggered by the current project. CIJob() is currently the function handling the mapping.

func CIJobs added in v0.11.0

func CIJobs(pid interface{}, id int, followBridge bool, bridgeName string) ([]JobStruct, error)

CIJobs returns a list of jobs in the pipeline with given id. This function by default doesn't follow bridge jobs. The jobs are returned sorted by their CreatedAt time

Jump to

Keyboard shortcuts

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