Documentation
¶
Overview ¶
Package github implements a simple client to consume gitlab API.
Index ¶
- Constants
- Variables
- func AggregateJobs(jobs []*Job) map[int]map[string]map[string][]*Job
- func PopulateCiInfo(out interface{}) error
- type AcceptMergeRequestRequest
- type AccessLevelInfo
- type ActivityFeed
- type AddMergeRequestRequest
- type ArtifactsFile
- type Badge
- type BadgeCollection
- type Branch
- type BranchCollection
- type BranchCommit
- type BranchesOptions
- type Build
- type ChangeItem
- type CiEnvKey
- type CiInfo
- type Commit
- type CommitActionOptions
- type CommitStatus
- type CreateCommitOptions
- type Environment
- type EnvironmentAddPayload
- type EnvironmentCollection
- type EnvironmentProject
- type FeedCommit
- type Gitlab
- func (g *Gitlab) Activity() (ActivityFeed, error)
- func (g *Gitlab) AddCurrentUserSshKey(title, key string) (*ResponseMeta, error)
- func (g *Gitlab) AddGroup(group *GroupAddPayload) (*GroupWithDetails, *ResponseMeta, error)
- func (g *Gitlab) AddGroupEpicNote(groupId string, epicId int, note *NoteAddPayload) (*Note, *ResponseMeta, error)
- func (g *Gitlab) AddGroupMember(projectId string, opt *MemberOptions) (*Member, *ResponseMeta, error)
- func (g *Gitlab) AddGroupVariable(groupId string, variable *Variable) (*Variable, *ResponseMeta, error)
- func (g *Gitlab) AddIssue(projectId string, req *IssueRequest) (issue *Issue, meta *ResponseMeta, err error)
- func (g *Gitlab) AddMergeRequest(req *AddMergeRequestRequest) (*MergeRequest, error)
- func (g *Gitlab) AddProject(project *ProjectAddPayload) (*Project, *ResponseMeta, error)
- func (g *Gitlab) AddProjectBadge(projectId string, badge *Badge) (*Badge, *ResponseMeta, error)
- func (g *Gitlab) AddProjectBranch(projectId string, branchName, ref string) (*Branch, *ResponseMeta, error)
- func (g *Gitlab) AddProjectDeployKey(id, title, key string) (*ResponseMeta, error)
- func (g *Gitlab) AddProjectEnvironment(projectId string, environment *EnvironmentAddPayload) (*Environment, *ResponseMeta, error)
- func (g *Gitlab) AddProjectHook(projectId string, hook *HookAddPayload) (*Hook, *ResponseMeta, error)
- func (g *Gitlab) AddProjectIssueNote(projectId string, issueIid int, note *NoteAddPayload) (*Note, *ResponseMeta, error)
- func (g *Gitlab) AddProjectMember(projectId string, opt *MemberOptions) (*Member, *ResponseMeta, error)
- func (g *Gitlab) AddProjectMergeRequestNote(projectId string, mergeRequestIid int, note *NoteAddPayload) (*Note, *ResponseMeta, error)
- func (g *Gitlab) AddProjectSnippetNote(projectId string, snippetId int, note *NoteAddPayload) (*Note, *ResponseMeta, error)
- func (g *Gitlab) AddProjectVariable(projectId string, variable *Variable) (*Variable, *ResponseMeta, error)
- func (g *Gitlab) AddUserSshKey(userId, title, key string) (*ResponseMeta, error)
- func (g *Gitlab) CancelProjectJob(projectId string, jobId int) (*Job, *ResponseMeta, error)
- func (g *Gitlab) CreateCommit(id string, commitOpts *CreateCommitOptions) (*Commit, *ResponseMeta, error)
- func (g *Gitlab) CurrentUser() (*User, *ResponseMeta, error)
- func (g *Gitlab) CurrentUserSshKey(id string) (*SshKey, *ResponseMeta, error)
- func (g *Gitlab) CurrentUserSshKeys(o *PaginationOptions) (*SshKeyCollection, *ResponseMeta, error)
- func (g *Gitlab) DeleteCurrentUserSshKey(keyId int) (*ResponseMeta, error)
- func (g *Gitlab) DeleteRunner(id int) (*Runner, *ResponseMeta, error)
- func (g *Gitlab) DeleteUserSshKey(userId, keyId int) (*ResponseMeta, error)
- func (g *Gitlab) DisableProjectRunner(projectId string, id int) (*Runner, *ResponseMeta, error)
- func (g *Gitlab) EditMergeRequest(mr *MergeRequest) error
- func (g *Gitlab) EnableProjectRunner(projectId string, id int) (*Runner, *ResponseMeta, error)
- func (g *Gitlab) EraseProjectJob(projectId string, jobId int) (*Job, *ResponseMeta, error)
- func (g *Gitlab) Group(id string, withCustomAttributes bool) (*GroupWithDetails, *ResponseMeta, error)
- func (g *Gitlab) GroupEpicNote(groupId string, epicId, noteId int) (*Note, *ResponseMeta, error)
- func (g *Gitlab) GroupEpicNotes(groupId string, epicId int, o *NotesOptions) (*NoteCollection, *ResponseMeta, error)
- func (g *Gitlab) GroupMembers(groupId string, o *MembersOptions) (*MemberCollection, *ResponseMeta, error)
- func (g *Gitlab) GroupMergeRequests(groupId int, o *MergeRequestsOptions) (*MergeRequestCollection, *ResponseMeta, error)
- func (g *Gitlab) GroupProjects(id string) ([]*Project, *ResponseMeta, error)
- func (g *Gitlab) GroupVariable(groupId, varKey string) (*Variable, *ResponseMeta, error)
- func (g *Gitlab) GroupVariables(groupId string, o *PaginationOptions) (*VariableCollection, *ResponseMeta, error)
- func (g *Gitlab) Groups(o *GroupsOptions) (*GroupCollection, *ResponseMeta, error)
- func (g *Gitlab) MergeRequests(o *MergeRequestsOptions) (*MergeRequestCollection, *ResponseMeta, error)
- func (g *Gitlab) Namespace(id string) (*Namespace, *ResponseMeta, error)
- func (g *Gitlab) Namespaces(o *NamespacesOptions) (*NamespaceCollection, *ResponseMeta, error)
- func (g *Gitlab) Project(id string, withStatistics bool) (*Project, *ResponseMeta, error)
- func (g *Gitlab) ProjectBadge(projectId string, badgeId int) (*Badge, *ResponseMeta, error)
- func (g *Gitlab) ProjectBadges(projectId string, o *PaginationOptions) (*BadgeCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectBranch(projectId, branchName string) (*Branch, *ResponseMeta, error)
- func (g *Gitlab) ProjectBranches(projectId string, o *BranchesOptions) (*BranchCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectBuildArtifacts(id, buildId string) (io.ReadCloser, error)
- func (g *Gitlab) ProjectCommitBuilds(id, sha1 string) ([]*Build, *ResponseMeta, error)
- func (g *Gitlab) ProjectCommitStatuses(id, sha1 string) ([]*CommitStatus, *ResponseMeta, error)
- func (g *Gitlab) ProjectDeployKey(id, keyId string) (*SshKey, *ResponseMeta, error)
- func (g *Gitlab) ProjectDeployKeys(id string) ([]*SshKey, *ResponseMeta, error)
- func (g *Gitlab) ProjectEnvironments(projectId string, o *PaginationOptions) (*EnvironmentCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectHook(projectId, hookId string) (*Hook, *ResponseMeta, error)
- func (g *Gitlab) ProjectHooks(projectId string) (*HookCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectIssueNote(projectId string, issueIid, noteId int) (*Note, *ResponseMeta, error)
- func (g *Gitlab) ProjectIssueNotes(projectId string, issueIid int, o *NotesOptions) (*NoteCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectJob(projectId string, jobId int) (*Job, *ResponseMeta, error)
- func (g *Gitlab) ProjectJobTrace(projectId string, jobId int) (string, *ResponseMeta, error)
- func (g *Gitlab) ProjectJobs(projectId string, o *JobsOptions) (*JobCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectMembers(projectId string, o *MembersOptions) (*MemberCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectMergeRequest(projectId string, mergeRequestId int) (*MergeRequest, *ResponseMeta, error)
- func (g *Gitlab) ProjectMergeRequestAccept(id, merge_request_id string, req *AcceptMergeRequestRequest) (*MergeRequest, error)
- func (g *Gitlab) ProjectMergeRequestCancelMerge(id, merge_request_id string) (*MergeRequest, *ResponseMeta, error)
- func (g *Gitlab) ProjectMergeRequestChanges(id, merge_request_id string) (*MergeRequestChanges, *ResponseMeta, error)
- func (g *Gitlab) ProjectMergeRequestCommits(id, merge_request_id string) ([]*Commit, *ResponseMeta, error)
- func (g *Gitlab) ProjectMergeRequestNote(projectId string, mergeRequestIid, noteId int) (*Note, *ResponseMeta, error)
- func (g *Gitlab) ProjectMergeRequestNotes(projectId string, mergeRequestIid int, o *NotesOptions) (*NoteCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectMergeRequests(projectId string, o *MergeRequestsOptions) (*MergeRequestCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectPipeline(projectId, pipelineId string) (*PipelineWithDetails, *ResponseMeta, error)
- func (g *Gitlab) ProjectPipelineJobs(projectId string, pipelineId int, o *JobsOptions) (*JobCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectPipelines(projectId string, o *PipelinesOptions) (*PipelineCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectRunners(projectId string, page, per_page int) ([]*Runner, *ResponseMeta, error)
- func (g *Gitlab) ProjectSnippetNote(projectId string, snippetId, noteId int) (*Note, *ResponseMeta, error)
- func (g *Gitlab) ProjectSnippetNotes(projectId string, snippetId int, o *NotesOptions) (*NoteCollection, *ResponseMeta, error)
- func (g *Gitlab) ProjectTag(projectId, tagName string) (*Tag, *ResponseMeta, error)
- func (g *Gitlab) ProjectVariable(projectId, varKey string) (*Variable, *ResponseMeta, error)
- func (g *Gitlab) ProjectVariables(projectId string, o *PaginationOptions) (*VariableCollection, *ResponseMeta, error)
- func (g *Gitlab) Projects(o *ProjectsOptions) (*ProjectCollection, *ResponseMeta, error)
- func (g *Gitlab) ProtectBranch(projectId, branchName string) (*ResponseMeta, error)
- func (g *Gitlab) ProtectedBranches(projectId string, o *PaginationOptions) ([]*ProtectedBranch, *ResponseMeta, error)
- func (g *Gitlab) RemoveGroup(id string) (string, *ResponseMeta, error)
- func (g *Gitlab) RemoveGroupEpicNote(groupId string, epicId, noteId int) (*ResponseMeta, error)
- func (g *Gitlab) RemoveGroupVariable(groupId, varKey string) (*ResponseMeta, error)
- func (g *Gitlab) RemoveProject(id string) (string, *ResponseMeta, error)
- func (g *Gitlab) RemoveProjectBadge(projectId, badgeId string) (*ResponseMeta, error)
- func (g *Gitlab) RemoveProjectBranch(projectId, branchName string) (*ResponseMeta, error)
- func (g *Gitlab) RemoveProjectDeployKey(id, keyId string) (*ResponseMeta, error)
- func (g *Gitlab) RemoveProjectEnvironment(projectId string, id int) (*ResponseMeta, error)
- func (g *Gitlab) RemoveProjectHook(projectId, hookId string) (*ResponseMeta, error)
- func (g *Gitlab) RemoveProjectIssueNote(projectId string, issueIid, noteId int) (*ResponseMeta, error)
- func (g *Gitlab) RemoveProjectMergeRequestNote(projectId string, mergeRequestIid, noteId int) (*ResponseMeta, error)
- func (g *Gitlab) RemoveProjectMergedBranches(projectId string) (string, *ResponseMeta, error)
- func (g *Gitlab) RemoveProjectSnippetNote(projectId string, snippetId, noteId int) (*ResponseMeta, error)
- func (g *Gitlab) RemoveProjectVariable(projectId, varKey string) (*ResponseMeta, error)
- func (g *Gitlab) RemoveUser(id string) (*ResponseMeta, error)
- func (g *Gitlab) RepoActivityFeed(feedPath string) ActivityFeed
- func (g *Gitlab) RepoCommits(id string) ([]*Commit, *ResponseMeta, error)
- func (g *Gitlab) RepoRawFile(id, sha, filepath string) ([]byte, *ResponseMeta, error)
- func (g *Gitlab) RepoTags(id string) ([]*Tag, *ResponseMeta, error)
- func (g *Gitlab) RepoTree(id, path, refName string) ([]*TreeNode, *ResponseMeta, error)
- func (g *Gitlab) ResourceUrl(path string, params map[string]string) *url.URL
- func (g *Gitlab) ResourceUrlQ(path string, params map[string]string, qs interface{}) *url.URL
- func (g *Gitlab) RetryProjectJob(projectId string, jobId int) (*Job, *ResponseMeta, error)
- func (g *Gitlab) Runner(id int) (*RunnerWithDetails, *ResponseMeta, error)
- func (g *Gitlab) Runners(o *RunnersOptions) (*RunnerCollection, *ResponseMeta, error)
- func (g *Gitlab) StarProject(id string) (*Project, *ResponseMeta, error)
- func (g *Gitlab) UnprotectBranch(projectId, branchName string) (*ResponseMeta, error)
- func (g *Gitlab) UnstarProject(id string) (*Project, *ResponseMeta, error)
- func (g *Gitlab) UpdateGroup(id string, group *GroupUpdatePayload) (*GroupWithDetails, error)
- func (g *Gitlab) UpdateGroupMember(projectId, userId string, opt *MemberOptions) (*Member, *ResponseMeta, error)
- func (g *Gitlab) UpdateProject(id string, project *Project) (*Project, *ResponseMeta, error)
- func (g *Gitlab) UpdateProjectMember(projectId, userId string, opt *MemberOptions) (*Member, *ResponseMeta, error)
- func (g *Gitlab) UpdateRunner(id int, runner *Runner) (*Runner, *ResponseMeta, error)
- func (g *Gitlab) User(id string) (*User, *ResponseMeta, error)
- func (g *Gitlab) UserSshKeys(userId int, o *PaginationOptions) (*SshKeyCollection, *ResponseMeta, error)
- func (g *Gitlab) Users(o *UsersOptions) (*UserCollection, *ResponseMeta, error)
- type Group
- type GroupAddPayload
- type GroupCollection
- type GroupUpdatePayload
- type GroupWithDetails
- type GroupsOptions
- type Hook
- type HookAddPayload
- type HookCollection
- type HookObjAttr
- type HookPayload
- type Issue
- type IssueRequest
- type Job
- type JobCollection
- type JobsOptions
- type Link
- type Member
- type MemberCollection
- type MemberOptions
- type MembersOptions
- type MergeRequest
- type MergeRequestChanges
- type MergeRequestCollection
- type MergeRequestScope
- type MergeRequestUser
- type MergeRequestsOptions
- type Milestone
- type MinimalProject
- type Namespace
- type NamespaceCollection
- type NamespacesOptions
- type Note
- type NoteAddPayload
- type NoteCollection
- type NotesOptions
- type PaginationOptions
- type Person
- type Pipeline
- type PipelineCollection
- type PipelineWithDetails
- type PipelinesOptions
- type Project
- type ProjectAddPayload
- type ProjectCollection
- type ProjectGroupSharing
- type ProjectStatistics
- type ProjectsOptions
- type ProjectsOrder
- type ProtectedBranch
- type Renderable
- type ResponseMeta
- type ResponseWithMessage
- type Runner
- type RunnerCollection
- type RunnerScope
- type RunnerWithDetails
- type RunnersOptions
- type SortDirection
- type SortOptions
- type SshKey
- type SshKeyCollection
- type Tag
- type TimeStats
- type TreeNode
- type User
- type UserCollection
- type UserIdentity
- type UsersOptions
- type Variable
- type VariableCollection
- type Visibility
Constants ¶
const ( ProjectBadgesApiPath = "/projects/:id/badges" ProjectBadgeApiPath = "/projects/:id/badges/:badge_id" )
const ( ProjectBranchesApiPath = "/projects/:id/repository/branches" ProjectBranchApiPath = "/projects/:id/repository/branches/:branch" ProjectMergedBranchesApiPath = "/projects/:id/repository/merged_branches" )
const ( ProjectCommitBuildsApiPath = "/projects/:id/repository/commits/:sha/builds" ProjectBuildArtifactsApiPath = "/projects/:id/builds/:build_id/artifacts" )
const ( ProjectCommitStatusesApiPath = "/projects/:id/repository/commits/:sha/statuses" CreateCommitApiPath = "/projects/:id/repository/commits" )
const ( ProjectDeployKeysApiPath = "/projects/:id/keys" ProjectDeployKeyApiPath = "/projects/:id/keys/:key_id" )
const ( ProjectEnvironmentsApiPath = "/projects/:id/environments" ProjectEnvironmentApiPath = "/projects/:id/environments/:environment_id" )
const ( GroupsApiPath = "/groups" GroupApiPath = "/groups/:id" GroupProjectsApiPath = "/groups/:id/projects" )
const ( ProjectHooksApiPath = "/projects/:id/hooks" ProjectHookApiPath = "/projects/:id/hooks/:hook_id" )
const ( ProjectJobsApiPath = "/projects/:id/jobs" ProjectPipelineJobsApiPath = "/projects/:id/pipelines/:pipeline_id/jobs" ProjectJobApiPath = "/projects/:id/jobs/:job_id" ProjectJobTraceApiPath = "/projects/:id/jobs/:job_id/trace" CancelProjectJobApiPath = "/projects/:id/jobs/:job_id/cancel" RetryProjectJobApiPath = "/projects/:id/jobs/:job_id/retry" EraseProjectJobApiPath = "/projects/:id/jobs/:job_id/erase" )
const ( MambersApiPath = "/:type/:id/members" // List group or project team members MamberApiPath = "/:type/:id/members/:user_id" // Get group or project team member AddProjectMember = "/projects/:id/members" // add project member AddGroupMember = "/groups/:id/members" // add group member UpdateProjectMember = "/projects/:id/members/:user_id" // update project member UpdateGroupMember = "/groups/:id/members/:user_id" // update group member MemberActiveState = "active" MemberBlockState = "blocked" )
const ( MergeRequestsApiPath = "/merge_requests" ProjectMergeRequestsApiPath = "/projects/:id/merge_requests" GroupMergeRequestsApiPath = "/groups/:id/merge_requests" ProjectMergeRequestApiPath = "/projects/:id/merge_requests/:merge_request_id" // Get information about a single merge request ProjectMergeRequestCommitsApiPath = "/projects/:id/merge_requests/:merge_request_id/commits" // Get a list of merge request commits ProjectMergeRequestChangesApiPath = "/projects/:id/merge_requests/:merge_request_id/changes" // Shows information about the merge request including its files and changes ProjectMergeRequestMergeApiPath = "/projects/:id/merge_requests/:merge_request_id/merge" // Merge changes submitted with MR ProjectMergeRequestCancelMergeApiPath = "/projects/:id/merge_requests/:merge_request_id/cancel_merge_when_build_succeeds" // Cancel Merge When Build Succeeds ProjectMergeRequestCommentsApiPath = "/projects/:id/merge_requests/:merge_request_id/comments" // Lists all comments associated with a merge request )
const ( NamespacesApiPath = "/namespaces" NamespaceApiPath = "/namespaces/:id" )
const ( ProjectIssueNotesApiPath = "/projects/:id/issues/:issue_iid/notes" ProjectIssueNoteApiPath = "/projects/:id/issues/:issue_iid/notes/:note_id" ProjectSnippetNotesApiPath = "/projects/:id/snippets/:snippet_id/notes" ProjectSnippetNoteApiPath = "/projects/:id/snippets/:snippet_id/notes/:note_id" ProjectMergeRequestNotesApiPath = "/projects/:id/merge_requests/:merge_request_iid/notes" ProjectMergeRequestNoteApiPath = "/projects/:id/merge_requests/:merge_request_iid/notes/:note_id" GroupEpicNotesApiPath = "/groups/:id/epics/:epic_id/notes" GroupEpicNoteApiPath = "/groups/:id/epics/:epic_id/notes/:note_id" )
const ( ProjectPipelinesApiPath = "/projects/:id/pipelines" ProjectPipelineApiPath = "/projects/:id/pipelines/:pipeline_id" )
const ( ProjectsApiPath = "/projects" // Get a list of projects owned by the authenticated user ProjectApiPath = "/projects/:id" // Get a specific project, identified by project ID or NAME StarProjectApiPath = "/projects/:id/star" // Stars a given project. Returns status code 304 if the project is already starred UnstarProjectApiPath = "/projects/:id/unstar" // Unstars a given project. Returns status code 304 if the project is not starred ProjectEventsApiPath = "/projects/:id/events" // Get project events )
const ( ProtectedBranchesApiPath = "/projects/:id/protected_branches" // Gets a list of protected branches from a project. ProtectBranchApiPath = "/projects/:id/repository/branches/:branch/protect" // Protects a single project repository branch. UnprotectBranchApiPath = "/projects/:id/repository/branches/:branch/unprotect" // Unprotects a single project repository branch. )
const ( RepositoryTagsApiPath = "/projects/:id/repository/tags" // List project repository tags RepositoryCommitsApiPath = "/projects/:id/repository/commits" // List repository commits RepositoryTreeApiPath = "/projects/:id/repository/tree" // List repository tree RawRepositoryFileApiPath = "/projects/:id/repository/blobs/:sha" // Get raw file content for specific commit/branch )
const ( RunnersApiPath = "/runners" // Get current users runner list. AllRunnersApiPath = "/runners/all" // Get ALL runners list. RunnerApiPath = "/runners/:id" // Get a single runner. ProjectRunnersApiPath = "/projects/:project_id/runners" // Get ALL project runners. ProjectRunnerApiPath = "/projects/:project_id/runners/:id" // Get a single project runner. )
const ( CurrentUserSshKeysApiPath = "/user/keys" UserSshKeysApiPath = "/users/:id/keys" CurrentUserSshKeyApiPath = "/user/keys/:key_id" UserSshKeyApiPath = "/user/:id/keys/:key_id" )
const ( UsersApiPath = "/users" UserApiPath = "/users/:id" CurrentUserApiPath = "/user" )
const ( VariablesApiPath = "/:type/:id/variables" VariableApiPath = "/:type/:id/variables/:key" )
const (
DashboardFeedPath = "/dashboard.atom"
)
const (
ProjectIssuesApiPath = "/projects/:id/issues"
)
const (
ProjectTagApiPath = "/projects/:id/repository/tags/:tag"
)
Variables ¶
var CiEnvMapping map[string]*CiEnvKey
Functions ¶
func AggregateJobs ¶
Aggregate jobs by:
- pipeline
- stage
- job name
The resulting aggregation can be used to built something similar as the GitLab's UI used to display pipeline details.
func PopulateCiInfo ¶
func PopulateCiInfo(out interface{}) error
Types ¶
type AccessLevelInfo ¶
type ActivityFeed ¶
type AddMergeRequestRequest ¶
type AddMergeRequestRequest struct {
SourceBranch string `json:"source_branch"`
TargetBranch string `json:"target_branch"`
AssigneeId int `json:"assignee_id,omitempty"`
Title string `json:"title"`
Description string `json:"description,omitempty"`
TargetProjectId int `json:"target_project_id,omitempty"`
Lables []string `json:"lables,omitempty"`
}
type ArtifactsFile ¶
type Badge ¶
type Badge struct {
Id int `json:"id" yaml:"id"`
LinkUrl string `json:"link_url" yaml:"link_url"`
ImageUrl string `json:"image_url" yaml:"image_url"`
RenderedLinkUrl string `json:"rendered_link_url" yaml:"rendered_link_url"`
RenderedImageUrl string `json:"rendered_image_url" yaml:"rendered_image_url"`
Kind string `json:"kind" yaml:"kind"`
}
type BadgeCollection ¶
type BadgeCollection struct {
Items []*Badge
}
func (*BadgeCollection) RenderJson ¶
func (c *BadgeCollection) RenderJson(w io.Writer) error
func (*BadgeCollection) RenderYaml ¶
func (c *BadgeCollection) RenderYaml(w io.Writer) error
type Branch ¶
type Branch struct {
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Protected bool `json:"protected,omitempty" yaml:"protected,omitempty"`
Merged bool `json:"merged,omitempty" yaml:"merged,omitempty"`
DevelopersCanPush bool `json:"developers_can_push,omitempty" yaml:"developers_can_push,omitempty"`
DevelopersCanMerge bool `json:"developers_can_merge,omitempty" yaml:"developers_can_merge,omitempty"`
Commit *BranchCommit `json:"commit,omitempty" yaml:"commit,omitempty"`
}
type BranchCollection ¶
type BranchCollection struct {
Items []*Branch
}
func (*BranchCollection) RenderJson ¶
func (c *BranchCollection) RenderJson(w io.Writer) error
func (*BranchCollection) RenderYaml ¶
func (c *BranchCollection) RenderYaml(w io.Writer) error
type BranchCommit ¶
type BranchCommit struct {
Id string `json:"id,omitempty" yaml:"id,omitempty"`
Tree string `json:"tree,omitempty" yaml:"tree,omitempty"`
AuthoredDateRaw string `json:"authored_date,omitempty" yaml:"authored_date,omitempty"`
CommittedDateRaw string `json:"committed_date,omitempty" yaml:"committed_date,omitempty"`
Message string `json:"message,omitempty" yaml:"message,omitempty"`
Author *Person `json:"author,omitempty" yaml:"author,omitempty"`
Committer *Person `json:"committer,omitempty" yaml:"committer,omitempty"`
}
type BranchesOptions ¶
type BranchesOptions struct {
PaginationOptions
SortOptions
// Return list of branches matching the search criteria
Search string `url:"search,omitempty"`
}
type Build ¶
type Build struct {
Id int `json:"id"`
ArtifactsFile ArtifactsFile `json:"artifacts_file"`
Commit Commit `json:"commit,omitempty"`
CreatedAt string `json:"created_at"`
DownloadURL string `json:"download_url"`
FinishedAt string `json:"finished_at"`
Name string `json:"name"`
Ref string `json:"ref"`
Stage string `json:"stage"`
StartedAt string `json:"started_at"`
Status string `json:"status"`
Tag bool `json:"tag"`
User User `json:"user"`
When string `json:"when,omitempty"`
Manual bool `json:"manual,omitempty"`
}
type ChangeItem ¶
type ChangeItem struct {
OldPath string `json:"old_path,omitempty"`
NewPath string `json:"new_path,omitempty"`
AMode string `json:"a_mode,omitempty"`
BMode string `json:"b_mode,omitempty"`
Diff string `json:"diff,omitempty"`
NewFile bool `json:"new_file,omitempty"`
RenamedFile bool `json:"renamed_file,omitempty"`
DeletedFile bool `json:"deleted_file,omitempty"`
}
type CiInfo ¶
type CiInfo struct {
Chat struct {
Input string `env:"CHAT_INPUT" json:"input" yaml:"input"`
Channel string `env:"CHAT_CHANNEL" json:"channel" yaml:"channel"`
} `json:"chat" yaml:"chat"`
Deploy struct {
User string `env:"CI_DEPLOY_USER" json:"user" yaml:"user"`
} `json:"deploy" yaml:"deploy"`
Project struct {
Id string `env:"CI_PROJECT_ID" json:"id" yaml:"id"`
Dir string `env:"CI_PROJECT_DIR" json:"dir" yaml:"dir"`
Name string `env:"CI_PROJECT_NAME" json:"name" yaml:"name"`
Namespace string `env:"CI_PROJECT_NAMESPACE" json:"namespace" yaml:"namespace"`
Path string `env:"CI_PROJECT_PATH" json:"path" yaml:"path"`
PathSlug string `env:"CI_PROJECT_PATH_SLUG" json:"path_slug" yaml:"path_slug"`
Url string `env:"CI_PROJECT_URL" json:"url" yaml:"url"`
Visibility string `env:"CI_PROJECT_VISIBILITY" json:"visibility" yaml:"visibility"`
} `json:"project" yaml:"project"`
Commit struct {
Sha string `env:"CI_COMMIT_SHA" json:"sha" yaml:"sha"`
RefName string `env:"CI_COMMIT_REF_NAME" json:"ref_name" yaml:"ref_name"`
RefSlug string `env:"CI_COMMIT_REF_SLUG" json:"ref_slug" yaml:"ref_slug"`
Tag string `env:"CI_COMMIT_TAG" json:"tag" yaml:"tag"`
Message string `env:"CI_COMMIT_MESSAGE" json:"message" yaml:"message"`
Title string `env:"CI_COMMIT_TITLE" json:"title" yaml:"title"`
Description string `env:"CI_COMMIT_DESCRIPTION" json:"description" yaml:"description"`
} `json:"commit" yaml:"commit"`
Job struct {
Id string `env:"CI_JOB_ID" json:"id" yaml:"id"`
Name string `env:"CI_JOB_NAME" json:"name" yaml:"name"`
Stage string `env:"CI_JOB_STAGE" json:"stage" yaml:"stage"`
Url string `env:"CI_JOB_URL" json:"url" yaml:"url"`
} `json:"job" yaml:"job"`
Pipeline struct {
Id string `env:"CI_PIPELINE_ID" json:"id" yaml:"id"`
Iid string `env:"CI_PIPELINE_IID" json:"iid" yaml:"iid"`
Source string `env:"CI_PIPELINE_SOURCE" json:"source" yaml:"source"`
Url string `env:"CI_PIPELINE_URL" json:"url" yaml:"url"`
} `json:"pipeline" yaml:"pipeline"`
Runner struct {
Id string `env:"CI_RUNNER_ID" json:"id" yaml:"id"`
Description string `env:"CI_RUNNER_DESCRIPTION" json:"description" yaml:"description"`
Tags string `env:"CI_RUNNER_TAGS" json:"tags" yaml:"tags"`
Version string `env:"CI_RUNNER_VERSION" json:"version" yaml:"version"`
Revision string `env:"CI_RUNNER_REVISION" json:"revision" yaml:"revision"`
ExecutableArch string `env:"CI_RUNNER_EXECUTABLE_ARCH" json:"executable_arch" yaml:"executable_arch"`
} `json:"runner" yaml:"runner"`
User struct {
Id string `env:"GITLAB_USER_ID" json:"id" yaml:"id"`
Email string `env:"GITLAB_USER_EMAIL" json:"email" yaml:"email"`
Login string `env:"GITLAB_USER_LOGIN" json:"login" yaml:"login"`
Name string `env:"GITLAB_USER_NAME" json:"name" yaml:"name"`
} `json:"user" yaml:"user"`
Server struct {
Name string `env:"CI_SERVER_NAME" json:"name" yaml:"name"`
Revision string `env:"CI_SERVER_REVISION" json:"revision" yaml:"revision"`
Version string `env:"CI_SERVER_VERSION" json:"version" yaml:"version"`
} `json:"server" yaml:"server"`
Registry struct {
Registry string `env:"CI_REGISTRY" json:"registry" yaml:"registry"`
Image string `env:"CI_REGISTRY_IMAGE" json:"image" yaml:"image"`
User string `env:"CI_REGISTRY_USER" json:"user" yaml:"user"`
} `json:"registry" yaml:"registry"`
Environment struct {
Name string `env:"CI_ENVIRONMENT_NAME" json:"name" yaml:"name"`
Slug string `env:"CI_ENVIRONMENT_SLUG" json:"slug" yaml:"slug"`
Url string `env:"CI_ENVIRONMENT_URL" json:"url" yaml:"url"`
} `json:"environment" yaml:"environment"`
}
type CommitActionOptions ¶
type CommitActionOptions struct {
Action *string `url:"action,omitempty" json:"action,omitempty"` // The action to perform: create, delete, move, update, chmod
FilePath *string `url:"file_path,omitempty" json:"file_path,omitempty"` // Full path to the file. Ex. lib/class.rb
PreviousPath *string `url:"previous_path,omitempty" json:"previous_path,omitempty"` // Original full path to the file being moved. Ex. lib/class1.rb. Only considered for move action.
Content *string `url:"content,omitempty" json:"content,omitempty"` // File content, required for all except delete, chmod, and move. Move actions that do not specify content preserve the existing file content, and any other value of content overwrites the file content.
Encoding *string `url:"encoding,omitempty" json:"encoding,omitempty"`
LastCommitID *string `url:"last_commit_id,omitempty" json:"last_commit_id,omitempty"`
ExecuteFilemode *bool `url:"execute_filemode,omitempty" json:"execute_filemode,omitempty"` // When true/false enables/disables the execute flag on the file. Only considered for chmod action.
}
CommitActionOptions represents the available options for a new single file action.
GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions
type CommitStatus ¶
type CommitStatus struct {
Status string `json:"status"`
CreatedAt time.Time `json:"created_at"`
StartedAt *time.Time `json:"started_at"`
Name string `json:"name"`
AllowFailure bool `json:"allow_failure"`
Author User `json:"author"`
Description *string `json:"description"`
Sha string `json:"sha"`
TargetURL string `json:"target_url"`
FinishedAt *time.Time `json:"finished_at"`
ID int `json:"id"`
Ref string `json:"ref"`
}
type CreateCommitOptions ¶
type CreateCommitOptions struct {
Branch *string `url:"branch,omitempty" json:"branch,omitempty"`
CommitMessage *string `url:"commit_message,omitempty" json:"commit_message,omitempty"`
StartBranch *string `url:"start_branch,omitempty" json:"start_branch,omitempty"`
StartSHA *string `url:"start_sha,omitempty" json:"start_sha,omitempty"`
StartProject *string `url:"start_project,omitempty" json:"start_project,omitempty"`
Actions []*CommitActionOptions `url:"actions" json:"actions"`
AuthorEmail *string `url:"author_email,omitempty" json:"author_email,omitempty"`
AuthorName *string `url:"author_name,omitempty" json:"author_name,omitempty"`
Stats *bool `url:"stats,omitempty" json:"stats,omitempty"`
Force *bool `url:"force,omitempty" json:"force,omitempty"`
}
CreateCommitOptions represents the available options for a new commit.
GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions
type Environment ¶
type Environment struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
EnvironmentAddPayload `yaml:",inline"`
Slug string `json:"slug,omitempty" yaml:"slug,omitempty"`
Project *EnvironmentProject `json:"project,omitempty" yaml:"project,omitempty"`
}
func (*Environment) RenderJson ¶
func (e *Environment) RenderJson(w io.Writer) error
func (*Environment) RenderYaml ¶
func (e *Environment) RenderYaml(w io.Writer) error
type EnvironmentAddPayload ¶
type EnvironmentCollection ¶
type EnvironmentCollection struct {
Items []*Environment
}
func (*EnvironmentCollection) RenderJson ¶
func (c *EnvironmentCollection) RenderJson(w io.Writer) error
func (*EnvironmentCollection) RenderYaml ¶
func (c *EnvironmentCollection) RenderYaml(w io.Writer) error
type EnvironmentProject ¶
type EnvironmentProject struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
NameWithNamespace string `json:"name_with_namespace,omitempty" yaml:"name_with_namespace,omitempty"`
Path string `json:"path,omitempty" yaml:"path,omitempty"`
PathWithNamespace string `json:"path_with_namespace,omitempty" yaml:"path_with_namespace,omitempty"`
Description string `json:"description" yaml:"description"`
CreatedAtRaw string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
DefaultBranch string `json:"default_branch" yaml:"default_branch"`
TagList []string `json:"tag_list" yaml:"tag_list"`
SshUrlToRepo string `json:"ssh_url_to_repo" yaml:"ssh_url_to_repo"`
HttpUrlToRepo string `json:"http_url_to_repo" yaml:"http_url_to_repo"`
WebUrl string `json:"web_url" yaml:"web_url"`
AvatarUrl string `json:"avatar_url" yaml:"avatar_url"`
ForksCount int `json:"forks_count" yaml:"forks_count"`
StarCount int `json:"star_count" yaml:"star_count"`
LastActivityAtRaw string `json:"last_activity_at,omitempty" yaml:"last_activity_at,omitempty"`
}
type FeedCommit ¶
type Gitlab ¶
type Gitlab struct {
BaseUrl string
ApiPath string
RepoFeedPath string
Token string
Client *http.Client
}
func (*Gitlab) Activity ¶
func (g *Gitlab) Activity() (ActivityFeed, error)
func (*Gitlab) AddCurrentUserSshKey ¶
func (g *Gitlab) AddCurrentUserSshKey(title, key string) (*ResponseMeta, error)
func (*Gitlab) AddGroup ¶
func (g *Gitlab) AddGroup(group *GroupAddPayload) (*GroupWithDetails, *ResponseMeta, error)
func (*Gitlab) AddGroupEpicNote ¶
func (g *Gitlab) AddGroupEpicNote(groupId string, epicId int, note *NoteAddPayload) (*Note, *ResponseMeta, error)
func (*Gitlab) AddGroupMember ¶
func (g *Gitlab) AddGroupMember(projectId string, opt *MemberOptions) (*Member, *ResponseMeta, error)
func (*Gitlab) AddGroupVariable ¶
func (*Gitlab) AddIssue ¶
func (g *Gitlab) AddIssue(projectId string, req *IssueRequest) (issue *Issue, meta *ResponseMeta, err error)
func (*Gitlab) AddMergeRequest ¶
func (g *Gitlab) AddMergeRequest(req *AddMergeRequestRequest) (*MergeRequest, error)
Creates a new merge request.
POST /projects/:id/merge_requests
Parameters:
id The ID of a project
func (*Gitlab) AddProject ¶
func (g *Gitlab) AddProject(project *ProjectAddPayload) (*Project, *ResponseMeta, error)
func (*Gitlab) AddProjectBadge ¶
func (*Gitlab) AddProjectBranch ¶
func (*Gitlab) AddProjectDeployKey ¶
func (g *Gitlab) AddProjectDeployKey(id, title, key string) (*ResponseMeta, error)
Add deploy key to project.
POST /projects/:id/keys
Parameters:
id The ID of a project title The key title key The key value
func (*Gitlab) AddProjectEnvironment ¶
func (g *Gitlab) AddProjectEnvironment(projectId string, environment *EnvironmentAddPayload) (*Environment, *ResponseMeta, error)
func (*Gitlab) AddProjectHook ¶
func (g *Gitlab) AddProjectHook(projectId string, hook *HookAddPayload) (*Hook, *ResponseMeta, error)
func (*Gitlab) AddProjectIssueNote ¶
func (g *Gitlab) AddProjectIssueNote(projectId string, issueIid int, note *NoteAddPayload) (*Note, *ResponseMeta, error)
func (*Gitlab) AddProjectMember ¶
func (g *Gitlab) AddProjectMember(projectId string, opt *MemberOptions) (*Member, *ResponseMeta, error)
func (*Gitlab) AddProjectMergeRequestNote ¶
func (g *Gitlab) AddProjectMergeRequestNote(projectId string, mergeRequestIid int, note *NoteAddPayload) (*Note, *ResponseMeta, error)
func (*Gitlab) AddProjectSnippetNote ¶
func (g *Gitlab) AddProjectSnippetNote(projectId string, snippetId int, note *NoteAddPayload) (*Note, *ResponseMeta, error)
func (*Gitlab) AddProjectVariable ¶
func (*Gitlab) AddUserSshKey ¶
func (g *Gitlab) AddUserSshKey(userId, title, key string) (*ResponseMeta, error)
func (*Gitlab) CancelProjectJob ¶
func (*Gitlab) CreateCommit ¶
func (g *Gitlab) CreateCommit(id string, commitOpts *CreateCommitOptions) (*Commit, *ResponseMeta, error)
Create a commit and push with multiple files and actions
func (*Gitlab) CurrentUser ¶
func (g *Gitlab) CurrentUser() (*User, *ResponseMeta, error)
func (*Gitlab) CurrentUserSshKey ¶
func (g *Gitlab) CurrentUserSshKey(id string) (*SshKey, *ResponseMeta, error)
func (*Gitlab) CurrentUserSshKeys ¶
func (g *Gitlab) CurrentUserSshKeys(o *PaginationOptions) (*SshKeyCollection, *ResponseMeta, error)
func (*Gitlab) DeleteCurrentUserSshKey ¶
func (g *Gitlab) DeleteCurrentUserSshKey(keyId int) (*ResponseMeta, error)
func (*Gitlab) DeleteRunner ¶
func (g *Gitlab) DeleteRunner(id int) (*Runner, *ResponseMeta, error)
func (*Gitlab) DeleteUserSshKey ¶
func (g *Gitlab) DeleteUserSshKey(userId, keyId int) (*ResponseMeta, error)
func (*Gitlab) DisableProjectRunner ¶
func (*Gitlab) EditMergeRequest ¶
func (g *Gitlab) EditMergeRequest(mr *MergeRequest) error
Updates an existing merge request.
PUT /projects/:id/merge_request/:merge_request_id
Parameters:
id The ID of a project
func (*Gitlab) EnableProjectRunner ¶
func (*Gitlab) EraseProjectJob ¶
func (*Gitlab) Group ¶
func (g *Gitlab) Group(id string, withCustomAttributes bool) (*GroupWithDetails, *ResponseMeta, error)
func (*Gitlab) GroupEpicNote ¶
func (*Gitlab) GroupEpicNotes ¶
func (g *Gitlab) GroupEpicNotes(groupId string, epicId int, o *NotesOptions) (*NoteCollection, *ResponseMeta, error)
func (*Gitlab) GroupMembers ¶
func (g *Gitlab) GroupMembers(groupId string, o *MembersOptions) (*MemberCollection, *ResponseMeta, error)
func (*Gitlab) GroupMergeRequests ¶
func (g *Gitlab) GroupMergeRequests(groupId int, o *MergeRequestsOptions) (*MergeRequestCollection, *ResponseMeta, error)
func (*Gitlab) GroupProjects ¶
func (g *Gitlab) GroupProjects(id string) ([]*Project, *ResponseMeta, error)
func (*Gitlab) GroupVariable ¶
func (g *Gitlab) GroupVariable(groupId, varKey string) (*Variable, *ResponseMeta, error)
func (*Gitlab) GroupVariables ¶
func (g *Gitlab) GroupVariables(groupId string, o *PaginationOptions) (*VariableCollection, *ResponseMeta, error)
func (*Gitlab) Groups ¶
func (g *Gitlab) Groups(o *GroupsOptions) (*GroupCollection, *ResponseMeta, error)
func (*Gitlab) MergeRequests ¶
func (g *Gitlab) MergeRequests(o *MergeRequestsOptions) (*MergeRequestCollection, *ResponseMeta, error)
func (*Gitlab) Namespaces ¶
func (g *Gitlab) Namespaces(o *NamespacesOptions) (*NamespaceCollection, *ResponseMeta, error)
func (*Gitlab) ProjectBadge ¶
func (*Gitlab) ProjectBadges ¶
func (g *Gitlab) ProjectBadges(projectId string, o *PaginationOptions) (*BadgeCollection, *ResponseMeta, error)
func (*Gitlab) ProjectBranch ¶
func (g *Gitlab) ProjectBranch(projectId, branchName string) (*Branch, *ResponseMeta, error)
func (*Gitlab) ProjectBranches ¶
func (g *Gitlab) ProjectBranches(projectId string, o *BranchesOptions) (*BranchCollection, *ResponseMeta, error)
func (*Gitlab) ProjectBuildArtifacts ¶
func (g *Gitlab) ProjectBuildArtifacts(id, buildId string) (io.ReadCloser, error)
func (*Gitlab) ProjectCommitBuilds ¶
func (g *Gitlab) ProjectCommitBuilds(id, sha1 string) ([]*Build, *ResponseMeta, error)
func (*Gitlab) ProjectCommitStatuses ¶
func (g *Gitlab) ProjectCommitStatuses(id, sha1 string) ([]*CommitStatus, *ResponseMeta, error)
func (*Gitlab) ProjectDeployKey ¶
func (g *Gitlab) ProjectDeployKey(id, keyId string) (*SshKey, *ResponseMeta, error)
Get single project deploy key.
GET /projects/:id/keys/:key_id
Parameters:
id The ID of a project keyId The ID of a key
func (*Gitlab) ProjectDeployKeys ¶
func (g *Gitlab) ProjectDeployKeys(id string) ([]*SshKey, *ResponseMeta, error)
Get list of project deploy keys.
GET /projects/:id/keys
Parameters:
id The ID of a project
func (*Gitlab) ProjectEnvironments ¶
func (g *Gitlab) ProjectEnvironments(projectId string, o *PaginationOptions) (*EnvironmentCollection, *ResponseMeta, error)
func (*Gitlab) ProjectHook ¶
func (g *Gitlab) ProjectHook(projectId, hookId string) (*Hook, *ResponseMeta, error)
func (*Gitlab) ProjectHooks ¶
func (g *Gitlab) ProjectHooks(projectId string) (*HookCollection, *ResponseMeta, error)
func (*Gitlab) ProjectIssueNote ¶
func (*Gitlab) ProjectIssueNotes ¶
func (g *Gitlab) ProjectIssueNotes(projectId string, issueIid int, o *NotesOptions) (*NoteCollection, *ResponseMeta, error)
func (*Gitlab) ProjectJob ¶
func (*Gitlab) ProjectJobTrace ¶
func (*Gitlab) ProjectJobs ¶
func (g *Gitlab) ProjectJobs(projectId string, o *JobsOptions) (*JobCollection, *ResponseMeta, error)
func (*Gitlab) ProjectMembers ¶
func (g *Gitlab) ProjectMembers(projectId string, o *MembersOptions) (*MemberCollection, *ResponseMeta, error)
func (*Gitlab) ProjectMergeRequest ¶
func (g *Gitlab) ProjectMergeRequest(projectId string, mergeRequestId int) (*MergeRequest, *ResponseMeta, error)
func (*Gitlab) ProjectMergeRequestAccept ¶
func (g *Gitlab) ProjectMergeRequestAccept(id, merge_request_id string, req *AcceptMergeRequestRequest) (*MergeRequest, error)
Merge changes submitted with MR.
PUT /projects/:id/merge_request/:merge_request_id/merge
Parameters:
id The ID of a project merge_request_id The ID of a merge request
func (*Gitlab) ProjectMergeRequestCancelMerge ¶
func (g *Gitlab) ProjectMergeRequestCancelMerge(id, merge_request_id string) (*MergeRequest, *ResponseMeta, error)
Cancel Merge When Build Succeeds.
PUT /projects/:id/merge_request/:merge_request_id/cancel_merge_when_build_succeeds
Parameters:
id The ID of a project merge_request_id The ID of a merge request
func (*Gitlab) ProjectMergeRequestChanges ¶
func (g *Gitlab) ProjectMergeRequestChanges(id, merge_request_id string) (*MergeRequestChanges, *ResponseMeta, error)
Get information about the merge request including its files and changes.
GET /projects/:id/merge_request/:merge_request_id/changes
Parameters:
id The ID of a project merge_request_id The ID of a merge request
func (*Gitlab) ProjectMergeRequestCommits ¶
func (g *Gitlab) ProjectMergeRequestCommits(id, merge_request_id string) ([]*Commit, *ResponseMeta, error)
Get a list of merge request commits.
GET /projects/:id/merge_request/:merge_request_id/commits
Parameters:
id The ID of a project merge_request_id The ID of a merge request
func (*Gitlab) ProjectMergeRequestNote ¶
func (*Gitlab) ProjectMergeRequestNotes ¶
func (g *Gitlab) ProjectMergeRequestNotes(projectId string, mergeRequestIid int, o *NotesOptions) (*NoteCollection, *ResponseMeta, error)
func (*Gitlab) ProjectMergeRequests ¶
func (g *Gitlab) ProjectMergeRequests(projectId string, o *MergeRequestsOptions) (*MergeRequestCollection, *ResponseMeta, error)
func (*Gitlab) ProjectPipeline ¶
func (g *Gitlab) ProjectPipeline(projectId, pipelineId string) (*PipelineWithDetails, *ResponseMeta, error)
func (*Gitlab) ProjectPipelineJobs ¶
func (g *Gitlab) ProjectPipelineJobs(projectId string, pipelineId int, o *JobsOptions) (*JobCollection, *ResponseMeta, error)
func (*Gitlab) ProjectPipelines ¶
func (g *Gitlab) ProjectPipelines(projectId string, o *PipelinesOptions) (*PipelineCollection, *ResponseMeta, error)
func (*Gitlab) ProjectRunners ¶
func (*Gitlab) ProjectSnippetNote ¶
func (*Gitlab) ProjectSnippetNotes ¶
func (g *Gitlab) ProjectSnippetNotes(projectId string, snippetId int, o *NotesOptions) (*NoteCollection, *ResponseMeta, error)
func (*Gitlab) ProjectTag ¶
func (g *Gitlab) ProjectTag(projectId, tagName string) (*Tag, *ResponseMeta, error)
func (*Gitlab) ProjectVariable ¶
func (g *Gitlab) ProjectVariable(projectId, varKey string) (*Variable, *ResponseMeta, error)
func (*Gitlab) ProjectVariables ¶
func (g *Gitlab) ProjectVariables(projectId string, o *PaginationOptions) (*VariableCollection, *ResponseMeta, error)
func (*Gitlab) Projects ¶
func (g *Gitlab) Projects(o *ProjectsOptions) (*ProjectCollection, *ResponseMeta, error)
func (*Gitlab) ProtectBranch ¶
func (g *Gitlab) ProtectBranch(projectId, branchName string) (*ResponseMeta, error)
func (*Gitlab) ProtectedBranches ¶
func (g *Gitlab) ProtectedBranches(projectId string, o *PaginationOptions) ([]*ProtectedBranch, *ResponseMeta, error)
func (*Gitlab) RemoveGroup ¶
func (g *Gitlab) RemoveGroup(id string) (string, *ResponseMeta, error)
func (*Gitlab) RemoveGroupEpicNote ¶
func (g *Gitlab) RemoveGroupEpicNote(groupId string, epicId, noteId int) (*ResponseMeta, error)
func (*Gitlab) RemoveGroupVariable ¶
func (g *Gitlab) RemoveGroupVariable(groupId, varKey string) (*ResponseMeta, error)
func (*Gitlab) RemoveProject ¶
func (g *Gitlab) RemoveProject(id string) (string, *ResponseMeta, error)
func (*Gitlab) RemoveProjectBadge ¶
func (g *Gitlab) RemoveProjectBadge(projectId, badgeId string) (*ResponseMeta, error)
func (*Gitlab) RemoveProjectBranch ¶
func (g *Gitlab) RemoveProjectBranch(projectId, branchName string) (*ResponseMeta, error)
func (*Gitlab) RemoveProjectDeployKey ¶
func (g *Gitlab) RemoveProjectDeployKey(id, keyId string) (*ResponseMeta, error)
Remove deploy key from project
DELETE /projects/:id/keys/:key_id
Parameters:
id The ID of a project keyId The ID of a key
func (*Gitlab) RemoveProjectEnvironment ¶
func (g *Gitlab) RemoveProjectEnvironment(projectId string, id int) (*ResponseMeta, error)
func (*Gitlab) RemoveProjectHook ¶
func (g *Gitlab) RemoveProjectHook(projectId, hookId string) (*ResponseMeta, error)
func (*Gitlab) RemoveProjectIssueNote ¶
func (g *Gitlab) RemoveProjectIssueNote(projectId string, issueIid, noteId int) (*ResponseMeta, error)
func (*Gitlab) RemoveProjectMergeRequestNote ¶
func (g *Gitlab) RemoveProjectMergeRequestNote(projectId string, mergeRequestIid, noteId int) (*ResponseMeta, error)
func (*Gitlab) RemoveProjectMergedBranches ¶
func (g *Gitlab) RemoveProjectMergedBranches(projectId string) (string, *ResponseMeta, error)
func (*Gitlab) RemoveProjectSnippetNote ¶
func (g *Gitlab) RemoveProjectSnippetNote(projectId string, snippetId, noteId int) (*ResponseMeta, error)
func (*Gitlab) RemoveProjectVariable ¶
func (g *Gitlab) RemoveProjectVariable(projectId, varKey string) (*ResponseMeta, error)
func (*Gitlab) RemoveUser ¶
func (g *Gitlab) RemoveUser(id string) (*ResponseMeta, error)
func (*Gitlab) RepoActivityFeed ¶
func (g *Gitlab) RepoActivityFeed(feedPath string) ActivityFeed
func (*Gitlab) RepoCommits ¶
func (g *Gitlab) RepoCommits(id string) ([]*Commit, *ResponseMeta, error)
Get a list of repository commits in a project.
GET /projects/:id/repository/commits
Parameters:
id The ID of a project refName The name of a repository branch or tag or if not given the default branch
Usage:
commits, err := gitlab.RepoCommits("your_projet_id")
if err != nil {
fmt.Println(err.Error())
}
for _, commit := range commits {
fmt.Printf("%+v\n", commit)
}
func (*Gitlab) RepoRawFile ¶
func (g *Gitlab) RepoRawFile(id, sha, filepath string) ([]byte, *ResponseMeta, error)
Get Raw file content
func (*Gitlab) RepoTags ¶
func (g *Gitlab) RepoTags(id string) ([]*Tag, *ResponseMeta, error)
Get a list of repository tags from a project, sorted by name in reverse alphabetical order.
GET /projects/:id/repository/tags
Parameters:
id The ID of a project
Usage:
tags, err := gitlab.RepoTags("your_projet_id")
if err != nil {
fmt.Println(err.Error())
}
for _, tag := range tags {
fmt.Printf("%+v\n", tag)
}
func (*Gitlab) RepoTree ¶
func (g *Gitlab) RepoTree(id, path, refName string) ([]*TreeNode, *ResponseMeta, error)
Get a list of repository files and directories in a project.
GET /projects/:id/repository/tree
Parameters:
id (required) The ID of a project
path (optional) The path inside repository. Used to get contend of subdirectories
ref_name (optional) The name of a repository branch or tag or if not given the default branch
Usage:
pass nil when not using optional parameters
func (*Gitlab) ResourceUrl ¶
ResourceUrl builds an url for given resource path.
It replaces path placeholders with values from `params`:
/whatever/:id => /whatever/1
func (*Gitlab) ResourceUrlQ ¶
ResourceUrlQ generates an url and appends a query string to it if available
func (*Gitlab) RetryProjectJob ¶
func (*Gitlab) Runner ¶
func (g *Gitlab) Runner(id int) (*RunnerWithDetails, *ResponseMeta, error)
func (*Gitlab) Runners ¶
func (g *Gitlab) Runners(o *RunnersOptions) (*RunnerCollection, *ResponseMeta, error)
func (*Gitlab) StarProject ¶
func (g *Gitlab) StarProject(id string) (*Project, *ResponseMeta, error)
func (*Gitlab) UnprotectBranch ¶
func (g *Gitlab) UnprotectBranch(projectId, branchName string) (*ResponseMeta, error)
func (*Gitlab) UnstarProject ¶
func (g *Gitlab) UnstarProject(id string) (*Project, *ResponseMeta, error)
func (*Gitlab) UpdateGroup ¶
func (g *Gitlab) UpdateGroup(id string, group *GroupUpdatePayload) (*GroupWithDetails, error)
func (*Gitlab) UpdateGroupMember ¶
func (g *Gitlab) UpdateGroupMember(projectId, userId string, opt *MemberOptions) (*Member, *ResponseMeta, error)
func (*Gitlab) UpdateProject ¶
func (*Gitlab) UpdateProjectMember ¶
func (g *Gitlab) UpdateProjectMember(projectId, userId string, opt *MemberOptions) (*Member, *ResponseMeta, error)
func (*Gitlab) UpdateRunner ¶
func (*Gitlab) UserSshKeys ¶
func (g *Gitlab) UserSshKeys(userId int, o *PaginationOptions) (*SshKeyCollection, *ResponseMeta, error)
func (*Gitlab) Users ¶
func (g *Gitlab) Users(o *UsersOptions) (*UserCollection, *ResponseMeta, error)
type Group ¶
type Group struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Name string `json:"name" yaml:"name"`
Path string `json:"path" yaml:"path"`
Description string `json:"description" yaml:"description"`
Visibility Visibility `json:"visibility" yaml:"visibility"`
LfsEnabled bool `json:"lfs_enabled" yaml:"lfs_enabled"`
RequestAccessEnabled bool `json:"request_access_enabled" yaml:"request_access_enabled"`
ParentId int `json:"parent_id" yaml:"parent_id"`
AvatarUrl string `json:"avatar_url" yaml:"avatar_url"`
WebURL string `json:"web_url" yaml:"web_url"`
FullName string `json:"full_name" yaml:"full_name"`
FullPath string `json:"full_path" yaml:"full_path"`
}
type GroupAddPayload ¶
type GroupAddPayload struct {
Name string `json:"name"`
Path string `json:"path"`
Description string `json:"description,omitempty"`
Visibility Visibility `json:"visibility,omitempty"`
LfsEnabled bool `json:"lfs_enabled,omitempty"`
RequestAccessEnabled bool `json:"request_access_enabled,omitempty"`
ParentId int `json:"parent_id,omitempty"`
}
type GroupCollection ¶
type GroupCollection struct {
Items []*Group
}
func (*GroupCollection) RenderJson ¶
func (c *GroupCollection) RenderJson(w io.Writer) error
func (*GroupCollection) RenderYaml ¶
func (c *GroupCollection) RenderYaml(w io.Writer) error
type GroupUpdatePayload ¶
type GroupUpdatePayload struct {
Id int `json:"id,omitempty"`
Name string `json:"name"`
Path string `json:"path"`
Description string `json:"description,omitempty"`
MembershipLock bool `json:"membership_lock,omitempty"`
Visibility Visibility `json:"visibility,omitempty"`
LfsEnabled bool `json:"lfs_enabled,omitempty"`
RequestAccessEnabled bool `json:"request_access_enabled,omitempty"`
}
type GroupWithDetails ¶
type GroupsOptions ¶
type GroupsOptions struct {
PaginationOptions
SortOptions
// Skip the group IDs passed
SkipGroups []string `url:"skip_groups,omitempty,comma"`
// Show all the groups you have access to
// (defaults to false for authenticated users, true for admin)
AllAvailable bool `url:"all_available,omitempty"`
// Return the list of authorized groups matching the search criteria
Search string `url:"search,omitempty"`
// Include group statistics (admins only)
Statistics bool `url:"statistics,omitempty"`
// Include custom attributes in response (admins only)
WithCustomAttributes bool `url:"with_custom_attributes,omitempty"`
// Limit to groups owned by the current user
Owned bool `url:"owned,omitempty"`
}
type Hook ¶
type Hook struct {
HookAddPayload
Id int `json:"id,omitempty" yaml:"id,omitempty"`
ProjectId int `json:"project_id,omitempty" yaml:"project_id,omitempty"`
CreatedAt string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
}
type HookAddPayload ¶
type HookAddPayload struct {
Url string `json:"url" yaml:"url"`
PushEvents bool `json:"push_events" yaml:"push_events"`
IssuesEvents bool `json:"issues_events" yaml:"issues_events"`
ConfidentialIssuesEvents bool `json:"confidential_issues_events" yaml:"confidential_issues_events"`
MergeRequestsEvents bool `json:"merge_requests_events" yaml:"merge_requests_events"`
TagPushEvents bool `json:"tag_push_events" yaml:"tag_push_events"`
NoteEvents bool `json:"note_events" yaml:"note_events"`
JobEvents bool `json:"job_events" yaml:"job_events"`
PipelineEvents bool `json:"pipeline_events" yaml:"pipeline_events"`
WikiPageEvents bool `json:"wiki_page_events" yaml:"wiki_page_events"`
EnableSslVerification bool `json:"enable_ssl_verification" yaml:"enable_ssl_verification"`
Token string `json:"token" yaml:"token"`
}
type HookCollection ¶
type HookCollection struct {
Items []*Hook
}
func (*HookCollection) RenderJson ¶
func (c *HookCollection) RenderJson(w io.Writer) error
func (*HookCollection) RenderYaml ¶
func (c *HookCollection) RenderYaml(w io.Writer) error
type HookObjAttr ¶
type HookObjAttr struct {
Id int `json:"id,omitempty"`
Ref string `json:"ref,omitempty"`
Tag bool `json:"tag,omitempty"`
Sha string `json:"sha,omitempty"`
BeforeSha string `json:"before_sha,omitempty"`
Title string `json:"title,omitempty"`
AssigneeId int `json:"assignee_id,omitempty"`
AuthorId int `json:"author_id,omitempty"`
ProjectId int `json:"project_id,omitempty"`
Status string `json:"status,omitempty"`
Stages []string `json:"stages,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty"`
FinishedAt time.Time `json:"finished_at,omitempty"`
Duration int `json:"duration,omitempty"`
Position int `json:"position,omitempty"`
BranchName string `json:"branch_name,omitempty"`
Description string `json:"description,omitempty"`
MilestoneId int `json:"milestone_id,omitempty"`
State string `json:"state,omitempty"`
IId int `json:"iid,omitempty"`
TargetBranch string `json:"target_branch,omitempty"`
SourceBranch string `json:"source_branch,omitempty"`
SourceProjectId int `json:"source_project_id,omitempty"`
StCommits string `json:"st_commits,omitempty"`
StDiffs string `json:"st_diffs,omitempty"`
MergeStatus string `json:"merge_status,omitempty"`
TargetProjectId int `json:"target_project_id,omitempty"`
}
type HookPayload ¶
type HookPayload struct {
Before string `json:"before,omitempty"`
After string `json:"after,omitempty"`
Ref string `json:"ref,omitempty"`
UserId int `json:"user_id,omitempty"`
UserName string `json:"user_name,omitempty"`
ProjectId int `json:"project_id,omitempty"`
Project *hProject `json:"project,omitempty"`
Repository *hRepository `json:"repository,omitempty"`
Commits []hCommit `json:"commits,omitempty"`
Commit *hCommit `json:"commit,omitempty"`
TotalCommitsCount int `json:"total_commits_count,omitempty"`
ObjectKind string `json:"object_kind,omitempty"`
ObjectAttributes *HookObjAttr `json:"object_attributes,omitempty"`
Builds []*Build `json:"builds,omitempty"`
}
func ParseHook ¶
func ParseHook(payload []byte) (*HookPayload, error)
ParseHook parses hook payload from GitLab
func (*HookPayload) Branch ¶
func (h *HookPayload) Branch() string
Branch returns current branch for pipeline and push event hook payload This function returns empty string for any other events
func (*HookPayload) Head ¶
func (h *HookPayload) Head() hCommit
Head returns the latest changeset for push event hook payload
type Issue ¶
type Issue struct {
Id int `json:"id"`
IId int `json:"iid"`
ProjectId int `json:"project_id,omitempty"`
Title string `json:"title,omitempty"`
Description string `json:"description,omitempty"`
Labels []string `json:"labels,omitempty"`
Milestone *Milestone `json:"milestone,omitempty"`
Assignee *User `json:"assignee,omitempty"`
Author *User `json:"author,omitempty"`
State string `json:"state,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
UpdatedAt string `json:"updated_at,omitempty"`
}
type IssueRequest ¶
type Job ¶
type Job struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Status string `json:"status,omitempty" yaml:"status,omitempty"`
Stage string `json:"stage,omitempty" yaml:"stage,omitempty"`
Ref string `json:"ref,omitempty" yaml:"ref,omitempty"`
Tag bool `json:"tag,omitempty" yaml:"tag,omitempty"`
Coverage float64 `json:"coverage,omitempty" yaml:"coverage,omitempty"`
CreatedAt string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
StartedAt string `json:"started_at,omitempty" yaml:"started_at,omitempty"`
FinishedAt string `json:"finished_at,omitempty" yaml:"finished_at,omitempty"`
Duration float64 `json:"duration,omitempty" yaml:"duration,omitempty"`
ArtifactsExpireAt string `json:"artifacts_expire_at,omitempty" yaml:"artifacts_expire_at,omitempty"`
Pipeline struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Status string `json:"status,omitempty" yaml:"status,omitempty"`
Ref string `json:"ref,omitempty" yaml:"ref,omitempty"`
Sha string `json:"sha,omitempty" yaml:"sha,omitempty"`
} `json:"pipeline" yaml:"pipeline"`
User struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Username string `json:"username,omitempty" yaml:"username,omitempty"`
State string `json:"state,omitempty" yaml:"state,omitempty"`
AvatarUrl string `json:"avatar_url,omitempty" yaml:"avatar_url,omitempty"`
WebUrl string `json:"web_url,omitempty" yaml:"web_url,omitempty"`
CreatedAt string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
Bio string `json:"bio,omitempty" yaml:"bio,omitempty"`
Location string `json:"location,omitempty" yaml:"location,omitempty"`
Skype string `json:"skype,omitempty" yaml:"skype,omitempty"`
Linkedin string `json:"linkedin,omitempty" yaml:"linkedin,omitempty"`
Twitter string `json:"twitter,omitempty" yaml:"twitter,omitempty"`
WebsiteUrl string `json:"website_url,omitempty" yaml:"website_url,omitempty"`
Organization string `json:"organization,omitempty" yaml:"organization,omitempty"`
} `json:"user" yaml:"user"`
Commit struct {
Id string `json:"id,omitempty" yaml:"id,omitempty"`
ShortId string `json:"short_id,omitempty" yaml:"short_id,omitempty"`
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Message string `json:"message,omitempty" yaml:"message,omitempty"`
AuthorName string `json:"author_name,omitempty" yaml:"author_name,omitempty"`
AuthorEmail string `json:"author_email,omitempty" yaml:"author_email,omitempty"`
CommitterName string `json:"committer_name,omitempty" yaml:"committer_name,omitempty"`
CommitterEmail string `json:"committer_email,omitempty" yaml:"committer_email,omitempty"`
CreatedAt string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
AuthoredDate string `json:"authored_date,omitempty" yaml:"authored_date,omitempty"`
CommittedDate string `json:"committed_date,omitempty" yaml:"committed_date,omitempty"`
ParentIds []string `json:"parent_ids,omitempty" yaml:"parent_ids,omitempty"`
} `json:"commit" yaml:"commit"`
Runner struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
IpAddress string `json:"ip_address,omitempty" yaml:"ip_address,omitempty"`
Active bool `json:"active,omitempty" yaml:"active,omitempty"`
IsShared bool `json:"is_shared,omitempty" yaml:"is_shared,omitempty"`
Online bool `json:"online,omitempty" yaml:"online,omitempty"`
Status string `json:"status,omitempty" yaml:"status,omitempty"`
} `json:"runner" yaml:"runner"`
}
type JobCollection ¶
type JobCollection struct {
Items []*Job
}
func (*JobCollection) RenderJson ¶
func (c *JobCollection) RenderJson(w io.Writer) error
func (*JobCollection) RenderYaml ¶
func (c *JobCollection) RenderYaml(w io.Writer) error
type JobsOptions ¶
type JobsOptions struct {
PaginationOptions
SortOptions
// The scope of jobs to show, one or array of:
// created, pending, running, failed, success, canceled, skipped, manual;
// showing all jobs if none provided
Scope []string `url:"scope,omitempty"`
}
type Member ¶
type MemberCollection ¶
type MemberCollection struct {
Items []*Member
}
func (*MemberCollection) RenderJson ¶
func (c *MemberCollection) RenderJson(w io.Writer) error
func (*MemberCollection) RenderYaml ¶
func (c *MemberCollection) RenderYaml(w io.Writer) error
type MemberOptions ¶
type MemberOptions struct {
UserID int `url:"user_id,omitempty" json:"user_id,omitempty"`
AccessLevel int `url:"access_level,omitempty" json:"access_level,omitempty"`
ExpiresAt string `url:"expires_at,omitempty" json:"expires_at"` // A date string in the format YEAR-MONTH-DAY, 2022-12-30
}
AddProjectMemberOptions represents the available AddProjectMember() options. GitLab API docs: https://docs.gitlab.com/ce/api/members.html#add-a-member-to-a-group-or-project
type MembersOptions ¶
type MembersOptions struct {
PaginationOptions
Query string `url:"query,omitempty"`
}
type MergeRequest ¶
type MergeRequest struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Iid int `json:"iid,omitempty" yaml:"iid,omitempty"`
ProjectId int `json:"project_id,omitempty" yaml:"project_id,omitempty"`
WebUrl string `json:"web_url,omitempty" yaml:"web_url,omitempty"`
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
State string `json:"state,omitempty" yaml:"state,omitempty"`
CreatedAt string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
UpdatedAt string `json:"updated_at,omitempty" yaml:"updated_at,omitempty"`
SourceBranch string `json:"source_branch,omitempty" yaml:"source_branch,omitempty"`
TargetBranch string `json:"target_branch,omitempty" yaml:"target_branch,omitempty"`
Upvotes int `json:"upvotes,omitempty" yaml:"upvotes,omitempty"`
Downvotes int `json:"downvotes,omitempty" yaml:"downvotes,omitempty"`
SourceProjectID int `json:"source_project_id,omitempty" yaml:"source_project_id,omitempty"`
TargetProjectID int `json:"target_project_id,omitempty" yaml:"target_project_id,omitempty"`
Sha string `json:"sha,omitempty" yaml:"sha,omitempty"`
MergeCommitSha string `json:"merge_commit_sha,omitempty" yaml:"merge_commit_sha,omitempty"`
WorkInProgress bool `json:"work_in_progress,omitempty" yaml:"work_in_progress,omitempty"`
MergeStatus string `json:"merge_status,omitempty" yaml:"merge_status,omitempty"`
Squash bool `json:"squash,omitempty" yaml:"squash,omitempty"`
MergeWhenPipelineSucceeds bool `json:"merge_when_pipeline_succeeds,omitempty" yaml:"merge_when_pipeline_succeeds,omitempty"`
ShouldRemoveSourceBranch bool `json:"should_remove_source_branch,omitempty" yaml:"should_remove_source_branch,omitempty"`
ForceRemoveSourceBranch bool `json:"force_remove_source_branch,omitempty" yaml:"force_remove_source_branch,omitempty"`
DiscussionLocked bool `json:"discussion_locked,omitempty" yaml:"discussion_locked,omitempty"`
UserNotesCount int `json:"user_notes_count,omitempty" yaml:"user_notes_count,omitempty"`
Pipeline *Pipeline `json:"pipeline,omitempty" yaml:"pipeline,omitempty"`
Author *MergeRequestUser `json:"author,omitempty" yaml:"author,omitempty"`
Assignee *MergeRequestUser `json:"assignee,omitempty" yaml:"assignee,omitempty"`
Labels []string `json:"labels,omitempty" yaml:"labels,omitempty"`
TimeStats *TimeStats `json:"time_stats,omitempty" yaml:"time_stats,omitempty"`
Milestone *Milestone `json:"milestone,omitempty" yaml:"milestone,omitempty"`
}
func (*MergeRequest) RenderJson ¶
func (mr *MergeRequest) RenderJson(w io.Writer) error
func (*MergeRequest) RenderYaml ¶
func (mr *MergeRequest) RenderYaml(w io.Writer) error
type MergeRequestChanges ¶
type MergeRequestChanges struct {
*MergeRequest
CreatedAt string `json:"created_at,omitempty"`
UpdatedAt string `json:"updated_at,omitempty"`
SourceProjectId int `json:"source_project_id,omitempty"`
TargetProjectId int `json:"target_project_id,omitempty"`
Labels []string `json:"labels,omitempty"`
Milestone Milestone `json:"milestone,omitempty"`
Changes []ChangeItem `json:"changes,omitempty"`
}
type MergeRequestCollection ¶
type MergeRequestCollection struct {
Items []*MergeRequest
}
func (*MergeRequestCollection) RenderJson ¶
func (c *MergeRequestCollection) RenderJson(w io.Writer) error
func (*MergeRequestCollection) RenderYaml ¶
func (c *MergeRequestCollection) RenderYaml(w io.Writer) error
type MergeRequestScope ¶
type MergeRequestScope string
const ( MergeRequestScopeCreatedByMe MergeRequestScope = "created_by_me" LegacyMergeRequestScopeCreatedByMe MergeRequestScope = "created-by-me" MergeRequestScopeAssignedToMe MergeRequestScope = "assigned_to_me" LegacyMergeRequestScopeAssignedToMe MergeRequestScope = "assigned-to-me" MergeRequestScopeAll MergeRequestScope = "all" )
For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes
type MergeRequestUser ¶
type MergeRequestUser struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Username string `json:"username,omitempty" yaml:"username,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
State string `json:"state,omitempty" yaml:"state,omitempty"`
AvatarUrl string `json:"avatar_url,omitempty" yaml:"avatar_url,omitempty"`
WebUrl string `json:"web_url,omitempty" yaml:"web_url,omitempty"`
}
type MergeRequestsOptions ¶
type MergeRequestsOptions struct {
PaginationOptions
SortOptions
// Return the request having the given iid
// only available for generic merge requests API endpoint
Iids []int `url:"iids,omitempty,comma"`
// Return all merge requests or just those that are
// opened, closed, locked, or merged
State string `url:"state,omitempty"`
// Return merge requests for a specific milestone
Milestone string `url:"milestone,omitempty"`
// If simple, returns the iid, URL, title, description,
// and basic state of merge request
View string `url:"view,omitempty"`
// Return merge requests matching a comma separated
// list of labels
Labels []string `url:"labels,omitempty,comma"`
// Return merge requests created on or after the given time
CreatedAfter *time.Time `url:"created_after,omitempty"`
// Return merge requests created on or before the given time
CreatedBefore *time.Time `url:"created_before,omitempty"`
// Return merge requests updated on or after the given time
UpdatedAfter *time.Time `url:"updated_after,omitempty"`
// Return merge requests updated on or before the given time
UpdatedBefore *time.Time `url:"updated_before,omitempty"`
// Return merge requests with the given source branch
SourceBranch string `url:"source_branch,omitempty"`
// Return merge requests with the given target branch
TargetBranch string `url:"target_branch,omitempty"`
// Search merge requests against their title and description
Search string `url:"search,omitempty"`
// Returns merge requests created by the given user id
AuthorId int `url:"author_id,omitempty"`
// Returns merge requests assigned to the given user id
AssigneeId int `url:"assignee_id,omitempty"`
// Return merge requests reacted by the authenticated user by the given emoji
MyReactionEmoji string `url:"my_reaction_emoji,omitempty"`
// Return merge requests for the given scope: created_by_me, assigned_to_me or all,
// For versions before 11.0, use the now deprecated created-by-me or assigned-to-me scopes instead.
Scope MergeRequestScope `url:"scope,omitempty"`
}
type Milestone ¶
type Milestone struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Iid int `json:"iid,omitempty" yaml:"iid,omitempty"`
GroupId int `json:"group_id,omitempty" yaml:"group_id,omitempty"`
ProjectId int `json:"project_id,omitempty" yaml:"project_id,omitempty"`
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
State string `json:"state,omitempty" yaml:"state,omitempty"`
UpdatedAt string `json:"updated_at,omitempty" yaml:"updated_at,omitempty"`
CreatedAt string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
DueDate string `json:"due_date,omitempty" yaml:"due_date,omitempty"`
StartDate string `json:"start_date,omitempty" yaml:"start_date,omitempty"`
WebUrl string `json:"web_url,omitempty" yaml:"web_url,omitempty"`
}
type MinimalProject ¶
type Namespace ¶
type Namespace struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Name string `json:"name,omitempty,omitempty" yaml:"name,omitempty,omitempty"`
Path string `json:"path,omitempty,omitempty" yaml:"path,omitempty,omitempty"`
Kind string `json:"kind,omitempty,omitempty" yaml:"kind,omitempty,omitempty"`
FullPath string `json:"full_path,omitempty,omitempty" yaml:"full_path,omitempty,omitempty"`
ParentId int `json:"parent_id,omitempty" yaml:"parent_id,omitempty"`
MembersCountWithDescendants int `json:"members_count_with_descendants,omitempty" yaml:"members_count_with_descendants,omitempty"`
Plan string `json:"plan,omitempty" yaml:"plan,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
OwnerId int `json:"owner_id,omitempty" yaml:"owner_id,omitempty"`
CreatedAt string `json:"createdAt,omitempty" yaml:"createdAt,omitempty"`
UpdatedAt string `json:"updatedAt,omitempty" yaml:"updatedAt,omitempty"`
}
type NamespaceCollection ¶
type NamespaceCollection struct {
Items []*Namespace
}
func (*NamespaceCollection) RenderJson ¶
func (c *NamespaceCollection) RenderJson(w io.Writer) error
func (*NamespaceCollection) RenderYaml ¶
func (c *NamespaceCollection) RenderYaml(w io.Writer) error
type NamespacesOptions ¶
type NamespacesOptions struct {
PaginationOptions
SortOptions
// Returns a list of namespaces the user is authorized to see
// based on the search criteria
Search string `url:"search,omitempty"`
}
type Note ¶
type Note struct {
Id int `json:"id" yaml:"id"`
Body string `json:"body" yaml:"body"`
Attachment string `json:"attachment" yaml:"attachment"`
Title string `json:"title" yaml:"title"`
FileName string `json:"file_name" yaml:"file_name"`
CreatedAtRaw string `json:"created_at" yaml:"created_at"`
UpdatedAtRaw string `json:"updated_at" yaml:"updated_at"`
ExpiresAtRaw string `json:"expires_at" yaml:"expires_at"`
System bool `json:"system" yaml:"system"`
Resolvable bool `json:"resolvable" yaml:"resolvable"`
NoteableId int `json:"noteable_id" yaml:"noteable_id"`
NoteableIid int `json:"noteable_iid" yaml:"noteable_iid"`
NoteableType string `json:"noteable_type" yaml:"noteable_type"`
Author struct {
Id int `json:"id" yaml:"id"`
Username string `json:"username" yaml:"username"`
Email string `json:"email" yaml:"email"`
Name string `json:"name" yaml:"name"`
State string `json:"state" yaml:"state"`
CreatedAtRaw string `json:"created_at" yaml:"created_at"`
AvatarUrm string `json:"avatar_url" yaml:"avatar_url"`
WebUrl string `json:"web_url" yaml:"web_url"`
} `json:"author" yaml:"author"`
}
type NoteAddPayload ¶
type NoteAddPayload struct {
Body string `json:"body"`
}
type NoteCollection ¶
type NoteCollection struct {
Items []*Note
}
func (*NoteCollection) RenderJson ¶
func (c *NoteCollection) RenderJson(w io.Writer) error
func (*NoteCollection) RenderYaml ¶
func (c *NoteCollection) RenderYaml(w io.Writer) error
type NotesOptions ¶
type NotesOptions struct {
PaginationOptions
SortOptions
}
type PaginationOptions ¶
type PipelineCollection ¶
type PipelineCollection struct {
Items []*Pipeline
}
func (*PipelineCollection) RenderJson ¶
func (c *PipelineCollection) RenderJson(w io.Writer) error
func (*PipelineCollection) RenderYaml ¶
func (c *PipelineCollection) RenderYaml(w io.Writer) error
type PipelineWithDetails ¶
type PipelineWithDetails struct {
Pipeline
BeforeSha string `json:"before_sha"`
Tag bool `json:"tag"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
StartedAt string `json:"started_at"`
FinishedAt string `json:"finished_at"`
CommittedAt string `json:"committed_at"`
Duration int `json:"duration"`
Coverage string `json:"coverage"`
YamlErrors string `json:"yaml_errors"`
User struct {
Id int `json:"id"`
Username string `json:"username"`
Name string `json:"name"`
State string `json:"state"`
AvatarUrl string `json:"avatar_url"`
WebUrl string `json:"web_url"`
}
}
func (*PipelineWithDetails) RenderJson ¶
func (p *PipelineWithDetails) RenderJson(w io.Writer) error
func (*PipelineWithDetails) RenderYaml ¶
func (p *PipelineWithDetails) RenderYaml(w io.Writer) error
type PipelinesOptions ¶
type PipelinesOptions struct {
PaginationOptions
SortOptions
// The scope of pipelines, one of:
// running, pending, finished, branches, tags
Scope string `url:"scope,omitempty"`
// The status of pipelines, one of:
// running, pending, success, failed, canceled, skipped
Status string `url:"status,omitempty"`
// The ref of pipelines
Ref string `url:"ref,omitempty"`
// The sha or pipelines
Sha string `url:"sha,omitempty"`
// Returns pipelines with invalid configurations
YamlErrors bool `url:"yaml_errors,omitempty"`
// The name of the user who triggered pipelines
Name string `url:"name,omitempty"`
// The username of the user who triggered pipelines
Username string `url:"username,omitempty"`
}
type Project ¶
type Project struct {
MinimalProject
Description string `json:"description" yaml:"description"`
DefaultBranch string `json:"default_branch" yaml:"default_branch"`
Owner *Member `json:"owner" yaml:"owner"`
Public bool `json:"public" yaml:"public"`
Visibility Visibility `json:"visibility" yaml:"visibility"`
IssuesEnabled bool `json:"issues_enabled" yaml:"issues_enabled"`
OpenIssuesCount int `json:"open_issues_count" yaml:"open_issues_count"`
MergeRequestsEnabled bool `json:"merge_requests_enabled" yaml:"merge_requests_enabled"`
WallEnabled bool `json:"wall_enabled" yaml:"wall_enabled"`
WikiEnabled bool `json:"wiki_enabled" yaml:"wiki_enabled"`
CreatedAtRaw string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
Namespace *Namespace `json:"namespace,omitempty" yaml:"namespace,omitempty"`
NamespaceId int `json:"namespace_id" yaml:"namespace_id"`
SshRepoUrl string `json:"ssh_url_to_repo" yaml:"ssh_url_to_repo"`
HttpRepoUrl string `json:"http_url_to_repo" yaml:"http_url_to_repo"`
WebUrl string `json:"web_url" yaml:"web_url"`
ReadmeUrl string `json:"readme_url" yaml:"readme_url"`
Archived bool `json:"archived" yaml:"archived"`
OnlyAllowMergeIfPipelineSucceeds bool `json:"only_allow_merge_if_pipeline_succeeds" yaml:"only_allow_merge_if_pipeline_succeeds"`
OnlyAllowMergeIfAllDiscussionsAreResolved bool `json:"only_allow_merge_if_all_discussions_are_resolved" yaml:"only_allow_merge_if_all_discussions_are_resolved"`
MergeMethod string `json:"merge_method" yaml:"merge_method"`
TagList []string `json:"tag_list" yaml:"tag_list"`
ForksCount int `json:"forks_count" yaml:"forks_count"`
StarCount int `json:"star_count" yaml:"star_count"`
Statistics *ProjectStatistics `json:"statistics" yaml:"statistics"`
}
type ProjectAddPayload ¶
type ProjectAddPayload struct {
Name string `json:"name"` // The name of the new project. Equals path if not provided
Path string `json:"path"` // Repository name for new project. Generated based on name if not provided (generated lowercased with dashes)
NamespaceId int `json:"namespace_id"` // Group project id, if not, create in user space
InitializeWithReadme bool `json:"initialize_with_readme"` // Whether to create a Git repository with just a README.md file. Default is false. When this is true, you must not pass import_url or other attributes of this endpoint which specify alternative contents for the repository. Doing so might result in the following error: not a git repository.
}
type ProjectCollection ¶
type ProjectCollection struct {
Items []*Project
}
func (*ProjectCollection) RenderJson ¶
func (c *ProjectCollection) RenderJson(w io.Writer) error
func (*ProjectCollection) RenderYaml ¶
func (c *ProjectCollection) RenderYaml(w io.Writer) error
type ProjectGroupSharing ¶
type ProjectStatistics ¶
type ProjectStatistics struct {
CommitCount int `json:"commit_count" yaml:"commit_count"`
StorageSize int `json:"storage_size" yaml:"storage_size"`
RepositorySize int `json:"repository_size" yaml:"repository_size"`
LfsObjectsSize int `json:"lfs_objects_size" yaml:"lfs_objects_size"`
JobArtifactsSize int `json:"job_artifacts_size" yaml:"job_artifacts_size"`
}
type ProjectsOptions ¶
type ProjectsOptions struct {
PaginationOptions
SortOptions
// Limit by archived status
Archived bool `url:"archived,omitempty"`
// Limit by visibility public, internal, or private
Visibility Visibility `url:"visibility,omitempty"`
// Return projects ordered by id, name, path, created_at, updated_at,
// or last_activity_at fields. Default is created_at
OrderBy ProjectsOrder `url:"order_by,omitempty"`
// Return list of projects matching the search criteria
Search string `url:"search,omitempty"`
// Return only the ID, URL, name, and path of each project
Simple bool `url:"simple,omitempty"`
// Limit by projects owned by the current user
Owned bool `url:"owned,omitempty"`
// Limit by projects that the current user is a member of
Membership bool `url:"membership,omitempty"`
// Limit by projects starred by the current user
Starred bool `url:"starred,omitempty"`
// Include project statistics
Statistics bool `url:"statistics,omitempty"`
// Include custom attributes in response (admins only)
WithCustomAttributes bool `url:"with_custom_attributes,omitempty"`
// Limit by enabled issues feature
WithIssuesEnabled bool `url:"with_issues_enabled,omitempty"`
// Limit by enabled merge requests feature
WithMergeRequestsEnabled bool `url:"with_merge_requests_enabled,omitempty"`
}
type ProjectsOrder ¶
type ProjectsOrder string
const ( ProjectsOrderId ProjectsOrder = "id" ProjectsOrderName ProjectsOrder = "name" ProjectsOrderPath ProjectsOrder = "path" )
type ProtectedBranch ¶
type ProtectedBranch struct {
Name string `json:"name,omitempty"`
PushAccessLevels []*AccessLevelInfo `json:"push_access_levels,omitempty"`
MergeAccessLevels []*AccessLevelInfo `json:"merge_access_levels,omitempty"`
}
type Renderable ¶
type ResponseMeta ¶
type ResponseWithMessage ¶
type ResponseWithMessage struct {
Message string `json:"message"`
}
type Runner ¶
type Runner struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Active bool `json:"active,omitempty" yaml:"active,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
IpAddress string `json:"ip_address,omitempty" yaml:"ip_address,omitempty"`
Online bool `json:"online,omitempty" yaml:"online,omitempty"`
Status string `json:"status,omitempty" yaml:"status,omitempty"`
}
type RunnerCollection ¶
type RunnerCollection struct {
Items []*Runner
}
func (*RunnerCollection) RenderJson ¶
func (c *RunnerCollection) RenderJson(w io.Writer) error
func (*RunnerCollection) RenderYaml ¶
func (c *RunnerCollection) RenderYaml(w io.Writer) error
type RunnerScope ¶
type RunnerScope string
const ( RunnerScopeSpecific RunnerScope = "specific" RunnerScopeActive RunnerScope = "active" RunnerScopePaused RunnerScope = "paused" RunnerScopeOnline RunnerScope = "online" )
type RunnerWithDetails ¶
type RunnerWithDetails struct {
Runner `yaml:",inline"`
Architecture string `json:"architecture,omitempty" yaml:"architecture,omitempty"`
Platform string `json:"platform,omitempty" yaml:"platform,omitempty"`
Token string `json:"token,omitempty" yaml:"token,omitempty"`
Revision string `json:"revision,omitempty" yaml:"revision,omitempty"`
ContactedAt string `json:"contacted_at,omitempty" yaml:"contacted_at,omitempty"`
Version string `json:"version,omitempty" yaml:"version,omitempty"`
Projects []*Project `json:"projects,omitempty" yaml:"projects,omitempty"`
TagList []string `json:"tag_list,omitempty" yaml:"tag_list,omitempty"`
AccessLevel string `json:"access_level,omitempty" yaml:"access_level,omitempty"`
MaximumTimeout int `json:"maximum_timeout,omitempty" yaml:"maximum_timeout,omitempty"`
}
func (*RunnerWithDetails) RenderJson ¶
func (r *RunnerWithDetails) RenderJson(w io.Writer) error
func (*RunnerWithDetails) RenderYaml ¶
func (r *RunnerWithDetails) RenderYaml(w io.Writer) error
type RunnersOptions ¶
type RunnersOptions struct {
PaginationOptions
SortOptions
// Get a list of all runners in the GitLab instance (specific and shared).
// Access is restricted to users with admin privileges
All bool `url:"-"`
// The scope of runners to show, one of: specific, shared, active, paused, online;
// showing all runners if none provided
Scope RunnerScope `url:"scope,omitempty"`
}
type SortDirection ¶
type SortDirection string
const ( SortDirectionAsc SortDirection = "asc" SortDirectionDesc SortDirection = "desc" )
type SortOptions ¶
type SortOptions struct {
OrderBy string `url:"order_by,omitempty"`
Sort SortDirection `url:"sort,omitempty"`
}
type SshKey ¶
type SshKeyCollection ¶
type SshKeyCollection struct {
Items []*SshKey
}
func (*SshKeyCollection) RenderJson ¶
func (c *SshKeyCollection) RenderJson(w io.Writer) error
func (*SshKeyCollection) RenderYaml ¶
func (c *SshKeyCollection) RenderYaml(w io.Writer) error
type Tag ¶
type Tag struct {
Name string `json:"name,omitempty"`
Protected bool `json:"protected,omitempty"`
Commit *BranchCommit `json:"commit,omitempty"`
}
type TimeStats ¶
type TimeStats struct {
TimeEstimate int `json:"time_estimate,omitempty" yaml:"time_estimate,omitempty"`
TotalTimeSpent int `json:"total_time_spent,omitempty" yaml:"total_time_spent,omitempty"`
HumanTimeEstimate string `json:"human_time_estimate,omitempty" yaml:"human_time_estimate,omitempty"`
HumanTotalTimeSpent string `json:"human_total_time_spent,omitempty" yaml:"human_total_time_spent,omitempty"`
}
type User ¶
type User struct {
Id int `json:"id,omitempty" yaml:"id,omitempty"`
Username string `json:"username,omitempty" yaml:"username,omitempty"`
Email string `json:"email,omitempty" yaml:"email,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
State string `json:"state,omitempty" yaml:"state,omitempty"`
AvatarUrl string `json:"avatar_url,omitempty" yaml:"avatar_url,omitempty"`
WebUrl string `json:"web_url" yaml:"web_url"`
CreatedAt string `json:"created_at,omitempty" yaml:"created_at,omitempty"`
IsAdmin bool `json:"is_admin,omitempty" yaml:"is_admin,omitempty"`
Bio string `json:"bio,omitempty" yaml:"bio,omitempty"`
Location string `json:"location,omitempty" yaml:"location,omitempty"`
Skype string `json:"skype,omitempty" yaml:"skype,omitempty"`
LinkedIn string `json:"linkedin,omitempty" yaml:"linkedin,omitempty"`
Twitter string `json:"twitter,omitempty" yaml:"twitter,omitempty"`
WebsiteUrl string `json:"website_url" yaml:"website_url"`
Organization string `json:"organization" yaml:"organization"`
LastSignInAt string `json:"last_sign_in_at,omitempty" yaml:"last_sign_in_at,omitempty"`
ConfirmedAt string `json:"confirmed_at,omitempty" yaml:"confirmed_at,omitempty"`
ThemeId int `json:"theme_id,omitempty" yaml:"theme_id,omitempty"`
LastActivityOn string `json:"last_activity_on,omitempty" yaml:"last_activity_on,omitempty"`
ColorSchemeId int `json:"color_scheme_id,omitempty" yaml:"color_scheme_id,omitempty"`
ProjectsLimit int `json:"projects_limit,omitempty" yaml:"projects_limit,omitempty"`
CurrentSignInAt string `json:"current_sign_in_at,omitempty" yaml:"current_sign_in_at,omitempty"`
Identities []*UserIdentity `json:"identities,omitempty" yaml:"identities,omitempty"`
CanCreateGroup bool `json:"can_create_group,omitempty" yaml:"can_create_group,omitempty"`
CanCreateProject bool `json:"can_create_project,omitempty" yaml:"can_create_project,omitempty"`
TwoFactorEnabled bool `json:"two_factor_enabled,omitempty" yaml:"two_factor_enabled,omitempty"`
External bool `json:"external,omitempty" yaml:"external,omitempty"`
}
type UserCollection ¶
type UserCollection struct {
Items []*User
}
func (*UserCollection) RenderJson ¶
func (c *UserCollection) RenderJson(w io.Writer) error
func (*UserCollection) RenderYaml ¶
func (c *UserCollection) RenderYaml(w io.Writer) error
type UserIdentity ¶
type UsersOptions ¶
type UsersOptions struct {
PaginationOptions
// Search users by email or username
Search string `url:"search,omitempty"`
// Search users by username
Username string `url:"username,omitempty"`
// Limit to active users
Active bool `url:"active,omitempty"`
// Limit to blocked users
Blocked bool `url:"blocked,omitempty"`
}
type Variable ¶
type VariableCollection ¶
type VariableCollection struct {
Items []*Variable
}
func (*VariableCollection) RenderJson ¶
func (c *VariableCollection) RenderJson(w io.Writer) error
func (*VariableCollection) RenderYaml ¶
func (c *VariableCollection) RenderYaml(w io.Writer) error
type Visibility ¶
type Visibility string
const ( // VisibilityPrivate indicates project access must be granted explicitly for each user. VisibilityPrivate Visibility = "private" // VisibilityInternal indicates the project can be cloned by any logged in user. VisibilityInternal Visibility = "internal" // VisibilityPublic indicates the project can be cloned without any authentication. VisibilityPublic Visibility = "public" )
Source Files
¶
- badges.go
- branches.go
- builds.go
- ci_info.go
- commits.go
- deploy_keys.go
- environments.go
- events.go
- gitlab.go
- groups.go
- hook_payload.go
- hooks.go
- issues.go
- jobs.go
- members.go
- merge_requests.go
- milestones.go
- namespaces.go
- notes.go
- pipelines.go
- projects.go
- protected_branches.go
- render.go
- repositories.go
- runners.go
- ssh_keys.go
- tag.go
- users.go
- variables.go