gitlab

package module
Version: v0.72.0 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2022 License: Apache-2.0 Imports: 24 Imported by: 775

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
  • Error Tracking
  • Events
  • Feature Flags
  • Geo Nodes
  • Generic Packages
  • 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
  • Markdown
  • Merge Request Approvals
  • Merge Requests
  • Namespaces
  • Notes (comments)
  • Notification Settings
  • Open Source License Templates
  • Packages
  • Pages
  • Pages Domains
  • Personal Access Tokens
  • Pipeline Schedules
  • Pipeline Triggers
  • Pipelines
  • Plan limits
  • Project Access Requests
  • Project Badges
  • Project Clusters
  • Project Import/export
  • Project Members
  • Project Milestones
  • Project Snippets
  • Project Vulnerabilities
  • Project-Level Variables
  • Projects (including setting Webhooks)
  • Protected Branches
  • Protected Environments
  • Protected Tags
  • Repositories
  • Repository Files
  • Repository Submodules
  • Runners
  • Search
  • Services
  • Settings
  • Sidekiq Metrics
  • System Hooks
  • Tags
  • Todos
  • Topics
  • 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 := &gitlab.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")
	ErrUserApprovePrevented    = errors.New("Cannot approve 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")
	ErrUserConflict            = errors.New("User does not have a pending request")
	ErrUserDeactivatePrevented = errors.New("Cannot deactivate a user that is blocked by admin or by LDAP synchronization")
	ErrUserNotFound            = errors.New("User does not exist")
	ErrUserRejectPrevented     = errors.New("Cannot reject a user if not authenticated as administrator")
	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 int value to store v and returns a pointer to it.

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 PathEscape ΒΆ added in v0.53.0

func PathEscape(s string) string

Helper function to escape a project identifier.

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/ee/api/merge_requests.html#merge-a-merge-request

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"`
	SkipConfirmation *bool   `url:"skip_confirmation,omitempty" json:"skip_confirmation,omitempty"`
}

AddEmailOptions represents the available AddEmail() options.

GitLab API docs: https://docs.gitlab.com/ce/api/users.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 AddGPGKeyOptions ΒΆ added in v0.53.0

type AddGPGKeyOptions struct {
	Key *string `url:"key,omitempty" json:"key,omitempty"`
}

AddGPGKeyOptions represents the available AddGPGKey() options.

GitLab API docs: https://docs.gitlab.com/ce/api/users.html#add-a-gpg-key

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"`
	PushEventsBranchFilter   *string `url:"push_events_branch_filter,omitempty"  json:"push_events_branch_filter,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"`
	SubGroupEvents           *bool   `url:"subgroup_events,omitempty" json:"subgroup_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"`
	Name     *string `url:"name,omitempty" json:"name,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 Agent ΒΆ added in v0.66.0

type Agent struct {
	ID              int           `json:"id"`
	Name            string        `json:"name"`
	CreatedAt       *time.Time    `json:"created_at"`
	CreatedByUserID int           `json:"created_by_user_id"`
	ConfigProject   ConfigProject `json:"config_project"`
}

Agent represents a GitLab agent for Kubernetes.

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

func (Agent) String ΒΆ added in v0.66.0

func (a Agent) String() string

type AgentToken ΒΆ added in v0.66.0

type AgentToken struct {
	ID              int        `json:"id"`
	Name            string     `json:"name"`
	Description     string     `json:"description"`
	AgentID         int        `json:"agent_id"`
	Status          string     `json:"status"`
	CreatedAt       *time.Time `json:"created_at"`
	CreatedByUserID int        `json:"created_by_user_id"`
	LastUsedAt      *time.Time `json:"last_used_at"`
	Token           string     `json:"token"`
}

AgentToken represents a GitLab agent token.

GitLab API docs: https://docs.gitlab.com/ee/api/cluster_agents.html#list-tokens-for-an-agent

func (AgentToken) String ΒΆ added in v0.66.0

func (a AgentToken) String() string

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 ApproverIDsValue ΒΆ added in v0.53.0

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

ApproverIDsValue represents an approver ID value within GitLab.

func ApproverIDs ΒΆ added in v0.53.0

func ApproverIDs(v interface{}) *ApproverIDsValue

ApproverIDs is a helper routine that creates a new ApproverIDsValue.

func (*ApproverIDsValue) EncodeValues ΒΆ added in v0.53.0

func (a *ApproverIDsValue) EncodeValues(key string, v *url.Values) error

EncodeValues implements the query.Encoder interface

func (ApproverIDsValue) MarshalJSON ΒΆ added in v0.54.2

func (a ApproverIDsValue) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface

func (*ApproverIDsValue) UnmarshalJSON ΒΆ added in v0.54.2

func (a *ApproverIDsValue) UnmarshalJSON(bytes []byte) error

UnmarshalJSON implements the json.Unmarshaler interface

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 AssigneeIDValue ΒΆ added in v0.54.2

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

AssigneeIDValue represents an assignee ID value within GitLab.

func AssigneeID ΒΆ added in v0.54.2

func AssigneeID(v interface{}) *AssigneeIDValue

AssigneeID is a helper routine that creates a new AssigneeIDValue.

func (*AssigneeIDValue) EncodeValues ΒΆ added in v0.54.2

func (a *AssigneeIDValue) EncodeValues(key string, v *url.Values) error

EncodeValues implements the query.Encoder interface

func (AssigneeIDValue) MarshalJSON ΒΆ added in v0.54.2

func (a AssigneeIDValue) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface

func (*AssigneeIDValue) UnmarshalJSON ΒΆ added in v0.54.2

func (a *AssigneeIDValue) UnmarshalJSON(bytes []byte) error

UnmarshalJSON implements the json.Unmarshaler interface

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 AuthType ΒΆ added in v0.52.0

type AuthType int

AuthType represents an authentication type within GitLab.

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

const (
	BasicAuth AuthType = iota
	JobToken
	OAuthToken
	PrivateToken
)

List of available authentication types.

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

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"`
	Assignee *struct {
		ID       int    `json:"id"`
		Name     string `json:"name"`
		Username string `json:"username"`
	} `json:"assignee"`
	Iteration      *ProjectIteration `json:"iteration"`
	Label          *Label            `json:"label"`
	MaxIssueCount  int               `json:"max_issue_count"`
	MaxIssueWeight int               `json:"max_issue_weight"`
	Milestone      *Milestone        `json:"milestone"`
	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"`
	BuildCreatedAt    string     `json:"build_created_at"`
	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.