gitlab

package module
Version: v0.51.1 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2021 License: Apache-2.0 Imports: 24 Imported by: 709

README ΒΆ

go-gitlab

A GitLab API client enabling Go programs to interact with GitLab in a simple and uniform way

Build Status Sourcegraph GoDoc Go Report Card

NOTE

Release v0.6.0 (released on 25-08-2017) no longer supports the older V3 Gitlab API. If you need V3 support, please use the f-api-v3 branch. This release contains some backwards incompatible changes that were needed to fully support the V4 Gitlab API.

Coverage

This API client package covers most of the existing Gitlab API calls and is updated regularly to add new and/or missing endpoints. Currently the following services are supported:

  • Applications
  • Award Emojis
  • Branches
  • Broadcast Messages
  • Commits
  • Container Registry
  • Custom Attributes
  • Deploy Keys
  • Deployments
  • Discussions (threaded comments)
  • Environments
  • Epic Issues
  • Epics
  • Events
  • Feature Flags
  • Geo Nodes
  • GitLab CI Config Templates
  • Gitignores Templates
  • Group Access Requests
  • Group Issue Boards
  • Group Members
  • Group Milestones
  • Group Wikis
  • Group-Level Variables
  • Groups
  • Instance Clusters
  • Invites
  • Issue Boards
  • Issues
  • Jobs
  • Keys
  • Labels
  • License
  • Merge Request Approvals
  • Merge Requests
  • Namespaces
  • Notes (comments)
  • Notification Settings
  • Open Source License Templates
  • Pages
  • Pages Domains
  • Personal Access Tokens
  • Pipeline Schedules
  • Pipeline Triggers
  • Pipelines
  • Project Access Requests
  • Project Badges
  • Project Clusters
  • Project Import/export
  • Project Members
  • Project Milestones
  • Project Snippets
  • Project-Level Variables
  • Projects (including setting Webhooks)
  • Protected Branches
  • Protected Environments
  • Protected Tags
  • Repositories
  • Repository Files
  • Runners
  • Search
  • Services
  • Settings
  • Sidekiq Metrics
  • System Hooks
  • Tags
  • Todos
  • Users
  • Validate CI Configuration
  • Version
  • Wikis

Usage

import "github.com/xanzy/go-gitlab"

Construct a new GitLab client, then use the various services on the client to access different parts of the GitLab API. For example, to list all users:

git, err := gitlab.NewClient("yourtokengoeshere")
if err != nil {
  log.Fatalf("Failed to create client: %v", err)
}
users, _, err := git.Users.ListUsers(&gitlab.ListUsersOptions{})

There are a few With... option functions that can be used to customize the API client. For example, to set a custom base URL:

git, err := gitlab.NewClient("yourtokengoeshere", gitlab.WithBaseURL("https://git.mydomain.com/api/v4"))
if err != nil {
  log.Fatalf("Failed to create client: %v", err)
}
users, _, err := git.Users.ListUsers(&gitlab.ListUsersOptions{})

Some API methods have optional parameters that can be passed. For example, to list all projects for user "svanharmelen":

git := gitlab.NewClient("yourtokengoeshere")
opt := &ListProjectsOptions{Search: gitlab.String("svanharmelen")}
projects, _, err := git.Projects.ListProjects(opt)
Examples

The examples directory contains a couple for clear examples, of which one is partially listed here as well:

package main

import (
	"log"

	"github.com/xanzy/go-gitlab"
)

func main() {
	git, err := gitlab.NewClient("yourtokengoeshere")
	if err != nil {
		log.Fatalf("Failed to create client: %v", err)
	}

	// Create new project
	p := &gitlab.CreateProjectOptions{
		Name:                 gitlab.String("My Project"),
		Description:          gitlab.String("Just a test project to play with"),
		MergeRequestsEnabled: gitlab.Bool(true),
		SnippetsEnabled:      gitlab.Bool(true),
		Visibility:           gitlab.Visibility(gitlab.PublicVisibility),
	}
	project, _, err := git.Projects.CreateProject(p)
	if err != nil {
		log.Fatal(err)
	}

	// Add a new snippet
	s := &gitlab.CreateProjectSnippetOptions{
		Title:           gitlab.String("Dummy Snippet"),
		FileName:        gitlab.String("snippet.go"),
		Content:         gitlab.String("package main...."),
		Visibility:      gitlab.Visibility(gitlab.PublicVisibility),
	}
	_, _, err = git.ProjectSnippets.CreateSnippet(project.ID, s)
	if err != nil {
		log.Fatal(err)
	}
}

For complete usage of go-gitlab, see the full package docs.

ToDo

  • The biggest thing this package still needs is tests 😞

Issues

Author

Sander van Harmelen (sander@vanharmelen.nl)

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Documentation ΒΆ

Overview ΒΆ

Package gitlab implements a GitLab API client.

Index ΒΆ

Constants ΒΆ

This section is empty.

Variables ΒΆ

View Source
var (
	ErrUserActivatePrevented   = errors.New("Cannot activate a user that is blocked by admin or by LDAP synchronization")
	ErrUserBlockPrevented      = errors.New("Cannot block a user that is already blocked by LDAP synchronization")
	ErrUserDeactivatePrevented = errors.New("Cannot deactivate a user that is blocked by admin or by LDAP synchronization, or that has any activity in past 180 days")
	ErrUserNotFound            = errors.New("User does not exist")
	ErrUserUnblockPrevented    = errors.New("Cannot unblock a user that is blocked by LDAP synchronization")
)

List a couple of standard errors.

Functions ΒΆ

func Bool ΒΆ

func Bool(v bool) *bool

Bool is a helper routine that allocates a new bool value to store v and returns a pointer to it.

func CheckResponse ΒΆ

func CheckResponse(r *http.Response) error

CheckResponse checks the API response for errors, and returns them if present.

func Int ΒΆ

func Int(v int) *int

Int is a helper routine that allocates a new int32 value to store v and returns a pointer to it, but unlike Int32 its argument value is an int.

func ParseHook ΒΆ added in v0.24.0

func ParseHook(eventType EventType, payload []byte) (event interface{}, err error)

ParseHook tries to parse both web- and system hooks.

Example usage:

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {

payload, err := ioutil.ReadAll(r.Body)
if err != nil { ... }
event, err := gitlab.ParseHook(gitlab.HookEventType(r), payload)
if err != nil { ... }
switch event := event.(type) {
case *gitlab.PushEvent:
    processPushEvent(event)
case *gitlab.MergeEvent:
    processMergeEvent(event)
...
}

}

func ParseSystemhook ΒΆ added in v0.24.0

func ParseSystemhook(payload []byte) (event interface{}, err error)

ParseSystemhook parses the event payload. For recognized event types, a value of the corresponding struct type will be returned. An error will be returned for unrecognized event types.

Example usage:

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {

payload, err := ioutil.ReadAll(r.Body)
if err != nil { ... }
event, err := gitlab.ParseSystemhook(payload)
if err != nil { ... }
switch event := event.(type) {
case *gitlab.PushSystemEvent:
    processPushSystemEvent(event)
case *gitlab.MergeSystemEvent:
    processMergeSystemEvent(event)
...
}

}

func ParseWebhook ΒΆ added in v0.11.6

func ParseWebhook(eventType EventType, payload []byte) (event interface{}, err error)

ParseWebhook parses the event payload. For recognized event types, a value of the corresponding struct type will be returned. An error will be returned for unrecognized event types.

Example usage:

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {

payload, err := ioutil.ReadAll(r.Body)
if err != nil { ... }
event, err := gitlab.ParseWebhook(gitlab.HookEventType(r), payload)
if err != nil { ... }
switch event := event.(type) {
case *gitlab.PushEvent:
    processPushEvent(event)
case *gitlab.MergeEvent:
    processMergeEvent(event)
...
}

}

func String ΒΆ

func String(v string) *string

String is a helper routine that allocates a new string value to store v and returns a pointer to it.

func Stringify ΒΆ

func Stringify(message interface{}) string

Stringify attempts to create a reasonable string representation of types in the Gitlab library. It does things like resolve pointers to their values and omits struct fields with nil values.

func Time ΒΆ added in v0.21.0

func Time(v time.Time) *time.Time

Time is a helper routine that allocates a new time.Time value to store v and returns a pointer to it.

Types ΒΆ

type AcceptMergeRequestOptions ΒΆ added in v0.4.0

type AcceptMergeRequestOptions struct {
	MergeCommitMessage        *string `url:"merge_commit_message,omitempty" json:"merge_commit_message,omitempty"`
	SquashCommitMessage       *string `url:"squash_commit_message,omitempty" json:"squash_commit_message,omitempty"`
	Squash                    *bool   `url:"squash,omitempty" json:"squash,omitempty"`
	ShouldRemoveSourceBranch  *bool   `url:"should_remove_source_branch,omitempty" json:"should_remove_source_branch,omitempty"`
	MergeWhenPipelineSucceeds *bool   `url:"merge_when_pipeline_succeeds,omitempty" json:"merge_when_pipeline_succeeds,omitempty"`
	SHA                       *string `url:"sha,omitempty" json:"sha,omitempty"`
}

AcceptMergeRequestOptions represents the available AcceptMergeRequest() options.

GitLab API docs: https://docs.gitlab.com/ce/api/merge_requests.html#accept-mr

type AccessControlValue ΒΆ added in v0.32.0

type AccessControlValue string

AccessControlValue represents an access control value within GitLab, used for managing access to certain project features.

GitLab API docs: https://docs.gitlab.com/ce/api/projects.html

const (
	DisabledAccessControl AccessControlValue = "disabled"
	EnabledAccessControl  AccessControlValue = "enabled"
	PrivateAccessControl  AccessControlValue = "private"
	PublicAccessControl   AccessControlValue = "public"
)

List of available access control values.

GitLab API docs: https://docs.gitlab.com/ce/api/projects.html

func AccessControl ΒΆ added in v0.32.0

func AccessControl(v AccessControlValue) *AccessControlValue

AccessControl is a helper routine that allocates a new AccessControlValue to store v and returns a pointer to it.

type AccessLevelValue ΒΆ added in v0.2.0

type AccessLevelValue int

AccessLevelValue represents a permission level within GitLab.

GitLab API docs: https://docs.gitlab.com/ce/permissions/permissions.html

const (
	NoPermissions            AccessLevelValue = 0
	MinimalAccessPermissions AccessLevelValue = 5
	GuestPermissions         AccessLevelValue = 10
	ReporterPermissions      AccessLevelValue = 20
	DeveloperPermissions     AccessLevelValue = 30
	MaintainerPermissions    AccessLevelValue = 40
	OwnerPermissions         AccessLevelValue = 50

	// These are deprecated and should be removed in a future version
	MasterPermissions AccessLevelValue = 40
	OwnerPermission   AccessLevelValue = 50
)

List of available access levels

GitLab API docs: https://docs.gitlab.com/ce/permissions/permissions.html

func AccessLevel ΒΆ

func AccessLevel(v AccessLevelValue) *AccessLevelValue

AccessLevel is a helper routine that allocates a new AccessLevelValue to store v and returns a pointer to it.

type AccessRequest ΒΆ added in v0.11.1

type AccessRequest struct {
	ID          int              `json:"id"`
	Username    string           `json:"username"`
	Name        string           `json:"name"`
	State       string           `json:"state"`
	CreatedAt   *time.Time       `json:"created_at"`
	RequestedAt *time.Time       `json:"requested_at"`
	AccessLevel AccessLevelValue `json:"access_level"`
}

AccessRequest represents a access request for a group or project.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html

type AccessRequestsService ΒΆ added in v0.11.1

type AccessRequestsService struct {
	// contains filtered or unexported fields
}

AccessRequestsService handles communication with the project/group access requests related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html

func (*AccessRequestsService) ApproveGroupAccessRequest ΒΆ added in v0.11.1

func (s *AccessRequestsService) ApproveGroupAccessRequest(gid interface{}, user int, opt *ApproveAccessRequestOptions, options ...RequestOptionFunc) (*AccessRequest, *Response, error)

ApproveGroupAccessRequest approves an access request for the given user.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html#approve-an-access-request

func (*AccessRequestsService) ApproveProjectAccessRequest ΒΆ added in v0.11.1

func (s *AccessRequestsService) ApproveProjectAccessRequest(pid interface{}, user int, opt *ApproveAccessRequestOptions, options ...RequestOptionFunc) (*AccessRequest, *Response, error)

ApproveProjectAccessRequest approves an access request for the given user.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html#approve-an-access-request

func (*AccessRequestsService) DenyGroupAccessRequest ΒΆ added in v0.11.1

func (s *AccessRequestsService) DenyGroupAccessRequest(gid interface{}, user int, options ...RequestOptionFunc) (*Response, error)

DenyGroupAccessRequest denies an access request for the given user.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html#deny-an-access-request

func (*AccessRequestsService) DenyProjectAccessRequest ΒΆ added in v0.11.1

func (s *AccessRequestsService) DenyProjectAccessRequest(pid interface{}, user int, options ...RequestOptionFunc) (*Response, error)

DenyProjectAccessRequest denies an access request for the given user.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html#deny-an-access-request

func (*AccessRequestsService) ListGroupAccessRequests ΒΆ added in v0.11.1

func (s *AccessRequestsService) ListGroupAccessRequests(gid interface{}, opt *ListAccessRequestsOptions, options ...RequestOptionFunc) ([]*AccessRequest, *Response, error)

ListGroupAccessRequests gets a list of access requests viewable by the authenticated user.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html#list-access-requests-for-a-group-or-project

func (*AccessRequestsService) ListProjectAccessRequests ΒΆ added in v0.11.1

func (s *AccessRequestsService) ListProjectAccessRequests(pid interface{}, opt *ListAccessRequestsOptions, options ...RequestOptionFunc) ([]*AccessRequest, *Response, error)

ListProjectAccessRequests gets a list of access requests viewable by the authenticated user.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html#list-access-requests-for-a-group-or-project

func (*AccessRequestsService) RequestGroupAccess ΒΆ added in v0.11.1

func (s *AccessRequestsService) RequestGroupAccess(gid interface{}, options ...RequestOptionFunc) (*AccessRequest, *Response, error)

RequestGroupAccess requests access for the authenticated user to a group or project.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html#request-access-to-a-group-or-project

func (*AccessRequestsService) RequestProjectAccess ΒΆ added in v0.11.1

func (s *AccessRequestsService) RequestProjectAccess(pid interface{}, options ...RequestOptionFunc) (*AccessRequest, *Response, error)

RequestProjectAccess requests access for the authenticated user to a group or project.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html#request-access-to-a-group-or-project

type AddClusterOptions ΒΆ added in v0.14.1

type AddClusterOptions struct {
	Name                *string                       `url:"name,omitempty" json:"name,omitempty"`
	Domain              *string                       `url:"domain,omitempty" json:"domain,omitempty"`
	Enabled             *bool                         `url:"enabled,omitempty" json:"enabled,omitempty"`
	Managed             *bool                         `url:"managed,omitempty" json:"managed,omitempty"`
	EnvironmentScope    *string                       `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
	PlatformKubernetes  *AddPlatformKubernetesOptions `url:"platform_kubernetes_attributes,omitempty" json:"platform_kubernetes_attributes,omitempty"`
	ManagementProjectID *string                       `url:"management_project_id,omitempty" json:"management_project_id,omitempty"`
}

AddClusterOptions represents the available AddCluster() options.

GitLab API docs: https://docs.gitlab.com/ee/api/project_clusters.html#add-existing-cluster-to-project

type AddCommitDiscussionNoteOptions ΒΆ added in v0.11.2

type AddCommitDiscussionNoteOptions struct {
	Body      *string    `url:"body,omitempty" json:"body,omitempty"`
	CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
}

AddCommitDiscussionNoteOptions represents the available AddCommitDiscussionNote() options.

GitLab API docs: https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-commit-thread

type AddDeployKeyOptions ΒΆ

type AddDeployKeyOptions struct {
	Title   *string `url:"title,omitempty" json:"title,omitempty"`
	Key     *string `url:"key,omitempty" json:"key,omitempty"`
	CanPush *bool   `url:"can_push,omitempty" json:"can_push,omitempty"`
}

AddDeployKeyOptions represents the available ADDDeployKey() options.

GitLab API docs: https://docs.gitlab.com/ce/api/deploy_keys.html#add-deploy-key

type AddEmailOptions ΒΆ added in v0.4.0

type AddEmailOptions struct {
	Email *string `url:"email,omitempty" json:"email,omitempty"`
}

AddEmailOptions represents the available AddEmail() options.

GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#add-email

type AddEpicDiscussionNoteOptions ΒΆ added in v0.11.2

type AddEpicDiscussionNoteOptions struct {
	Body      *string    `url:"body,omitempty" json:"body,omitempty"`
	CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
}

AddEpicDiscussionNoteOptions represents the available AddEpicDiscussionNote() options.

GitLab API docs: https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-epic-thread

type AddGroupBadgeOptions ΒΆ added in v0.16.0

type AddGroupBadgeOptions struct {
	LinkURL  *string `url:"link_url,omitempty" json:"link_url,omitempty"`
	ImageURL *string `url:"image_url,omitempty" json:"image_url,omitempty"`
}

AddGroupBadgeOptions represents the available AddGroupBadge() options.

GitLab API docs: https://docs.gitlab.com/ee/api/group_badges.html#add-a-badge-to-a-group

type AddGroupClusterOptions ΒΆ added in v0.21.0

type AddGroupClusterOptions struct {
	Name                *string                            `url:"name,omitempty" json:"name,omitempty"`
	Domain              *string                            `url:"domain,omitempty" json:"domain,omitempty"`
	ManagementProjectID *string                            `url:"management_project_id,omitempty" json:"management_project_id,omitempty"`
	Enabled             *bool                              `url:"enabled,omitempty" json:"enabled,omitempty"`
	Managed             *bool                              `url:"managed,omitempty" json:"managed,omitempty"`
	EnvironmentScope    *string                            `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
	PlatformKubernetes  *AddGroupPlatformKubernetesOptions `url:"platform_kubernetes_attributes,omitempty" json:"platform_kubernetes_attributes,omitempty"`
}

AddGroupClusterOptions represents the available AddCluster() options.

GitLab API docs: https://docs.gitlab.com/ee/api/group_clusters.html#add-existing-cluster-to-group

type AddGroupHookOptions ΒΆ added in v0.30.0

type AddGroupHookOptions struct {
	URL                      *string `url:"url,omitempty" json:"url,omitempty"`
	PushEvents               *bool   `url:"push_events,omitempty"  json:"push_events,omitempty"`
	IssuesEvents             *bool   `url:"issues_events,omitempty"  json:"issues_events,omitempty"`
	ConfidentialIssuesEvents *bool   `url:"confidential_issues_events,omitempty"  json:"confidential_issues_events,omitempty"`
	ConfidentialNoteEvents   *bool   `url:"confidential_note_events,omitempty"  json:"confidential_note_events,omitempty"`
	MergeRequestsEvents      *bool   `url:"merge_requests_events,omitempty"  json:"merge_requests_events,omitempty"`
	TagPushEvents            *bool   `url:"tag_push_events,omitempty"  json:"tag_push_events,omitempty"`
	NoteEvents               *bool   `url:"note_events,omitempty"  json:"note_events,omitempty"`
	JobEvents                *bool   `url:"job_events,omitempty"  json:"job_events,omitempty"`
	PipelineEvents           *bool   `url:"pipeline_events,omitempty"  json:"pipeline_events,omitempty"`
	WikiPageEvents           *bool   `url:"wiki_page_events,omitempty"  json:"wiki_page_events,omitempty"`
	DeploymentEvents         *bool   `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
	ReleasesEvents           *bool   `url:"releases_events,omitempty" json:"releases_events,omitempty"`
	EnableSSLVerification    *bool   `url:"enable_ssl_verification,omitempty"  json:"enable_ssl_verification,omitempty"`
	Token                    *string `url:"token,omitempty" json:"token,omitempty"`
}

AddGroupHookOptions represents the available AddGroupHook() options.

GitLab API docs: https://docs.gitlab.com/ee/api/groups.html#add-group-hook

type AddGroupLDAPLinkOptions ΒΆ added in v0.30.0

type AddGroupLDAPLinkOptions struct {
	CN          *string           `url:"cn,omitempty" json:"cn,omitempty"`
	Filter      *string           `url:"filter,omitempty" json:"filter,omitempty"`
	GroupAccess *AccessLevelValue `url:"group_access,omitempty" json:"group_access,omitempty"`
	Provider    *string           `url:"provider,omitempty" json:"provider,omitempty"`
}

AddGroupLDAPLinkOptions represents the available AddGroupLDAPLink() options.

GitLab API docs: https://docs.gitlab.com/ee/api/groups.html#add-ldap-group-link-starter

type AddGroupMemberOptions ΒΆ

type AddGroupMemberOptions struct {
	UserID      *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ExpiresAt   *string           `url:"expires_at,omitempty" json:"expires_at"`
}

AddGroupMemberOptions represents the available AddGroupMember() options.

GitLab API docs: https://docs.gitlab.com/ce/api/members.html#add-a-member-to-a-group-or-project

type AddGroupPlatformKubernetesOptions ΒΆ added in v0.21.0

type AddGroupPlatformKubernetesOptions struct {
	APIURL            *string `url:"api_url,omitempty" json:"api_url,omitempty"`
	Token             *string `url:"token,omitempty" json:"token,omitempty"`
	CaCert            *string `url:"ca_cert,omitempty" json:"ca_cert,omitempty"`
	Namespace         *string `url:"namespace,omitempty" json:"namespace,omitempty"`
	AuthorizationType *string `url:"authorization_type,omitempty" json:"authorization_type,omitempty"`
}

AddGroupPlatformKubernetesOptions represents the available PlatformKubernetes options for adding.

type AddGroupPushRuleOptions ΒΆ added in v0.38.0

type AddGroupPushRuleOptions struct {
	AuthorEmailRegex           *string `url:"author_email_regex,omitempty" json:"author_email_regex,omitempty"`
	BranchNameRegex            *string `url:"branch_name_regex,omitempty" json:"branch_name_regex,omitempty"`
	CommitCommitterCheck       *bool   `url:"commit_committer_check,omitempty" json:"commit_committer_check,omitempty"`
	CommitMessageNegativeRegex *string `url:"commit_message_negative_regex,omitempty" json:"commit_message_negative_regex,omitempty"`
	CommitMessageRegex         *string `url:"commit_message_regex,omitempty" json:"commit_message_regex,omitempty"`
	DenyDeleteTag              *bool   `url:"deny_delete_tag,omitempty" json:"deny_delete_tag,omitempty"`
	FileNameRegex              *string `url:"file_name_regex,omitempty" json:"file_name_regex,omitempty"`
	MaxFileSize                *int    `url:"max_file_size,omitempty" json:"max_file_size,omitempty"`
	MemberCheck                *bool   `url:"member_check,omitempty" json:"member_check,omitempty"`
	PreventSecrets             *bool   `url:"prevent_secrets,omitempty" json:"prevent_secrets,omitempty"`
	RejectUnsignedCommits      *bool   `url:"reject_unsigned_commits,omitempty" json:"reject_unsigned_commits,omitempty"`
}

AddGroupPushRuleOptions represents the available AddGroupPushRule() options.

GitLab API docs: https://docs.gitlab.com/ee/api/groups.html#add-group-push-rule

type AddHookOptions ΒΆ

type AddHookOptions struct {
	URL                    *string `url:"url,omitempty" json:"url,omitempty"`
	Token                  *string `url:"token,omitempty" json:"token,omitempty"`
	PushEvents             *bool   `url:"push_events,omitempty" json:"push_events,omitempty"`
	TagPushEvents          *bool   `url:"tag_push_events,omitempty" json:"tag_push_events,omitempty"`
	MergeRequestsEvents    *bool   `url:"merge_requests_events,omitempty" json:"merge_requests_events,omitempty"`
	RepositoryUpdateEvents *bool   `url:"repository_update_events,omitempty" json:"repository_update_events,omitempty"`
	EnableSSLVerification  *bool   `url:"enable_ssl_verification,omitempty" json:"enable_ssl_verification,omitempty"`
}

AddHookOptions represents the available AddHook() options.

GitLab API docs: https://docs.gitlab.com/ce/api/system_hooks.html#add-new-system-hook-hook

type AddIssueDiscussionNoteOptions ΒΆ added in v0.11.2

type AddIssueDiscussionNoteOptions struct {
	Body      *string    `url:"body,omitempty" json:"body,omitempty"`
	CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
}

AddIssueDiscussionNoteOptions represents the available AddIssueDiscussionNote() options.

GitLab API docs: https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-issue-thread

type AddLicenseOptions ΒΆ added in v0.11.4

type AddLicenseOptions struct {
	License *string `url:"license" json:"license"`
}

AddLicenseOptions represents the available AddLicense() options.

https://docs.gitlab.com/ee/api/license.html#add-a-new-license

type AddManagedLicenseOptions ΒΆ added in v0.50.0

type AddManagedLicenseOptions struct {
	Name           *string                     `url:"name,omitempty" json:"name,omitempty"`
	ApprovalStatus *LicenseApprovalStatusValue `url:"approval_status,omitempty" json:"approval_status,omitempty"`
}

AddManagedLicenseOptions represents the available AddManagedLicense() options.

GitLab API docs: https://docs.gitlab.com/ee/api/managed_licenses.html#create-a-new-managed-license

type AddMergeRequestDiscussionNoteOptions ΒΆ added in v0.11.2

type AddMergeRequestDiscussionNoteOptions struct {
	Body      *string    `url:"body,omitempty" json:"body,omitempty"`
	CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
}

AddMergeRequestDiscussionNoteOptions represents the available AddMergeRequestDiscussionNote() options.

GitLab API docs: https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-merge-request-discussion

type AddPipelineTriggerOptions ΒΆ added in v0.6.0

type AddPipelineTriggerOptions struct {
	Description *string `url:"description,omitempty" json:"description,omitempty"`
}

AddPipelineTriggerOptions represents the available AddPipelineTrigger() options.

GitLab API docs: https://docs.gitlab.com/ce/api/pipeline_triggers.html#create-a-project-trigger

type AddPlatformKubernetesOptions ΒΆ added in v0.14.1

type AddPlatformKubernetesOptions struct {
	APIURL            *string `url:"api_url,omitempty" json:"api_url,omitempty"`
	Token             *string `url:"token,omitempty" json:"token,omitempty"`
	CaCert            *string `url:"ca_cert,omitempty" json:"ca_cert,omitempty"`
	Namespace         *string `url:"namespace,omitempty" json:"namespace,omitempty"`
	AuthorizationType *string `url:"authorization_type,omitempty" json:"authorization_type,omitempty"`
}

AddPlatformKubernetesOptions represents the available PlatformKubernetes options for adding.

type AddProjectBadgeOptions ΒΆ added in v0.11.1

type AddProjectBadgeOptions struct {
	LinkURL  *string `url:"link_url,omitempty" json:"link_url,omitempty"`
	ImageURL *string `url:"image_url,omitempty" json:"image_url,omitempty"`
}

AddProjectBadgeOptions represents the available AddProjectBadge() options.

GitLab API docs: https://docs.gitlab.com/ee/api/project_badges.html#add-a-badge-to-a-project

type AddProjectHookOptions ΒΆ

type AddProjectHookOptions struct {
	ConfidentialIssuesEvents *bool   `url:"confidential_issues_events,omitempty" json:"confidential_issues_events,omitempty"`
	ConfidentialNoteEvents   *bool   `url:"confidential_note_events,omitempty" json:"confidential_note_events,omitempty"`
	DeploymentEvents         *bool   `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
	EnableSSLVerification    *bool   `url:"enable_ssl_verification,omitempty" json:"enable_ssl_verification,omitempty"`
	IssuesEvents             *bool   `url:"issues_events,omitempty" json:"issues_events,omitempty"`
	JobEvents                *bool   `url:"job_events,omitempty" json:"job_events,omitempty"`
	MergeRequestsEvents      *bool   `url:"merge_requests_events,omitempty" json:"merge_requests_events,omitempty"`
	NoteEvents               *bool   `url:"note_events,omitempty" json:"note_events,omitempty"`
	PipelineEvents           *bool   `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
	PushEvents               *bool   `url:"push_events,omitempty" json:"push_events,omitempty"`
	PushEventsBranchFilter   *string `url:"push_events_branch_filter,omitempty" json:"push_events_branch_filter,omitempty"`
	ReleasesEvents           *bool   `url:"releases_events,omitempty" json:"releases_events,omitempty"`
	TagPushEvents            *bool   `url:"tag_push_events,omitempty" json:"tag_push_events,omitempty"`
	Token                    *string `url:"token,omitempty" json:"token,omitempty"`
	URL                      *string `url:"url,omitempty" json:"url,omitempty"`
	WikiPageEvents           *bool   `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
}

AddProjectHookOptions represents the available AddProjectHook() options.

GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#add-project-hook

type AddProjectMemberOptions ΒΆ

type AddProjectMemberOptions struct {
	UserID      interface{}       `url:"user_id,omitempty" json:"user_id,omitempty"`
	AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ExpiresAt   *string           `url:"expires_at,omitempty" json:"expires_at"`
}

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 AddProjectMirrorOptions ΒΆ added in v0.33.0

type AddProjectMirrorOptions struct {
	URL                   *string `url:"url,omitempty" json:"url,omitempty"`
	Enabled               *bool   `url:"enabled,omitempty" json:"enabled,omitempty"`
	OnlyProtectedBranches *bool   `url:"only_protected_branches,omitempty" json:"only_protected_branches,omitempty"`
	KeepDivergentRefs     *bool   `url:"keep_divergent_refs,omitempty" json:"keep_divergent_refs,omitempty"`
}

AddProjectMirrorOptions contains the properties requires to create a new project mirror.

GitLab API docs: https://docs.gitlab.com/ce/api/remote_mirrors.html#create-a-remote-mirror

type AddProjectPushRuleOptions ΒΆ added in v0.11.5

type AddProjectPushRuleOptions struct {
	AuthorEmailRegex           *string `url:"author_email_regex,omitempty" json:"author_email_regex,omitempty"`
	BranchNameRegex            *string `url:"branch_name_regex,omitempty" json:"branch_name_regex,omitempty"`
	CommitCommitterCheck       *bool   `url:"commit_committer_check,omitempty" json:"commit_committer_check,omitempty"`
	CommitMessageNegativeRegex *string `url:"commit_message_negative_regex,omitempty" json:"commit_message_negative_regex,omitempty"`
	CommitMessageRegex         *string `url:"commit_message_regex,omitempty" json:"commit_message_regex,omitempty"`
	DenyDeleteTag              *bool   `url:"deny_delete_tag,omitempty" json:"deny_delete_tag,omitempty"`
	FileNameRegex              *string `url:"file_name_regex,omitempty" json:"file_name_regex,omitempty"`
	MaxFileSize                *int    `url:"max_file_size,omitempty" json:"max_file_size,omitempty"`
	MemberCheck                *bool   `url:"member_check,omitempty" json:"member_check,omitempty"`
	PreventSecrets             *bool   `url:"prevent_secrets,omitempty" json:"prevent_secrets,omitempty"`
	RejectUnsignedCommits      *bool   `url:"reject_unsigned_commits,omitempty" json:"reject_unsigned_commits,omitempty"`
}

AddProjectPushRuleOptions represents the available AddProjectPushRule() options.

GitLab API docs: https://docs.gitlab.com/ee/api/projects.html#add-project-push-rule

type AddSSHKeyOptions ΒΆ

type AddSSHKeyOptions struct {
	Title     *string  `url:"title,omitempty" json:"title,omitempty"`
	Key       *string  `url:"key,omitempty" json:"key,omitempty"`
	ExpiresAt *ISOTime `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

AddSSHKeyOptions represents the available AddSSHKey() options.

GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#add-ssh-key

type AddSnippetDiscussionNoteOptions ΒΆ added in v0.11.2

type AddSnippetDiscussionNoteOptions struct {
	Body      *string    `url:"body,omitempty" json:"body,omitempty"`
	CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
}

AddSnippetDiscussionNoteOptions represents the available AddSnippetDiscussionNote() options.

GitLab API docs: https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-snippet-thread

type AddSpentTimeOptions ΒΆ added in v0.4.0

type AddSpentTimeOptions struct {
	Duration *string `url:"duration,omitempty" json:"duration,omitempty"`
}

AddSpentTimeOptions represents the available AddSpentTime() options.

GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html

type Application ΒΆ added in v0.30.0

type Application struct {
	ID              int    `json:"id"`
	ApplicationID   string `json:"application_id"`
	ApplicationName string `json:"application_name"`
	Secret          string `json:"secret"`
	CallbackURL     string `json:"callback_url"`
	Confidential    bool   `json:"confidential"`
}

Application represents a GitLab application

type ApplicationsService ΒΆ added in v0.30.0

type ApplicationsService struct {
	// contains filtered or unexported fields
}

ApplicationsService handles communication with administrables applications of the Gitlab API.

Gitlab API docs : https://docs.gitlab.com/ee/api/applications.html

func (*ApplicationsService) CreateApplication ΒΆ added in v0.30.0

func (s *ApplicationsService) CreateApplication(opt *CreateApplicationOptions, options ...RequestOptionFunc) (*Application, *Response, error)

CreateApplication creates a new application owned by the authenticated user.

Gitlab API docs : https://docs.gitlab.com/ce/api/applications.html#create-an-application

func (*ApplicationsService) DeleteApplication ΒΆ added in v0.30.0

func (s *ApplicationsService) DeleteApplication(application int, options ...RequestOptionFunc) (*Response, error)

DeleteApplication removes a specific application.

GitLab API docs: https://docs.gitlab.com/ce/api/applications.html#delete-an-application

func (*ApplicationsService) ListApplications ΒΆ added in v0.30.0

func (s *ApplicationsService) ListApplications(opt *ListApplicationsOptions, options ...RequestOptionFunc) ([]*Application, *Response, error)

ListApplications get a list of administrables applications by the authenticated user

Gitlab API docs : https://docs.gitlab.com/ce/api/applications.html#list-all-applications

type ApproveAccessRequestOptions ΒΆ added in v0.11.1

type ApproveAccessRequestOptions struct {
	AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
}

ApproveAccessRequestOptions represents the available ApproveProjectAccessRequest() and ApproveGroupAccessRequest() options.

GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html#approve-an-access-request

type ApproveMergeRequestOptions ΒΆ added in v0.10.0

type ApproveMergeRequestOptions struct {
	SHA *string `url:"sha,omitempty" json:"sha,omitempty"`
}

ApproveMergeRequestOptions represents the available ApproveMergeRequest() options.

GitLab API docs: https://docs.gitlab.com/ee/api/merge_request_approvals.html#approve-merge-request

type ArchiveOptions ΒΆ

type ArchiveOptions struct {
	Format *string `url:"-" json:"-"`
	SHA    *string `url:"sha,omitempty" json:"sha,omitempty"`
}

ArchiveOptions represents the available Archive() options.

GitLab API docs: https://docs.gitlab.com/ce/api/repositories.html#get-file-archive

type AuditEvent ΒΆ added in v0.43.0

type AuditEvent struct {
	ID         int               `json:"id"`
	AuthorID   int               `json:"author_id"`
	EntityID   int               `json:"entity_id"`
	EntityType string            `json:"entity_type"`
	Details    AuditEventDetails `json:"details"`
	CreatedAt  *time.Time        `json:"created_at"`
}

AuditEvent represents an audit event for a group, a project or the instance.

GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html

type AuditEventDetails ΒΆ added in v0.43.0

type AuditEventDetails struct {
	With          string      `json:"with"`
	Add           string      `json:"add"`
	As            string      `json:"as"`
	Change        string      `json:"change"`
	From          string      `json:"from"`
	To            string      `json:"to"`
	Remove        string      `json:"remove"`
	CustomMessage string      `json:"custom_message"`
	AuthorName    string      `json:"author_name"`
	TargetID      interface{} `json:"target_id"`
	TargetType    string      `json:"target_type"`
	TargetDetails string      `json:"target_details"`
	IPAddress     string      `json:"ip_address"`
	EntityPath    string      `json:"entity_path"`
	FailedLogin   string      `json:"failed_login"`
}

AuditEventDetails represents the details portion of an audit event for a group, a project or the instance. The exact fields that are returned for an audit event depend on the action being recorded.

GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html

type AuditEventsService ΒΆ added in v0.43.0

type AuditEventsService struct {
	// contains filtered or unexported fields
}

AuditEventsService handles communication with the project/group/instance audit event related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html

func (*AuditEventsService) GetGroupAuditEvent ΒΆ added in v0.43.0

func (s *AuditEventsService) GetGroupAuditEvent(gid interface{}, event int, options ...RequestOptionFunc) (*AuditEvent, *Response, error)

GetGroupAuditEvent gets a specific group audit event.

GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html

func (*AuditEventsService) GetInstanceAuditEvent ΒΆ added in v0.50.4

func (s *AuditEventsService) GetInstanceAuditEvent(event int, options ...RequestOptionFunc) (*AuditEvent, *Response, error)

GetInstanceAuditEvent gets a specific instance audit event. Authentication as Administrator is required.

GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html

func (*AuditEventsService) GetProjectAuditEvent ΒΆ added in v0.43.0

func (s *AuditEventsService) GetProjectAuditEvent(pid interface{}, event int, options ...RequestOptionFunc) (*AuditEvent, *Response, error)

GetProjectAuditEvent gets a specific project audit event.

GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html

func (*AuditEventsService) ListGroupAuditEvents ΒΆ added in v0.43.0

func (s *AuditEventsService) ListGroupAuditEvents(gid interface{}, opt *ListAuditEventsOptions, options ...RequestOptionFunc) ([]*AuditEvent, *Response, error)

ListGroupAuditEvents gets a list of audit events for the specified group viewable by the authenticated user.

GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html

func (*AuditEventsService) ListInstanceAuditEvents ΒΆ added in v0.50.4

func (s *AuditEventsService) ListInstanceAuditEvents(opt *ListAuditEventsOptions, options ...RequestOptionFunc) ([]*AuditEvent, *Response, error)

ListInstanceAuditEvents gets a list of audit events for instance. Authentication as Administrator is required.

GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html

func (*AuditEventsService) ListProjectAuditEvents ΒΆ added in v0.43.0

func (s *AuditEventsService) ListProjectAuditEvents(pid interface{}, opt *ListAuditEventsOptions, options ...RequestOptionFunc) ([]*AuditEvent, *Response, error)

ListProjectAuditEvents gets a list of audit events for the specified project viewable by the authenticated user.

GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html

type Author ΒΆ

type Author struct {
	ID        int        `json:"id"`
	Username  string     `json:"username"`
	Email     string     `json:"email"`
	Name      string     `json:"name"`
	State     string     `json:"state"`
	Blocked   bool       `json:"blocked"`
	CreatedAt *time.Time `json:"created_at"`
}

Author represents a GitLab commit author

type AvailabilityValue ΒΆ added in v0.50.4

type AvailabilityValue string

AvailabilityValue represents an availability value within GitLab.

const (
	NotSet AvailabilityValue = "not_set"
	Busy   AvailabilityValue = "busy"
)

List of available availability values.

Undocummented, see code at: https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/app/models/user_status.rb#L22

func Availability ΒΆ added in v0.50.4

func Availability(v AvailabilityValue) *AvailabilityValue

Availability is a helper routine that allocates a new AvailabilityValue to store v and returns a pointer to it.

type Avatar ΒΆ added in v0.50.1

type Avatar struct {
	AvatarURL string `json:"avatar_url"`
}

Avatar represents a GitLab avatar.

GitLab API docs: https://docs.gitlab.com/ee/api/avatar.html

type AvatarRequestsService ΒΆ added in v0.50.1

type AvatarRequestsService struct {
	// contains filtered or unexported fields
}

AvatarRequestsService handles communication with the avatar related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/ee/api/avatar.html

func (*AvatarRequestsService) GetAvatar ΒΆ added in v0.50.1

func (s *AvatarRequestsService) GetAvatar(opt *GetAvatarOptions, options ...RequestOptionFunc) (*Avatar, *Response, error)

GetAvatar gets the avatar URL for a user with the given email address.

GitLab API docs: https://docs.gitlab.com/ee/api/avatar.html#get-a-single-avatar-url

type AwardEmoji ΒΆ added in v0.8.0

type AwardEmoji struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
	User struct {
		Name      string `json:"name"`
		Username  string `json:"username"`
		ID        int    `json:"id"`
		State     string `json:"state"`
		AvatarURL string `json:"avatar_url"`
		WebURL    string `json:"web_url"`
	} `json:"user"`
	CreatedAt     *time.Time `json:"created_at"`
	UpdatedAt     *time.Time `json:"updated_at"`
	AwardableID   int        `json:"awardable_id"`
	AwardableType string     `json:"awardable_type"`
}

AwardEmoji represents a GitLab Award Emoji.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html

type AwardEmojiService ΒΆ added in v0.8.0

type AwardEmojiService struct {
	// contains filtered or unexported fields
}

AwardEmojiService handles communication with the emoji awards related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html

func (*AwardEmojiService) CreateIssueAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) CreateIssueAwardEmoji(pid interface{}, issueIID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

CreateIssueAwardEmoji get an award emoji from issue.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji

func (*AwardEmojiService) CreateIssuesAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) CreateIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

CreateIssuesAwardEmojiOnNote gets an award emoji on a note from an issue.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) CreateMergeRequestAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) CreateMergeRequestAwardEmoji(pid interface{}, mergeRequestIID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

CreateMergeRequestAwardEmoji get an award emoji from merge request.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji

func (*AwardEmojiService) CreateMergeRequestAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) CreateMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

CreateMergeRequestAwardEmojiOnNote gets an award emoji on a note from a merge request.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) CreateSnippetAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) CreateSnippetAwardEmoji(pid interface{}, snippetID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

CreateSnippetAwardEmoji get an award emoji from snippet.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji

func (*AwardEmojiService) CreateSnippetAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) CreateSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

CreateSnippetAwardEmojiOnNote gets an award emoji on a note from a snippet.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) DeleteIssueAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) DeleteIssueAwardEmoji(pid interface{}, issueIID, awardID int, options ...RequestOptionFunc) (*Response, error)

DeleteIssueAwardEmoji delete award emoji on an issue.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji-on-a-note

func (*AwardEmojiService) DeleteIssuesAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) DeleteIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error)

DeleteIssuesAwardEmojiOnNote deletes an award emoji on a note from an issue.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) DeleteMergeRequestAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) DeleteMergeRequestAwardEmoji(pid interface{}, mergeRequestIID, awardID int, options ...RequestOptionFunc) (*Response, error)

DeleteMergeRequestAwardEmoji delete award emoji on a merge request.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji-on-a-note

func (*AwardEmojiService) DeleteMergeRequestAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) DeleteMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error)

DeleteMergeRequestAwardEmojiOnNote deletes an award emoji on a note from a merge request.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) DeleteSnippetAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) DeleteSnippetAwardEmoji(pid interface{}, snippetID, awardID int, options ...RequestOptionFunc) (*Response, error)

DeleteSnippetAwardEmoji delete award emoji on a snippet.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji-on-a-note

func (*AwardEmojiService) DeleteSnippetAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) DeleteSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error)

DeleteSnippetAwardEmojiOnNote deletes an award emoji on a note from a snippet.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) GetIssueAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) GetIssueAwardEmoji(pid interface{}, issueIID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

GetIssueAwardEmoji get an award emoji from issue.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji

func (*AwardEmojiService) GetIssuesAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) GetIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

GetIssuesAwardEmojiOnNote gets an award emoji on a note from an issue.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) GetMergeRequestAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) GetMergeRequestAwardEmoji(pid interface{}, mergeRequestIID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

GetMergeRequestAwardEmoji get an award emoji from merge request.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji

func (*AwardEmojiService) GetMergeRequestAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) GetMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

GetMergeRequestAwardEmojiOnNote gets an award emoji on a note from a merge request.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) GetSnippetAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) GetSnippetAwardEmoji(pid interface{}, snippetID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

GetSnippetAwardEmoji get an award emoji from snippet.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji

func (*AwardEmojiService) GetSnippetAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) GetSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

GetSnippetAwardEmojiOnNote gets an award emoji on a note from a snippet.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) ListIssueAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) ListIssueAwardEmoji(pid interface{}, issueIID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

ListIssueAwardEmoji gets a list of all award emoji on the issue.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji

func (*AwardEmojiService) ListIssuesAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) ListIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

ListIssuesAwardEmojiOnNote gets a list of all award emoji on a note from the issue.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) ListMergeRequestAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) ListMergeRequestAwardEmoji(pid interface{}, mergeRequestIID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

ListMergeRequestAwardEmoji gets a list of all award emoji on the merge request.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji

func (*AwardEmojiService) ListMergeRequestAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) ListMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

ListMergeRequestAwardEmojiOnNote gets a list of all award emoji on a note from the merge request.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

func (*AwardEmojiService) ListSnippetAwardEmoji ΒΆ added in v0.8.0

func (s *AwardEmojiService) ListSnippetAwardEmoji(pid interface{}, snippetID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

ListSnippetAwardEmoji gets a list of all award emoji on the snippet.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji

func (*AwardEmojiService) ListSnippetAwardEmojiOnNote ΒΆ added in v0.8.0

func (s *AwardEmojiService) ListSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

ListSnippetAwardEmojiOnNote gets a list of all award emoji on a note from the snippet.

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes

type BadgeKind ΒΆ added in v0.16.0

type BadgeKind string

BadgeKind represents a GitLab Badge Kind

const (
	ProjectBadgeKind BadgeKind = "project"
	GroupBadgeKind   BadgeKind = "group"
)

all possible values Badge Kind

type BaseSystemEvent ΒΆ added in v0.24.0

type BaseSystemEvent struct {
	EventName string `json:"event_name"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

BaseSystemEvent contains system hook's common properties.

GitLab API docs: https://docs.gitlab.com/ee/system_hooks/system_hooks.html

type BasicProject ΒΆ added in v0.50.1

type BasicProject struct {
	ID                int        `json:"id"`
	Description       string     `json:"description"`
	Name              string     `json:"name"`
	NameWithNamespace string     `json:"name_with_namespace"`
	Path              string     `json:"path"`
	PathWithNamespace string     `json:"path_with_namespace"`
	CreatedAt         *time.Time `json:"created_at"`
}

BasicProject included in other service responses (such as todos).

type BasicUser ΒΆ added in v0.21.0

type BasicUser struct {
	ID        int        `json:"id"`
	Username  string     `json:"username"`
	Name      string     `json:"name"`
	State     string     `json:"state"`
	CreatedAt *time.Time `json:"created_at"`
	AvatarURL string     `json:"avatar_url"`
	WebURL    string     `json:"web_url"`
}

BasicUser included in other service responses (such as merge requests, pipelines, etc).

type BillableGroupMember ΒΆ added in v0.44.0

type BillableGroupMember 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"`
	Email          string  `json:"email"`
	LastActivityOn ISOTime `json:"last_activity_on"`
}

BillableGroupMember represents a GitLab billable group member.

GitLab API docs: https://docs.gitlab.com/ee/api/members.html#list-all-billable-members-of-a-group

type Blob ΒΆ added in v0.9.0

type Blob struct {
	Basename  string `json:"basename"`
	Data      string `json:"data"`
	Filename  string `json:"filename"`
	ID        int    `json:"id"`
	Ref       string `json:"ref"`
	Startline int    `json:"startline"`
	ProjectID int    `json:"project_id"`
}

Blob represents a single blob.

type BoardList ΒΆ added in v0.8.0

type BoardList struct {
	ID       int    `json:"id"`
	Label    *Label `json:"label"`
	Position int    `json:"position"`
}

BoardList represents a GitLab board list.

GitLab API docs: https://docs.gitlab.com/ce/api/boards.html

func (BoardList) String ΒΆ added in v0.8.0

func (b BoardList) String() string

type BoolValue ΒΆ added in v0.11.0

type BoolValue bool

BoolValue is a boolean value with advanced json unmarshaling features.

func (*BoolValue) UnmarshalJSON ΒΆ added in v0.11.0

func (t *BoolValue) UnmarshalJSON(b []byte) error

UnmarshalJSON allows 1, 0, "true", and "false" to be considered as boolean values Needed for: https://gitlab.com/gitlab-org/gitlab-ce/issues/50122 https://gitlab.com/gitlab-org/gitlab/-/issues/233941 https://github.com/gitlabhq/terraform-provider-gitlab/issues/348

type Branch ΒΆ

type Branch struct {
	Commit             *Commit `json:"commit"`
	Name               string  `json:"name"`
	Protected          bool    `json:"protected"`
	Merged             bool    `json:"merged"`
	Default            bool    `json:"default"`
	CanPush            bool    `json:"can_push"`
	DevelopersCanPush  bool    `json:"developers_can_push"`
	DevelopersCanMerge bool    `json:"developers_can_merge"`
	WebURL             string  `json:"web_url"`
}

Branch represents a GitLab branch.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html

func (Branch) String ΒΆ

func (b Branch) String() string

type BranchAccessDescription ΒΆ added in v0.7.4

type BranchAccessDescription struct {
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	UserID                 int              `json:"user_id"`
	GroupID                int              `json:"group_id"`
}

BranchAccessDescription represents the access description for a protected branch.

GitLab API docs: https://docs.gitlab.com/ce/api/protected_branches.html#protected-branches-api

type BranchPermissionOptions ΒΆ added in v0.44.0

type BranchPermissionOptions struct {
	UserID      *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID     *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	DeployKeyID *int              `url:"deploy_key_id,omitempty" json:"deploy_key_id,omitempty"`
	AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
}

BranchPermissionOptions represents a branch permission option.

GitLab API docs: https://docs.gitlab.com/ce/api/protected_branches.html#protect-repository-branches

type BranchesService ΒΆ

type BranchesService struct {
	// contains filtered or unexported fields
}

BranchesService handles communication with the branch related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html

func (*BranchesService) CreateBranch ΒΆ

func (s *BranchesService) CreateBranch(pid interface{}, opt *CreateBranchOptions, options ...RequestOptionFunc) (*Branch, *Response, error)

CreateBranch creates branch from commit SHA or existing branch.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html#create-repository-branch

func (*BranchesService) DeleteBranch ΒΆ

func (s *BranchesService) DeleteBranch(pid interface{}, branch string, options ...RequestOptionFunc) (*Response, error)

DeleteBranch deletes an existing branch.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html#delete-repository-branch

func (*BranchesService) DeleteMergedBranches ΒΆ added in v0.6.0

func (s *BranchesService) DeleteMergedBranches(pid interface{}, options ...RequestOptionFunc) (*Response, error)

DeleteMergedBranches deletes all branches that are merged into the project's default branch.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html#delete-merged-branches

func (*BranchesService) GetBranch ΒΆ

func (s *BranchesService) GetBranch(pid interface{}, branch string, options ...RequestOptionFunc) (*Branch, *Response, error)

GetBranch gets a single project repository branch.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html#get-single-repository-branch

func (*BranchesService) ListBranches ΒΆ

func (s *BranchesService) ListBranches(pid interface{}, opts *ListBranchesOptions, options ...RequestOptionFunc) ([]*Branch, *Response, error)

ListBranches gets a list of repository branches from a project, sorted by name alphabetically.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html#list-repository-branches

func (*BranchesService) ProtectBranch ΒΆ

func (s *BranchesService) ProtectBranch(pid interface{}, branch string, opts *ProtectBranchOptions, options ...RequestOptionFunc) (*Branch, *Response, error)

ProtectBranch protects a single project repository branch. This is an idempotent function, protecting an already protected repository branch still returns a 200 OK status code.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html#protect-repository-branch

func (*BranchesService) UnprotectBranch ΒΆ

func (s *BranchesService) UnprotectBranch(pid interface{}, branch string, options ...RequestOptionFunc) (*Branch, *Response, error)

UnprotectBranch unprotects a single project repository branch. This is an idempotent function, unprotecting an already unprotected repository branch still returns a 200 OK status code.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html#unprotect-repository-branch

type Bridge ΒΆ added in v0.40.0

type Bridge struct {
	Commit             *Commit       `json:"commit"`
	Coverage           float64       `json:"coverage"`
	AllowFailure       bool          `json:"allow_failure"`
	CreatedAt          *time.Time    `json:"created_at"`
	StartedAt          *time.Time    `json:"started_at"`
	FinishedAt         *time.Time    `json:"finished_at"`
	Duration           float64       `json:"duration"`
	ID                 int           `json:"id"`
	Name               string        `json:"name"`
	Pipeline           PipelineInfo  `json:"pipeline"`
	Ref                string        `json:"ref"`
	Stage              string        `json:"stage"`
	Status             string        `json:"status"`
	Tag                bool          `json:"tag"`
	WebURL             string        `json:"web_url"`
	User               *User         `json:"user"`
	DownstreamPipeline *PipelineInfo `json:"downstream_pipeline"`
}

Bridge represents a pipeline bridge.

GitLab API docs: https://docs.gitlab.com/ce/api/jobs.html#list-pipeline-bridges

type BroadcastMessage ΒΆ added in v0.8.1

type BroadcastMessage struct {
	Message  string     `json:"message"`
	StartsAt *time.Time `json:"starts_at"`
	EndsAt   *time.Time `json:"ends_at"`
	Color    string     `json:"color"`
	Font     string     `json:"font"`
	ID       int        `json:"id"`
	Active   bool       `json:"active"`
}

BroadcastMessage represents a GitLab issue board.

GitLab API docs: https://docs.gitlab.com/ce/api/broadcast_messages.html#get-all-broadcast-messages

type BroadcastMessagesService ΒΆ added in v0.8.1

type BroadcastMessagesService struct {
	// contains filtered or unexported fields
}

BroadcastMessagesService handles communication with the broadcast messages methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/ce/api/broadcast_messages.html

func (*BroadcastMessagesService) CreateBroadcastMessage ΒΆ added in v0.8.1

CreateBroadcastMessage creates a message to broadcast.

GitLab API docs: https://docs.gitlab.com/ce/api/broadcast_messages.html#create-a-broadcast-message

func (*BroadcastMessagesService) DeleteBroadcastMessage ΒΆ added in v0.8.1

func (s *BroadcastMessagesService) DeleteBroadcastMessage(broadcast int, options ...RequestOptionFunc) (*Response, error)

DeleteBroadcastMessage deletes a broadcasted message.

GitLab API docs: https://docs.gitlab.com/ce/api/broadcast_messages.html#delete-a-broadcast-message

func (*BroadcastMessagesService) GetBroadcastMessage ΒΆ added in v0.8.1

func (s *BroadcastMessagesService) GetBroadcastMessage(broadcast int, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error)

GetBroadcastMessage gets a single broadcast message.

GitLab API docs: https://docs.gitlab.com/ce/api/broadcast_messages.html#get-a-specific-broadcast-message

func (*BroadcastMessagesService) ListBroadcastMessages ΒΆ added in v0.8.1

ListBroadcastMessages gets a list of all broadcasted messages.

GitLab API docs: https://docs.gitlab.com/ce/api/broadcast_messages.html#get-all-broadcast-messages

func (*BroadcastMessagesService) UpdateBroadcastMessage ΒΆ added in v0.8.1

func (s *BroadcastMessagesService) UpdateBroadcastMessage(broadcast int, opt *UpdateBroadcastMessageOptions, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error)

UpdateBroadcastMessage update a broadcasted message.

GitLab API docs: https://docs.gitlab.com/ce/api/broadcast_messages.html#update-a-broadcast-message

type BuildEvent ΒΆ added in v0.4.0

type BuildEvent struct {
	ObjectKind        string     `json:"object_kind"`
	Ref               string     `json:"ref"`
	Tag               bool       `json:"tag"`
	BeforeSHA         string     `json:"before_sha"`
	SHA               string     `json:"sha"`
	BuildID           int        `json:"build_id"`
	BuildName         string     `json:"build_name"`
	BuildStage        string     `json:"build_stage"`
	BuildStatus       string     `json:"build_status"`
	BuildStartedAt    string     `json:"build_started_at"`
	BuildFinishedAt   string     `json:"build_finished_at"`
	BuildDuration     float64    `json:"build_duration"`
	BuildAllowFailure bool       `json:"build_allow_failure"`
	ProjectID         int        `json:"project_id"`
	ProjectName       string     `json:"project_name"`
	User              *EventUser `json:"user"`
	Commit            struct {
		ID          int    `json:"id"`
		SHA         string `json:"sha"`
		Message     string `json:"message"`
		AuthorName  string `json:"author_name"`
		AuthorEmail string `json:"author_email"`
		Status      string `json:"status"`
		Duration    int    `json:"duration"`
		StartedAt   string `json:"started_at"`
		FinishedAt  string `json:"finished_at"`
	} `json:"commit"`
	Repository *Repository `json:"repository"`
}

BuildEvent represents a build event

GitLab API docs: https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#build-events

type BuildStateValue ΒΆ added in v0.8.0

type BuildStateValue string

BuildStateValue represents a GitLab build state.

const (
	Pending  BuildStateValue = "pending"
	Created  BuildStateValue = "created"
	Running  BuildStateValue = "running"
	Success  BuildStateValue = "success"
	Failed   BuildStateValue = "failed"
	Canceled BuildStateValue = "canceled"
	Skipped  BuildStateValue = "skipped"
	Manual   BuildStateValue = "manual"
)

These constants represent all valid build states.

func BuildState ΒΆ

func BuildState(v BuildStateValue) *BuildStateValue

BuildState is a helper routine that allocates a new BuildStateValue to store v and returns a pointer to it.

type BurndownChartEvent ΒΆ added in v0.33.0

type BurndownChartEvent struct {
	CreatedAt *time.Time `json:"created_at"`
	Weight    *int       `json:"weight"`
	Action    *string    `json:"action"`
}

BurndownChartEvent reprensents a burnout chart event

GitLab API docs: https://docs.gitlab.com/ee/api/group_milestones.html#get-all-burndown-chart-events-for-a-single-milestone-starter

type CIYMLTemplate ΒΆ added in v0.11.1

type CIYMLTemplate struct {
	Name    string `json:"name"`
	Content string `json:"content"`
}

CIYMLTemplate represents a GitLab CI YML template.

GitLab API docs: https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html

type CIYMLTemplatesService ΒΆ added in v0.11.1

type CIYMLTemplatesService struct {
	// contains filtered or unexported fields
}

CIYMLTemplatesService handles communication with the gitlab CI YML templates related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html

func (*CIYMLTemplatesService) GetTemplate ΒΆ added in v0.11.1

func (s *CIYMLTemplatesService) GetTemplate(key string, options ...RequestOptionFunc) (*CIYMLTemplate, *Response, error)

GetTemplate get a single GitLab CI YML template.

GitLab API docs: https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html#single-gitlab-ci-yml-template

func (*CIYMLTemplatesService) ListAllTemplates ΒΆ added in v0.11.1

func (s *CIYMLTemplatesService) ListAllTemplates(opt *ListCIYMLTemplatesOptions, options ...RequestOptionFunc) ([]*CIYMLTemplate, *Response, error)

ListAllTemplates get all GitLab CI YML templates.

GitLab API docs: https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html#list-gitlab-ci-yml-templates

type ChangeAllowedApproversOptions ΒΆ added in v0.12.1

type ChangeAllowedApproversOptions struct {
	ApproverGroupIDs []int `url:"approver_group_ids,omitempty" json:"approver_group_ids,omitempty"`
	ApproverIDs      []int `url:"approver_ids,omitempty" json:"approver_ids,omitempty"`
}

ChangeAllowedApproversOptions represents the available ChangeAllowedApprovers() options.

GitLab API docs: https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-allowed-approvers

type ChangeApprovalConfigurationOptions ΒΆ added in v0.12.1

type ChangeApprovalConfigurationOptions struct {
	ApprovalsBeforeMerge                      *int  `url:"approvals_before_merge,omitempty" json:"approvals_before_merge,omitempty"`
	DisableOverridingApproversPerMergeRequest *bool `` /* 126-byte string literal not displayed */
	MergeRequestsAuthorApproval               *bool `url:"merge_requests_author_approval,omitempty" json:"merge_requests_author_approval,omitempty"`
	MergeRequestsDisableCommittersApproval    *bool `url:"merge_requests_disable_committers_approval,omitempty" json:"merge_requests_disable_committers_approval,omitempty"`
	RequirePasswordToApprove                  *bool `url:"require_password_to_approve,omitempty" json:"require_password_to_approve,omitempty"`
	ResetApprovalsOnPush                      *bool `url:"reset_approvals_on_push,omitempty" json:"reset_approvals_on_push,omitempty"`
}

ChangeApprovalConfigurationOptions represents the available ApprovalConfiguration() options.

GitLab API docs: https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-configuration

type ChangeMergeRequestAllowedApproversOptions ΒΆ added in v0.21.0

type ChangeMergeRequestAllowedApproversOptions struct {
	ApproverIDs      []int `url:"approver_ids" json:"approver_ids"`
	ApproverGroupIDs []int `url:"approver_group_ids" json:"approver_group_ids"`
}

ChangeMergeRequestAllowedApproversOptions represents the available ChangeMergeRequestAllowedApprovers() options.

GitLab API docs: https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-allowed-approvers-for-merge-request

type ChangeMergeRequestApprovalConfigurationOptions ΒΆ added in v0.21.0

type ChangeMergeRequestApprovalConfigurationOptions struct {
	ApprovalsRequired *int `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
}

ChangeMergeRequestApprovalConfigurationOptions represents the available ChangeMergeRequestApprovalConfiguration() options.

GitLab API docs: https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-approval-configuration

type CherryPickCommitOptions ΒΆ added in v0.4.1

type CherryPickCommitOptions struct {
	Branch  *string `url:"branch,omitempty" json:"branch,omitempty"`
	DryRun  *bool   `url:"dry_run,omitempty" json:"dry_run,omitempty"`
	Message *string `url:"message,omitempty" json:"message,omitempty"`
}

CherryPickCommitOptions represents the available CherryPickCommit() options.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#cherry-pick-a-commit

type Client ΒΆ

type Client struct {

	// User agent used when communicating with the GitLab API.
	UserAgent string

	// Services used for talking to different parts of the GitLab API.
	AccessRequests        *AccessRequestsService
	Applications          *ApplicationsService
	AuditEvents           *AuditEventsService
	Avatar                *AvatarRequestsService
	AwardEmoji            *AwardEmojiService
	Boards                *IssueBoardsService
	Branches              *BranchesService
	BroadcastMessage      *BroadcastMessagesService
	CIYMLTemplate         *CIYMLTemplatesService
	Commits               *CommitsService
	ContainerRegistry     *ContainerRegistryService
	CustomAttribute       *CustomAttributesService
	DeployKeys            *DeployKeysService
	DeployTokens          *DeployTokensService
	Deployments           *DeploymentsService
	Discussions           *DiscussionsService
	Environments          *EnvironmentsService
	EpicIssues            *EpicIssuesService
	Epics                 *EpicsService
	Events                *EventsService
	Features              *FeaturesService
	FreezePeriods         *FreezePeriodsService
	GitIgnoreTemplates    *GitIgnoreTemplatesService
	GroupBadges           *GroupBadgesService
	GroupCluster          *GroupClustersService
	GroupImportExport     *GroupImportExportService
	GroupIssueBoards      *GroupIssueBoardsService
	GroupLabels           *GroupLabelsService
	GroupMembers          *GroupMembersService
	GroupMilestones       *GroupMilestonesService
	GroupVariables        *GroupVariablesService
	GroupWikis            *GroupWikisService
	Groups                *GroupsService
	InstanceCluster       *InstanceClustersService
	InstanceVariables     *InstanceVariablesService
	Invites               *InvitesService
	IssueLinks            *IssueLinksService
	Issues                *IssuesService
	IssuesStatistics      *IssuesStatisticsService
	Jobs                  *JobsService
	Keys                  *KeysService
	Labels                *LabelsService
	License               *LicenseService
	LicenseTemplates      *LicenseTemplatesService
	ManagedLicenses       *ManagedLicensesService
	MergeRequestApprovals *MergeRequestApprovalsService
	MergeRequests         *MergeRequestsService
	Milestones            *MilestonesService
	Namespaces            *NamespacesService
	Notes                 *NotesService
	NotificationSettings  *NotificationSettingsService
	Packages              *PackagesService
	Pages                 *PagesService
	PagesDomains          *PagesDomainsService
	PipelineSchedules     *PipelineSchedulesService
	PipelineTriggers      *PipelineTriggersService
	Pipelines             *PipelinesService
	ProjectBadges         *ProjectBadgesService
	ProjectAccessTokens   *ProjectAccessTokensService
	ProjectCluster        *ProjectClustersService
	ProjectImportExport   *ProjectImportExportService
	ProjectMembers        *ProjectMembersService
	ProjectMirrors        *ProjectMirrorService
	ProjectSnippets       *ProjectSnippetsService
	ProjectVariables      *ProjectVariablesService
	Projects              *ProjectsService
	ProtectedBranches     *ProtectedBranchesService
	ProtectedEnvironments *ProtectedEnvironmentsService
	ProtectedTags         *ProtectedTagsService
	ReleaseLinks          *ReleaseLinksService
	Releases              *ReleasesService
	Repositories          *RepositoriesService
	RepositoryFiles       *RepositoryFilesService
	ResourceLabelEvents   *ResourceLabelEventsService
	ResourceStateEvents   *ResourceStateEventsService
	Runners               *RunnersService
	Search                *SearchService
	Services              *ServicesService
	Settings              *SettingsService
	Sidekiq               *SidekiqService
	Snippets              *SnippetsService
	SystemHooks           *SystemHooksService
	Tags                  *TagsService
	Todos                 *TodosService
	Users                 *UsersService
	Validate              *ValidateService
	Version               *VersionService
	Wikis                 *WikisService
	// contains filtered or unexported fields
}

A Client manages communication with the GitLab API.

func NewBasicAuthClient ΒΆ added in v0.10.1

func NewBasicAuthClient(username, password string, options ...ClientOptionFunc) (*Client, error)

NewBasicAuthClient returns a new GitLab API client. To use API methods which require authentication, provide a valid username and password.

func NewClient ΒΆ

func NewClient(token string, options ...ClientOptionFunc) (*Client, error)

NewClient returns a new GitLab API client. To use API methods which require authentication, provide a valid private or personal token.

func NewJobClient ΒΆ added in v0.51.0

func NewJobClient(token string, options ...ClientOptionFunc) (*Client, error)

NewJobClient returns a new GitLab API client. To use API methods which require authentication, provide a valid job token.

func NewOAuthClient ΒΆ

func NewOAuthClient(token string, options ...ClientOptionFunc) (*Client, error)

NewOAuthClient returns a new GitLab API client. To use API methods which require authentication, provide a valid oauth token.

func (*Client) BaseURL ΒΆ

func (c *Client) BaseURL() *url.URL

BaseURL return a copy of the baseURL.

func (*Client) Do ΒΆ

func (c *Client) Do(req *retryablehttp.Request, v interface{}) (*Response, error)

Do sends an API request and returns the API response. The API response is JSON decoded and stored in the value pointed to by v, or returned as an error if an API error has occurred. If v implements the io.Writer interface, the raw response body will be written to v, without attempting to first decode it.

func (*Client) NewRequest ΒΆ

func (c *Client) NewRequest(method, path string, opt interface{}, options []RequestOptionFunc) (*retryablehttp.Request, error)

NewRequest creates an API request. A relative URL path can be provided in path, in which case it is resolved relative to the base URL of the Client. Relative URL paths should always be specified without a preceding slash. If specified, the value pointed to by body is JSON encoded and included as the request body.

type ClientOptionFunc ΒΆ added in v0.31.0

type ClientOptionFunc func(*Client) error

ClientOptionFunc can be used to customize a new GitLab API client.

func WithBaseURL ΒΆ added in v0.31.0

func WithBaseURL(urlStr string) ClientOptionFunc

WithBaseURL sets the base URL for API requests to a custom endpoint.

func WithCustomBackoff ΒΆ added in v0.31.0

func WithCustomBackoff(backoff retryablehttp.Backoff) ClientOptionFunc

WithCustomBackoff can be used to configure a custom backoff policy.

func WithCustomLeveledLogger ΒΆ added in v0.49.0

func WithCustomLeveledLogger(leveledLogger retryablehttp.LeveledLogger) ClientOptionFunc

WithCustomLeveledLogger can be used to configure a custom retryablehttp leveled logger.

func WithCustomLimiter ΒΆ added in v0.35.0

func WithCustomLimiter(limiter RateLimiter) ClientOptionFunc

WithCustomLimiter injects a custom rate limiter to the client.

func WithCustomLogger ΒΆ added in v0.49.0

func WithCustomLogger(logger retryablehttp.Logger) ClientOptionFunc

WithCustomLogger can be used to configure a custom retryablehttp logger.

func WithCustomRetry ΒΆ added in v0.31.0

func WithCustomRetry(checkRetry retryablehttp.CheckRetry) ClientOptionFunc

WithCustomRetry can be used to configure a custom retry policy.

func WithHTTPClient ΒΆ added in v0.31.0

func WithHTTPClient(httpClient *http.Client) ClientOptionFunc

WithHTTPClient can be used to configure a custom HTTP client.

func WithoutRetries ΒΆ added in v0.31.0

func WithoutRetries() ClientOptionFunc

WithoutRetries disables the default retry logic.

type Commit ΒΆ

type Commit struct {
	ID             string           `json:"id"`
	ShortID        string           `json:"short_id"`
	Title          string           `json:"title"`
	AuthorName     string           `json:"author_name"`
	AuthorEmail    string           `json:"author_email"`
	AuthoredDate   *time.Time       `json:"authored_date"`
	CommitterName  string           `json:"committer_name"`
	CommitterEmail string           `json:"committer_email"`
	CommittedDate  *time.Time       `json:"committed_date"`
	CreatedAt      *time.Time       `json:"created_at"`
	Message        string           `json:"message"`
	ParentIDs      []string         `json:"parent_ids"`
	Stats          *CommitStats     `json:"stats"`
	Status         *BuildStateValue `json:"status"`
	LastPipeline   *PipelineInfo    `json:"last_pipeline"`
	ProjectID      int              `json:"project_id"`
	WebURL         string           `json:"web_url"`
}

Commit represents a GitLab commit.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html

func (Commit) String ΒΆ

func (c Commit) String() string

type CommitActionOptions ΒΆ added in v0.39.0

type CommitActionOptions struct {
	Action          *FileActionValue `url:"action,omitempty" json:"action,omitempty"`
	FilePath        *string          `url:"file_path,omitempty" json:"file_path,omitempty"`
	PreviousPath    *string          `url:"previous_path,omitempty" json:"previous_path,omitempty"`
	Content         *string          `url:"content,omitempty" json:"content,omitempty"`
	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"`
}

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 CommitComment ΒΆ

type CommitComment struct {
	Note     string `json:"note"`
	Path     string `json:"path"`
	Line     int    `json:"line"`
	LineType string `json:"line_type"`
	Author   Author `json:"author"`
}

CommitComment represents a GitLab commit comment.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html

func (CommitComment) String ΒΆ

func (c CommitComment) String() string

type CommitCommentEvent ΒΆ added in v0.3.1

type CommitCommentEvent struct {
	ObjectKind string `json:"object_kind"`
	User       *User  `json:"user"`
	ProjectID  int    `json:"project_id"`
	Project    struct {
		Name              string          `json:"name"`
		Description       string          `json:"description"`
		AvatarURL         string          `json:"avatar_url"`
		GitSSHURL         string          `json:"git_ssh_url"`
		GitHTTPURL        string          `json:"git_http_url"`
		Namespace         string          `json:"namespace"`
		PathWithNamespace string          `json:"path_with_namespace"`
		DefaultBranch     string          `json:"default_branch"`
		Homepage          string          `json:"homepage"`
		URL               string          `json:"url"`
		SSHURL            string          `json:"ssh_url"`
		HTTPURL           string          `json:"http_url"`
		WebURL            string          `json:"web_url"`
		Visibility        VisibilityValue `json:"visibility"`
	} `json:"project"`
	Repository       *Repository `json:"repository"`
	ObjectAttributes struct {
		ID           int    `json:"id"`
		Note         string `json:"note"`
		NoteableType string `json:"noteable_type"`
		AuthorID     int    `json:"author_id"`
		CreatedAt    string `json:"created_at"`
		UpdatedAt    string `json:"updated_at"`
		ProjectID    int    `json:"project_id"`
		Attachment   string `json:"attachment"`
		LineCode     string `json:"line_code"`
		CommitID     string `json:"commit_id"`
		NoteableID   int    `json:"noteable_id"`
		System       bool   `json:"system"`
		StDiff       struct {
			Diff        string `json:"diff"`
			NewPath     string `json:"new_path"`
			OldPath     string `json:"old_path"`
			AMode       string `json:"a_mode"`
			BMode       string `json:"b_mode"`
			NewFile     bool   `json:"new_file"`
			RenamedFile bool   `json:"renamed_file"`
			DeletedFile bool   `json:"deleted_file"`
		} `json:"st_diff"`
		Description string `json:"description"`
		URL         string `json:"url"`
	} `json:"object_attributes"`
	Commit *struct {
		ID        string     `json:"id"`
		Title     string     `json:"title"`
		Message   string     `json:"message"`
		Timestamp *time.Time `json:"timestamp"`
		URL       string     `json:"url"`
		Author    struct {
			Name  string `json:"name"`
			Email string `json:"email"`
		} `json:"author"`
	} `json:"commit"`
}

CommitCommentEvent represents a comment on a commit event.

GitLab API docs: https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#comment-on-commit

type CommitRef ΒΆ added in v0.10.8

type CommitRef struct {
	Type string `json:"type"`
	Name string `json:"name"`
}

CommitRef represents the reference of branches/tags in a commit.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-references-a-commit-is-pushed-to

type CommitStats ΒΆ added in v0.4.1

type CommitStats struct {
	Additions int `json:"additions"`
	Deletions int `json:"deletions"`
	Total     int `json:"total"`
}

CommitStats represents the number of added and deleted files in a commit.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html

type CommitStatus ΒΆ

type CommitStatus struct {
	ID           int        `json:"id"`
	SHA          string     `json:"sha"`
	Ref          string     `json:"ref"`
	Status       string     `json:"status"`
	CreatedAt    *time.Time `json:"created_at"`
	StartedAt    *time.Time `json:"started_at"`
	FinishedAt   *time.Time `json:"finished_at"`
	Name         string     `json:"name"`
	AllowFailure bool       `json:"allow_failure"`
	Author       Author     `json:"author"`
	Description  string     `json:"description"`
	TargetURL    string     `json:"target_url"`
}

CommitStatus represents a GitLab commit status.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-the-status-of-a-commit

type CommitsService ΒΆ

type CommitsService struct {
	// contains filtered or unexported fields
}

CommitsService handles communication with the commit related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html

func (*CommitsService) CherryPickCommit ΒΆ added in v0.4.1

func (s *CommitsService) CherryPickCommit(pid interface{}, sha string, opt *CherryPickCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error)

CherryPickCommit cherry picks a commit to a given branch.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#cherry-pick-a-commit

func (*CommitsService) CreateCommit ΒΆ added in v0.4.1

func (s *CommitsService) CreateCommit(pid interface{}, opt *CreateCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error)

CreateCommit creates a commit with multiple files and actions.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions

func (*CommitsService) GetCommit ΒΆ

func (s *CommitsService) GetCommit(pid interface{}, sha string, options ...RequestOptionFunc) (*Commit, *Response, error)

GetCommit gets a specific commit identified by the commit hash or name of a branch or tag.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-a-single-commit

func (*CommitsService) GetCommitComments ΒΆ

func (s *CommitsService) GetCommitComments(pid interface{}, sha string, opt *GetCommitCommentsOptions, options ...RequestOptionFunc) ([]*CommitComment, *Response, error)

GetCommitComments gets the comments of a commit in a project.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-the-comments-of-a-commit

func (*CommitsService) GetCommitDiff ΒΆ

func (s *CommitsService) GetCommitDiff(pid interface{}, sha string, opt *GetCommitDiffOptions, options ...RequestOptionFunc) ([]*Diff, *Response, error)

GetCommitDiff gets the diff of a commit in a project..

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-the-diff-of-a-commit

func (*CommitsService) GetCommitRefs ΒΆ added in v0.10.8

func (s *CommitsService) GetCommitRefs(pid interface{}, sha string, opt *GetCommitRefsOptions, options ...RequestOptionFunc) ([]*CommitRef, *Response, error)

GetCommitRefs gets all references (from branches or tags) a commit is pushed to

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-references-a-commit-is-pushed-to

func (*CommitsService) GetCommitStatuses ΒΆ

func (s *CommitsService) GetCommitStatuses(pid interface{}, sha string, opt *GetCommitStatusesOptions, options ...RequestOptionFunc) ([]*CommitStatus, *Response, error)

GetCommitStatuses gets the statuses of a commit in a project.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-the-status-of-a-commit

func (*CommitsService) GetGPGSiganature ΒΆ added in v0.19.0

func (s *CommitsService) GetGPGSiganature(pid interface{}, sha string, options ...RequestOptionFunc) (*GPGSignature, *Response, error)

GetGPGSiganature gets a GPG signature of a commit.

GitLab API docs: https://docs.gitlab.com/ee/api/commits.html#get-gpg-signature-of-a-commit

func (*CommitsService) GetMergeRequestsByCommit ΒΆ added in v0.11.0

func (s *CommitsService) GetMergeRequestsByCommit(pid interface{}, sha string, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)

GetMergeRequestsByCommit gets merge request associated with a commit.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#list-merge-requests-associated-with-a-commit

func (*CommitsService) ListCommits ΒΆ

func (s *CommitsService) ListCommits(pid interface{}, opt *ListCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)

ListCommits gets a list of repository commits in a project.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#list-commits

func (*CommitsService) PostCommitComment ΒΆ

func (s *CommitsService) PostCommitComment(pid interface{}, sha string, opt *PostCommitCommentOptions, options ...RequestOptionFunc) (*CommitComment, *Response, error)

PostCommitComment adds a comment to a commit. Optionally you can post comments on a specific line of a commit. Therefor both path, line_new and line_old are required.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#post-comment-to-commit

func (*CommitsService) RevertCommit ΒΆ added in v0.19.0

func (s *CommitsService) RevertCommit(pid interface{}, sha string, opt *RevertCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error)

RevertCommit reverts a commit in a given branch.

GitLab API docs: https://docs.gitlab.com/ee/api/commits.html#revert-a-commit

func (*CommitsService) SetCommitStatus ΒΆ

func (s *CommitsService) SetCommitStatus(pid interface{}, sha string, opt *SetCommitStatusOptions, options ...RequestOptionFunc) (*CommitStatus, *Response, error)

SetCommitStatus sets the status of a commit in a project.

GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#post-the-status-to-commit

type Compare ΒΆ

type Compare struct {
	Commit         *Commit   `json:"commit"`
	Commits        []*Commit `json:"commits"`
	Diffs          []*Diff   `json:"diffs"`
	CompareTimeout bool      `json:"compare_timeout"`
	CompareSameRef bool      `json:"compare_same_ref"`
}

Compare represents the result of a comparison of branches, tags or commits.

GitLab API docs: https://docs.gitlab.com/ce/api/repositories.html#compare-branches-tags-or-commits

func (Compare) String ΒΆ

func (c Compare) String() string

type CompareOptions ΒΆ

type CompareOptions struct {
	From     *string `url:"from,omitempty" json:"from,omitempty"`
	To       *string `url:"to,omitempty" json:"to,omitempty"`
	Straight *bool   `url:"straight,omitempty" json:"straight,omitempty"`
}

CompareOptions represents the available Compare() options.

GitLab API docs: https://docs.gitlab.com/ce/api/repositories.html#compare-branches-tags-or-commits

type CompoundMetrics ΒΆ added in v0.8.1

type CompoundMetrics struct {
	QueueMetrics
	ProcessMetrics
	JobStats
}

CompoundMetrics represents the GitLab sidekiq compounded stats.

GitLab API docs: https://docs.gitlab.com/ce/api/sidekiq_metrics.html#get-a-compound-response-of-all-the-previously-mentioned-metrics

type ContainerExpirationPolicy ΒΆ added in v0.43.0

type ContainerExpirationPolicy struct {
	Cadence         string     `json:"cadence"`
	KeepN           int        `json:"keep_n"`
	OlderThan       string     `json:"older_than"`
	NameRegexDelete string     `json:"name_regex_delete"`
	NameRegexKeep   string     `json:"name_regex_keep"`
	Enabled         bool       `json:"enabled"`
	NextRunAt       *time.Time `json:"next_run_at"`
}

ContainerExpirationPolicy represents the container expiration policy.

type ContainerExpirationPolicyAttributes ΒΆ added in v0.43.0

type ContainerExpirationPolicyAttributes struct {
	Cadence         *string `url:"cadence,omitempty" json:"cadence,omitempty"`
	KeepN           *int    `url:"keep_n,omitempty" json:"keep_n,omitempty"`
	OlderThan       *string `url:"older_than,omitempty" json:"older_than,omitempty"`
	NameRegexDelete *string `url:"name_regex_delete,omitempty" json:"name_regex_delete,omitempty"`
	NameRegexKeep   *string `url:"name_regex_keep,omitempty" json:"name_regex_keep,omitempty"`
	Enabled         *bool   `url:"enabled,omitempty" json:"enabled,omitempty"`

	// Deprecated members
	NameRegex *string `url:"name_regex,omitempty" json:"name_regex,omitempty"`
}

ContainerExpirationPolicyAttributes represents the available container expiration policy attributes.

GitLab API docs: https://docs.gitlab.com/ee/api/projects.html#create-project

type ContainerRegistryService ΒΆ added in v0.16.0

type ContainerRegistryService struct {
	// contains filtered or unexported fields
}

ContainerRegistryService handles communication with the container registry related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html

func (*ContainerRegistryService) DeleteRegistryRepository ΒΆ added in v0.16.0

func (s *ContainerRegistryService) DeleteRegistryRepository(pid interface{}, repository int, options ...RequestOptionFunc) (*Response, error)

DeleteRegistryRepository deletes a repository in a registry.

GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html#delete-registry-repository

func (*ContainerRegistryService) DeleteRegistryRepositoryTag ΒΆ added in v0.16.0

func (s *ContainerRegistryService) DeleteRegistryRepositoryTag(pid interface{}, repository int, tagName string, options ...RequestOptionFunc) (*Response, error)

DeleteRegistryRepositoryTag deletes a registry repository tag.

GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html#delete-a-registry-repository-tag

func (*ContainerRegistryService) DeleteRegistryRepositoryTags ΒΆ added in v0.16.0

func (s *ContainerRegistryService) DeleteRegistryRepositoryTags(pid interface{}, repository int, opt *DeleteRegistryRepositoryTagsOptions, options ...RequestOptionFunc) (*Response, error)

DeleteRegistryRepositoryTags deletes repository tags in bulk based on given criteria.

GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html#delete-repository-tags-in-bulk

func (*ContainerRegistryService) GetRegistryRepositoryTagDetail ΒΆ added in v0.16.0

func (s *ContainerRegistryService) GetRegistryRepositoryTagDetail(pid interface{}, repository int, tagName string, options ...RequestOptionFunc) (*RegistryRepositoryTag, *Response, error)

GetRegistryRepositoryTagDetail get details of a registry repository tag

GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html#get-details-of-a-registry-repository-tag

func (*ContainerRegistryService) ListRegistryRepositories ΒΆ added in v0.16.0

func (s *ContainerRegistryService) ListRegistryRepositories(pid interface{}, opt *ListRegistryRepositoriesOptions, options ...RequestOptionFunc) ([]*RegistryRepository, *Response, error)

ListRegistryRepositories gets a list of registry repositories in a project.

GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html#list-registry-repositories

func (*ContainerRegistryService) ListRegistryRepositoryTags ΒΆ added in v0.16.0

func (s *ContainerRegistryService) ListRegistryRepositoryTags(pid interface{}, repository int, opt *ListRegistryRepositoryTagsOptions, options ...RequestOptionFunc) ([]*RegistryRepositoryTag, *Response, error)

ListRegistryRepositoryTags gets a list of tags for given registry repository.

GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html#list-registry-repository-tags

type ContributionEvent ΒΆ added in v0.8.0

type ContributionEvent struct {
	ID          int        `json:"id"`
	Title       string     `json:"title"`
	ProjectID   int        `json:"project_id"`
	ActionName  string     `json:"action_name"`
	TargetID    int        `json:"target_id"`
	TargetIID   int        `json:"target_iid"`
	TargetType  string     `json:"target_type"`
	AuthorID    int        `json:"author_id"`
	TargetTitle string     `json:"target_title"`
	CreatedAt   *time.Time `json:"created_at"`
	PushData    struct {
		CommitCount int    `json:"commit_count"`
		Action      string `json:"action"`
		RefType     string `json:"ref_type"`
		CommitFrom  string `json:"commit_from"`
		CommitTo    string `json:"commit_to"`
		Ref         string `json:"ref"`
		CommitTitle string `json:"commit_title"`
	} `json:"push_data"`
	Note   *Note `json:"note"`
	Author struct {
		Name      string `json:"name"`
		Username  string `json:"username"`
		ID        int    `json:"id"`
		State     string `json:"state"`
		AvatarURL string `json:"avatar_url"`
		WebURL    string `json:"web_url"`
	} `json:"author"`
	AuthorUsername string `json:"author_username"`
}

ContributionEvent represents a user's contribution

GitLab API docs: https://docs.gitlab.com/ce/api/events.html#get-user-contribution-events

type Contributor ΒΆ

type Contributor struct {
	Name      string `json:"name"`
	Email     string `json:"email"`
	Commits   int    `json:"commits"`
	Additions int    `json:"additions"`
	Deletions int    `json:"deletions"`
}

Contributor represents a GitLap contributor.

GitLab API docs: https://docs.gitlab.com/ce/api/repositories.html#contributors

func (Contributor) String ΒΆ

func (c Contributor) String() string

type CreateApplicationOptions ΒΆ added in v0.30.0

type CreateApplicationOptions struct {
	Name         *string `url:"name,omitempty" json:"name,omitempty"`
	RedirectURI  *string `url:"redirect_uri,omitempty" json:"redirect_uri,omitempty"`
	Scopes       *string `url:"scopes,omitempty" json:"scopes,omitempty"`
	Confidential *bool   `url:"confidential,omitempty" json:"confidential,omitempty"`
}

CreateApplicationOptions represents the available CreateApplication() options.

GitLab API docs: https://docs.gitlab.com/ce/api/applications.html#create-an-application

type CreateAwardEmojiOptions ΒΆ added in v0.10.6

type CreateAwardEmojiOptions struct {
	Name string `json:"name"`
}

CreateAwardEmojiOptions represents the available options for awarding emoji for a resource

GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji

type CreateBranchOptions ΒΆ

type CreateBranchOptions struct {
	Branch *string `url:"branch,omitempty" json:"branch,omitempty"`
	Ref    *string `url:"ref,omitempty" json:"ref,omitempty"`
}

CreateBranchOptions represents the available CreateBranch() options.

GitLab API docs: https://docs.gitlab.com/ce/api/branches.html#create-repository-branch

type CreateBroadcastMessageOptions ΒΆ added in v0.8.1

type CreateBroadcastMessageOptions struct {
	Message  *string    `url:"message" json:"message"`
	StartsAt *time.Time `url:"starts_at,omitempty" json:"starts_at,omitempty"`
	EndsAt   *time.Time `url:"ends_at,omitempty" json:"ends_at,omitempty"`
	Color    *string    `url:"color,omitempty" json:"color,omitempty"`
	Font     *string    `url:"font,omitempty" json:"font,omitempty"`
}

CreateBroadcastMessageOptions represents the available CreateBroadcastMessage() options.

GitLab API docs: https://docs.gitlab.com/ce/api/broadcast_messages.html#create-a-broadcast-message

type CreateCommitDiscussionOptions ΒΆ added in v0.11.2

type CreateCommitDiscussionOptions struct {
	Body      *string       `url:"body,omitempty" json:"body,omitempty"`
	CreatedAt *time.Time    `url:"created_at,omitempty" json:"created_at,omitempty"`
	Position  *NotePosition `url:"position,omitempty" json:"position,omitempty"`
}

CreateCommitDiscussionOptions represents the available CreateCommitDiscussion() options.

GitLab API docs: https://docs.gitlab.com/ce/api/discussions.html#create-new-commit-thread

type CreateCommitOptions ΒΆ added in v0.4.1

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 CreateEnvironmentOptions ΒΆ added in v0.7.0

type CreateEnvironmentOptions struct {
	Name        *string `url:"name,omitempty" json:"name,omitempty"`
	ExternalURL *string `url:"external_url,omitempty" json:"external_url,omitempty"`
}

CreateEnvironmentOptions represents the available CreateEnvironment() options.

GitLab API docs: https://docs.gitlab.com/ee/api/environments.html#create-a-new-environment

type CreateEpicDiscussionOptions ΒΆ added in v0.11.2

type CreateEpicDiscussionOptions struct {
	Body      *string    `url:"body,omitempty" json:"body,omitempty"`
	CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
}

CreateEpicDiscussionOptions represents the available CreateEpicDiscussion() options.

GitLab API docs: https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-epic-thread

type CreateEpicNoteOptions ΒΆ added in v0.17.0

type CreateEpicNoteOptions struct {
	Body *string `url:"body,omitempty" json:"body,omitempty"`
}

CreateEpicNoteOptions represents the available CreateEpicNote() options.

GitLab API docs: https://docs.gitlab.com/ee/api/notes.html#create-new-epic-note

type CreateEpicOptions ΒΆ added in v0.17.0

type CreateEpicOptions struct {
	Title            *string  `url:"title,omitempty" json:"title,omitempty"`
	Description      *string  `url:"description,omitempty" json:"description,omitempty"`
	Labels           Labels   `url:"labels,comma,omitempty" json:"labels,omitempty"`
	StartDateIsFixed *bool    `url:"start_date_is_fixed,omitempty" json:"start_date_is_fixed,omitempty"`
	StartDateFixed   *ISOTime `url:"start_date_fixed,omitempty" json:"start_date_fixed,omitempty"`
	DueDateIsFixed   *bool    `url:"due_date_is_fixed,omitempty" json:"due_date_is_fixed,omitempty"`
	DueDateFixed     *ISOTime `url:"due_date_fixed,omitempty" json:"due_date_fixed,omitempty"`
}

CreateEpicOptions represents the available CreateEpic() options.

GitLab API docs: https://docs.gitlab.com/ee/api/epics.html#new-epic

type CreateFileOptions ΒΆ

type CreateFileOptions struct {
	Branch        *string `url:"branch,omitempty" json:"branch,omitempty"`
	StartBranch   *string `url:"start_branch,omitempty" json:"start_branch,omitempty"`
	Encoding      *string `url:"encoding,omitempty" json:"encoding,omitempty"`
	AuthorEmail   *string `url:"author_email,omitempty" json:"author_email,omitempty"`
	AuthorName    *string `url:"author_name,omitempty" json:"author_name,omitempty"`
	Content       *string `url:"content,omitempty" json:"content,omitempty"`
	CommitMessage *string `url:"commit_message,omitempty" json:"commit_message,omitempty"`
}

CreateFileOptions represents the available CreateFile() options.

GitLab API docs: https://docs.gitlab.com/ce/api/repository_files.html#create-new-file-in-repository