gitlab

package module
v0.129.0 Latest Latest
Warning

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

Go to latest
Published: May 19, 2025 License: Apache-2.0 Imports: 28 Imported by: 278

README

GitLab client-go (former github.com/xanzy/go-gitlab)

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

Table of Contents

[[TOC]]

Usage

import "gitlab.com/gitlab-org/api/client-go"

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.Ptr("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"

	"gitlab.com/gitlab-org/api/client-go"
)

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.Ptr("My Project"),
		Description:              gitlab.Ptr("Just a test project to play with"),
		MergeRequestsAccessLevel: gitlab.Ptr(gitlab.EnabledAccessControl),
		SnippetsAccessLevel:      gitlab.Ptr(gitlab.EnabledAccessControl),
		Visibility:               gitlab.Ptr(gitlab.PublicVisibility),
	}
	project, _, err := git.Projects.CreateProject(p)
	if err != nil {
		log.Fatal(err)
	}

	// Add a new snippet
	s := &gitlab.CreateProjectSnippetOptions{
		Title:           gitlab.Ptr("Dummy Snippet"),
		FileName:        gitlab.Ptr("snippet.go"),
		Content:         gitlab.Ptr("package main...."),
		Visibility:      gitlab.Ptr(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.

Installation

To install the library, use the following command:

go get gitlab.com/gitlab-org/api/client-go

Testing

The client-go project comes with a testing package at gitlab.com/gitlab-org/api/client-go/testing which contains a TestClient with gomock mocks for the individual services.

You can use them like this:

func Test_MyApp(t *testing.T) {
    client := testing.NewTestClient(t)

    // Setup expectations
    client.MockClusterAgents.EXPECT().
        List(gomock.Any(), 123, nil).
        Return([]*gitlab.ClusterAgent{{ID: 1}}, nil)

    // Use the client in your test
    // You'd probably call your own code here that gets the client injected.
    // You can also retrieve a `gitlab.Client` object from `client.Client`.
    agents, err := client.ClusterAgents.List(ctx, 123, nil)
    assert.NoError(t, err)
    assert.Len(t, agents, 1)
}
I want to generate my own mocks

You can! You can set up your own TestClient with mocks pretty easily:

func NewTestClient(t *testing.T) {
    // generate your mocks or instantiate a fake or whatever you like
    mockClusterAgentsService := newMockClusterAgentsService(t)
	client := &gitlab.Client{
		ClusterAgents: mockClusterAgentsService
	}

	return tc
}

The newMockClusterAgentsService must return a type that implements gitlab.ClusterAgentsInterface.

You can have a look at testing/client.go how it's implemented for gomock.

Compatibility

The client-go package will maintain compatibility with the officially supported Go releases at the time the package is released. According to the Go Release Policy, that's currently the two last major Go releases. This compatibility is reflected in the go directive of the go.mod file and the unit test matrix in .gitlab-ci.yml.

You may also use https://endoflife.date/go to quickly discover the supported Go versions.

Contributing

Contributions are always welcome. For more information, check out the contributing guide.

Maintenance

This is a community maintained project. If you have a paid GitLab subscription, please note that this project is not packaged as a part of GitLab, and falls outside of the scope of support.

For more information, see GitLab's Statement of Support. Please fill out an issue in this projects issue tracker and someone from the community will respond as soon as they are available to help you.

Known GitLab Projects using this package

Documentation

Overview

Copyright 2022, Daniela Filipe Bento

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

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package gitlab implements a GitLab API client.

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

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Examples

Constants

View Source
const (
	// GraphQLAPIEndpoint defines the endpoint URI for the GraphQL backend
	GraphQLAPIEndpoint = "/api/graphql"
)

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")
	ErrUserDisableTwoFactorPrevented = errors.New("cannot disable two factor authentication if not authenticated as administrator")
	ErrUserNotFound                  = errors.New("user does not exist")
	ErrUserRejectPrevented           = errors.New("cannot reject a user if not authenticated as administrator")
	ErrUserTwoFactorNotEnabled       = errors.New("cannot disable two factor authentication if not enabled")
	ErrUserUnblockPrevented          = errors.New("cannot unblock a user that is blocked by LDAP synchronization")
)

List a couple of standard errors.

View Source
var ErrInvalidIDType = errors.New("the ID must be an int or a string")

ErrInvalidIDType is returned when a function expecting an ID as either an integer or string receives a different type. This error commonly occurs when working with GitLab resources like groups and projects which support both numeric IDs and path-based string identifiers.

View Source
var ErrNotFound = errors.New("404 Not Found")

Functions

func CheckResponse

func CheckResponse(r *http.Response) error

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

func HookEventToken added in v0.116.0

func HookEventToken(r *http.Request) string

HookEventToken returns the token for the given request.

func Must added in v0.128.0

func Must[T any](it iter.Seq2[T, error]) iter.Seq[T]

Must provides a single item iterator for the provided two item iterator and panics if an error happens.

opts := &ListProjectsOptions{}
for p := range Must(Scan2(func(p PaginationOptionFunc) ([]*Project, *Response, error) {
	return c.Projects.ListProjects(opts, p)
})) {
	// do something with p
}

Attention: This API is experimental and may be subject to breaking changes to improve the API in the future.

func ParseHook added in v0.116.0

func ParseHook(eventType EventType, payload []byte) (event any, 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 := io.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.116.0

func ParseSystemhook(payload []byte) (event any, 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 := io.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.116.0

func ParseWebhook(eventType EventType, payload []byte) (event any, 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 := io.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.116.0

func PathEscape(s string) string

Helper function to escape a project identifier.

func Ptr added in v0.116.0

func Ptr[T any](v T) *T

Ptr is a helper that returns a pointer to v.

func Scan added in v0.128.0

func Scan[T any](f func(p PaginationOptionFunc) ([]T, *Response, error)) (iter.Seq[T], func() error)

Scan scans all pages for the given request function f and returns individual items in an iterator. If an error happens during pagination, the iterator stops immediately. The caller must consume the returned error function to retrieve potential errors.

opts := &ListProjectsOptions{}
it, hasErr := Scan(func(p PaginationOptionFunc) ([]*Project, *Response, error) {
	return c.Projects.ListProjects(opts, p)
})
projects := slices.Collect(it)
if err := hasErr(); err != nil {
	return err
}

or with keyset-based pagination:

opts := &ListProjectsOptions{
	ListOptions: ListOptions{
		OrderBy:    "id",
		Pagination: "keyset",
	},
}
it, hasErr := Scan(func(p PaginationOptionFunc) ([]*Project, *Response, error) {
	return c.Projects.ListProjects(opts, p)
})
projects := slices.Collect(it)
if err := hasErr(); err != nil {
	return err
}

Attention: This API is experimental and may be subject to breaking changes to improve the API in the future.

func Scan2 added in v0.128.0

func Scan2[T any](f func(p PaginationOptionFunc) ([]T, *Response, error)) iter.Seq2[T, error]

Scan2 scans all pages for the given request function f and returns individual items and potential errors in an iterator. The caller must consume the error element of the iterator during each iteration to ensure that no errors happened.

opts := &ListProjectsOptions{}
for p, err := range Scan2(func(p PaginationOptionFunc) ([]*Project, *Response, error) {
	return c.Projects.ListProjects(opts, p)
}) {
	if err != nil {
		return err
	}
	// do something with p
}

or with keyset-based pagination:

opts := &ListProjectsOptions{
	ListOptions: ListOptions{
		OrderBy:    "id",
		Pagination: "keyset",
	},
}
for p, err := range Scan2(func(p PaginationOptionFunc) ([]*Project, *Response, error) {
	return c.Projects.ListProjects(opts, p)
}) {
	if err != nil {
		return err
	}
	// do something with p
}

Attention: This API is experimental and may be subject to breaking changes to improve the API in the future.

func Stringify

func Stringify(message any) 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.

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

type AccessControlValue added in v0.116.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/api/projects/

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/api/projects/

type AccessLevelDetails added in v0.116.0

type AccessLevelDetails struct {
	IntegerValue AccessLevelValue `json:"integer_value"`
	StringValue  string           `json:"string_value"`
}

type AccessLevelValue added in v0.2.0

type AccessLevelValue int

AccessLevelValue represents a permission level within GitLab.

GitLab API docs: https://docs.gitlab.com/user/permissions/#roles

const (
	NoPermissions            AccessLevelValue = 0
	MinimalAccessPermissions AccessLevelValue = 5
	GuestPermissions         AccessLevelValue = 10
	PlannerPermissions       AccessLevelValue = 15
	ReporterPermissions      AccessLevelValue = 20
	DeveloperPermissions     AccessLevelValue = 30
	MaintainerPermissions    AccessLevelValue = 40
	OwnerPermissions         AccessLevelValue = 50
	AdminPermissions         AccessLevelValue = 60
)

List of available access levels.

GitLab API docs: https://docs.gitlab.com/api/access_requests/#valid-access-levels

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/api/access_requests/

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/api/access_requests/

func (*AccessRequestsService) ApproveGroupAccessRequest added in v0.11.1

func (s *AccessRequestsService) ApproveGroupAccessRequest(gid any, 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/api/access_requests/#approve-an-access-request

func (*AccessRequestsService) ApproveProjectAccessRequest added in v0.11.1

func (s *AccessRequestsService) ApproveProjectAccessRequest(pid any, 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/api/access_requests/#approve-an-access-request

func (*AccessRequestsService) DenyGroupAccessRequest added in v0.11.1

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

DenyGroupAccessRequest denies an access request for the given user.

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

func (*AccessRequestsService) DenyProjectAccessRequest added in v0.11.1

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

DenyProjectAccessRequest denies an access request for the given user.

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

func (*AccessRequestsService) ListGroupAccessRequests added in v0.11.1

func (s *AccessRequestsService) ListGroupAccessRequests(gid any, 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/api/access_requests/#list-access-requests-for-a-group-or-project

func (*AccessRequestsService) ListProjectAccessRequests added in v0.11.1

func (s *AccessRequestsService) ListProjectAccessRequests(pid any, 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/api/access_requests/#list-access-requests-for-a-group-or-project

func (*AccessRequestsService) RequestGroupAccess added in v0.11.1

func (s *AccessRequestsService) RequestGroupAccess(gid any, options ...RequestOptionFunc) (*AccessRequest, *Response, error)

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

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

func (*AccessRequestsService) RequestProjectAccess added in v0.11.1

func (s *AccessRequestsService) RequestProjectAccess(pid any, options ...RequestOptionFunc) (*AccessRequest, *Response, error)

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

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

type AccessRequestsServiceInterface added in v0.126.0

type AccessRequestsServiceInterface interface {
	ListProjectAccessRequests(pid any, opt *ListAccessRequestsOptions, options ...RequestOptionFunc) ([]*AccessRequest, *Response, error)
	ListGroupAccessRequests(gid any, opt *ListAccessRequestsOptions, options ...RequestOptionFunc) ([]*AccessRequest, *Response, error)
	RequestProjectAccess(pid any, options ...RequestOptionFunc) (*AccessRequest, *Response, error)
	RequestGroupAccess(gid any, options ...RequestOptionFunc) (*AccessRequest, *Response, error)
	ApproveProjectAccessRequest(pid any, user int, opt *ApproveAccessRequestOptions, options ...RequestOptionFunc) (*AccessRequest, *Response, error)
	ApproveGroupAccessRequest(gid any, user int, opt *ApproveAccessRequestOptions, options ...RequestOptionFunc) (*AccessRequest, *Response, error)
	DenyProjectAccessRequest(pid any, user int, options ...RequestOptionFunc) (*Response, error)
	DenyGroupAccessRequest(gid any, user int, options ...RequestOptionFunc) (*Response, error)
}

type AccessTokenState added in v0.129.0

type AccessTokenState string

AccessTokenState identifies if an access token is active or inactive.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#list-all-group-access-tokens https://docs.gitlab.com/api/project_access_tokens/#list-all-project-access-tokens

const (
	AccessTokenStateActive   AccessTokenState = "active"
	AccessTokenStateInactive AccessTokenState = "inactive"
)

type AddChangelogOptions added in v0.116.0

type AddChangelogOptions struct {
	Version    *string  `url:"version,omitempty" json:"version,omitempty"`
	Branch     *string  `url:"branch,omitempty" json:"branch,omitempty"`
	ConfigFile *string  `url:"config_file,omitempty" json:"config_file,omitempty"`
	Date       *ISOTime `url:"date,omitempty" json:"date,omitempty"`
	File       *string  `url:"file,omitempty" json:"file,omitempty"`
	From       *string  `url:"from,omitempty" json:"from,omitempty"`
	Message    *string  `url:"message,omitempty" json:"message,omitempty"`
	To         *string  `url:"to,omitempty" json:"to,omitempty"`
	Trailer    *string  `url:"trailer,omitempty" json:"trailer,omitempty"`
}

AddChangelogOptions represents the available AddChangelog() options.

GitLab API docs: https://docs.gitlab.com/api/repositories/#add-changelog-data-to-a-changelog-file

type AddClusterOptions added in v0.116.0

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. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/project_clusters/#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/api/discussions/#add-note-to-existing-commit-thread

type AddDeployKeyOptions

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

AddDeployKeyOptions represents the available ADDDeployKey() options.

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#add-deploy-key-for-a-project

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/api/user_email_addresses/#add-an-email-address

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/api/discussions/#add-note-to-existing-epic-thread

type AddGPGKeyOptions added in v0.116.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/api/user_keys/#add-a-gpg-key

type AddGroupBadgeOptions added in v0.116.0

type AddGroupBadgeOptions 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"`
}

AddGroupBadgeOptions represents the available AddGroupBadge() options.

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

type AddGroupClusterOptions added in v0.116.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. Deprecated: in GitLab 14.5, to be removed in 19.0

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

type AddGroupHookOptions added in v0.116.0

type AddGroupHookOptions struct {
	URL                       *string              `url:"url,omitempty" json:"url,omitempty"`
	Name                      *string              `url:"name,omitempty" json:"name,omitempty"`
	Description               *string              `url:"description,omitempty" json:"description,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"`
	BranchFilterStrategy      *string              `url:"branch_filter_strategy,omitempty"  json:"branch_filter_strategy,omitempty"`
	IssuesEvents              *bool                `url:"issues_events,omitempty"  json:"issues_events,omitempty"`
	ConfidentialIssuesEvents  *bool                `url:"confidential_issues_events,omitempty"  json:"confidential_issues_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"`
	ConfidentialNoteEvents    *bool                `url:"confidential_note_events,omitempty"  json:"confidential_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"`
	FeatureFlagEvents         *bool                `url:"feature_flag_events,omitempty" json:"feature_flag_events,omitempty"`
	ReleasesEvents            *bool                `url:"releases_events,omitempty" json:"releases_events,omitempty"`
	SubGroupEvents            *bool                `url:"subgroup_events,omitempty" json:"subgroup_events,omitempty"`
	MemberEvents              *bool                `url:"member_events,omitempty" json:"member_events,omitempty"`
	EnableSSLVerification     *bool                `url:"enable_ssl_verification,omitempty"  json:"enable_ssl_verification,omitempty"`
	Token                     *string              `url:"token,omitempty" json:"token,omitempty"`
	ResourceAccessTokenEvents *bool                `url:"resource_access_token_events,omitempty" json:"resource_access_token_events,omitempty"`
	CustomWebhookTemplate     *string              `url:"custom_webhook_template,omitempty" json:"custom_webhook_template,omitempty"`
	CustomHeaders             *[]*HookCustomHeader `url:"custom_headers,omitempty" json:"custom_headers,omitempty"`
}

AddGroupHookOptions represents the available AddGroupHook() options.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#add-a-group-hook

type AddGroupLDAPLinkOptions added in v0.116.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"`
	MemberRoleID *int64            `url:"member_role_id,omitempty" json:"member_role_id,omitempty"`
}

AddGroupLDAPLinkOptions represents the available AddGroupLDAPLink() options.

GitLab API docs: https://docs.gitlab.com/api/group_ldap_links/#add-an-ldap-group-link-with-cn-or-filter

type AddGroupMemberOptions

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

AddGroupMemberOptions represents the available AddGroupMember() options.

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

type AddGroupPlatformKubernetesOptions added in v0.116.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. Deprecated: in GitLab 14.5, to be removed in 19.0

type AddGroupPushRuleOptions added in v0.116.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"`
	CommitCommitterNameCheck   *bool   `url:"commit_committer_name_check,omitempty" json:"commit_committer_name_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"`
	RejectNonDCOCommits        *bool   `url:"reject_non_dco_commits,omitempty" json:"reject_non_dco_commits,omitempty"`
}

AddGroupPushRuleOptions represents the available AddGroupPushRule() options.

GitLab API docs: https://docs.gitlab.com/api/group_push_rules/#add-push-rules-to-a-group

type AddGroupSAMLLinkOptions added in v0.116.0

type AddGroupSAMLLinkOptions struct {
	SAMLGroupName *string           `url:"saml_group_name,omitempty" json:"saml_group_name,omitempty"`
	AccessLevel   *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	MemberRoleID  *int              `url:"member_role_id,omitempty" json:"member_role_id,omitempty"`
}

AddGroupSAMLLinkOptions represents the available AddGroupSAMLLink() options.

GitLab API docs: https://docs.gitlab.com/api/saml/#add-a-saml-group-link

type AddGroupToJobTokenAllowlistOptions added in v0.116.0

type AddGroupToJobTokenAllowlistOptions struct {
	TargetGroupID *int `url:"target_group_id,omitempty" json:"target_group_id,omitempty"`
}

AddGroupToJobTokenAllowlistOptions represents the available AddGroupToJobTokenAllowlist() options.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#add-a-group-to-a-cicd-job-token-allowlist

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/api/system_hooks/#add-new-system-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/api/discussions/#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/api/license/#add-a-new-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/api/discussions/#add-note-to-existing-merge-request-thread

type AddMergeRequestToMergeTrainOptions added in v0.116.0

type AddMergeRequestToMergeTrainOptions struct {
	AutoMerge *bool   `url:"auto_merge,omitempty" json:"auto_merge,omitempty"`
	SHA       *string `url:"sha,omitempty" json:"sha,omitempty"`
	Squash    *bool   `url:"squash,omitempty" json:"squash,omitempty"`

	// Deprecated: in 17.11, use AutoMerge instead
	WhenPipelineSucceeds *bool `url:"when_pipeline_succeeds,omitempty" json:"when_pipeline_succeeds,omitempty"`
}

AddMergeRequestToMergeTrainOptions represents the available AddMergeRequestToMergeTrain() options.

GitLab API docs: https://docs.gitlab.com/api/merge_trains/#add-a-merge-request-to-a-merge-train

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/api/pipeline_triggers/#create-a-trigger-token

type AddPlatformKubernetesOptions added in v0.116.0

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. Deprecated: in GitLab 14.5, to be removed in 19.0

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/api/project_badges/#add-a-badge-to-a-project

type AddProjectHookOptions

type AddProjectHookOptions struct {
	Name                      *string              `url:"name,omitempty" json:"name,omitempty"`
	Description               *string              `url:"description,omitempty" json:"description,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"`
	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"`
	ResourceAccessTokenEvents *bool                `url:"resource_access_token_events,omitempty" json:"resource_access_token_events,omitempty"`
	CustomWebhookTemplate     *string              `url:"custom_webhook_template,omitempty" json:"custom_webhook_template,omitempty"`
	CustomHeaders             *[]*HookCustomHeader `url:"custom_headers,omitempty" json:"custom_headers,omitempty"`
}

AddProjectHookOptions represents the available AddProjectHook() options.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#add-a-webhook-to-a-project

type AddProjectMemberOptions

type AddProjectMemberOptions struct {
	UserID       any               `url:"user_id,omitempty" json:"user_id,omitempty"`
	Username     *string           `url:"username,omitempty" json:"username,omitempty"`
	AccessLevel  *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ExpiresAt    *string           `url:"expires_at,omitempty" json:"expires_at"`
	MemberRoleID *int              `url:"member_role_id,omitempty" json:"member_role_id,omitempty"`
}

AddProjectMemberOptions represents the available AddProjectMember() options.

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

type AddProjectMirrorOptions added in v0.116.0

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

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

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

type AddProjectPushRuleOptions added in v0.116.0

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"`
	CommitCommitterNameCheck   *bool   `url:"commit_committer_name_check,omitempty" json:"commit_committer_name_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"`
	RejectNonDCOCommits        *bool   `url:"reject_non_dco_commits,omitempty" json:"reject_non_dco_commits,omitempty"`
}

AddProjectPushRuleOptions represents the available AddProjectPushRule() options.

GitLab API docs: https://docs.gitlab.com/api/project_push_rules/#add-a-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"`
	UsageType *string  `url:"usage_type,omitempty" json:"usage_type,omitempty"`
}

AddSSHKeyOptions represents the available AddSSHKey() options.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#add-an-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/api/discussions/#add-note-to-existing-snippet-thread

type AddSpentTimeOptions added in v0.4.0

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

AddSpentTimeOptions represents the available AddSpentTime() options.

GitLab docs: https://docs.gitlab.com/api/issues/#add-spent-time-for-an-issue

type Agent added in v0.116.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/api/cluster_agents/

func (Agent) String added in v0.116.0

func (a Agent) String() string

type AgentToken added in v0.116.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/api/cluster_agents/#list-tokens-for-an-agent

func (AgentToken) String added in v0.116.0

func (a AgentToken) String() string

type AlertManagementService added in v0.128.0

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

AlertManagementService handles communication with the alert management related methods of the GitLab API.

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

func (*AlertManagementService) DeleteMetricImage added in v0.128.0

func (s *AlertManagementService) DeleteMetricImage(pid any, alertIID int, id int, options ...RequestOptionFunc) (*Response, error)

DeleteMetricImage deletes a metric image for a project alert.

GitLab API docs: https://docs.gitlab.com/api/alert_management_alerts/#delete-metric-image

func (*AlertManagementService) ListMetricImages added in v0.128.0

func (s *AlertManagementService) ListMetricImages(pid any, alertIID int, opt *ListMetricImagesOptions, options ...RequestOptionFunc) ([]*MetricImage, *Response, error)

ListMetricImages lists all the metric images for a project alert.

GitLab API docs: https://docs.gitlab.com/api/alert_management_alerts/#list-metric-images

func (*AlertManagementService) UpdateMetricImage added in v0.128.0

func (s *AlertManagementService) UpdateMetricImage(pid any, alertIID int, id int, opt *UpdateMetricImageOptions, options ...RequestOptionFunc) (*MetricImage, *Response, error)

UpdateMetricImage updates a metric image for a project alert.

GitLab API docs: https://docs.gitlab.com/api/alert_management_alerts/#update-metric-image

func (*AlertManagementService) UploadMetricImage added in v0.128.0

func (s *AlertManagementService) UploadMetricImage(pid any, alertIID int, content io.Reader, filename string, opt *UploadMetricImageOptions, options ...RequestOptionFunc) (*MetricImage, *Response, error)

UploadMetricImageOptions uploads a metric image to a project alert.

GitLab API docs: https://docs.gitlab.com/api/alert_management_alerts/#upload-metric-image

type AlertManagementServiceInterface added in v0.128.0

type AlertManagementServiceInterface interface {
	UploadMetricImage(pid any, alertIID int, content io.Reader, filename string, opt *UploadMetricImageOptions, options ...RequestOptionFunc) (*MetricImage, *Response, error)
	ListMetricImages(pid any, alertIID int, opt *ListMetricImagesOptions, options ...RequestOptionFunc) ([]*MetricImage, *Response, error)
	UpdateMetricImage(pid any, alertIID int, id int, opt *UpdateMetricImageOptions, options ...RequestOptionFunc) (*MetricImage, *Response, error)
	DeleteMetricImage(pid any, alertIID int, id int, options ...RequestOptionFunc) (*Response, error)
}

type Appearance added in v0.116.0

type Appearance struct {
	Title                       string `json:"title"`
	Description                 string `json:"description"`
	PWAName                     string `json:"pwa_name"`
	PWAShortName                string `json:"pwa_short_name"`
	PWADescription              string `json:"pwa_description"`
	PWAIcon                     string `json:"pwa_icon"`
	Favicon                     string `json:"favicon"`
	MemberGuidelines            string `json:"member_guidelines"`
	NewProjectGuidelines        string `json:"new_project_guidelines"`
	ProfileImageGuidelines      string `json:"profile_image_guidelines"`
	HeaderMessage               string `json:"header_message"`
	FooterMessage               string `json:"footer_message"`
	MessageBackgroundColor      string `json:"message_background_color"`
	MessageFontColor            string `json:"message_font_color"`
	EmailHeaderAndFooterEnabled bool   `json:"email_header_and_footer_enabled"`
}

Appearance represents a GitLab appearance.

Gitlab API docs: https://docs.gitlab.com/api/appearance/

type AppearanceService added in v0.116.0

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

AppearanceService handles communication with appearance of the Gitlab API.

Gitlab API docs: https://docs.gitlab.com/api/appearance/

func (*AppearanceService) ChangeAppearance added in v0.116.0

func (s *AppearanceService) ChangeAppearance(opt *ChangeAppearanceOptions, options ...RequestOptionFunc) (*Appearance, *Response, error)

ChangeAppearance changes the appearance configuration.

Gitlab API docs: https://docs.gitlab.com/api/appearance/#update-application-appearance

func (*AppearanceService) GetAppearance added in v0.116.0

func (s *AppearanceService) GetAppearance(options ...RequestOptionFunc) (*Appearance, *Response, error)

GetAppearance gets the current appearance configuration of the GitLab instance.

Gitlab API docs: https://docs.gitlab.com/api/appearance/#get-details-on-current-application-appearance

type AppearanceServiceInterface added in v0.126.0

type AppearanceServiceInterface interface {
	GetAppearance(options ...RequestOptionFunc) (*Appearance, *Response, error)
	ChangeAppearance(opt *ChangeAppearanceOptions, options ...RequestOptionFunc) (*Appearance, *Response, error)
}

type Application added in v0.116.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 ApplicationStatistics added in v0.128.0

type ApplicationStatistics struct {
	Forks         int `url:"forks" json:"forks"`
	Issues        int `url:"issues" json:"issues"`
	MergeRequests int `url:"merge_requests" json:"merge_requests"`
	Notes         int `url:"notes" json:"notes"`
	Snippets      int `url:"snippets" json:"snippets"`
	SSHKeys       int `url:"ssh_keys" json:"ssh_keys"`
	Milestones    int `url:"milestones" json:"milestones"`
	Users         int `url:"users" json:"users"`
	Groups        int `url:"groups" json:"groups"`
	Projects      int `url:"projects" json:"projects"`
	ActiveUsers   int `url:"active_users" json:"active_users"`
}

ApplicationStatistics represents application statistics.

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

type ApplicationStatisticsService added in v0.128.0

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

ApplicationStatisticsService handles communication with the application statistics related methods of the GitLab API.

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

func (*ApplicationStatisticsService) GetApplicationStatistics added in v0.128.0

func (s *ApplicationStatisticsService) GetApplicationStatistics(options ...RequestOptionFunc) (*ApplicationStatistics, *Response, error)

GetApplicationStatistics gets details on the current application statistics.

GitLab API docs: https://docs.gitlab.com/api/statistics/#get-details-on-current-application-statistics

type ApplicationStatisticsServiceInterface added in v0.128.0

type ApplicationStatisticsServiceInterface interface {
	GetApplicationStatistics(options ...RequestOptionFunc) (*ApplicationStatistics, *Response, error)
}

type ApplicationsService added in v0.116.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/api/applications/

func (*ApplicationsService) CreateApplication added in v0.116.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/api/applications/#create-an-application

func (*ApplicationsService) DeleteApplication added in v0.116.0

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

DeleteApplication removes a specific application.

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

func (*ApplicationsService) ListApplications added in v0.116.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/api/applications/#list-all-applications

type ApplicationsServiceInterface added in v0.126.0

type ApplicationsServiceInterface interface {
	CreateApplication(opt *CreateApplicationOptions, options ...RequestOptionFunc) (*Application, *Response, error)
	ListApplications(opt *ListApplicationsOptions, options ...RequestOptionFunc) ([]*Application, *Response, error)
	DeleteApplication(application int, options ...RequestOptionFunc) (*Response, error)
}

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/api/access_requests/#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/api/merge_request_approvals/#approve-merge-request

type ApproveOrRejectProjectDeploymentOptions added in v0.116.0

type ApproveOrRejectProjectDeploymentOptions struct {
	Status        *DeploymentApprovalStatus `url:"status,omitempty" json:"status,omitempty"`
	Comment       *string                   `url:"comment,omitempty" json:"comment,omitempty"`
	RepresentedAs *string                   `url:"represented_as,omitempty" json:"represented_as,omitempty"`
}

ApproveOrRejectProjectDeploymentOptions represents the available ApproveOrRejectProjectDeployment() options.

GitLab API docs: https://docs.gitlab.com/api/deployments/#approve-or-reject-a-blocked-deployment

type ApproverIDsValue added in v0.116.0

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

ApproverIDsValue represents an approver ID value within GitLab.

func ApproverIDs added in v0.116.0

func ApproverIDs(v any) *ApproverIDsValue

ApproverIDs is a helper routine that creates a new ApproverIDsValue.

func (*ApproverIDsValue) EncodeValues added in v0.116.0

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

EncodeValues implements the query.Encoder interface.

func (ApproverIDsValue) MarshalJSON added in v0.116.0

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

MarshalJSON implements the json.Marshaler interface.

func (*ApproverIDsValue) UnmarshalJSON added in v0.116.0

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

UnmarshalJSON implements the json.Unmarshaler interface.

type ArchiveOptions

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

ArchiveOptions represents the available Archive() options.

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

type AssigneeIDValue added in v0.116.0

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

AssigneeIDValue represents an assignee ID value within GitLab.

func AssigneeID added in v0.116.0

func AssigneeID(v any) *AssigneeIDValue

AssigneeID is a helper routine that creates a new AssigneeIDValue.

func (*AssigneeIDValue) EncodeValues added in v0.116.0

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

EncodeValues implements the query.Encoder interface.

func (AssigneeIDValue) MarshalJSON added in v0.116.0

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

MarshalJSON implements the json.Marshaler interface.

func (*AssigneeIDValue) UnmarshalJSON added in v0.116.0

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

UnmarshalJSON implements the json.Unmarshaler interface.

type AuditEvent added in v0.116.0

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

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

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

type AuditEventDetails added in v0.116.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"`
	AuthorEmail   string `json:"author_email"`
	AuthorClass   string `json:"author_class"`
	TargetID      any    `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"`
	EventName     string `json:"event_name"`
}

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/api/audit_events/

type AuditEventsService added in v0.116.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/api/audit_events/

func (*AuditEventsService) GetGroupAuditEvent added in v0.116.0

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

GetGroupAuditEvent gets a specific group audit event.

GitLab API docs: https://docs.gitlab.com/api/audit_events/#retrieve-a-specific-group-audit-event

func (*AuditEventsService) GetInstanceAuditEvent added in v0.116.0

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/api/audit_events/#retrieve-single-instance-audit-event

func (*AuditEventsService) GetProjectAuditEvent added in v0.116.0

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

GetProjectAuditEvent gets a specific project audit event.

GitLab API docs: https://docs.gitlab.com/api/audit_events/#retrieve-a-specific-project-audit-event

func (*AuditEventsService) ListGroupAuditEvents added in v0.116.0

func (s *AuditEventsService) ListGroupAuditEvents(gid any, 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/api/audit_events/#retrieve-all-group-audit-events

func (*AuditEventsService) ListInstanceAuditEvents added in v0.116.0

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/api/audit_events/#retrieve-all-instance-audit-events

func (*AuditEventsService) ListProjectAuditEvents added in v0.116.0

func (s *AuditEventsService) ListProjectAuditEvents(pid any, 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/api/audit_events/#retrieve-all-project-audit-events

type AuditEventsServiceInterface added in v0.126.0

type AuditEventsServiceInterface interface {
	ListInstanceAuditEvents(opt *ListAuditEventsOptions, options ...RequestOptionFunc) ([]*AuditEvent, *Response, error)
	GetInstanceAuditEvent(event int, options ...RequestOptionFunc) (*AuditEvent, *Response, error)
	ListGroupAuditEvents(gid any, opt *ListAuditEventsOptions, options ...RequestOptionFunc) ([]*AuditEvent, *Response, error)
	GetGroupAuditEvent(gid any, event int, options ...RequestOptionFunc) (*AuditEvent, *Response, error)
	ListProjectAuditEvents(pid any, opt *ListAuditEventsOptions, options ...RequestOptionFunc) ([]*AuditEvent, *Response, error)
	GetProjectAuditEvent(pid any, event int, options ...RequestOptionFunc) (*AuditEvent, *Response, error)
}

type AuthType added in v0.116.0

type AuthType int

AuthType represents an authentication type within GitLab.

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

const (
	BasicAuth AuthType = iota
	JobToken
	OAuthToken
	PrivateToken
)

List of available authentication types.

GitLab API docs: https://docs.gitlab.com/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.116.0

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

type Avatar added in v0.116.0

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

Avatar represents a GitLab avatar.

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

type AvatarRequestsService added in v0.116.0

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/api/avatar/

func (*AvatarRequestsService) GetAvatar added in v0.116.0

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/api/avatar/#get-details-on-an-account-avatar

type AvatarRequestsServiceInterface added in v0.126.0

type AvatarRequestsServiceInterface interface {
	GetAvatar(opt *GetAvatarOptions, options ...RequestOptionFunc) (*Avatar, *Response, error)
}

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/api/emoji_reactions/

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/api/emoji_reactions/

func (*AwardEmojiService) CreateIssueAwardEmoji added in v0.8.0

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

CreateIssueAwardEmoji get an award emoji from issue.

GitLab API docs: https://docs.gitlab.com/api/emoji_reactions/#add-a-new-emoji-reaction

func (*AwardEmojiService) CreateIssuesAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) CreateIssuesAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#add-a-new-emoji-reaction-to-a-comment

func (*AwardEmojiService) CreateMergeRequestAwardEmoji added in v0.8.0

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

CreateMergeRequestAwardEmoji get an award emoji from merge request.

GitLab API docs: https://docs.gitlab.com/api/emoji_reactions/#add-a-new-emoji-reaction

func (*AwardEmojiService) CreateMergeRequestAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) CreateMergeRequestAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#add-a-new-emoji-reaction-to-a-comment

func (*AwardEmojiService) CreateSnippetAwardEmoji added in v0.8.0

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

CreateSnippetAwardEmoji get an award emoji from snippet.

GitLab API docs: https://docs.gitlab.com/api/emoji_reactions/#add-a-new-emoji-reaction

func (*AwardEmojiService) CreateSnippetAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) CreateSnippetAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#add-a-new-emoji-reaction-to-a-comment

func (*AwardEmojiService) DeleteIssueAwardEmoji added in v0.8.0

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

DeleteIssueAwardEmoji delete award emoji on an issue.

GitLab API docs: https://docs.gitlab.com/api/emoji_reactions/#delete-an-emoji-reaction

func (*AwardEmojiService) DeleteIssuesAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) DeleteIssuesAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#delete-an-emoji-reaction-from-a-comment

func (*AwardEmojiService) DeleteMergeRequestAwardEmoji added in v0.8.0

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

DeleteMergeRequestAwardEmoji delete award emoji on a merge request.

GitLab API docs: https://docs.gitlab.com/api/emoji_reactions/#delete-an-emoji-reaction

func (*AwardEmojiService) DeleteMergeRequestAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) DeleteMergeRequestAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#delete-an-emoji-reaction-from-a-comment

func (*AwardEmojiService) DeleteSnippetAwardEmoji added in v0.8.0

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

DeleteSnippetAwardEmoji delete award emoji on a snippet.

GitLab API docs: https://docs.gitlab.com/api/emoji_reactions/#delete-an-emoji-reaction

func (*AwardEmojiService) DeleteSnippetAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) DeleteSnippetAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#delete-an-emoji-reaction-from-a-comment

func (*AwardEmojiService) GetIssueAwardEmoji added in v0.8.0

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

GetIssueAwardEmoji get an award emoji from issue.

GitLab API docs: https://docs.gitlab.com/api/emoji_reactions/#get-single-emoji-reaction

func (*AwardEmojiService) GetIssuesAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) GetIssuesAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#get-an-emoji-reaction-for-a-comment

func (*AwardEmojiService) GetMergeRequestAwardEmoji added in v0.8.0

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

GetMergeRequestAwardEmoji get an award emoji from merge request.

GitLab API docs: https://docs.gitlab.com/api/emoji_reactions/#get-single-emoji-reaction

func (*AwardEmojiService) GetMergeRequestAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) GetMergeRequestAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#get-an-emoji-reaction-for-a-comment

func (*AwardEmojiService) GetSnippetAwardEmoji added in v0.8.0

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

GetSnippetAwardEmoji get an award emoji from snippet.

GitLab API docs: https://docs.gitlab.com/api/emoji_reactions/#get-single-emoji-reaction

func (*AwardEmojiService) GetSnippetAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) GetSnippetAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#get-an-emoji-reaction-for-a-comment

func (*AwardEmojiService) ListIssueAwardEmoji added in v0.8.0

func (s *AwardEmojiService) ListIssueAwardEmoji(pid any, 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/api/emoji_reactions/#list-an-awardables-emoji-reactions

func (*AwardEmojiService) ListIssuesAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) ListIssuesAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#list-a-comments-emoji-reactions

func (*AwardEmojiService) ListMergeRequestAwardEmoji added in v0.8.0

func (s *AwardEmojiService) ListMergeRequestAwardEmoji(pid any, 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/api/emoji_reactions/#list-an-awardables-emoji-reactions

func (*AwardEmojiService) ListMergeRequestAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) ListMergeRequestAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#list-a-comments-emoji-reactions

func (*AwardEmojiService) ListSnippetAwardEmoji added in v0.8.0

func (s *AwardEmojiService) ListSnippetAwardEmoji(pid any, 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/api/emoji_reactions/#list-an-awardables-emoji-reactions

func (*AwardEmojiService) ListSnippetAwardEmojiOnNote added in v0.8.0

func (s *AwardEmojiService) ListSnippetAwardEmojiOnNote(pid any, 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/api/emoji_reactions/#list-a-comments-emoji-reactions

type AwardEmojiServiceInterface added in v0.126.0

type AwardEmojiServiceInterface interface {
	ListMergeRequestAwardEmoji(pid any, mergeRequestIID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)
	ListIssueAwardEmoji(pid any, issueIID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)
	ListSnippetAwardEmoji(pid any, snippetID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)
	GetMergeRequestAwardEmoji(pid any, mergeRequestIID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	GetIssueAwardEmoji(pid any, issueIID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	GetSnippetAwardEmoji(pid any, snippetID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	CreateMergeRequestAwardEmoji(pid any, mergeRequestIID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	CreateIssueAwardEmoji(pid any, issueIID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	CreateSnippetAwardEmoji(pid any, snippetID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	DeleteIssueAwardEmoji(pid any, issueIID, awardID int, options ...RequestOptionFunc) (*Response, error)
	DeleteMergeRequestAwardEmoji(pid any, mergeRequestIID, awardID int, options ...RequestOptionFunc) (*Response, error)
	DeleteSnippetAwardEmoji(pid any, snippetID, awardID int, options ...RequestOptionFunc) (*Response, error)
	ListIssuesAwardEmojiOnNote(pid any, issueID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)
	ListMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)
	ListSnippetAwardEmojiOnNote(pid any, snippetIID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)
	GetIssuesAwardEmojiOnNote(pid any, issueID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	GetMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	GetSnippetAwardEmojiOnNote(pid any, snippetIID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	CreateIssuesAwardEmojiOnNote(pid any, issueID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	CreateMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	CreateSnippetAwardEmojiOnNote(pid any, snippetIID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)
	DeleteIssuesAwardEmojiOnNote(pid any, issueID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error)
	DeleteMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error)
	DeleteSnippetAwardEmojiOnNote(pid any, snippetIID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error)
}

type BadgeKind added in v0.116.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.116.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/administration/system_hooks/

type BasicMergeRequest added in v0.124.0

type BasicMergeRequest struct {
	ID                          int                    `json:"id"`
	IID                         int                    `json:"iid"`
	TargetBranch                string                 `json:"target_branch"`
	SourceBranch                string                 `json:"source_branch"`
	ProjectID                   int                    `json:"project_id"`
	Title                       string                 `json:"title"`
	State                       string                 `json:"state"`
	Imported                    bool                   `json:"imported"`
	ImportedFrom                string                 `json:"imported_from"`
	CreatedAt                   *time.Time             `json:"created_at"`
	UpdatedAt                   *time.Time             `json:"updated_at"`
	Upvotes                     int                    `json:"upvotes"`
	Downvotes                   int                    `json:"downvotes"`
	Author                      *BasicUser             `json:"author"`
	Assignee                    *BasicUser             `json:"assignee"`
	Assignees                   []*BasicUser           `json:"assignees"`
	Reviewers                   []*BasicUser           `json:"reviewers"`
	SourceProjectID             int                    `json:"source_project_id"`
	TargetProjectID             int                    `json:"target_project_id"`
	Labels                      Labels                 `json:"labels"`
	LabelDetails                []*LabelDetails        `json:"label_details"`
	Description                 string                 `json:"description"`
	Draft                       bool                   `json:"draft"`
	Milestone                   *Milestone             `json:"milestone"`
	MergeWhenPipelineSucceeds   bool                   `json:"merge_when_pipeline_succeeds"`
	DetailedMergeStatus         string                 `json:"detailed_merge_status"`
	MergeUser                   *BasicUser             `json:"merge_user"`
	MergedAt                    *time.Time             `json:"merged_at"`
	MergeAfter                  *time.Time             `json:"merge_after"`
	PreparedAt                  *time.Time             `json:"prepared_at"`
	ClosedBy                    *BasicUser             `json:"closed_by"`
	ClosedAt                    *time.Time             `json:"closed_at"`
	SHA                         string                 `json:"sha"`
	MergeCommitSHA              string                 `json:"merge_commit_sha"`
	SquashCommitSHA             string                 `json:"squash_commit_sha"`
	UserNotesCount              int                    `json:"user_notes_count"`
	ShouldRemoveSourceBranch    bool                   `json:"should_remove_source_branch"`
	ForceRemoveSourceBranch     bool                   `json:"force_remove_source_branch"`
	AllowCollaboration          bool                   `json:"allow_collaboration"`
	AllowMaintainerToPush       bool                   `json:"allow_maintainer_to_push"`
	WebURL                      string                 `json:"web_url"`
	References                  *IssueReferences       `json:"references"`
	DiscussionLocked            bool                   `json:"discussion_locked"`
	TimeStats                   *TimeStats             `json:"time_stats"`
	Squash                      bool                   `json:"squash"`
	SquashOnMerge               bool                   `json:"squash_on_merge"`
	TaskCompletionStatus        *TasksCompletionStatus `json:"task_completion_status"`
	HasConflicts                bool                   `json:"has_conflicts"`
	BlockingDiscussionsResolved bool                   `json:"blocking_discussions_resolved"`

	// Deprecated: will be removed in v5 of the API, use MergeUser instead
	MergedBy *BasicUser `json:"merged_by"`
}

BasicMergeRequest represents a basic GitLab merge request.

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

func (BasicMergeRequest) String added in v0.124.0

func (m BasicMergeRequest) String() string

type BasicProject added in v0.116.0

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.116.0

type BasicUser struct {
	ID        int        `json:"id"`
	Username  string     `json:"username"`
	Name      string     `json:"name"`
	State     string     `json:"state"`
	Locked    bool       `json:"locked"`
	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.116.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"`
	MembershipType string     `json:"membership_type"`
	Removable      bool       `json:"removable"`
	CreatedAt      *time.Time `json:"created_at"`
	IsLastOwner    bool       `json:"is_last_owner"`
	LastLoginAt    *time.Time `json:"last_login_at"`
}

BillableGroupMember represents a GitLab billable group member.

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

type BillableUserMembership added in v0.116.0

type BillableUserMembership struct {
	ID               int                 `json:"id"`
	SourceID         int                 `json:"source_id"`
	SourceFullName   string              `json:"source_full_name"`
	SourceMembersURL string              `json:"source_members_url"`
	CreatedAt        *time.Time          `json:"created_at"`
	ExpiresAt        *time.Time          `json:"expires_at"`
	AccessLevel      *AccessLevelDetails `json:"access_level"`
}

BillableUserMembership represents a Membership of a billable user of a group

GitLab API docs: https://docs.gitlab.com/api/members/#list-memberships-for-a-billable-member-of-a-group

type BitbucketCloudImport added in v0.116.0

type BitbucketCloudImport struct {
	ID                    int    `json:"id"`
	Name                  string `json:"name"`
	FullPath              string `json:"full_path"`
	FullName              string `json:"full_name"`
	RefsUrl               string `json:"refs_url"`
	ImportSource          string `json:"import_source"`
	ImportStatus          string `json:"import_status"`
	HumanImportStatusName string `json:"human_import_status_name"`
	ProviderLink          string `json:"provider_link"`
	RelationType          string `json:"relation_type"`
	ImportWarning         string `json:"import_warning"`
}

BitbucketCloudImport represents the response from an import from Bitbucket Cloud.

GitLab API docs: https://docs.gitlab.com/api/import/#import-repository-from-bitbucket-cloud

func (BitbucketCloudImport) String added in v0.116.0

func (s BitbucketCloudImport) String() string

type BitbucketServerImport added in v0.116.0

type BitbucketServerImport struct {
	ID       int    `json:"id"`
	Name     string `json:"name"`
	FullPath string `json:"full_path"`
	FullName string `json:"full_name"`
	RefsUrl  string `json:"refs_url"`
}

BitbucketServerImport represents the response from an import from Bitbucket Server.

GitLab API docs: https://docs.gitlab.com/api/import/#import-repository-from-bitbucket-server

func (BitbucketServerImport) String added in v0.116.0

func (s BitbucketServerImport) String() string

type Blob added in v0.9.0

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

Blob represents a single blob.

type BlockingMergeRequest added in v0.119.0

type BlockingMergeRequest struct {
	ID                          int                    `json:"id"`
	Iid                         int                    `json:"iid"`
	TargetBranch                string                 `json:"target_branch"`
	SourceBranch                string                 `json:"source_branch"`
	ProjectID                   int                    `json:"project_id"`
	Title                       string                 `json:"title"`
	State                       string                 `json:"state"`
	CreatedAt                   time.Time              `json:"created_at"`
	UpdatedAt                   time.Time              `json:"updated_at"`
	Upvotes                     int                    `json:"upvotes"`
	Downvotes                   int                    `json:"downvotes"`
	Author                      *BasicUser             `json:"author"`
	Assignee                    *BasicUser             `json:"assignee"`
	Assignees                   []*BasicUser           `json:"assignees"`
	Reviewers                   []*BasicUser           `json:"reviewers"`
	SourceProjectID             int                    `json:"source_project_id"`
	TargetProjectID             int                    `json:"target_project_id"`
	Labels                      *LabelOptions          `json:"labels"`
	Description                 string                 `json:"description"`
	Draft                       bool                   `json:"draft"`
	Milestone                   *string                `json:"milestone"`
	AutoMerge                   bool                   `json:"auto_merge"`
	DetailedMergeStatus         string                 `json:"detailed_merge_status"`
	MergedAt                    *time.Time             `json:"merged_at"`
	ClosedBy                    *BasicUser             `json:"closed_by"`
	ClosedAt                    *time.Time             `json:"closed_at"`
	Sha                         string                 `json:"sha"`
	MergeCommitSha              string                 `json:"merge_commit_sha"`
	SquashCommitSha             string                 `json:"squash_commit_sha"`
	UserNotesCount              int                    `json:"user_notes_count"`
	ShouldRemoveSourceBranch    *bool                  `json:"should_remove_source_branch"`
	ForceRemoveSourceBranch     bool                   `json:"force_remove_source_branch"`
	WebURL                      string                 `json:"web_url"`
	References                  *IssueReferences       `json:"references"`
	DiscussionLocked            *bool                  `json:"discussion_locked"`
	TimeStats                   *TimeStats             `json:"time_stats"`
	Squash                      bool                   `json:"squash"`
	TaskCompletionStatus        *TasksCompletionStatus `json:"task_completion_status"`
	HasConflicts                bool                   `json:"has_conflicts"`
	BlockingDiscussionsResolved bool                   `json:"blocking_discussions_resolved"`
	MergeUser                   *BasicUser             `json:"merge_user"`
	MergeAfter                  time.Time              `json:"merge_after"`
	Imported                    bool                   `json:"imported"`
	ImportedFrom                string                 `json:"imported_from"`
	PreparedAt                  *time.Time             `json:"prepared_at"`
	SquashOnMerge               bool                   `json:"squash_on_merge"`

	// Deprecated: use Draft instead
	WorkInProgress bool `json:"work_in_progress"`
	// Deprecated: will be removed in v5 of the API, use AutoMerge instead
	MergeWhenPipelineSucceeds bool `json:"merge_when_pipeline_succeeds"`
	// Deprecated: will be removed in v5 of the API, use MergeUser instead
	MergedBy *BasicUser `json:"merged_by"`
	// Deprecated: will be removed in v5 of the API, use the Merge Request Approvals API instead
	ApprovalsBeforeMerge *int `json:"approvals_before_merge"`
	// Deprecated: will be removed in v5 of the API, use References instead
	Reference string `json:"reference"`
	// Deprecated: in 15.6, use DetailedMergeStatus instead
	MergeStatus string `json:"merge_status"`
}

BlockingMergeRequest represents a GitLab merge request dependency.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#create-a-merge-request-dependency

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/api/boards/

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/api/branches/

func (Branch) String

func (b Branch) String() string

type BranchAccessDescription added in v0.7.4

type BranchAccessDescription struct {
	ID                     int              `json:"id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	DeployKeyID            int              `json:"deploy_key_id"`
	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/api/protected_branches/#list-protected-branches

type BranchPermissionOptions added in v0.116.0

type BranchPermissionOptions struct {
	ID          *int              `url:"id,omitempty" json:"id,omitempty"`
	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"`
	Destroy     *bool             `url:"_destroy,omitempty" json:"_destroy,omitempty"`
}

BranchPermissionOptions represents a branch permission option.

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

type BranchProtectionDefaults added in v0.116.0

type BranchProtectionDefaults struct {
	AllowedToPush           []*GroupAccessLevel `json:"allowed_to_push,omitempty"`
	AllowForcePush          bool                `json:"allow_force_push,omitempty"`
	AllowedToMerge          []*GroupAccessLevel `json:"allowed_to_merge,omitempty"`
	DeveloperCanInitialPush bool                `json:"developer_can_initial_push,omitempty"`
}

BranchProtectionDefaults represents default Git protected branch permissions.

GitLab API docs: https://docs.gitlab.com/api/groups/#options-for-default_branch_protection_defaults

type BranchProtectionDefaultsOptions added in v0.116.0

type BranchProtectionDefaultsOptions struct {
	AllowedToPush           *[]int `url:"allowed_to_push,omitempty" json:"allowed_to_push,omitempty"`
	AllowForcePush          *bool  `url:"allow_force_push,omitempty" json:"allow_force_push,omitempty"`
	AllowedToMerge          *[]int `url:"allowed_to_merge,omitempty" json:"allowed_to_merge,omitempty"`
	DeveloperCanInitialPush *bool  `url:"developer_can_initial_push,omitempty" json:"developer_can_initial_push,omitempty"`
}

BranchProtectionDefaultsOptions represents default Git protected branch permissions options.

GitLab API docs: https://docs.gitlab.com/api/groups/#options-for-default_branch_protection_defaults

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/api/branches/

func (*BranchesService) CreateBranch

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

CreateBranch creates branch from commit SHA or existing branch.

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

func (*BranchesService) DeleteBranch

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

DeleteBranch deletes an existing branch.

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

func (*BranchesService) DeleteMergedBranches added in v0.6.0

func (s *BranchesService) DeleteMergedBranches(pid any, options ...RequestOptionFunc) (*Response, error)

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

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

func (*BranchesService) GetBranch

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

GetBranch gets a single project repository branch.

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

func (*BranchesService) ListBranches

func (s *BranchesService) ListBranches(pid any, 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/api/branches/#list-repository-branches

type BranchesServiceInterface added in v0.126.0

type BranchesServiceInterface interface {
	ListBranches(pid any, opts *ListBranchesOptions, options ...RequestOptionFunc) ([]*Branch, *Response, error)
	GetBranch(pid any, branch string, options ...RequestOptionFunc) (*Branch, *Response, error)
	CreateBranch(pid any, opt *CreateBranchOptions, options ...RequestOptionFunc) (*Branch, *Response, error)
	DeleteBranch(pid any, branch string, options ...RequestOptionFunc) (*Response, error)
	DeleteMergedBranches(pid any, options ...RequestOptionFunc) (*Response, error)
}

type Bridge added in v0.116.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"`
	ErasedAt           *time.Time    `json:"erased_at"`
	Duration           float64       `json:"duration"`
	QueuedDuration     float64       `json:"queued_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"`
	FailureReason      string        `json:"failure_reason"`
	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/api/jobs/#list-pipeline-trigger-jobs

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"`
	Font               string             `json:"font"`
	ID                 int                `json:"id"`
	Active             bool               `json:"active"`
	TargetAccessLevels []AccessLevelValue `json:"target_access_levels"`
	TargetPath         string             `json:"target_path"`
	BroadcastType      string             `json:"broadcast_type"`
	Dismissable        bool               `json:"dismissable"`
	Theme              string             `json:"theme"`
}

BroadcastMessage represents a GitLab broadcast message.

GitLab API docs: https://docs.gitlab.com/api/broadcast_messages/#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/api/broadcast_messages/

func (*BroadcastMessagesService) CreateBroadcastMessage added in v0.8.1

CreateBroadcastMessage creates a message to broadcast.

GitLab API docs: https://docs.gitlab.com/api/broadcast_messages/#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/api/broadcast_messages/#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/api/broadcast_messages/#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/api/broadcast_messages/#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/api/broadcast_messages/#update-a-broadcast-message

type BroadcastMessagesServiceInterface added in v0.126.0

type BroadcastMessagesServiceInterface interface {
	ListBroadcastMessages(opt *ListBroadcastMessagesOptions, options ...RequestOptionFunc) ([]*BroadcastMessage, *Response, error)
	GetBroadcastMessage(broadcast int, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error)
	CreateBroadcastMessage(opt *CreateBroadcastMessageOptions, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error)
	UpdateBroadcastMessage(broadcast int, opt *UpdateBroadcastMessageOptions, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error)
	DeleteBroadcastMessage(broadcast int, options ...RequestOptionFunc) (*Response, error)
}

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/user/project/integrations/webhook_events/#job-events

type BuildStateValue added in v0.8.0

type BuildStateValue string

BuildStateValue represents a GitLab build state.

const (
	Created            BuildStateValue = "created"
	WaitingForResource BuildStateValue = "waiting_for_resource"
	Preparing          BuildStateValue = "preparing"
	Pending            BuildStateValue = "pending"
	Running            BuildStateValue = "running"
	Success            BuildStateValue = "success"
	Failed             BuildStateValue = "failed"
	Canceled           BuildStateValue = "canceled"
	Skipped            BuildStateValue = "skipped"
	Manual             BuildStateValue = "manual"
	Scheduled          BuildStateValue = "scheduled"
)

These constants represent all valid build states.

type BulkImportStartMigrationConfiguration added in v0.123.0

type BulkImportStartMigrationConfiguration struct {
	URL         *string `json:"url,omitempty"`
	AccessToken *string `json:"access_token,omitempty"`
}

BulkImportStartMigrationConfiguration represents the available configuration options to start a migration.

GitLab API docs: https://docs.gitlab.com/api/bulk_imports/#start-a-new-group-or-project-migration

type BulkImportStartMigrationEntity added in v0.123.0

type BulkImportStartMigrationEntity struct {
	SourceType           *string `json:"source_type,omitempty"`
	SourceFullPath       *string `json:"source_full_path,omitempty"`
	DestinationSlug      *string `json:"destination_slug,omitempty"`
	DestinationNamespace *string `json:"destination_namespace,omitempty"`
	MigrateProjects      *bool   `json:"migrate_projects,omitempty"`
	MigrateMemberships   *bool   `json:"migrate_memberships,omitempty"`
}

BulkImportStartMigrationEntity represents the available entity options to start a migration.

GitLab API docs: https://docs.gitlab.com/api/bulk_imports/#start-a-new-group-or-project-migration

type BulkImportStartMigrationOptions added in v0.123.0

type BulkImportStartMigrationOptions struct {
	Configuration *BulkImportStartMigrationConfiguration `json:"configuration,omitempty"`
	Entities      []BulkImportStartMigrationEntity       `json:"entities,omitempty"`
}

BulkImportStartMigrationOptions represents the available start migration options.

GitLab API docs: https://docs.gitlab.com/api/bulk_imports/#start-a-new-group-or-project-migration

type BulkImportStartMigrationResponse added in v0.123.0

type BulkImportStartMigrationResponse struct {
	ID          int       `json:"id"`
	Status      string    `json:"status"`
	SourceType  string    `json:"source_type"`
	SourceURL   string    `json:"source_url"`
	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`
	HasFailures bool      `json:"has_failures"`
}

BulkImportStartMigrationResponse represents the start migration response.

GitLab API docs: https://docs.gitlab.com/api/bulk_imports/#start-a-new-group-or-project-migration

type BulkImportsService added in v0.123.0

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

BulkImportsService handles communication with GitLab's direct transfer API.

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

func (*BulkImportsService) StartMigration added in v0.123.0

func (b *BulkImportsService) StartMigration(startMigrationOptions *BulkImportStartMigrationOptions, options ...RequestOptionFunc) (*BulkImportStartMigrationResponse, *Response, error)

StartMigration starts a migration.

GitLab API docs: https://docs.gitlab.com/api/bulk_imports/#start-a-new-group-or-project-migration

type BulkImportsServiceInterface added in v0.126.0

type BulkImportsServiceInterface interface {
	StartMigration(startMigrationOptions *BulkImportStartMigrationOptions, options ...RequestOptionFunc) (*BulkImportStartMigrationResponse, *Response, error)
}

type BurndownChartEvent added in v0.116.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/api/group_milestones/#get-all-burndown-chart-events-for-a-single-milestone

type CIPipelineVariablesMinimumOverrideRoleValue added in v0.116.0

type CIPipelineVariablesMinimumOverrideRoleValue = string

CIPipelineVariablesMinimumOverrideRoleValue represents an access control value used for managing access to the CI Pipeline Variable Override feature.

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

const (
	CIPipelineVariablesNoOneAllowedRole CIPipelineVariablesMinimumOverrideRoleValue = "no_one_allowed"
	CiPipelineVariablesOwnerRole        CIPipelineVariablesMinimumOverrideRoleValue = "owner"
	CiPipelineVariablesMaintainerRole   CIPipelineVariablesMinimumOverrideRoleValue = "maintainer"
	CIPipelineVariablesDeveloperRole    CIPipelineVariablesMinimumOverrideRoleValue = "developer"
)

List of available CIPipelineVariablesMinimumOverrideRoleValue values.

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

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/api/templates/gitlab_ci_ymls/

type CIYMLTemplateListItem added in v0.116.0

type CIYMLTemplateListItem struct {
	Key  string `json:"key"`
	Name string `json:"name"`
}

CIYMLTemplateListItem represents a GitLab CI YML template from the list.

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

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/api/templates/gitlab_ci_ymls/

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/api/templates/gitlab_ci_ymls/#single-gitlab-ci-yaml-template

func (*CIYMLTemplatesService) ListAllTemplates added in v0.11.1

ListAllTemplates get all GitLab CI YML templates.

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

type CIYMLTemplatesServiceInterface added in v0.126.0

type CIYMLTemplatesServiceInterface interface {
	ListAllTemplates(opt *ListCIYMLTemplatesOptions, options ...RequestOptionFunc) ([]*CIYMLTemplateListItem, *Response, error)
	GetTemplate(key string, options ...RequestOptionFunc) (*CIYMLTemplate, *Response, error)
}

type CancelGitHubProjectImportOptions added in v0.116.0

type CancelGitHubProjectImportOptions struct {
	ProjectID *int `url:"project_id,omitempty" json:"project_id,omitempty"`
}

CancelGitHubProjectImportOptions represents the available CancelGitHubProjectImport() options.

GitLab API docs: https://docs.gitlab.com/api/import/#cancel-github-project-import

type CancelledGitHubImport added in v0.116.0

type CancelledGitHubImport struct {
	ID                    int    `json:"id"`
	Name                  string `json:"name"`
	FullPath              string `json:"full_path"`
	FullName              string `json:"full_name"`
	ImportSource          string `json:"import_source"`
	ImportStatus          string `json:"import_status"`
	HumanImportStatusName string `json:"human_import_status_name"`
	ProviderLink          string `json:"provider_link"`
}

CancelledGitHubImport represents the response when canceling an import from GitHub.

GitLab API docs: https://docs.gitlab.com/api/import/#cancel-github-project-import

func (CancelledGitHubImport) String added in v0.116.0

func (s CancelledGitHubImport) String() string

type ChangeAppearanceOptions added in v0.116.0

type ChangeAppearanceOptions struct {
	Title                       *string `url:"title,omitempty" json:"title,omitempty"`
	Description                 *string `url:"description,omitempty" json:"description,omitempty"`
	PWAName                     *string `url:"pwa_name,omitempty" json:"pwa_name,omitempty"`
	PWAShortName                *string `url:"pwa_short_name,omitempty" json:"pwa_short_name,omitempty"`
	PWADescription              *string `url:"pwa_description,omitempty" json:"pwa_description,omitempty"`
	PWAIcon                     *string `url:"pwa_icon,omitempty" json:"pwa_icon,omitempty"`
	Favicon                     *string `url:"favicon,omitempty" json:"favicon,omitempty"`
	MemberGuidelines            *string `url:"member_guidelines,omitempty" json:"member_guidelines,omitempty"`
	NewProjectGuidelines        *string `url:"new_project_guidelines,omitempty" json:"new_project_guidelines,omitempty"`
	ProfileImageGuidelines      *string `url:"profile_image_guidelines,omitempty" json:"profile_image_guidelines,omitempty"`
	HeaderMessage               *string `url:"header_message,omitempty" json:"header_message,omitempty"`
	FooterMessage               *string `url:"footer_message,omitempty" json:"footer_message,omitempty"`
	MessageBackgroundColor      *string `url:"message_background_color,omitempty" json:"message_background_color,omitempty"`
	MessageFontColor            *string `url:"message_font_color,omitempty" json:"message_font_color,omitempty"`
	EmailHeaderAndFooterEnabled *bool   `url:"email_header_and_footer_enabled,omitempty" json:"email_header_and_footer_enabled,omitempty"`
	URL                         *string `url:"url,omitempty" json:"url,omitempty"`
}

ChangeAppearanceOptions represents the available ChangeAppearance() options.

GitLab API docs: https://docs.gitlab.com/api/appearance/#update-application-appearance

type ChangeApprovalConfigurationOptions added in v0.116.0

type ChangeApprovalConfigurationOptions struct {
	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"`
	SelectiveCodeOwnerRemovals                *bool `url:"selective_code_owner_removals,omitempty" json:"selective_code_owner_removals,omitempty"`

	// Deprecated: use Merge Request Approvals API instead
	ApprovalsBeforeMerge *int `url:"approvals_before_merge,omitempty" json:"approvals_before_merge,omitempty"`
}

ChangeApprovalConfigurationOptions represents the available ApprovalConfiguration() options.

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

type ChangeMergeRequestApprovalConfigurationOptions deprecated added in v0.116.0

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

ChangeMergeRequestApprovalConfigurationOptions represents the available ChangeMergeRequestApprovalConfiguration() options.

Deprecated: in GitLab 16.0

type ChangePlanLimitOptions added in v0.116.0

type ChangePlanLimitOptions struct {
	PlanName                   *string `url:"plan_name,omitempty" json:"plan_name,omitempty"`
	ConanMaxFileSize           *int    `url:"conan_max_file_size,omitempty" json:"conan_max_file_size,omitempty"`
	GenericPackagesMaxFileSize *int    `url:"generic_packages_max_file_size,omitempty" json:"generic_packages_max_file_size,omitempty"`
	HelmMaxFileSize            *int    `url:"helm_max_file_size,omitempty" json:"helm_max_file_size,omitempty"`
	MavenMaxFileSize           *int    `url:"maven_max_file_size,omitempty" json:"maven_max_file_size,omitempty"`
	NPMMaxFileSize             *int    `url:"npm_max_file_size,omitempty" json:"npm_max_file_size,omitempty"`
	NugetMaxFileSize           *int    `url:"nuget_max_file_size,omitempty" json:"nuget_max_file_size,omitempty"`
	PyPiMaxFileSize            *int    `url:"pypi_max_file_size,omitempty" json:"pypi_max_file_size,omitempty"`
	TerraformModuleMaxFileSize *int    `url:"terraform_module_max_file_size,omitempty" json:"terraform_module_max_file_size,omitempty"`
}

ChangePlanLimitOptions represents the available ChangePlanLimits() options.

GitLab API docs: https://docs.gitlab.com/api/plan_limits/#change-plan-limits

type ChangelogData added in v0.116.0

type ChangelogData struct {
	Notes string `json:"notes"`
}

ChangelogData represents the generated changelog data.

GitLab API docs: https://docs.gitlab.com/api/repositories/#generate-changelog-data

func (ChangelogData) String added in v0.116.0

func (c ChangelogData) String() string

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/api/commits/#cherry-pick-a-commit

type ClearStatusAfterValue added in v0.129.0

type ClearStatusAfterValue string

ClearStatusAfterValue represents the time period after which the user's status will be cleared.

The duration is specified using one of the constants defined in this package.

const (
	ClearStatusAfter30Minutes ClearStatusAfterValue = "30_minutes"
	ClearStatusAfter3Hours    ClearStatusAfterValue = "3_hours"
	ClearStatusAfter8Hours    ClearStatusAfterValue = "8_hours"
	ClearStatusAfter1Day      ClearStatusAfterValue = "1_day"
	ClearStatusAfter3Days     ClearStatusAfterValue = "3_days"
	ClearStatusAfter7Days     ClearStatusAfterValue = "7_days"
	ClearStatusAfter30Days    ClearStatusAfterValue = "30_days"
)

List of available clear status after values.

https://docs.gitlab.com/api/users/#set-your-user-status:~:text=clear_status_after

type Client

type Client struct {

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

	// GraphQL interface
	GraphQL GraphQLInterface

	// Services used for talking to different parts of the GitLab API.
	AccessRequests                   AccessRequestsServiceInterface
	AlertManagement                  AlertManagementServiceInterface
	Appearance                       AppearanceServiceInterface
	Applications                     ApplicationsServiceInterface
	ApplicationStatistics            ApplicationStatisticsServiceInterface
	AuditEvents                      AuditEventsServiceInterface
	Avatar                           AvatarRequestsServiceInterface
	AwardEmoji                       AwardEmojiServiceInterface
	Boards                           IssueBoardsServiceInterface
	Branches                         BranchesServiceInterface
	BroadcastMessage                 BroadcastMessagesServiceInterface
	BulkImports                      BulkImportsServiceInterface
	CIYMLTemplate                    CIYMLTemplatesServiceInterface
	ClusterAgents                    ClusterAgentsServiceInterface
	Commits                          CommitsServiceInterface
	ContainerRegistry                ContainerRegistryServiceInterface
	ContainerRegistryProtectionRules ContainerRegistryProtectionRulesServiceInterface
	CustomAttribute                  CustomAttributesServiceInterface
	DatabaseMigrations               DatabaseMigrationsServiceInterface
	Dependencies                     DependenciesServiceInterface
	DependencyListExport             DependencyListExportServiceInterface
	DependencyProxy                  DependencyProxyServiceInterface
	DeployKeys                       DeployKeysServiceInterface
	DeployTokens                     DeployTokensServiceInterface
	DeploymentMergeRequests          DeploymentMergeRequestsServiceInterface
	Deployments                      DeploymentsServiceInterface
	Discussions                      DiscussionsServiceInterface
	DockerfileTemplate               DockerfileTemplatesServiceInterface
	DORAMetrics                      DORAMetricsServiceInterface
	DraftNotes                       DraftNotesServiceInterface
	EnterpriseUsers                  EnterpriseUsersServiceInterface
	Environments                     EnvironmentsServiceInterface
	EpicIssues                       EpicIssuesServiceInterface
	Epics                            EpicsServiceInterface
	ErrorTracking                    ErrorTrackingServiceInterface
	Events                           EventsServiceInterface
	ExternalStatusChecks             ExternalStatusChecksServiceInterface
	FeatureFlagUserLists             FeatureFlagUserListsServiceInterface
	Features                         FeaturesServiceInterface
	FreezePeriods                    FreezePeriodsServiceInterface
	GenericPackages                  GenericPackagesServiceInterface
	GeoNodes                         GeoNodesServiceInterface
	GeoSites                         GeoSitesServiceInterface
	GitIgnoreTemplates               GitIgnoreTemplatesServiceInterface
	GroupAccessTokens                GroupAccessTokensServiceInterface
	GroupActivityAnalytics           GroupActivityAnalyticsServiceInterface
	GroupBadges                      GroupBadgesServiceInterface
	GroupCluster                     GroupClustersServiceInterface
	GroupEpicBoards                  GroupEpicBoardsServiceInterface
	GroupImportExport                GroupImportExportServiceInterface
	GroupIssueBoards                 GroupIssueBoardsServiceInterface
	GroupIterations                  GroupIterationsServiceInterface
	GroupLabels                      GroupLabelsServiceInterface
	GroupMarkdownUploads             GroupMarkdownUploadsServiceInterface
	GroupMembers                     GroupMembersServiceInterface
	GroupMilestones                  GroupMilestonesServiceInterface
	GroupProtectedEnvironments       GroupProtectedEnvironmentsServiceInterface
	GroupReleases                    GroupReleasesServiceInterface
	GroupRepositoryStorageMove       GroupRepositoryStorageMoveServiceInterface
	GroupSCIM                        GroupSCIMServiceInterface
	GroupSecuritySettings            GroupSecuritySettingsServiceInterface
	GroupSSHCertificates             GroupSSHCertificatesServiceInterface
	GroupVariables                   GroupVariablesServiceInterface
	GroupWikis                       GroupWikisServiceInterface
	Groups                           GroupsServiceInterface
	Import                           ImportServiceInterface
	InstanceCluster                  InstanceClustersServiceInterface
	InstanceVariables                InstanceVariablesServiceInterface
	Invites                          InvitesServiceInterface
	IssueLinks                       IssueLinksServiceInterface
	Issues                           IssuesServiceInterface
	IssuesStatistics                 IssuesStatisticsServiceInterface
	Jobs                             JobsServiceInterface
	JobTokenScope                    JobTokenScopeServiceInterface
	Keys                             KeysServiceInterface
	Labels                           LabelsServiceInterface
	License                          LicenseServiceInterface
	LicenseTemplates                 LicenseTemplatesServiceInterface
	Markdown                         MarkdownServiceInterface
	MemberRolesService               MemberRolesServiceInterface
	MergeRequestApprovals            MergeRequestApprovalsServiceInterface
	MergeRequestApprovalSettings     MergeRequestApprovalSettingsServiceInterface
	MergeRequests                    MergeRequestsServiceInterface
	MergeTrains                      MergeTrainsServiceInterface
	Metadata                         MetadataServiceInterface
	Milestones                       MilestonesServiceInterface
	Namespaces                       NamespacesServiceInterface
	Notes                            NotesServiceInterface
	NotificationSettings             NotificationSettingsServiceInterface
	Packages                         PackagesServiceInterface
	Pages                            PagesServiceInterface
	PagesDomains                     PagesDomainsServiceInterface
	PersonalAccessTokens             PersonalAccessTokensServiceInterface
	PipelineSchedules                PipelineSchedulesServiceInterface
	PipelineTriggers                 PipelineTriggersServiceInterface
	Pipelines                        PipelinesServiceInterface
	PlanLimits                       PlanLimitsServiceInterface
	ProjectAccessTokens              ProjectAccessTokensServiceInterface
	ProjectBadges                    ProjectBadgesServiceInterface
	ProjectCluster                   ProjectClustersServiceInterface
	ProjectFeatureFlags              ProjectFeatureFlagServiceInterface
	ProjectImportExport              ProjectImportExportServiceInterface
	ProjectIterations                ProjectIterationsServiceInterface
	ProjectMarkdownUploads           ProjectMarkdownUploadsServiceInterface
	ProjectMembers                   ProjectMembersServiceInterface
	ProjectMirrors                   ProjectMirrorServiceInterface
	ProjectRepositoryStorageMove     ProjectRepositoryStorageMoveServiceInterface
	ProjectSecuritySettings          ProjectSecuritySettingsServiceInterface
	ProjectSnippets                  ProjectSnippetsServiceInterface
	ProjectTemplates                 ProjectTemplatesServiceInterface
	ProjectVariables                 ProjectVariablesServiceInterface
	ProjectVulnerabilities           ProjectVulnerabilitiesServiceInterface
	Projects                         ProjectsServiceInterface
	ProtectedBranches                ProtectedBranchesServiceInterface
	ProtectedEnvironments            ProtectedEnvironmentsServiceInterface
	ProtectedTags                    ProtectedTagsServiceInterface
	ReleaseLinks                     ReleaseLinksServiceInterface
	Releases                         ReleasesServiceInterface
	Repositories                     RepositoriesServiceInterface
	RepositoryFiles                  RepositoryFilesServiceInterface
	RepositorySubmodules             RepositorySubmodulesServiceInterface
	ResourceGroup                    ResourceGroupServiceInterface
	ResourceIterationEvents          ResourceIterationEventsServiceInterface
	ResourceLabelEvents              ResourceLabelEventsServiceInterface
	ResourceMilestoneEvents          ResourceMilestoneEventsServiceInterface
	ResourceStateEvents              ResourceStateEventsServiceInterface
	ResourceWeightEvents             ResourceWeightEventsServiceInterface
	Runners                          RunnersServiceInterface
	Search                           SearchServiceInterface
	SecureFiles                      SecureFilesServiceInterface
	Services                         ServicesServiceInterface
	Settings                         SettingsServiceInterface
	Sidekiq                          SidekiqServiceInterface
	SnippetRepositoryStorageMove     SnippetRepositoryStorageMoveServiceInterface
	Snippets                         SnippetsServiceInterface
	SystemHooks                      SystemHooksServiceInterface
	Tags                             TagsServiceInterface
	Todos                            TodosServiceInterface
	Topics                           TopicsServiceInterface
	UsageData                        UsageDataServiceInterface
	Users                            UsersServiceInterface
	Validate                         ValidateServiceInterface
	Version                          VersionServiceInterface
	Wikis                            WikisServiceInterface
	// 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.116.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 any) (*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 any, options []RequestOptionFunc) (*retryablehttp.Request, error)

NewRequest creates a new API request. The method expects a relative URL path that will be 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.

func (*Client) UploadRequest added in v0.116.0

func (c *Client) UploadRequest(method, path string, content io.Reader, filename string, uploadType UploadType, opt any, options []RequestOptionFunc) (*retryablehttp.Request, error)

UploadRequest creates an API request for uploading a file. The method expects a relative URL path that will be 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.116.0

type ClientOptionFunc func(*Client) error

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

func WithBaseURL added in v0.116.0

func WithBaseURL(urlStr string) ClientOptionFunc

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

func WithCustomBackoff added in v0.116.0

func WithCustomBackoff(backoff retryablehttp.Backoff) ClientOptionFunc

WithCustomBackoff can be used to configure a custom backoff policy.

func WithCustomLeveledLogger added in v0.116.0

func WithCustomLeveledLogger(leveledLogger retryablehttp.LeveledLogger) ClientOptionFunc

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

func WithCustomLimiter added in v0.116.0

func WithCustomLimiter(limiter RateLimiter) ClientOptionFunc

WithCustomLimiter injects a custom rate limiter to the client.

func WithCustomLogger added in v0.116.0

func WithCustomLogger(logger retryablehttp.Logger) ClientOptionFunc

WithCustomLogger can be used to configure a custom retryablehttp logger.

func WithCustomRetry added in v0.116.0

func WithCustomRetry(checkRetry retryablehttp.CheckRetry) ClientOptionFunc

WithCustomRetry can be used to configure a custom retry policy.

func WithCustomRetryMax added in v0.116.0

func WithCustomRetryMax(retryMax int) ClientOptionFunc

WithCustomRetryMax can be used to configure a custom maximum number of retries.

func WithCustomRetryWaitMinMax added in v0.116.0

func WithCustomRetryWaitMinMax(waitMin, waitMax time.Duration) ClientOptionFunc

WithCustomRetryWaitMinMax can be used to configure a custom minimum and maximum time to wait between retries.

func WithErrorHandler added in v0.116.0

func WithErrorHandler(handler retryablehttp.ErrorHandler) ClientOptionFunc

WithErrorHandler can be used to configure a custom error handler.

func WithHTTPClient added in v0.116.0

func WithHTTPClient(httpClient *http.Client) ClientOptionFunc

WithHTTPClient can be used to configure a custom HTTP client.

func WithRequestLogHook added in v0.116.0

func WithRequestLogHook(hook retryablehttp.RequestLogHook) ClientOptionFunc

WithRequestLogHook can be used to configure a custom request log hook.

func WithRequestOptions added in v0.116.0

func WithRequestOptions(options ...RequestOptionFunc) ClientOptionFunc

WithRequestOptions can be used to configure default request options applied to every request.

func WithResponseLogHook added in v0.116.0

func WithResponseLogHook(hook retryablehttp.ResponseLogHook) ClientOptionFunc

WithResponseLogHook can be used to configure a custom response log hook.

func WithoutRetries added in v0.116.0

func WithoutRetries() ClientOptionFunc

WithoutRetries disables the default retry logic.

type ClusterAgentsService added in v0.116.0

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

ClusterAgentsService handles communication with the cluster agents related methods of the GitLab API.

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

func (*ClusterAgentsService) CreateAgentToken added in v0.116.0

func (s *ClusterAgentsService) CreateAgentToken(pid any, aid int, opt *CreateAgentTokenOptions, options ...RequestOptionFunc) (*AgentToken, *Response, error)

CreateAgentToken creates a new token for an agent.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#create-an-agent-token

func (*ClusterAgentsService) DeleteAgent added in v0.116.0

func (s *ClusterAgentsService) DeleteAgent(pid any, id int, options ...RequestOptionFunc) (*Response, error)

DeleteAgent deletes an existing agent registration.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#delete-a-registered-agent

func (*ClusterAgentsService) GetAgent added in v0.116.0

func (s *ClusterAgentsService) GetAgent(pid any, id int, options ...RequestOptionFunc) (*Agent, *Response, error)

GetAgent gets a single agent details.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#get-details-about-an-agent

func (*ClusterAgentsService) GetAgentToken added in v0.116.0

func (s *ClusterAgentsService) GetAgentToken(pid any, aid int, id int, options ...RequestOptionFunc) (*AgentToken, *Response, error)

GetAgentToken gets a single agent token.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#get-a-single-agent-token

func (*ClusterAgentsService) ListAgentTokens added in v0.116.0

func (s *ClusterAgentsService) ListAgentTokens(pid any, aid int, opt *ListAgentTokensOptions, options ...RequestOptionFunc) ([]*AgentToken, *Response, error)

ListAgentTokens returns a list of tokens for an agent.

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

func (*ClusterAgentsService) ListAgents added in v0.116.0

func (s *ClusterAgentsService) ListAgents(pid any, opt *ListAgentsOptions, options ...RequestOptionFunc) ([]*Agent, *Response, error)

ListAgents returns a list of agents registered for the project.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#list-the-agents-for-a-project

func (*ClusterAgentsService) RegisterAgent added in v0.116.0

func (s *ClusterAgentsService) RegisterAgent(pid any, opt *RegisterAgentOptions, options ...RequestOptionFunc) (*Agent, *Response, error)

RegisterAgent registers an agent to the project.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#register-an-agent-with-a-project

func (*ClusterAgentsService) RevokeAgentToken added in v0.116.0

func (s *ClusterAgentsService) RevokeAgentToken(pid any, aid int, id int, options ...RequestOptionFunc) (*Response, error)

RevokeAgentToken revokes an agent token.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#revoke-an-agent-token

type ClusterAgentsServiceInterface added in v0.126.0

type ClusterAgentsServiceInterface interface {
	ListAgents(pid any, opt *ListAgentsOptions, options ...RequestOptionFunc) ([]*Agent, *Response, error)
	GetAgent(pid any, id int, options ...RequestOptionFunc) (*Agent, *Response, error)
	RegisterAgent(pid any, opt *RegisterAgentOptions, options ...RequestOptionFunc) (*Agent, *Response, error)
	DeleteAgent(pid any, id int, options ...RequestOptionFunc) (*Response, error)
	ListAgentTokens(pid any, aid int, opt *ListAgentTokensOptions, options ...RequestOptionFunc) ([]*AgentToken, *Response, error)
	GetAgentToken(pid any, aid int, id int, options ...RequestOptionFunc) (*AgentToken, *Response, error)
	CreateAgentToken(pid any, aid int, opt *CreateAgentTokenOptions, options ...RequestOptionFunc) (*AgentToken, *Response, error)
	RevokeAgentToken(pid any, aid int, id int, options ...RequestOptionFunc) (*Response, error)
}

type CommentEventAction added in v0.116.0

type CommentEventAction string

CommentEventAction identifies if a comment has been newly created or updated.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#comment-events

const (
	CommentEventActionCreate CommentEventAction = "create"
	CommentEventActionUpdate CommentEventAction = "update"
)

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"`
	Trailers         map[string]string `json:"trailers"`
	ExtendedTrailers map[string]string `json:"extended_trailers"`
	WebURL           string            `json:"web_url"`
}

Commit represents a GitLab commit.

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

func (Commit) String

func (c Commit) String() string

type CommitActionOptions added in v0.116.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/api/commits/#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/api/commits/

func (CommitComment) String

func (c CommitComment) String() string

type CommitCommentEvent added in v0.3.1

type CommitCommentEvent struct {
	ObjectKind string `json:"object_kind"`
	EventType  string `json:"event_type"`
	User       *User  `json:"user"`
	ProjectID  int    `json:"project_id"`
	Project    struct {
		ID                int             `json:"id"`
		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       *Diff              `json:"st_diff"`
		Description  string             `json:"description"`
		Action       CommentEventAction `json:"action"`
		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/user/project/integrations/webhook_events/#comment-on-a-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/api/commits/#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/api/commits/

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"`
	Coverage     float64    `json:"coverage"`
	PipelineId   int        `json:"pipeline_id"`
	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/api/commits/#commit-status

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/api/commits/

func (*CommitsService) CherryPickCommit added in v0.4.1

func (s *CommitsService) CherryPickCommit(pid any, 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/api/commits/#cherry-pick-a-commit

func (*CommitsService) CreateCommit added in v0.4.1

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

CreateCommit creates a commit with multiple files and actions.

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

func (*CommitsService) GetCommit

func (s *CommitsService) GetCommit(pid any, sha string, opt *GetCommitOptions, 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/api/commits/#get-a-single-commit

func (*CommitsService) GetCommitComments

func (s *CommitsService) GetCommitComments(pid any, 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/api/commits/#get-the-comments-of-a-commit

func (*CommitsService) GetCommitDiff

func (s *CommitsService) GetCommitDiff(pid any, 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/api/commits/#get-the-diff-of-a-commit

func (*CommitsService) GetCommitRefs added in v0.10.8

func (s *CommitsService) GetCommitRefs(pid any, 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/api/commits/#get-references-a-commit-is-pushed-to

func (*CommitsService) GetCommitStatuses

func (s *CommitsService) GetCommitStatuses(pid any, 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/api/commits/#list-the-statuses-of-a-commit

func (*CommitsService) GetGPGSignature added in v0.116.0

func (s *CommitsService) GetGPGSignature(pid any, sha string, options ...RequestOptionFunc) (*GPGSignature, *Response, error)

GetGPGSignature gets a GPG signature of a commit.

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

func (*CommitsService) ListCommits

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

ListCommits gets a list of repository commits in a project.

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

func (*CommitsService) ListMergeRequestsByCommit added in v0.116.0

func (s *CommitsService) ListMergeRequestsByCommit(pid any, sha string, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

ListMergeRequestsByCommit gets merge request associated with a commit.

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

func (*CommitsService) PostCommitComment

func (s *CommitsService) PostCommitComment(pid any, 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/api/commits/#post-comment-to-commit

func (*CommitsService) RevertCommit added in v0.116.0

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

RevertCommit reverts a commit in a given branch.

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

func (*CommitsService) SetCommitStatus

func (s *CommitsService) SetCommitStatus(pid any, 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/api/commits/#set-the-pipeline-status-of-a-commit

type CommitsServiceInterface added in v0.126.0

type CommitsServiceInterface interface {
	ListCommits(pid any, opt *ListCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)
	GetCommitRefs(pid any, sha string, opt *GetCommitRefsOptions, options ...RequestOptionFunc) ([]*CommitRef, *Response, error)
	GetCommit(pid any, sha string, opt *GetCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error)
	CreateCommit(pid any, opt *CreateCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error)
	GetCommitDiff(pid any, sha string, opt *GetCommitDiffOptions, options ...RequestOptionFunc) ([]*Diff, *Response, error)
	GetCommitComments(pid any, sha string, opt *GetCommitCommentsOptions, options ...RequestOptionFunc) ([]*CommitComment, *Response, error)
	PostCommitComment(pid any, sha string, opt *PostCommitCommentOptions, options ...RequestOptionFunc) (*CommitComment, *Response, error)
	GetCommitStatuses(pid any, sha string, opt *GetCommitStatusesOptions, options ...RequestOptionFunc) ([]*CommitStatus, *Response, error)
	SetCommitStatus(pid any, sha string, opt *SetCommitStatusOptions, options ...RequestOptionFunc) (*CommitStatus, *Response, error)
	ListMergeRequestsByCommit(pid any, sha string, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	CherryPickCommit(pid any, sha string, opt *CherryPickCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error)
	RevertCommit(pid any, sha string, opt *RevertCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error)
	GetGPGSignature(pid any, sha string, options ...RequestOptionFunc) (*GPGSignature, *Response, error)
}

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

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

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"`
	WebURL         string    `json:"web_url"`
}

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

GitLab API docs: https://docs.gitlab.com/api/repositories/#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"`
	Unidiff  *bool   `url:"unidiff,omitempty" json:"unidiff,omitempty"`
}

CompareOptions represents the available Compare() options.

GitLab API docs: https://docs.gitlab.com/api/repositories/#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/api/sidekiq_metrics/#get-a-compound-response-of-all-the-previously-mentioned-metrics

type ConfigProject added in v0.116.0

type ConfigProject 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"`
}

type ConfigureProjectPullMirrorOptions added in v0.125.0

type ConfigureProjectPullMirrorOptions struct {
	Enabled                          *bool   `url:"enabled,omitempty" json:"enabled,omitempty"`
	URL                              *string `url:"url,omitempty" json:"url,omitempty"`
	AuthUser                         *string `url:"auth_user,omitempty" json:"auth_user,omitempty"`
	AuthPassword                     *string `url:"auth_password,omitempty" json:"auth_password,omitempty"`
	MirrorTriggerBuilds              *bool   `url:"mirror_trigger_builds,omitempty" json:"mirror_trigger_builds,omitempty"`
	OnlyMirrorProtectedBranches      *bool   `url:"only_mirror_protected_branches,omitempty" json:"only_mirror_protected_branches,omitempty"`
	MirrorOverwritesDivergedBranches *bool   `url:"mirror_overwrites_diverged_branches,omitempty" json:"mirror_overwrites_diverged_branches,omitempty"`
	MirrorBranchRegex                *string `url:"mirror_branch_regex,omitempty" json:"mirror_branch_regex,omitempty"`
}

ConfigureProjectPullMirrorOptions represents the available ConfigureProjectPullMirror() options.

GitLab API docs: https://docs.gitlab.com/api/project_pull_mirroring/#configure-pull-mirroring-for-a-project

type ContainerExpirationPolicy added in v0.116.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"`

	// Deprecated: use NameRegexDelete instead
	NameRegex string `json:"name_regex"`
}

ContainerExpirationPolicy represents the container expiration policy.

type ContainerExpirationPolicyAttributes added in v0.116.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: Is replaced by NameRegexDelete and is internally hardwired to its value.
	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/api/projects/#create-a-project

type ContainerRegistryProtectionRule added in v0.127.0

type ContainerRegistryProtectionRule struct {
	ID                          int                       `json:"id"`
	ProjectID                   int                       `json:"project_id"`
	RepositoryPathPattern       string                    `json:"repository_path_pattern"`
	MinimumAccessLevelForPush   ProtectionRuleAccessLevel `json:"minimum_access_level_for_push"`
	MinimumAccessLevelForDelete ProtectionRuleAccessLevel `json:"minimum_access_level_for_delete"`
}

ContainerRegistryProtectionRule represents a GitLab container registry protection rule.

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

func (ContainerRegistryProtectionRule) String added in v0.127.0

type ContainerRegistryProtectionRulesService added in v0.127.0

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

ContainerRegistryProtectionRulesService handles communication with the container registry protection rules related methods of the GitLab API.

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

func (*ContainerRegistryProtectionRulesService) CreateContainerRegistryProtectionRule added in v0.127.0

CreateContainerRegistryProtectionRule creates a container repository protection rule for a project’s container registry.

GitLab API docs: https://docs.gitlab.com/api/container_repository_protection_rules/#create-a-container-repository-protection-rule

func (*ContainerRegistryProtectionRulesService) DeleteContainerRegistryProtectionRule added in v0.127.0

func (s *ContainerRegistryProtectionRulesService) DeleteContainerRegistryProtectionRule(pid any, ruleID int, options ...RequestOptionFunc) (*Response, error)

DeleteContainerRegistryProtectionRule deletes a container repository protection rule from a project’s container registry.

GitLab API docs: https://docs.gitlab.com/api/container_repository_protection_rules/#delete-a-container-repository-protection-rule

func (*ContainerRegistryProtectionRulesService) ListContainerRegistryProtectionRules added in v0.127.0

func (s *ContainerRegistryProtectionRulesService) ListContainerRegistryProtectionRules(pid any, options ...RequestOptionFunc) ([]*ContainerRegistryProtectionRule, *Response, error)

ListContainerRegistryProtectionRules gets a list of container repository protection rules from a project’s container registry.

GitLab API docs: https://docs.gitlab.com/api/container_repository_protection_rules/#list-container-repository-protection-rules

func (*ContainerRegistryProtectionRulesService) UpdateContainerRegistryProtectionRule added in v0.127.0

UpdateContainerRegistryProtectionRule updates a container repository protection rule for a project’s container registry.

GitLab API docs: https://docs.gitlab.com/api/container_repository_protection_rules/#update-a-container-repository-protection-rule

type ContainerRegistryProtectionRulesServiceInterface added in v0.127.0

type ContainerRegistryProtectionRulesServiceInterface interface {
	ListContainerRegistryProtectionRules(pid any, options ...RequestOptionFunc) ([]*ContainerRegistryProtectionRule, *Response, error)
	CreateContainerRegistryProtectionRule(pid any, opt *CreateContainerRegistryProtectionRuleOptions, options ...RequestOptionFunc) (*ContainerRegistryProtectionRule, *Response, error)
	UpdateContainerRegistryProtectionRule(pid any, ruleID int, opt *UpdateContainerRegistryProtectionRuleOptions, options ...RequestOptionFunc) (*ContainerRegistryProtectionRule, *Response, error)
	DeleteContainerRegistryProtectionRule(pid any, ruleID int, options ...RequestOptionFunc) (*Response, error)
}

type ContainerRegistryService added in v0.116.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/api/container_registry/

func (*ContainerRegistryService) DeleteRegistryRepository added in v0.116.0

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

DeleteRegistryRepository deletes a repository in a registry.

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

func (*ContainerRegistryService) DeleteRegistryRepositoryTag added in v0.116.0

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

DeleteRegistryRepositoryTag deletes a registry repository tag.

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

func (*ContainerRegistryService) DeleteRegistryRepositoryTags added in v0.116.0

func (s *ContainerRegistryService) DeleteRegistryRepositoryTags(pid any, 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/api/container_registry/#delete-registry-repository-tags-in-bulk

func (*ContainerRegistryService) GetRegistryRepositoryTagDetail added in v0.116.0

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

GetRegistryRepositoryTagDetail get details of a registry repository tag

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

func (*ContainerRegistryService) GetSingleRegistryRepository added in v0.116.0

func (s *ContainerRegistryService) GetSingleRegistryRepository(pid any, opt *GetSingleRegistryRepositoryOptions, options ...RequestOptionFunc) (*RegistryRepository, *Response, error)

GetSingleRegistryRepository gets the details of single registry repository.

GitLab API docs: https://docs.gitlab.com/api/container_registry/#get-details-of-a-single-repository

func (*ContainerRegistryService) ListGroupRegistryRepositories added in v0.116.0

func (s *ContainerRegistryService) ListGroupRegistryRepositories(gid any, opt *ListRegistryRepositoriesOptions, options ...RequestOptionFunc) ([]*RegistryRepository, *Response, error)

ListGroupRegistryRepositories gets a list of registry repositories in a group.

GitLab API docs: https://docs.gitlab.com/api/container_registry/#within-a-group

func (*ContainerRegistryService) ListProjectRegistryRepositories added in v0.116.0

func (s *ContainerRegistryService) ListProjectRegistryRepositories(pid any, opt *ListRegistryRepositoriesOptions, options ...RequestOptionFunc) ([]*RegistryRepository, *Response, error)

ListProjectRegistryRepositories gets a list of registry repositories in a project.

GitLab API docs: https://docs.gitlab.com/api/container_registry/#within-a-project

func (*ContainerRegistryService) ListRegistryRepositoryTags added in v0.116.0

func (s *ContainerRegistryService) ListRegistryRepositoryTags(pid any, 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/api/container_registry/#list-registry-repository-tags

type ContainerRegistryServiceInterface added in v0.126.0

type ContainerRegistryServiceInterface interface {
	ListProjectRegistryRepositories(pid any, opt *ListRegistryRepositoriesOptions, options ...RequestOptionFunc) ([]*RegistryRepository, *Response, error)
	ListGroupRegistryRepositories(gid any, opt *ListRegistryRepositoriesOptions, options ...RequestOptionFunc) ([]*RegistryRepository, *Response, error)
	GetSingleRegistryRepository(pid any, opt *GetSingleRegistryRepositoryOptions, options ...RequestOptionFunc) (*RegistryRepository, *Response, error)
	DeleteRegistryRepository(pid any, repository int, options ...RequestOptionFunc) (*Response, error)
	ListRegistryRepositoryTags(pid any, repository int, opt *ListRegistryRepositoryTagsOptions, options ...RequestOptionFunc) ([]*RegistryRepositoryTag, *Response, error)
	GetRegistryRepositoryTagDetail(pid any, repository int, tagName string, options ...RequestOptionFunc) (*RegistryRepositoryTag, *Response, error)
	DeleteRegistryRepositoryTag(pid any, repository int, tagName string, options ...RequestOptionFunc) (*Response, error)
	DeleteRegistryRepositoryTags(pid any, repository int, opt *DeleteRegistryRepositoryTagsOptions, options ...RequestOptionFunc) (*Response, error)
}

type ContainerRegistryStatus added in v0.116.0

type ContainerRegistryStatus string

ContainerRegistryStatus represents the status of a Container Registry.

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

const (
	ContainerRegistryStatusDeleteScheduled ContainerRegistryStatus = "delete_scheduled"
	ContainerRegistryStatusDeleteFailed    ContainerRegistryStatus = "delete_failed"
	ContainerRegistryStatusDeleteOngoing   ContainerRegistryStatus = "delete_ongoing"
)

ContainerRegistryStatus represents all valid statuses of a Container Registry.

Undocumented, see code at: https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/models/container_repository.rb?ref_type=heads#L35

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/api/events/#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/api/repositories/#contributors

func (Contributor) String

func (c Contributor) String() string

type CreateAgentTokenOptions added in v0.116.0

type CreateAgentTokenOptions struct {
	Name        *string `url:"name,omitempty" json:"name,omitempty"`
	Description *string `url:"description,omitempty" json:"description,omitempty"`
}

CreateAgentTokenOptions represents the available CreateAgentToken() options.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#create-an-agent-token

type CreateApplicationOptions added in v0.116.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/api/applications/#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/api/emoji_reactions/#add-a-new-emoji-reaction

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/api/branches/#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"`
	Font               *string            `url:"font,omitempty" json:"font,omitempty"`
	TargetAccessLevels []AccessLevelValue `url:"target_access_levels,omitempty" json:"target_access_levels,omitempty"`
	TargetPath         *string            `url:"target_path,omitempty" json:"target_path,omitempty"`
	BroadcastType      *string            `url:"broadcast_type,omitempty" json:"broadcast_type,omitempty"`
	Dismissable        *bool              `url:"dismissable,omitempty" json:"dismissable,omitempty"`
	Theme              *string            `url:"theme,omitempty" json:"theme,omitempty"`
}

CreateBroadcastMessageOptions represents the available CreateBroadcastMessage() options.

GitLab API docs: https://docs.gitlab.com/api/broadcast_messages/#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/api/discussions/#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/api/commits/#create-a-commit-with-multiple-files-and-actions

type CreateContainerRegistryProtectionRuleOptions added in v0.127.0

type CreateContainerRegistryProtectionRuleOptions struct {
	RepositoryPathPattern       *string                    `url:"repository_path_pattern,omitempty" json:"repository_path_pattern,omitempty"`
	MinimumAccessLevelForPush   *ProtectionRuleAccessLevel `url:"minimum_access_level_for_push,omitempty" json:"minimum_access_level_for_push,omitempty"`
	MinimumAccessLevelForDelete *ProtectionRuleAccessLevel `url:"minimum_access_level_for_delete,omitempty" json:"minimum_access_level_for_delete,omitempty"`
}

CreateContainerRegistryProtectionRuleOptions represents the available CreateContainerRegistryProtectionRule() options.

GitLab API docs: https://docs.gitlab.com/api/container_repository_protection_rules/#create-a-container-repository-protection-rule

type CreateDependencyListExportOptions added in v0.116.0

type CreateDependencyListExportOptions struct {
	ExportType *string `url:"export_type" json:"export_type"`
}

CreateDependencyListExportOptions represents the available CreateDependencyListExport() options.

GitLab API docs: https://docs.gitlab.com/api/dependency_list_export/#create-a-dependency-list-export

type CreateDraftNoteOptions added in v0.116.0

type CreateDraftNoteOptions struct {
	Note                  *string          `url:"note" json:"note"`
	CommitID              *string          `url:"commit_id,omitempty" json:"commit_id,omitempty"`
	InReplyToDiscussionID *string          `url:"in_reply_to_discussion_id,omitempty" json:"in_reply_to_discussion_id,omitempty"`
	ResolveDiscussion     *bool            `url:"resolve_discussion,omitempty" json:"resolve_discussion,omitempty"`
	Position              *PositionOptions `url:"position,omitempty" json:"position,omitempty"`
}

CreateDraftNoteOptions represents the available CreateDraftNote() options.

Gitlab API docs: https://docs.gitlab.com/api/draft_notes/#create-a-draft-note

type CreateEnvironmentOptions added in v0.7.0

type CreateEnvironmentOptions struct {
	Name                *string `url:"name,omitempty" json:"name,omitempty"`
	Description         *string `url:"description,omitempty" json:"description,omitempty"`
	ExternalURL         *string `url:"external_url,omitempty" json:"external_url,omitempty"`
	Tier                *string `url:"tier,omitempty" json:"tier,omitempty"`
	ClusterAgentID      *int    `url:"cluster_agent_id,omitempty" json:"cluster_agent_id,omitempty"`
	KubernetesNamespace *string `url:"kubernetes_namespace,omitempty" json:"kubernetes_namespace,omitempty"`
	FluxResourcePath    *string `url:"flux_resource_path,omitempty" json:"flux_resource_path,omitempty"`
	AutoStopSetting     *string `url:"auto_stop_setting,omitempty" json:"auto_stop_setting,omitempty"`
}

CreateEnvironmentOptions represents the available CreateEnvironment() options.

GitLab API docs: https://docs.gitlab.com/api/environments/#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/api/discussions/#create-new-epic-thread

type CreateEpicNoteOptions added in v0.116.0

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

CreateEpicNoteOptions represents the available CreateEpicNote() options. Will be removed in v5 of the API, use Work Items API instead

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

type CreateEpicOptions added in v0.116.0

type CreateEpicOptions struct {
	Title            *string       `url:"title,omitempty" json:"title,omitempty"`
	Labels           *LabelOptions `url:"labels,comma,omitempty" json:"labels,omitempty"`
	Description      *string       `url:"description,omitempty" json:"description,omitempty"`
	Color            *string       `url:"color,omitempty" json:"color,omitempty"`
	Confidential     *bool         `url:"confidential,omitempty" json:"confidential,omitempty"`
	CreatedAt        *time.Time    `url:"created_at,omitempty" json:"created_at,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"`
	ParentID         *int          `url:"parent_id,omitempty" json:"parent_id,omitempty"`
}

CreateEpicOptions represents the available CreateEpic() options. Will be removed in v5 of the API, use Work Items API instead

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

type CreateExternalStatusCheckOptions added in v0.116.0

type CreateExternalStatusCheckOptions struct {
	Name               *string `url:"name,omitempty" json:"name,omitempty"`
	ExternalURL        *string `url:"external_url,omitempty" json:"external_url,omitempty"`
	ProtectedBranchIDs *[]int  `url:"protected_branch_ids,omitempty" json:"protected_branch_ids,omitempty"`
}

CreateExternalStatusCheckOptions represents the available CreateExternalStatusCheck() options.

GitLab API docs: https://docs.gitlab.com/api/status_checks/#create-external-status-check-service

type CreateFeatureFlagUserListOptions added in v0.128.0

type CreateFeatureFlagUserListOptions struct {
	Name     string `url:"name,omitempty" json:"name,omitempty"`
	UserXIDs string `url:"user_xids,omitempty" json:"user_xids,omitempty"`
}

CreateFeatureFlagUserListOptions represents the available CreateFeatureFlagUserList() options.

GitLab API docs: https://docs.gitlab.com/api/feature_flag_user_lists/#create-a-feature-flag-user-list

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

CreateFileOptions represents the available CreateFile() options.

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

type CreateFreezePeriodOptions added in v0.116.0

type CreateFreezePeriodOptions struct {
	FreezeStart  *string `url:"freeze_start,omitempty" json:"freeze_start,omitempty"`
	FreezeEnd    *string `url:"freeze_end,omitempty" json:"freeze_end,omitempty"`
	CronTimezone *string `url:"cron_timezone,omitempty" json:"cron_timezone,omitempty"`
}

CreateFreezePeriodOptions represents the available CreateFreezePeriodOptions() options.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#create-a-freeze-period

type CreateGeoNodesOptions added in v0.116.0

type CreateGeoNodesOptions struct {
	Primary                          *bool     `url:"primary,omitempty" json:"primary,omitempty"`
	Enabled                          *bool     `url:"enabled,omitempty" json:"enabled,omitempty"`
	Name                             *string   `url:"name,omitempty" json:"name,omitempty"`
	URL                              *string   `url:"url,omitempty" json:"url,omitempty"`
	InternalURL                      *string   `url:"internal_url,omitempty" json:"internal_url,omitempty"`
	FilesMaxCapacity                 *int      `url:"files_max_capacity,omitempty" json:"files_max_capacity,omitempty"`
	ReposMaxCapacity                 *int      `url:"repos_max_capacity,omitempty" json:"repos_max_capacity,omitempty"`
	VerificationMaxCapacity          *int      `url:"verification_max_capacity,omitempty" json:"verification_max_capacity,omitempty"`
	ContainerRepositoriesMaxCapacity *int      `url:"container_repositories_max_capacity,omitempty" json:"container_repositories_max_capacity,omitempty"`
	SyncObjectStorage                *bool     `url:"sync_object_storage,omitempty" json:"sync_object_storage,omitempty"`
	SelectiveSyncType                *string   `url:"selective_sync_type,omitempty" json:"selective_sync_type,omitempty"`
	SelectiveSyncShards              *[]string `url:"selective_sync_shards,omitempty" json:"selective_sync_shards,omitempty"`
	SelectiveSyncNamespaceIds        *[]int    `url:"selective_sync_namespace_ids,omitempty" json:"selective_sync_namespace_ids,omitempty"`
	MinimumReverificationInterval    *int      `url:"minimum_reverification_interval,omitempty" json:"minimum_reverification_interval,omitempty"`
}

CreateGeoNodesOptions represents the available CreateGeoNode() options. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#create-a-new-geo-node

type CreateGeoSitesOptions added in v0.128.0

type CreateGeoSitesOptions struct {
	Primary                          *bool     `url:"primary,omitempty" json:"primary,omitempty"`
	Enabled                          *bool     `url:"enabled,omitempty" json:"enabled,omitempty"`
	Name                             *string   `url:"name,omitempty" json:"name,omitempty"`
	URL                              *string   `url:"url,omitempty" json:"url,omitempty"`
	InternalURL                      *string   `url:"internal_url,omitempty" json:"internal_url,omitempty"`
	FilesMaxCapacity                 *int      `url:"files_max_capacity,omitempty" json:"files_max_capacity,omitempty"`
	ReposMaxCapacity                 *int      `url:"repos_max_capacity,omitempty" json:"repos_max_capacity,omitempty"`
	VerificationMaxCapacity          *int      `url:"verification_max_capacity,omitempty" json:"verification_max_capacity,omitempty"`
	ContainerRepositoriesMaxCapacity *int      `url:"container_repositories_max_capacity,omitempty" json:"container_repositories_max_capacity,omitempty"`
	SyncObjectStorage                *bool     `url:"sync_object_storage,omitempty" json:"sync_object_storage,omitempty"`
	SelectiveSyncType                *string   `url:"selective_sync_type,omitempty" json:"selective_sync_type,omitempty"`
	SelectiveSyncShards              *[]string `url:"selective_sync_shards,omitempty" json:"selective_sync_shards,omitempty"`
	SelectiveSyncNamespaceIDs        *[]int    `url:"selective_sync_namespace_ids,omitempty" json:"selective_sync_namespace_ids,omitempty"`
	MinimumReverificationInterval    *int      `url:"minimum_reverification_interval,omitempty" json:"minimum_reverification_interval,omitempty"`
}

CreateGeoSitesOptions represents the available CreateGeoSite() options.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#create-a-new-geo-site

type CreateGroupAccessTokenOptions added in v0.116.0

type CreateGroupAccessTokenOptions struct {
	Name        *string           `url:"name,omitempty" json:"name,omitempty"`
	Description *string           `url:"description,omitempty" json:"description,omitempty"`
	Scopes      *[]string         `url:"scopes,omitempty" json:"scopes,omitempty"`
	AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ExpiresAt   *ISOTime          `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

CreateGroupAccessTokenOptions represents the available CreateVariable() options.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#create-a-group-access-token

type CreateGroupDeployTokenOptions added in v0.116.0

type CreateGroupDeployTokenOptions struct {
	Name      *string    `url:"name,omitempty" json:"name,omitempty"`
	ExpiresAt *time.Time `url:"expires_at,omitempty" json:"expires_at,omitempty"`
	Username  *string    `url:"username,omitempty" json:"username,omitempty"`
	Scopes    *[]string  `url:"scopes,omitempty" json:"scopes,omitempty"`
}

CreateGroupDeployTokenOptions represents the available CreateGroupDeployToken() options.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#create-a-group-deploy-token

type CreateGroupIssueBoardListOptions added in v0.11.0

type CreateGroupIssueBoardListOptions struct {
	LabelID *int `url:"label_id" json:"label_id"`
}

CreateGroupIssueBoardListOptions represents the available CreateGroupIssueBoardList() options.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#new-group-issue-board-list

type CreateGroupIssueBoardOptions added in v0.116.0

type CreateGroupIssueBoardOptions struct {
	Name *string `url:"name" json:"name"`
}

CreateGroupIssueBoardOptions represents the available CreateGroupIssueBoard() options.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#create-a-group-issue-board

type CreateGroupLabelOptions added in v0.116.0

type CreateGroupLabelOptions struct {
	Name        *string `url:"name,omitempty" json:"name,omitempty"`
	Color       *string `url:"color,omitempty" json:"color,omitempty"`
	Description *string `url:"description,omitempty" json:"description,omitempty"`
	Priority    *int    `url:"priority,omitempty" json:"priority,omitempty"`
}

CreateGroupLabelOptions represents the available CreateGroupLabel() options.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#create-a-new-group-label

type CreateGroupMilestoneOptions added in v0.10.0

type CreateGroupMilestoneOptions struct {
	Title       *string  `url:"title,omitempty" json:"title,omitempty"`
	Description *string  `url:"description,omitempty" json:"description,omitempty"`
	StartDate   *ISOTime `url:"start_date,omitempty" json:"start_date,omitempty"`
	DueDate     *ISOTime `url:"due_date,omitempty" json:"due_date,omitempty"`
}

CreateGroupMilestoneOptions represents the available CreateGroupMilestone() options.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#create-new-milestone

type CreateGroupOptions

type CreateGroupOptions struct {
	Name                            *string                                 `url:"name,omitempty" json:"name,omitempty"`
	Path                            *string                                 `url:"path,omitempty" json:"path,omitempty"`
	Avatar                          *GroupAvatar                            `url:"-" json:"-"`
	DefaultBranch                   *string                                 `url:"default_branch,omitempty" json:"default_branch,omitempty"`
	Description                     *string                                 `url:"description,omitempty" json:"description,omitempty"`
	MembershipLock                  *bool                                   `url:"membership_lock,omitempty" json:"membership_lock,omitempty"`
	Visibility                      *VisibilityValue                        `url:"visibility,omitempty" json:"visibility,omitempty"`
	ShareWithGroupLock              *bool                                   `url:"share_with_group_lock,omitempty" json:"share_with_group_lock,omitempty"`
	RequireTwoFactorAuth            *bool                                   `url:"require_two_factor_authentication,omitempty" json:"require_two_factor_authentication,omitempty"`
	TwoFactorGracePeriod            *int                                    `url:"two_factor_grace_period,omitempty" json:"two_factor_grace_period,omitempty"`
	ProjectCreationLevel            *ProjectCreationLevelValue              `url:"project_creation_level,omitempty" json:"project_creation_level,omitempty"`
	AutoDevopsEnabled               *bool                                   `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
	SubGroupCreationLevel           *SubGroupCreationLevelValue             `url:"subgroup_creation_level,omitempty" json:"subgroup_creation_level,omitempty"`
	EmailsEnabled                   *bool                                   `url:"emails_enabled,omitempty" json:"emails_enabled,omitempty"`
	MentionsDisabled                *bool                                   `url:"mentions_disabled,omitempty" json:"mentions_disabled,omitempty"`
	LFSEnabled                      *bool                                   `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"`
	DefaultBranchProtectionDefaults *DefaultBranchProtectionDefaultsOptions `url:"default_branch_protection_defaults,omitempty" json:"default_branch_protection_defaults,omitempty"`
	RequestAccessEnabled            *bool                                   `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"`
	ParentID                        *int                                    `url:"parent_id,omitempty" json:"parent_id,omitempty"`
	SharedRunnersMinutesLimit       *int                                    `url:"shared_runners_minutes_limit,omitempty" json:"shared_runners_minutes_limit,omitempty"`
	ExtraSharedRunnersMinutesLimit  *int                                    `url:"extra_shared_runners_minutes_limit,omitempty" json:"extra_shared_runners_minutes_limit,omitempty"`
	WikiAccessLevel                 *AccessControlValue                     `url:"wiki_access_level,omitempty" json:"wiki_access_level,omitempty"`

	// Deprecated: Use EmailsEnabled instead
	EmailsDisabled *bool `url:"emails_disabled,omitempty" json:"emails_disabled,omitempty"`

	// Deprecated: User DefaultBranchProtectionDefaults instead
	DefaultBranchProtection *int `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`
}

CreateGroupOptions represents the available CreateGroup() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#create-a-group

type CreateGroupSSHCertificateOptions added in v0.116.0

type CreateGroupSSHCertificateOptions struct {
	Key   *string `url:"key,omitempty" json:"key,omitempty"`
	Title *string `url:"title,omitempty" json:"title,omitempty"`
}

CreateGroupSSHCertificateOptions represents the available CreateGroupSSHCertificate() options.

GitLab API docs: https://docs.gitlab.com/api/group_ssh_certificates/#create-ssh-certificate

type CreateGroupVariableOptions added in v0.116.0

type CreateGroupVariableOptions struct {
	Key              *string            `url:"key,omitempty" json:"key,omitempty"`
	Value            *string            `url:"value,omitempty" json:"value,omitempty"`
	Description      *string            `url:"description,omitempty" json:"description,omitempty"`
	EnvironmentScope *string            `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
	Masked           *bool              `url:"masked,omitempty" json:"masked,omitempty"`
	MaskedAndHidden  *bool              `url:"masked_and_hidden,omitempty" json:"masked_and_hidden,omitempty"`
	Protected        *bool              `url:"protected,omitempty" json:"protected,omitempty"`
	Raw              *bool              `url:"raw,omitempty" json:"raw,omitempty"`
	VariableType     *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

CreateGroupVariableOptions represents the available CreateVariable() options.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#create-variable

type CreateGroupWikiPageOptions added in v0.116.0

type CreateGroupWikiPageOptions struct {
	Content *string          `url:"content,omitempty" json:"content,omitempty"`
	Title   *string          `url:"title,omitempty" json:"title,omitempty"`
	Format  *WikiFormatValue `url:"format,omitempty" json:"format,omitempty"`
}

CreateGroupWikiPageOptions represents options to CreateGroupWikiPage.

GitLab API docs: https://docs.gitlab.com/api/group_wikis/#create-a-new-wiki-page

type CreateImpersonationTokenOptions added in v0.6.0

type CreateImpersonationTokenOptions struct {
	Name      *string    `url:"name,omitempty" json:"name,omitempty"`
	Scopes    *[]string  `url:"scopes,omitempty" json:"scopes,omitempty"`
	ExpiresAt *time.Time `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

CreateImpersonationTokenOptions represents the available CreateImpersonationToken() options.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#create-an-impersonation-token

type CreateInstanceVariableOptions added in v0.116.0

type CreateInstanceVariableOptions struct {
	Key          *string            `url:"key,omitempty" json:"key,omitempty"`
	Value        *string            `url:"value,omitempty" json:"value,omitempty"`
	Description  *string            `url:"description,omitempty" json:"description,omitempty"`
	Masked       *bool              `url:"masked,omitempty" json:"masked,omitempty"`
	Protected    *bool              `url:"protected,omitempty" json:"protected,omitempty"`
	Raw          *bool              `url:"raw,omitempty" json:"raw,omitempty"`
	VariableType *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

CreateInstanceVariableOptions represents the available CreateVariable() options.

GitLab API docs: https://docs.gitlab.com/api/instance_level_ci_variables/#create-instance-variable

type CreateIssueBoardListOptions added in v0.8.0

type CreateIssueBoardListOptions struct {
	LabelID     *int `url:"label_id,omitempty" json:"label_id,omitempty"`
	AssigneeID  *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	MilestoneID *int `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	IterationID *int `url:"iteration_id,omitempty" json:"iteration_id,omitempty"`
}

CreateIssueBoardListOptions represents the available CreateIssueBoardList() options.

GitLab API docs: https://docs.gitlab.com/api/boards/#create-a-board-list

type CreateIssueBoardOptions added in v0.116.0

type CreateIssueBoardOptions struct {
	Name *string `url:"name,omitempty" json:"name,omitempty"`
}

CreateIssueBoardOptions represents the available CreateIssueBoard() options.

GitLab API docs: https://docs.gitlab.com/api/boards/#create-an-issue-board

type CreateIssueDiscussionOptions added in v0.11.2

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

CreateIssueDiscussionOptions represents the available CreateIssueDiscussion() options.

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

type CreateIssueLinkOptions added in v0.8.0

type CreateIssueLinkOptions struct {
	TargetProjectID *string `json:"target_project_id"`
	TargetIssueIID  *string `json:"target_issue_iid"`
	LinkType        *string `json:"link_type"`
}

CreateIssueLinkOptions represents the available CreateIssueLink() options.

GitLab API docs: https://docs.gitlab.com/api/issue_links/#create-an-issue-link

type CreateIssueNoteOptions

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

CreateIssueNoteOptions represents the available CreateIssueNote() options.

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

type CreateIssueOptions

type CreateIssueOptions struct {
	IID                                *int          `url:"iid,omitempty" json:"iid,omitempty"`
	Title                              *string       `url:"title,omitempty" json:"title,omitempty"`
	Description                        *string       `url:"description,omitempty" json:"description,omitempty"`
	Confidential                       *bool         `url:"confidential,omitempty" json:"confidential,omitempty"`
	AssigneeIDs                        *[]int        `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
	MilestoneID                        *int          `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	Labels                             *LabelOptions `url:"labels,comma,omitempty" json:"labels,omitempty"`
	CreatedAt                          *time.Time    `url:"created_at,omitempty" json:"created_at,omitempty"`
	DueDate                            *ISOTime      `url:"due_date,omitempty" json:"due_date,omitempty"`
	EpicID                             *int          `url:"epic_id,omitempty" json:"epic_id,omitempty"`
	MergeRequestToResolveDiscussionsOf *int          `url:"merge_request_to_resolve_discussions_of,omitempty" json:"merge_request_to_resolve_discussions_of,omitempty"`
	DiscussionToResolve                *string       `url:"discussion_to_resolve,omitempty" json:"discussion_to_resolve,omitempty"`
	Weight                             *int          `url:"weight,omitempty" json:"weight,omitempty"`
	IssueType                          *string       `url:"issue_type,omitempty" json:"issue_type,omitempty"`
}

CreateIssueOptions represents the available CreateIssue() options.

GitLab API docs: https://docs.gitlab.com/api/issues/#new-issue

type CreateLabelOptions

type CreateLabelOptions struct {
	Name        *string `url:"name,omitempty" json:"name,omitempty"`
	Color       *string `url:"color,omitempty" json:"color,omitempty"`
	Description *string `url:"description,omitempty" json:"description,omitempty"`
	Priority    *int    `url:"priority,omitempty" json:"priority,omitempty"`
}

CreateLabelOptions represents the available CreateLabel() options.

GitLab API docs: https://docs.gitlab.com/api/labels/#create-a-new-label

type CreateMemberRoleOptions added in v0.116.0

type CreateMemberRoleOptions struct {
	Name                       *string           `url:"name,omitempty" json:"name,omitempty"`
	BaseAccessLevel            *AccessLevelValue `url:"base_access_level,omitempty" json:"base_access_level,omitempty"`
	Description                *string           `url:"description,omitempty" json:"description,omitempty"`
	AdminCICDVariables         *bool             `url:"admin_cicd_variables" json:"admin_cicd_variables,omitempty"`
	AdminComplianceFramework   *bool             `url:"admin_compliance_framework" json:"admin_compliance_framework,omitempty"`
	AdminGroupMembers          *bool             `url:"admin_group_member" json:"admin_group_member,omitempty"`
	AdminMergeRequest          *bool             `url:"admin_merge_request,omitempty" json:"admin_merge_request,omitempty"`
	AdminPushRules             *bool             `url:"admin_push_rules" json:"admin_push_rules,omitempty"`
	AdminTerraformState        *bool             `url:"admin_terraform_state" json:"admin_terraform_state,omitempty"`
	AdminVulnerability         *bool             `url:"admin_vulnerability,omitempty" json:"admin_vulnerability,omitempty"`
	AdminWebHook               *bool             `url:"admin_web_hook" json:"admin_web_hook,omitempty"`
	ArchiveProject             *bool             `url:"archive_project" json:"archive_project,omitempty"`
	ManageDeployTokens         *bool             `url:"manage_deploy_tokens" json:"manage_deploy_tokens,omitempty"`
	ManageGroupAccessTokens    *bool             `url:"manage_group_access_tokens" json:"manage_group_access_tokens,omitempty"`
	ManageMergeRequestSettings *bool             `url:"manage_merge_request_settings" json:"manage_merge_request_settings,omitempty"`
	ManageProjectAccessTokens  *bool             `url:"manage_project_access_tokens" json:"manage_project_access_tokens,omitempty"`
	ManageSecurityPolicyLink   *bool             `url:"manage_security_policy_link" json:"manage_security_policy_link,omitempty"`
	ReadCode                   *bool             `url:"read_code,omitempty" json:"read_code,omitempty"`
	ReadRunners                *bool             `url:"read_runners" json:"read_runners,omitempty"`
	ReadDependency             *bool             `url:"read_dependency,omitempty" json:"read_dependency,omitempty"`
	ReadVulnerability          *bool             `url:"read_vulnerability,omitempty" json:"read_vulnerability,omitempty"`
	RemoveGroup                *bool             `url:"remove_group" json:"remove_group,omitempty"`
	RemoveProject              *bool             `url:"remove_project" json:"remove_project,omitempty"`
}

CreateMemberRoleOptions represents the available CreateInstanceMemberRole() and CreateMemberRole() options.

GitLab API docs: https://docs.gitlab.com/api/member_roles/#create-a-instance-member-role https://docs.gitlab.com/api/member_roles/#add-a-member-role-to-a-group

type CreateMergeRequestApprovalRuleOptions added in v0.116.0

type CreateMergeRequestApprovalRuleOptions struct {
	Name                  *string `url:"name,omitempty" json:"name,omitempty"`
	ApprovalsRequired     *int    `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
	ApprovalProjectRuleID *int    `url:"approval_project_rule_id,omitempty" json:"approval_project_rule_id,omitempty"`
	UserIDs               *[]int  `url:"user_ids,omitempty" json:"user_ids,omitempty"`
	GroupIDs              *[]int  `url:"group_ids,omitempty" json:"group_ids,omitempty"`
}

CreateMergeRequestApprovalRuleOptions represents the available CreateApprovalRule() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#create-merge-request-rule

type CreateMergeRequestDependencyOptions added in v0.119.0

type CreateMergeRequestDependencyOptions struct {
	BlockingMergeRequestID *int `url:"blocking_merge_request_id,omitempty" json:"blocking_merge_request_id,omitempty"`
}

CreateMergeRequestDependencyOptions represents the available CreateMergeRequestDependency() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#create-a-merge-request-dependency

type CreateMergeRequestDiscussionOptions added in v0.11.2

type CreateMergeRequestDiscussionOptions struct {
	Body      *string          `url:"body,omitempty" json:"body,omitempty"`
	CommitID  *string          `url:"commit_id,omitempty" json:"commit_id,omitempty"`
	CreatedAt *time.Time       `url:"created_at,omitempty" json:"created_at,omitempty"`
	Position  *PositionOptions `url:"position,omitempty" json:"position,omitempty"`
}

CreateMergeRequestDiscussionOptions represents the available CreateMergeRequestDiscussion() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#create-new-merge-request-thread

type CreateMergeRequestNoteOptions

type CreateMergeRequestNoteOptions struct {
	Body                    *string    `url:"body,omitempty" json:"body,omitempty"`
	CreatedAt               *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
	Internal                *bool      `url:"internal,omitempty" json:"internal,omitempty"`
	MergeRequestDiffHeadSHA *string    `url:"merge_request_diff_head_sha,omitempty" json:"merge_request_diff_head_sha,omitempty"`
}

CreateMergeRequestNoteOptions represents the available CreateMergeRequestNote() options.

GitLab API docs: https://docs.gitlab.com/api/notes/#create-new-merge-request-note

type CreateMergeRequestOptions

type CreateMergeRequestOptions struct {
	Title              *string       `url:"title,omitempty" json:"title,omitempty"`
	Description        *string       `url:"description,omitempty" json:"description,omitempty"`
	SourceBranch       *string       `url:"source_branch,omitempty" json:"source_branch,omitempty"`
	TargetBranch       *string       `url:"target_branch,omitempty" json:"target_branch,omitempty"`
	Labels             *LabelOptions `url:"labels,comma,omitempty" json:"labels,omitempty"`
	AssigneeID         *int          `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	AssigneeIDs        *[]int        `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
	ReviewerIDs        *[]int        `url:"reviewer_ids,omitempty" json:"reviewer_ids,omitempty"`
	TargetProjectID    *int          `url:"target_project_id,omitempty" json:"target_project_id,omitempty"`
	MilestoneID        *int          `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	RemoveSourceBranch *bool         `url:"remove_source_branch,omitempty" json:"remove_source_branch,omitempty"`
	Squash             *bool         `url:"squash,omitempty" json:"squash,omitempty"`
	AllowCollaboration *bool         `url:"allow_collaboration,omitempty" json:"allow_collaboration,omitempty"`

	// Deprecated: will be removed in v5 of the API, use the Merge Request Approvals API instead
	ApprovalsBeforeMerge *int `url:"approvals_before_merge,omitempty" json:"approvals_before_merge,omitempty"`
}

CreateMergeRequestOptions represents the available CreateMergeRequest() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#create-mr

type CreateMilestoneOptions

type CreateMilestoneOptions struct {
	Title       *string  `url:"title,omitempty" json:"title,omitempty"`
	Description *string  `url:"description,omitempty" json:"description,omitempty"`
	StartDate   *ISOTime `url:"start_date,omitempty" json:"start_date,omitempty"`
	DueDate     *ISOTime `url:"due_date,omitempty" json:"due_date,omitempty"`
}

CreateMilestoneOptions represents the available CreateMilestone() options.

GitLab API docs: https://docs.gitlab.com/api/milestones/#create-new-milestone

type CreatePagesDomainOptions added in v0.8.0

type CreatePagesDomainOptions struct {
	Domain         *string `url:"domain,omitempty" json:"domain,omitempty"`
	AutoSslEnabled *bool   `url:"auto_ssl_enabled,omitempty" json:"auto_ssl_enabled,omitempty"`
	Certificate    *string `url:"certificate,omitempty" json:"certificate,omitempty"`
	Key            *string `url:"key,omitempty" json:"key,omitempty"`
}

CreatePagesDomainOptions represents the available CreatePagesDomain() options.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#create-new-pages-domain

type CreatePersonalAccessTokenForCurrentUserOptions added in v0.116.0

type CreatePersonalAccessTokenForCurrentUserOptions struct {
	Name        *string   `url:"name,omitempty" json:"name,omitempty"`
	Description *string   `url:"description,omitempty" json:"description,omitempty"`
	Scopes      *[]string `url:"scopes,omitempty" json:"scopes,omitempty"`
	ExpiresAt   *ISOTime  `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

CreatePersonalAccessTokenForCurrentUserOptions represents the available CreatePersonalAccessTokenForCurrentUser() options.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#create-a-personal-access-token

type CreatePersonalAccessTokenOptions added in v0.116.0

type CreatePersonalAccessTokenOptions struct {
	Name        *string   `url:"name,omitempty" json:"name,omitempty"`
	Description *string   `url:"description,omitempty" json:"description,omitempty"`
	ExpiresAt   *ISOTime  `url:"expires_at,omitempty" json:"expires_at,omitempty"`
	Scopes      *[]string `url:"scopes,omitempty" json:"scopes,omitempty"`
}

CreatePersonalAccessTokenOptions represents the available CreatePersonalAccessToken() options.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#create-a-personal-access-token-for-a-user

type CreatePipelineOptions added in v0.4.0

type CreatePipelineOptions struct {
	Ref       *string                     `url:"ref" json:"ref"`
	Variables *[]*PipelineVariableOptions `url:"variables,omitempty" json:"variables,omitempty"`
}

CreatePipelineOptions represents the available CreatePipeline() options.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#create-a-new-pipeline

type CreatePipelineScheduleOptions added in v0.9.0

type CreatePipelineScheduleOptions struct {
	Description  *string          `url:"description" json:"description"`
	Ref          *string          `url:"ref" json:"ref"`
	Cron         *string          `url:"cron" json:"cron"`
	CronTimezone *string          `url:"cron_timezone,omitempty" json:"cron_timezone,omitempty"`
	Active       *bool            `url:"active,omitempty" json:"active,omitempty"`
	Inputs       []*PipelineInput `url:"inputs,omitempty" json:"inputs,omitempty"`
}

CreatePipelineScheduleOptions represents the available CreatePipelineSchedule() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#create-a-new-pipeline-schedule

type CreatePipelineScheduleVariableOptions added in v0.9.0

type CreatePipelineScheduleVariableOptions struct {
	Key          *string            `url:"key" json:"key"`
	Value        *string            `url:"value" json:"value"`
	VariableType *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

CreatePipelineScheduleVariableOptions represents the available CreatePipelineScheduleVariable() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#create-a-new-pipeline-schedule

type CreateProjectAccessTokenOptions added in v0.116.0

type CreateProjectAccessTokenOptions struct {
	Name        *string           `url:"name,omitempty" json:"name,omitempty"`
	Description *string           `url:"description,omitempty" json:"description,omitempty"`
	Scopes      *[]string         `url:"scopes,omitempty" json:"scopes,omitempty"`
	AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ExpiresAt   *ISOTime          `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

CreateProjectAccessTokenOptions represents the available CreateVariable() options.

GitLab API docs: https://docs.gitlab.com/api/project_access_tokens/#create-a-project-access-token

type CreateProjectDeployTokenOptions added in v0.116.0

type CreateProjectDeployTokenOptions struct {
	Name      *string    `url:"name,omitempty" json:"name,omitempty"`
	ExpiresAt *time.Time `url:"expires_at,omitempty" json:"expires_at,omitempty"`
	Username  *string    `url:"username,omitempty" json:"username,omitempty"`
	Scopes    *[]string  `url:"scopes,omitempty" json:"scopes,omitempty"`
}

CreateProjectDeployTokenOptions represents the available CreateProjectDeployToken() options.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#create-a-project-deploy-token

type CreateProjectDeploymentOptions added in v0.116.0

type CreateProjectDeploymentOptions struct {
	Environment *string                `url:"environment,omitempty" json:"environment,omitempty"`
	Ref         *string                `url:"ref,omitempty" json:"ref,omitempty"`
	SHA         *string                `url:"sha,omitempty" json:"sha,omitempty"`
	Tag         *bool                  `url:"tag,omitempty" json:"tag,omitempty"`
	Status      *DeploymentStatusValue `url:"status,omitempty" json:"status,omitempty"`
}

CreateProjectDeploymentOptions represents the available CreateProjectDeployment() options.

GitLab API docs: https://docs.gitlab.com/api/deployments/#create-a-deployment

type CreateProjectFeatureFlagOptions added in v0.116.0

type CreateProjectFeatureFlagOptions struct {
	Name        *string                        `url:"name,omitempty" json:"name,omitempty"`
	Description *string                        `url:"description,omitempty" json:"description,omitempty"`
	Version     *string                        `url:"version,omitempty" json:"version,omitempty"`
	Active      *bool                          `url:"active,omitempty" json:"active,omitempty"`
	Strategies  *[]*FeatureFlagStrategyOptions `url:"strategies,omitempty" json:"strategies,omitempty"`
}

CreateProjectFeatureFlagOptions represents the available CreateProjectFeatureFlag() options.

Gitlab API docs: https://docs.gitlab.com/api/feature_flags/#create-a-feature-flag

type CreateProjectForUserOptions

type CreateProjectForUserOptions CreateProjectOptions

CreateProjectForUserOptions represents the available CreateProjectForUser() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#create-a-project-for-a-user

type CreateProjectLevelRuleOptions added in v0.116.0

type CreateProjectLevelRuleOptions struct {
	Name                          *string   `url:"name,omitempty" json:"name,omitempty"`
	ApprovalsRequired             *int      `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
	ReportType                    *string   `url:"report_type,omitempty" json:"report_type,omitempty"`
	RuleType                      *string   `url:"rule_type,omitempty" json:"rule_type,omitempty"`
	UserIDs                       *[]int    `url:"user_ids,omitempty" json:"user_ids,omitempty"`
	GroupIDs                      *[]int    `url:"group_ids,omitempty" json:"group_ids,omitempty"`
	ProtectedBranchIDs            *[]int    `url:"protected_branch_ids,omitempty" json:"protected_branch_ids,omitempty"`
	AppliesToAllProtectedBranches *bool     `url:"applies_to_all_protected_branches,omitempty" json:"applies_to_all_protected_branches,omitempty"`
	Usernames                     *[]string `url:"usernames,omitempty" json:"usernames,omitempty"`
}

CreateProjectLevelRuleOptions represents the available CreateProjectApprovalRule() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#create-project-approval-rule

type CreateProjectOptions

type CreateProjectOptions struct {
	AllowMergeOnSkippedPipeline               *bool                                `url:"allow_merge_on_skipped_pipeline,omitempty" json:"allow_merge_on_skipped_pipeline,omitempty"`
	OnlyAllowMergeIfAllStatusChecksPassed     *bool                                `url:"only_allow_merge_if_all_status_checks_passed,omitempty" json:"only_allow_merge_if_all_status_checks_passed,omitempty"`
	AnalyticsAccessLevel                      *AccessControlValue                  `url:"analytics_access_level,omitempty" json:"analytics_access_level,omitempty"`
	AutoCancelPendingPipelines                *string                              `url:"auto_cancel_pending_pipelines,omitempty" json:"auto_cancel_pending_pipelines,omitempty"`
	AutoDevopsDeployStrategy                  *string                              `url:"auto_devops_deploy_strategy,omitempty" json:"auto_devops_deploy_strategy,omitempty"`
	AutoDevopsEnabled                         *bool                                `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
	AutocloseReferencedIssues                 *bool                                `url:"autoclose_referenced_issues,omitempty" json:"autoclose_referenced_issues,omitempty"`
	Avatar                                    *ProjectAvatar                       `url:"-" json:"-"`
	BuildCoverageRegex                        *string                              `url:"build_coverage_regex,omitempty" json:"build_coverage_regex,omitempty"`
	BuildGitStrategy                          *string                              `url:"build_git_strategy,omitempty" json:"build_git_strategy,omitempty"`
	BuildTimeout                              *int                                 `url:"build_timeout,omitempty" json:"build_timeout,omitempty"`
	BuildsAccessLevel                         *AccessControlValue                  `url:"builds_access_level,omitempty" json:"builds_access_level,omitempty"`
	CIConfigPath                              *string                              `url:"ci_config_path,omitempty" json:"ci_config_path,omitempty"`
	ContainerExpirationPolicyAttributes       *ContainerExpirationPolicyAttributes `url:"container_expiration_policy_attributes,omitempty" json:"container_expiration_policy_attributes,omitempty"`
	ContainerRegistryAccessLevel              *AccessControlValue                  `url:"container_registry_access_level,omitempty" json:"container_registry_access_level,omitempty"`
	DefaultBranch                             *string                              `url:"default_branch,omitempty" json:"default_branch,omitempty"`
	Description                               *string                              `url:"description,omitempty" json:"description,omitempty"`
	EmailsEnabled                             *bool                                `url:"emails_enabled,omitempty" json:"emails_enabled,omitempty"`
	EnforceAuthChecksOnUploads                *bool                                `url:"enforce_auth_checks_on_uploads,omitempty" json:"enforce_auth_checks_on_uploads,omitempty"`
	ExternalAuthorizationClassificationLabel  *string                              `url:"external_authorization_classification_label,omitempty" json:"external_authorization_classification_label,omitempty"`
	ForkingAccessLevel                        *AccessControlValue                  `url:"forking_access_level,omitempty" json:"forking_access_level,omitempty"`
	GroupWithProjectTemplatesID               *int                                 `url:"group_with_project_templates_id,omitempty" json:"group_with_project_templates_id,omitempty"`
	ImportURL                                 *string                              `url:"import_url,omitempty" json:"import_url,omitempty"`
	InitializeWithReadme                      *bool                                `url:"initialize_with_readme,omitempty" json:"initialize_with_readme,omitempty"`
	IssuesAccessLevel                         *AccessControlValue                  `url:"issues_access_level,omitempty" json:"issues_access_level,omitempty"`
	IssueBranchTemplate                       *string                              `url:"issue_branch_template,omitempty" json:"issue_branch_template,omitempty"`
	LFSEnabled                                *bool                                `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"`
	MergeCommitTemplate                       *string                              `url:"merge_commit_template,omitempty" json:"merge_commit_template,omitempty"`
	MergeMethod                               *MergeMethodValue                    `url:"merge_method,omitempty" json:"merge_method,omitempty"`
	MergePipelinesEnabled                     *bool                                `url:"merge_pipelines_enabled,omitempty" json:"merge_pipelines_enabled,omitempty"`
	MergeRequestsAccessLevel                  *AccessControlValue                  `url:"merge_requests_access_level,omitempty" json:"merge_requests_access_level,omitempty"`
	MergeTrainsEnabled                        *bool                                `url:"merge_trains_enabled,omitempty" json:"merge_trains_enabled,omitempty"`
	Mirror                                    *bool                                `url:"mirror,omitempty" json:"mirror,omitempty"`
	MirrorTriggerBuilds                       *bool                                `url:"mirror_trigger_builds,omitempty" json:"mirror_trigger_builds,omitempty"`
	ModelExperimentsAccessLevel               *AccessControlValue                  `url:"model_experiments_access_level,omitempty" json:"model_experiments_access_level,omitempty"`
	ModelRegistryAccessLevel                  *AccessControlValue                  `url:"model_registry_access_level,omitempty" json:"model_registry_access_level,omitempty"`
	Name                                      *string                              `url:"name,omitempty" json:"name,omitempty"`
	NamespaceID                               *int                                 `url:"namespace_id,omitempty" json:"namespace_id,omitempty"`
	OnlyAllowMergeIfAllDiscussionsAreResolved *bool                                `` /* 130-byte string literal not displayed */
	OnlyAllowMergeIfPipelineSucceeds          *bool                                `url:"only_allow_merge_if_pipeline_succeeds,omitempty" json:"only_allow_merge_if_pipeline_succeeds,omitempty"`
	OperationsAccessLevel                     *AccessControlValue                  `url:"operations_access_level,omitempty" json:"operations_access_level,omitempty"`
	PackagesEnabled                           *bool                                `url:"packages_enabled,omitempty" json:"packages_enabled,omitempty"`
	PagesAccessLevel                          *AccessControlValue                  `url:"pages_access_level,omitempty" json:"pages_access_level,omitempty"`
	Path                                      *string                              `url:"path,omitempty" json:"path,omitempty"`
	ReleasesAccessLevel                       *AccessControlValue                  `url:"releases_access_level,omitempty" json:"releases_access_level,omitempty"`
	EnvironmentsAccessLevel                   *AccessControlValue                  `url:"environments_access_level,omitempty" json:"environments_access_level,omitempty"`
	FeatureFlagsAccessLevel                   *AccessControlValue                  `url:"feature_flags_access_level,omitempty" json:"feature_flags_access_level,omitempty"`
	InfrastructureAccessLevel                 *AccessControlValue                  `url:"infrastructure_access_level,omitempty" json:"infrastructure_access_level,omitempty"`
	MonitorAccessLevel                        *AccessControlValue                  `url:"monitor_access_level,omitempty" json:"monitor_access_level,omitempty"`
	RemoveSourceBranchAfterMerge              *bool                                `url:"remove_source_branch_after_merge,omitempty" json:"remove_source_branch_after_merge,omitempty"`
	PrintingMergeRequestLinkEnabled           *bool                                `url:"printing_merge_request_link_enabled,omitempty" json:"printing_merge_request_link_enabled,omitempty"`
	RepositoryAccessLevel                     *AccessControlValue                  `url:"repository_access_level,omitempty" json:"repository_access_level,omitempty"`
	RepositoryStorage                         *string                              `url:"repository_storage,omitempty" json:"repository_storage,omitempty"`
	RequestAccessEnabled                      *bool                                `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"`
	RequirementsAccessLevel                   *AccessControlValue                  `url:"requirements_access_level,omitempty" json:"requirements_access_level,omitempty"`
	ResolveOutdatedDiffDiscussions            *bool                                `url:"resolve_outdated_diff_discussions,omitempty" json:"resolve_outdated_diff_discussions,omitempty"`
	SecurityAndComplianceAccessLevel          *AccessControlValue                  `url:"security_and_compliance_access_level,omitempty" json:"security_and_compliance_access_level,omitempty"`
	SharedRunnersEnabled                      *bool                                `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
	GroupRunnersEnabled                       *bool                                `url:"group_runners_enabled,omitempty" json:"group_runners_enabled,omitempty"`
	ShowDefaultAwardEmojis                    *bool                                `url:"show_default_award_emojis,omitempty" json:"show_default_award_emojis,omitempty"`
	SnippetsAccessLevel                       *AccessControlValue                  `url:"snippets_access_level,omitempty" json:"snippets_access_level,omitempty"`
	SquashCommitTemplate                      *string                              `url:"squash_commit_template,omitempty" json:"squash_commit_template,omitempty"`
	SquashOption                              *SquashOptionValue                   `url:"squash_option,omitempty" json:"squash_option,omitempty"`
	SuggestionCommitMessage                   *string                              `url:"suggestion_commit_message,omitempty" json:"suggestion_commit_message,omitempty"`
	TemplateName                              *string                              `url:"template_name,omitempty" json:"template_name,omitempty"`
	TemplateProjectID                         *int                                 `url:"template_project_id,omitempty" json:"template_project_id,omitempty"`
	Topics                                    *[]string                            `url:"topics,omitempty" json:"topics,omitempty"`
	UseCustomTemplate                         *bool                                `url:"use_custom_template,omitempty" json:"use_custom_template,omitempty"`
	Visibility                                *VisibilityValue                     `url:"visibility,omitempty" json:"visibility,omitempty"`
	WikiAccessLevel                           *AccessControlValue                  `url:"wiki_access_level,omitempty" json:"wiki_access_level,omitempty"`

	// Deprecated: use Merge Request Approvals API instead
	ApprovalsBeforeMerge *int `url:"approvals_before_merge,omitempty" json:"approvals_before_merge,omitempty"`
	// Deprecated: use PublicJobs instead
	PublicBuilds *bool `url:"public_builds,omitempty" json:"public_builds,omitempty"`
	// Deprecated: No longer supported in recent versions.
	CIForwardDeploymentEnabled *bool `url:"ci_forward_deployment_enabled,omitempty" json:"ci_forward_deployment_enabled,omitempty"`
	// Deprecated: Use ContainerRegistryAccessLevel instead.
	ContainerRegistryEnabled *bool `url:"container_registry_enabled,omitempty" json:"container_registry_enabled,omitempty"`
	// Deprecated: Use EmailsEnabled instead
	EmailsDisabled *bool `url:"emails_disabled,omitempty" json:"emails_disabled,omitempty"`
	// Deprecated: Use IssuesAccessLevel instead.
	IssuesEnabled *bool `url:"issues_enabled,omitempty" json:"issues_enabled,omitempty"`
	// Deprecated: No longer supported in recent versions.
	IssuesTemplate *string `url:"issues_template,omitempty" json:"issues_template,omitempty"`
	// Deprecated: Use BuildsAccessLevel instead.
	JobsEnabled *bool `url:"jobs_enabled,omitempty" json:"jobs_enabled,omitempty"`
	// Deprecated: Use MergeRequestsAccessLevel instead.
	MergeRequestsEnabled *bool `url:"merge_requests_enabled,omitempty" json:"merge_requests_enabled,omitempty"`
	// Deprecated: No longer supported in recent versions.
	MergeRequestsTemplate *string `url:"merge_requests_template,omitempty" json:"merge_requests_template,omitempty"`
	// Deprecated: No longer supported in recent versions.
	ServiceDeskEnabled *bool `url:"service_desk_enabled,omitempty" json:"service_desk_enabled,omitempty"`
	// Deprecated: Use SnippetsAccessLevel instead.
	SnippetsEnabled *bool `url:"snippets_enabled,omitempty" json:"snippets_enabled,omitempty"`
	// Deprecated: Use Topics instead. (Deprecated in GitLab 14.0)
	TagList *[]string `url:"tag_list,omitempty" json:"tag_list,omitempty"`
	// Deprecated: Use WikiAccessLevel instead.
	WikiEnabled *bool `url:"wiki_enabled,omitempty" json:"wiki_enabled,omitempty"`
}

CreateProjectOptions represents the available CreateProject() options.

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

type CreateProjectSnippetOptions added in v0.7.2

type CreateProjectSnippetOptions struct {
	Title       *string                      `url:"title,omitempty" json:"title,omitempty"`
	Description *string                      `url:"description,omitempty" json:"description,omitempty"`
	Visibility  *VisibilityValue             `url:"visibility,omitempty" json:"visibility,omitempty"`
	Files       *[]*CreateSnippetFileOptions `url:"files,omitempty" json:"files,omitempty"`

	// Deprecated: use Files instead
	FileName *string `url:"file_name,omitempty" json:"file_name,omitempty"`
	// Deprecated: use Files instead
	Content *string `url:"content,omitempty" json:"content,omitempty"`
}

CreateProjectSnippetOptions represents the available CreateSnippet() options.

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#create-new-snippet

type CreateProjectVariableOptions added in v0.116.0

type CreateProjectVariableOptions struct {
	Key              *string            `url:"key,omitempty" json:"key,omitempty"`
	Value            *string            `url:"value,omitempty" json:"value,omitempty"`
	Description      *string            `url:"description,omitempty" json:"description,omitempty"`
	EnvironmentScope *string            `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
	Masked           *bool              `url:"masked,omitempty" json:"masked,omitempty"`
	MaskedAndHidden  *bool              `url:"masked_and_hidden,omitempty" json:"masked_and_hidden,omitempty"`
	Protected        *bool              `url:"protected,omitempty" json:"protected,omitempty"`
	Raw              *bool              `url:"raw,omitempty" json:"raw,omitempty"`
	VariableType     *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

CreateProjectVariableOptions represents the available CreateVariable() options.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#create-a-variable

type CreateReleaseLinkOptions added in v0.116.0

type CreateReleaseLinkOptions struct {
	Name            *string        `url:"name,omitempty" json:"name,omitempty"`
	URL             *string        `url:"url,omitempty" json:"url,omitempty"`
	FilePath        *string        `url:"filepath,omitempty" json:"filepath,omitempty"`
	DirectAssetPath *string        `url:"direct_asset_path,omitempty" json:"direct_asset_path,omitempty"`
	LinkType        *LinkTypeValue `url:"link_type,omitempty" json:"link_type,omitempty"`
}

CreateReleaseLinkOptions represents CreateReleaseLink() options.

GitLab API docs: https://docs.gitlab.com/api/releases/links/#create-a-release-link

type CreateReleaseOptions added in v0.10.0

type CreateReleaseOptions struct {
	Name        *string               `url:"name,omitempty" json:"name,omitempty"`
	TagName     *string               `url:"tag_name,omitempty" json:"tag_name,omitempty"`
	TagMessage  *string               `url:"tag_message,omitempty" json:"tag_message,omitempty"`
	Description *string               `url:"description,omitempty" json:"description,omitempty"`
	Ref         *string               `url:"ref,omitempty" json:"ref,omitempty"`
	Milestones  *[]string             `url:"milestones,omitempty" json:"milestones,omitempty"`
	Assets      *ReleaseAssetsOptions `url:"assets,omitempty" json:"assets,omitempty"`
	ReleasedAt  *time.Time            `url:"released_at,omitempty" json:"released_at,omitempty"`
}

CreateReleaseOptions represents CreateRelease() options.

GitLab API docs: https://docs.gitlab.com/api/releases/#create-a-release

type CreateSecureFileOptions added in v0.127.0

type CreateSecureFileOptions struct {
	Name *string `url:"name,omitempty" json:"name,omitempty"`
}

CreateSecureFileOptions represents the available CreateSecureFile() options.

GitLab API docs: https://docs.gitlab.com/api/secure_files/#create-secure-file

type CreateServiceAccountOptions added in v0.116.0

type CreateServiceAccountOptions struct {
	Name     *string `url:"name,omitempty" json:"name,omitempty"`
	Username *string `url:"username,omitempty" json:"username,omitempty"`
}

CreateServiceAccountOptions represents the available CreateServiceAccount() options.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#create-a-service-account-user

type CreateServiceAccountPersonalAccessTokenOptions added in v0.116.0

type CreateServiceAccountPersonalAccessTokenOptions struct {
	Name      *string   `url:"name,omitempty" json:"name,omitempty"`
	Scopes    *[]string `url:"scopes,omitempty" json:"scopes,omitempty"`
	ExpiresAt *ISOTime  `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

CreateServiceAccountPersonalAccessTokenOptions represents the available CreateServiceAccountPersonalAccessToken() options.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#create-a-personal-access-token-for-a-service-account-user

type CreateServiceAccountUserOptions added in v0.116.0

type CreateServiceAccountUserOptions struct {
	Name     *string `url:"name,omitempty" json:"name,omitempty"`
	Username *string `url:"username,omitempty" json:"username,omitempty"`
	Email    *string `url:"email,omitempty" json:"email,omitempty"`
}

CreateServiceAccountUserOptions represents the available CreateServiceAccountUser() options.

GitLab API docs: https://docs.gitlab.com/api/user_service_accounts/#create-a-service-account-user

type CreateSnippetDiscussionOptions added in v0.11.2

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

CreateSnippetDiscussionOptions represents the available CreateSnippetDiscussion() options.

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

type CreateSnippetFileOptions added in v0.116.0

type CreateSnippetFileOptions struct {
	FilePath *string `url:"file_path,omitempty" json:"file_path,omitempty"`
	Content  *string `url:"content,omitempty" json:"content,omitempty"`
}

CreateSnippetFileOptions represents the create snippet file options.

GitLab API docs: https://docs.gitlab.com/api/snippets/#create-new-snippet

type CreateSnippetNoteOptions

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

CreateSnippetNoteOptions represents the available CreateSnippetNote() options.

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

type CreateSnippetOptions

type CreateSnippetOptions struct {
	Title       *string                      `url:"title,omitempty" json:"title,omitempty"`
	FileName    *string                      `url:"file_name,omitempty" json:"file_name,omitempty"`
	Description *string                      `url:"description,omitempty" json:"description,omitempty"`
	Content     *string                      `url:"content,omitempty" json:"content,omitempty"`
	Visibility  *VisibilityValue             `url:"visibility,omitempty" json:"visibility,omitempty"`
	Files       *[]*CreateSnippetFileOptions `url:"files,omitempty" json:"files,omitempty"`
}

CreateSnippetOptions represents the available CreateSnippet() options.

GitLab API docs: https://docs.gitlab.com/api/snippets/#create-new-snippet

type CreateTagOptions

type CreateTagOptions struct {
	TagName *string `url:"tag_name,omitempty" json:"tag_name,omitempty"`
	Ref     *string `url:"ref,omitempty" json:"ref,omitempty"`
	Message *string `url:"message,omitempty" json:"message,omitempty"`
}

CreateTagOptions represents the available CreateTag() options.

GitLab API docs: https://docs.gitlab.com/api/tags/#create-a-new-tag

type CreateTopicOptions added in v0.116.0

type CreateTopicOptions struct {
	Name        *string      `url:"name,omitempty" json:"name,omitempty"`
	Title       *string      `url:"title,omitempty" json:"title,omitempty"`
	Description *string      `url:"description,omitempty" json:"description,omitempty"`
	Avatar      *TopicAvatar `url:"-" json:"-"`
}

CreateTopicOptions represents the available CreateTopic() options.

GitLab API docs: https://docs.gitlab.com/api/topics/#create-a-project-topic

type CreateUserOptions

type CreateUserOptions struct {
	Admin               *bool       `url:"admin,omitempty" json:"admin,omitempty"`
	Avatar              *UserAvatar `url:"-" json:"-"`
	Bio                 *string     `url:"bio,omitempty" json:"bio,omitempty"`
	CanCreateGroup      *bool       `url:"can_create_group,omitempty" json:"can_create_group,omitempty"`
	Email               *string     `url:"email,omitempty" json:"email,omitempty"`
	External            *bool       `url:"external,omitempty" json:"external,omitempty"`
	ExternUID           *string     `url:"extern_uid,omitempty" json:"extern_uid,omitempty"`
	ForceRandomPassword *bool       `url:"force_random_password,omitempty" json:"force_random_password,omitempty"`
	JobTitle            *string     `url:"job_title,omitempty" json:"job_title,omitempty"`
	Linkedin            *string     `url:"linkedin,omitempty" json:"linkedin,omitempty"`
	Location            *string     `url:"location,omitempty" json:"location,omitempty"`
	Name                *string     `url:"name,omitempty" json:"name,omitempty"`
	Note                *string     `url:"note,omitempty" json:"note,omitempty"`
	Organization        *string     `url:"organization,omitempty" json:"organization,omitempty"`
	Password            *string     `url:"password,omitempty" json:"password,omitempty"`
	PrivateProfile      *bool       `url:"private_profile,omitempty" json:"private_profile,omitempty"`
	ProjectsLimit       *int        `url:"projects_limit,omitempty" json:"projects_limit,omitempty"`
	Provider            *string     `url:"provider,omitempty" json:"provider,omitempty"`
	ResetPassword       *bool       `url:"reset_password,omitempty" json:"reset_password,omitempty"`
	SkipConfirmation    *bool       `url:"skip_confirmation,omitempty" json:"skip_confirmation,omitempty"`
	Skype               *string     `url:"skype,omitempty" json:"skype,omitempty"`
	ThemeID             *int        `url:"theme_id,omitempty" json:"theme_id,omitempty"`
	Twitter             *string     `url:"twitter,omitempty" json:"twitter,omitempty"`
	Username            *string     `url:"username,omitempty" json:"username,omitempty"`
	WebsiteURL          *string     `url:"website_url,omitempty" json:"website_url,omitempty"`
}

CreateUserOptions represents the available CreateUser() options.

GitLab API docs: https://docs.gitlab.com/api/users/#create-a-user

type CreateUserRunnerOptions added in v0.116.0

type CreateUserRunnerOptions struct {
	RunnerType      *string   `url:"runner_type,omitempty" json:"runner_type,omitempty"`
	GroupID         *int      `url:"group_id,omitempty" json:"group_id,omitempty"`
	ProjectID       *int      `url:"project_id,omitempty" json:"project_id,omitempty"`
	Description     *string   `url:"description,omitempty" json:"description,omitempty"`
	Paused          *bool     `url:"paused,omitempty" json:"paused,omitempty"`
	Locked          *bool     `url:"locked,omitempty" json:"locked,omitempty"`
	RunUntagged     *bool     `url:"run_untagged,omitempty" json:"run_untagged,omitempty"`
	TagList         *[]string `url:"tag_list,omitempty" json:"tag_list,omitempty"`
	AccessLevel     *string   `url:"access_level,omitempty" json:"access_level,omitempty"`
	MaximumTimeout  *int      `url:"maximum_timeout,omitempty" json:"maximum_timeout,omitempty"`
	MaintenanceNote *string   `url:"maintenance_note,omitempty" json:"maintenance_note,omitempty"`
}

CreateUserRunnerOptions represents the available CreateUserRunner() options.

GitLab API docs: https://docs.gitlab.com/api/users/#create-a-runner-linked-to-a-user

type CreateVulnerabilityOptions added in v0.116.0

type CreateVulnerabilityOptions struct {
	FindingID *int `url:"finding_id,omitempty" json:"finding_id,omitempty"`
}

CreateVulnerabilityOptions represents the available CreateVulnerability() options. Deprecated: use GraphQL Query.vulnerabilities instead

GitLab API docs: https://docs.gitlab.com/api/project_vulnerabilities/#new-vulnerability

type CreateWikiPageOptions added in v0.7.0

type CreateWikiPageOptions struct {
	Content *string          `url:"content,omitempty" json:"content,omitempty"`
	Title   *string          `url:"title,omitempty" json:"title,omitempty"`
	Format  *WikiFormatValue `url:"format,omitempty" json:"format,omitempty"`
}

CreateWikiPageOptions represents options to CreateWikiPage.

GitLab API docs: https://docs.gitlab.com/api/wikis/#create-a-new-wiki-page

type CustomAttribute added in v0.11.1

type CustomAttribute struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

CustomAttribute struct is used to unmarshal response to api calls.

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

type CustomAttributesService added in v0.11.1

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

CustomAttributesService handles communication with the group, project and user custom attributes related methods of the GitLab API.

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

func (*CustomAttributesService) DeleteCustomGroupAttribute added in v0.11.1

func (s *CustomAttributesService) DeleteCustomGroupAttribute(group int, key string, options ...RequestOptionFunc) (*Response, error)

DeleteCustomGroupAttribute removes the custom attribute of the specified group.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#delete-custom-attribute

func (*CustomAttributesService) DeleteCustomProjectAttribute added in v0.11.1

func (s *CustomAttributesService) DeleteCustomProjectAttribute(project int, key string, options ...RequestOptionFunc) (*Response, error)

DeleteCustomProjectAttribute removes the custom attribute of the specified project.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#delete-custom-attribute

func (*CustomAttributesService) DeleteCustomUserAttribute added in v0.11.1

func (s *CustomAttributesService) DeleteCustomUserAttribute(user int, key string, options ...RequestOptionFunc) (*Response, error)

DeleteCustomUserAttribute removes the custom attribute of the specified user.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#delete-custom-attribute

func (*CustomAttributesService) GetCustomGroupAttribute added in v0.11.1

func (s *CustomAttributesService) GetCustomGroupAttribute(group int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)

GetCustomGroupAttribute returns the group attribute with a specific key.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#single-custom-attribute

func (*CustomAttributesService) GetCustomProjectAttribute added in v0.11.1

func (s *CustomAttributesService) GetCustomProjectAttribute(project int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)

GetCustomProjectAttribute returns the project attribute with a specific key.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#single-custom-attribute

func (*CustomAttributesService) GetCustomUserAttribute added in v0.11.1

func (s *CustomAttributesService) GetCustomUserAttribute(user int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)

GetCustomUserAttribute returns the user attribute with a specific key.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#single-custom-attribute

func (*CustomAttributesService) ListCustomGroupAttributes added in v0.11.1

func (s *CustomAttributesService) ListCustomGroupAttributes(group int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error)

ListCustomGroupAttributes lists the custom attributes of the specified group.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#list-custom-attributes

func (*CustomAttributesService) ListCustomProjectAttributes added in v0.11.1

func (s *CustomAttributesService) ListCustomProjectAttributes(project int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error)

ListCustomProjectAttributes lists the custom attributes of the specified project.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#list-custom-attributes

func (*CustomAttributesService) ListCustomUserAttributes added in v0.11.1

func (s *CustomAttributesService) ListCustomUserAttributes(user int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error)

ListCustomUserAttributes lists the custom attributes of the specified user.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#list-custom-attributes

func (*CustomAttributesService) SetCustomGroupAttribute added in v0.11.1

func (s *CustomAttributesService) SetCustomGroupAttribute(group int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)

SetCustomGroupAttribute sets the custom attributes of the specified group.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#set-custom-attribute

func (*CustomAttributesService) SetCustomProjectAttribute added in v0.11.1

func (s *CustomAttributesService) SetCustomProjectAttribute(project int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)

SetCustomProjectAttribute sets the custom attributes of the specified project.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#set-custom-attribute

func (*CustomAttributesService) SetCustomUserAttribute added in v0.11.1

func (s *CustomAttributesService) SetCustomUserAttribute(user int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)

SetCustomUserAttribute sets the custom attributes of the specified user.

GitLab API docs: https://docs.gitlab.com/api/custom_attributes/#set-custom-attribute

type CustomAttributesServiceInterface added in v0.126.0

type CustomAttributesServiceInterface interface {
	ListCustomUserAttributes(user int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error)
	ListCustomGroupAttributes(group int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error)
	ListCustomProjectAttributes(project int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error)
	GetCustomUserAttribute(user int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)
	GetCustomGroupAttribute(group int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)
	GetCustomProjectAttribute(project int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)
	SetCustomUserAttribute(user int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)
	SetCustomGroupAttribute(group int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)
	SetCustomProjectAttribute(project int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)
	DeleteCustomUserAttribute(user int, key string, options ...RequestOptionFunc) (*Response, error)
	DeleteCustomGroupAttribute(group int, key string, options ...RequestOptionFunc) (*Response, error)
	DeleteCustomProjectAttribute(project int, key string, options ...RequestOptionFunc) (*Response, error)
}

type CustomIssueTrackerService added in v0.116.0

type CustomIssueTrackerService struct {
	Service
	Properties *CustomIssueTrackerServiceProperties `json:"properties"`
}

CustomIssueTrackerService represents Custom Issue Tracker service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#custom-issue-tracker

type CustomIssueTrackerServiceProperties added in v0.116.0

type CustomIssueTrackerServiceProperties struct {
	ProjectURL  string `json:"project_url,omitempty"`
	IssuesURL   string `json:"issues_url,omitempty"`
	NewIssueURL string `json:"new_issue_url,omitempty"`
}

CustomIssueTrackerServiceProperties represents Custom Issue Tracker specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#custom-issue-tracker

type DORAMetric added in v0.116.0

type DORAMetric struct {
	Date  string  `json:"date"`
	Value float64 `json:"value"`
}

DORAMetric represents a single DORA metric data point.

Gitlab API docs: https://docs.gitlab.com/api/dora/metrics/

func (DORAMetric) String added in v0.116.0

func (m DORAMetric) String() string

Gets a string representation of a DORAMetric data point

GitLab API docs: https://docs.gitlab.com/api/dora/metrics/

type DORAMetricInterval added in v0.116.0

type DORAMetricInterval string

DORAMetricInterval represents the time period over which the metrics are aggregated.

GitLab API docs: https://docs.gitlab.com/api/dora/metrics/

const (
	DORAMetricIntervalDaily   DORAMetricInterval = "daily"
	DORAMetricIntervalMonthly DORAMetricInterval = "monthly"
	DORAMetricIntervalAll     DORAMetricInterval = "all"
)

List of available DORA metric interval types.

GitLab API docs: https://docs.gitlab.com/api/dora/metrics/

type DORAMetricType added in v0.116.0

type DORAMetricType string

DORAMetricType represents all valid DORA metrics types.

GitLab API docs: https://docs.gitlab.com/api/dora/metrics/

const (
	DORAMetricDeploymentFrequency  DORAMetricType = "deployment_frequency"
	DORAMetricLeadTimeForChanges   DORAMetricType = "lead_time_for_changes"
	DORAMetricTimeToRestoreService DORAMetricType = "time_to_restore_service"
	DORAMetricChangeFailureRate    DORAMetricType = "change_failure_rate"
)

List of available DORA metric type names.

GitLab API docs: https://docs.gitlab.com/api/dora/metrics/

type DORAMetricsService added in v0.116.0

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

DORAMetricsService handles communication with the DORA metrics related methods of the GitLab API.

Gitlab API docs: https://docs.gitlab.com/api/dora/metrics/

func (*DORAMetricsService) GetGroupDORAMetrics added in v0.116.0

func (s *DORAMetricsService) GetGroupDORAMetrics(gid any, opt GetDORAMetricsOptions, options ...RequestOptionFunc) ([]DORAMetric, *Response, error)

GetGroupDORAMetrics gets the DORA metrics for a group.

GitLab API Docs: https://docs.gitlab.com/api/dora/metrics/#get-group-level-dora-metrics

func (*DORAMetricsService) GetProjectDORAMetrics added in v0.116.0

func (s *DORAMetricsService) GetProjectDORAMetrics(pid any, opt GetDORAMetricsOptions, options ...RequestOptionFunc) ([]DORAMetric, *Response, error)

GetProjectDORAMetrics gets the DORA metrics for a project.

GitLab API Docs: https://docs.gitlab.com/api/dora/metrics/#get-project-level-dora-metrics

type DORAMetricsServiceInterface added in v0.126.0

type DORAMetricsServiceInterface interface {
	GetProjectDORAMetrics(pid any, opt GetDORAMetricsOptions, options ...RequestOptionFunc) ([]DORAMetric, *Response, error)
	GetGroupDORAMetrics(gid any, opt GetDORAMetricsOptions, options ...RequestOptionFunc) ([]DORAMetric, *Response, error)
}

DORAMetricsServiceInterface defines all the API methods for the DORAMetricsService

type DataDogService added in v0.116.0

type DataDogService struct {
	Service
	Properties *DataDogServiceProperties `json:"properties"`
}

DataDogService represents DataDog service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#datadog

type DataDogServiceProperties added in v0.116.0

type DataDogServiceProperties struct {
	APIURL             string `url:"api_url,omitempty" json:"api_url,omitempty"`
	DataDogEnv         string `url:"datadog_env,omitempty" json:"datadog_env,omitempty"`
	DataDogService     string `url:"datadog_service,omitempty" json:"datadog_service,omitempty"`
	DataDogSite        string `url:"datadog_site,omitempty" json:"datadog_site,omitempty"`
	DataDogTags        string `url:"datadog_tags,omitempty" json:"datadog_tags,omitempty"`
	ArchiveTraceEvents bool   `url:"archive_trace_events,omitempty" json:"archive_trace_events,omitempty"`
}

DataDogServiceProperties represents DataDog specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#datadog

type DatabaseMigrationsService added in v0.128.0

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

DatabaseMigrationsService handles communication with the database migrations related methods of the GitLab API.

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

func (*DatabaseMigrationsService) MarkMigrationAsSuccessful added in v0.128.0

func (s *DatabaseMigrationsService) MarkMigrationAsSuccessful(version int, opt *MarkMigrationAsSuccessfulOptions, options ...RequestOptionFunc) (*Response, error)

MarkMigrationAsSuccessful markd pending migrations as successfully executed to prevent them from being executed by the db:migrate tasks. Use this API to skip failing migrations after they are determined to be safe to skip.

GitLab API docs: https://docs.gitlab.com/api/database_migrations/#mark-a-migration-as-successful

type DatabaseMigrationsServiceInterface added in v0.128.0

type DatabaseMigrationsServiceInterface interface {
	MarkMigrationAsSuccessful(version int, opt *MarkMigrationAsSuccessfulOptions, options ...RequestOptionFunc) (*Response, error)
}

type DefaultBranchProtectionDefaultsOptions added in v0.116.0

type DefaultBranchProtectionDefaultsOptions struct {
	AllowedToPush           *[]*GroupAccessLevel `url:"allowed_to_push,omitempty" json:"allowed_to_push,omitempty"`
	AllowForcePush          *bool                `url:"allow_force_push,omitempty" json:"allow_force_push,omitempty"`
	AllowedToMerge          *[]*GroupAccessLevel `url:"allowed_to_merge,omitempty" json:"allowed_to_merge,omitempty"`
	DeveloperCanInitialPush *bool                `url:"developer_can_initial_push,omitempty" json:"developer_can_initial_push,omitempty"`
}

DefaultBranchProtectionDefaultsOptions represents the available options for using default_branch_protection_defaults in CreateGroup() or UpdateGroup()

GitLab API docs: https://docs.gitlab.com/api/groups/#options-for-default_branch_protection_defaults

type DeleteFileOptions

type DeleteFileOptions struct {
	Branch        *string `url:"branch,omitempty" json:"branch,omitempty"`
	StartBranch   *string `url:"start_branch,omitempty" json:"start_branch,omitempty"`
	AuthorEmail   *string `url:"author_email,omitempty" json:"author_email,omitempty"`
	AuthorName    *string `url:"author_name,omitempty" json:"author_name,omitempty"`
	CommitMessage *string `url:"commit_message,omitempty" json:"commit_message,omitempty"`
	LastCommitID  *string `url:"last_commit_id,omitempty" json:"last_commit_id,omitempty"`
}

DeleteFileOptions represents the available DeleteFile() options.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#delete-existing-file-in-repository

type DeleteGroupLDAPLinkWithCNOrFilterOptions added in v0.116.0

type DeleteGroupLDAPLinkWithCNOrFilterOptions struct {
	CN       *string `url:"cn,omitempty" json:"cn,omitempty"`
	Filter   *string `url:"filter,omitempty" json:"filter,omitempty"`
	Provider *string `url:"provider,omitempty" json:"provider,omitempty"`
}

DeleteGroupLDAPLinkWithCNOrFilterOptions represents the available DeleteGroupLDAPLinkWithCNOrFilter() options.

GitLab API docs: https://docs.gitlab.com/api/group_ldap_links/#delete-an-ldap-group-link-with-cn-or-filter

type DeleteGroupLabelOptions added in v0.116.0

type DeleteGroupLabelOptions struct {
	Name *string `url:"name,omitempty" json:"name,omitempty"`
}

DeleteGroupLabelOptions represents the available DeleteGroupLabel() options.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#delete-a-group-label

type DeleteGroupOptions added in v0.116.0

type DeleteGroupOptions struct {
	PermanentlyRemove *bool   `url:"permanently_remove,omitempty" json:"permanently_remove,omitempty"`
	FullPath          *string `url:"full_path,omitempty" json:"full_path,omitempty"`
}

DeleteGroupOptions represents the available DeleteGroup() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#delete-a-group

type DeleteLabelOptions

type DeleteLabelOptions struct {
	Name *string `url:"name,omitempty" json:"name,omitempty"`
}

DeleteLabelOptions represents the available DeleteLabel() options.

GitLab API docs: https://docs.gitlab.com/api/labels/#delete-a-label

type DeleteProjectOptions added in v0.116.0

type DeleteProjectOptions struct {
	FullPath          *string `url:"full_path" json:"full_path"`
	PermanentlyRemove *bool   `url:"permanently_remove" json:"permanently_remove"`
}

DeleteProjectOptions represents the available DeleteProject() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#delete-a-project

type DeleteRegisteredRunnerOptions added in v0.11.0

type DeleteRegisteredRunnerOptions struct {
	Token *string `url:"token" json:"token"`
}

DeleteRegisteredRunnerOptions represents the available DeleteRegisteredRunner() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#delete-a-runner-by-authentication-token

type DeleteRegistryRepositoryTagsOptions added in v0.116.0

type DeleteRegistryRepositoryTagsOptions struct {
	NameRegexpDelete *string `url:"name_regex_delete,omitempty" json:"name_regex_delete,omitempty"`
	NameRegexpKeep   *string `url:"name_regex_keep,omitempty" json:"name_regex_keep,omitempty"`
	KeepN            *int    `url:"keep_n,omitempty" json:"keep_n,omitempty"`
	OlderThan        *string `url:"older_than,omitempty" json:"older_than,omitempty"`

	// Deprecated: NameRegexp is deprecated in favor of NameRegexpDelete.
	NameRegexp *string `url:"name_regex,omitempty" json:"name_regex,omitempty"`
}

DeleteRegistryRepositoryTagsOptions represents the available DeleteRegistryRepositoryTags() options.

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

type DeleteServiceAccountOptions added in v0.124.0

type DeleteServiceAccountOptions struct {
	HardDelete *bool `url:"hard_delete,omitempty" json:"hard_delete,omitempty"`
}

DeleteServiceAccountOptions represents the available DeleteServiceAccount() options.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#delete-a-service-account-user

type DependenciesService added in v0.128.0

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

DependenciesService handles communication with the dependencies related methods of the GitLab API.

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

func (*DependenciesService) ListProjectDependencies added in v0.128.0

func (s *DependenciesService) ListProjectDependencies(pid any, opt *ListProjectDependenciesOptions, options ...RequestOptionFunc) ([]*Dependency, *Response, error)

ListProjectDependencies Get a list of project dependencies. This API partially mirroring Dependency List feature. This list can be generated only for languages and package managers supported by Gemnasium.

GitLab API docs: https://docs.gitlab.com/api/dependencies/#list-project-dependencies

type DependenciesServiceInterface added in v0.128.0

type DependenciesServiceInterface interface {
	ListProjectDependencies(pid any, opt *ListProjectDependenciesOptions, options ...RequestOptionFunc) ([]*Dependency, *Response, error)
}

type Dependency added in v0.128.0

type Dependency struct {
	Name               string                        `url:"name" json:"name"`
	Version            string                        `url:"version" json:"version"`
	PackageManager     DependencyPackageManagerValue `url:"package_manager" json:"package_manager"`
	DependencyFilePath string                        `url:"dependency_file_path" json:"dependency_file_path"`
	Vulnerabilities    []*DependencyVulnerability    `url:"vulnerabilities" json:"vulnerabilities"`
	Licenses           []*DependencyLicense          `url:"licenses" json:"licenses"`
}

Dependency represents a project dependency.

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

type DependencyLicense added in v0.128.0

type DependencyLicense struct {
	Name string `url:"name" json:"name"`
	URL  string `url:"url" json:"url"`
}

DependencyLicense represents a project dependency license.

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

type DependencyListExport added in v0.116.0

type DependencyListExport struct {
	ID          int    `json:"id"`
	HasFinished bool   `json:"has_finished"`
	Self        string `json:"self"`
	Download    string `json:"download"`
}

DependencyListExport represents a request for a GitLab project's dependency list.

GitLab API docs: https://docs.gitlab.com/api/dependency_list_export/#create-a-dependency-list-export

type DependencyListExportService added in v0.116.0

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

DependencyListExportService handles communication with the dependency list export related methods of the GitLab API.

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

func (*DependencyListExportService) CreateDependencyListExport added in v0.116.0

func (s *DependencyListExportService) CreateDependencyListExport(pipelineID int, opt *CreateDependencyListExportOptions, options ...RequestOptionFunc) (*DependencyListExport, *Response, error)

CreateDependencyListExport creates a new CycloneDX JSON export for all the project dependencies detected in a pipeline.

If an authenticated user does not have permission to read_dependency, this request returns a 403 Forbidden status code.

SBOM exports can be only accessed by the export’s author.

GitLab docs: https://docs.gitlab.com/api/dependency_list_export/#create-a-dependency-list-export

func (*DependencyListExportService) DownloadDependencyListExport added in v0.116.0

func (s *DependencyListExportService) DownloadDependencyListExport(id int, options ...RequestOptionFunc) (io.Reader, *Response, error)

DownloadDependencyListExport downloads a single dependency list export.

The github.com/CycloneDX/cyclonedx-go package can be used to parse the data from the returned io.Reader.

sbom := new(cdx.BOM)
decoder := cdx.NewBOMDecoder(reader, cdx.BOMFileFormatJSON)

if err = decoder.Decode(sbom); err != nil {
	panic(err)
}

GitLab docs: https://docs.gitlab.com/api/dependency_list_export/#download-dependency-list-export

func (*DependencyListExportService) GetDependencyListExport added in v0.116.0

func (s *DependencyListExportService) GetDependencyListExport(id int, options ...RequestOptionFunc) (*DependencyListExport, *Response, error)

GetDependencyListExport gets metadata about a single dependency list export.

GitLab docs: https://docs.gitlab.com/api/dependency_list_export/#get-single-dependency-list-export

type DependencyListExportServiceInterface added in v0.126.0

type DependencyListExportServiceInterface interface {
	CreateDependencyListExport(pipelineID int, opt *CreateDependencyListExportOptions, options ...RequestOptionFunc) (*DependencyListExport, *Response, error)
	GetDependencyListExport(id int, options ...RequestOptionFunc) (*DependencyListExport, *Response, error)
	DownloadDependencyListExport(id int, options ...RequestOptionFunc) (io.Reader, *Response, error)
}

type DependencyPackageManagerValue added in v0.128.0

type DependencyPackageManagerValue string

DependencyPackageManagerValue represents a dependency package manager.

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

List of available package manager for dependencies

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

type DependencyProxyService added in v0.128.0

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

DependencyProxyService handles communication with the dependency proxy related methods of the GitLab API.

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

func (*DependencyProxyService) PurgeGroupDependencyProxy added in v0.128.0

func (s *DependencyProxyService) PurgeGroupDependencyProxy(gid any, options ...RequestOptionFunc) (*Response, error)

PurgeGroupDependencyProxy schedules for deletion the cached manifests and blobs for a group. This endpoint requires the Owner role for the group.

GitLab API docs: https://docs.gitlab.com/api/dependency_proxy/#purge-the-dependency-proxy-for-a-group

type DependencyProxyServiceInterface added in v0.128.0

type DependencyProxyServiceInterface interface {
	PurgeGroupDependencyProxy(gid any, options ...RequestOptionFunc) (*Response, error)
}

type DependencyVulnerability added in v0.128.0

type DependencyVulnerability struct {
	Name     string `url:"name" json:"name"`
	Severity string `url:"severity" json:"severity"`
	ID       int    `url:"id" json:"id"`
	URL      string `url:"url" json:"url"`
}

DependencyVulnerability represents a project dependency vulnerability.

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

type DeployKeyProject added in v0.116.0

type DeployKeyProject 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"`
}

DeployKeyProject refers to a project an InstanceDeployKey has write access to.

func (DeployKeyProject) String added in v0.116.0

func (k DeployKeyProject) String() string

type DeployKeysService

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

DeployKeysService handles communication with the keys related methods of the GitLab API.

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

func (*DeployKeysService) AddDeployKey

func (s *DeployKeysService) AddDeployKey(pid any, opt *AddDeployKeyOptions, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)

AddDeployKey creates a new deploy key for a project. If deploy key already exists in another project - it will be joined to project but only if original one is accessible by the same user.

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#add-deploy-key-for-a-project

func (*DeployKeysService) DeleteDeployKey

func (s *DeployKeysService) DeleteDeployKey(pid any, deployKey int, options ...RequestOptionFunc) (*Response, error)

DeleteDeployKey deletes a deploy key from a project.

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#delete-deploy-key

func (*DeployKeysService) EnableDeployKey added in v0.6.0

func (s *DeployKeysService) EnableDeployKey(pid any, deployKey int, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)

EnableDeployKey enables a deploy key.

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#enable-a-deploy-key

func (*DeployKeysService) GetDeployKey

func (s *DeployKeysService) GetDeployKey(pid any, deployKey int, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)

GetDeployKey gets a single deploy key.

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#get-a-single-deploy-key

func (*DeployKeysService) ListAllDeployKeys added in v0.6.0

ListAllDeployKeys gets a list of all deploy keys

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#list-all-deploy-keys

func (*DeployKeysService) ListProjectDeployKeys added in v0.6.0

func (s *DeployKeysService) ListProjectDeployKeys(pid any, opt *ListProjectDeployKeysOptions, options ...RequestOptionFunc) ([]*ProjectDeployKey, *Response, error)

ListProjectDeployKeys gets a list of a project's deploy keys

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#list-deploy-keys-for-project

func (*DeployKeysService) UpdateDeployKey added in v0.116.0

func (s *DeployKeysService) UpdateDeployKey(pid any, deployKey int, opt *UpdateDeployKeyOptions, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)

UpdateDeployKey updates a deploy key for a project.

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#update-deploy-key

type DeployKeysServiceInterface added in v0.126.0

type DeployKeysServiceInterface interface {
	ListAllDeployKeys(opt *ListInstanceDeployKeysOptions, options ...RequestOptionFunc) ([]*InstanceDeployKey, *Response, error)
	ListProjectDeployKeys(pid any, opt *ListProjectDeployKeysOptions, options ...RequestOptionFunc) ([]*ProjectDeployKey, *Response, error)
	GetDeployKey(pid any, deployKey int, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)
	AddDeployKey(pid any, opt *AddDeployKeyOptions, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)
	DeleteDeployKey(pid any, deployKey int, options ...RequestOptionFunc) (*Response, error)
	EnableDeployKey(pid any, deployKey int, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)
	UpdateDeployKey(pid any, deployKey int, opt *UpdateDeployKeyOptions, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)
}

type DeployToken added in v0.116.0

type DeployToken struct {
	ID        int        `json:"id"`
	Name      string     `json:"name"`
	Username  string     `json:"username"`
	ExpiresAt *time.Time `json:"expires_at"`
	Revoked   bool       `json:"revoked"`
	Expired   bool       `json:"expired"`
	Token     string     `json:"token,omitempty"`
	Scopes    []string   `json:"scopes"`
}

DeployToken represents a GitLab deploy token.

func (DeployToken) String added in v0.116.0

func (k DeployToken) String() string

type DeployTokensService added in v0.116.0

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

DeployTokensService handles communication with the deploy tokens related methods of the GitLab API.

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

func (*DeployTokensService) CreateGroupDeployToken added in v0.116.0

func (s *DeployTokensService) CreateGroupDeployToken(gid any, opt *CreateGroupDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *Response, error)

CreateGroupDeployToken creates a new deploy token for a group.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#create-a-group-deploy-token

func (*DeployTokensService) CreateProjectDeployToken added in v0.116.0

func (s *DeployTokensService) CreateProjectDeployToken(pid any, opt *CreateProjectDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *Response, error)

CreateProjectDeployToken creates a new deploy token for a project.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#create-a-project-deploy-token

func (*DeployTokensService) DeleteGroupDeployToken added in v0.116.0

func (s *DeployTokensService) DeleteGroupDeployToken(gid any, deployToken int, options ...RequestOptionFunc) (*Response, error)

DeleteGroupDeployToken removes a deploy token from the group.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#delete-a-group-deploy-token

func (*DeployTokensService) DeleteProjectDeployToken added in v0.116.0

func (s *DeployTokensService) DeleteProjectDeployToken(pid any, deployToken int, options ...RequestOptionFunc) (*Response, error)

DeleteProjectDeployToken removes a deploy token from the project.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#delete-a-project-deploy-token

func (*DeployTokensService) GetGroupDeployToken added in v0.116.0

func (s *DeployTokensService) GetGroupDeployToken(gid any, deployToken int, options ...RequestOptionFunc) (*DeployToken, *Response, error)

GetGroupDeployToken gets a single deploy token.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#get-a-group-deploy-token

func (*DeployTokensService) GetProjectDeployToken added in v0.116.0

func (s *DeployTokensService) GetProjectDeployToken(pid any, deployToken int, options ...RequestOptionFunc) (*DeployToken, *Response, error)

GetProjectDeployToken gets a single deploy token.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#get-a-project-deploy-token

func (*DeployTokensService) ListAllDeployTokens added in v0.116.0

func (s *DeployTokensService) ListAllDeployTokens(options ...RequestOptionFunc) ([]*DeployToken, *Response, error)

ListAllDeployTokens gets a list of all deploy tokens.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#list-all-deploy-tokens

func (*DeployTokensService) ListGroupDeployTokens added in v0.116.0

func (s *DeployTokensService) ListGroupDeployTokens(gid any, opt *ListGroupDeployTokensOptions, options ...RequestOptionFunc) ([]*DeployToken, *Response, error)

ListGroupDeployTokens gets a list of a group’s deploy tokens.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#list-group-deploy-tokens

func (*DeployTokensService) ListProjectDeployTokens added in v0.116.0

func (s *DeployTokensService) ListProjectDeployTokens(pid any, opt *ListProjectDeployTokensOptions, options ...RequestOptionFunc) ([]*DeployToken, *Response, error)

ListProjectDeployTokens gets a list of a project's deploy tokens.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#list-project-deploy-tokens

type DeployTokensServiceInterface added in v0.126.0

type DeployTokensServiceInterface interface {
	ListAllDeployTokens(options ...RequestOptionFunc) ([]*DeployToken, *Response, error)
	ListProjectDeployTokens(pid any, opt *ListProjectDeployTokensOptions, options ...RequestOptionFunc) ([]*DeployToken, *Response, error)
	GetProjectDeployToken(pid any, deployToken int, options ...RequestOptionFunc) (*DeployToken, *Response, error)
	CreateProjectDeployToken(pid any, opt *CreateProjectDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *Response, error)
	DeleteProjectDeployToken(pid any, deployToken int, options ...RequestOptionFunc) (*Response, error)
	ListGroupDeployTokens(gid any, opt *ListGroupDeployTokensOptions, options ...RequestOptionFunc) ([]*DeployToken, *Response, error)
	GetGroupDeployToken(gid any, deployToken int, options ...RequestOptionFunc) (*DeployToken, *Response, error)
	CreateGroupDeployToken(gid any, opt *CreateGroupDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *Response, error)
	DeleteGroupDeployToken(gid any, deployToken int, options ...RequestOptionFunc) (*Response, error)
}

type Deployment added in v0.8.1

type Deployment struct {
	ID          int          `json:"id"`
	IID         int          `json:"iid"`
	Ref         string       `json:"ref"`
	SHA         string       `json:"sha"`
	Status      string       `json:"status"`
	CreatedAt   *time.Time   `json:"created_at"`
	UpdatedAt   *time.Time   `json:"updated_at"`
	User        *ProjectUser `json:"user"`
	Environment *Environment `json:"environment"`
	Deployable  struct {
		ID         int        `json:"id"`
		Status     string     `json:"status"`
		Stage      string     `json:"stage"`
		Name       string     `json:"name"`
		Ref        string     `json:"ref"`
		Tag        bool       `json:"tag"`
		Coverage   float64    `json:"coverage"`
		CreatedAt  *time.Time `json:"created_at"`
		StartedAt  *time.Time `json:"started_at"`
		FinishedAt *time.Time `json:"finished_at"`
		Duration   float64    `json:"duration"`
		User       *User      `json:"user"`
		Commit     *Commit    `json:"commit"`
		Pipeline   struct {
			ID        int        `json:"id"`
			SHA       string     `json:"sha"`
			Ref       string     `json:"ref"`
			Status    string     `json:"status"`
			CreatedAt *time.Time `json:"created_at"`
			UpdatedAt *time.Time `json:"updated_at"`
		} `json:"pipeline"`
		Runner *Runner `json:"runner"`
	} `json:"deployable"`
}

Deployment represents the Gitlab deployment

type DeploymentApprovalStatus added in v0.116.0

type DeploymentApprovalStatus string

DeploymentApprovalStatus represents a Gitlab deployment approval status.

const (
	DeploymentApprovalStatusApproved DeploymentApprovalStatus = "approved"
	DeploymentApprovalStatusRejected DeploymentApprovalStatus = "rejected"
)

These constants represent all valid deployment approval statuses.

type DeploymentEvent added in v0.116.0

type DeploymentEvent struct {
	ObjectKind             string `json:"object_kind"`
	Status                 string `json:"status"`
	StatusChangedAt        string `json:"status_changed_at"`
	DeploymentID           int    `json:"deployment_id"`
	DeployableID           int    `json:"deployable_id"`
	DeployableURL          string `json:"deployable_url"`
	Environment            string `json:"environment"`
	EnvironmentSlug        string `json:"environment_slug"`
	EnvironmentExternalURL string `json:"environment_external_url"`
	Project                struct {
		ID                int     `json:"id"`
		Name              string  `json:"name"`
		Description       string  `json:"description"`
		WebURL            string  `json:"web_url"`
		AvatarURL         *string `json:"avatar_url"`
		GitSSHURL         string  `json:"git_ssh_url"`
		GitHTTPURL        string  `json:"git_http_url"`
		Namespace         string  `json:"namespace"`
		VisibilityLevel   int     `json:"visibility_level"`
		PathWithNamespace string  `json:"path_with_namespace"`
		DefaultBranch     string  `json:"default_branch"`
		CIConfigPath      string  `json:"ci_config_path"`
		Homepage          string  `json:"homepage"`
		URL               string  `json:"url"`
		SSHURL            string  `json:"ssh_url"`
		HTTPURL           string  `json:"http_url"`
	} `json:"project"`
	Ref         string     `json:"ref"`
	ShortSHA    string     `json:"short_sha"`
	User        *EventUser `json:"user"`
	UserURL     string     `json:"user_url"`
	CommitURL   string     `json:"commit_url"`
	CommitTitle string     `json:"commit_title"`
}

DeploymentEvent represents a deployment event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#deployment-events

type DeploymentMergeRequestsService added in v0.116.0

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

DeploymentMergeRequestsService handles communication with the deployment's merge requests related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/deployments/#list-of-merge-requests-associated-with-a-deployment

func (*DeploymentMergeRequestsService) ListDeploymentMergeRequests added in v0.116.0

func (s *DeploymentMergeRequestsService) ListDeploymentMergeRequests(pid any, deployment int, opts *ListMergeRequestsOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)

ListDeploymentMergeRequests get the merge requests associated with deployment.

GitLab API docs: https://docs.gitlab.com/api/deployments/#list-of-merge-requests-associated-with-a-deployment

type DeploymentMergeRequestsServiceInterface added in v0.126.0

type DeploymentMergeRequestsServiceInterface interface {
	ListDeploymentMergeRequests(pid any, deployment int, opts *ListMergeRequestsOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)
}

DeploymentMergeRequestsServiceInterface defines all the API methods for the DeploymentMergeRequestsService

type DeploymentStatusValue added in v0.116.0

type DeploymentStatusValue string

DeploymentStatusValue represents a Gitlab deployment status.

const (
	DeploymentStatusCreated  DeploymentStatusValue = "created"
	DeploymentStatusRunning  DeploymentStatusValue = "running"
	DeploymentStatusSuccess  DeploymentStatusValue = "success"
	DeploymentStatusFailed   DeploymentStatusValue = "failed"
	DeploymentStatusCanceled DeploymentStatusValue = "canceled"
)

These constants represent all valid deployment statuses.

type DeploymentsService added in v0.8.1

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

DeploymentsService handles communication with the deployment related methods of the GitLab API.

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

func (*DeploymentsService) ApproveOrRejectProjectDeployment added in v0.116.0

func (s *DeploymentsService) ApproveOrRejectProjectDeployment(pid any, deployment int,
	opt *ApproveOrRejectProjectDeploymentOptions, options ...RequestOptionFunc,
) (*Response, error)

ApproveOrRejectProjectDeployment approve or reject a blocked deployment.

GitLab API docs: https://docs.gitlab.com/api/deployments/#approve-or-reject-a-blocked-deployment

func (*DeploymentsService) CreateProjectDeployment added in v0.116.0

func (s *DeploymentsService) CreateProjectDeployment(pid any, opt *CreateProjectDeploymentOptions, options ...RequestOptionFunc) (*Deployment, *Response, error)

CreateProjectDeployment creates a project deployment.

GitLab API docs: https://docs.gitlab.com/api/deployments/#create-a-deployment

func (*DeploymentsService) DeleteProjectDeployment added in v0.116.0

func (s *DeploymentsService) DeleteProjectDeployment(pid any, deployment int, options ...RequestOptionFunc) (*Response, error)

DeleteProjectDeployment delete a project deployment.

GitLab API docs: https://docs.gitlab.com/api/deployments/#delete-a-specific-deployment

func (*DeploymentsService) GetProjectDeployment added in v0.8.1

func (s *DeploymentsService) GetProjectDeployment(pid any, deployment int, options ...RequestOptionFunc) (*Deployment, *Response, error)

GetProjectDeployment get a deployment for a project.

GitLab API docs: https://docs.gitlab.com/api/deployments/#get-a-specific-deployment

func (*DeploymentsService) ListProjectDeployments added in v0.8.1

func (s *DeploymentsService) ListProjectDeployments(pid any, opts *ListProjectDeploymentsOptions, options ...RequestOptionFunc) ([]*Deployment, *Response, error)

ListProjectDeployments gets a list of deployments in a project.

GitLab API docs: https://docs.gitlab.com/api/deployments/#list-project-deployments

func (*DeploymentsService) UpdateProjectDeployment added in v0.116.0

func (s *DeploymentsService) UpdateProjectDeployment(pid any, deployment int, opt *UpdateProjectDeploymentOptions, options ...RequestOptionFunc) (*Deployment, *Response, error)

UpdateProjectDeployment updates a project deployment.

GitLab API docs: https://docs.gitlab.com/api/deployments/#update-a-deployment

type DeploymentsServiceInterface added in v0.126.0

type DeploymentsServiceInterface interface {
	ListProjectDeployments(pid any, opts *ListProjectDeploymentsOptions, options ...RequestOptionFunc) ([]*Deployment, *Response, error)
	GetProjectDeployment(pid any, deployment int, options ...RequestOptionFunc) (*Deployment, *Response, error)
	CreateProjectDeployment(pid any, opt *CreateProjectDeploymentOptions, options ...RequestOptionFunc) (*Deployment, *Response, error)
	UpdateProjectDeployment(pid any, deployment int, opt *UpdateProjectDeploymentOptions, options ...RequestOptionFunc) (*Deployment, *Response, error)
	ApproveOrRejectProjectDeployment(pid any, deployment int, opt *ApproveOrRejectProjectDeploymentOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteProjectDeployment(pid any, deployment int, options ...RequestOptionFunc) (*Response, error)
}

DeploymentsServiceInterface defines all the API methods for the DeploymentsService

type DetailedStatus added in v0.116.0

type DetailedStatus struct {
	Icon         string `json:"icon"`
	Text         string `json:"text"`
	Label        string `json:"label"`
	Group        string `json:"group"`
	Tooltip      string `json:"tooltip"`
	HasDetails   bool   `json:"has_details"`
	DetailsPath  string `json:"details_path"`
	Illustration struct {
		Image string `json:"image"`
	} `json:"illustration"`
	Favicon string `json:"favicon"`
}

DetailedStatus contains detailed information about the status of a pipeline.

type Diff

type Diff 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"`
}

Diff represents a GitLab diff.

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

func (Diff) String

func (d Diff) String() string

type DiscordService added in v0.116.0

type DiscordService struct {
	Service
	Properties *DiscordServiceProperties `json:"properties"`
}

DiscordService represents Discord service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#discord-notifications

type DiscordServiceProperties added in v0.116.0

type DiscordServiceProperties struct {
	BranchesToBeNotified      string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,omitempty"`
	NotifyOnlyBrokenPipelines bool   `url:"notify_only_broken_pipelines,omitempty" json:"notify_only_broken_pipelines,omitempty"`
}

DiscordServiceProperties represents Discord specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#discord-notifications

type Discussion added in v0.11.2

type Discussion struct {
	ID             string  `json:"id"`
	IndividualNote bool    `json:"individual_note"`
	Notes          []*Note `json:"notes"`
}

Discussion represents a GitLab discussion.

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

func (Discussion) String added in v0.11.2

func (d Discussion) String() string

type DiscussionsService added in v0.11.2

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

DiscussionsService handles communication with the discussions related methods of the GitLab API.

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

func (*DiscussionsService) AddCommitDiscussionNote added in v0.11.2

func (s *DiscussionsService) AddCommitDiscussionNote(pid any, commit string, discussion string, opt *AddCommitDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

AddCommitDiscussionNote creates a new discussion to a single project commit.

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

func (*DiscussionsService) AddEpicDiscussionNote added in v0.11.2

func (s *DiscussionsService) AddEpicDiscussionNote(gid any, epic int, discussion string, opt *AddEpicDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

AddEpicDiscussionNote creates a new discussion to a single project epic.

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

func (*DiscussionsService) AddIssueDiscussionNote added in v0.11.2

func (s *DiscussionsService) AddIssueDiscussionNote(pid any, issue int, discussion string, opt *AddIssueDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

AddIssueDiscussionNote creates a new discussion to a single project issue.

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

func (*DiscussionsService) AddMergeRequestDiscussionNote added in v0.11.2

func (s *DiscussionsService) AddMergeRequestDiscussionNote(pid any, mergeRequest int, discussion string, opt *AddMergeRequestDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

AddMergeRequestDiscussionNote creates a new discussion to a single project merge request.

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

func (*DiscussionsService) AddSnippetDiscussionNote added in v0.11.2

func (s *DiscussionsService) AddSnippetDiscussionNote(pid any, snippet int, discussion string, opt *AddSnippetDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

AddSnippetDiscussionNote creates a new discussion to a single project snippet.

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

func (*DiscussionsService) CreateCommitDiscussion added in v0.11.2

func (s *DiscussionsService) CreateCommitDiscussion(pid any, commit string, opt *CreateCommitDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

CreateCommitDiscussion creates a new discussion to a single project commit.

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

func (*DiscussionsService) CreateEpicDiscussion added in v0.11.2

func (s *DiscussionsService) CreateEpicDiscussion(gid any, epic int, opt *CreateEpicDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

CreateEpicDiscussion creates a new discussion for a single epic. Epic discussions are comments users can post to a epic.

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

func (*DiscussionsService) CreateIssueDiscussion added in v0.11.2

func (s *DiscussionsService) CreateIssueDiscussion(pid any, issue int, opt *CreateIssueDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

CreateIssueDiscussion creates a new discussion to a single project issue.

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

func (*DiscussionsService) CreateMergeRequestDiscussion added in v0.11.2

func (s *DiscussionsService) CreateMergeRequestDiscussion(pid any, mergeRequest int, opt *CreateMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

CreateMergeRequestDiscussion creates a new discussion for a single merge request.

GitLab API docs: https://docs.gitlab.com/api/discussions/#create-new-merge-request-thread

func (*DiscussionsService) CreateSnippetDiscussion added in v0.11.2

func (s *DiscussionsService) CreateSnippetDiscussion(pid any, snippet int, opt *CreateSnippetDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

CreateSnippetDiscussion creates a new discussion for a single snippet. Snippet discussions are comments users can post to a snippet.

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

func (*DiscussionsService) DeleteCommitDiscussionNote added in v0.11.2

func (s *DiscussionsService) DeleteCommitDiscussionNote(pid any, commit string, discussion string, note int, options ...RequestOptionFunc) (*Response, error)

DeleteCommitDiscussionNote deletes an existing discussion of an commit.

GitLab API docs: https://docs.gitlab.com/api/discussions/#delete-a-commit-thread-note

func (*DiscussionsService) DeleteEpicDiscussionNote added in v0.11.2

func (s *DiscussionsService) DeleteEpicDiscussionNote(gid any, epic int, discussion string, note int, options ...RequestOptionFunc) (*Response, error)

DeleteEpicDiscussionNote deletes an existing discussion of a epic.

GitLab API docs: https://docs.gitlab.com/api/discussions/#delete-an-epic-thread-note

func (*DiscussionsService) DeleteIssueDiscussionNote added in v0.11.2

func (s *DiscussionsService) DeleteIssueDiscussionNote(pid any, issue int, discussion string, note int, options ...RequestOptionFunc) (*Response, error)

DeleteIssueDiscussionNote deletes an existing discussion of an issue.

GitLab API docs: https://docs.gitlab.com/api/discussions/#delete-an-issue-thread-note

func (*DiscussionsService) DeleteMergeRequestDiscussionNote added in v0.11.2

func (s *DiscussionsService) DeleteMergeRequestDiscussionNote(pid any, mergeRequest int, discussion string, note int, options ...RequestOptionFunc) (*Response, error)

DeleteMergeRequestDiscussionNote deletes an existing discussion of a merge request.

GitLab API docs: https://docs.gitlab.com/api/discussions/#delete-a-merge-request-thread-note

func (*DiscussionsService) DeleteSnippetDiscussionNote added in v0.11.2

func (s *DiscussionsService) DeleteSnippetDiscussionNote(pid any, snippet int, discussion string, note int, options ...RequestOptionFunc) (*Response, error)

DeleteSnippetDiscussionNote deletes an existing discussion of a snippet.

GitLab API docs: https://docs.gitlab.com/api/discussions/#delete-a-snippet-thread-note

func (*DiscussionsService) GetCommitDiscussion added in v0.11.2

func (s *DiscussionsService) GetCommitDiscussion(pid any, commit string, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

GetCommitDiscussion returns a single discussion for a specific project commit.

GitLab API docs: https://docs.gitlab.com/api/discussions/#get-single-commit-discussion-item

func (*DiscussionsService) GetEpicDiscussion added in v0.11.2

func (s *DiscussionsService) GetEpicDiscussion(gid any, epic int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

GetEpicDiscussion returns a single discussion for a given epic.

GitLab API docs: https://docs.gitlab.com/api/discussions/#get-single-epic-discussion-item

func (*DiscussionsService) GetIssueDiscussion added in v0.11.2

func (s *DiscussionsService) GetIssueDiscussion(pid any, issue int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

GetIssueDiscussion returns a single discussion for a specific project issue.

GitLab API docs: https://docs.gitlab.com/api/discussions/#get-single-issue-discussion-item

func (*DiscussionsService) GetMergeRequestDiscussion added in v0.11.2

func (s *DiscussionsService) GetMergeRequestDiscussion(pid any, mergeRequest int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

GetMergeRequestDiscussion returns a single discussion for a given merge request.

GitLab API docs: https://docs.gitlab.com/api/discussions/#get-single-merge-request-discussion-item

func (*DiscussionsService) GetSnippetDiscussion added in v0.11.2

func (s *DiscussionsService) GetSnippetDiscussion(pid any, snippet int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

GetSnippetDiscussion returns a single discussion for a given snippet.

GitLab API docs: https://docs.gitlab.com/api/discussions/#get-single-snippet-discussion-item

func (*DiscussionsService) ListCommitDiscussions added in v0.11.2

func (s *DiscussionsService) ListCommitDiscussions(pid any, commit string, opt *ListCommitDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

ListCommitDiscussions gets a list of all discussions for a single commit.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-commit-discussion-items

func (*DiscussionsService) ListGroupEpicDiscussions added in v0.11.2

func (s *DiscussionsService) ListGroupEpicDiscussions(gid any, epic int, opt *ListGroupEpicDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

ListGroupEpicDiscussions gets a list of all discussions for a single epic. Epic discussions are comments users can post to a epic.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-group-epic-discussion-items

func (*DiscussionsService) ListIssueDiscussions added in v0.11.2

func (s *DiscussionsService) ListIssueDiscussions(pid any, issue int, opt *ListIssueDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

ListIssueDiscussions gets a list of all discussions for a single issue.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-issue-discussion-items

func (*DiscussionsService) ListMergeRequestDiscussions added in v0.11.2

func (s *DiscussionsService) ListMergeRequestDiscussions(pid any, mergeRequest int, opt *ListMergeRequestDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

ListMergeRequestDiscussions gets a list of all discussions for a single merge request.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-merge-request-discussion-items

func (*DiscussionsService) ListSnippetDiscussions added in v0.11.2

func (s *DiscussionsService) ListSnippetDiscussions(pid any, snippet int, opt *ListSnippetDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

ListSnippetDiscussions gets a list of all discussions for a single snippet. Snippet discussions are comments users can post to a snippet.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-snippet-discussion-items

func (*DiscussionsService) ResolveMergeRequestDiscussion added in v0.11.2

func (s *DiscussionsService) ResolveMergeRequestDiscussion(pid any, mergeRequest int, discussion string, opt *ResolveMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

ResolveMergeRequestDiscussion resolves/unresolves whole discussion of a merge request.

GitLab API docs: https://docs.gitlab.com/api/discussions/#resolve-a-merge-request-thread

func (*DiscussionsService) UpdateCommitDiscussionNote added in v0.11.2

func (s *DiscussionsService) UpdateCommitDiscussionNote(pid any, commit string, discussion string, note int, opt *UpdateCommitDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

UpdateCommitDiscussionNote modifies existing discussion of a commit.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-an-existing-commit-thread-note

func (*DiscussionsService) UpdateEpicDiscussionNote added in v0.11.2

func (s *DiscussionsService) UpdateEpicDiscussionNote(gid any, epic int, discussion string, note int, opt *UpdateEpicDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

UpdateEpicDiscussionNote modifies existing discussion of an epic.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-existing-epic-thread-note

func (*DiscussionsService) UpdateIssueDiscussionNote added in v0.11.2

func (s *DiscussionsService) UpdateIssueDiscussionNote(pid any, issue int, discussion string, note int, opt *UpdateIssueDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

UpdateIssueDiscussionNote modifies existing discussion of an issue.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-existing-issue-thread-note

func (*DiscussionsService) UpdateMergeRequestDiscussionNote added in v0.11.2

func (s *DiscussionsService) UpdateMergeRequestDiscussionNote(pid any, mergeRequest int, discussion string, note int, opt *UpdateMergeRequestDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

UpdateMergeRequestDiscussionNote modifies existing discussion of a merge request.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-an-existing-merge-request-thread-note

func (*DiscussionsService) UpdateSnippetDiscussionNote added in v0.11.2

func (s *DiscussionsService) UpdateSnippetDiscussionNote(pid any, snippet int, discussion string, note int, opt *UpdateSnippetDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

UpdateSnippetDiscussionNote modifies existing discussion of a snippet.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-existing-snippet-thread-note

type DiscussionsServiceInterface added in v0.126.0

type DiscussionsServiceInterface interface {
	ListIssueDiscussions(pid any, issue int, opt *ListIssueDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)
	GetIssueDiscussion(pid any, issue int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)
	CreateIssueDiscussion(pid any, issue int, opt *CreateIssueDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)
	AddIssueDiscussionNote(pid any, issue int, discussion string, opt *AddIssueDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateIssueDiscussionNote(pid any, issue int, discussion string, note int, opt *UpdateIssueDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteIssueDiscussionNote(pid any, issue int, discussion string, note int, options ...RequestOptionFunc) (*Response, error)
	ListSnippetDiscussions(pid any, snippet int, opt *ListSnippetDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)
	GetSnippetDiscussion(pid any, snippet int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)
	CreateSnippetDiscussion(pid any, snippet int, opt *CreateSnippetDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)
	AddSnippetDiscussionNote(pid any, snippet int, discussion string, opt *AddSnippetDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateSnippetDiscussionNote(pid any, snippet int, discussion string, note int, opt *UpdateSnippetDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteSnippetDiscussionNote(pid any, snippet int, discussion string, note int, options ...RequestOptionFunc) (*Response, error)
	ListGroupEpicDiscussions(gid any, epic int, opt *ListGroupEpicDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)
	GetEpicDiscussion(gid any, epic int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)
	CreateEpicDiscussion(gid any, epic int, opt *CreateEpicDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)
	AddEpicDiscussionNote(gid any, epic int, discussion string, opt *AddEpicDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateEpicDiscussionNote(gid any, epic int, discussion string, note int, opt *UpdateEpicDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteEpicDiscussionNote(gid any, epic int, discussion string, note int, options ...RequestOptionFunc) (*Response, error)
	ListMergeRequestDiscussions(pid any, mergeRequest int, opt *ListMergeRequestDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)
	GetMergeRequestDiscussion(pid any, mergeRequest int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)
	CreateMergeRequestDiscussion(pid any, mergeRequest int, opt *CreateMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)
	ResolveMergeRequestDiscussion(pid any, mergeRequest int, discussion string, opt *ResolveMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)
	AddMergeRequestDiscussionNote(pid any, mergeRequest int, discussion string, opt *AddMergeRequestDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateMergeRequestDiscussionNote(pid any, mergeRequest int, discussion string, note int, opt *UpdateMergeRequestDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteMergeRequestDiscussionNote(pid any, mergeRequest int, discussion string, note int, options ...RequestOptionFunc) (*Response, error)
	ListCommitDiscussions(pid any, commit string, opt *ListCommitDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)
	GetCommitDiscussion(pid any, commit string, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)
	CreateCommitDiscussion(pid any, commit string, opt *CreateCommitDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)
	AddCommitDiscussionNote(pid any, commit string, discussion string, opt *AddCommitDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateCommitDiscussionNote(pid any, commit string, discussion string, note int, opt *UpdateCommitDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteCommitDiscussionNote(pid any, commit string, discussion string, note int, options ...RequestOptionFunc) (*Response, error)
}

DiscussionsServiceInterface defines all the API methods for the DiscussionsService

type DockerfileTemplate added in v0.116.0

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

DockerfileTemplate represents a GitLab Dockerfile template.

GitLab API docs: https://docs.gitlab.com/api/templates/dockerfiles/

type DockerfileTemplateListItem added in v0.116.0

type DockerfileTemplateListItem struct {
	Key  string `json:"key"`
	Name string `json:"name"`
}

DockerfileTemplateListItem represents a GitLab Dockerfile template from the list.

GitLab API docs: https://docs.gitlab.com/api/templates/dockerfiles/

type DockerfileTemplatesService added in v0.116.0

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

DockerfileTemplatesService handles communication with the Dockerfile templates related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/templates/dockerfiles/

func (*DockerfileTemplatesService) GetTemplate added in v0.116.0

GetTemplate get a single Dockerfile template.

GitLab API docs: https://docs.gitlab.com/api/templates/dockerfiles/#single-dockerfile-template

func (*DockerfileTemplatesService) ListTemplates added in v0.116.0

ListTemplates get a list of available Dockerfile templates.

GitLab API docs: https://docs.gitlab.com/api/templates/dockerfiles/#list-dockerfile-templates

type DockerfileTemplatesServiceInterface added in v0.126.0

type DockerfileTemplatesServiceInterface interface {
	ListTemplates(opt *ListDockerfileTemplatesOptions, options ...RequestOptionFunc) ([]*DockerfileTemplateListItem, *Response, error)
	GetTemplate(key string, options ...RequestOptionFunc) (*DockerfileTemplate, *Response, error)
}

DockerfileTemplatesServiceInterface defines all the API methods for the DockerfileTemplatesService

type DownloadArtifactsFileOptions added in v0.116.0

type DownloadArtifactsFileOptions struct {
	Job *string `url:"job" json:"job"`
}

DownloadArtifactsFileOptions represents the available DownloadArtifactsFile() options.

GitLab API docs: https://docs.gitlab.com/api/job_artifacts/#download-the-artifacts-archive

type DraftNote added in v0.116.0

type DraftNote struct {
	ID                int           `json:"id"`
	AuthorID          int           `json:"author_id"`
	MergeRequestID    int           `json:"merge_request_id"`
	ResolveDiscussion bool          `json:"resolve_discussion"`
	DiscussionID      string        `json:"discussion_id"`
	Note              string        `json:"note"`
	CommitID          string        `json:"commit_id"`
	LineCode          string        `json:"line_code"`
	Position          *NotePosition `json:"position"`
}

type DraftNotesService added in v0.116.0

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

DraftNotesService handles communication with the draft notes related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/draft_notes/#list-all-merge-request-draft-notes

func (*DraftNotesService) CreateDraftNote added in v0.116.0

func (s *DraftNotesService) CreateDraftNote(pid any, mergeRequest int, opt *CreateDraftNoteOptions, options ...RequestOptionFunc) (*DraftNote, *Response, error)

CreateDraftNote creates a draft note for a merge request.

Gitlab API docs: https://docs.gitlab.com/api/draft_notes/#create-a-draft-note

func (*DraftNotesService) DeleteDraftNote added in v0.116.0

func (s *DraftNotesService) DeleteDraftNote(pid any, mergeRequest int, note int, options ...RequestOptionFunc) (*Response, error)

DeleteDraftNote deletes a single draft note for a merge request.

Gitlab API docs: https://docs.gitlab.com/api/draft_notes/#delete-a-draft-note

func (*DraftNotesService) GetDraftNote added in v0.116.0

func (s *DraftNotesService) GetDraftNote(pid any, mergeRequest int, note int, options ...RequestOptionFunc) (*DraftNote, *Response, error)

GetDraftNote gets a single draft note for a merge request.

Gitlab API docs: https://docs.gitlab.com/api/draft_notes/#get-a-single-draft-note

func (*DraftNotesService) ListDraftNotes added in v0.116.0

func (s *DraftNotesService) ListDraftNotes(pid any, mergeRequest int, opt *ListDraftNotesOptions, options ...RequestOptionFunc) ([]*DraftNote, *Response, error)

ListDraftNotes gets a list of all draft notes for a merge request.

Gitlab API docs: https://docs.gitlab.com/api/draft_notes/#list-all-merge-request-draft-notes

func (*DraftNotesService) PublishAllDraftNotes added in v0.116.0

func (s *DraftNotesService) PublishAllDraftNotes(pid any, mergeRequest int, options ...RequestOptionFunc) (*Response, error)

PublishAllDraftNotes publishes all draft notes for a merge request that belong to the user.

Gitlab API docs: https://docs.gitlab.com/api/draft_notes/#publish-a-draft-note

func (*DraftNotesService) PublishDraftNote added in v0.116.0

func (s *DraftNotesService) PublishDraftNote(pid any, mergeRequest int, note int, options ...RequestOptionFunc) (*Response, error)

PublishDraftNote publishes a single draft note for a merge request.

Gitlab API docs: https://docs.gitlab.com/api/draft_notes/#publish-a-draft-note

func (*DraftNotesService) UpdateDraftNote added in v0.116.0

func (s *DraftNotesService) UpdateDraftNote(pid any, mergeRequest int, note int, opt *UpdateDraftNoteOptions, options ...RequestOptionFunc) (*DraftNote, *Response, error)

UpdateDraftNote updates a draft note for a merge request.

Gitlab API docs: https://docs.gitlab.com/api/draft_notes/#create-a-draft-note

type DraftNotesServiceInterface added in v0.126.0

type DraftNotesServiceInterface interface {
	ListDraftNotes(pid any, mergeRequest int, opt *ListDraftNotesOptions, options ...RequestOptionFunc) ([]*DraftNote, *Response, error)
	GetDraftNote(pid any, mergeRequest int, note int, options ...RequestOptionFunc) (*DraftNote, *Response, error)
	CreateDraftNote(pid any, mergeRequest int, opt *CreateDraftNoteOptions, options ...RequestOptionFunc) (*DraftNote, *Response, error)
	UpdateDraftNote(pid any, mergeRequest int, note int, opt *UpdateDraftNoteOptions, options ...RequestOptionFunc) (*DraftNote, *Response, error)
	DeleteDraftNote(pid any, mergeRequest int, note int, options ...RequestOptionFunc) (*Response, error)
	PublishDraftNote(pid any, mergeRequest int, note int, options ...RequestOptionFunc) (*Response, error)
	PublishAllDraftNotes(pid any, mergeRequest int, options ...RequestOptionFunc) (*Response, error)
}

DraftNotesServiceInterface defines all the API methods for the DraftNotesService

type DroneCIService

type DroneCIService struct {
	Service
	Properties *DroneCIServiceProperties `json:"properties"`
}

DroneCIService represents Drone CI service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#drone

type DroneCIServiceProperties

type DroneCIServiceProperties struct {
	DroneURL              string `json:"drone_url"`
	EnableSSLVerification bool   `json:"enable_ssl_verification"`
}

DroneCIServiceProperties represents Drone CI specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#drone

type EditAnExistingResourceGroupOptions added in v0.116.0

type EditAnExistingResourceGroupOptions struct {
	ProcessMode *ResourceGroupProcessMode `url:"process_mode,omitempty" json:"process_mode,omitempty"`
}

EditAnExistingResourceGroupOptions represents the available EditAnExistingResourceGroup options.

GitLab API docs: https://docs.gitlab.com/api/resource_groups/#edit-an-existing-resource-group

type EditClusterOptions added in v0.116.0

type EditClusterOptions struct {
	Name                *string                        `url:"name,omitempty" json:"name,omitempty"`
	Domain              *string                        `url:"domain,omitempty" json:"domain,omitempty"`
	EnvironmentScope    *string                        `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
	ManagementProjectID *string                        `url:"management_project_id,omitempty" json:"management_project_id,omitempty"`
	PlatformKubernetes  *EditPlatformKubernetesOptions `url:"platform_kubernetes_attributes,omitempty" json:"platform_kubernetes_attributes,omitempty"`
}

EditClusterOptions represents the available EditCluster() options. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/project_clusters/#edit-project-cluster

type EditEnvironmentOptions added in v0.7.0

type EditEnvironmentOptions struct {
	Name                *string `url:"name,omitempty" json:"name,omitempty"`
	Description         *string `url:"description,omitempty" json:"description,omitempty"`
	ExternalURL         *string `url:"external_url,omitempty" json:"external_url,omitempty"`
	Tier                *string `url:"tier,omitempty" json:"tier,omitempty"`
	ClusterAgentID      *int    `url:"cluster_agent_id,omitempty" json:"cluster_agent_id,omitempty"`
	KubernetesNamespace *string `url:"kubernetes_namespace,omitempty" json:"kubernetes_namespace,omitempty"`
	FluxResourcePath    *string `url:"flux_resource_path,omitempty" json:"flux_resource_path,omitempty"`
	AutoStopSetting     *string `url:"auto_stop_setting,omitempty" json:"auto_stop_setting,omitempty"`
}

EditEnvironmentOptions represents the available EditEnvironment() options.

GitLab API docs: https://docs.gitlab.com/api/environments/#update-an-existing-environment

type EditGeoSiteOptions added in v0.128.0

type EditGeoSiteOptions struct {
	Enabled                          *bool     `url:"enabled,omitempty" json:"enabled,omitempty"`
	Name                             *string   `url:"name,omitempty" json:"name,omitempty"`
	URL                              *string   `url:"url,omitempty" json:"url,omitempty"`
	InternalURL                      *string   `url:"internal_url,omitempty" json:"internal_url,omitempty"`
	FilesMaxCapacity                 *int      `url:"files_max_capacity,omitempty" json:"files_max_capacity,omitempty"`
	ReposMaxCapacity                 *int      `url:"repos_max_capacity,omitempty" json:"repos_max_capacity,omitempty"`
	VerificationMaxCapacity          *int      `url:"verification_max_capacity,omitempty" json:"verification_max_capacity,omitempty"`
	ContainerRepositoriesMaxCapacity *int      `url:"container_repositories_max_capacity,omitempty" json:"container_repositories_max_capacity,omitempty"`
	SelectiveSyncType                *string   `url:"selective_sync_type,omitempty" json:"selective_sync_type,omitempty"`
	SelectiveSyncShards              *[]string `url:"selective_sync_shards,omitempty" json:"selective_sync_shards,omitempty"`
	SelectiveSyncNamespaceIDs        *[]int    `url:"selective_sync_namespace_ids,omitempty" json:"selective_sync_namespace_ids,omitempty"`
	MinimumReverificationInterval    *int      `url:"minimum_reverification_interval,omitempty" json:"minimum_reverification_interval,omitempty"`
}

EditGeoSiteOptions represents the available EditGeoSite() options.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#edit-a-geo-site

type EditGroupBadgeOptions added in v0.116.0

type EditGroupBadgeOptions 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"`
}

EditGroupBadgeOptions represents the available EditGroupBadge() options.

GitLab API docs: https://docs.gitlab.com/api/group_badges/#edit-a-badge-of-a-group

type EditGroupClusterOptions added in v0.116.0

type EditGroupClusterOptions struct {
	Name                *string                             `url:"name,omitempty" json:"name,omitempty"`
	Domain              *string                             `url:"domain,omitempty" json:"domain,omitempty"`
	EnvironmentScope    *string                             `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
	PlatformKubernetes  *EditGroupPlatformKubernetesOptions `url:"platform_kubernetes_attributes,omitempty" json:"platform_kubernetes_attributes,omitempty"`
	ManagementProjectID *string                             `url:"management_project_id,omitempty" json:"management_project_id,omitempty"`
}

EditGroupClusterOptions represents the available EditCluster() options. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/group_clusters/#edit-group-cluster

type EditGroupHookOptions added in v0.116.0

type EditGroupHookOptions struct {
	URL                                   *string              `url:"url,omitempty" json:"url,omitempty"`
	Name                                  *string              `url:"name,omitempty" json:"name,omitempty"`
	Description                           *string              `url:"description,omitempty" json:"description,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"`
	BranchFilterStrategy                  *string              `url:"branch_filter_strategy,omitempty"  json:"branch_filter_strategy,omitempty"`
	IssuesEvents                          *bool                `url:"issues_events,omitempty" json:"issues_events,omitempty"`
	ConfidentialIssuesEvents              *bool                `url:"confidential_issues_events,omitempty" json:"confidential_issues_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"`
	ConfidentialNoteEvents                *bool                `url:"confidential_note_events,omitempty" json:"confidential_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"`
	FeatureFlagEvents                     *bool                `url:"feature_flag_events,omitempty" json:"feature_flag_events,omitempty"`
	ReleasesEvents                        *bool                `url:"releases_events,omitempty" json:"releases_events,omitempty"`
	SubGroupEvents                        *bool                `url:"subgroup_events,omitempty" json:"subgroup_events,omitempty"`
	MemberEvents                          *bool                `url:"member_events,omitempty" json:"member_events,omitempty"`
	EnableSSLVerification                 *bool                `url:"enable_ssl_verification,omitempty" json:"enable_ssl_verification,omitempty"`
	ServiceAccessTokensExpirationEnforced *bool                `url:"service_access_tokens_expiration_enforced,omitempty" json:"service_access_tokens_expiration_enforced,omitempty"`
	Token                                 *string              `url:"token,omitempty" json:"token,omitempty"`
	ResourceAccessTokenEvents             *bool                `url:"resource_access_token_events,omitempty" json:"resource_access_token_events,omitempty"`
	CustomWebhookTemplate                 *string              `url:"custom_webhook_template,omitempty" json:"custom_webhook_template,omitempty"`
	CustomHeaders                         *[]*HookCustomHeader `url:"custom_headers,omitempty" json:"custom_headers,omitempty"`
}

EditGroupHookOptions represents the available EditGroupHook() options.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#edit-group-hook

type EditGroupMemberOptions added in v0.6.2

type EditGroupMemberOptions struct {
	AccessLevel  *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ExpiresAt    *string           `url:"expires_at,omitempty" json:"expires_at,omitempty"`
	MemberRoleID *int              `url:"member_role_id,omitempty" json:"member_role_id,omitempty"`
}

EditGroupMemberOptions represents the available EditGroupMember() options.

GitLab API docs: https://docs.gitlab.com/api/members/#edit-a-member-of-a-group-or-project

type EditGroupPlatformKubernetesOptions added in v0.116.0

type EditGroupPlatformKubernetesOptions 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"`
}

EditGroupPlatformKubernetesOptions represents the available PlatformKubernetes options for editing. Deprecated: in GitLab 14.5, to be removed in 19.0

type EditGroupPushRuleOptions added in v0.116.0

type EditGroupPushRuleOptions 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"`
	CommitCommitterNameCheck   *bool   `url:"commit_committer_name_check,omitempty" json:"commit_committer_name_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"`
	RejectNonDCOCommits        *bool   `url:"reject_non_dco_commits,omitempty" json:"reject_non_dco_commits,omitempty"`
}

EditGroupPushRuleOptions represents the available EditGroupPushRule() options.

GitLab API docs: https://docs.gitlab.com/api/group_push_rules/#edit-the-push-rules-of-a-group

type EditGroupWikiPageOptions added in v0.116.0

type EditGroupWikiPageOptions struct {
	Content *string          `url:"content,omitempty" json:"content,omitempty"`
	Title   *string          `url:"title,omitempty" json:"title,omitempty"`
	Format  *WikiFormatValue `url:"format,omitempty" json:"format,omitempty"`
}

EditGroupWikiPageOptions represents options to EditGroupWikiPage.

GitLab API docs: https://docs.gitlab.com/api/group_wikis/#edit-an-existing-wiki-page

type EditPipelineScheduleOptions added in v0.9.0

type EditPipelineScheduleOptions struct {
	Description  *string          `url:"description,omitempty" json:"description,omitempty"`
	Ref          *string          `url:"ref,omitempty" json:"ref,omitempty"`
	Cron         *string          `url:"cron,omitempty" json:"cron,omitempty"`
	CronTimezone *string          `url:"cron_timezone,omitempty" json:"cron_timezone,omitempty"`
	Active       *bool            `url:"active,omitempty" json:"active,omitempty"`
	Inputs       []*PipelineInput `url:"inputs,omitempty" json:"inputs,omitempty"`
}

EditPipelineScheduleOptions represents the available EditPipelineSchedule() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#edit-a-pipeline-schedule

type EditPipelineScheduleVariableOptions added in v0.9.0

type EditPipelineScheduleVariableOptions struct {
	Value        *string            `url:"value" json:"value"`
	VariableType *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

EditPipelineScheduleVariableOptions represents the available EditPipelineScheduleVariable() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#edit-a-pipeline-schedule-variable

type EditPipelineTriggerOptions added in v0.6.0

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

EditPipelineTriggerOptions represents the available EditPipelineTrigger() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_triggers/#update-a-pipeline-trigger-token

type EditPlatformKubernetesOptions added in v0.116.0

type EditPlatformKubernetesOptions 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"`
}

EditPlatformKubernetesOptions represents the available PlatformKubernetes options for editing. Deprecated: in GitLab 14.5, to be removed in 19.0

type EditProjectBadgeOptions added in v0.11.1

type EditProjectBadgeOptions 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"`
}

EditProjectBadgeOptions represents the available EditProjectBadge() options.

GitLab API docs: https://docs.gitlab.com/api/project_badges/#edit-a-badge-of-a-project

type EditProjectHookOptions

type EditProjectHookOptions struct {
	Name                      *string              `url:"name,omitempty" json:"name,omitempty"`
	Description               *string              `url:"description,omitempty" json:"description,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"`
	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"`
	ResourceAccessTokenEvents *bool                `url:"resource_access_token_events,omitempty" json:"resource_access_token_events,omitempty"`
	CustomWebhookTemplate     *string              `url:"custom_webhook_template,omitempty" json:"custom_webhook_template,omitempty"`
	CustomHeaders             *[]*HookCustomHeader `url:"custom_headers,omitempty" json:"custom_headers,omitempty"`
}

EditProjectHookOptions represents the available EditProjectHook() options.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#edit-a-project-webhook

type EditProjectMemberOptions

type EditProjectMemberOptions struct {
	AccessLevel  *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ExpiresAt    *string           `url:"expires_at,omitempty" json:"expires_at,omitempty"`
	MemberRoleID *int              `url:"member_role_id,omitempty" json:"member_role_id,omitempty"`
}

EditProjectMemberOptions represents the available EditProjectMember() options.

GitLab API docs: https://docs.gitlab.com/api/members/#edit-a-member-of-a-group-or-project

type EditProjectMirrorOptions added in v0.116.0

type EditProjectMirrorOptions struct {
	Enabled               *bool   `url:"enabled,omitempty" json:"enabled,omitempty"`
	KeepDivergentRefs     *bool   `url:"keep_divergent_refs,omitempty" json:"keep_divergent_refs,omitempty"`
	OnlyProtectedBranches *bool   `url:"only_protected_branches,omitempty" json:"only_protected_branches,omitempty"`
	MirrorBranchRegex     *string `url:"mirror_branch_regex,omitempty" json:"mirror_branch_regex,omitempty"`
	AuthMethod            *string `url:"auth_method,omitempty" json:"auth_method,omitempty"`
}

EditProjectMirrorOptions contains the properties requires to edit an existing project mirror.

GitLab API docs: https://docs.gitlab.com/api/remote_mirrors/#update-a-remote-mirrors-attributes

type EditProjectOptions

type EditProjectOptions struct {
	AllowMergeOnSkippedPipeline               *bool                                        `url:"allow_merge_on_skipped_pipeline,omitempty" json:"allow_merge_on_skipped_pipeline,omitempty"`
	AllowPipelineTriggerApproveDeployment     *bool                                        `url:"allow_pipeline_trigger_approve_deployment,omitempty" json:"allow_pipeline_trigger_approve_deployment,omitempty"`
	OnlyAllowMergeIfAllStatusChecksPassed     *bool                                        `url:"only_allow_merge_if_all_status_checks_passed,omitempty" json:"only_allow_merge_if_all_status_checks_passed,omitempty"`
	AnalyticsAccessLevel                      *AccessControlValue                          `url:"analytics_access_level,omitempty" json:"analytics_access_level,omitempty"`
	AutoCancelPendingPipelines                *string                                      `url:"auto_cancel_pending_pipelines,omitempty" json:"auto_cancel_pending_pipelines,omitempty"`
	AutoDevopsDeployStrategy                  *string                                      `url:"auto_devops_deploy_strategy,omitempty" json:"auto_devops_deploy_strategy,omitempty"`
	AutoDevopsEnabled                         *bool                                        `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
	AutocloseReferencedIssues                 *bool                                        `url:"autoclose_referenced_issues,omitempty" json:"autoclose_referenced_issues,omitempty"`
	Avatar                                    *ProjectAvatar                               `url:"-" json:"avatar,omitempty"`
	BuildCoverageRegex                        *string                                      `url:"build_coverage_regex,omitempty" json:"build_coverage_regex,omitempty"`
	BuildGitStrategy                          *string                                      `url:"build_git_strategy,omitempty" json:"build_git_strategy,omitempty"`
	BuildTimeout                              *int                                         `url:"build_timeout,omitempty" json:"build_timeout,omitempty"`
	BuildsAccessLevel                         *AccessControlValue                          `url:"builds_access_level,omitempty" json:"builds_access_level,omitempty"`
	CIConfigPath                              *string                                      `url:"ci_config_path,omitempty" json:"ci_config_path,omitempty"`
	CIDefaultGitDepth                         *int                                         `url:"ci_default_git_depth,omitempty" json:"ci_default_git_depth,omitempty"`
	CIDeletePipelinesInSeconds                *int                                         `url:"ci_delete_pipelines_in_seconds,omitempty" json:"ci_delete_pipelines_in_seconds,omitempty"`
	CIForwardDeploymentEnabled                *bool                                        `url:"ci_forward_deployment_enabled,omitempty" json:"ci_forward_deployment_enabled,omitempty"`
	CIForwardDeploymentRollbackAllowed        *bool                                        `url:"ci_forward_deployment_rollback_allowed,omitempty" json:"ci_forward_deployment_rollback_allowed,omitempty"`
	CIIdTokenSubClaimComponents               *[]string                                    `url:"ci_id_token_sub_claim_components,omitempty" json:"ci_id_token_sub_claim_components,omitempty"`
	CISeperateCache                           *bool                                        `url:"ci_separated_caches,omitempty" json:"ci_separated_caches,omitempty"`
	CIRestrictPipelineCancellationRole        *AccessControlValue                          `url:"ci_restrict_pipeline_cancellation_role,omitempty" json:"ci_restrict_pipeline_cancellation_role,omitempty"`
	CIPipelineVariablesMinimumOverrideRole    *CIPipelineVariablesMinimumOverrideRoleValue `url:"ci_pipeline_variables_minimum_override_role,omitempty" json:"ci_pipeline_variables_minimum_override_role,omitempty"`
	ContainerExpirationPolicyAttributes       *ContainerExpirationPolicyAttributes         `url:"container_expiration_policy_attributes,omitempty" json:"container_expiration_policy_attributes,omitempty"`
	ContainerRegistryAccessLevel              *AccessControlValue                          `url:"container_registry_access_level,omitempty" json:"container_registry_access_level,omitempty"`
	DefaultBranch                             *string                                      `url:"default_branch,omitempty" json:"default_branch,omitempty"`
	Description                               *string                                      `url:"description,omitempty" json:"description,omitempty"`
	EmailsEnabled                             *bool                                        `url:"emails_enabled,omitempty" json:"emails_enabled,omitempty"`
	EnforceAuthChecksOnUploads                *bool                                        `url:"enforce_auth_checks_on_uploads,omitempty" json:"enforce_auth_checks_on_uploads,omitempty"`
	ExternalAuthorizationClassificationLabel  *string                                      `url:"external_authorization_classification_label,omitempty" json:"external_authorization_classification_label,omitempty"`
	ForkingAccessLevel                        *AccessControlValue                          `url:"forking_access_level,omitempty" json:"forking_access_level,omitempty"`
	ImportURL                                 *string                                      `url:"import_url,omitempty" json:"import_url,omitempty"`
	IssuesAccessLevel                         *AccessControlValue                          `url:"issues_access_level,omitempty" json:"issues_access_level,omitempty"`
	IssueBranchTemplate                       *string                                      `url:"issue_branch_template,omitempty" json:"issue_branch_template,omitempty"`
	IssuesTemplate                            *string                                      `url:"issues_template,omitempty" json:"issues_template,omitempty"`
	KeepLatestArtifact                        *bool                                        `url:"keep_latest_artifact,omitempty" json:"keep_latest_artifact,omitempty"`
	LFSEnabled                                *bool                                        `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"`
	MergeCommitTemplate                       *string                                      `url:"merge_commit_template,omitempty" json:"merge_commit_template,omitempty"`
	MergeRequestDefaultTargetSelf             *bool                                        `url:"mr_default_target_self,omitempty" json:"mr_default_target_self,omitempty"`
	MergeMethod                               *MergeMethodValue                            `url:"merge_method,omitempty" json:"merge_method,omitempty"`
	MergePipelinesEnabled                     *bool                                        `url:"merge_pipelines_enabled,omitempty" json:"merge_pipelines_enabled,omitempty"`
	MergeRequestsAccessLevel                  *AccessControlValue                          `url:"merge_requests_access_level,omitempty" json:"merge_requests_access_level,omitempty"`
	MergeRequestsTemplate                     *string                                      `url:"merge_requests_template,omitempty" json:"merge_requests_template,omitempty"`
	MergeTrainsEnabled                        *bool                                        `url:"merge_trains_enabled,omitempty" json:"merge_trains_enabled,omitempty"`
	Mirror                                    *bool                                        `url:"mirror,omitempty" json:"mirror,omitempty"`
	MirrorBranchRegex                         *string                                      `url:"mirror_branch_regex,omitempty" json:"mirror_branch_regex,omitempty"`
	MirrorOverwritesDivergedBranches          *bool                                        `url:"mirror_overwrites_diverged_branches,omitempty" json:"mirror_overwrites_diverged_branches,omitempty"`
	MirrorTriggerBuilds                       *bool                                        `url:"mirror_trigger_builds,omitempty" json:"mirror_trigger_builds,omitempty"`
	MirrorUserID                              *int                                         `url:"mirror_user_id,omitempty" json:"mirror_user_id,omitempty"`
	ModelExperimentsAccessLevel               *AccessControlValue                          `url:"model_experiments_access_level,omitempty" json:"model_experiments_access_level,omitempty"`
	ModelRegistryAccessLevel                  *AccessControlValue                          `url:"model_registry_access_level,omitempty" json:"model_registry_access_level,omitempty"`
	Name                                      *string                                      `url:"name,omitempty" json:"name,omitempty"`
	OnlyAllowMergeIfAllDiscussionsAreResolved *bool                                        `` /* 130-byte string literal not displayed */
	OnlyAllowMergeIfPipelineSucceeds          *bool                                        `url:"only_allow_merge_if_pipeline_succeeds,omitempty" json:"only_allow_merge_if_pipeline_succeeds,omitempty"`
	OnlyMirrorProtectedBranches               *bool                                        `url:"only_mirror_protected_branches,omitempty" json:"only_mirror_protected_branches,omitempty"`
	OperationsAccessLevel                     *AccessControlValue                          `url:"operations_access_level,omitempty" json:"operations_access_level,omitempty"`
	PackagesEnabled                           *bool                                        `url:"packages_enabled,omitempty" json:"packages_enabled,omitempty"`
	PagesAccessLevel                          *AccessControlValue                          `url:"pages_access_level,omitempty" json:"pages_access_level,omitempty"`
	Path                                      *string                                      `url:"path,omitempty" json:"path,omitempty"`
	PublicJobs                                *bool                                        `url:"public_jobs,omitempty" json:"public_jobs,omitempty"`
	ReleasesAccessLevel                       *AccessControlValue                          `url:"releases_access_level,omitempty" json:"releases_access_level,omitempty"`
	EnvironmentsAccessLevel                   *AccessControlValue                          `url:"environments_access_level,omitempty" json:"environments_access_level,omitempty"`
	FeatureFlagsAccessLevel                   *AccessControlValue                          `url:"feature_flags_access_level,omitempty" json:"feature_flags_access_level,omitempty"`
	InfrastructureAccessLevel                 *AccessControlValue                          `url:"infrastructure_access_level,omitempty" json:"infrastructure_access_level,omitempty"`
	MonitorAccessLevel                        *AccessControlValue                          `url:"monitor_access_level,omitempty" json:"monitor_access_level,omitempty"`
	RemoveSourceBranchAfterMerge              *bool                                        `url:"remove_source_branch_after_merge,omitempty" json:"remove_source_branch_after_merge,omitempty"`
	PreventMergeWithoutJiraIssue              *bool                                        `url:"prevent_merge_without_jira_issue,omitempty" json:"prevent_merge_without_jira_issue,omitempty"`
	PrintingMergeRequestLinkEnabled           *bool                                        `url:"printing_merge_request_link_enabled,omitempty" json:"printing_merge_request_link_enabled,omitempty"`
	RepositoryAccessLevel                     *AccessControlValue                          `url:"repository_access_level,omitempty" json:"repository_access_level,omitempty"`
	RepositoryStorage                         *string                                      `url:"repository_storage,omitempty" json:"repository_storage,omitempty"`
	RequestAccessEnabled                      *bool                                        `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"`
	RequirementsAccessLevel                   *AccessControlValue                          `url:"requirements_access_level,omitempty" json:"requirements_access_level,omitempty"`
	ResolveOutdatedDiffDiscussions            *bool                                        `url:"resolve_outdated_diff_discussions,omitempty" json:"resolve_outdated_diff_discussions,omitempty"`
	SecurityAndComplianceAccessLevel          *AccessControlValue                          `url:"security_and_compliance_access_level,omitempty" json:"security_and_compliance_access_level,omitempty"`
	ServiceDeskEnabled                        *bool                                        `url:"service_desk_enabled,omitempty" json:"service_desk_enabled,omitempty"`
	SharedRunnersEnabled                      *bool                                        `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
	GroupRunnersEnabled                       *bool                                        `url:"group_runners_enabled,omitempty" json:"group_runners_enabled,omitempty"`
	ShowDefaultAwardEmojis                    *bool                                        `url:"show_default_award_emojis,omitempty" json:"show_default_award_emojis,omitempty"`
	SnippetsAccessLevel                       *AccessControlValue                          `url:"snippets_access_level,omitempty" json:"snippets_access_level,omitempty"`
	SquashCommitTemplate                      *string                                      `url:"squash_commit_template,omitempty" json:"squash_commit_template,omitempty"`
	SquashOption                              *SquashOptionValue                           `url:"squash_option,omitempty" json:"squash_option,omitempty"`
	SuggestionCommitMessage                   *string                                      `url:"suggestion_commit_message,omitempty" json:"suggestion_commit_message,omitempty"`
	Topics                                    *[]string                                    `url:"topics,omitempty" json:"topics,omitempty"`
	Visibility                                *VisibilityValue                             `url:"visibility,omitempty" json:"visibility,omitempty"`
	WikiAccessLevel                           *AccessControlValue                          `url:"wiki_access_level,omitempty" json:"wiki_access_level,omitempty"`

	// Deprecated: use Merge Request Approvals API instead
	ApprovalsBeforeMerge *int `url:"approvals_before_merge,omitempty" json:"approvals_before_merge,omitempty"`
	// Deprecated: use PublicJobs instead
	PublicBuilds *bool `url:"public_builds,omitempty" json:"public_builds,omitempty"`
	// Deprecated: use CIPipelineVariablesMinimumOverrideRole instead
	RestrictUserDefinedVariables *bool `url:"restrict_user_defined_variables,omitempty" json:"restrict_user_defined_variables,omitempty"`
	// Deprecated: Use ContainerRegistryAccessLevel instead.
	ContainerRegistryEnabled *bool `url:"container_registry_enabled,omitempty" json:"container_registry_enabled,omitempty"`
	// Deprecated: Use EmailsEnabled instead
	EmailsDisabled *bool `url:"emails_disabled,omitempty" json:"emails_disabled,omitempty"`
	// Deprecated: Use IssuesAccessLevel instead.
	IssuesEnabled *bool `url:"issues_enabled,omitempty" json:"issues_enabled,omitempty"`
	// Deprecated: Use BuildsAccessLevel instead.
	JobsEnabled *bool `url:"jobs_enabled,omitempty" json:"jobs_enabled,omitempty"`
	// Deprecated: Use MergeRequestsAccessLevel instead.
	MergeRequestsEnabled *bool `url:"merge_requests_enabled,omitempty" json:"merge_requests_enabled,omitempty"`
	// Deprecated: Use SnippetsAccessLevel instead.
	SnippetsEnabled *bool `url:"snippets_enabled,omitempty" json:"snippets_enabled,omitempty"`
	// Deprecated: Use Topics instead. (Deprecated in GitLab 14.0)
	TagList *[]string `url:"tag_list,omitempty" json:"tag_list,omitempty"`
	// Deprecated: Use WikiAccessLevel instead.
	WikiEnabled *bool `url:"wiki_enabled,omitempty" json:"wiki_enabled,omitempty"`
}

EditProjectOptions represents the available EditProject() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#edit-a-project

type EditProjectPushRuleOptions added in v0.116.0

type EditProjectPushRuleOptions 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"`
	CommitCommitterNameCheck   *bool   `url:"commit_committer_name_check,omitempty" json:"commit_committer_name_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"`
	RejectNonDCOCommits        *bool   `url:"reject_non_dco_commits,omitempty" json:"reject_non_dco_commits,omitempty"`
}

EditProjectPushRuleOptions represents the available EditProjectPushRule() options.

GitLab API docs: https://docs.gitlab.com/api/project_push_rules/#edit-project-push-rule

type EditWikiPageOptions added in v0.7.0

type EditWikiPageOptions struct {
	Content *string          `url:"content,omitempty" json:"content,omitempty"`
	Title   *string          `url:"title,omitempty" json:"title,omitempty"`
	Format  *WikiFormatValue `url:"format,omitempty" json:"format,omitempty"`
}

EditWikiPageOptions represents options to EditWikiPage.

GitLab API docs: https://docs.gitlab.com/api/wikis/#edit-an-existing-wiki-page

type Email added in v0.4.0

type Email struct {
	ID          int        `json:"id"`
	Email       string     `json:"email"`
	ConfirmedAt *time.Time `json:"confirmed_at"`
}

Email represents an Email.

GitLab API docs: https://docs.gitlab.com/api/user_email_addresses/#list-all-email-addresses

type EmailsOnPushService added in v0.116.0

type EmailsOnPushService struct {
	Service
	Properties *EmailsOnPushServiceProperties `json:"properties"`
}

EmailsOnPushService represents Emails on Push service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#emails-on-push

type EmailsOnPushServiceProperties added in v0.116.0

type EmailsOnPushServiceProperties struct {
	Recipients             string `json:"recipients"`
	DisableDiffs           bool   `json:"disable_diffs"`
	SendFromCommitterEmail bool   `json:"send_from_committer_email"`
	PushEvents             bool   `json:"push_events"`
	TagPushEvents          bool   `json:"tag_push_events"`
	BranchesToBeNotified   string `json:"branches_to_be_notified"`
}

EmailsOnPushServiceProperties represents Emails on Push specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#emails-on-push

type EnableDisableErrorTrackingOptions added in v0.116.0

type EnableDisableErrorTrackingOptions struct {
	Active     *bool `url:"active,omitempty" json:"active,omitempty"`
	Integrated *bool `url:"integrated,omitempty" json:"integrated,omitempty"`
}

EnableDisableErrorTrackingOptions represents the available EnableDisableErrorTracking() options.

GitLab API docs: https://docs.gitlab.com/api/error_tracking/#enable-or-disable-the-error-tracking-project-settings

type EnableProjectRunnerOptions added in v0.7.5

type EnableProjectRunnerOptions struct {
	RunnerID int `json:"runner_id"`
}

EnableProjectRunnerOptions represents the available EnableProjectRunner() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#assign-a-runner-to-project

type EnterpriseUsersService added in v0.128.0

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

EnterpriseUsersService handles communication with the enterprise users related methods of the GitLab API.

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

func (*EnterpriseUsersService) Disable2FAForEnterpriseUser added in v0.128.0

func (s *EnterpriseUsersService) Disable2FAForEnterpriseUser(gid any, uid int, options ...RequestOptionFunc) (*Response, error)

Disable2FAForEnterpriseUser disables two-factor authentication (2FA) for a specified enterprise user.

GitLab API docs: https://docs.gitlab.com/api/group_enterprise_users/#disable-two-factor-authentication-for-an-enterprise-user

func (*EnterpriseUsersService) GetEnterpriseUser added in v0.128.0

func (s *EnterpriseUsersService) GetEnterpriseUser(gid any, uid int, options ...RequestOptionFunc) (*User, *Response, error)

GetEnterpriseUser gets details on a specified enterprise user.

GitLab API docs: https://docs.gitlab.com/api/group_enterprise_users/#get-details-on-an-enterprise-user

func (*EnterpriseUsersService) ListEnterpriseUsers added in v0.128.0

func (s *EnterpriseUsersService) ListEnterpriseUsers(gid any, opt *ListEnterpriseUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)

ListEnterpriseUsers lists all enterprise users for a given top-level group.

GitLab API docs: https://docs.gitlab.com/api/group_enterprise_users/#list-all-enterprise-users

type EnterpriseUsersServiceInterface added in v0.128.0

type EnterpriseUsersServiceInterface interface {
	ListEnterpriseUsers(gid any, opt *ListEnterpriseUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)
	GetEnterpriseUser(gid any, uid int, options ...RequestOptionFunc) (*User, *Response, error)
	Disable2FAForEnterpriseUser(gid any, uid int, options ...RequestOptionFunc) (*Response, error)
}

type Environment added in v0.7.0

type Environment struct {
	ID                  int         `json:"id"`
	Name                string      `json:"name"`
	Slug                string      `json:"slug"`
	Description         string      `json:"description"`
	State               string      `json:"state"`
	Tier                string      `json:"tier"`
	ExternalURL         string      `json:"external_url"`
	Project             *Project    `json:"project"`
	CreatedAt           *time.Time  `json:"created_at"`
	UpdatedAt           *time.Time  `json:"updated_at"`
	LastDeployment      *Deployment `json:"last_deployment"`
	ClusterAgent        *Agent      `json:"cluster_agent"`
	KubernetesNamespace string      `json:"kubernetes_namespace"`
	FluxResourcePath    string      `json:"flux_resource_path"`
	AutoStopAt          *time.Time  `json:"auto_stop_at"`
	AutoStopSetting     string      `json:"auto_stop_setting"`
}

Environment represents a GitLab environment.

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

func (Environment) String added in v0.7.0

func (env Environment) String() string

type EnvironmentAccessDescription added in v0.116.0

type EnvironmentAccessDescription struct {
	ID                     int              `json:"id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	UserID                 int              `json:"user_id"`
	GroupID                int              `json:"group_id"`
	GroupInheritanceType   int              `json:"group_inheritance_type"`
}

EnvironmentAccessDescription represents the access decription for a protected environment.

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

type EnvironmentAccessOptions added in v0.116.0

type EnvironmentAccessOptions struct {
	AccessLevel          *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	UserID               *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID              *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	GroupInheritanceType *int              `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
}

EnvironmentAccessOptions represents the options for an access decription for a protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#protect-a-single-environment

type EnvironmentApprovalRule added in v0.116.0

type EnvironmentApprovalRule struct {
	ID                     int              `json:"id"`
	UserID                 int              `json:"user_id"`
	GroupID                int              `json:"group_id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	RequiredApprovalCount  int              `json:"required_approvals"`
	GroupInheritanceType   int              `json:"group_inheritance_type"`
}

EnvironmentApprovalRule represents the approval rules for a protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#protect-a-single-environment

type EnvironmentApprovalRuleOptions added in v0.116.0

type EnvironmentApprovalRuleOptions struct {
	UserID                 *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID                *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	AccessLevel            *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	AccessLevelDescription *string           `url:"access_level_description,omitempty" json:"access_level_description,omitempty"`
	RequiredApprovalCount  *int              `url:"required_approvals,omitempty" json:"required_approvals,omitempty"`
	GroupInheritanceType   *int              `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
}

EnvironmentApprovalRuleOptions represents the approval rules for a protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#protect-a-single-environment

type EnvironmentsService added in v0.7.0

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

EnvironmentsService handles communication with the environment related methods of the GitLab API.

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

func (*EnvironmentsService) CreateEnvironment added in v0.7.0

func (s *EnvironmentsService) CreateEnvironment(pid any, opt *CreateEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)

CreateEnvironment adds an environment to a project. This method is idempotent and can be called multiple times with the same parameters. Creating an environment that already exists does not affect the existing association.

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

func (*EnvironmentsService) DeleteEnvironment added in v0.7.0

func (s *EnvironmentsService) DeleteEnvironment(pid any, environment int, options ...RequestOptionFunc) (*Response, error)

DeleteEnvironment removes an environment from a project team.

GitLab API docs: https://docs.gitlab.com/api/environments/#delete-an-environment

func (*EnvironmentsService) EditEnvironment added in v0.7.0

func (s *EnvironmentsService) EditEnvironment(pid any, environment int, opt *EditEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)

EditEnvironment updates a project team environment to a specified access level..

GitLab API docs: https://docs.gitlab.com/api/environments/#update-an-existing-environment

func (*EnvironmentsService) GetEnvironment added in v0.116.0

func (s *EnvironmentsService) GetEnvironment(pid any, environment int, options ...RequestOptionFunc) (*Environment, *Response, error)

GetEnvironment gets a specific environment from a project.

GitLab API docs: https://docs.gitlab.com/api/environments/#get-a-specific-environment

func (*EnvironmentsService) ListEnvironments added in v0.7.0

func (s *EnvironmentsService) ListEnvironments(pid any, opts *ListEnvironmentsOptions, options ...RequestOptionFunc) ([]*Environment, *Response, error)

ListEnvironments gets a list of environments from a project, sorted by name alphabetically.

GitLab API docs: https://docs.gitlab.com/api/environments/#list-environments

func (*EnvironmentsService) StopEnvironment added in v0.116.0

func (s *EnvironmentsService) StopEnvironment(pid any, environmentID int, opt *StopEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)

StopEnvironment stops an environment within a specific project.

GitLab API docs: https://docs.gitlab.com/api/environments/#stop-an-environment

type EnvironmentsServiceInterface added in v0.126.0

type EnvironmentsServiceInterface interface {
	ListEnvironments(pid any, opts *ListEnvironmentsOptions, options ...RequestOptionFunc) ([]*Environment, *Response, error)
	GetEnvironment(pid any, environment int, options ...RequestOptionFunc) (*Environment, *Response, error)
	CreateEnvironment(pid any, opt *CreateEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)
	EditEnvironment(pid any, environment int, opt *EditEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)
	DeleteEnvironment(pid any, environment int, options ...RequestOptionFunc) (*Response, error)
	StopEnvironment(pid any, environmentID int, opt *StopEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)
}

EnvironmentsServiceInterface defines all the API methods for the EnvironmentsService

type Epic added in v0.116.0

type Epic struct {
	ID                      int         `json:"id"`
	IID                     int         `json:"iid"`
	GroupID                 int         `json:"group_id"`
	ParentID                int         `json:"parent_id"`
	Title                   string      `json:"title"`
	Description             string      `json:"description"`
	State                   string      `json:"state"`
	Confidential            bool        `json:"confidential"`
	WebURL                  string      `json:"web_url"`
	Author                  *EpicAuthor `json:"author"`
	StartDate               *ISOTime    `json:"start_date"`
	StartDateIsFixed        bool        `json:"start_date_is_fixed"`
	StartDateFixed          *ISOTime    `json:"start_date_fixed"`
	StartDateFromMilestones *ISOTime    `json:"start_date_from_milestones"`
	DueDate                 *ISOTime    `json:"due_date"`
	DueDateIsFixed          bool        `json:"due_date_is_fixed"`
	DueDateFixed            *ISOTime    `json:"due_date_fixed"`
	DueDateFromMilestones   *ISOTime    `json:"due_date_from_milestones"`
	CreatedAt               *time.Time  `json:"created_at"`
	UpdatedAt               *time.Time  `json:"updated_at"`
	ClosedAt                *time.Time  `json:"closed_at"`
	Labels                  []string    `json:"labels"`
	Upvotes                 int         `json:"upvotes"`
	Downvotes               int         `json:"downvotes"`
	UserNotesCount          int         `json:"user_notes_count"`
	URL                     string      `json:"url"`
}

Epic represents a GitLab epic. Will be removed in v5 of the API, use Work Items API instead

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

func (Epic) String added in v0.116.0

func (e Epic) String() string

Will be removed in v5 of the API, use Work Items API instead

type EpicAuthor added in v0.116.0

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

EpicAuthor represents a author of the epic. Will be removed in v5 of the API, use Work Items API instead

type EpicIssueAssignment added in v0.116.0

type EpicIssueAssignment struct {
	ID    int    `json:"id"`
	Epic  *Epic  `json:"epic"`
	Issue *Issue `json:"issue"`
}

EpicIssueAssignment contains both the epic and issue objects returned from Gitlab with the assignment ID. Will be removed in v5 of the API, use Work Items API instead

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

type EpicIssuesService added in v0.116.0

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

EpicIssuesService handles communication with the epic issue related methods of the GitLab API. Will be removed in v5 of the API, use Work Items API instead

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

func (*EpicIssuesService) AssignEpicIssue added in v0.116.0

func (s *EpicIssuesService) AssignEpicIssue(gid any, epic, issue int, options ...RequestOptionFunc) (*EpicIssueAssignment, *Response, error)

AssignEpicIssue assigns an existing issue to an epic. Will be removed in v5 of the API, use Work Items API instead

Gitlab API Docs: https://docs.gitlab.com/api/epic_issues/#assign-an-issue-to-the-epic

func (*EpicIssuesService) ListEpicIssues added in v0.116.0

func (s *EpicIssuesService) ListEpicIssues(gid any, epic int, opt *ListOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

ListEpicIssues get a list of epic issues. Will be removed in v5 of the API, use Work Items API instead

Gitlab API docs: https://docs.gitlab.com/api/epic_issues/#list-issues-for-an-epic

func (*EpicIssuesService) RemoveEpicIssue added in v0.116.0

func (s *EpicIssuesService) RemoveEpicIssue(gid any, epic, epicIssue int, options ...RequestOptionFunc) (*EpicIssueAssignment, *Response, error)

RemoveEpicIssue removes an issue from an epic. Will be removed in v5 of the API, use Work Items API instead

Gitlab API Docs: https://docs.gitlab.com/api/epic_issues/#remove-an-issue-from-the-epic

func (*EpicIssuesService) UpdateEpicIssueAssignment added in v0.116.0

func (s *EpicIssuesService) UpdateEpicIssueAssignment(gid any, epic, epicIssue int, opt *UpdateEpicIssueAssignmentOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

UpdateEpicIssueAssignment moves an issue before or after another issue in an epic issue list. Will be removed in v5 of the API, use Work Items API instead

Gitlab API Docs: https://docs.gitlab.com/api/epic_issues/#update-epic---issue-association

type EpicIssuesServiceInterface added in v0.126.0

type EpicIssuesServiceInterface interface {
	// Will be removed in v5 of the API, use Work Items API instead
	ListEpicIssues(gid any, epic int, opt *ListOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	AssignEpicIssue(gid any, epic, issue int, options ...RequestOptionFunc) (*EpicIssueAssignment, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	RemoveEpicIssue(gid any, epic, epicIssue int, options ...RequestOptionFunc) (*EpicIssueAssignment, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	UpdateEpicIssueAssignment(gid any, epic, epicIssue int, opt *UpdateEpicIssueAssignmentOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
}

EpicIssuesServiceInterface defines all the API methods for the EpicIssuesService Will be removed in v5 of the API, use Work Items API instead

type EpicsService added in v0.116.0

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

EpicsService handles communication with the epic related methods of the GitLab API. Will be removed in v5 of the API, use Work Items API instead

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

func (*EpicsService) CreateEpic added in v0.116.0

func (s *EpicsService) CreateEpic(gid any, opt *CreateEpicOptions, options ...RequestOptionFunc) (*Epic, *Response, error)

CreateEpic creates a new group epic. Will be removed in v5 of the API, use Work Items API instead

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

func (*EpicsService) DeleteEpic added in v0.116.0

func (s *EpicsService) DeleteEpic(gid any, epic int, options ...RequestOptionFunc) (*Response, error)

DeleteEpic deletes a single group epic. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/epics/#delete-epic

func (*EpicsService) GetEpic added in v0.116.0

func (s *EpicsService) GetEpic(gid any, epic int, options ...RequestOptionFunc) (*Epic, *Response, error)

GetEpic gets a single group epic. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/epics/#single-epic

func (s *EpicsService) GetEpicLinks(gid any, epic int, options ...RequestOptionFunc) ([]*Epic, *Response, error)

GetEpicLinks gets all child epics of an epic. Will be removed in v5 of the API, use Work Items API instead

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

func (*EpicsService) ListGroupEpics added in v0.116.0

func (s *EpicsService) ListGroupEpics(gid any, opt *ListGroupEpicsOptions, options ...RequestOptionFunc) ([]*Epic, *Response, error)

ListGroupEpics gets a list of group epics. This function accepts pagination parameters page and per_page to return the list of group epics. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/epics/#list-epics-for-a-group

func (*EpicsService) UpdateEpic added in v0.116.0

func (s *EpicsService) UpdateEpic(gid any, epic int, opt *UpdateEpicOptions, options ...RequestOptionFunc) (*Epic, *Response, error)

UpdateEpic updates an existing group epic. This function is also used to mark an epic as closed. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/epics/#update-epic

type EpicsServiceInterface added in v0.126.0

type EpicsServiceInterface interface {
	// Will be removed in v5 of the API, use Work Items API instead
	ListGroupEpics(gid any, opt *ListGroupEpicsOptions, options ...RequestOptionFunc) ([]*Epic, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	GetEpic(gid any, epic int, options ...RequestOptionFunc) (*Epic, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	GetEpicLinks(gid any, epic int, options ...RequestOptionFunc) ([]*Epic, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	CreateEpic(gid any, opt *CreateEpicOptions, options ...RequestOptionFunc) (*Epic, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	UpdateEpic(gid any, epic int, opt *UpdateEpicOptions, options ...RequestOptionFunc) (*Epic, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	DeleteEpic(gid any, epic int, options ...RequestOptionFunc) (*Response, error)
}

EpicsServiceInterface defines all the API methods for the EpicsService Will be removed in v5 of the API, use Work Items API instead

type ErrorResponse

type ErrorResponse struct {
	Body     []byte
	Response *http.Response
	Message  string
}

An ErrorResponse reports one or more errors caused by an API request.

GitLab API docs: https://docs.gitlab.com/api/rest/troubleshooting/

func (*ErrorResponse) Error

func (e *ErrorResponse) Error() string

type ErrorTrackingClientKey added in v0.116.0

type ErrorTrackingClientKey struct {
	ID        int    `json:"id"`
	Active    bool   `json:"active"`
	PublicKey string `json:"public_key"`
	SentryDsn string `json:"sentry_dsn"`
}

ErrorTrackingClientKey represents an error tracking client key.

GitLab docs: https://docs.gitlab.com/api/error_tracking/#error-tracking-client-keys

func (ErrorTrackingClientKey) String added in v0.116.0

func (p ErrorTrackingClientKey) String() string

type ErrorTrackingService added in v0.116.0

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

ErrorTrackingService handles communication with the error tracking methods of the GitLab API.

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

func (*ErrorTrackingService) CreateClientKey added in v0.116.0

func (s *ErrorTrackingService) CreateClientKey(pid any, options ...RequestOptionFunc) (*ErrorTrackingClientKey, *Response, error)

CreateClientKey creates a new client key for a project.

GitLab API docs: https://docs.gitlab.com/api/error_tracking/#create-a-client-key

func (*ErrorTrackingService) DeleteClientKey added in v0.116.0

func (s *ErrorTrackingService) DeleteClientKey(pid any, keyID int, options ...RequestOptionFunc) (*Response, error)

DeleteClientKey removes a client key from the project.

GitLab API docs: https://docs.gitlab.com/api/error_tracking/#delete-a-client-key

func (*ErrorTrackingService) EnableDisableErrorTracking added in v0.116.0

func (s *ErrorTrackingService) EnableDisableErrorTracking(pid any, opt *EnableDisableErrorTrackingOptions, options ...RequestOptionFunc) (*ErrorTrackingSettings, *Response, error)

EnableDisableErrorTracking allows you to enable or disable the error tracking settings for a project.

GitLab API docs: https://docs.gitlab.com/api/error_tracking/#enable-or-disable-the-error-tracking-project-settings

func (*ErrorTrackingService) GetErrorTrackingSettings added in v0.116.0

func (s *ErrorTrackingService) GetErrorTrackingSettings(pid any, options ...RequestOptionFunc) (*ErrorTrackingSettings, *Response, error)

GetErrorTrackingSettings gets error tracking settings.

GitLab API docs: https://docs.gitlab.com/api/error_tracking/#get-error-tracking-settings

func (*ErrorTrackingService) ListClientKeys added in v0.116.0

func (s *ErrorTrackingService) ListClientKeys(pid any, opt *ListClientKeysOptions, options ...RequestOptionFunc) ([]*ErrorTrackingClientKey, *Response, error)

ListClientKeys lists error tracking project client keys.

GitLab API docs: https://docs.gitlab.com/api/error_tracking/#list-project-client-keys

type ErrorTrackingServiceInterface added in v0.126.0

type ErrorTrackingServiceInterface interface {
	GetErrorTrackingSettings(pid any, options ...RequestOptionFunc) (*ErrorTrackingSettings, *Response, error)
	EnableDisableErrorTracking(pid any, opt *EnableDisableErrorTrackingOptions, options ...RequestOptionFunc) (*ErrorTrackingSettings, *Response, error)
	ListClientKeys(pid any, opt *ListClientKeysOptions, options ...RequestOptionFunc) ([]*ErrorTrackingClientKey, *Response, error)
	CreateClientKey(pid any, options ...RequestOptionFunc) (*ErrorTrackingClientKey, *Response, error)
	DeleteClientKey(pid any, keyID int, options ...RequestOptionFunc) (*Response, error)
}

ErrorTrackingServiceInterface defines all the API methods for the ErrorTrackingService

type ErrorTrackingSettings added in v0.116.0

type ErrorTrackingSettings struct {
	Active            bool   `json:"active"`
	ProjectName       string `json:"project_name"`
	SentryExternalURL string `json:"sentry_external_url"`
	APIURL            string `json:"api_url"`
	Integrated        bool   `json:"integrated"`
}

ErrorTrackingSettings represents error tracking settings for a GitLab project.

GitLab API docs: https://docs.gitlab.com/api/error_tracking/#error-tracking-project-settings

func (ErrorTrackingSettings) String added in v0.116.0

func (p ErrorTrackingSettings) String() string

type EventLabel added in v0.116.0

type EventLabel struct {
	ID          int    `json:"id"`
	Title       string `json:"title"`
	Color       string `json:"color"`
	ProjectID   int    `json:"project_id"`
	CreatedAt   string `json:"created_at"`
	UpdatedAt   string `json:"updated_at"`
	Template    bool   `json:"template"`
	Description string `json:"description"`
	Type        string `json:"type"`
	GroupID     int    `json:"group_id"`
}

EventLabel represents a label inside a webhook event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#work-item-events

type EventTargetTypeValue added in v0.8.0

type EventTargetTypeValue string

EventTargetTypeValue represents actions type value for contribution events.

const (
	IssueEventTargetType        EventTargetTypeValue = "issue"
	MilestoneEventTargetType    EventTargetTypeValue = "milestone"
	MergeRequestEventTargetType EventTargetTypeValue = "merge_request"
	NoteEventTargetType         EventTargetTypeValue = "note"
	ProjectEventTargetType      EventTargetTypeValue = "project"
	SnippetEventTargetType      EventTargetTypeValue = "snippet"
	UserEventTargetType         EventTargetTypeValue = "user"
)

List of available action type.

GitLab API docs: https://docs.gitlab.com/api/events/#target-types

type EventType added in v0.116.0

type EventType string

EventType represents a Gitlab event type.

const (
	EventConfidentialIssue       EventType = "Confidential Issue Hook"
	EventConfidentialNote        EventType = "Confidential Note Hook"
	EventTypeBuild               EventType = "Build Hook"
	EventTypeDeployment          EventType = "Deployment Hook"
	EventTypeFeatureFlag         EventType = "Feature Flag Hook"
	EventTypeIssue               EventType = "Issue Hook"
	EventTypeJob                 EventType = "Job Hook"
	EventTypeMember              EventType = "Member Hook"
	EventTypeMergeRequest        EventType = "Merge Request Hook"
	EventTypeNote                EventType = "Note Hook"
	EventTypePipeline            EventType = "Pipeline Hook"
	EventTypePush                EventType = "Push Hook"
	EventTypeRelease             EventType = "Release Hook"
	EventTypeResourceAccessToken EventType = "Resource Access Token Hook"
	EventTypeServiceHook         EventType = "Service Hook"
	EventTypeSubGroup            EventType = "Subgroup Hook"
	EventTypeSystemHook          EventType = "System Hook"
	EventTypeTagPush             EventType = "Tag Push Hook"
	EventTypeWikiPage            EventType = "Wiki Page Hook"
)

List of available event types.

func HookEventType added in v0.116.0

func HookEventType(r *http.Request) EventType

HookEventType returns the event type for the given request.

func WebhookEventType added in v0.116.0

func WebhookEventType(r *http.Request) EventType

WebhookEventType returns the event type for the given request.

type EventTypeValue added in v0.8.0

type EventTypeValue string

EventTypeValue represents actions type for contribution events.

const (
	CreatedEventType   EventTypeValue = "created"
	UpdatedEventType   EventTypeValue = "updated"
	ClosedEventType    EventTypeValue = "closed"
	ReopenedEventType  EventTypeValue = "reopened"
	PushedEventType    EventTypeValue = "pushed"
	CommentedEventType EventTypeValue = "commented"
	MergedEventType    EventTypeValue = "merged"
	JoinedEventType    EventTypeValue = "joined"
	LeftEventType      EventTypeValue = "left"
	DestroyedEventType EventTypeValue = "destroyed"
	ExpiredEventType   EventTypeValue = "expired"
)

List of available action type.

GitLab API docs: https://docs.gitlab.com/user/profile/contributions_calendar/#user-contribution-events

type EventUser added in v0.116.0

type EventUser struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	Username  string `json:"username"`
	AvatarURL string `json:"avatar_url"`
	Email     string `json:"email"`
}

EventUser represents a user record in an event and is used as an even initiator or a merge assignee.

type EventsService added in v0.8.0

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

EventsService handles communication with the event related methods of the GitLab API.

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

func (*EventsService) ListCurrentUserContributionEvents added in v0.8.0

func (s *EventsService) ListCurrentUserContributionEvents(opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error)

ListCurrentUserContributionEvents gets a list currently authenticated user's events

GitLab API docs: https://docs.gitlab.com/api/events/#list-currently-authenticated-users-events

func (*EventsService) ListProjectVisibleEvents added in v0.11.0

func (s *EventsService) ListProjectVisibleEvents(pid any, opt *ListProjectVisibleEventsOptions, options ...RequestOptionFunc) ([]*ProjectEvent, *Response, error)

ListProjectVisibleEvents gets the events for the specified project.

GitLab API docs: https://docs.gitlab.com/api/events/#list-a-projects-visible-events

type EventsServiceInterface added in v0.126.0

type EventsServiceInterface interface {
	ListCurrentUserContributionEvents(opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error)
	ListProjectVisibleEvents(pid any, opt *ListProjectVisibleEventsOptions, options ...RequestOptionFunc) ([]*ProjectEvent, *Response, error)
}

EventsServiceInterface defines all the API methods for the EventsService

type ExploreSnippetsOptions added in v0.7.5

type ExploreSnippetsOptions ListOptions

ExploreSnippetsOptions represents the available ExploreSnippets() options.

GitLab API docs: https://docs.gitlab.com/api/snippets/#list-all-public-snippets

type ExportStatus added in v0.116.0

type ExportStatus 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"`
	ExportStatus      string     `json:"export_status"`
	Message           string     `json:"message"`
	Links             struct {
		APIURL string `json:"api_url"`
		WebURL string `json:"web_url"`
	} `json:"_links"`
}

ExportStatus represents a project export status.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#export-status

func (ExportStatus) String added in v0.116.0

func (s ExportStatus) String() string

type ExternalStatusChecksService added in v0.116.0

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

ExternalStatusChecksService handles communication with the external status check related methods of the GitLab API.

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

func (*ExternalStatusChecksService) CreateExternalStatusCheck added in v0.116.0

func (s *ExternalStatusChecksService) CreateExternalStatusCheck(pid any, opt *CreateExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)

CreateExternalStatusCheck creates an external status check.

Gitlab API docs: https://docs.gitlab.com/api/status_checks/#create-external-status-check-service

func (*ExternalStatusChecksService) DeleteExternalStatusCheck added in v0.116.0

func (s *ExternalStatusChecksService) DeleteExternalStatusCheck(pid any, check int, options ...RequestOptionFunc) (*Response, error)

DeleteExternalStatusCheck deletes an external status check.

Gitlab API docs: https://docs.gitlab.com/api/status_checks/#delete-external-status-check-service

func (*ExternalStatusChecksService) ListMergeStatusChecks added in v0.116.0

func (s *ExternalStatusChecksService) ListMergeStatusChecks(pid any, mr int, opt *ListOptions, options ...RequestOptionFunc) ([]*MergeStatusCheck, *Response, error)

ListMergeStatusChecks lists the external status checks that apply to it and their status for a single merge request.

GitLab API docs: https://docs.gitlab.com/api/status_checks/#list-status-checks-for-a-merge-request

func (*ExternalStatusChecksService) ListProjectStatusChecks added in v0.116.0

func (s *ExternalStatusChecksService) ListProjectStatusChecks(pid any, opt *ListOptions, options ...RequestOptionFunc) ([]*ProjectStatusCheck, *Response, error)

ListProjectStatusChecks lists the project external status checks.

GitLab API docs: https://docs.gitlab.com/api/status_checks/#get-project-external-status-check-services

func (*ExternalStatusChecksService) RetryFailedStatusCheckForAMergeRequest added in v0.116.0

func (s *ExternalStatusChecksService) RetryFailedStatusCheckForAMergeRequest(pid any, mergeRequest int, externalStatusCheck int, options ...RequestOptionFunc) (*Response, error)

UpdateExternalStatusCheck updates an external status check.

Gitlab API docs: https://docs.gitlab.com/api/status_checks/#retry-failed-status-check-for-a-merge-request

func (*ExternalStatusChecksService) SetExternalStatusCheckStatus added in v0.116.0

func (s *ExternalStatusChecksService) SetExternalStatusCheckStatus(pid any, mergeRequest int, opt *SetExternalStatusCheckStatusOptions, options ...RequestOptionFunc) (*Response, error)

SetExternalStatusCheckStatus sets the status of an external status check.

Gitlab API docs: https://docs.gitlab.com/api/status_checks/#set-status-of-an-external-status-check

func (*ExternalStatusChecksService) UpdateExternalStatusCheck added in v0.116.0

func (s *ExternalStatusChecksService) UpdateExternalStatusCheck(pid any, check int, opt *UpdateExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)

UpdateExternalStatusCheck updates an external status check.

Gitlab API docs: https://docs.gitlab.com/api/status_checks/#update-external-status-check-service

type ExternalStatusChecksServiceInterface added in v0.126.0

type ExternalStatusChecksServiceInterface interface {
	ListMergeStatusChecks(pid any, mr int, opt *ListOptions, options ...RequestOptionFunc) ([]*MergeStatusCheck, *Response, error)
	SetExternalStatusCheckStatus(pid any, mergeRequest int, opt *SetExternalStatusCheckStatusOptions, options ...RequestOptionFunc) (*Response, error)
	ListProjectStatusChecks(pid any, opt *ListOptions, options ...RequestOptionFunc) ([]*ProjectStatusCheck, *Response, error)
	CreateExternalStatusCheck(pid any, opt *CreateExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteExternalStatusCheck(pid any, check int, options ...RequestOptionFunc) (*Response, error)
	UpdateExternalStatusCheck(pid any, check int, opt *UpdateExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)
	RetryFailedStatusCheckForAMergeRequest(pid any, mergeRequest int, externalStatusCheck int, options ...RequestOptionFunc) (*Response, error)
}

ExternalStatusChecksServiceInterface defines all the API methods for the ExternalStatusChecksService

type ExternalWikiService added in v0.116.0

type ExternalWikiService struct {
	Service
	Properties *ExternalWikiServiceProperties `json:"properties"`
}

ExternalWikiService represents External Wiki service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#external-wiki

type ExternalWikiServiceProperties added in v0.116.0

type ExternalWikiServiceProperties struct {
	ExternalWikiURL string `json:"external_wiki_url"`
}

ExternalWikiServiceProperties represents External Wiki specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#external-wiki

type Feature added in v0.6.0

type Feature struct {
	Name       string `json:"name"`
	State      string `json:"state"`
	Gates      []Gate
	Definition *FeatureDefinition `json:"definition"`
}

Feature represents a GitLab feature flag.

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

func (Feature) String added in v0.6.0

func (f Feature) String() string

type FeatureDefinition added in v0.129.0

type FeatureDefinition struct {
	Name            string `json:"name"`
	IntroducedByURL string `json:"introduced_by_url"`
	RolloutIssueURL string `json:"rollout_issue_url"`
	Milestone       string `json:"milestone"`
	LogStateChanges bool   `json:"log_state_changes"`
	Type            string `json:"type"`
	Group           string `json:"group"`
	DefaultEnabled  bool   `json:"default_enabled"`
}

FeatureDefinition represents a Feature Definition.

GitLab API docs: https://docs.gitlab.com/api/features/#list-all-feature-definitions

func (FeatureDefinition) String added in v0.129.0

func (fd FeatureDefinition) String() string

type FeatureFlagEvent added in v0.116.0

type FeatureFlagEvent struct {
	ObjectKind string `json:"object_kind"`
	Project    struct {
		ID                int     `json:"id"`
		Name              string  `json:"name"`
		Description       string  `json:"description"`
		WebURL            string  `json:"web_url"`
		AvatarURL         *string `json:"avatar_url"`
		GitSSHURL         string  `json:"git_ssh_url"`
		GitHTTPURL        string  `json:"git_http_url"`
		Namespace         string  `json:"namespace"`
		VisibilityLevel   int     `json:"visibility_level"`
		PathWithNamespace string  `json:"path_with_namespace"`
		DefaultBranch     string  `json:"default_branch"`
		CIConfigPath      string  `json:"ci_config_path"`
		Homepage          string  `json:"homepage"`
		URL               string  `json:"url"`
		SSHURL            string  `json:"ssh_url"`
		HTTPURL           string  `json:"http_url"`
	} `json:"project"`
	User             *EventUser `json:"user"`
	UserURL          string     `json:"user_url"`
	ObjectAttributes struct {
		ID          int    `json:"id"`
		Name        string `json:"name"`
		Description string `json:"description"`
		Active      bool   `json:"active"`
	} `json:"object_attributes"`
}

FeatureFlagEvent represents a feature flag event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#feature-flag-events

type FeatureFlagStrategyOptions added in v0.116.0

type FeatureFlagStrategyOptions struct {
	ID         *int                                 `url:"id,omitempty" json:"id,omitempty"`
	Name       *string                              `url:"name,omitempty" json:"name,omitempty"`
	Parameters *ProjectFeatureFlagStrategyParameter `url:"parameters,omitempty" json:"parameters,omitempty"`
	Scopes     *[]*ProjectFeatureFlagScope          `url:"scopes,omitempty" json:"scopes,omitempty"`
}

FeatureFlagStrategyOptions represents the available feature flag strategy options.

Gitlab API docs: https://docs.gitlab.com/api/feature_flags/#create-a-feature-flag

type FeatureFlagUserList added in v0.128.0

type FeatureFlagUserList struct {
	Name      string     `url:"name" json:"name"`
	UserXIDs  string     `url:"user_xids" json:"user_xids"`
	ID        int        `url:"id" json:"id"`
	IID       int        `url:"iid" json:"iid"`
	ProjectID int        `url:"project_id" json:"project_id"`
	CreatedAt *time.Time `url:"created_at" json:"created_at"`
	UpdatedAt *time.Time `url:"updated_at" json:"updated_at"`
}

FeatureFlagUserList represents a project feature flag user list.

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

type FeatureFlagUserListsService added in v0.128.0

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

FeatureFlagUserListService handles communication with the feature flag user list related methods of the GitLab API.

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

func (*FeatureFlagUserListsService) CreateFeatureFlagUserList added in v0.128.0

CreateFeatureFlagUserList creates a feature flag user list.

GitLab API docs: https://docs.gitlab.com/api/feature_flag_user_lists/#create-a-feature-flag-user-list

func (*FeatureFlagUserListsService) DeleteFeatureFlagUserList added in v0.128.0

func (s *FeatureFlagUserListsService) DeleteFeatureFlagUserList(pid any, iid int, options ...RequestOptionFunc) (*Response, error)

DeleteFeatureFlagUserList deletes a feature flag user list.

GitLab API docs: https://docs.gitlab.com/api/feature_flag_user_lists/#delete-feature-flag-user-list

func (*FeatureFlagUserListsService) GetFeatureFlagUserList added in v0.128.0

func (s *FeatureFlagUserListsService) GetFeatureFlagUserList(pid any, iid int, options ...RequestOptionFunc) (*FeatureFlagUserList, *Response, error)

GetFeatureFlagUserList gets a feature flag user list.

GitLab API docs: https://docs.gitlab.com/api/feature_flag_user_lists/#get-a-feature-flag-user-list

func (*FeatureFlagUserListsService) ListFeatureFlagUserLists added in v0.128.0

func (s *FeatureFlagUserListsService) ListFeatureFlagUserLists(pid any, opt *ListFeatureFlagUserListsOptions, options ...RequestOptionFunc) ([]*FeatureFlagUserList, *Response, error)

ListFeatureFlagUserLists gets all feature flag user lists for the requested project.

GitLab API docs: https://docs.gitlab.com/api/feature_flag_user_lists/#list-all-feature-flag-user-lists-for-a-project

func (*FeatureFlagUserListsService) UpdateFeatureFlagUserList added in v0.128.0

func (s *FeatureFlagUserListsService) UpdateFeatureFlagUserList(pid any, iid int, opt *UpdateFeatureFlagUserListOptions, options ...RequestOptionFunc) (*FeatureFlagUserList, *Response, error)

UpdateFeatureFlagUserList updates a feature flag user list.

GitLab API docs: https://docs.gitlab.com/api/feature_flag_user_lists/#update-a-feature-flag-user-list

type FeatureFlagUserListsServiceInterface added in v0.128.0

type FeatureFlagUserListsServiceInterface interface {
	ListFeatureFlagUserLists(pid any, opt *ListFeatureFlagUserListsOptions, options ...RequestOptionFunc) ([]*FeatureFlagUserList, *Response, error)
	CreateFeatureFlagUserList(pid any, opt *CreateFeatureFlagUserListOptions, options ...RequestOptionFunc) (*FeatureFlagUserList, *Response, error)
	GetFeatureFlagUserList(pid any, iid int, options ...RequestOptionFunc) (*FeatureFlagUserList, *Response, error)
	UpdateFeatureFlagUserList(pid any, iid int, opt *UpdateFeatureFlagUserListOptions, options ...RequestOptionFunc) (*FeatureFlagUserList, *Response, error)
	DeleteFeatureFlagUserList(pid any, iid int, options ...RequestOptionFunc) (*Response, error)
}

type FeaturesService added in v0.6.0

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

FeaturesService handles the communication with the application FeaturesService related methods of the GitLab API.

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

func (*FeaturesService) DeleteFeatureFlag added in v0.129.0

func (s *FeaturesService) DeleteFeatureFlag(name string, options ...RequestOptionFunc) (*Response, error)

DeleteFeatureFlag deletes a feature flag.

GitLab API docs: https://docs.gitlab.com/api/features/#delete-a-feature

func (*FeaturesService) ListFeatureDefinitions added in v0.129.0

func (s *FeaturesService) ListFeatureDefinitions(options ...RequestOptionFunc) ([]*FeatureDefinition, *Response, error)

ListFeatureDefinitions gets a lists of all feature definitions.

GitLab API docs: https://docs.gitlab.com/api/features/#list-all-feature-definitions

func (*FeaturesService) ListFeatures added in v0.6.0

func (s *FeaturesService) ListFeatures(options ...RequestOptionFunc) ([]*Feature, *Response, error)

ListFeatures gets a list of feature flags

GitLab API docs: https://docs.gitlab.com/api/features/#list-all-features

func (*FeaturesService) SetFeatureFlag added in v0.6.0

func (s *FeaturesService) SetFeatureFlag(name string, opt *SetFeatureFlagOptions, options ...RequestOptionFunc) (*Feature, *Response, error)

SetFeatureFlag sets or creates a feature flag gate

GitLab API docs: https://docs.gitlab.com/api/features/#set-or-create-a-feature

type FeaturesServiceInterface added in v0.126.0

type FeaturesServiceInterface interface {
	ListFeatures(options ...RequestOptionFunc) ([]*Feature, *Response, error)
	ListFeatureDefinitions(options ...RequestOptionFunc) ([]*FeatureDefinition, *Response, error)
	SetFeatureFlag(name string, opt *SetFeatureFlagOptions, options ...RequestOptionFunc) (*Feature, *Response, error)
	DeleteFeatureFlag(name string, options ...RequestOptionFunc) (*Response, error)
}

FeaturesServiceInterface defines all the API methods for the FeaturesService

type File

type File struct {
	FileName        string `json:"file_name"`
	FilePath        string `json:"file_path"`
	Size            int    `json:"size"`
	Encoding        string `json:"encoding"`
	Content         string `json:"content"`
	ExecuteFilemode bool   `json:"execute_filemode"`
	Ref             string `json:"ref"`
	BlobID          string `json:"blob_id"`
	CommitID        string `json:"commit_id"`
	SHA256          string `json:"content_sha256"`
	LastCommitID    string `json:"last_commit_id"`
}

File represents a GitLab repository file.

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

func (File) String

func (r File) String() string

type FileActionValue added in v0.116.0

type FileActionValue string

FileActionValue represents the available actions that can be performed on a file.

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

const (
	FileCreate FileActionValue = "create"
	FileDelete FileActionValue = "delete"
	FileMove   FileActionValue = "move"
	FileUpdate FileActionValue = "update"
	FileChmod  FileActionValue = "chmod"
)

The available file actions.

type FileBlameRange added in v0.116.0

type FileBlameRange struct {
	Commit struct {
		ID             string     `json:"id"`
		ParentIDs      []string   `json:"parent_ids"`
		Message        string     `json:"message"`
		AuthoredDate   *time.Time `json:"authored_date"`
		AuthorName     string     `json:"author_name"`
		AuthorEmail    string     `json:"author_email"`
		CommittedDate  *time.Time `json:"committed_date"`
		CommitterName  string     `json:"committer_name"`
		CommitterEmail string     `json:"committer_email"`
	} `json:"commit"`
	Lines []string `json:"lines"`
}

FileBlameRange represents one item of blame information.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-file-blame-from-repository

func (FileBlameRange) String added in v0.116.0

func (b FileBlameRange) String() string

type FileInfo

type FileInfo struct {
	FilePath string `json:"file_path"`
	Branch   string `json:"branch"`
}

FileInfo represents file details of a GitLab repository file.

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

func (FileInfo) String

func (r FileInfo) String() string

type Finding added in v0.116.0

type Finding struct {
	Confidence          string     `json:"confidence"`
	CreatedAt           *time.Time `json:"created_at"`
	ID                  int        `json:"id"`
	LocationFingerprint string     `json:"location_fingerprint"`
	MetadataVersion     string     `json:"metadata_version"`
	Name                string     `json:"name"`
	PrimaryIdentifierID int        `json:"primary_identifier_id"`
	ProjectFingerprint  string     `json:"project_fingerprint"`
	ProjectID           int        `json:"project_id"`
	RawMetadata         string     `json:"raw_metadata"`
	ReportType          string     `json:"report_type"`
	ScannerID           int        `json:"scanner_id"`
	Severity            string     `json:"severity"`
	UpdatedAt           *time.Time `json:"updated_at"`
	UUID                string     `json:"uuid"`
	VulnerabilityID     int        `json:"vulnerability_id"`
}

Project represents a GitLab project vulnerability finding. Deprecated: use GraphQL Query.vulnerabilities instead

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

type ForkParent added in v0.6.0

type ForkParent struct {
	ID                int    `json:"id"`
	Name              string `json:"name"`
	NameWithNamespace string `json:"name_with_namespace"`
	Path              string `json:"path"`
	PathWithNamespace string `json:"path_with_namespace"`
	HTTPURLToRepo     string `json:"http_url_to_repo"`
	WebURL            string `json:"web_url"`
	RepositoryStorage string `json:"repository_storage"`
}

ForkParent represents the parent project when this is a fork.

type ForkProjectOptions added in v0.116.0

type ForkProjectOptions struct {
	Branches                      *string          `url:"branches,omitempty" json:"branches,omitempty"`
	Description                   *string          `url:"description,omitempty" json:"description,omitempty"`
	MergeRequestDefaultTargetSelf *bool            `url:"mr_default_target_self,omitempty" json:"mr_default_target_self,omitempty"`
	Name                          *string          `url:"name,omitempty" json:"name,omitempty"`
	NamespaceID                   *int             `url:"namespace_id,omitempty" json:"namespace_id,omitempty"`
	NamespacePath                 *string          `url:"namespace_path,omitempty" json:"namespace_path,omitempty"`
	Path                          *string          `url:"path,omitempty" json:"path,omitempty"`
	Visibility                    *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`

	// Deprecated: This parameter has been split into NamespaceID and NamespacePath.
	Namespace *string `url:"namespace,omitempty" json:"namespace,omitempty"`
}

ForkProjectOptions represents the available ForkProject() options.

GitLab API docs: https://docs.gitlab.com/api/project_forks/#fork-a-project

type FreezePeriod added in v0.116.0

type FreezePeriod struct {
	ID           int        `json:"id"`
	FreezeStart  string     `json:"freeze_start"`
	FreezeEnd    string     `json:"freeze_end"`
	CronTimezone string     `json:"cron_timezone"`
	CreatedAt    *time.Time `json:"created_at"`
	UpdatedAt    *time.Time `json:"updated_at"`
}

FreezePeriod represents a freeze period object.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#list-freeze-periods

type FreezePeriodsService added in v0.116.0

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

FreezePeriodsService handles the communication with the freeze periods related methods of the GitLab API.

https://docs.gitlab.com/api/freeze_periods/

func (*FreezePeriodsService) CreateFreezePeriodOptions added in v0.116.0

func (s *FreezePeriodsService) CreateFreezePeriodOptions(pid any, opt *CreateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error)

CreateFreezePeriodOptions adds a freeze period to a specified project.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#create-a-freeze-period

func (*FreezePeriodsService) DeleteFreezePeriod added in v0.116.0

func (s *FreezePeriodsService) DeleteFreezePeriod(pid any, freezePeriod int, options ...RequestOptionFunc) (*Response, error)

DeleteFreezePeriod removes a freeze period from a project. This is an idempotent method and can be called multiple times. Either the hook is available or not.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#delete-a-freeze-period

func (*FreezePeriodsService) GetFreezePeriod added in v0.116.0

func (s *FreezePeriodsService) GetFreezePeriod(pid any, freezePeriod int, options ...RequestOptionFunc) (*FreezePeriod, *Response, error)

GetFreezePeriod gets a specific freeze period for a project.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#get-a-freeze-period-by-a-freeze_period_id

func (*FreezePeriodsService) ListFreezePeriods added in v0.116.0

func (s *FreezePeriodsService) ListFreezePeriods(pid any, opt *ListFreezePeriodsOptions, options ...RequestOptionFunc) ([]*FreezePeriod, *Response, error)

ListFreezePeriods gets a list of project project freeze periods.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#list-freeze-periods

func (*FreezePeriodsService) UpdateFreezePeriodOptions added in v0.116.0

func (s *FreezePeriodsService) UpdateFreezePeriodOptions(pid any, freezePeriod int, opt *UpdateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error)

UpdateFreezePeriodOptions edits a freeze period for a specified project.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#update-a-freeze-period

type FreezePeriodsServiceInterface added in v0.126.0

type FreezePeriodsServiceInterface interface {
	ListFreezePeriods(pid any, opt *ListFreezePeriodsOptions, options ...RequestOptionFunc) ([]*FreezePeriod, *Response, error)
	GetFreezePeriod(pid any, freezePeriod int, options ...RequestOptionFunc) (*FreezePeriod, *Response, error)
	CreateFreezePeriodOptions(pid any, opt *CreateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error)
	UpdateFreezePeriodOptions(pid any, freezePeriod int, opt *UpdateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error)
	DeleteFreezePeriod(pid any, freezePeriod int, options ...RequestOptionFunc) (*Response, error)
}

FreezePeriodsServiceInterface defines all the API methods for the FreezePeriodsService

type GPGKey added in v0.116.0

type GPGKey struct {
	ID        int        `json:"id"`
	Key       string     `json:"key"`
	CreatedAt *time.Time `json:"created_at"`
}

GPGKey represents a GPG key.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-gpg-keys

type GPGSignature added in v0.116.0

type GPGSignature struct {
	KeyID              int    `json:"gpg_key_id"`
	KeyPrimaryKeyID    string `json:"gpg_key_primary_keyid"`
	KeyUserName        string `json:"gpg_key_user_name"`
	KeyUserEmail       string `json:"gpg_key_user_email"`
	VerificationStatus string `json:"verification_status"`
	KeySubkeyID        int    `json:"gpg_key_subkey_id"`
}

GPGSignature represents a Gitlab commit's GPG Signature.

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

type Gate added in v0.6.0

type Gate struct {
	Key   string `json:"key"`
	Value any    `json:"value"`
}

Gate represents a gate of a GitLab feature flag.

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

type GenerateChangelogDataOptions added in v0.116.0

type GenerateChangelogDataOptions struct {
	Version    *string  `url:"version,omitempty" json:"version,omitempty"`
	ConfigFile *string  `url:"config_file,omitempty" json:"config_file,omitempty"`
	Date       *ISOTime `url:"date,omitempty" json:"date,omitempty"`
	From       *string  `url:"from,omitempty" json:"from,omitempty"`
	To         *string  `url:"to,omitempty" json:"to,omitempty"`
	Trailer    *string  `url:"trailer,omitempty" json:"trailer,omitempty"`
}

GenerateChangelogDataOptions represents the available GenerateChangelogData() options.

GitLab API docs: https://docs.gitlab.com/api/repositories/#generate-changelog-data

type GenericGraphQLErrors added in v0.128.0

type GenericGraphQLErrors struct {
	Errors []struct {
		Message string `json:"message"`
	} `json:"errors"`
}

type GenericPackageSelectValue added in v0.116.0

type GenericPackageSelectValue string

GenericPackageSelectValue represents a generic package select value.

const (
	SelectPackageFile GenericPackageSelectValue = "package_file"
)

The available generic package select values.

type GenericPackageStatusValue added in v0.116.0

type GenericPackageStatusValue string

GenericPackageStatusValue represents a generic package status.

const (
	PackageDefault GenericPackageStatusValue = "default"
	PackageHidden  GenericPackageStatusValue = "hidden"
)

The available generic package statuses.

type GenericPackagesFile added in v0.116.0

type GenericPackagesFile struct {
	ID        int        `json:"id"`
	PackageID int        `json:"package_id"`
	CreatedAt *time.Time `json:"created_at"`
	UpdatedAt *time.Time `json:"updated_at"`
	Size      int        `json:"size"`
	FileStore int        `json:"file_store"`
	FileMD5   string     `json:"file_md5"`
	FileSHA1  string     `json:"file_sha1"`
	FileName  string     `json:"file_name"`
	File      struct {
		URL string `json:"url"`
	} `json:"file"`
	FileSHA256             string     `json:"file_sha256"`
	VerificationRetryAt    *time.Time `json:"verification_retry_at"`
	VerifiedAt             *time.Time `json:"verified_at"`
	VerificationFailure    bool       `json:"verification_failure"`
	VerificationRetryCount int        `json:"verification_retry_count"`
	VerificationChecksum   string     `json:"verification_checksum"`
	VerificationState      int        `json:"verification_state"`
	VerificationStartedAt  *time.Time `json:"verification_started_at"`
	NewFilePath            string     `json:"new_file_path"`
}

GenericPackagesFile represents a GitLab generic package file.

GitLab API docs: https://docs.gitlab.com/user/packages/generic_packages/#publish-a-single-file

type GenericPackagesService added in v0.116.0

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

GenericPackagesService handles communication with the packages related methods of the GitLab API.

GitLab docs: https://docs.gitlab.com/user/packages/generic_packages/

func (*GenericPackagesService) DownloadPackageFile added in v0.116.0

func (s *GenericPackagesService) DownloadPackageFile(pid any, packageName, packageVersion, fileName string, options ...RequestOptionFunc) ([]byte, *Response, error)

DownloadPackageFile allows you to download the package file.

GitLab docs: https://docs.gitlab.com/user/packages/generic_packages/#download-a-single-file

func (*GenericPackagesService) FormatPackageURL added in v0.116.0

func (s *GenericPackagesService) FormatPackageURL(pid any, packageName, packageVersion, fileName string) (string, error)

FormatPackageURL returns the GitLab Package Registry URL for the given artifact metadata, without the BaseURL. This does not make a GitLab API request, but rather computes it based on their documentation.

func (*GenericPackagesService) PublishPackageFile added in v0.116.0

func (s *GenericPackagesService) PublishPackageFile(pid any, packageName, packageVersion, fileName string, content io.Reader, opt *PublishPackageFileOptions, options ...RequestOptionFunc) (*GenericPackagesFile, *Response, error)

PublishPackageFile uploads a file to a project's package registry.

GitLab docs: https://docs.gitlab.com/user/packages/generic_packages/#publish-a-single-file

type GenericPackagesServiceInterface added in v0.126.0

type GenericPackagesServiceInterface interface {
	FormatPackageURL(pid any, packageName, packageVersion, fileName string) (string, error)
	PublishPackageFile(pid any, packageName, packageVersion, fileName string, content io.Reader, opt *PublishPackageFileOptions, options ...RequestOptionFunc) (*GenericPackagesFile, *Response, error)
	DownloadPackageFile(pid any, packageName, packageVersion, fileName string, options ...RequestOptionFunc) ([]byte, *Response, error)
}

GenericPackagesServiceInterface defines all the API methods for the GenericPackagesService

type GeoNode added in v0.116.0

type GeoNode struct {
	ID                               int          `json:"id"`
	Name                             string       `json:"name"`
	URL                              string       `json:"url"`
	InternalURL                      string       `json:"internal_url"`
	Primary                          bool         `json:"primary"`
	Enabled                          bool         `json:"enabled"`
	Current                          bool         `json:"current"`
	FilesMaxCapacity                 int          `json:"files_max_capacity"`
	ReposMaxCapacity                 int          `json:"repos_max_capacity"`
	VerificationMaxCapacity          int          `json:"verification_max_capacity"`
	SelectiveSyncType                string       `json:"selective_sync_type"`
	SelectiveSyncShards              []string     `json:"selective_sync_shards"`
	SelectiveSyncNamespaceIds        []int        `json:"selective_sync_namespace_ids"`
	MinimumReverificationInterval    int          `json:"minimum_reverification_interval"`
	ContainerRepositoriesMaxCapacity int          `json:"container_repositories_max_capacity"`
	SyncObjectStorage                bool         `json:"sync_object_storage"`
	CloneProtocol                    string       `json:"clone_protocol"`
	WebEditURL                       string       `json:"web_edit_url"`
	WebGeoProjectsURL                string       `json:"web_geo_projects_url"`
	Links                            GeoNodeLinks `json:"_links"`
}

GeoNode represents a GitLab Geo Node. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

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

type GeoNodeLinks struct {
	Self   string `json:"self"`
	Status string `json:"status"`
	Repair string `json:"repair"`
}

GeoNodeLinks represents links for GitLab GeoNode. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

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

type GeoNodeStatus added in v0.116.0

type GeoNodeStatus struct {
	GeoNodeID                                     int    `json:"geo_node_id"`
	Healthy                                       bool   `json:"healthy"`
	Health                                        string `json:"health"`
	HealthStatus                                  string `json:"health_status"`
	MissingOauthApplication                       bool   `json:"missing_oauth_application"`
	AttachmentsCount                              int    `json:"attachments_count"`
	AttachmentsSyncedCount                        int    `json:"attachments_synced_count"`
	AttachmentsFailedCount                        int    `json:"attachments_failed_count"`
	AttachmentsSyncedMissingOnPrimaryCount        int    `json:"attachments_synced_missing_on_primary_count"`
	AttachmentsSyncedInPercentage                 string `json:"attachments_synced_in_percentage"`
	DbReplicationLagSeconds                       int    `json:"db_replication_lag_seconds"`
	LfsObjectsCount                               int    `json:"lfs_objects_count"`
	LfsObjectsSyncedCount                         int    `json:"lfs_objects_synced_count"`
	LfsObjectsFailedCount                         int    `json:"lfs_objects_failed_count"`
	LfsObjectsSyncedMissingOnPrimaryCount         int    `json:"lfs_objects_synced_missing_on_primary_count"`
	LfsObjectsSyncedInPercentage                  string `json:"lfs_objects_synced_in_percentage"`
	JobArtifactsCount                             int    `json:"job_artifacts_count"`
	JobArtifactsSyncedCount                       int    `json:"job_artifacts_synced_count"`
	JobArtifactsFailedCount                       int    `json:"job_artifacts_failed_count"`
	JobArtifactsSyncedMissingOnPrimaryCount       int    `json:"job_artifacts_synced_missing_on_primary_count"`
	JobArtifactsSyncedInPercentage                string `json:"job_artifacts_synced_in_percentage"`
	ContainerRepositoriesCount                    int    `json:"container_repositories_count"`
	ContainerRepositoriesSyncedCount              int    `json:"container_repositories_synced_count"`
	ContainerRepositoriesFailedCount              int    `json:"container_repositories_failed_count"`
	ContainerRepositoriesSyncedInPercentage       string `json:"container_repositories_synced_in_percentage"`
	DesignRepositoriesCount                       int    `json:"design_repositories_count"`
	DesignRepositoriesSyncedCount                 int    `json:"design_repositories_synced_count"`
	DesignRepositoriesFailedCount                 int    `json:"design_repositories_failed_count"`
	DesignRepositoriesSyncedInPercentage          string `json:"design_repositories_synced_in_percentage"`
	ProjectsCount                                 int    `json:"projects_count"`
	RepositoriesCount                             int    `json:"repositories_count"`
	RepositoriesFailedCount                       int    `json:"repositories_failed_count"`
	RepositoriesSyncedCount                       int    `json:"repositories_synced_count"`
	RepositoriesSyncedInPercentage                string `json:"repositories_synced_in_percentage"`
	WikisCount                                    int    `json:"wikis_count"`
	WikisFailedCount                              int    `json:"wikis_failed_count"`
	WikisSyncedCount                              int    `json:"wikis_synced_count"`
	WikisSyncedInPercentage                       string `json:"wikis_synced_in_percentage"`
	ReplicationSlotsCount                         int    `json:"replication_slots_count"`
	ReplicationSlotsUsedCount                     int    `json:"replication_slots_used_count"`
	ReplicationSlotsUsedInPercentage              string `json:"replication_slots_used_in_percentage"`
	ReplicationSlotsMaxRetainedWalBytes           int    `json:"replication_slots_max_retained_wal_bytes"`
	RepositoriesCheckedCount                      int    `json:"repositories_checked_count"`
	RepositoriesCheckedFailedCount                int    `json:"repositories_checked_failed_count"`
	RepositoriesCheckedInPercentage               string `json:"repositories_checked_in_percentage"`
	RepositoriesChecksummedCount                  int    `json:"repositories_checksummed_count"`
	RepositoriesChecksumFailedCount               int    `json:"repositories_checksum_failed_count"`
	RepositoriesChecksummedInPercentage           string `json:"repositories_checksummed_in_percentage"`
	WikisChecksummedCount                         int    `json:"wikis_checksummed_count"`
	WikisChecksumFailedCount                      int    `json:"wikis_checksum_failed_count"`
	WikisChecksummedInPercentage                  string `json:"wikis_checksummed_in_percentage"`
	RepositoriesVerifiedCount                     int    `json:"repositories_verified_count"`
	RepositoriesVerificationFailedCount           int    `json:"repositories_verification_failed_count"`
	RepositoriesVerifiedInPercentage              string `json:"repositories_verified_in_percentage"`
	RepositoriesChecksumMismatchCount             int    `json:"repositories_checksum_mismatch_count"`
	WikisVerifiedCount                            int    `json:"wikis_verified_count"`
	WikisVerificationFailedCount                  int    `json:"wikis_verification_failed_count"`
	WikisVerifiedInPercentage                     string `json:"wikis_verified_in_percentage"`
	WikisChecksumMismatchCount                    int    `json:"wikis_checksum_mismatch_count"`
	RepositoriesRetryingVerificationCount         int    `json:"repositories_retrying_verification_count"`
	WikisRetryingVerificationCount                int    `json:"wikis_retrying_verification_count"`
	LastEventID                                   int    `json:"last_event_id"`
	LastEventTimestamp                            int    `json:"last_event_timestamp"`
	CursorLastEventID                             int    `json:"cursor_last_event_id"`
	CursorLastEventTimestamp                      int    `json:"cursor_last_event_timestamp"`
	LastSuccessfulStatusCheckTimestamp            int    `json:"last_successful_status_check_timestamp"`
	Version                                       string `json:"version"`
	Revision                                      string `json:"revision"`
	MergeRequestDiffsCount                        int    `json:"merge_request_diffs_count"`
	MergeRequestDiffsChecksumTotalCount           int    `json:"merge_request_diffs_checksum_total_count"`
	MergeRequestDiffsChecksummedCount             int    `json:"merge_request_diffs_checksummed_count"`
	MergeRequestDiffsChecksumFailedCount          int    `json:"merge_request_diffs_checksum_failed_count"`
	MergeRequestDiffsSyncedCount                  int    `json:"merge_request_diffs_synced_count"`
	MergeRequestDiffsFailedCount                  int    `json:"merge_request_diffs_failed_count"`
	MergeRequestDiffsRegistryCount                int    `json:"merge_request_diffs_registry_count"`
	MergeRequestDiffsVerificationTotalCount       int    `json:"merge_request_diffs_verification_total_count"`
	MergeRequestDiffsVerifiedCount                int    `json:"merge_request_diffs_verified_count"`
	MergeRequestDiffsVerificationFailedCount      int    `json:"merge_request_diffs_verification_failed_count"`
	MergeRequestDiffsSyncedInPercentage           string `json:"merge_request_diffs_synced_in_percentage"`
	MergeRequestDiffsVerifiedInPercentage         string `json:"merge_request_diffs_verified_in_percentage"`
	PackageFilesCount                             int    `json:"package_files_count"`
	PackageFilesChecksumTotalCount                int    `json:"package_files_checksum_total_count"`
	PackageFilesChecksummedCount                  int    `json:"package_files_checksummed_count"`
	PackageFilesChecksumFailedCount               int    `json:"package_files_checksum_failed_count"`
	PackageFilesSyncedCount                       int    `json:"package_files_synced_count"`
	PackageFilesFailedCount                       int    `json:"package_files_failed_count"`
	PackageFilesRegistryCount                     int    `json:"package_files_registry_count"`
	PackageFilesVerificationTotalCount            int    `json:"package_files_verification_total_count"`
	PackageFilesVerifiedCount                     int    `json:"package_files_verified_count"`
	PackageFilesVerificationFailedCount           int    `json:"package_files_verification_failed_count"`
	PackageFilesSyncedInPercentage                string `json:"package_files_synced_in_percentage"`
	PackageFilesVerifiedInPercentage              string `json:"package_files_verified_in_percentage"`
	PagesDeploymentsCount                         int    `json:"pages_deployments_count"`
	PagesDeploymentsChecksumTotalCount            int    `json:"pages_deployments_checksum_total_count"`
	PagesDeploymentsChecksummedCount              int    `json:"pages_deployments_checksummed_count"`
	PagesDeploymentsChecksumFailedCount           int    `json:"pages_deployments_checksum_failed_count"`
	PagesDeploymentsSyncedCount                   int    `json:"pages_deployments_synced_count"`
	PagesDeploymentsFailedCount                   int    `json:"pages_deployments_failed_count"`
	PagesDeploymentsRegistryCount                 int    `json:"pages_deployments_registry_count"`
	PagesDeploymentsVerificationTotalCount        int    `json:"pages_deployments_verification_total_count"`
	PagesDeploymentsVerifiedCount                 int    `json:"pages_deployments_verified_count"`
	PagesDeploymentsVerificationFailedCount       int    `json:"pages_deployments_verification_failed_count"`
	PagesDeploymentsSyncedInPercentage            string `json:"pages_deployments_synced_in_percentage"`
	PagesDeploymentsVerifiedInPercentage          string `json:"pages_deployments_verified_in_percentage"`
	TerraformStateVersionsCount                   int    `json:"terraform_state_versions_count"`
	TerraformStateVersionsChecksumTotalCount      int    `json:"terraform_state_versions_checksum_total_count"`
	TerraformStateVersionsChecksummedCount        int    `json:"terraform_state_versions_checksummed_count"`
	TerraformStateVersionsChecksumFailedCount     int    `json:"terraform_state_versions_checksum_failed_count"`
	TerraformStateVersionsSyncedCount             int    `json:"terraform_state_versions_synced_count"`
	TerraformStateVersionsFailedCount             int    `json:"terraform_state_versions_failed_count"`
	TerraformStateVersionsRegistryCount           int    `json:"terraform_state_versions_registry_count"`
	TerraformStateVersionsVerificationTotalCount  int    `json:"terraform_state_versions_verification_total_count"`
	TerraformStateVersionsVerifiedCount           int    `json:"terraform_state_versions_verified_count"`
	TerraformStateVersionsVerificationFailedCount int    `json:"terraform_state_versions_verification_failed_count"`
	TerraformStateVersionsSyncedInPercentage      string `json:"terraform_state_versions_synced_in_percentage"`
	TerraformStateVersionsVerifiedInPercentage    string `json:"terraform_state_versions_verified_in_percentage"`
	SnippetRepositoriesCount                      int    `json:"snippet_repositories_count"`
	SnippetRepositoriesChecksumTotalCount         int    `json:"snippet_repositories_checksum_total_count"`
	SnippetRepositoriesChecksummedCount           int    `json:"snippet_repositories_checksummed_count"`
	SnippetRepositoriesChecksumFailedCount        int    `json:"snippet_repositories_checksum_failed_count"`
	SnippetRepositoriesSyncedCount                int    `json:"snippet_repositories_synced_count"`
	SnippetRepositoriesFailedCount                int    `json:"snippet_repositories_failed_count"`
	SnippetRepositoriesRegistryCount              int    `json:"snippet_repositories_registry_count"`
	SnippetRepositoriesVerificationTotalCount     int    `json:"snippet_repositories_verification_total_count"`
	SnippetRepositoriesVerifiedCount              int    `json:"snippet_repositories_verified_count"`
	SnippetRepositoriesVerificationFailedCount    int    `json:"snippet_repositories_verification_failed_count"`
	SnippetRepositoriesSyncedInPercentage         string `json:"snippet_repositories_synced_in_percentage"`
	SnippetRepositoriesVerifiedInPercentage       string `json:"snippet_repositories_verified_in_percentage"`
	GroupWikiRepositoriesCount                    int    `json:"group_wiki_repositories_count"`
	GroupWikiRepositoriesChecksumTotalCount       int    `json:"group_wiki_repositories_checksum_total_count"`
	GroupWikiRepositoriesChecksummedCount         int    `json:"group_wiki_repositories_checksummed_count"`
	GroupWikiRepositoriesChecksumFailedCount      int    `json:"group_wiki_repositories_checksum_failed_count"`
	GroupWikiRepositoriesSyncedCount              int    `json:"group_wiki_repositories_synced_count"`
	GroupWikiRepositoriesFailedCount              int    `json:"group_wiki_repositories_failed_count"`
	GroupWikiRepositoriesRegistryCount            int    `json:"group_wiki_repositories_registry_count"`
	GroupWikiRepositoriesVerificationTotalCount   int    `json:"group_wiki_repositories_verification_total_count"`
	GroupWikiRepositoriesVerifiedCount            int    `json:"group_wiki_repositories_verified_count"`
	GroupWikiRepositoriesVerificationFailedCount  int    `json:"group_wiki_repositories_verification_failed_count"`
	GroupWikiRepositoriesSyncedInPercentage       string `json:"group_wiki_repositories_synced_in_percentage"`
	GroupWikiRepositoriesVerifiedInPercentage     string `json:"group_wiki_repositories_verified_in_percentage"`
	PipelineArtifactsCount                        int    `json:"pipeline_artifacts_count"`
	PipelineArtifactsChecksumTotalCount           int    `json:"pipeline_artifacts_checksum_total_count"`
	PipelineArtifactsChecksummedCount             int    `json:"pipeline_artifacts_checksummed_count"`
	PipelineArtifactsChecksumFailedCount          int    `json:"pipeline_artifacts_checksum_failed_count"`
	PipelineArtifactsSyncedCount                  int    `json:"pipeline_artifacts_synced_count"`
	PipelineArtifactsFailedCount                  int    `json:"pipeline_artifacts_failed_count"`
	PipelineArtifactsRegistryCount                int    `json:"pipeline_artifacts_registry_count"`
	PipelineArtifactsVerificationTotalCount       int    `json:"pipeline_artifacts_verification_total_count"`
	PipelineArtifactsVerifiedCount                int    `json:"pipeline_artifacts_verified_count"`
	PipelineArtifactsVerificationFailedCount      int    `json:"pipeline_artifacts_verification_failed_count"`
	PipelineArtifactsSyncedInPercentage           string `json:"pipeline_artifacts_synced_in_percentage"`
	PipelineArtifactsVerifiedInPercentage         string `json:"pipeline_artifacts_verified_in_percentage"`
	UploadsCount                                  int    `json:"uploads_count"`
	UploadsSyncedCount                            int    `json:"uploads_synced_count"`
	UploadsFailedCount                            int    `json:"uploads_failed_count"`
	UploadsRegistryCount                          int    `json:"uploads_registry_count"`
	UploadsSyncedInPercentage                     string `json:"uploads_synced_in_percentage"`
}

GeoNodeStatus represents the status of Geo Node. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#retrieve-status-about-all-geo-nodes

type GeoNodesService added in v0.116.0

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

GeoNodesService handles communication with Geo Nodes related methods of GitLab API. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

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

func (*GeoNodesService) CreateGeoNode added in v0.116.0

func (s *GeoNodesService) CreateGeoNode(opt *CreateGeoNodesOptions, options ...RequestOptionFunc) (*GeoNode, *Response, error)

CreateGeoNode creates a new Geo Node. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#create-a-new-geo-node

func (*GeoNodesService) DeleteGeoNode added in v0.116.0

func (s *GeoNodesService) DeleteGeoNode(id int, options ...RequestOptionFunc) (*Response, error)

DeleteGeoNode removes the Geo node. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#delete-a-geo-node

func (*GeoNodesService) EditGeoNode added in v0.116.0

func (s *GeoNodesService) EditGeoNode(id int, opt *UpdateGeoNodesOptions, options ...RequestOptionFunc) (*GeoNode, *Response, error)

EditGeoNode updates settings of an existing Geo node. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#edit-a-geo-node

func (*GeoNodesService) GetGeoNode added in v0.116.0

func (s *GeoNodesService) GetGeoNode(id int, options ...RequestOptionFunc) (*GeoNode, *Response, error)

GetGeoNode gets a specific geo node. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#retrieve-configuration-about-a-specific-geo-node

func (*GeoNodesService) ListGeoNodes added in v0.116.0

func (s *GeoNodesService) ListGeoNodes(opt *ListGeoNodesOptions, options ...RequestOptionFunc) ([]*GeoNode, *Response, error)

ListGeoNodes gets a list of geo nodes. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#retrieve-configuration-about-all-geo-nodes

func (*GeoNodesService) RepairGeoNode added in v0.116.0

func (s *GeoNodesService) RepairGeoNode(id int, options ...RequestOptionFunc) (*GeoNode, *Response, error)

RepairGeoNode to repair the OAuth authentication of a Geo node. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#repair-a-geo-node

func (*GeoNodesService) RetrieveStatusOfAllGeoNodes added in v0.116.0

func (s *GeoNodesService) RetrieveStatusOfAllGeoNodes(options ...RequestOptionFunc) ([]*GeoNodeStatus, *Response, error)

RetrieveStatusOfAllGeoNodes get the list of status of all Geo Nodes. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#retrieve-status-about-all-geo-nodes

func (*GeoNodesService) RetrieveStatusOfGeoNode added in v0.116.0

func (s *GeoNodesService) RetrieveStatusOfGeoNode(id int, options ...RequestOptionFunc) (*GeoNodeStatus, *Response, error)

RetrieveStatusOfGeoNode get the of status of a specific Geo Nodes. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#retrieve-status-about-a-specific-geo-node

type GeoNodesServiceInterface deprecated added in v0.126.0

type GeoNodesServiceInterface interface {
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	CreateGeoNode(*CreateGeoNodesOptions, ...RequestOptionFunc) (*GeoNode, *Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	ListGeoNodes(*ListGeoNodesOptions, ...RequestOptionFunc) ([]*GeoNode, *Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	GetGeoNode(int, ...RequestOptionFunc) (*GeoNode, *Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	EditGeoNode(int, *UpdateGeoNodesOptions, ...RequestOptionFunc) (*GeoNode, *Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	DeleteGeoNode(int, ...RequestOptionFunc) (*Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	RepairGeoNode(int, ...RequestOptionFunc) (*GeoNode, *Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	RetrieveStatusOfAllGeoNodes(...RequestOptionFunc) ([]*GeoNodeStatus, *Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	RetrieveStatusOfGeoNode(int, ...RequestOptionFunc) (*GeoNodeStatus, *Response, error)
}

Deprecated: will be removed in v5 of the API, use Geo Sites API instead

type GeoSite added in v0.128.0

type GeoSite struct {
	ID                               int          `json:"id"`
	Name                             string       `json:"name"`
	URL                              string       `json:"url"`
	InternalURL                      string       `json:"internal_url"`
	Primary                          bool         `json:"primary"`
	Enabled                          bool         `json:"enabled"`
	Current                          bool         `json:"current"`
	FilesMaxCapacity                 int          `json:"files_max_capacity"`
	ReposMaxCapacity                 int          `json:"repos_max_capacity"`
	VerificationMaxCapacity          int          `json:"verification_max_capacity"`
	ContainerRepositoriesMaxCapacity int          `json:"container_repositories_max_capacity"`
	SelectiveSyncType                string       `json:"selective_sync_type"`
	SelectiveSyncShards              []string     `json:"selective_sync_shards"`
	SelectiveSyncNamespaceIDs        []int        `json:"selective_sync_namespace_ids"`
	MinimumReverificationInterval    int          `json:"minimum_reverification_interval"`
	SyncObjectStorage                bool         `json:"sync_object_storage"`
	WebEditURL                       string       `json:"web_edit_url"`
	WebGeoReplicationDetailsURL      string       `json:"web_geo_replication_details_url"`
	Links                            GeoSiteLinks `json:"_links"`
}

GeoSite represents a GitLab Geo Site.

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

type GeoSiteLinks struct {
	Self   string `json:"self"`
	Status string `json:"status"`
	Repair string `json:"repair"`
}

GeoSiteLinks represents links for GitLab GeoSite.

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

type GeoSiteStatus added in v0.128.0

type GeoSiteStatus struct {
	GeoNodeID                                       int               `json:"geo_node_id"`
	ProjectsCount                                   int               `json:"projects_count"`
	ContainerRepositoriesReplicationEnabled         bool              `json:"container_repositories_replication_enabled"`
	LFSObjectsCount                                 int               `json:"lfs_objects_count"`
	LFSObjectsChecksumTotalCount                    int               `json:"lfs_objects_checksum_total_count"`
	LFSObjectsChecksummedCount                      int               `json:"lfs_objects_checksummed_count"`
	LFSObjectsChecksumFailedCount                   int               `json:"lfs_objects_checksum_failed_count"`
	LFSObjectsSyncedCount                           int               `json:"lfs_objects_synced_count"`
	LFSObjectsFailedCount                           int               `json:"lfs_objects_failed_count"`
	LFSObjectsRegistryCount                         int               `json:"lfs_objects_registry_count"`
	LFSObjectsVerificationTotalCount                int               `json:"lfs_objects_verification_total_count"`
	LFSObjectsVerifiedCount                         int               `json:"lfs_objects_verified_count"`
	LFSObjectsVerificationFailedCount               int               `json:"lfs_objects_verification_failed_count"`
	MergeRequestDiffsCount                          int               `json:"merge_request_diffs_count"`
	MergeRequestDiffsChecksumTotalCount             int               `json:"merge_request_diffs_checksum_total_count"`
	MergeRequestDiffsChecksummedCount               int               `json:"merge_request_diffs_checksummed_count"`
	MergeRequestDiffsChecksumFailedCount            int               `json:"merge_request_diffs_checksum_failed_count"`
	MergeRequestDiffsSyncedCount                    int               `json:"merge_request_diffs_synced_count"`
	MergeRequestDiffsFailedCount                    int               `json:"merge_request_diffs_failed_count"`
	MergeRequestDiffsRegistryCount                  int               `json:"merge_request_diffs_registry_count"`
	MergeRequestDiffsVerificationTotalCount         int               `json:"merge_request_diffs_verification_total_count"`
	MergeRequestDiffsVerifiedCount                  int               `json:"merge_request_diffs_verified_count"`
	MergeRequestDiffsVerificationFailedCount        int               `json:"merge_request_diffs_verification_failed_count"`
	PackageFilesCount                               int               `json:"package_files_count"`
	PackageFilesChecksumTotalCount                  int               `json:"package_files_checksum_total_count"`
	PackageFilesChecksummedCount                    int               `json:"package_files_checksummed_count"`
	PackageFilesChecksumFailedCount                 int               `json:"package_files_checksum_failed_count"`
	PackageFilesSyncedCount                         int               `json:"package_files_synced_count"`
	PackageFilesFailedCount                         int               `json:"package_files_failed_count"`
	PackageFilesRegistryCount                       int               `json:"package_files_registry_count"`
	PackageFilesVerificationTotalCount              int               `json:"package_files_verification_total_count"`
	PackageFilesVerifiedCount                       int               `json:"package_files_verified_count"`
	PackageFilesVerificationFailedCount             int               `json:"package_files_verification_failed_count"`
	TerraformStateVersionsCount                     int               `json:"terraform_state_versions_count"`
	TerraformStateVersionsChecksumTotalCount        int               `json:"terraform_state_versions_checksum_total_count"`
	TerraformStateVersionsChecksummedCount          int               `json:"terraform_state_versions_checksummed_count"`
	TerraformStateVersionsChecksumFailedCount       int               `json:"terraform_state_versions_checksum_failed_count"`
	TerraformStateVersionsSyncedCount               int               `json:"terraform_state_versions_synced_count"`
	TerraformStateVersionsFailedCount               int               `json:"terraform_state_versions_failed_count"`
	TerraformStateVersionsRegistryCount             int               `json:"terraform_state_versions_registry_count"`
	TerraformStateVersionsVerificationTotalCount    int               `json:"terraform_state_versions_verification_total_count"`
	TerraformStateVersionsVerifiedCount             int               `json:"terraform_state_versions_verified_count"`
	TerraformStateVersionsVerificationFailedCount   int               `json:"terraform_state_versions_verification_failed_count"`
	SnippetRepositoriesCount                        int               `json:"snippet_repositories_count"`
	SnippetRepositoriesChecksumTotalCount           int               `json:"snippet_repositories_checksum_total_count"`
	SnippetRepositoriesChecksummedCount             int               `json:"snippet_repositories_checksummed_count"`
	SnippetRepositoriesChecksumFailedCount          int               `json:"snippet_repositories_checksum_failed_count"`
	SnippetRepositoriesSyncedCount                  int               `json:"snippet_repositories_synced_count"`
	SnippetRepositoriesFailedCount                  int               `json:"snippet_repositories_failed_count"`
	SnippetRepositoriesRegistryCount                int               `json:"snippet_repositories_registry_count"`
	SnippetRepositoriesVerificationTotalCount       int               `json:"snippet_repositories_verification_total_count"`
	SnippetRepositoriesVerifiedCount                int               `json:"snippet_repositories_verified_count"`
	SnippetRepositoriesVerificationFailedCount      int               `json:"snippet_repositories_verification_failed_count"`
	GroupWikiRepositoriesCount                      int               `json:"group_wiki_repositories_count"`
	GroupWikiRepositoriesChecksumTotalCount         int               `json:"group_wiki_repositories_checksum_total_count"`
	GroupWikiRepositoriesChecksummedCount           int               `json:"group_wiki_repositories_checksummed_count"`
	GroupWikiRepositoriesChecksumFailedCount        int               `json:"group_wiki_repositories_checksum_failed_count"`
	GroupWikiRepositoriesSyncedCount                int               `json:"group_wiki_repositories_synced_count"`
	GroupWikiRepositoriesFailedCount                int               `json:"group_wiki_repositories_failed_count"`
	GroupWikiRepositoriesRegistryCount              int               `json:"group_wiki_repositories_registry_count"`
	GrupWikiRepositoriesVerificationTotalCount      int               `json:"group_wiki_repositories_verification_total_count"`
	GroupWikiRepositoriesVerifiedCount              int               `json:"group_wiki_repositories_verified_count"`
	GroupWikiRepositoriesVerificationFailedCount    int               `json:"group_wiki_repositories_verification_failed_count"`
	PipelineArtifactsCount                          int               `json:"pipeline_artifacts_count"`
	PipelineArtifactsChecksumTotalCount             int               `json:"pipeline_artifacts_checksum_total_count"`
	PipelineArtifactsChecksummedCount               int               `json:"pipeline_artifacts_checksummed_count"`
	PipelineArtifactsChecksumFailedCount            int               `json:"pipeline_artifacts_checksum_failed_count"`
	PipelineArtifactsSyncedCount                    int               `json:"pipeline_artifacts_synced_count"`
	PipelineArtifactsFailedCount                    int               `json:"pipeline_artifacts_failed_count"`
	PipelineArtifactsRegistryCount                  int               `json:"pipeline_artifacts_registry_count"`
	PipelineArtifactsVerificationTotalCount         int               `json:"pipeline_artifacts_verification_total_count"`
	PipelineArtifactsVerifiedCount                  int               `json:"pipeline_artifacts_verified_count"`
	PipelineArtifactsVerificationFailedCount        int               `json:"pipeline_artifacts_verification_failed_count"`
	PagesDeploymentsCount                           int               `json:"pages_deployments_count"`
	PagesDeploymentsChecksumTotalCount              int               `json:"pages_deployments_checksum_total_count"`
	PagesDeploymentsChecksummedCount                int               `json:"pages_deployments_checksummed_count"`
	PagesDeploymentsChecksumFailedCount             int               `json:"pages_deployments_checksum_failed_count"`
	PagesDeploymentsSyncedCount                     int               `json:"pages_deployments_synced_count"`
	PagesDeploymentsFailedCount                     int               `json:"pages_deployments_failed_count"`
	PagesDeploymentsRegistryCount                   int               `json:"pages_deployments_registry_count"`
	PagesDeploymentsVerificationTotalCount          int               `json:"pages_deployments_verification_total_count"`
	PagesDeploymentsVerifiedCount                   int               `json:"pages_deployments_verified_count"`
	PagesDeploymentsVerificationFailedCount         int               `json:"pages_deployments_verification_failed_count"`
	UploadsCount                                    int               `json:"uploads_count"`
	UploadsChecksumTotalCount                       int               `json:"uploads_checksum_total_count"`
	UploadsChecksummedCount                         int               `json:"uploads_checksummed_count"`
	UploadsChecksumFailedCount                      int               `json:"uploads_checksum_failed_count"`
	UploadsSyncedCount                              int               `json:"uploads_synced_count"`
	UploadsFailedCount                              int               `json:"uploads_failed_count"`
	UploadsRegistryCount                            int               `json:"uploads_registry_count"`
	UploadsVerificationTotalCount                   int               `json:"uploads_verification_total_count"`
	UploadsVerifiedCount                            int               `json:"uploads_verified_count"`
	UploadsVerificationFailedCount                  int               `json:"uploads_verification_failed_count"`
	JobArtifactsCount                               int               `json:"job_artifacts_count"`
	JobArtifactsChecksumTotalCount                  int               `json:"job_artifacts_checksum_total_count"`
	JobArtifactsChecksummedCount                    int               `json:"job_artifacts_checksummed_count"`
	JobArtifactsChecksumFailedCount                 int               `json:"job_artifacts_checksum_failed_count"`
	JobArtifactsSyncedCount                         int               `json:"job_artifacts_synced_count"`
	JobArtifactsFailedCount                         int               `json:"job_artifacts_failed_count"`
	JobArtifactsRegistryCount                       int               `json:"job_artifacts_registry_count"`
	JobArtifactsVerificationTotalCount              int               `json:"job_artifacts_verification_total_count"`
	JobArtifactsVerifiedCount                       int               `json:"job_artifacts_verified_count"`
	JobArtifactsVerificationFailedCount             int               `json:"job_artifacts_verification_failed_count"`
	CISecureFilesCount                              int               `json:"ci_secure_files_count"`
	CISecureFilesChecksumTotalCount                 int               `json:"ci_secure_files_checksum_total_count"`
	CISecureFilesChecksummedCount                   int               `json:"ci_secure_files_checksummed_count"`
	CISecureFilesChecksumFailedCount                int               `json:"ci_secure_files_checksum_failed_count"`
	CISecureFilesSyncedCount                        int               `json:"ci_secure_files_synced_count"`
	CISecureFilesFailedCount                        int               `json:"ci_secure_files_failed_count"`
	CISecureFilesRegistryCount                      int               `json:"ci_secure_files_registry_count"`
	CISecureFilesVerificationTotalCount             int               `json:"ci_secure_files_verification_total_count"`
	CISecureFilesVerifiedCount                      int               `json:"ci_secure_files_verified_count"`
	CISecureFilesVerificationFailedCount            int               `json:"ci_secure_files_verification_failed_count"`
	ContainerRepositoriesCount                      int               `json:"container_repositories_count"`
	ContainerRepositoriesChecksumTotalCount         int               `json:"container_repositories_checksum_total_count"`
	ContainerRepositoriesChecksummedCount           int               `json:"container_repositories_checksummed_count"`
	ContainerRepositoriesChecksumFailedCount        int               `json:"container_repositories_checksum_failed_count"`
	ContainerRepositoriesSyncedCount                int               `json:"container_repositories_synced_count"`
	ContainerRepositoriesFailedCount                int               `json:"container_repositories_failed_count"`
	ContainerRepositoriesRegistryCount              int               `json:"container_repositories_registry_count"`
	ContainerRepositoriesVerificationTotalCount     int               `json:"container_repositories_verification_total_count"`
	ContainerRepositoriesVerifiedCount              int               `json:"container_repositories_verified_count"`
	ContainerRepositoriesVerificationFailedCount    int               `json:"container_repositories_verification_failed_count"`
	DependencyProxyBlobsCount                       int               `json:"dependency_proxy_blobs_count"`
	DependencyProxyBlobsChecksumTotalCount          int               `json:"dependency_proxy_blobs_checksum_total_count"`
	DependencyProxyBlobsChecksummedCount            int               `json:"dependency_proxy_blobs_checksummed_count"`
	DependencyProxyBlobsChecksumFailedCount         int               `json:"dependency_proxy_blobs_checksum_failed_count"`
	DependencyProxyBlobsSyncedCount                 int               `json:"dependency_proxy_blobs_synced_count"`
	DependencyProxyBlobsFailedCount                 int               `json:"dependency_proxy_blobs_failed_count"`
	DependencyProxyBlobsRegistryCount               int               `json:"dependency_proxy_blobs_registry_count"`
	DependencyProxyBlobsVerificationTotalCount      int               `json:"dependency_proxy_blobs_verification_total_count"`
	DependencyProxyBlobsVerifiedCount               int               `json:"dependency_proxy_blobs_verified_count"`
	DependencyProxyBlobsVerificationFailedCount     int               `json:"dependency_proxy_blobs_verification_failed_count"`
	DependencyProxyManifestsCount                   int               `json:"dependency_proxy_manifests_count"`
	DependencyProxyManifestsChecksumTotalCount      int               `json:"dependency_proxy_manifests_checksum_total_count"`
	DependencyProxyManifestsChecksummedCount        int               `json:"dependency_proxy_manifests_checksummed_count"`
	DependencyProxyManifestsChecksumFailedCount     int               `json:"dependency_proxy_manifests_checksum_failed_count"`
	DependencyProxyManifestsSyncedCount             int               `json:"dependency_proxy_manifests_synced_count"`
	DependencyProxyManifestsFailedCount             int               `json:"dependency_proxy_manifests_failed_count"`
	DependencyProxyManifestsRegistryCount           int               `json:"dependency_proxy_manifests_registry_count"`
	DependencyProxyManifestsVerificationTotalCount  int               `json:"dependency_proxy_manifests_verification_total_count"`
	DependencyProxyManifestsVerifiedCount           int               `json:"dependency_proxy_manifests_verified_count"`
	DependencyProxyManifestsVerificationFailedCount int               `json:"dependency_proxy_manifests_verification_failed_count"`
	ProjectWikiRepositoriesCount                    int               `json:"project_wiki_repositories_count"`
	ProjectWikiRepositoriesChecksumTotalCount       int               `json:"project_wiki_repositories_checksum_total_count"`
	ProjectWikiRepositoriesChecksummedCount         int               `json:"project_wiki_repositories_checksummed_count"`
	ProjectWikiRepositoriesChecksumFailedCount      int               `json:"project_wiki_repositories_checksum_failed_count"`
	ProjectWikiRepositoriesSyncedCount              int               `json:"project_wiki_repositories_synced_count"`
	ProjectWikiRepositoriesFailedCount              int               `json:"project_wiki_repositories_failed_count"`
	ProjectWikiRepositoriesRegistryCount            int               `json:"project_wiki_repositories_registry_count"`
	ProjectWikiRepositoriesVerificationTotalCount   int               `json:"project_wiki_repositories_verification_total_count"`
	ProjectWikiRepositoriesVerifiedCount            int               `json:"project_wiki_repositories_verified_count"`
	ProjectWikiRepositoriesVerificationFailedCount  int               `json:"project_wiki_repositories_verification_failed_count"`
	GitFetchEventCountWeekly                        int               `json:"git_fetch_event_count_weekly"`
	GitPushEventCountWeekly                         int               `json:"git_push_event_count_weekly"`
	ProxyRemoteRequestsEventCountWeekly             int               `json:"proxy_remote_requests_event_count_weekly"`
	ProxyLocalRequestsEventCountWeekly              int               `json:"proxy_local_requests_event_count_weekly"`
	RepositoriesCheckedInPercentage                 string            `json:"repositories_checked_in_percentage"`
	ReplicationSlotsUsedInPercentage                string            `json:"replication_slots_used_in_percentage"`
	LFSObjectsSyncedInPercentage                    string            `json:"lfs_objects_synced_in_percentage"`
	LFSObjectsVerifiedInPercentage                  string            `json:"lfs_objects_verified_in_percentage"`
	MergeRequestDiffsSyncedInPercentage             string            `json:"merge_request_diffs_synced_in_percentage"`
	MergeRequestDiffsVerifiedInPercentage           string            `json:"merge_request_diffs_verified_in_percentage"`
	PackageFilesSyncedInPercentage                  string            `json:"package_files_synced_in_percentage"`
	PackageFilesVerifiedInPercentage                string            `json:"package_files_verified_in_percentage"`
	TerraformStateVersionsSyncedInPercentage        string            `json:"terraform_state_versions_synced_in_percentage"`
	TerraformStateVersionsVerifiedInPercentage      string            `json:"terraform_state_versions_verified_in_percentage"`
	SnippetRepositoriesSyncedInPercentage           string            `json:"snippet_repositories_synced_in_percentage"`
	SnippetRepositoriesVerifiedInPercentage         string            `json:"snippet_repositories_verified_in_percentage"`
	GroupWikiRepositoriesSyncedInPercentage         string            `json:"group_wiki_repositories_synced_in_percentage"`
	GroupWikiRepositoriesVerifiedInPercentage       string            `json:"group_wiki_repositories_verified_in_percentage"`
	PipelineArtifactsSyncedInPercentage             string            `json:"pipeline_artifacts_synced_in_percentage"`
	PipelineArtifactsVerifiedInPercentage           string            `json:"pipeline_artifacts_verified_in_percentage"`
	PagesDeploymentsSyncedInPercentage              string            `json:"pages_deployments_synced_in_percentage"`
	PagesDeploymentsVerifiedInPercentage            string            `json:"pages_deployments_verified_in_percentage"`
	UploadsSyncedInPercentage                       string            `json:"uploads_synced_in_percentage"`
	UploadsVerifiedInPercentage                     string            `json:"uploads_verified_in_percentage"`
	JobArtifactsSyncedInPercentage                  string            `json:"job_artifacts_synced_in_percentage"`
	JobArtifactsVerifiedInPercentage                string            `json:"job_artifacts_verified_in_percentage"`
	CISecureFilesSyncedInPercentage                 string            `json:"ci_secure_files_synced_in_percentage"`
	CISecureFilesVerifiedInPercentage               string            `json:"ci_secure_files_verified_in_percentage"`
	ContainerRepositoriesSyncedInPercentage         string            `json:"container_repositories_synced_in_percentage"`
	ContainerRepositoriesVerifiedInPercentage       string            `json:"container_repositories_verified_in_percentage"`
	DependencyProxyBlobsSyncedInPercentage          string            `json:"dependency_proxy_blobs_synced_in_percentage"`
	DependencyProxyBlobsVerifiedInPercentage        string            `json:"dependency_proxy_blobs_verified_in_percentage"`
	DependencyProxyManifestsSyncedInPercentage      string            `json:"dependency_proxy_manifests_synced_in_percentage"`
	DependencyProxyManifestsVerifiedInPercentage    string            `json:"dependency_proxy_manifests_verified_in_percentage"`
	ProjectWikiRepositoriesSyncedInPercentage       string            `json:"project_wiki_repositories_synced_in_percentage"`
	ProjectWikiRepositoriesVerifiedInPercentage     string            `json:"project_wiki_repositories_verified_in_percentage"`
	ReplicationSlotsCount                           int               `json:"replication_slots_count"`
	ReplicationSlotsUsedCount                       int               `json:"replication_slots_used_count"`
	Healthy                                         bool              `json:"healthy"`
	Health                                          string            `json:"health"`
	HealthStatus                                    string            `json:"health_status"`
	MissingOAuthApplication                         bool              `json:"missing_oauth_application"`
	DBReplicationLagSeconds                         int               `json:"db_replication_lag_seconds"`
	ReplicationSlotsMaxRetainedWalBytes             int               `json:"replication_slots_max_retained_wal_bytes"`
	RepositoriesCheckedCount                        int               `json:"repositories_checked_count"`
	RepositoriesCheckedFailedCount                  int               `json:"repositories_checked_failed_count"`
	LastEventID                                     int               `json:"last_event_id"`
	LastEventTimestamp                              int               `json:"last_event_timestamp"`
	CursorLastEventID                               int               `json:"cursor_last_event_id"`
	CursorLastEventTimestamp                        int               `json:"cursor_last_event_timestamp"`
	LastSuccessfulStatusCheckTimestamp              int               `json:"last_successful_status_check_timestamp"`
	Version                                         string            `json:"version"`
	Revision                                        string            `json:"revision"`
	SelectiveSyncType                               string            `json:"selective_sync_type"`
	Namespaces                                      []string          `json:"namespaces"`
	UpdatedAt                                       time.Time         `json:"updated_at"`
	StorageShardsMatch                              bool              `json:"storage_shards_match"`
	Links                                           GeoSiteStatusLink `json:"_links"`
}

GeoSiteStatus represents the status of Geo Site.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#retrieve-status-about-all-geo-sites

type GeoSiteStatusLink struct {
	Self string `json:"self"`
	Site string `json:"site"`
}

GeoSiteStatus represents the status of Geo Site.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#retrieve-status-about-all-geo-sites

type GeoSitesService added in v0.128.0

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

GeoSitesService handles communication with Geo Sites related methods of GitLab API.

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

func (*GeoSitesService) CreateGeoSite added in v0.128.0

func (s *GeoSitesService) CreateGeoSite(opt *CreateGeoSitesOptions, options ...RequestOptionFunc) (*GeoSite, *Response, error)

CreateGeoSite creates a new Geo Site.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#create-a-new-geo-site

func (*GeoSitesService) DeleteGeoSite added in v0.128.0

func (s *GeoSitesService) DeleteGeoSite(id int, options ...RequestOptionFunc) (*Response, error)

DeleteGeoSite removes the Geo site.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#delete-a-geo-site

func (*GeoSitesService) EditGeoSite added in v0.128.0

func (s *GeoSitesService) EditGeoSite(id int, opt *EditGeoSiteOptions, options ...RequestOptionFunc) (*GeoSite, *Response, error)

EditGeoSite updates settings of an existing Geo site.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#edit-a-geo-site

func (*GeoSitesService) GetGeoSite added in v0.128.0

func (s *GeoSitesService) GetGeoSite(id int, options ...RequestOptionFunc) (*GeoSite, *Response, error)

GetGeoSite gets a specific geo site.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#retrieve-configuration-about-a-specific-geo-site

func (*GeoSitesService) GetStatusOfGeoSite added in v0.128.0

func (s *GeoSitesService) GetStatusOfGeoSite(id int, options ...RequestOptionFunc) (*GeoSiteStatus, *Response, error)

GetStatusOfGeoSite get the of status of a specific Geo Sites.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#retrieve-status-about-a-specific-geo-site

func (*GeoSitesService) ListGeoSites added in v0.128.0

func (s *GeoSitesService) ListGeoSites(opt *ListGeoSitesOptions, options ...RequestOptionFunc) ([]*GeoSite, *Response, error)

ListGeoSites gets a list of geo sites.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#retrieve-configuration-about-all-geo-sites

func (*GeoSitesService) ListStatusOfAllGeoSites added in v0.128.0

func (s *GeoSitesService) ListStatusOfAllGeoSites(opt *ListStatusOfAllGeoSitesOptions, options ...RequestOptionFunc) ([]*GeoSiteStatus, *Response, error)

ListStatusOfAllGeoSites get the list of status of all Geo Sites.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#retrieve-status-about-all-geo-sites

func (*GeoSitesService) RepairGeoSite added in v0.128.0

func (s *GeoSitesService) RepairGeoSite(id int, options ...RequestOptionFunc) (*GeoSite, *Response, error)

RepairGeoSite to repair the OAuth authentication of a Geo site.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#repair-a-geo-site

type GeoSitesServiceInterface added in v0.128.0

type GeoSitesServiceInterface interface {
	CreateGeoSite(*CreateGeoSitesOptions, ...RequestOptionFunc) (*GeoSite, *Response, error)
	ListGeoSites(*ListGeoSitesOptions, ...RequestOptionFunc) ([]*GeoSite, *Response, error)
	GetGeoSite(int, ...RequestOptionFunc) (*GeoSite, *Response, error)
	EditGeoSite(int, *EditGeoSiteOptions, ...RequestOptionFunc) (*GeoSite, *Response, error)
	DeleteGeoSite(int, ...RequestOptionFunc) (*Response, error)
	RepairGeoSite(int, ...RequestOptionFunc) (*GeoSite, *Response, error)
	ListStatusOfAllGeoSites(*ListStatusOfAllGeoSitesOptions, ...RequestOptionFunc) ([]*GeoSiteStatus, *Response, error)
	GetStatusOfGeoSite(int, ...RequestOptionFunc) (*GeoSiteStatus, *Response, error)
}

type GetAllImpersonationTokensOptions added in v0.6.0

type GetAllImpersonationTokensOptions struct {
	ListOptions
	State *string `url:"state,omitempty" json:"state,omitempty"`
}

GetAllImpersonationTokensOptions represents the available GetAllImpersonationTokens() options.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#list-all-impersonation-tokens-for-a-user

type GetAvatarOptions added in v0.116.0

type GetAvatarOptions struct {
	Email *string `url:"email,omitempty" json:"email,omitempty"`
	Size  *int    `url:"size,omitempty" json:"size,omitempty"`
}

GetAvatarOptions represents the available GetAvatar() options.

GitLab API docs: https://docs.gitlab.com/api/avatar/#get-details-on-an-account-avatar

type GetCommitCommentsOptions added in v0.8.1

type GetCommitCommentsOptions ListOptions

GetCommitCommentsOptions represents the available GetCommitComments() options.

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

type GetCommitDiffOptions added in v0.8.1

type GetCommitDiffOptions struct {
	ListOptions
	Unidiff *bool `url:"unidiff,omitempty" json:"unidiff,omitempty"`
}

GetCommitDiffOptions represents the available GetCommitDiff() options.

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

type GetCommitOptions added in v0.116.0

type GetCommitOptions struct {
	Stats *bool `url:"stats,omitempty" json:"stats,omitempty"`
}

GetCommitOptions represents the available GetCommit() options.

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

type GetCommitRefsOptions added in v0.10.8

type GetCommitRefsOptions struct {
	ListOptions
	Type *string `url:"type,omitempty" json:"type,omitempty"`
}

GetCommitRefsOptions represents the available GetCommitRefs() options.

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

type GetCommitStatusesOptions

type GetCommitStatusesOptions struct {
	ListOptions
	Ref   *string `url:"ref,omitempty" json:"ref,omitempty"`
	Stage *string `url:"stage,omitempty" json:"stage,omitempty"`
	Name  *string `url:"name,omitempty" json:"name,omitempty"`
	All   *bool   `url:"all,omitempty" json:"all,omitempty"`
}

GetCommitStatusesOptions represents the available GetCommitStatuses() options.

GitLab API docs: https://docs.gitlab.com/api/commits/#list-the-statuses-of-a-commit

type GetCurrentPlanLimitsOptions added in v0.116.0

type GetCurrentPlanLimitsOptions struct {
	PlanName *string `url:"plan_name,omitempty" json:"plan_name,omitempty"`
}

GetCurrentPlanLimitsOptions represents the available GetCurrentPlanLimits() options.

GitLab API docs: https://docs.gitlab.com/api/plan_limits/#get-current-plan-limits

type GetDORAMetricsOptions added in v0.116.0

type GetDORAMetricsOptions struct {
	Metric           *DORAMetricType     `url:"metric,omitempty" json:"metric,omitempty"`
	EndDate          *ISOTime            `url:"end_date,omitempty" json:"end_date,omitempty"`
	EnvironmentTiers *[]string           `url:"environment_tiers,comma,omitempty" json:"environment_tiers,omitempty"`
	Interval         *DORAMetricInterval `url:"interval,omitempty" json:"interval,omitempty"`
	StartDate        *ISOTime            `url:"start_date,omitempty" json:"start_date,omitempty"`
}

GetDORAMetricsOptions represent the request body options for getting DORA metrics

GitLab API docs: https://docs.gitlab.com/api/dora/metrics/

type GetFileBlameOptions added in v0.116.0

type GetFileBlameOptions struct {
	Ref        *string `url:"ref,omitempty" json:"ref,omitempty"`
	RangeStart *int    `url:"range[start],omitempty" json:"range[start],omitempty"`
	RangeEnd   *int    `url:"range[end],omitempty" json:"range[end],omitempty"`
}

GetFileBlameOptions represents the available GetFileBlame() options.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-file-blame-from-repository

type GetFileMetaDataOptions added in v0.116.0

type GetFileMetaDataOptions struct {
	Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
}

GetFileMetaDataOptions represents the available GetFileMetaData() options.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-file-from-repository

type GetFileOptions

type GetFileOptions struct {
	Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
}

GetFileOptions represents the available GetFile() options.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-file-from-repository

type GetGroupIssuesStatisticsOptions added in v0.116.0

type GetGroupIssuesStatisticsOptions struct {
	Labels           *LabelOptions `url:"labels,omitempty" json:"labels,omitempty"`
	IIDs             *[]int        `url:"iids[],omitempty" json:"iids,omitempty"`
	Milestone        *string       `url:"milestone,omitempty" json:"milestone,omitempty"`
	Scope            *string       `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID         *int          `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername   *string       `url:"author_username,omitempty" json:"author_username,omitempty"`
	AssigneeID       *int          `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	AssigneeUsername *[]string     `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
	MyReactionEmoji  *string       `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
	Search           *string       `url:"search,omitempty" json:"search,omitempty"`
	CreatedAfter     *time.Time    `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore    *time.Time    `url:"created_before,omitempty" json:"created_before,omitempty"`
	UpdatedAfter     *time.Time    `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore    *time.Time    `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	Confidential     *bool         `url:"confidential,omitempty" json:"confidential,omitempty"`
}

GetGroupIssuesStatisticsOptions represents the available GetGroupIssuesStatistics() options.

GitLab API docs: https://docs.gitlab.com/api/issues_statistics/#get-group-issues-statistics

type GetGroupMilestoneBurndownChartEventsOptions added in v0.116.0

type GetGroupMilestoneBurndownChartEventsOptions ListOptions

GetGroupMilestoneBurndownChartEventsOptions represents the available GetGroupMilestoneBurndownChartEventsOptions() options.

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

type GetGroupMilestoneIssuesOptions added in v0.10.0

type GetGroupMilestoneIssuesOptions ListOptions

GetGroupMilestoneIssuesOptions represents the available GetGroupMilestoneIssues() options.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#get-all-issues-assigned-to-a-single-milestone

type GetGroupMilestoneMergeRequestsOptions added in v0.10.0

type GetGroupMilestoneMergeRequestsOptions ListOptions

GetGroupMilestoneMergeRequestsOptions represents the available GetGroupMilestoneMergeRequests() options.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#get-all-merge-requests-assigned-to-a-single-milestone

type GetGroupOptions added in v0.116.0

type GetGroupOptions struct {
	ListOptions
	WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`

	// Deprecated: will be removed in v5 of the API, use ListGroupProjects instead
	WithProjects *bool `url:"with_projects,omitempty" json:"with_projects,omitempty"`
}

GetGroupOptions represents the available GetGroup() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#get-a-single-group

type GetGroupVariableOptions added in v0.116.0

type GetGroupVariableOptions struct {
	Filter *VariableFilter `url:"filter,omitempty" json:"filter,omitempty"`
}

GetGroupVariableOptions represents the available GetVariable() options.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#show-variable-details

type GetGroupWikiPageOptions added in v0.116.0

type GetGroupWikiPageOptions struct {
	RenderHTML *bool   `url:"render_html,omitempty" json:"render_html,omitempty"`
	Version    *string `url:"version,omitempty" json:"version,omitempty"`
}

GetGroupWikiPageOptions represents options to GetGroupWikiPage

GitLab API docs: https://docs.gitlab.com/api/group_wikis/#get-a-wiki-page

type GetIssueBoardListsOptions added in v0.8.1

type GetIssueBoardListsOptions ListOptions

GetIssueBoardListsOptions represents the available GetIssueBoardLists() options.

GitLab API docs: https://docs.gitlab.com/api/boards/#list-board-lists-in-a-project-issue-board

type GetIssuesClosedOnMergeOptions added in v0.8.1

type GetIssuesClosedOnMergeOptions ListOptions

GetIssuesClosedOnMergeOptions represents the available GetIssuesClosedOnMerge() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-issues-that-close-on-merge

type GetIssuesStatisticsOptions added in v0.116.0

type GetIssuesStatisticsOptions struct {
	Labels           *LabelOptions `url:"labels,omitempty" json:"labels,omitempty"`
	Milestone        *string       `url:"milestone,omitempty" json:"milestone,omitempty"`
	Scope            *string       `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID         *int          `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername   *string       `url:"author_username,omitempty" json:"author_username,omitempty"`
	AssigneeID       *int          `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	AssigneeUsername *[]string     `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
	MyReactionEmoji  *string       `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
	IIDs             *[]int        `url:"iids[],omitempty" json:"iids,omitempty"`
	Search           *string       `url:"search,omitempty" json:"search,omitempty"`
	In               *string       `url:"in,omitempty" json:"in,omitempty"`
	CreatedAfter     *time.Time    `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore    *time.Time    `url:"created_before,omitempty" json:"created_before,omitempty"`
	UpdatedAfter     *time.Time    `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore    *time.Time    `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	Confidential     *bool         `url:"confidential,omitempty" json:"confidential,omitempty"`
}

GetIssuesStatisticsOptions represents the available GetIssuesStatistics() options.

GitLab API docs: https://docs.gitlab.com/api/issues_statistics/#get-issues-statistics

type GetJobTokenAllowlistGroupsOptions added in v0.116.0

type GetJobTokenAllowlistGroupsOptions struct {
	ListOptions
}

GetJobTokenAllowlistGroupsOptions represents the available GetJobTokenAllowlistGroups() options.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#get-a-projects-cicd-job-token-allowlist-of-groups

type GetJobTokenInboundAllowListOptions added in v0.116.0

type GetJobTokenInboundAllowListOptions struct {
	ListOptions
}

GetJobTokenInboundAllowListOptions represents the available GetJobTokenInboundAllowList() options.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#get-a-projects-cicd-job-token-inbound-allowlist

type GetJobTokensJobOptions added in v0.116.0

type GetJobTokensJobOptions struct {
	JobToken *string `url:"job_token,omitempty" json:"job_token,omitempty"`
}

GetJobTokensJobOptions represents the available GetJobTokensJob() options.

GitLab API docs: https://docs.gitlab.com/api/jobs/#get-job-tokens-job

type GetKeyByFingerprintOptions added in v0.116.0

type GetKeyByFingerprintOptions struct {
	Fingerprint string `url:"fingerprint" json:"fingerprint"`
}

GetKeyByFingerprintOptions represents the available GetKeyByFingerprint() options.

GitLab API docs: https://docs.gitlab.com/api/keys/#get-user-by-fingerprint-of-ssh-key https://docs.gitlab.com/api/keys/#get-user-by-deploy-key-fingerprint

type GetLatestPipelineOptions added in v0.116.0

type GetLatestPipelineOptions struct {
	Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
}

GetLatestPipelineOptions represents the available GetLatestPipeline() options.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#get-the-latest-pipeline

type GetLicenseTemplateOptions added in v0.11.1

type GetLicenseTemplateOptions struct {
	Project  *string `url:"project,omitempty" json:"project,omitempty"`
	Fullname *string `url:"fullname,omitempty" json:"fullname,omitempty"`
}

GetLicenseTemplateOptions represents the available GetLicenseTemplate() options.

GitLab API docs: https://docs.gitlab.com/api/templates/licenses/#single-license-template

type GetMergeRequestChangesOptions added in v0.116.0

type GetMergeRequestChangesOptions struct {
	AccessRawDiffs *bool `url:"access_raw_diffs,omitempty" json:"access_raw_diffs,omitempty"`
	Unidiff        *bool `url:"unidiff,omitempty" json:"unidiff,omitempty"`
}

GetMergeRequestChangesOptions represents the available GetMergeRequestChanges() options. Deprecated: This endpoint has been replaced by MergeRequestsService.ListMergeRequestDiffs()

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-merge-request-changes

type GetMergeRequestCommitsOptions added in v0.8.1

type GetMergeRequestCommitsOptions ListOptions

GetMergeRequestCommitsOptions represents the available GetMergeRequestCommits() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-merge-request-commits

type GetMergeRequestDiffVersionsOptions added in v0.8.1

type GetMergeRequestDiffVersionsOptions ListOptions

GetMergeRequestDiffVersionsOptions represents the available GetMergeRequestDiffVersions() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-merge-request-diff-versions

type GetMergeRequestsOptions added in v0.116.0

type GetMergeRequestsOptions struct {
	RenderHTML                  *bool `url:"render_html,omitempty" json:"render_html,omitempty"`
	IncludeDivergedCommitsCount *bool `url:"include_diverged_commits_count,omitempty" json:"include_diverged_commits_count,omitempty"`
	IncludeRebaseInProgress     *bool `url:"include_rebase_in_progress,omitempty" json:"include_rebase_in_progress,omitempty"`
}

GetMergeRequestsOptions represents the available GetMergeRequests() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-mr

type GetMilestoneIssuesOptions

type GetMilestoneIssuesOptions ListOptions

GetMilestoneIssuesOptions represents the available GetMilestoneIssues() options.

GitLab API docs: https://docs.gitlab.com/api/milestones/#get-all-issues-assigned-to-a-single-milestone

type GetMilestoneMergeRequestsOptions added in v0.10.0

type GetMilestoneMergeRequestsOptions ListOptions

GetMilestoneMergeRequestsOptions represents the available GetMilestoneMergeRequests() options.

GitLab API docs: https://docs.gitlab.com/api/milestones/#get-all-merge-requests-assigned-to-a-single-milestone

type GetProjectApprovalRulesListsOptions added in v0.116.0

type GetProjectApprovalRulesListsOptions ListOptions

GetProjectApprovalRulesListsOptions represents the available GetProjectApprovalRules() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#get-all-approval-rules-for-project

type GetProjectIssuesStatisticsOptions added in v0.116.0

type GetProjectIssuesStatisticsOptions struct {
	IIDs             *[]int        `url:"iids[],omitempty" json:"iids,omitempty"`
	Labels           *LabelOptions `url:"labels,omitempty" json:"labels,omitempty"`
	Milestone        *string       `url:"milestone,omitempty" json:"milestone,omitempty"`
	Scope            *string       `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID         *int          `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername   *string       `url:"author_username,omitempty" json:"author_username,omitempty"`
	AssigneeID       *int          `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	AssigneeUsername *[]string     `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
	MyReactionEmoji  *string       `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
	Search           *string       `url:"search,omitempty" json:"search,omitempty"`
	CreatedAfter     *time.Time    `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore    *time.Time    `url:"created_before,omitempty" json:"created_before,omitempty"`
	UpdatedAfter     *time.Time    `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore    *time.Time    `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	Confidential     *bool         `url:"confidential,omitempty" json:"confidential,omitempty"`
}

GetProjectIssuesStatisticsOptions represents the available GetProjectIssuesStatistics() options.

GitLab API docs: https://docs.gitlab.com/api/issues_statistics/#get-project-issues-statistics

type GetProjectOptions added in v0.116.0

type GetProjectOptions struct {
	License              *bool `url:"license,omitempty" json:"license,omitempty"`
	Statistics           *bool `url:"statistics,omitempty" json:"statistics,omitempty"`
	WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
}

GetProjectOptions represents the available GetProject() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#get-a-single-project

type GetProjectVariableOptions added in v0.116.0

type GetProjectVariableOptions struct {
	Filter *VariableFilter `url:"filter,omitempty" json:"filter,omitempty"`
}

GetProjectVariableOptions represents the available GetVariable() options.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#get-a-single-variable

type GetRawFileOptions added in v0.6.0

type GetRawFileOptions struct {
	Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
	LFS *bool   `url:"lfs,omitempty" json:"lfs,omitempty"`
}

GetRawFileOptions represents the available GetRawFile() options.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-raw-file-from-repository

type GetRecentlyAddedMembersCountOptions added in v0.128.0

type GetRecentlyAddedMembersCountOptions struct {
	GroupPath string `url:"group_path" json:"group_path"`
}

GetRecentlyAddedMembersCountOptions represents the available GetRecentlyAddedMembersCount() options.

GitLab API docs: https://docs.gitlab.com/api/group_activity_analytics/#get-count-of-members-recently-added-to-group

type GetRecentlyCreatedIssuesCountOptions added in v0.128.0

type GetRecentlyCreatedIssuesCountOptions struct {
	GroupPath string `url:"group_path" json:"group_path"`
}

GetRecentlyCreatedIssuesCountOptions represents the available GetRecentlyCreatedIssuesCount() options.

GitLab API docs: https://docs.gitlab.com/api/group_activity_analytics/#get-count-of-recently-created-issues-for-group

type GetRecentlyCreatedMergeRequestsCountOptions added in v0.128.0

type GetRecentlyCreatedMergeRequestsCountOptions struct {
	GroupPath string `url:"group_path" json:"group_path"`
}

GetRecentlyCreatedMergeRequestsCountOptions represents the available GetRecentlyCreatedMergeRequestsCount() options.

GitLab API docs: https://docs.gitlab.com/api/group_activity_analytics/#get-count-of-recently-created-merge-requests-for-group

type GetSingleMergeRequestDiffVersionOptions added in v0.116.0

type GetSingleMergeRequestDiffVersionOptions struct {
	Unidiff *bool `url:"unidiff,omitempty" json:"unidiff,omitempty"`
}

GetSingleMergeRequestDiffVersionOptions represents the available GetSingleMergeRequestDiffVersion() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-a-single-merge-request-diff-version

type GetSingleRegistryRepositoryOptions added in v0.116.0

type GetSingleRegistryRepositoryOptions struct {
	Tags      *bool `url:"tags,omitempty" json:"tags,omitempty"`
	TagsCount *bool `url:"tags_count,omitempty" json:"tags_count,omitempty"`
}

GetSingleRegistryRepositoryOptions represents the available GetSingleRegistryRepository() options.

GitLab API docs: https://docs.gitlab.com/api/container_registry/#get-details-of-a-single-repository

type GetUserActivitiesOptions added in v0.7.4

type GetUserActivitiesOptions struct {
	ListOptions
	From *ISOTime `url:"from,omitempty" json:"from,omitempty"`
}

GetUserActivitiesOptions represents the options for GetUserActivities

GitLap API docs: https://docs.gitlab.com/api/users/#list-a-users-activity

type GetUserMembershipOptions added in v0.116.0

type GetUserMembershipOptions struct {
	ListOptions
	Type *string `url:"type,omitempty" json:"type,omitempty"`
}

GetUserMembershipOptions represents the options available to query user memberships.

GitLab API docs: https://docs.gitlab.com/api/users/#list-projects-and-groups-that-a-user-is-a-member-of

type GetUsersOptions added in v0.116.0

type GetUsersOptions struct {
	WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
}

GetUsersOptions represents the available GetUser() options.

GitLab API docs: https://docs.gitlab.com/api/users/#get-a-single-user

type GetWikiPageOptions added in v0.116.0

type GetWikiPageOptions struct {
	RenderHTML *bool   `url:"render_html,omitempty" json:"render_html,omitempty"`
	Version    *string `url:"version,omitempty" json:"version,omitempty"`
}

GetWikiPageOptions represents options to GetWikiPage

GitLab API docs: https://docs.gitlab.com/api/wikis/#get-a-wiki-page

type GitHubImport added in v0.116.0

type GitHubImport struct {
	ID                    int    `json:"id"`
	Name                  string `json:"name"`
	FullPath              string `json:"full_path"`
	FullName              string `json:"full_name"`
	RefsUrl               string `json:"refs_url"`
	ImportSource          string `json:"import_source"`
	ImportStatus          string `json:"import_status"`
	HumanImportStatusName string `json:"human_import_status_name"`
	ProviderLink          string `json:"provider_link"`
	RelationType          string `json:"relation_type"`
	ImportWarning         string `json:"import_warning"`
}

GitHubImport represents the response from an import from GitHub.

GitLab API docs: https://docs.gitlab.com/api/import/#import-repository-from-github

func (GitHubImport) String added in v0.116.0

func (s GitHubImport) String() string

type GitIgnoreTemplate added in v0.9.0

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

GitIgnoreTemplate represents a GitLab gitignore template.

GitLab API docs: https://docs.gitlab.com/api/templates/gitignores/

type GitIgnoreTemplateListItem added in v0.116.0

type GitIgnoreTemplateListItem struct {
	Key  string `json:"key"`
	Name string `json:"name"`
}

GitIgnoreTemplateListItem represents a GitLab gitignore template from the list.

GitLab API docs: https://docs.gitlab.com/api/templates/gitignores/

type GitIgnoreTemplatesService added in v0.9.0

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

GitIgnoreTemplatesService handles communication with the gitignore templates related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/templates/gitignores/

func (*GitIgnoreTemplatesService) GetTemplate added in v0.9.0

func (s *GitIgnoreTemplatesService) GetTemplate(key string, options ...RequestOptionFunc) (*GitIgnoreTemplate, *Response, error)

GetTemplate get a git ignore template

GitLab API docs: https://docs.gitlab.com/api/templates/gitignores/#get-a-single-gitignore-template

func (*GitIgnoreTemplatesService) ListTemplates added in v0.9.0

ListTemplates get a list of available git ignore templates

GitLab API docs: https://docs.gitlab.com/api/templates/gitignores/#get-all-gitignore-templates

type GitIgnoreTemplatesServiceInterface added in v0.126.0

type GitIgnoreTemplatesServiceInterface interface {
	ListTemplates(*ListTemplatesOptions, ...RequestOptionFunc) ([]*GitIgnoreTemplateListItem, *Response, error)
	GetTemplate(string, ...RequestOptionFunc) (*GitIgnoreTemplate, *Response, error)
}

GitIgnoreTemplatesServiceInterface defines all the API methods for the GitIgnoreTemplatesService

type GithubService added in v0.116.0

type GithubService struct {
	Service
	Properties *GithubServiceProperties `json:"properties"`
}

GithubService represents Github service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#github

type GithubServiceProperties added in v0.116.0

type GithubServiceProperties struct {
	RepositoryURL string `json:"repository_url"`
	StaticContext bool   `json:"static_context"`
}

GithubServiceProperties represents Github specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#github

type GraphQL added in v0.128.0

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

func (*GraphQL) Do added in v0.128.0

func (g *GraphQL) Do(ctx context.Context, query GraphQLQuery, response any) (*Response, error)

Do sends a GraphQL query and returns the response in the given response argument The response must be JSON serializable. The *Response return value is the HTTP response and must be used to retrieve additional HTTP information, like status codes and also error messages from failed queries.

Example:

var response struct {
	Data struct {
		Project struct {
			ID string `json:"id"`
		} `json:"project"`
	} `json:"data"`
}
_, err := client.GraphQL.Do(context.Background(), GraphQLQuery{Query: `query { project(fullPath: "gitlab-org/gitlab") { id } }`}, &response)

Attention: This API is experimental and may be subject to breaking changes to improve the API in the future.

type GraphQLInterface added in v0.128.0

type GraphQLInterface interface {
	Do(ctx context.Context, query GraphQLQuery, response any) (*Response, error)
}

type GraphQLQuery added in v0.128.0

type GraphQLQuery struct {
	Query string `json:"query"`
}

type GraphQLResponseError added in v0.128.0

type GraphQLResponseError struct {
	Err    error
	Errors GenericGraphQLErrors
}

func (*GraphQLResponseError) Error added in v0.128.0

func (e *GraphQLResponseError) Error() string

type Group

type Group struct {
	ID                              int                        `json:"id"`
	Name                            string                     `json:"name"`
	Path                            string                     `json:"path"`
	Description                     string                     `json:"description"`
	MembershipLock                  bool                       `json:"membership_lock"`
	Visibility                      VisibilityValue            `json:"visibility"`
	LFSEnabled                      bool                       `json:"lfs_enabled"`
	DefaultBranch                   string                     `json:"default_branch"`
	DefaultBranchProtectionDefaults *BranchProtectionDefaults  `json:"default_branch_protection_defaults"`
	AvatarURL                       string                     `json:"avatar_url"`
	WebURL                          string                     `json:"web_url"`
	RequestAccessEnabled            bool                       `json:"request_access_enabled"`
	RepositoryStorage               string                     `json:"repository_storage"`
	FullName                        string                     `json:"full_name"`
	FullPath                        string                     `json:"full_path"`
	FileTemplateProjectID           int                        `json:"file_template_project_id"`
	ParentID                        int                        `json:"parent_id"`
	Statistics                      *Statistics                `json:"statistics"`
	CustomAttributes                []*CustomAttribute         `json:"custom_attributes"`
	ShareWithGroupLock              bool                       `json:"share_with_group_lock"`
	RequireTwoFactorAuth            bool                       `json:"require_two_factor_authentication"`
	TwoFactorGracePeriod            int                        `json:"two_factor_grace_period"`
	ProjectCreationLevel            ProjectCreationLevelValue  `json:"project_creation_level"`
	AutoDevopsEnabled               bool                       `json:"auto_devops_enabled"`
	SubGroupCreationLevel           SubGroupCreationLevelValue `json:"subgroup_creation_level"`
	EmailsEnabled                   bool                       `json:"emails_enabled"`
	MentionsDisabled                bool                       `json:"mentions_disabled"`
	RunnersToken                    string                     `json:"runners_token"`
	SharedRunnersSetting            SharedRunnersSettingValue  `json:"shared_runners_setting"`
	SharedWithGroups                []SharedWithGroup          `json:"shared_with_groups"`
	LDAPCN                          string                     `json:"ldap_cn"`
	LDAPAccess                      AccessLevelValue           `json:"ldap_access"`
	LDAPGroupLinks                  []*LDAPGroupLink           `json:"ldap_group_links"`
	SAMLGroupLinks                  []*SAMLGroupLink           `json:"saml_group_links"`
	SharedRunnersMinutesLimit       int                        `json:"shared_runners_minutes_limit"`
	ExtraSharedRunnersMinutesLimit  int                        `json:"extra_shared_runners_minutes_limit"`
	PreventForkingOutsideGroup      bool                       `json:"prevent_forking_outside_group"`
	MarkedForDeletionOn             *ISOTime                   `json:"marked_for_deletion_on"`
	CreatedAt                       *time.Time                 `json:"created_at"`
	IPRestrictionRanges             string                     `json:"ip_restriction_ranges"`
	AllowedEmailDomainsList         string                     `json:"allowed_email_domains_list"`
	WikiAccessLevel                 AccessControlValue         `json:"wiki_access_level"`

	// Deprecated: will be removed in v5 of the API, use ListGroupProjects instead
	Projects []*Project `json:"projects"`

	// Deprecated: will be removed in v5 of the API, use ListGroupSharedProjects instead
	SharedProjects []*Project `json:"shared_projects"`

	// Deprecated: Use EmailsEnabled instead
	EmailsDisabled bool `json:"emails_disabled"`

	// Deprecated: Use DefaultBranchProtectionDefaults instead
	DefaultBranchProtection int `json:"default_branch_protection"`
}

Group represents a GitLab group.

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

type GroupAccess

type GroupAccess struct {
	AccessLevel       AccessLevelValue       `json:"access_level"`
	NotificationLevel NotificationLevelValue `json:"notification_level"`
}

GroupAccess represents group access.

type GroupAccessLevel added in v0.116.0

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

GroupAccessLevel represents default branch protection defaults access levels.

GitLab API docs: https://docs.gitlab.com/api/groups/#options-for-default_branch_protection_defaults

type GroupAccessToken added in v0.116.0

type GroupAccessToken resourceAccessToken

GroupAccessToken represents a GitLab group access token.

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

func (GroupAccessToken) String added in v0.116.0

func (v GroupAccessToken) String() string

type GroupAccessTokensService added in v0.116.0

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

GroupAccessTokensService handles communication with the groups access tokens related methods of the GitLab API.

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

func (*GroupAccessTokensService) CreateGroupAccessToken added in v0.116.0

func (s *GroupAccessTokensService) CreateGroupAccessToken(gid any, opt *CreateGroupAccessTokenOptions, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)

CreateGroupAccessToken creates a new group access token.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#create-a-group-access-token

func (*GroupAccessTokensService) GetGroupAccessToken added in v0.116.0

func (s *GroupAccessTokensService) GetGroupAccessToken(gid any, id int, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)

GetGroupAccessToken gets a single group access tokens in a group.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#get-details-on-a-group-access-token

func (*GroupAccessTokensService) ListGroupAccessTokens added in v0.116.0

func (s *GroupAccessTokensService) ListGroupAccessTokens(gid any, opt *ListGroupAccessTokensOptions, options ...RequestOptionFunc) ([]*GroupAccessToken, *Response, error)

ListGroupAccessTokens gets a list of all group access tokens in a group.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#list-all-group-access-tokens

func (*GroupAccessTokensService) RevokeGroupAccessToken added in v0.116.0

func (s *GroupAccessTokensService) RevokeGroupAccessToken(gid any, id int, options ...RequestOptionFunc) (*Response, error)

RevokeGroupAccessToken revokes a group access token.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#revoke-a-group-access-token

func (*GroupAccessTokensService) RotateGroupAccessToken added in v0.116.0

func (s *GroupAccessTokensService) RotateGroupAccessToken(gid any, id int, opt *RotateGroupAccessTokenOptions, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)

RotateGroupAccessToken revokes a group access token and returns a new group access token that expires in one week per default.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#rotate-a-group-access-token

func (*GroupAccessTokensService) RotateGroupAccessTokenSelf added in v0.127.0

func (s *GroupAccessTokensService) RotateGroupAccessTokenSelf(gid any, opt *RotateGroupAccessTokenOptions, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)

RotateGroupAccessTokenSelf revokes the group access token used for the request and returns a new group access token that expires in one week per default.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#self-rotate

type GroupAccessTokensServiceInterface added in v0.126.0

type GroupAccessTokensServiceInterface interface {
	ListGroupAccessTokens(gid any, opt *ListGroupAccessTokensOptions, options ...RequestOptionFunc) ([]*GroupAccessToken, *Response, error)
	GetGroupAccessToken(gid any, id int, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)
	CreateGroupAccessToken(gid any, opt *CreateGroupAccessTokenOptions, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)
	RotateGroupAccessToken(gid any, id int, opt *RotateGroupAccessTokenOptions, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)
	RotateGroupAccessTokenSelf(gid any, opt *RotateGroupAccessTokenOptions, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)
	RevokeGroupAccessToken(gid any, id int, options ...RequestOptionFunc) (*Response, error)
}

GroupAccessTokensServiceInterface defines all the API methods for the GroupAccessTokensService

type GroupActivityAnalyticsService added in v0.128.0

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

GroupActivityAnalyticsService handles communication with the group activity analytics related methods of the GitLab API.

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

func (*GroupActivityAnalyticsService) GetRecentlyAddedMembersCount added in v0.128.0

GetRecentlyAddedMembersCount gets the count of recently added members to a group.

GitLab API docs: https://docs.gitlab.com/api/group_activity_analytics/#get-count-of-members-recently-added-to-group

func (*GroupActivityAnalyticsService) GetRecentlyCreatedIssuesCount added in v0.128.0

func (s *GroupActivityAnalyticsService) GetRecentlyCreatedIssuesCount(opt *GetRecentlyCreatedIssuesCountOptions, options ...RequestOptionFunc) (*IssuesCount, *Response, error)

GetRecentlyCreatedIssuesCount gets the count of recently created issues for a group.

GitLab API docs: https://docs.gitlab.com/api/group_activity_analytics/#get-count-of-recently-created-issues-for-group

func (*GroupActivityAnalyticsService) GetRecentlyCreatedMergeRequestsCount added in v0.128.0

GetRecentlyCreatedMergeRequestsCount gets the count of recently created merge requests for a group.

GitLab API docs: https://docs.gitlab.com/api/group_activity_analytics/#get-count-of-recently-created-merge-requests-for-group

type GroupActivityAnalyticsServiceInterface added in v0.128.0

type GroupActivityAnalyticsServiceInterface interface {
	GetRecentlyCreatedIssuesCount(opt *GetRecentlyCreatedIssuesCountOptions, options ...RequestOptionFunc) (*IssuesCount, *Response, error)
	GetRecentlyCreatedMergeRequestsCount(opt *GetRecentlyCreatedMergeRequestsCountOptions, options ...RequestOptionFunc) (*MergeRequestsCount, *Response, error)
	GetRecentlyAddedMembersCount(opt *GetRecentlyAddedMembersCountOptions, options ...RequestOptionFunc) (*NewMembersCount, *Response, error)
}

type GroupAvatar added in v0.116.0

type GroupAvatar struct {
	Filename string
	Image    io.Reader
}

GroupAvatar represents a GitLab group avatar.

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

func (*GroupAvatar) MarshalJSON added in v0.116.0

func (a *GroupAvatar) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

type GroupBadge added in v0.116.0

type GroupBadge struct {
	ID               int       `json:"id"`
	Name             string    `json:"name"`
	LinkURL          string    `json:"link_url"`
	ImageURL         string    `json:"image_url"`
	RenderedLinkURL  string    `json:"rendered_link_url"`
	RenderedImageURL string    `json:"rendered_image_url"`
	Kind             BadgeKind `json:"kind"`
}

GroupBadge represents a group badge.

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

type GroupBadgePreviewOptions added in v0.116.0

type GroupBadgePreviewOptions 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"`
}

GroupBadgePreviewOptions represents the available PreviewGroupBadge() options.

GitLab API docs: https://docs.gitlab.com/api/group_badges/#preview-a-badge-from-a-group

type GroupBadgesService added in v0.116.0

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

GroupBadgesService handles communication with the group badges

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

func (*GroupBadgesService) AddGroupBadge added in v0.116.0

func (s *GroupBadgesService) AddGroupBadge(gid any, opt *AddGroupBadgeOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error)

AddGroupBadge adds a badge to a group.

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

func (*GroupBadgesService) DeleteGroupBadge added in v0.116.0

func (s *GroupBadgesService) DeleteGroupBadge(gid any, badge int, options ...RequestOptionFunc) (*Response, error)

DeleteGroupBadge removes a badge from a group.

GitLab API docs: https://docs.gitlab.com/api/group_badges/#remove-a-badge-from-a-group

func (*GroupBadgesService) EditGroupBadge added in v0.116.0

func (s *GroupBadgesService) EditGroupBadge(gid any, badge int, opt *EditGroupBadgeOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error)

EditGroupBadge updates a badge of a group.

GitLab API docs: https://docs.gitlab.com/api/group_badges/#edit-a-badge-of-a-group

func (*GroupBadgesService) GetGroupBadge added in v0.116.0

func (s *GroupBadgesService) GetGroupBadge(gid any, badge int, options ...RequestOptionFunc) (*GroupBadge, *Response, error)

GetGroupBadge gets a group badge.

GitLab API docs: https://docs.gitlab.com/api/group_badges/#get-a-badge-of-a-group

func (*GroupBadgesService) ListGroupBadges added in v0.116.0

func (s *GroupBadgesService) ListGroupBadges(gid any, opt *ListGroupBadgesOptions, options ...RequestOptionFunc) ([]*GroupBadge, *Response, error)

ListGroupBadges gets a list of a group badges.

GitLab API docs: https://docs.gitlab.com/api/group_badges/#list-all-badges-of-a-group

func (*GroupBadgesService) PreviewGroupBadge added in v0.116.0

func (s *GroupBadgesService) PreviewGroupBadge(gid any, opt *GroupBadgePreviewOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error)

PreviewGroupBadge returns how the link_url and image_url final URLs would be after resolving the placeholder interpolation.

GitLab API docs: https://docs.gitlab.com/api/group_badges/#preview-a-badge-from-a-group

type GroupBadgesServiceInterface added in v0.126.0

type GroupBadgesServiceInterface interface {
	ListGroupBadges(gid any, opt *ListGroupBadgesOptions, options ...RequestOptionFunc) ([]*GroupBadge, *Response, error)
	GetGroupBadge(gid any, badge int, options ...RequestOptionFunc) (*GroupBadge, *Response, error)
	AddGroupBadge(gid any, opt *AddGroupBadgeOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error)
	EditGroupBadge(gid any, badge int, opt *EditGroupBadgeOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error)
	DeleteGroupBadge(gid any, badge int, options ...RequestOptionFunc) (*Response, error)
	PreviewGroupBadge(gid any, opt *GroupBadgePreviewOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error)
}

GroupBadgesServiceInterface defines all the API methods for the GroupBadgesService

type GroupCluster added in v0.116.0

type GroupCluster struct {
	ID                 int                 `json:"id"`
	Name               string              `json:"name"`
	Domain             string              `json:"domain"`
	CreatedAt          *time.Time          `json:"created_at"`
	Managed            bool                `json:"managed"`
	Enabled            bool                `json:"enabled"`
	ProviderType       string              `json:"provider_type"`
	PlatformType       string              `json:"platform_type"`
	EnvironmentScope   string              `json:"environment_scope"`
	ClusterType        string              `json:"cluster_type"`
	User               *User               `json:"user"`
	PlatformKubernetes *PlatformKubernetes `json:"platform_kubernetes"`
	ManagementProject  *ManagementProject  `json:"management_project"`
	Group              *Group              `json:"group"`
}

GroupCluster represents a GitLab Group Cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

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

func (GroupCluster) String deprecated added in v0.116.0

func (v GroupCluster) String() string

Deprecated: in GitLab 14.5, to be removed in 19.0

type GroupClustersService added in v0.116.0

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

GroupClustersService handles communication with the group clusters related methods of the GitLab API. Deprecated: in GitLab 14.5, to be removed in 19.0

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

func (*GroupClustersService) AddCluster added in v0.116.0

func (s *GroupClustersService) AddCluster(pid any, opt *AddGroupClusterOptions, options ...RequestOptionFunc) (*GroupCluster, *Response, error)

AddCluster adds an existing cluster to the group. Deprecated: in GitLab 14.5, to be removed in 19.0

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

func (*GroupClustersService) DeleteCluster added in v0.116.0

func (s *GroupClustersService) DeleteCluster(pid any, cluster int, options ...RequestOptionFunc) (*Response, error)

DeleteCluster deletes an existing group cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/group_clusters/#delete-group-cluster

func (*GroupClustersService) EditCluster added in v0.116.0

func (s *GroupClustersService) EditCluster(pid any, cluster int, opt *EditGroupClusterOptions, options ...RequestOptionFunc) (*GroupCluster, *Response, error)

EditCluster updates an existing group cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/group_clusters/#edit-group-cluster

func (*GroupClustersService) GetCluster added in v0.116.0

func (s *GroupClustersService) GetCluster(pid any, cluster int, options ...RequestOptionFunc) (*GroupCluster, *Response, error)

GetCluster gets a cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/group_clusters/#get-a-single-group-cluster

func (*GroupClustersService) ListClusters added in v0.116.0

func (s *GroupClustersService) ListClusters(pid any, options ...RequestOptionFunc) ([]*GroupCluster, *Response, error)

ListClusters gets a list of all clusters in a group. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/group_clusters/#list-group-clusters

type GroupClustersServiceInterface deprecated added in v0.126.0

type GroupClustersServiceInterface interface {
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	ListClusters(pid any, options ...RequestOptionFunc) ([]*GroupCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	GetCluster(pid any, cluster int, options ...RequestOptionFunc) (*GroupCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	AddCluster(pid any, opt *AddGroupClusterOptions, options ...RequestOptionFunc) (*GroupCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	EditCluster(pid any, cluster int, opt *EditGroupClusterOptions, options ...RequestOptionFunc) (*GroupCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	DeleteCluster(pid any, cluster int, options ...RequestOptionFunc) (*Response, error)
}

Deprecated: in GitLab 14.5, to be removed in 19.0

type GroupEnvironmentAccessDescription added in v0.116.0

type GroupEnvironmentAccessDescription struct {
	ID                     int              `json:"id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	UserID                 int              `json:"user_id"`
	GroupID                int              `json:"group_id"`
	GroupInheritanceType   int              `json:"group_inheritance_type"`
}

GroupEnvironmentAccessDescription represents the access decription for a group-level protected environment.

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

type GroupEnvironmentAccessOptions added in v0.116.0

type GroupEnvironmentAccessOptions struct {
	AccessLevel          *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	UserID               *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID              *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	GroupInheritanceType *int              `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
}

GroupEnvironmentAccessOptions represents the options for an access decription for a group-level protected environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#protect-a-single-environment

type GroupEnvironmentApprovalRule added in v0.116.0

type GroupEnvironmentApprovalRule struct {
	ID                     int              `json:"id"`
	UserID                 int              `json:"user_id"`
	GroupID                int              `json:"group_id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	RequiredApprovalCount  int              `json:"required_approvals"`
	GroupInheritanceType   int              `json:"group_inheritance_type"`
}

GroupEnvironmentApprovalRule represents the approval rules for a group-level protected environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#protect-a-single-environment

type GroupEnvironmentApprovalRuleOptions added in v0.116.0

type GroupEnvironmentApprovalRuleOptions struct {
	UserID                 *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID                *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	AccessLevel            *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	AccessLevelDescription *string           `url:"access_level_description,omitempty" json:"access_level_description,omitempty"`
	RequiredApprovalCount  *int              `url:"required_approvals,omitempty" json:"required_approvals,omitempty"`
	GroupInheritanceType   *int              `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
}

GroupEnvironmentApprovalRuleOptions represents the approval rules for a group-level protected environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#protect-a-single-environment

type GroupEpicBoard added in v0.116.0

type GroupEpicBoard struct {
	ID     int             `json:"id"`
	Name   string          `json:"name"`
	Group  *Group          `json:"group"`
	Labels []*LabelDetails `json:"labels"`
	Lists  []*BoardList    `json:"lists"`
}

GroupEpicBoard represents a GitLab group epic board.

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

func (GroupEpicBoard) String added in v0.116.0

func (b GroupEpicBoard) String() string

type GroupEpicBoardsService added in v0.116.0

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

GroupEpicBoardsService handles communication with the group epic board related methods of the GitLab API.

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

func (*GroupEpicBoardsService) GetGroupEpicBoard added in v0.116.0

func (s *GroupEpicBoardsService) GetGroupEpicBoard(gid any, board int, options ...RequestOptionFunc) (*GroupEpicBoard, *Response, error)

GetGroupEpicBoard gets a single epic board of a group.

GitLab API docs: https://docs.gitlab.com/api/group_epic_boards/#single-group-epic-board

func (*GroupEpicBoardsService) ListGroupEpicBoards added in v0.116.0

func (s *GroupEpicBoardsService) ListGroupEpicBoards(gid any, opt *ListGroupEpicBoardsOptions, options ...RequestOptionFunc) ([]*GroupEpicBoard, *Response, error)

ListGroupEpicBoards gets a list of all epic boards in a group.

GitLab API docs: https://docs.gitlab.com/api/group_epic_boards/#list-all-epic-boards-in-a-group

type GroupEpicBoardsServiceInterface added in v0.126.0

type GroupEpicBoardsServiceInterface interface {
	ListGroupEpicBoards(gid any, opt *ListGroupEpicBoardsOptions, options ...RequestOptionFunc) ([]*GroupEpicBoard, *Response, error)
	GetGroupEpicBoard(gid any, board int, options ...RequestOptionFunc) (*GroupEpicBoard, *Response, error)
}

type GroupHook added in v0.116.0

type GroupHook struct {
	ID                        int                 `json:"id"`
	URL                       string              `json:"url"`
	Name                      string              `json:"name"`
	Description               string              `json:"description"`
	CreatedAt                 *time.Time          `json:"created_at"`
	PushEvents                bool                `json:"push_events"`
	TagPushEvents             bool                `json:"tag_push_events"`
	MergeRequestsEvents       bool                `json:"merge_requests_events"`
	RepositoryUpdateEvents    bool                `json:"repository_update_events"`
	EnableSSLVerification     bool                `json:"enable_ssl_verification"`
	AlertStatus               string              `json:"alert_status"`
	PushEventsBranchFilter    string              `json:"push_events_branch_filter"`
	BranchFilterStrategy      string              `json:"branch_filter_strategy"`
	CustomWebhookTemplate     string              `json:"custom_webhook_template"`
	CustomHeaders             []*HookCustomHeader `url:"custom_headers,omitempty" json:"custom_headers,omitempty"`
	GroupID                   int                 `json:"group_id"`
	IssuesEvents              bool                `json:"issues_events"`
	ConfidentialIssuesEvents  bool                `json:"confidential_issues_events"`
	NoteEvents                bool                `json:"note_events"`
	ConfidentialNoteEvents    bool                `json:"confidential_note_events"`
	PipelineEvents            bool                `json:"pipeline_events"`
	WikiPageEvents            bool                `json:"wiki_page_events"`
	JobEvents                 bool                `json:"job_events"`
	DeploymentEvents          bool                `json:"deployment_events"`
	FeatureFlagEvents         bool                `json:"feature_flag_events"`
	ReleasesEvents            bool                `json:"releases_events"`
	SubGroupEvents            bool                `json:"subgroup_events"`
	EmojiEvents               bool                `json:"emoji_events"`
	ResourceAccessTokenEvents bool                `json:"resource_access_token_events"`
	MemberEvents              bool                `json:"member_events"`
}

GroupHook represents a GitLab group hook.

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

type GroupHookTrigger added in v0.116.0

type GroupHookTrigger string

GroupHookTrigger represents the type of event to trigger for a group hook test.

const (
	GroupHookTriggerPush                GroupHookTrigger = "push_events"
	GroupHookTriggerTagPush             GroupHookTrigger = "tag_push_events"
	GroupHookTriggerIssue               GroupHookTrigger = "issues_events"
	GroupHookTriggerConfidentialIssue   GroupHookTrigger = "confidential_issues_events"
	GroupHookTriggerNote                GroupHookTrigger = "note_events"
	GroupHookTriggerMergeRequest        GroupHookTrigger = "merge_requests_events"
	GroupHookTriggerJob                 GroupHookTrigger = "job_events"
	GroupHookTriggerPipeline            GroupHookTrigger = "pipeline_events"
	GroupHookTriggerWikiPage            GroupHookTrigger = "wiki_page_events"
	GroupHookTriggerRelease             GroupHookTrigger = "releases_events"
	GroupHookTriggerEmoji               GroupHookTrigger = "emoji_events"
	GroupHookTriggerResourceAccessToken GroupHookTrigger = "resource_access_token_events"
)

List of available group hook trigger types.

type GroupImportExportService added in v0.116.0

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

GroupImportExportService handles communication with the group import export related methods of the GitLab API.

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

func (*GroupImportExportService) ExportDownload added in v0.116.0

func (s *GroupImportExportService) ExportDownload(gid any, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

ExportDownload downloads the finished export.

GitLab API docs: https://docs.gitlab.com/api/group_import_export/#export-download

func (*GroupImportExportService) ImportFile added in v0.116.0

ImportFile imports a file.

GitLab API docs: https://docs.gitlab.com/api/group_import_export/#import-a-file

func (*GroupImportExportService) ScheduleExport added in v0.116.0

func (s *GroupImportExportService) ScheduleExport(gid any, options ...RequestOptionFunc) (*Response, error)

ScheduleExport starts a new group export.

GitLab API docs: https://docs.gitlab.com/api/group_import_export/#schedule-new-export

type GroupImportExportServiceInterface added in v0.126.0

type GroupImportExportServiceInterface interface {
	ScheduleExport(gid any, options ...RequestOptionFunc) (*Response, error)
	ExportDownload(gid any, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	ImportFile(opt *GroupImportFileOptions, options ...RequestOptionFunc) (*Response, error)
}

type GroupImportFileOptions added in v0.116.0

type GroupImportFileOptions struct {
	Name     *string `url:"name,omitempty" json:"name,omitempty"`
	Path     *string `url:"path,omitempty" json:"path,omitempty"`
	File     *string `url:"file,omitempty" json:"file,omitempty"`
	ParentID *int    `url:"parent_id,omitempty" json:"parent_id,omitempty"`
}

GroupImportFileOptions represents the available ImportFile() options.

GitLab API docs: https://docs.gitlab.com/api/group_import_export/#import-a-file

type GroupIssueBoard added in v0.11.0

type GroupIssueBoard struct {
	ID        int           `json:"id"`
	Name      string        `json:"name"`
	Group     *Group        `json:"group"`
	Milestone *Milestone    `json:"milestone"`
	Labels    []*GroupLabel `json:"labels"`
	Lists     []*BoardList  `json:"lists"`
}

GroupIssueBoard represents a GitLab group issue board.

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

func (GroupIssueBoard) String added in v0.11.0

func (b GroupIssueBoard) String() string

type GroupIssueBoardsService added in v0.11.0

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

GroupIssueBoardsService handles communication with the group issue board related methods of the GitLab API.

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

func (*GroupIssueBoardsService) CreateGroupIssueBoard added in v0.116.0

func (s *GroupIssueBoardsService) CreateGroupIssueBoard(gid any, opt *CreateGroupIssueBoardOptions, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)

CreateGroupIssueBoard creates a new issue board.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#create-a-group-issue-board

func (*GroupIssueBoardsService) CreateGroupIssueBoardList added in v0.11.0

func (s *GroupIssueBoardsService) CreateGroupIssueBoardList(gid any, board int, opt *CreateGroupIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error)

CreateGroupIssueBoardList creates a new issue board list.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#new-group-issue-board-list

func (*GroupIssueBoardsService) DeleteGroupIssueBoardList added in v0.11.0

func (s *GroupIssueBoardsService) DeleteGroupIssueBoardList(gid any, board, list int, options ...RequestOptionFunc) (*Response, error)

DeleteGroupIssueBoardList soft deletes a group issue board list. Only for admins and group owners.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#delete-a-group-issue-board-list

func (*GroupIssueBoardsService) DeleteIssueBoard added in v0.116.0

func (s *GroupIssueBoardsService) DeleteIssueBoard(gid any, board int, options ...RequestOptionFunc) (*Response, error)

DeleteIssueBoard delete a single issue board of a group.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#delete-a-group-issue-board

func (*GroupIssueBoardsService) GetGroupIssueBoard added in v0.11.0

func (s *GroupIssueBoardsService) GetGroupIssueBoard(gid any, board int, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)

GetGroupIssueBoard gets a single issue board of a group.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#single-group-issue-board

func (*GroupIssueBoardsService) GetGroupIssueBoardList added in v0.11.0

func (s *GroupIssueBoardsService) GetGroupIssueBoardList(gid any, board, list int, options ...RequestOptionFunc) (*BoardList, *Response, error)

GetGroupIssueBoardList gets a single issue board list.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#single-group-issue-board-list

func (*GroupIssueBoardsService) ListGroupIssueBoardLists added in v0.11.0

func (s *GroupIssueBoardsService) ListGroupIssueBoardLists(gid any, board int, opt *ListGroupIssueBoardListsOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)

ListGroupIssueBoardLists gets a list of the issue board's lists. Does not include backlog and closed lists.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#list-group-issue-board-lists

func (*GroupIssueBoardsService) ListGroupIssueBoards added in v0.11.0

func (s *GroupIssueBoardsService) ListGroupIssueBoards(gid any, opt *ListGroupIssueBoardsOptions, options ...RequestOptionFunc) ([]*GroupIssueBoard, *Response, error)

ListGroupIssueBoards gets a list of all issue boards in a group.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#list-all-group-issue-boards-in-a-group

func (*GroupIssueBoardsService) UpdateIssueBoard added in v0.116.0

func (s *GroupIssueBoardsService) UpdateIssueBoard(gid any, board int, opt *UpdateGroupIssueBoardOptions, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)

UpdateIssueBoard updates a single issue board of a group.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#update-a-group-issue-board

func (*GroupIssueBoardsService) UpdateIssueBoardList added in v0.11.0

func (s *GroupIssueBoardsService) UpdateIssueBoardList(gid any, board, list int, opt *UpdateGroupIssueBoardListOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)

UpdateIssueBoardList updates the position of an existing group issue board list.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#edit-group-issue-board-list

type GroupIssueBoardsServiceInterface added in v0.126.0

type GroupIssueBoardsServiceInterface interface {
	ListGroupIssueBoards(gid any, opt *ListGroupIssueBoardsOptions, options ...RequestOptionFunc) ([]*GroupIssueBoard, *Response, error)
	CreateGroupIssueBoard(gid any, opt *CreateGroupIssueBoardOptions, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)
	GetGroupIssueBoard(gid any, board int, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)
	UpdateIssueBoard(gid any, board int, opt *UpdateGroupIssueBoardOptions, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)
	DeleteIssueBoard(gid any, board int, options ...RequestOptionFunc) (*Response, error)
	ListGroupIssueBoardLists(gid any, board int, opt *ListGroupIssueBoardListsOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)
	GetGroupIssueBoardList(gid any, board, list int, options ...RequestOptionFunc) (*BoardList, *Response, error)
	CreateGroupIssueBoardList(gid any, board int, opt *CreateGroupIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error)
	UpdateIssueBoardList(gid any, board, list int, opt *UpdateGroupIssueBoardListOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)
	DeleteGroupIssueBoardList(gid any, board, list int, options ...RequestOptionFunc) (*Response, error)
}

type GroupIteration added in v0.116.0

type GroupIteration struct {
	ID          int        `json:"id"`
	IID         int        `json:"iid"`
	Sequence    int        `json:"sequence"`
	GroupID     int        `json:"group_id"`
	Title       string     `json:"title"`
	Description string     `json:"description"`
	State       int        `json:"state"`
	CreatedAt   *time.Time `json:"created_at"`
	UpdatedAt   *time.Time `json:"updated_at"`
	DueDate     *ISOTime   `json:"due_date"`
	StartDate   *ISOTime   `json:"start_date"`
	WebURL      string     `json:"web_url"`
}

GroupInteration represents a GitLab iteration.

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

func (GroupIteration) String added in v0.116.0

func (i GroupIteration) String() string

type GroupIterationsService added in v0.116.0

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

IterationsAPI handles communication with the iterations related methods of the GitLab API

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

func (*GroupIterationsService) ListGroupIterations added in v0.116.0

func (s *GroupIterationsService) ListGroupIterations(gid any, opt *ListGroupIterationsOptions, options ...RequestOptionFunc) ([]*GroupIteration, *Response, error)

ListGroupIterations returns a list of group iterations.

GitLab API docs: https://docs.gitlab.com/api/group_iterations/#list-group-iterations

type GroupIterationsServiceInterface added in v0.126.0

type GroupIterationsServiceInterface interface {
	ListGroupIterations(gid any, opt *ListGroupIterationsOptions, options ...RequestOptionFunc) ([]*GroupIteration, *Response, error)
}

type GroupLabel added in v0.116.0

type GroupLabel Label

GroupLabel represents a GitLab group label.

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

func (GroupLabel) String added in v0.116.0

func (l GroupLabel) String() string

type GroupLabelsService added in v0.116.0

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

GroupLabelsService handles communication with the label related methods of the GitLab API.

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

func (*GroupLabelsService) CreateGroupLabel added in v0.116.0

func (s *GroupLabelsService) CreateGroupLabel(gid any, opt *CreateGroupLabelOptions, options ...RequestOptionFunc) (*GroupLabel, *Response, error)

CreateGroupLabel creates a new label for given group with given name and color.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#create-a-new-group-label

func (*GroupLabelsService) DeleteGroupLabel added in v0.116.0

func (s *GroupLabelsService) DeleteGroupLabel(gid any, lid any, opt *DeleteGroupLabelOptions, options ...RequestOptionFunc) (*Response, error)

DeleteGroupLabel deletes a group label given by its name or ID.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#delete-a-group-label

func (*GroupLabelsService) GetGroupLabel added in v0.116.0

func (s *GroupLabelsService) GetGroupLabel(gid any, lid any, options ...RequestOptionFunc) (*GroupLabel, *Response, error)

GetGroupLabel get a single label for a given group.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#get-a-single-group-label

func (*GroupLabelsService) ListGroupLabels added in v0.116.0

func (s *GroupLabelsService) ListGroupLabels(gid any, opt *ListGroupLabelsOptions, options ...RequestOptionFunc) ([]*GroupLabel, *Response, error)

ListGroupLabels gets all labels for given group.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#list-group-labels

func (*GroupLabelsService) SubscribeToGroupLabel added in v0.116.0

func (s *GroupLabelsService) SubscribeToGroupLabel(gid any, lid any, options ...RequestOptionFunc) (*GroupLabel, *Response, error)

SubscribeToGroupLabel subscribes the authenticated user to a label to receive notifications. If the user is already subscribed to the label, the status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#subscribe-to-a-group-label

func (*GroupLabelsService) UnsubscribeFromGroupLabel added in v0.116.0

func (s *GroupLabelsService) UnsubscribeFromGroupLabel(gid any, lid any, options ...RequestOptionFunc) (*Response, error)

UnsubscribeFromGroupLabel unsubscribes the authenticated user from a label to not receive notifications from it. If the user is not subscribed to the label, the status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#unsubscribe-from-a-group-label

func (*GroupLabelsService) UpdateGroupLabel added in v0.116.0

func (s *GroupLabelsService) UpdateGroupLabel(gid any, lid any, opt *UpdateGroupLabelOptions, options ...RequestOptionFunc) (*GroupLabel, *Response, error)

UpdateGroupLabel updates an existing label with new name or now color. At least one parameter is required, to update the label.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#update-a-group-label

type GroupLabelsServiceInterface added in v0.126.0

type GroupLabelsServiceInterface interface {
	ListGroupLabels(gid any, opt *ListGroupLabelsOptions, options ...RequestOptionFunc) ([]*GroupLabel, *Response, error)
	GetGroupLabel(gid any, lid any, options ...RequestOptionFunc) (*GroupLabel, *Response, error)
	CreateGroupLabel(gid any, opt *CreateGroupLabelOptions, options ...RequestOptionFunc) (*GroupLabel, *Response, error)
	DeleteGroupLabel(gid any, lid any, opt *DeleteGroupLabelOptions, options ...RequestOptionFunc) (*Response, error)
	UpdateGroupLabel(gid any, lid any, opt *UpdateGroupLabelOptions, options ...RequestOptionFunc) (*GroupLabel, *Response, error)
	SubscribeToGroupLabel(gid any, lid any, options ...RequestOptionFunc) (*GroupLabel, *Response, error)
	UnsubscribeFromGroupLabel(gid any, lid any, options ...RequestOptionFunc) (*Response, error)
}

type GroupMarkdownUpload added in v0.129.0

type GroupMarkdownUpload = MarkdownUpload

Type aliases for backward compatibility

type GroupMarkdownUploadsService added in v0.129.0

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

GroupMarkdownUploadsService handles communication with the group markdown uploads related methods of the GitLab API.

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

func (*GroupMarkdownUploadsService) DeleteGroupMarkdownUploadByID added in v0.129.0

func (s *GroupMarkdownUploadsService) DeleteGroupMarkdownUploadByID(gid any, uploadID int, options ...RequestOptionFunc) (*Response, error)

DeleteGroupMarkdownUploadByID deletes an upload by ID.

GitLab API Docs: https://docs.gitlab.com/api/group_markdown_uploads/#delete-an-uploaded-file-by-id

func (*GroupMarkdownUploadsService) DeleteGroupMarkdownUploadBySecretAndFilename added in v0.129.0

func (s *GroupMarkdownUploadsService) DeleteGroupMarkdownUploadBySecretAndFilename(gid any, secret string, filename string, options ...RequestOptionFunc) (*Response, error)

DeleteGroupMarkdownUploadBySecretAndFilename deletes an upload by secret and filename.

GitLab API Docs: https://docs.gitlab.com/api/group_markdown_uploads/#delete-an-uploaded-file-by-secret-and-filename

func (*GroupMarkdownUploadsService) DownloadGroupMarkdownUploadByID added in v0.129.0

func (s *GroupMarkdownUploadsService) DownloadGroupMarkdownUploadByID(gid any, uploadID int, options ...RequestOptionFunc) (io.Reader, *Response, error)

DownloadGroupMarkdownUploadByID downloads a specific upload by ID.

GitLab API Docs: https://docs.gitlab.com/api/group_markdown_uploads/#download-an-uploaded-file-by-id

func (*GroupMarkdownUploadsService) DownloadGroupMarkdownUploadBySecretAndFilename added in v0.129.0

func (s *GroupMarkdownUploadsService) DownloadGroupMarkdownUploadBySecretAndFilename(gid any, secret string, filename string, options ...RequestOptionFunc) (io.Reader, *Response, error)

DownloadGroupMarkdownUploadBySecretAndFilename downloads a specific upload by secret and filename.

GitLab API Docs: https://docs.gitlab.com/api/group_markdown_uploads/#download-an-uploaded-file-by-secret-and-filename

func (*GroupMarkdownUploadsService) ListGroupMarkdownUploads added in v0.129.0

func (s *GroupMarkdownUploadsService) ListGroupMarkdownUploads(gid any, opt *ListMarkdownUploadsOptions, options ...RequestOptionFunc) ([]*GroupMarkdownUpload, *Response, error)

ListGroupMarkdownUploads gets all markdown uploads for a group.

GitLab API Docs: https://docs.gitlab.com/api/group_markdown_uploads/#list-uploads

type GroupMarkdownUploadsServiceInterface added in v0.129.0

type GroupMarkdownUploadsServiceInterface interface {
	ListGroupMarkdownUploads(gid any, opt *ListMarkdownUploadsOptions, options ...RequestOptionFunc) ([]*GroupMarkdownUpload, *Response, error)
	DownloadGroupMarkdownUploadByID(gid any, uploadID int, options ...RequestOptionFunc) (io.Reader, *Response, error)
	DownloadGroupMarkdownUploadBySecretAndFilename(gid any, secret string, filename string, options ...RequestOptionFunc) (io.Reader, *Response, error)
	DeleteGroupMarkdownUploadByID(gid any, uploadID int, options ...RequestOptionFunc) (*Response, error)
	DeleteGroupMarkdownUploadBySecretAndFilename(gid any, secret string, filename string, options ...RequestOptionFunc) (*Response, error)
}

type GroupMember

type GroupMember 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"`
	CreatedAt         *time.Time               `json:"created_at"`
	ExpiresAt         *ISOTime                 `json:"expires_at"`
	AccessLevel       AccessLevelValue         `json:"access_level"`
	Email             string                   `json:"email,omitempty"`
	GroupSAMLIdentity *GroupMemberSAMLIdentity `json:"group_saml_identity"`
	MemberRole        *MemberRole              `json:"member_role"`
}

GroupMember represents a GitLab group member.

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

type GroupMemberSAMLIdentity added in v0.116.0

type GroupMemberSAMLIdentity struct {
	ExternUID      string `json:"extern_uid"`
	Provider       string `json:"provider"`
	SAMLProviderID int    `json:"saml_provider_id"`
}

GroupMemberSAMLIdentity represents the SAML Identity link for the group member.

GitLab API docs: https://docs.gitlab.com/api/members/#list-all-members-of-a-group-or-project

type GroupMembersService added in v0.7.0

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

GroupMembersService handles communication with the group members related methods of the GitLab API.

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

func (*GroupMembersService) AddGroupMember added in v0.7.0

func (s *GroupMembersService) AddGroupMember(gid any, opt *AddGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *Response, error)

AddGroupMember adds a user to the list of group members.

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

func (*GroupMembersService) DeleteShareWithGroup added in v0.116.0

func (s *GroupMembersService) DeleteShareWithGroup(gid any, groupID int, options ...RequestOptionFunc) (*Response, error)

DeleteShareWithGroup allows to unshare a group from a group.

GitLab API docs: https://docs.gitlab.com/api/groups/#delete-the-link-that-shares-a-group-with-another-group

func (*GroupMembersService) EditGroupMember added in v0.7.0

func (s *GroupMembersService) EditGroupMember(gid any, user int, opt *EditGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *Response, error)

EditGroupMember updates a member of a group.

GitLab API docs: https://docs.gitlab.com/api/members/#edit-a-member-of-a-group-or-project

func (*GroupMembersService) GetGroupMember added in v0.7.0

func (s *GroupMembersService) GetGroupMember(gid any, user int, options ...RequestOptionFunc) (*GroupMember, *Response, error)

GetGroupMember gets a member of a group.

GitLab API docs: https://docs.gitlab.com/api/members/#get-a-member-of-a-group-or-project

func (*GroupMembersService) GetInheritedGroupMember added in v0.116.0

func (s *GroupMembersService) GetInheritedGroupMember(gid any, user int, options ...RequestOptionFunc) (*GroupMember, *Response, error)

GetInheritedGroupMember get a member of a group or project, including inherited and invited members

GitLab API docs: https://docs.gitlab.com/api/members/#get-a-member-of-a-group-or-project-including-inherited-and-invited-members

func (*GroupMembersService) RemoveGroupMember added in v0.7.0

func (s *GroupMembersService) RemoveGroupMember(gid any, user int, opt *RemoveGroupMemberOptions, options ...RequestOptionFunc) (*Response, error)

RemoveGroupMember removes user from user team.

GitLab API docs: https://docs.gitlab.com/api/members/#remove-a-member-from-a-group-or-project

func (*GroupMembersService) ShareWithGroup added in v0.116.0

func (s *GroupMembersService) ShareWithGroup(gid any, opt *ShareWithGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)

ShareWithGroup shares a group with the group.

GitLab API docs: https://docs.gitlab.com/api/groups/#create-a-link-to-share-a-group-with-another-group

type GroupMembersServiceInterface added in v0.126.0

type GroupMembersServiceInterface interface {
	GetGroupMember(gid any, user int, options ...RequestOptionFunc) (*GroupMember, *Response, error)
	GetInheritedGroupMember(gid any, user int, options ...RequestOptionFunc) (*GroupMember, *Response, error)
	AddGroupMember(gid any, opt *AddGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *Response, error)
	ShareWithGroup(gid any, opt *ShareWithGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)
	DeleteShareWithGroup(gid any, groupID int, options ...RequestOptionFunc) (*Response, error)
	EditGroupMember(gid any, user int, opt *EditGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *Response, error)
	RemoveGroupMember(gid any, user int, opt *RemoveGroupMemberOptions, options ...RequestOptionFunc) (*Response, error)
}

type GroupMilestone added in v0.10.0

type GroupMilestone struct {
	ID          int        `json:"id"`
	IID         int        `json:"iid"`
	GroupID     int        `json:"group_id"`
	Title       string     `json:"title"`
	Description string     `json:"description"`
	StartDate   *ISOTime   `json:"start_date"`
	DueDate     *ISOTime   `json:"due_date"`
	State       string     `json:"state"`
	UpdatedAt   *time.Time `json:"updated_at"`
	CreatedAt   *time.Time `json:"created_at"`
	Expired     *bool      `json:"expired"`
}

GroupMilestone represents a GitLab milestone.

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

func (GroupMilestone) String added in v0.10.0

func (m GroupMilestone) String() string

type GroupMilestonesService added in v0.10.0

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

GroupMilestonesService handles communication with the milestone related methods of the GitLab API.

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

func (*GroupMilestonesService) CreateGroupMilestone added in v0.10.0

func (s *GroupMilestonesService) CreateGroupMilestone(gid any, opt *CreateGroupMilestoneOptions, options ...RequestOptionFunc) (*GroupMilestone, *Response, error)

CreateGroupMilestone creates a new group milestone.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#create-new-milestone

func (*GroupMilestonesService) DeleteGroupMilestone added in v0.116.0

func (s *GroupMilestonesService) DeleteGroupMilestone(pid any, milestone int, options ...RequestOptionFunc) (*Response, error)

DeleteGroupMilestone deletes a specified group milestone.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#delete-group-milestone

func (*GroupMilestonesService) GetGroupMilestone added in v0.10.0

func (s *GroupMilestonesService) GetGroupMilestone(gid any, milestone int, options ...RequestOptionFunc) (*GroupMilestone, *Response, error)

GetGroupMilestone gets a single group milestone.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#get-single-milestone

func (*GroupMilestonesService) GetGroupMilestoneBurndownChartEvents added in v0.116.0

func (s *GroupMilestonesService) GetGroupMilestoneBurndownChartEvents(gid any, milestone int, opt *GetGroupMilestoneBurndownChartEventsOptions, options ...RequestOptionFunc) ([]*BurndownChartEvent, *Response, error)

GetGroupMilestoneBurndownChartEvents gets all merge requests assigned to a single group milestone.

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

func (*GroupMilestonesService) GetGroupMilestoneIssues added in v0.10.0

func (s *GroupMilestonesService) GetGroupMilestoneIssues(gid any, milestone int, opt *GetGroupMilestoneIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

GetGroupMilestoneIssues gets all issues assigned to a single group milestone.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#get-all-issues-assigned-to-a-single-milestone

func (*GroupMilestonesService) GetGroupMilestoneMergeRequests added in v0.10.0

func (s *GroupMilestonesService) GetGroupMilestoneMergeRequests(gid any, milestone int, opt *GetGroupMilestoneMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

GetGroupMilestoneMergeRequests gets all merge requests assigned to a single group milestone.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#get-all-merge-requests-assigned-to-a-single-milestone

func (*GroupMilestonesService) ListGroupMilestones added in v0.10.0

func (s *GroupMilestonesService) ListGroupMilestones(gid any, opt *ListGroupMilestonesOptions, options ...RequestOptionFunc) ([]*GroupMilestone, *Response, error)

ListGroupMilestones returns a list of group milestones.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#list-group-milestones

func (*GroupMilestonesService) UpdateGroupMilestone added in v0.10.0

func (s *GroupMilestonesService) UpdateGroupMilestone(gid any, milestone int, opt *UpdateGroupMilestoneOptions, options ...RequestOptionFunc) (*GroupMilestone, *Response, error)

UpdateGroupMilestone updates an existing group milestone.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#edit-milestone

type GroupMilestonesServiceInterface added in v0.126.0

type GroupMilestonesServiceInterface interface {
	ListGroupMilestones(gid any, opt *ListGroupMilestonesOptions, options ...RequestOptionFunc) ([]*GroupMilestone, *Response, error)
	GetGroupMilestone(gid any, milestone int, options ...RequestOptionFunc) (*GroupMilestone, *Response, error)
	CreateGroupMilestone(gid any, opt *CreateGroupMilestoneOptions, options ...RequestOptionFunc) (*GroupMilestone, *Response, error)
	UpdateGroupMilestone(gid any, milestone int, opt *UpdateGroupMilestoneOptions, options ...RequestOptionFunc) (*GroupMilestone, *Response, error)
	DeleteGroupMilestone(pid any, milestone int, options ...RequestOptionFunc) (*Response, error)
	GetGroupMilestoneIssues(gid any, milestone int, opt *GetGroupMilestoneIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	GetGroupMilestoneMergeRequests(gid any, milestone int, opt *GetGroupMilestoneMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	GetGroupMilestoneBurndownChartEvents(gid any, milestone int, opt *GetGroupMilestoneBurndownChartEventsOptions, options ...RequestOptionFunc) ([]*BurndownChartEvent, *Response, error)
}

type GroupPackage added in v0.116.0

type GroupPackage struct {
	Package
	ProjectID   int    `json:"project_id"`
	ProjectPath string `json:"project_path"`
}

GroupPackage represents a GitLab group package.

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

func (GroupPackage) String added in v0.116.0

func (s GroupPackage) String() string

type GroupProtectedEnvironment added in v0.116.0

type GroupProtectedEnvironment struct {
	Name                  string                               `json:"name"`
	DeployAccessLevels    []*GroupEnvironmentAccessDescription `json:"deploy_access_levels"`
	RequiredApprovalCount int                                  `json:"required_approval_count"`
	ApprovalRules         []*GroupEnvironmentApprovalRule      `json:"approval_rules"`
}

GroupProtectedEnvironment represents a group-level protected environment.

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

type GroupProtectedEnvironmentsService added in v0.116.0

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

GroupProtectedEnvironmentsService handles communication with the group-level protected environment methods of the GitLab API.

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

func (*GroupProtectedEnvironmentsService) GetGroupProtectedEnvironment added in v0.116.0

func (s *GroupProtectedEnvironmentsService) GetGroupProtectedEnvironment(gid any, environment string, options ...RequestOptionFunc) (*GroupProtectedEnvironment, *Response, error)

GetGroupProtectedEnvironment returns a single group-level protected environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#get-a-single-protected-environment

func (*GroupProtectedEnvironmentsService) ListGroupProtectedEnvironments added in v0.116.0

ListGroupProtectedEnvironments returns a list of protected environments from a group.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#list-group-level-protected-environments

func (*GroupProtectedEnvironmentsService) ProtectGroupEnvironment added in v0.116.0

ProtectGroupEnvironment protects a single group-level environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#protect-a-single-environment

func (*GroupProtectedEnvironmentsService) UnprotectGroupEnvironment added in v0.116.0

func (s *GroupProtectedEnvironmentsService) UnprotectGroupEnvironment(gid any, environment string, options ...RequestOptionFunc) (*Response, error)

UnprotectGroupEnvironment unprotects the given protected group-level environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#unprotect-a-single-environment

func (*GroupProtectedEnvironmentsService) UpdateGroupProtectedEnvironment added in v0.116.0

func (s *GroupProtectedEnvironmentsService) UpdateGroupProtectedEnvironment(gid any, environment string, opt *UpdateGroupProtectedEnvironmentOptions, options ...RequestOptionFunc) (*GroupProtectedEnvironment, *Response, error)

UpdateGroupProtectedEnvironment updates a single group-level protected environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#update-a-protected-environment

type GroupProtectedEnvironmentsServiceInterface added in v0.126.0

type GroupProtectedEnvironmentsServiceInterface interface {
	ListGroupProtectedEnvironments(gid any, opt *ListGroupProtectedEnvironmentsOptions, options ...RequestOptionFunc) ([]*GroupProtectedEnvironment, *Response, error)
	GetGroupProtectedEnvironment(gid any, environment string, options ...RequestOptionFunc) (*GroupProtectedEnvironment, *Response, error)
	ProtectGroupEnvironment(gid any, opt *ProtectGroupEnvironmentOptions, options ...RequestOptionFunc) (*GroupProtectedEnvironment, *Response, error)
	UpdateGroupProtectedEnvironment(gid any, environment string, opt *UpdateGroupProtectedEnvironmentOptions, options ...RequestOptionFunc) (*GroupProtectedEnvironment, *Response, error)
	UnprotectGroupEnvironment(gid any, environment string, options ...RequestOptionFunc) (*Response, error)
}

type GroupPushRules added in v0.116.0

type GroupPushRules struct {
	ID                         int        `json:"id"`
	CreatedAt                  *time.Time `json:"created_at"`
	CommitMessageRegex         string     `json:"commit_message_regex"`
	CommitMessageNegativeRegex string     `json:"commit_message_negative_regex"`
	BranchNameRegex            string     `json:"branch_name_regex"`
	DenyDeleteTag              bool       `json:"deny_delete_tag"`
	MemberCheck                bool       `json:"member_check"`
	PreventSecrets             bool       `json:"prevent_secrets"`
	AuthorEmailRegex           string     `json:"author_email_regex"`
	FileNameRegex              string     `json:"file_name_regex"`
	MaxFileSize                int        `json:"max_file_size"`
	CommitCommitterCheck       bool       `json:"commit_committer_check"`
	CommitCommitterNameCheck   bool       `json:"commit_committer_name_check"`
	RejectUnsignedCommits      bool       `json:"reject_unsigned_commits"`
	RejectNonDCOCommits        bool       `json:"reject_non_dco_commits"`
}

GroupPushRules represents a group push rule.

GitLab API docs: https://docs.gitlab.com/api/group_push_rules/#get-the-push-rules-of-a-group

type GroupReleasesService added in v0.124.0

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

GroupReleasesService handles communication with the group releases related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/group_releases.html

func (*GroupReleasesService) ListGroupReleases added in v0.124.0

func (s *GroupReleasesService) ListGroupReleases(gid any, opts *ListGroupReleasesOptions, options ...RequestOptionFunc) ([]*Release, *Response, error)

ListGroupReleases gets a list of releases for a group.

GitLab API docs: https://docs.gitlab.com/api/group_releases.html#list-group-releases

type GroupReleasesServiceInterface added in v0.126.0

type GroupReleasesServiceInterface interface {
	ListGroupReleases(gid any, opts *ListGroupReleasesOptions, options ...RequestOptionFunc) ([]*Release, *Response, error)
}

type GroupRepositoryStorageMove added in v0.116.0

type GroupRepositoryStorageMove struct {
	ID                     int              `json:"id"`
	CreatedAt              *time.Time       `json:"created_at"`
	State                  string           `json:"state"`
	SourceStorageName      string           `json:"source_storage_name"`
	DestinationStorageName string           `json:"destination_storage_name"`
	Group                  *RepositoryGroup `json:"group"`
}

GroupRepositoryStorageMove represents the status of a repository move.

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

type GroupRepositoryStorageMoveService added in v0.116.0

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

GroupRepositoryStorageMoveService handles communication with the group repositories related methods of the GitLab API.

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

func (GroupRepositoryStorageMoveService) GetStorageMove added in v0.116.0

func (g GroupRepositoryStorageMoveService) GetStorageMove(repositoryStorage int, options ...RequestOptionFunc) (*GroupRepositoryStorageMove, *Response, error)

GetStorageMove gets a single group repository storage move.

GitLab API docs: https://docs.gitlab.com/api/group_repository_storage_moves/#get-a-single-group-repository-storage-move

func (GroupRepositoryStorageMoveService) GetStorageMoveForGroup added in v0.116.0

func (g GroupRepositoryStorageMoveService) GetStorageMoveForGroup(group int, repositoryStorage int, options ...RequestOptionFunc) (*GroupRepositoryStorageMove, *Response, error)

GetStorageMoveForGroup gets a single repository storage move for a group.

GitLab API docs: https://docs.gitlab.com/api/group_repository_storage_moves/#get-a-single-repository-storage-move-for-a-group

func (GroupRepositoryStorageMoveService) RetrieveAllStorageMoves added in v0.116.0

RetrieveAllStorageMoves retrieves all group repository storage moves accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/group_repository_storage_moves/#retrieve-all-group-repository-storage-moves

func (GroupRepositoryStorageMoveService) RetrieveAllStorageMovesForGroup added in v0.116.0

RetrieveAllStorageMovesForGroup retrieves all repository storage moves for a single group accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/group_repository_storage_moves/#retrieve-all-repository-storage-moves-for-a-single-group

func (GroupRepositoryStorageMoveService) ScheduleAllStorageMoves added in v0.116.0

ScheduleAllStorageMoves schedules all group repositories to be moved.

GitLab API docs: https://docs.gitlab.com/api/group_repository_storage_moves/#schedule-repository-storage-moves-for-all-groups-on-a-storage-shard

func (GroupRepositoryStorageMoveService) ScheduleStorageMoveForGroup added in v0.116.0

ScheduleStorageMoveForGroup schedule a repository to be moved for a group.

GitLab API docs: https://docs.gitlab.com/api/group_repository_storage_moves/#schedule-a-repository-storage-move-for-a-group

type GroupRepositoryStorageMoveServiceInterface added in v0.126.0

type GroupRepositoryStorageMoveServiceInterface interface {
	RetrieveAllStorageMoves(opts RetrieveAllGroupStorageMovesOptions, options ...RequestOptionFunc) ([]*GroupRepositoryStorageMove, *Response, error)
	RetrieveAllStorageMovesForGroup(group int, opts RetrieveAllGroupStorageMovesOptions, options ...RequestOptionFunc) ([]*GroupRepositoryStorageMove, *Response, error)
	GetStorageMove(repositoryStorage int, options ...RequestOptionFunc) (*GroupRepositoryStorageMove, *Response, error)
	GetStorageMoveForGroup(group int, repositoryStorage int, options ...RequestOptionFunc) (*GroupRepositoryStorageMove, *Response, error)
	ScheduleStorageMoveForGroup(group int, opts ScheduleStorageMoveForGroupOptions, options ...RequestOptionFunc) (*GroupRepositoryStorageMove, *Response, error)
	ScheduleAllStorageMoves(opts ScheduleAllGroupStorageMovesOptions, options ...RequestOptionFunc) (*Response, error)
}

type GroupResourceAccessTokenEvent added in v0.116.0

type GroupResourceAccessTokenEvent struct {
	EventName  string `json:"event_name"`
	ObjectKind string `json:"object_kind"`
	Group      struct {
		GroupID   int    `json:"group_id"`
		GroupName string `json:"group_name"`
		GroupPath string `json:"group_path"`
	} `json:"group"`
	ObjectAttributes struct {
		ID        int      `json:"id"`
		UserID    int      `json:"user_id"`
		Name      string   `json:"name"`
		CreatedAt string   `json:"created_at"`
		ExpiresAt *ISOTime `json:"expires_at"`
	} `json:"object_attributes"`
}

GroupResourceAccessTokenEvent represents a resource access token event for a group.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#project-and-group-access-token-events

type GroupSCIMIdentity added in v0.124.0

type GroupSCIMIdentity struct {
	ExternalUID string `json:"external_uid"`
	UserID      int64  `json:"user_id"`
	Active      bool   `json:"active"`
}

GroupSCIMIdentity represents a GitLab Group SCIM identity.

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

type GroupSCIMService added in v0.124.0

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

GroupSCIMService handles communication with the Group SCIM related methods of the GitLab API.

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

func (*GroupSCIMService) DeleteSCIMIdentity added in v0.124.0

func (s *GroupSCIMService) DeleteSCIMIdentity(gid any, uid string, options ...RequestOptionFunc) (*Response, error)

DeleteSCIMIdentity deletes a SCIM identity.

GitLab API docs: https://docs.gitlab.com/api/scim/#delete-a-single-scim-identity

func (*GroupSCIMService) GetSCIMIdentitiesForGroup added in v0.124.0

func (s *GroupSCIMService) GetSCIMIdentitiesForGroup(gid any, options ...RequestOptionFunc) ([]*GroupSCIMIdentity, *Response, error)

GetSCIMIdentitiesForGroup gets all SCIM identities for a group.

GitLab API docs: https://docs.gitlab.com/api/scim/#get-scim-identities-for-a-group

func (*GroupSCIMService) GetSCIMIdentity added in v0.124.0

func (s *GroupSCIMService) GetSCIMIdentity(gid any, uid string, options ...RequestOptionFunc) (*GroupSCIMIdentity, *Response, error)

GetSCIMIdentity gets a SCIM identity for a group.

GitLab API docs: https://docs.gitlab.com/api/scim/#get-a-single-scim-identity

func (*GroupSCIMService) UpdateSCIMIdentity added in v0.124.0

func (s *GroupSCIMService) UpdateSCIMIdentity(gid any, uid string, opt *UpdateSCIMIdentityOptions, options ...RequestOptionFunc) (*Response, error)

UpdateSCIMIdentity updates a SCIM identity.

GitLab API docs: https://docs.gitlab.com/api/scim/#update-extern_uid-field-for-a-scim-identity

type GroupSCIMServiceInterface added in v0.126.0

type GroupSCIMServiceInterface interface {
	GetSCIMIdentitiesForGroup(gid any, options ...RequestOptionFunc) ([]*GroupSCIMIdentity, *Response, error)
	GetSCIMIdentity(gid any, uid string, options ...RequestOptionFunc) (*GroupSCIMIdentity, *Response, error)
	UpdateSCIMIdentity(gid any, uid string, opt *UpdateSCIMIdentityOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteSCIMIdentity(gid any, uid string, options ...RequestOptionFunc) (*Response, error)
}

type GroupSSHCertificate added in v0.116.0

type GroupSSHCertificate struct {
	ID        int        `json:"id"`
	Title     string     `json:"title"`
	Key       string     `json:"key"`
	CreatedAt *time.Time `json:"created_at"`
}

GroupSSHCertificate represents a GitLab Group SSH certificate.

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

type GroupSSHCertificatesService added in v0.116.0

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

GroupSSHCertificatesService handles communication with the group SSH certificate related methods of the GitLab API.

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

func (*GroupSSHCertificatesService) CreateGroupSSHCertificate added in v0.116.0

CreateMemberRole creates a new member role for a specified group.

Gitlab API docs: https://docs.gitlab.com/api/group_ssh_certificates/#create-ssh-certificate

func (*GroupSSHCertificatesService) DeleteGroupSSHCertificate added in v0.116.0

func (s *GroupSSHCertificatesService) DeleteGroupSSHCertificate(gid any, cert int, options ...RequestOptionFunc) (*Response, error)

DeleteGroupSSHCertificate deletes a SSH certificate from a specified group.

Gitlab API docs: https://docs.gitlab.com/api/group_ssh_certificates/#delete-group-ssh-certificate

func (*GroupSSHCertificatesService) ListGroupSSHCertificates added in v0.116.0

func (s *GroupSSHCertificatesService) ListGroupSSHCertificates(gid any, options ...RequestOptionFunc) ([]*GroupSSHCertificate, *Response, error)

ListGroupSSHCertificates gets a list of SSH certificates for a specified group.

Gitlab API docs: https://docs.gitlab.com/api/group_ssh_certificates/#get-all-ssh-certificates-for-a-particular-group

type GroupSSHCertificatesServiceInterface added in v0.126.0

type GroupSSHCertificatesServiceInterface interface {
	ListGroupSSHCertificates(gid any, options ...RequestOptionFunc) ([]*GroupSSHCertificate, *Response, error)
	CreateGroupSSHCertificate(gid any, opt *CreateGroupSSHCertificateOptions, options ...RequestOptionFunc) (*GroupSSHCertificate, *Response, error)
	DeleteGroupSSHCertificate(gid any, cert int, options ...RequestOptionFunc) (*Response, error)
}

GroupSSHCertificatesServiceInterface defines methods for the GroupSSHCertificatesService.

type GroupSecuritySettings added in v0.121.0

type GroupSecuritySettings struct {
	SecretPushProtectionEnabled bool     `json:"secret_push_protection_enabled"`
	Errors                      []string `json:"errors"`
}

GroupSecuritySettings represents the group security settings data.

Gitlab API docs: https://docs.gitlab.com/api/group_security_settings/

func (GroupSecuritySettings) String added in v0.121.0

func (s GroupSecuritySettings) String() string

Gets a string representation of the GroupSecuritySettings data.

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

type GroupSecuritySettingsService added in v0.121.0

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

GroupSecuritySettingsService handles communication with the Group Security Settings related methods of the GitLab API.

Gitlab API docs: https://docs.gitlab.com/api/group_security_settings/

func (*GroupSecuritySettingsService) UpdateSecretPushProtectionEnabledSetting added in v0.121.0

func (s *GroupSecuritySettingsService) UpdateSecretPushProtectionEnabledSetting(gid any, opt UpdateGroupSecuritySettingsOptions, options ...RequestOptionFunc) (*GroupSecuritySettings, *Response, error)

UpdateSecretPushProtectionEnabledSetting updates the secret_push_protection_enabled setting for the all projects in a group to the provided value.

GitLab API Docs: https://docs.gitlab.com/api/group_security_settings/#update-secret_push_protection_enabled-setting

type GroupSecuritySettingsServiceInterface added in v0.126.0

type GroupSecuritySettingsServiceInterface interface {
	UpdateSecretPushProtectionEnabledSetting(gid any, opt UpdateGroupSecuritySettingsOptions, options ...RequestOptionFunc) (*GroupSecuritySettings, *Response, error)
}

type GroupServiceAccount added in v0.116.0

type GroupServiceAccount struct {
	ID       int    `json:"id"`
	Name     string `json:"name"`
	UserName string `json:"username"`
}

GroupServiceAccount represents a GitLab service account user.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#create-a-service-account-user

type GroupSystemEvent added in v0.116.0

type GroupSystemEvent struct {
	BaseSystemEvent
	Name                 string `json:"name"`
	Path                 string `json:"path"`
	PathWithNamespace    string `json:"full_path"`
	GroupID              int    `json:"group_id"`
	OwnerName            string `json:"owner_name"`
	OwnerEmail           string `json:"owner_email"`
	ProjectVisibility    string `json:"project_visibility"`
	OldPath              string `json:"old_path,omitempty"`
	OldPathWithNamespace string `json:"old_full_path,omitempty"`
}

GroupSystemEvent represents a group system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/

type GroupVariable added in v0.11.0

type GroupVariable struct {
	Key              string            `json:"key"`
	Value            string            `json:"value"`
	VariableType     VariableTypeValue `json:"variable_type"`
	Protected        bool              `json:"protected"`
	Masked           bool              `json:"masked"`
	Hidden           bool              `json:"hidden"`
	Raw              bool              `json:"raw"`
	EnvironmentScope string            `json:"environment_scope"`
	Description      string            `json:"description"`
}

GroupVariable represents a GitLab group Variable.

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

func (GroupVariable) String added in v0.11.0

func (v GroupVariable) String() string

type GroupVariablesService added in v0.11.0

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

GroupVariablesService handles communication with the group variables related methods of the GitLab API.

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

func (*GroupVariablesService) CreateVariable added in v0.11.0

func (s *GroupVariablesService) CreateVariable(gid any, opt *CreateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)

CreateVariable creates a new group variable.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#create-variable

func (*GroupVariablesService) GetVariable added in v0.11.0

func (s *GroupVariablesService) GetVariable(gid any, key string, opt *GetGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)

GetVariable gets a variable.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#show-variable-details

func (*GroupVariablesService) ListVariables added in v0.11.0

func (s *GroupVariablesService) ListVariables(gid any, opt *ListGroupVariablesOptions, options ...RequestOptionFunc) ([]*GroupVariable, *Response, error)

ListVariables gets a list of all variables for a group.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#list-group-variables

func (*GroupVariablesService) RemoveVariable added in v0.11.0

func (s *GroupVariablesService) RemoveVariable(gid any, key string, opt *RemoveGroupVariableOptions, options ...RequestOptionFunc) (*Response, error)

RemoveVariable removes a group's variable.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#remove-variable

func (*GroupVariablesService) UpdateVariable added in v0.11.0

func (s *GroupVariablesService) UpdateVariable(gid any, key string, opt *UpdateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)

UpdateVariable updates the position of an existing group issue board list.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#update-variable

type GroupVariablesServiceInterface added in v0.126.0

type GroupVariablesServiceInterface interface {
	ListVariables(gid any, opt *ListGroupVariablesOptions, options ...RequestOptionFunc) ([]*GroupVariable, *Response, error)
	GetVariable(gid any, key string, opt *GetGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)
	CreateVariable(gid any, opt *CreateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)
	UpdateVariable(gid any, key string, opt *UpdateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)
	RemoveVariable(gid any, key string, opt *RemoveGroupVariableOptions, options ...RequestOptionFunc) (*Response, error)
}

GroupVariablesServiceInterface defines methods for the GroupVariablesService.

type GroupWiki added in v0.116.0

type GroupWiki struct {
	Content  string          `json:"content"`
	Encoding string          `json:"encoding"`
	Format   WikiFormatValue `json:"format"`
	Slug     string          `json:"slug"`
	Title    string          `json:"title"`
}

GroupWiki represents a GitLab groups wiki.

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

func (GroupWiki) String added in v0.116.0

func (w GroupWiki) String() string

type GroupWikisService added in v0.116.0

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

GroupWikisService handles communication with the group wikis related methods of the Gitlab API.

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

func (*GroupWikisService) CreateGroupWikiPage added in v0.116.0

func (s *GroupWikisService) CreateGroupWikiPage(gid any, opt *CreateGroupWikiPageOptions, options ...RequestOptionFunc) (*GroupWiki, *Response, error)

CreateGroupWikiPage creates a new wiki page for the given group with the given title, slug, and content.

GitLab API docs: https://docs.gitlab.com/api/group_wikis/#create-a-new-wiki-page

func (*GroupWikisService) DeleteGroupWikiPage added in v0.116.0

func (s *GroupWikisService) DeleteGroupWikiPage(gid any, slug string, options ...RequestOptionFunc) (*Response, error)

DeleteGroupWikiPage deletes a wiki page with a given slug.

GitLab API docs: https://docs.gitlab.com/api/group_wikis/#delete-a-wiki-page

func (*GroupWikisService) EditGroupWikiPage added in v0.116.0

func (s *GroupWikisService) EditGroupWikiPage(gid any, slug string, opt *EditGroupWikiPageOptions, options ...RequestOptionFunc) (*GroupWiki, *Response, error)

EditGroupWikiPage Updates an existing wiki page. At least one parameter is required to update the wiki page.

GitLab API docs: https://docs.gitlab.com/api/group_wikis/#edit-an-existing-wiki-page

func (*GroupWikisService) GetGroupWikiPage added in v0.116.0

func (s *GroupWikisService) GetGroupWikiPage(gid any, slug string, opt *GetGroupWikiPageOptions, options ...RequestOptionFunc) (*GroupWiki, *Response, error)

GetGroupWikiPage gets a wiki page for a given group.

GitLab API docs: https://docs.gitlab.com/api/group_wikis/#get-a-wiki-page

func (*GroupWikisService) ListGroupWikis added in v0.116.0

func (s *GroupWikisService) ListGroupWikis(gid any, opt *ListGroupWikisOptions, options ...RequestOptionFunc) ([]*GroupWiki, *Response, error)

ListGroupWikis lists all pages of the wiki of the given group id. When with_content is set, it also returns the content of the pages.

GitLab API docs: https://docs.gitlab.com/api/group_wikis/#list-wiki-pages

type GroupWikisServiceInterface added in v0.126.0

type GroupWikisServiceInterface interface {
	ListGroupWikis(gid any, opt *ListGroupWikisOptions, options ...RequestOptionFunc) ([]*GroupWiki, *Response, error)
	GetGroupWikiPage(gid any, slug string, opt *GetGroupWikiPageOptions, options ...RequestOptionFunc) (*GroupWiki, *Response, error)
	CreateGroupWikiPage(gid any, opt *CreateGroupWikiPageOptions, options ...RequestOptionFunc) (*GroupWiki, *Response, error)
	EditGroupWikiPage(gid any, slug string, opt *EditGroupWikiPageOptions, options ...RequestOptionFunc) (*GroupWiki, *Response, error)
	DeleteGroupWikiPage(gid any, slug string, options ...RequestOptionFunc) (*Response, error)
}

GroupWikisServiceInterface defines methods for the GroupWikisService.

type GroupsService

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

GroupsService handles communication with the group related methods of the GitLab API.

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

func (*GroupsService) AddGroupHook added in v0.116.0

func (s *GroupsService) AddGroupHook(gid any, opt *AddGroupHookOptions, options ...RequestOptionFunc) (*GroupHook, *Response, error)

AddGroupHook creates a new group scoped webhook.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#add-a-group-hook

func (s *GroupsService) AddGroupLDAPLink(gid any, opt *AddGroupLDAPLinkOptions, options ...RequestOptionFunc) (*LDAPGroupLink, *Response, error)

AddGroupLDAPLink creates a new group LDAP link. Available only for users who can edit groups.

GitLab API docs: https://docs.gitlab.com/api/group_ldap_links/#add-an-ldap-group-link-with-cn-or-filter

func (*GroupsService) AddGroupPushRule added in v0.116.0

func (s *GroupsService) AddGroupPushRule(gid any, opt *AddGroupPushRuleOptions, options ...RequestOptionFunc) (*GroupPushRules, *Response, error)

AddGroupPushRule adds push rules to the specified group.

GitLab API docs: https://docs.gitlab.com/api/group_push_rules/#add-push-rules-to-a-group

func (s *GroupsService) AddGroupSAMLLink(gid any, opt *AddGroupSAMLLinkOptions, options ...RequestOptionFunc) (*SAMLGroupLink, *Response, error)

AddGroupSAMLLink creates a new group SAML link. Available only for users who can edit groups.

GitLab API docs: https://docs.gitlab.com/api/saml/#add-a-saml-group-link

func (*GroupsService) CreateGroup

func (s *GroupsService) CreateGroup(opt *CreateGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)

CreateGroup creates a new project group. Available only for users who can create groups.

GitLab API docs: https://docs.gitlab.com/api/groups/#create-a-group

func (*GroupsService) CreateServiceAccount added in v0.116.0

func (s *GroupsService) CreateServiceAccount(gid any, opt *CreateServiceAccountOptions, options ...RequestOptionFunc) (*GroupServiceAccount, *Response, error)

Creates a service account user.

This API endpoint works on top-level groups only. It does not work on subgroups.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#create-a-service-account-user

func (*GroupsService) CreateServiceAccountPersonalAccessToken added in v0.116.0

func (s *GroupsService) CreateServiceAccountPersonalAccessToken(gid any, serviceAccount int, opt *CreateServiceAccountPersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

CreateServiceAccountPersonalAccessToken add a new Personal Access Token for a service account user for a group.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#create-a-personal-access-token-for-a-service-account-user

func (*GroupsService) DeleteGroup

func (s *GroupsService) DeleteGroup(gid any, opt *DeleteGroupOptions, options ...RequestOptionFunc) (*Response, error)

DeleteGroup removes group with all projects inside.

GitLab API docs: https://docs.gitlab.com/api/groups/#delete-a-group

func (*GroupsService) DeleteGroupCustomHeader added in v0.116.0

func (s *GroupsService) DeleteGroupCustomHeader(gid any, hook int, key string, options ...RequestOptionFunc) (*Response, error)

DeleteGroupCustomHeader deletes a group custom webhook header.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#delete-a-custom-header

func (*GroupsService) DeleteGroupHook added in v0.116.0

func (s *GroupsService) DeleteGroupHook(gid any, hook int, options ...RequestOptionFunc) (*Response, error)

DeleteGroupHook removes a hook from a group. This is an idempotent method and can be called multiple times.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#delete-a-group-hook

func (*GroupsService) DeleteGroupHookURLVariable added in v0.124.0

func (s *GroupsService) DeleteGroupHookURLVariable(gid any, hook int, key string, options ...RequestOptionFunc) (*Response, error)

DeleteGroupHookURLVariable sets a group hook URL variable.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#delete-a-url-variable

func (s *GroupsService) DeleteGroupLDAPLink(gid any, cn string, options ...RequestOptionFunc) (*Response, error)

DeleteGroupLDAPLink deletes a group LDAP link. Available only for users who can edit groups. Deprecated as upstream API is deprecated. Use DeleteGroupLDAPLinkWithCNOrFilter() instead.

GitLab API docs: https://docs.gitlab.com/api/group_ldap_links/#delete-an-ldap-group-link-deprecated

func (*GroupsService) DeleteGroupLDAPLinkForProvider added in v0.116.0

func (s *GroupsService) DeleteGroupLDAPLinkForProvider(gid any, provider, cn string, options ...RequestOptionFunc) (*Response, error)

DeleteGroupLDAPLinkForProvider deletes a group LDAP link from a specific provider. Available only for users who can edit groups.

GitLab API docs: https://docs.gitlab.com/api/group_ldap_links/#delete-an-ldap-group-link-deprecated

func (*GroupsService) DeleteGroupLDAPLinkWithCNOrFilter added in v0.116.0

func (s *GroupsService) DeleteGroupLDAPLinkWithCNOrFilter(gid any, opts *DeleteGroupLDAPLinkWithCNOrFilterOptions, options ...RequestOptionFunc) (*Response, error)

DeleteGroupLDAPLinkWithCNOrFilter deletes a group LDAP link. Available only for users who can edit groups.

GitLab API docs: https://docs.gitlab.com/api/group_ldap_links/#delete-an-ldap-group-link-with-cn-or-filter

func (*GroupsService) DeleteGroupPushRule added in v0.116.0

func (s *GroupsService) DeleteGroupPushRule(gid any, options ...RequestOptionFunc) (*Response, error)

DeleteGroupPushRule deletes the push rules of a group.

GitLab API docs: https://docs.gitlab.com/api/group_push_rules/#delete-the-push-rules-of-a-group

func (s *GroupsService) DeleteGroupSAMLLink(gid any, samlGroupName string, options ...RequestOptionFunc) (*Response, error)

DeleteGroupSAMLLink deletes a group SAML link. Available only for users who can edit groups.

GitLab API docs: https://docs.gitlab.com/api/saml/#delete-a-saml-group-link

func (*GroupsService) DeleteServiceAccount added in v0.116.0

func (s *GroupsService) DeleteServiceAccount(gid any, serviceAccount int, opt *DeleteServiceAccountOptions, options ...RequestOptionFunc) (*Response, error)

DeleteServiceAccount Deletes a service account user.

This API endpoint works on top-level groups only. It does not work on subgroups.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#delete-a-service-account-user

func (*GroupsService) DownloadAvatar added in v0.116.0

func (s *GroupsService) DownloadAvatar(gid any, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

DownloadAvatar downloads a group avatar.

GitLab API docs: https://docs.gitlab.com/api/groups/#download-a-group-avatar

func (*GroupsService) EditGroupHook added in v0.116.0

func (s *GroupsService) EditGroupHook(gid any, hook int, opt *EditGroupHookOptions, options ...RequestOptionFunc) (*GroupHook, *Response, error)

EditGroupHook edits a hook for a specified group.

Gitlab API docs: https://docs.gitlab.com/api/group_webhooks/#edit-group-hook

func (*GroupsService) EditGroupPushRule added in v0.116.0

func (s *GroupsService) EditGroupPushRule(gid any, opt *EditGroupPushRuleOptions, options ...RequestOptionFunc) (*GroupPushRules, *Response, error)

EditGroupPushRule edits a push rule for a specified group.

GitLab API docs: https://docs.gitlab.com/api/group_push_rules/#edit-the-push-rules-of-a-group

func (*GroupsService) GetGroup

func (s *GroupsService) GetGroup(gid any, opt *GetGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)

GetGroup gets all details of a group.

GitLab API docs: https://docs.gitlab.com/api/groups/#get-a-single-group

func (*GroupsService) GetGroupHook added in v0.116.0

func (s *GroupsService) GetGroupHook(gid any, hook int, options ...RequestOptionFunc) (*GroupHook, *Response, error)

GetGroupHook gets a specific hook for a group.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#get-a-group-hook

func (*GroupsService) GetGroupPushRules added in v0.116.0

func (s *GroupsService) GetGroupPushRules(gid any, options ...RequestOptionFunc) (*GroupPushRules, *Response, error)

GetGroupPushRules gets the push rules of a group.

GitLab API docs: https://docs.gitlab.com/api/group_push_rules/#get-the-push-rules-of-a-group

func (s *GroupsService) GetGroupSAMLLink(gid any, samlGroupName string, options ...RequestOptionFunc) (*SAMLGroupLink, *Response, error)

GetGroupSAMLLink get a specific group SAML link. Available only for users who can edit groups.

GitLab API docs: https://docs.gitlab.com/api/saml/#get-a-saml-group-link

func (*GroupsService) ListAllGroupMembers added in v0.11.2

func (s *GroupsService) ListAllGroupMembers(gid any, opt *ListGroupMembersOptions, options ...RequestOptionFunc) ([]*GroupMember, *Response, error)

ListAllGroupMembers get a list of group members viewable by the authenticated user. Returns a list including inherited members through ancestor groups.

GitLab API docs: https://docs.gitlab.com/api/members/#list-all-members-of-a-group-or-project-including-inherited-and-invited-members

func (*GroupsService) ListBillableGroupMembers added in v0.116.0

func (s *GroupsService) ListBillableGroupMembers(gid any, opt *ListBillableGroupMembersOptions, options ...RequestOptionFunc) ([]*BillableGroupMember, *Response, error)

ListBillableGroupMembers Gets a list of group members that count as billable. The list includes members in the subgroup or subproject.

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

func (*GroupsService) ListDescendantGroups added in v0.116.0

func (s *GroupsService) ListDescendantGroups(gid any, opt *ListDescendantGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error)

ListDescendantGroups gets a list of subgroups for a given project.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-descendant-groups

func (*GroupsService) ListGroupHooks added in v0.116.0

func (s *GroupsService) ListGroupHooks(gid any, opt *ListGroupHooksOptions, options ...RequestOptionFunc) ([]*GroupHook, *Response, error)

ListGroupHooks gets a list of group hooks.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#list-group-hooks

func (s *GroupsService) ListGroupLDAPLinks(gid any, options ...RequestOptionFunc) ([]*LDAPGroupLink, *Response, error)

ListGroupLDAPLinks lists the group's LDAP links. Available only for users who can edit groups.

GitLab API docs: https://docs.gitlab.com/api/group_ldap_links/#list-ldap-group-links

func (*GroupsService) ListGroupMembers

func (s *GroupsService) ListGroupMembers(gid any, opt *ListGroupMembersOptions, options ...RequestOptionFunc) ([]*GroupMember, *Response, error)

ListGroupMembers get a list of group members viewable by the authenticated user. Inherited members through ancestor groups are not included.

GitLab API docs: https://docs.gitlab.com/api/members/#list-all-members-of-a-group-or-project

func (*GroupsService) ListGroupProjects added in v0.4.0

func (s *GroupsService) ListGroupProjects(gid any, opt *ListGroupProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

ListGroupProjects get a list of group projects

GitLab API docs: https://docs.gitlab.com/api/groups/#list-projects

func (s *GroupsService) ListGroupSAMLLinks(gid any, options ...RequestOptionFunc) ([]*SAMLGroupLink, *Response, error)

ListGroupSAMLLinks lists the group's SAML links. Available only for users who can edit groups.

GitLab API docs: https://docs.gitlab.com/api/saml/#list-saml-group-links

func (*GroupsService) ListGroupSharedProjects added in v0.125.0

func (s *GroupsService) ListGroupSharedProjects(gid any, opt *ListGroupSharedProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

ListGroupSharedProjects gets a list of projects shared to this group.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-shared-projects

func (*GroupsService) ListGroups

func (s *GroupsService) ListGroups(opt *ListGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error)

ListGroups gets a list of groups (as user: my groups, as admin: all groups).

GitLab API docs: https://docs.gitlab.com/api/groups/#list-groups

func (*GroupsService) ListMembershipsForBillableGroupMember added in v0.116.0

func (s *GroupsService) ListMembershipsForBillableGroupMember(gid any, user int, opt *ListMembershipsForBillableGroupMemberOptions, options ...RequestOptionFunc) ([]*BillableUserMembership, *Response, error)

ListMembershipsForBillableGroupMember gets a list of memberships for a billable member of a group.

GitLab API docs: https://docs.gitlab.com/api/members/#list-memberships-for-a-billable-member-of-a-group

func (*GroupsService) ListProvisionedUsers added in v0.116.0

func (s *GroupsService) ListProvisionedUsers(gid any, opt *ListProvisionedUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)

ListProvisionedUsers gets a list of users provisioned by the given group.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-provisioned-users

func (*GroupsService) ListServiceAccounts added in v0.116.0

func (s *GroupsService) ListServiceAccounts(gid any, opt *ListServiceAccountsOptions, options ...RequestOptionFunc) ([]*GroupServiceAccount, *Response, error)

ListServiceAccounts gets a list of service acxcounts.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#list-all-service-account-users

func (*GroupsService) ListSubGroups added in v0.116.0

func (s *GroupsService) ListSubGroups(gid any, opt *ListSubGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error)

ListSubGroups gets a list of subgroups for a given group.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-subgroups

func (*GroupsService) RemoveBillableGroupMember added in v0.116.0

func (s *GroupsService) RemoveBillableGroupMember(gid any, user int, options ...RequestOptionFunc) (*Response, error)

RemoveBillableGroupMember removes a given group members that count as billable.

GitLab API docs: https://docs.gitlab.com/api/members/#remove-a-billable-member-from-a-group

func (*GroupsService) ResendGroupHookEvent added in v0.124.0

func (s *GroupsService) ResendGroupHookEvent(gid any, hook int, hookEventID int, options ...RequestOptionFunc) (*Response, error)

ResendGroupHookEvent resends a specific hook event.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#resend-group-hook-event

func (*GroupsService) RestoreGroup added in v0.116.0

func (s *GroupsService) RestoreGroup(gid any, options ...RequestOptionFunc) (*Group, *Response, error)

RestoreGroup restores a previously deleted group

GitLap API docs: https://docs.gitlab.com/api/groups/#restore-a-group-marked-for-deletion

func (*GroupsService) RotateServiceAccountPersonalAccessToken added in v0.116.0

func (s *GroupsService) RotateServiceAccountPersonalAccessToken(gid any, serviceAccount, token int, opt *RotateServiceAccountPersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

RotateServiceAccountPersonalAccessToken rotates a Personal Access Token for a service account user for a group.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#rotate-a-personal-access-token-for-a-service-account-user

func (*GroupsService) SearchGroup

func (s *GroupsService) SearchGroup(query string, options ...RequestOptionFunc) ([]*Group, *Response, error)

SearchGroup get all groups that match your string in their name or path.

GitLab API docs: https://docs.gitlab.com/api/groups/#search-for-a-group

func (*GroupsService) SetGroupCustomHeader added in v0.116.0

func (s *GroupsService) SetGroupCustomHeader(gid any, hook int, key string, opt *SetHookCustomHeaderOptions, options ...RequestOptionFunc) (*Response, error)

SetGroupCustomHeader creates or updates a group custom webhook header.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#set-a-custom-header

func (*GroupsService) SetGroupHookURLVariable added in v0.124.0

func (s *GroupsService) SetGroupHookURLVariable(gid any, hook int, key string, opt *SetHookURLVariableOptions, options ...RequestOptionFunc) (*Response, error)

SetGroupHookURLVariable sets a group hook URL variable.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#set-a-url-variable

func (*GroupsService) ShareGroupWithGroup added in v0.116.0

func (s *GroupsService) ShareGroupWithGroup(gid any, opt *ShareGroupWithGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)

ShareGroupWithGroup shares a group with another group.

GitLab API docs: https://docs.gitlab.com/api/groups/#create-a-link-to-share-a-group-with-another-group

func (*GroupsService) TransferGroup

func (s *GroupsService) TransferGroup(gid any, pid any, options ...RequestOptionFunc) (*Group, *Response, error)

TransferGroup transfers a project to the Group namespace. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/groups/#transfer-a-project-to-a-group

func (*GroupsService) TransferSubGroup added in v0.116.0

func (s *GroupsService) TransferSubGroup(gid any, opt *TransferSubGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)

TransferSubGroup transfers a group to a new parent group or turn a subgroup to a top-level group. Available to administrators and users.

GitLab API docs: https://docs.gitlab.com/api/groups/#transfer-a-group

func (*GroupsService) TriggerTestGroupHook added in v0.116.0

func (s *GroupsService) TriggerTestGroupHook(pid any, hook int, trigger GroupHookTrigger, options ...RequestOptionFunc) (*Response, error)

TriggerTestGroupHook triggers a test hook for a specified group.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#trigger-a-test-group-hook

func (*GroupsService) UnshareGroupFromGroup added in v0.116.0

func (s *GroupsService) UnshareGroupFromGroup(gid any, groupID int, options ...RequestOptionFunc) (*Response, error)

UnshareGroupFromGroup unshares a group from another group.

GitLab API docs: https://docs.gitlab.com/api/groups/#delete-the-link-that-shares-a-group-with-another-group

func (*GroupsService) UpdateGroup added in v0.6.0

func (s *GroupsService) UpdateGroup(gid any, opt *UpdateGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)

UpdateGroup updates an existing group; only available to group owners and administrators.

GitLab API docs: https://docs.gitlab.com/api/groups/#update-group-attributes

func (*GroupsService) UploadAvatar added in v0.116.0

func (s *GroupsService) UploadAvatar(gid any, avatar io.Reader, filename string, options ...RequestOptionFunc) (*Group, *Response, error)

UploadAvatar uploads a group avatar.

GitLab API docs: https://docs.gitlab.com/api/groups/#upload-a-group-avatar

type GroupsServiceInterface added in v0.126.0

type GroupsServiceInterface interface {
	ListGroups(opt *ListGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error)
	ListSubGroups(gid any, opt *ListSubGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error)
	ListDescendantGroups(gid any, opt *ListDescendantGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error)
	ListGroupProjects(gid any, opt *ListGroupProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	GetGroup(gid any, opt *GetGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)
	DownloadAvatar(gid any, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	CreateGroup(opt *CreateGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)
	TransferGroup(gid any, pid any, options ...RequestOptionFunc) (*Group, *Response, error)
	TransferSubGroup(gid any, opt *TransferSubGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)
	UpdateGroup(gid any, opt *UpdateGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)
	UploadAvatar(gid any, avatar io.Reader, filename string, options ...RequestOptionFunc) (*Group, *Response, error)
	DeleteGroup(gid any, opt *DeleteGroupOptions, options ...RequestOptionFunc) (*Response, error)
	RestoreGroup(gid any, options ...RequestOptionFunc) (*Group, *Response, error)
	SearchGroup(query string, options ...RequestOptionFunc) ([]*Group, *Response, error)
	ListProvisionedUsers(gid any, opt *ListProvisionedUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)
	ListGroupLDAPLinks(gid any, options ...RequestOptionFunc) ([]*LDAPGroupLink, *Response, error)
	AddGroupLDAPLink(gid any, opt *AddGroupLDAPLinkOptions, options ...RequestOptionFunc) (*LDAPGroupLink, *Response, error)
	DeleteGroupLDAPLink(gid any, cn string, options ...RequestOptionFunc) (*Response, error)
	DeleteGroupLDAPLinkWithCNOrFilter(gid any, opts *DeleteGroupLDAPLinkWithCNOrFilterOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteGroupLDAPLinkForProvider(gid any, provider, cn string, options ...RequestOptionFunc) (*Response, error)
	ListGroupSAMLLinks(gid any, options ...RequestOptionFunc) ([]*SAMLGroupLink, *Response, error)
	ListGroupSharedProjects(gid any, opt *ListGroupSharedProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	GetGroupSAMLLink(gid any, samlGroupName string, options ...RequestOptionFunc) (*SAMLGroupLink, *Response, error)
	AddGroupSAMLLink(gid any, opt *AddGroupSAMLLinkOptions, options ...RequestOptionFunc) (*SAMLGroupLink, *Response, error)
	DeleteGroupSAMLLink(gid any, samlGroupName string, options ...RequestOptionFunc) (*Response, error)
	ShareGroupWithGroup(gid any, opt *ShareGroupWithGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)
	UnshareGroupFromGroup(gid any, groupID int, options ...RequestOptionFunc) (*Response, error)
	GetGroupPushRules(gid any, options ...RequestOptionFunc) (*GroupPushRules, *Response, error)
	AddGroupPushRule(gid any, opt *AddGroupPushRuleOptions, options ...RequestOptionFunc) (*GroupPushRules, *Response, error)
	EditGroupPushRule(gid any, opt *EditGroupPushRuleOptions, options ...RequestOptionFunc) (*GroupPushRules, *Response, error)
	DeleteGroupPushRule(gid any, options ...RequestOptionFunc) (*Response, error)

	// group_hooks.go
	ListGroupHooks(gid any, opt *ListGroupHooksOptions, options ...RequestOptionFunc) ([]*GroupHook, *Response, error)
	GetGroupHook(gid any, hook int, options ...RequestOptionFunc) (*GroupHook, *Response, error)
	ResendGroupHookEvent(gid any, hook int, hookEventID int, options ...RequestOptionFunc) (*Response, error)
	AddGroupHook(gid any, opt *AddGroupHookOptions, options ...RequestOptionFunc) (*GroupHook, *Response, error)
	EditGroupHook(gid any, hook int, opt *EditGroupHookOptions, options ...RequestOptionFunc) (*GroupHook, *Response, error)
	DeleteGroupHook(gid any, hook int, options ...RequestOptionFunc) (*Response, error)
	TriggerTestGroupHook(pid any, hook int, trigger GroupHookTrigger, options ...RequestOptionFunc) (*Response, error)
	SetGroupCustomHeader(gid any, hook int, key string, opt *SetHookCustomHeaderOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteGroupCustomHeader(gid any, hook int, key string, options ...RequestOptionFunc) (*Response, error)
	SetGroupHookURLVariable(gid any, hook int, key string, opt *SetHookURLVariableOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteGroupHookURLVariable(gid any, hook int, key string, options ...RequestOptionFunc) (*Response, error)

	// group_serviceaccounts.go
	ListServiceAccounts(gid any, opt *ListServiceAccountsOptions, options ...RequestOptionFunc) ([]*GroupServiceAccount, *Response, error)
	CreateServiceAccount(gid any, opt *CreateServiceAccountOptions, options ...RequestOptionFunc) (*GroupServiceAccount, *Response, error)
	DeleteServiceAccount(gid any, serviceAccount int, opt *DeleteServiceAccountOptions, options ...RequestOptionFunc) (*Response, error)
	CreateServiceAccountPersonalAccessToken(gid any, serviceAccount int, opt *CreateServiceAccountPersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RotateServiceAccountPersonalAccessToken(gid any, serviceAccount, token int, opt *RotateServiceAccountPersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

	// group_members.go
	ListGroupMembers(gid any, opt *ListGroupMembersOptions, options ...RequestOptionFunc) ([]*GroupMember, *Response, error)
	ListAllGroupMembers(gid any, opt *ListGroupMembersOptions, options ...RequestOptionFunc) ([]*GroupMember, *Response, error)
	ListBillableGroupMembers(gid any, opt *ListBillableGroupMembersOptions, options ...RequestOptionFunc) ([]*BillableGroupMember, *Response, error)
	ListMembershipsForBillableGroupMember(gid any, user int, opt *ListMembershipsForBillableGroupMemberOptions, options ...RequestOptionFunc) ([]*BillableUserMembership, *Response, error)
	RemoveBillableGroupMember(gid any, user int, options ...RequestOptionFunc) (*Response, error)
}

type HarborService added in v0.116.0

type HarborService struct {
	Service
	Properties *HarborServiceProperties `json:"properties"`
}

HarborService represents the Harbor service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#harbor

type HarborServiceProperties added in v0.116.0

type HarborServiceProperties struct {
	URL                  string `json:"url"`
	ProjectName          string `json:"project_name"`
	Username             string `json:"username"`
	Password             string `json:"password"`
	UseInheritedSettings bool   `json:"use_inherited_settings"`
}

HarborServiceProperties represents Harbor specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#harbor

type Hook

type Hook struct {
	ID                     int        `json:"id"`
	URL                    string     `json:"url"`
	CreatedAt              *time.Time `json:"created_at"`
	PushEvents             bool       `json:"push_events"`
	TagPushEvents          bool       `json:"tag_push_events"`
	MergeRequestsEvents    bool       `json:"merge_requests_events"`
	RepositoryUpdateEvents bool       `json:"repository_update_events"`
	EnableSSLVerification  bool       `json:"enable_ssl_verification"`
}

Hook represents a GitLap system hook.

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

func (Hook) String

func (h Hook) String() string

type HookCustomHeader added in v0.116.0

type HookCustomHeader struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

HookCustomHeader represents a project or group hook custom header Note: "Key" is returned from the Get operation, but "Value" is not The List operation doesn't return any headers at all for Projects, but does return headers for Groups

type HookEvent

type HookEvent struct {
	EventName  string `json:"event_name"`
	Name       string `json:"name"`
	Path       string `json:"path"`
	ProjectID  int    `json:"project_id"`
	OwnerName  string `json:"owner_name"`
	OwnerEmail string `json:"owner_email"`
}

HookEvent represents an event trigger by a GitLab system hook.

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

func (HookEvent) String

func (h HookEvent) String() string

type ISOTime added in v0.7.2

type ISOTime time.Time

ISOTime represents an ISO 8601 formatted date.

func ParseISOTime added in v0.116.0

func ParseISOTime(s string) (ISOTime, error)

ParseISOTime parses an ISO 8601 formatted date.

func (*ISOTime) EncodeValues added in v0.116.0

func (t *ISOTime) EncodeValues(key string, v *url.Values) error

EncodeValues implements the query.Encoder interface.

func (ISOTime) MarshalJSON added in v0.7.2

func (t ISOTime) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (ISOTime) String added in v0.9.0

func (t ISOTime) String() string

String implements the Stringer interface.

func (*ISOTime) UnmarshalJSON added in v0.7.2

func (t *ISOTime) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type ImpersonationToken added in v0.6.0

type ImpersonationToken struct {
	ID         int        `json:"id"`
	Name       string     `json:"name"`
	Active     bool       `json:"active"`
	Token      string     `json:"token"`
	Scopes     []string   `json:"scopes"`
	Revoked    bool       `json:"revoked"`
	CreatedAt  *time.Time `json:"created_at"`
	ExpiresAt  *ISOTime   `json:"expires_at"`
	LastUsedAt *time.Time `json:"last_used_at"`
}

ImpersonationToken represents an impersonation token.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#list-all-impersonation-tokens-for-a-user

type ImportFileOptions added in v0.116.0

type ImportFileOptions struct {
	Namespace      *string               `url:"namespace,omitempty" json:"namespace,omitempty"`
	Name           *string               `url:"name,omitempty" json:"name,omitempty"`
	Path           *string               `url:"path,omitempty" json:"path,omitempty"`
	Overwrite      *bool                 `url:"overwrite,omitempty" json:"overwrite,omitempty"`
	OverrideParams *CreateProjectOptions `url:"override_params,omitempty" json:"override_params,omitempty"`
}

ImportFileOptions represents the available ImportFile() options.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#import-a-file

type ImportGitHubGistsIntoGitLabSnippetsOptions added in v0.116.0

type ImportGitHubGistsIntoGitLabSnippetsOptions struct {
	PersonalAccessToken *string `url:"personal_access_token,omitempty" json:"personal_access_token,omitempty"`
}

ImportGitHubGistsIntoGitLabSnippetsOptions represents the available ImportGitHubGistsIntoGitLabSnippets() options.

GitLab API docs: https://docs.gitlab.com/api/import/#import-github-gists-into-gitlab-snippets

type ImportRepositoryFromBitbucketCloudOptions added in v0.116.0

type ImportRepositoryFromBitbucketCloudOptions struct {
	BitbucketUsername    *string `url:"bitbucket_username,omitempty" json:"bitbucket_username,omitempty"`
	BitbucketAppPassword *string `url:"bitbucket_app_password,omitempty" json:"bitbucket_app_password,omitempty"`
	RepoPath             *string `url:"repo_path,omitempty" json:"repo_path,omitempty"`
	TargetNamespace      *string `url:"target_namespace,omitempty" json:"target_namespace,omitempty"`
	NewName              *string `url:"new_name,omitempty" json:"new_name,omitempty"`
}

ImportRepositoryFromBitbucketCloudOptions represents the available ImportRepositoryFromBitbucketCloud() options.

GitLab API docs: https://docs.gitlab.com/api/import/#import-repository-from-bitbucket-cloud

type ImportRepositoryFromBitbucketServerOptions added in v0.116.0

type ImportRepositoryFromBitbucketServerOptions struct {
	BitbucketServerUrl      *string `url:"bitbucket_server_url,omitempty" json:"bitbucket_server_url,omitempty"`
	BitbucketServerUsername *string `url:"bitbucket_server_username,omitempty" json:"bitbucket_server_username,omitempty"`
	PersonalAccessToken     *string `url:"personal_access_token,omitempty" json:"personal_access_token,omitempty"`
	BitbucketServerProject  *string `url:"bitbucket_server_project,omitempty" json:"bitbucket_server_project,omitempty"`
	BitbucketServerRepo     *string `url:"bitbucket_server_repo,omitempty" json:"bitbucket_server_repo,omitempty"`
	NewName                 *string `url:"new_name,omitempty" json:"new_name,omitempty"`
	NewNamespace            *string `url:"new_namespace,omitempty" json:"new_namespace,omitempty"`
	TimeoutStrategy         *string `url:"timeout_strategy,omitempty" json:"timeout_strategy,omitempty"`
}

ImportRepositoryFromBitbucketServerOptions represents the available ImportRepositoryFromBitbucketServer() options.

GitLab API docs: https://docs.gitlab.com/api/import/#import-repository-from-bitbucket-server

type ImportRepositoryFromGitHubOptions added in v0.116.0

type ImportRepositoryFromGitHubOptions struct {
	PersonalAccessToken *string `url:"personal_access_token,omitempty" json:"personal_access_token,omitempty"`
	RepoID              *int    `url:"repo_id,omitempty" json:"repo_id,omitempty"`
	NewName             *string `url:"new_name,omitempty" json:"new_name,omitempty"`
	TargetNamespace     *string `url:"target_namespace,omitempty" json:"target_namespace,omitempty"`
	GitHubHostname      *string `url:"github_hostname,omitempty" json:"github_hostname,omitempty"`
	OptionalStages      struct {
		SingleEndpointNotesImport *bool `url:"single_endpoint_notes_import,omitempty" json:"single_endpoint_notes_import,omitempty"`
		AttachmentsImport         *bool `url:"attachments_import,omitempty" json:"attachments_import,omitempty"`
		CollaboratorsImport       *bool `url:"collaborators_import,omitempty" json:"collaborators_import,omitempty"`
	} `url:"optional_stages,omitempty" json:"optional_stages,omitempty"`
	TimeoutStrategy *string `url:"timeout_strategy,omitempty" json:"timeout_strategy,omitempty"`
}

ImportRepositoryFromGitHubOptions represents the available ImportRepositoryFromGitHub() options.

GitLab API docs: https://docs.gitlab.com/api/import/#import-repository-from-github

type ImportService added in v0.116.0

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

ImportService handles communication with the import related methods of the GitLab API.

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

func (*ImportService) CancelGitHubProjectImport added in v0.116.0

func (s *ImportService) CancelGitHubProjectImport(opt *CancelGitHubProjectImportOptions, options ...RequestOptionFunc) (*CancelledGitHubImport, *Response, error)

Cancel an import of a repository from GitHub.

GitLab API docs: https://docs.gitlab.com/api/import/#cancel-github-project-import

func (*ImportService) ImportGitHubGistsIntoGitLabSnippets added in v0.116.0

func (s *ImportService) ImportGitHubGistsIntoGitLabSnippets(opt *ImportGitHubGistsIntoGitLabSnippetsOptions, options ...RequestOptionFunc) (*Response, error)

Import personal GitHub Gists into personal GitLab Snippets.

GitLab API docs: https://docs.gitlab.com/api/import/#import-github-gists-into-gitlab-snippets

func (*ImportService) ImportRepositoryFromBitbucketCloud added in v0.116.0

func (s *ImportService) ImportRepositoryFromBitbucketCloud(opt *ImportRepositoryFromBitbucketCloudOptions, options ...RequestOptionFunc) (*BitbucketCloudImport, *Response, error)

Import a repository from Bitbucket Cloud.

GitLab API docs: https://docs.gitlab.com/api/import/#import-repository-from-bitbucket-cloud

func (*ImportService) ImportRepositoryFromBitbucketServer added in v0.116.0

func (s *ImportService) ImportRepositoryFromBitbucketServer(opt *ImportRepositoryFromBitbucketServerOptions, options ...RequestOptionFunc) (*BitbucketServerImport, *Response, error)

Import a repository from Bitbucket Server.

GitLab API docs: https://docs.gitlab.com/api/import/#import-repository-from-bitbucket-server

func (*ImportService) ImportRepositoryFromGitHub added in v0.116.0

func (s *ImportService) ImportRepositoryFromGitHub(opt *ImportRepositoryFromGitHubOptions, options ...RequestOptionFunc) (*GitHubImport, *Response, error)

Import a repository from GitHub.

GitLab API docs: https://docs.gitlab.com/api/import/#import-repository-from-github

type ImportServiceInterface added in v0.126.0

type ImportServiceInterface interface {
	ImportRepositoryFromGitHub(opt *ImportRepositoryFromGitHubOptions, options ...RequestOptionFunc) (*GitHubImport, *Response, error)
	CancelGitHubProjectImport(opt *CancelGitHubProjectImportOptions, options ...RequestOptionFunc) (*CancelledGitHubImport, *Response, error)
	ImportGitHubGistsIntoGitLabSnippets(opt *ImportGitHubGistsIntoGitLabSnippetsOptions, options ...RequestOptionFunc) (*Response, error)
	ImportRepositoryFromBitbucketServer(opt *ImportRepositoryFromBitbucketServerOptions, options ...RequestOptionFunc) (*BitbucketServerImport, *Response, error)
	ImportRepositoryFromBitbucketCloud(opt *ImportRepositoryFromBitbucketCloudOptions, options ...RequestOptionFunc) (*BitbucketCloudImport, *Response, error)
}

type ImportStatus added in v0.116.0

type ImportStatus 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"`
	CreateAt          *time.Time `json:"create_at"`
	ImportStatus      string     `json:"import_status"`
	ImportType        string     `json:"import_type"`
	CorrelationID     string     `json:"correlation_id"`
	ImportError       string     `json:"import_error"`
}

ImportStatus represents a project import status.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#import-status

func (ImportStatus) String added in v0.116.0

func (s ImportStatus) String() string

type Include added in v0.117.0

type Include struct {
	Type           string         `json:"type"`
	Location       string         `json:"location"`
	Blob           string         `json:"blob"`
	Raw            string         `json:"raw"`
	Extra          map[string]any `json:"extra"`
	ContextProject string         `json:"context_project"`
	ContextSHA     string         `json:"context_sha"`
}

Include contains the details about an include block in the .gitlab-ci.yml file. It is used in ProjectLintResult.

Reference can be found at the lint API endpoint in the openapi yaml: https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/api/openapi/openapi_v2.yaml

type InstanceCluster added in v0.116.0

type InstanceCluster struct {
	ID                 int                 `json:"id"`
	Name               string              `json:"name"`
	Domain             string              `json:"domain"`
	Managed            bool                `json:"managed"`
	CreatedAt          *time.Time          `json:"created_at"`
	ProviderType       string              `json:"provider_type"`
	PlatformType       string              `json:"platform_type"`
	EnvironmentScope   string              `json:"environment_scope"`
	ClusterType        string              `json:"cluster_type"`
	User               *User               `json:"user"`
	PlatformKubernetes *PlatformKubernetes `json:"platform_kubernetes"`
	ManagementProject  *ManagementProject  `json:"management_project"`
}

InstanceCluster represents a GitLab Instance Cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

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

func (InstanceCluster) String deprecated added in v0.116.0

func (v InstanceCluster) String() string

Deprecated: in GitLab 14.5, to be removed in 19.0

type InstanceClustersService added in v0.116.0

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

InstanceClustersService handles communication with the instance clusters related methods of the GitLab API. Deprecated: in GitLab 14.5, to be removed in 19.0

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

func (*InstanceClustersService) AddCluster added in v0.116.0

AddCluster adds an existing cluster to the instance. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/instance_clusters/#add-existing-instance-cluster

func (*InstanceClustersService) DeleteCluster added in v0.116.0

func (s *InstanceClustersService) DeleteCluster(cluster int, options ...RequestOptionFunc) (*Response, error)

DeleteCluster deletes an existing instance cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/instance_clusters/#delete-instance-cluster

func (*InstanceClustersService) EditCluster added in v0.116.0

func (s *InstanceClustersService) EditCluster(cluster int, opt *EditClusterOptions, options ...RequestOptionFunc) (*InstanceCluster, *Response, error)

EditCluster updates an existing instance cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/instance_clusters/#edit-instance-cluster

func (*InstanceClustersService) GetCluster added in v0.116.0

func (s *InstanceClustersService) GetCluster(cluster int, options ...RequestOptionFunc) (*InstanceCluster, *Response, error)

GetCluster gets an instance cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/instance_clusters/#get-a-single-instance-cluster

func (*InstanceClustersService) ListClusters added in v0.116.0

func (s *InstanceClustersService) ListClusters(options ...RequestOptionFunc) ([]*InstanceCluster, *Response, error)

ListClusters gets a list of all instance clusters. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/instance_clusters/#list-instance-clusters

type InstanceClustersServiceInterface deprecated added in v0.126.0

type InstanceClustersServiceInterface interface {
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	ListClusters(options ...RequestOptionFunc) ([]*InstanceCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	GetCluster(cluster int, options ...RequestOptionFunc) (*InstanceCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	AddCluster(opt *AddClusterOptions, options ...RequestOptionFunc) (*InstanceCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	EditCluster(cluster int, opt *EditClusterOptions, options ...RequestOptionFunc) (*InstanceCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	DeleteCluster(cluster int, options ...RequestOptionFunc) (*Response, error)
}

Deprecated: in GitLab 14.5, to be removed in 19.0

type InstanceDeployKey added in v0.116.0

type InstanceDeployKey struct {
	ID                      int                 `json:"id"`
	Title                   string              `json:"title"`
	CreatedAt               *time.Time          `json:"created_at"`
	Key                     string              `json:"key"`
	Fingerprint             string              `json:"fingerprint"`
	ProjectsWithWriteAccess []*DeployKeyProject `json:"projects_with_write_access"`
}

InstanceDeployKey represents a GitLab deploy key with the associated projects it has write access to.

func (InstanceDeployKey) String added in v0.116.0

func (k InstanceDeployKey) String() string

type InstanceVariable added in v0.116.0

type InstanceVariable struct {
	Key          string            `json:"key"`
	Value        string            `json:"value"`
	VariableType VariableTypeValue `json:"variable_type"`
	Protected    bool              `json:"protected"`
	Masked       bool              `json:"masked"`
	Raw          bool              `json:"raw"`
	Description  string            `json:"description"`
}

InstanceVariable represents a GitLab instance level CI Variable.

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

func (InstanceVariable) String added in v0.116.0

func (v InstanceVariable) String() string

type InstanceVariablesService added in v0.116.0

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

InstanceVariablesService handles communication with the instance level CI variables related methods of the GitLab API.

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

func (*InstanceVariablesService) CreateVariable added in v0.116.0

CreateVariable creates a new instance level CI variable.

GitLab API docs: https://docs.gitlab.com/api/instance_level_ci_variables/#create-instance-variable

func (*InstanceVariablesService) GetVariable added in v0.116.0

func (s *InstanceVariablesService) GetVariable(key string, options ...RequestOptionFunc) (*InstanceVariable, *Response, error)

GetVariable gets a variable.

GitLab API docs: https://docs.gitlab.com/api/instance_level_ci_variables/#show-instance-variable-details

func (*InstanceVariablesService) ListVariables added in v0.116.0

ListVariables gets a list of all variables for an instance.

GitLab API docs: https://docs.gitlab.com/api/instance_level_ci_variables/#list-all-instance-variables

func (*InstanceVariablesService) RemoveVariable added in v0.116.0

func (s *InstanceVariablesService) RemoveVariable(key string, options ...RequestOptionFunc) (*Response, error)

RemoveVariable removes an instance level CI variable.

GitLab API docs: https://docs.gitlab.com/api/instance_level_ci_variables/#remove-instance-variable

func (*InstanceVariablesService) UpdateVariable added in v0.116.0

UpdateVariable updates the position of an existing instance level CI variable.

GitLab API docs: https://docs.gitlab.com/api/instance_level_ci_variables/#update-instance-variable

type InstanceVariablesServiceInterface added in v0.126.0

type InstanceVariablesServiceInterface interface {
	ListVariables(opt *ListInstanceVariablesOptions, options ...RequestOptionFunc) ([]*InstanceVariable, *Response, error)
	GetVariable(key string, options ...RequestOptionFunc) (*InstanceVariable, *Response, error)
	CreateVariable(opt *CreateInstanceVariableOptions, options ...RequestOptionFunc) (*InstanceVariable, *Response, error)
	UpdateVariable(key string, opt *UpdateInstanceVariableOptions, options ...RequestOptionFunc) (*InstanceVariable, *Response, error)
	RemoveVariable(key string, options ...RequestOptionFunc) (*Response, error)
}

type InvitesOptions added in v0.116.0

type InvitesOptions struct {
	ID          any               `url:"id,omitempty" json:"id,omitempty"`
	Email       *string           `url:"email,omitempty" json:"email,omitempty"`
	UserID      any               `url:"user_id,omitempty" json:"user_id,omitempty"`
	AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ExpiresAt   *ISOTime          `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

InvitesOptions represents the available GroupInvites() and ProjectInvites() options.

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

type InvitesResult added in v0.116.0

type InvitesResult struct {
	Status  string            `json:"status"`
	Message map[string]string `json:"message,omitempty"`
}

InvitesResult represents an invitations result.

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

type InvitesService added in v0.116.0

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

InvitesService handles communication with the invitation related methods of the GitLab API.

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

func (*InvitesService) GroupInvites added in v0.116.0

func (s *InvitesService) GroupInvites(gid any, opt *InvitesOptions, options ...RequestOptionFunc) (*InvitesResult, *Response, error)

GroupInvites invites new users by email to join a group.

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

func (*InvitesService) ListPendingGroupInvitations added in v0.116.0

func (s *InvitesService) ListPendingGroupInvitations(gid any, opt *ListPendingInvitationsOptions, options ...RequestOptionFunc) ([]*PendingInvite, *Response, error)

ListPendingGroupInvitations gets a list of invited group members.

GitLab API docs: https://docs.gitlab.com/api/invitations/#list-all-invitations-pending-for-a-group-or-project

func (*InvitesService) ListPendingProjectInvitations added in v0.116.0

func (s *InvitesService) ListPendingProjectInvitations(pid any, opt *ListPendingInvitationsOptions, options ...RequestOptionFunc) ([]*PendingInvite, *Response, error)

ListPendingProjectInvitations gets a list of invited project members.

GitLab API docs: https://docs.gitlab.com/api/invitations/#list-all-invitations-pending-for-a-group-or-project

func (*InvitesService) ProjectInvites added in v0.116.0

func (s *InvitesService) ProjectInvites(pid any, opt *InvitesOptions, options ...RequestOptionFunc) (*InvitesResult, *Response, error)

ProjectInvites invites new users by email to join a project.

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

type InvitesServiceInterface added in v0.126.0

type InvitesServiceInterface interface {
	ListPendingGroupInvitations(gid any, opt *ListPendingInvitationsOptions, options ...RequestOptionFunc) ([]*PendingInvite, *Response, error)
	ListPendingProjectInvitations(pid any, opt *ListPendingInvitationsOptions, options ...RequestOptionFunc) ([]*PendingInvite, *Response, error)
	GroupInvites(gid any, opt *InvitesOptions, options ...RequestOptionFunc) (*InvitesResult, *Response, error)
	ProjectInvites(pid any, opt *InvitesOptions, options ...RequestOptionFunc) (*InvitesResult, *Response, error)
}

type Issue

type Issue struct {
	ID                   int                    `json:"id"`
	IID                  int                    `json:"iid"`
	ExternalID           string                 `json:"external_id"`
	State                string                 `json:"state"`
	Description          string                 `json:"description"`
	HealthStatus         string                 `json:"health_status"`
	Author               *IssueAuthor           `json:"author"`
	Milestone            *Milestone             `json:"milestone"`
	ProjectID            int                    `json:"project_id"`
	Assignees            []*IssueAssignee       `json:"assignees"`
	UpdatedAt            *time.Time             `json:"updated_at"`
	ClosedAt             *time.Time             `json:"closed_at"`
	ClosedBy             *IssueCloser           `json:"closed_by"`
	Title                string                 `json:"title"`
	CreatedAt            *time.Time             `json:"created_at"`
	MovedToID            int                    `json:"moved_to_id"`
	Labels               Labels                 `json:"labels"`
	LabelDetails         []*LabelDetails        `json:"label_details"`
	Upvotes              int                    `json:"upvotes"`
	Downvotes            int                    `json:"downvotes"`
	DueDate              *ISOTime               `json:"due_date"`
	WebURL               string                 `json:"web_url"`
	References           *IssueReferences       `json:"references"`
	TimeStats            *TimeStats             `json:"time_stats"`
	Confidential         bool                   `json:"confidential"`
	Weight               int                    `json:"weight"`
	DiscussionLocked     bool                   `json:"discussion_locked"`
	IssueType            *string                `json:"issue_type,omitempty"`
	Subscribed           bool                   `json:"subscribed"`
	UserNotesCount       int                    `json:"user_notes_count"`
	Links                *IssueLinks            `json:"_links"`
	IssueLinkID          int                    `json:"issue_link_id"`
	MergeRequestCount    int                    `json:"merge_requests_count"`
	EpicIssueID          int                    `json:"epic_issue_id"`
	Epic                 *Epic                  `json:"epic"`
	Iteration            *GroupIteration        `json:"iteration"`
	TaskCompletionStatus *TasksCompletionStatus `json:"task_completion_status"`
	ServiceDeskReplyTo   string                 `json:"service_desk_reply_to"`

	// Deprecated: use Assignees instead
	Assignee *IssueAssignee `json:"assignee"`
}

Issue represents a GitLab issue.

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

func (Issue) String

func (i Issue) String() string

func (*Issue) UnmarshalJSON added in v0.116.0

func (i *Issue) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type IssueAssignee added in v0.116.0

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

IssueAssignee represents a assignee of the issue.

type IssueAuthor added in v0.116.0

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

IssueAuthor represents a author of the issue.

type IssueBoard added in v0.8.0

type IssueBoard struct {
	ID        int        `json:"id"`
	Name      string     `json:"name"`
	Project   *Project   `json:"project"`
	Milestone *Milestone `json:"milestone"`
	Assignee  *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"`
	} `json:"assignee"`
	Lists  []*BoardList    `json:"lists"`
	Weight int             `json:"weight"`
	Labels []*LabelDetails `json:"labels"`
}

IssueBoard represents a GitLab issue board.

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

func (IssueBoard) String added in v0.8.0

func (b IssueBoard) String() string

type IssueBoardsService added in v0.8.0

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

IssueBoardsService handles communication with the issue board related methods of the GitLab API.

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

func (*IssueBoardsService) CreateIssueBoard added in v0.116.0

func (s *IssueBoardsService) CreateIssueBoard(pid any, opt *CreateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error)

CreateIssueBoard creates a new issue board.

GitLab API docs: https://docs.gitlab.com/api/boards/#create-an-issue-board

func (*IssueBoardsService) CreateIssueBoardList added in v0.8.0

func (s *IssueBoardsService) CreateIssueBoardList(pid any, board int, opt *CreateIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error)

CreateIssueBoardList creates a new issue board list.

GitLab API docs: https://docs.gitlab.com/api/boards/#create-a-board-list

func (*IssueBoardsService) DeleteIssueBoard added in v0.116.0

func (s *IssueBoardsService) DeleteIssueBoard(pid any, board int, options ...RequestOptionFunc) (*Response, error)

DeleteIssueBoard deletes an issue board.

GitLab API docs: https://docs.gitlab.com/api/boards/#delete-an-issue-board

func (*IssueBoardsService) DeleteIssueBoardList added in v0.8.0

func (s *IssueBoardsService) DeleteIssueBoardList(pid any, board, list int, options ...RequestOptionFunc) (*Response, error)

DeleteIssueBoardList soft deletes an issue board list. Only for admins and project owners.

GitLab API docs: https://docs.gitlab.com/api/boards/#delete-a-board-list-from-a-board

func (*IssueBoardsService) GetIssueBoard added in v0.8.0

func (s *IssueBoardsService) GetIssueBoard(pid any, board int, options ...RequestOptionFunc) (*IssueBoard, *Response, error)

GetIssueBoard gets a single issue board of a project.

GitLab API docs: https://docs.gitlab.com/api/boards/#show-a-single-issue-board

func (*IssueBoardsService) GetIssueBoardList added in v0.8.0

func (s *IssueBoardsService) GetIssueBoardList(pid any, board, list int, options ...RequestOptionFunc) (*BoardList, *Response, error)

GetIssueBoardList gets a single issue board list.

GitLab API docs: https://docs.gitlab.com/api/boards/#show-a-single-board-list

func (*IssueBoardsService) GetIssueBoardLists added in v0.8.0

func (s *IssueBoardsService) GetIssueBoardLists(pid any, board int, opt *GetIssueBoardListsOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)

GetIssueBoardLists gets a list of the issue board's lists. Does not include backlog and closed lists.

GitLab API docs: https://docs.gitlab.com/api/boards/#list-board-lists-in-a-project-issue-board

func (*IssueBoardsService) ListIssueBoards added in v0.8.0

func (s *IssueBoardsService) ListIssueBoards(pid any, opt *ListIssueBoardsOptions, options ...RequestOptionFunc) ([]*IssueBoard, *Response, error)

ListIssueBoards gets a list of all issue boards in a project.

GitLab API docs: https://docs.gitlab.com/api/boards/#list-project-issue-boards

func (*IssueBoardsService) UpdateIssueBoard added in v0.116.0

func (s *IssueBoardsService) UpdateIssueBoard(pid any, board int, opt *UpdateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error)

UpdateIssueBoard update an issue board.

GitLab API docs: https://docs.gitlab.com/api/boards/#update-an-issue-board

func (*IssueBoardsService) UpdateIssueBoardList added in v0.8.0

func (s *IssueBoardsService) UpdateIssueBoardList(pid any, board, list int, opt *UpdateIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error)

UpdateIssueBoardList updates the position of an existing issue board list.

GitLab API docs: https://docs.gitlab.com/api/boards/#reorder-a-list-in-a-board

type IssueBoardsServiceInterface added in v0.126.0

type IssueBoardsServiceInterface interface {
	CreateIssueBoard(pid any, opt *CreateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error)
	UpdateIssueBoard(pid any, board int, opt *UpdateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error)
	DeleteIssueBoard(pid any, board int, options ...RequestOptionFunc) (*Response, error)
	ListIssueBoards(pid any, opt *ListIssueBoardsOptions, options ...RequestOptionFunc) ([]*IssueBoard, *Response, error)
	GetIssueBoard(pid any, board int, options ...RequestOptionFunc) (*IssueBoard, *Response, error)
	GetIssueBoardLists(pid any, board int, opt *GetIssueBoardListsOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)
	GetIssueBoardList(pid any, board, list int, options ...RequestOptionFunc) (*BoardList, *Response, error)
	CreateIssueBoardList(pid any, board int, opt *CreateIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error)
	UpdateIssueBoardList(pid any, board, list int, opt *UpdateIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error)
	DeleteIssueBoardList(pid any, board, list int, options ...RequestOptionFunc) (*Response, error)
}

type IssueCloser added in v0.116.0

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

IssueCloser represents a closer of the issue.

type IssueCommentEvent added in v0.3.1

type IssueCommentEvent struct {
	ObjectKind string `json:"object_kind"`
	EventType  string `json:"event_type"`
	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"`
		DiscussionID string             `json:"discussion_id"`
		NoteableID   int                `json:"noteable_id"`
		System       bool               `json:"system"`
		StDiff       []*Diff            `json:"st_diff"`
		Description  string             `json:"description"`
		Action       CommentEventAction `json:"action"`
		URL          string             `json:"url"`
	} `json:"object_attributes"`
	Issue struct {
		ID                  int           `json:"id"`
		IID                 int           `json:"iid"`
		ProjectID           int           `json:"project_id"`
		MilestoneID         int           `json:"milestone_id"`
		AuthorID            int           `json:"author_id"`
		Position            int           `json:"position"`
		BranchName          string        `json:"branch_name"`
		Description         string        `json:"description"`
		State               string        `json:"state"`
		Title               string        `json:"title"`
		Labels              []*EventLabel `json:"labels"`
		LastEditedAt        string        `json:"last_edit_at"`
		LastEditedByID      int           `json:"last_edited_by_id"`
		UpdatedAt           string        `json:"updated_at"`
		UpdatedByID         int           `json:"updated_by_id"`
		CreatedAt           string        `json:"created_at"`
		ClosedAt            string        `json:"closed_at"`
		DueDate             *ISOTime      `json:"due_date"`
		URL                 string        `json:"url"`
		TimeEstimate        int           `json:"time_estimate"`
		Confidential        bool          `json:"confidential"`
		TotalTimeSpent      int           `json:"total_time_spent"`
		HumanTotalTimeSpent string        `json:"human_total_time_spent"`
		HumanTimeEstimate   string        `json:"human_time_estimate"`
		AssigneeIDs         []int         `json:"assignee_ids"`
		AssigneeID          int           `json:"assignee_id"`
	} `json:"issue"`
}

IssueCommentEvent represents a comment on an issue event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#comment-on-an-issue

type IssueEvent added in v0.3.1

type IssueEvent struct {
	ObjectKind string     `json:"object_kind"`
	EventType  string     `json:"event_type"`
	User       *EventUser `json:"user"`
	Project    struct {
		ID                int             `json:"id"`
		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"`
		Title               string   `json:"title"`
		AssigneeIDs         []int    `json:"assignee_ids"`
		AssigneeID          int      `json:"assignee_id"`
		AuthorID            int      `json:"author_id"`
		ProjectID           int      `json:"project_id"`
		CreatedAt           string   `json:"created_at"` // Should be *time.Time (see Gitlab issue #21468)
		UpdatedAt           string   `json:"updated_at"` // Should be *time.Time (see Gitlab issue #21468)
		UpdatedByID         int      `json:"updated_by_id"`
		LastEditedAt        string   `json:"last_edited_at"`
		LastEditedByID      int      `json:"last_edited_by_id"`
		RelativePosition    int      `json:"relative_position"`
		BranchName          string   `json:"branch_name"`
		Description         string   `json:"description"`
		MilestoneID         int      `json:"milestone_id"`
		StateID             StateID  `json:"state_id"`
		Confidential        bool     `json:"confidential"`
		DiscussionLocked    bool     `json:"discussion_locked"`
		DueDate             *ISOTime `json:"due_date"`
		MovedToID           int      `json:"moved_to_id"`
		DuplicatedToID      int      `json:"duplicated_to_id"`
		TimeEstimate        int      `json:"time_estimate"`
		TotalTimeSpent      int      `json:"total_time_spent"`
		TimeChange          int      `json:"time_change"`
		HumanTotalTimeSpent string   `json:"human_total_time_spent"`
		HumanTimeEstimate   string   `json:"human_time_estimate"`
		HumanTimeChange     string   `json:"human_time_change"`
		Weight              int      `json:"weight"`
		IID                 int      `json:"iid"`
		URL                 string   `json:"url"`
		State               string   `json:"state"`
		Action              string   `json:"action"`
		Severity            string   `json:"severity"`
		EscalationStatus    string   `json:"escalation_status"`
		EscalationPolicy    struct {
			ID   int    `json:"id"`
			Name string `json:"name"`
		} `json:"escalation_policy"`
		Labels []*EventLabel `json:"labels"`
	} `json:"object_attributes"`
	Assignee  *EventUser    `json:"assignee"`
	Assignees *[]EventUser  `json:"assignees"`
	Labels    []*EventLabel `json:"labels"`
	Changes   struct {
		Assignees struct {
			Previous []*EventUser `json:"previous"`
			Current  []*EventUser `json:"current"`
		} `json:"assignees"`
		Description struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"description"`
		Labels struct {
			Previous []*EventLabel `json:"previous"`
			Current  []*EventLabel `json:"current"`
		} `json:"labels"`
		Title struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"title"`
		ClosedAt struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"closed_at"`
		StateID struct {
			Previous StateID `json:"previous"`
			Current  StateID `json:"current"`
		} `json:"state_id"`
		UpdatedAt struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"updated_at"`
		UpdatedByID struct {
			Previous int `json:"previous"`
			Current  int `json:"current"`
		} `json:"updated_by_id"`
		TotalTimeSpent struct {
			Previous int `json:"previous"`
			Current  int `json:"current"`
		} `json:"total_time_spent"`
	} `json:"changes"`
}

IssueEvent represents a issue event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#work-item-events

type IssueLink struct {
	SourceIssue *Issue `json:"source_issue"`
	TargetIssue *Issue `json:"target_issue"`
	LinkType    string `json:"link_type"`
}

IssueLink represents a two-way relation between two issues.

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

type IssueLinks struct {
	Self       string `json:"self"`
	Notes      string `json:"notes"`
	AwardEmoji string `json:"award_emoji"`
	Project    string `json:"project"`
}

IssueLinks represents links of the issue.

type IssueLinksService added in v0.8.0

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

IssueLinksService handles communication with the issue relations related methods of the GitLab API.

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

func (s *IssueLinksService) CreateIssueLink(pid any, issue int, opt *CreateIssueLinkOptions, options ...RequestOptionFunc) (*IssueLink, *Response, error)

CreateIssueLink creates a two-way relation between two issues. User must be allowed to update both issues in order to succeed.

GitLab API docs: https://docs.gitlab.com/api/issue_links/#create-an-issue-link

func (s *IssueLinksService) DeleteIssueLink(pid any, issue, issueLink int, options ...RequestOptionFunc) (*IssueLink, *Response, error)

DeleteIssueLink deletes an issue link, thus removes the two-way relationship.

GitLab API docs: https://docs.gitlab.com/api/issue_links/#delete-an-issue-link

func (s *IssueLinksService) GetIssueLink(pid any, issue, issueLink int, options ...RequestOptionFunc) (*IssueLink, *Response, error)

GetIssueLink gets a specific issue link.

GitLab API docs: https://docs.gitlab.com/api/issue_links/#get-an-issue-link

func (*IssueLinksService) ListIssueRelations added in v0.8.0

func (s *IssueLinksService) ListIssueRelations(pid any, issue int, options ...RequestOptionFunc) ([]*IssueRelation, *Response, error)

ListIssueRelations gets a list of related issues of a given issue, sorted by the relationship creation datetime (ascending).

Issues will be filtered according to the user authorizations.

GitLab API docs: https://docs.gitlab.com/api/issue_links/#list-issue-relations

type IssueLinksServiceInterface added in v0.126.0

type IssueLinksServiceInterface interface {
	ListIssueRelations(pid any, issue int, options ...RequestOptionFunc) ([]*IssueRelation, *Response, error)
	GetIssueLink(pid any, issue, issueLink int, options ...RequestOptionFunc) (*IssueLink, *Response, error)
	CreateIssueLink(pid any, issue int, opt *CreateIssueLinkOptions, options ...RequestOptionFunc) (*IssueLink, *Response, error)
	DeleteIssueLink(pid any, issue, issueLink int, options ...RequestOptionFunc) (*IssueLink, *Response, error)
}

type IssueReferences added in v0.116.0

type IssueReferences struct {
	Short    string `json:"short"`
	Relative string `json:"relative"`
	Full     string `json:"full"`
}

IssueReferences represents references of the issue.

type IssueRelation added in v0.116.0

type IssueRelation struct {
	ID             int              `json:"id"`
	IID            int              `json:"iid"`
	State          string           `json:"state"`
	Description    string           `json:"description"`
	Confidential   bool             `json:"confidential"`
	Author         *IssueAuthor     `json:"author"`
	Milestone      *Milestone       `json:"milestone"`
	ProjectID      int              `json:"project_id"`
	Assignees      []*IssueAssignee `json:"assignees"`
	Assignee       *IssueAssignee   `json:"assignee"`
	UpdatedAt      *time.Time       `json:"updated_at"`
	Title          string           `json:"title"`
	CreatedAt      *time.Time       `json:"created_at"`
	Labels         Labels           `json:"labels"`
	DueDate        *ISOTime         `json:"due_date"`
	WebURL         string           `json:"web_url"`
	References     *IssueReferences `json:"references"`
	Weight         int              `json:"weight"`
	UserNotesCount int              `json:"user_notes_count"`
	IssueLinkID    int              `json:"issue_link_id"`
	LinkType       string           `json:"link_type"`
	LinkCreatedAt  *time.Time       `json:"link_created_at"`
	LinkUpdatedAt  *time.Time       `json:"link_updated_at"`
}

IssueRelation gets a relation between two issues.

GitLab API docs: https://docs.gitlab.com/api/issue_links/#list-issue-relations

type IssuesCount added in v0.128.0

type IssuesCount struct {
	IssuesCount int `url:"issues_count" json:"issues_count"`
}

IssuesCount represents the total count of recently created issues in a group.

GitLab API docs: https://docs.gitlab.com/api/group_activity_analytics/#get-count-of-recently-created-issues-for-group

type IssuesService

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

IssuesService handles communication with the issue related methods of the GitLab API.

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

func (*IssuesService) AddSpentTime added in v0.6.0

func (s *IssuesService) AddSpentTime(pid any, issue int, opt *AddSpentTimeOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)

AddSpentTime adds spent time for a single project issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#add-spent-time-for-an-issue

func (*IssuesService) CreateIssue

func (s *IssuesService) CreateIssue(pid any, opt *CreateIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)

CreateIssue creates a new project issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#new-issue

func (*IssuesService) CreateTodo added in v0.116.0

func (s *IssuesService) CreateTodo(pid any, issue int, options ...RequestOptionFunc) (*Todo, *Response, error)

CreateTodo creates a todo for the current user for an issue. If there already exists a todo for the user on that issue, status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/issues/#create-a-to-do-item

func (*IssuesService) DeleteIssue

func (s *IssuesService) DeleteIssue(pid any, issue int, options ...RequestOptionFunc) (*Response, error)

DeleteIssue deletes a single project issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#delete-an-issue

func (*IssuesService) GetIssue

func (s *IssuesService) GetIssue(pid any, issue int, options ...RequestOptionFunc) (*Issue, *Response, error)

GetIssue gets a single project issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#single-project-issue

func (*IssuesService) GetIssueByID added in v0.116.0

func (s *IssuesService) GetIssueByID(issue int, options ...RequestOptionFunc) (*Issue, *Response, error)

GetIssueByID gets a single issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#single-issue

func (*IssuesService) GetParticipants added in v0.116.0

func (s *IssuesService) GetParticipants(pid any, issue int, options ...RequestOptionFunc) ([]*BasicUser, *Response, error)

GetParticipants gets a list of issue participants.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-participants-in-an-issue

func (*IssuesService) GetTimeSpent added in v0.6.0

func (s *IssuesService) GetTimeSpent(pid any, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error)

GetTimeSpent gets the spent time for a single project issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#get-time-tracking-stats

func (*IssuesService) ListGroupIssues added in v0.6.0

func (s *IssuesService) ListGroupIssues(pid any, opt *ListGroupIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

ListGroupIssues gets a list of group issues. This function accepts pagination parameters page and per_page to return the list of group issues.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-group-issues

func (*IssuesService) ListIssues

func (s *IssuesService) ListIssues(opt *ListIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

ListIssues gets all issues created by authenticated user. This function takes pagination parameters page and per_page to restrict the list of issues.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-issues

func (*IssuesService) ListMergeRequestsClosingIssue added in v0.10.6

func (s *IssuesService) ListMergeRequestsClosingIssue(pid any, issue int, opt *ListMergeRequestsClosingIssueOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

ListMergeRequestsClosingIssue gets all the merge requests that will close issue when merged.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-merge-requests-that-close-a-particular-issue-on-merge

func (*IssuesService) ListMergeRequestsRelatedToIssue added in v0.116.0

func (s *IssuesService) ListMergeRequestsRelatedToIssue(pid any, issue int, opt *ListMergeRequestsRelatedToIssueOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

ListMergeRequestsRelatedToIssue gets all the merge requests that are related to the issue

GitLab API docs: https://docs.gitlab.com/api/issues/#list-merge-requests-related-to-issue

func (*IssuesService) ListProjectIssues

func (s *IssuesService) ListProjectIssues(pid any, opt *ListProjectIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

ListProjectIssues gets a list of project issues. This function accepts pagination parameters page and per_page to return the list of project issues.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-project-issues

func (*IssuesService) MoveIssue added in v0.116.0

func (s *IssuesService) MoveIssue(pid any, issue int, opt *MoveIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)

MoveIssue updates an existing project issue. This function is also used to mark an issue as closed.

GitLab API docs: https://docs.gitlab.com/api/issues/#move-an-issue

func (*IssuesService) ReorderIssue added in v0.116.0

func (s *IssuesService) ReorderIssue(pid any, issue int, opt *ReorderIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)

ReorderIssue reorders an issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#reorder-an-issue

func (*IssuesService) ResetSpentTime added in v0.6.0

func (s *IssuesService) ResetSpentTime(pid any, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error)

ResetSpentTime resets the spent time for a single project issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#reset-spent-time-for-an-issue

func (*IssuesService) ResetTimeEstimate added in v0.6.0

func (s *IssuesService) ResetTimeEstimate(pid any, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error)

ResetTimeEstimate resets the time estimate for a single project issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#reset-the-time-estimate-for-an-issue

func (*IssuesService) SetTimeEstimate added in v0.6.0

func (s *IssuesService) SetTimeEstimate(pid any, issue int, opt *SetTimeEstimateOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)

SetTimeEstimate sets the time estimate for a single project issue.

GitLab API docs: https://docs.gitlab.com/api/issues/#set-a-time-estimate-for-an-issue

func (*IssuesService) SubscribeToIssue added in v0.11.2

func (s *IssuesService) SubscribeToIssue(pid any, issue int, options ...RequestOptionFunc) (*Issue, *Response, error)

SubscribeToIssue subscribes the authenticated user to the given issue to receive notifications. If the user is already subscribed to the issue, the status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/issues/#subscribe-to-an-issue

func (*IssuesService) UnsubscribeFromIssue added in v0.11.2

func (s *IssuesService) UnsubscribeFromIssue(pid any, issue int, options ...RequestOptionFunc) (*Issue, *Response, error)

UnsubscribeFromIssue unsubscribes the authenticated user from the given issue to not receive notifications from that merge request. If the user is not subscribed to the issue, status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/issues/#unsubscribe-from-an-issue

func (*IssuesService) UpdateIssue

func (s *IssuesService) UpdateIssue(pid any, issue int, opt *UpdateIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)

UpdateIssue updates an existing project issue. This function is also used to mark an issue as closed.

GitLab API docs: https://docs.gitlab.com/api/issues/#edit-an-issue

type IssuesServiceInterface added in v0.126.0

type IssuesServiceInterface interface {
	ListIssues(opt *ListIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	ListGroupIssues(pid any, opt *ListGroupIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	ListProjectIssues(pid any, opt *ListProjectIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	GetIssueByID(issue int, options ...RequestOptionFunc) (*Issue, *Response, error)
	GetIssue(pid any, issue int, options ...RequestOptionFunc) (*Issue, *Response, error)
	CreateIssue(pid any, opt *CreateIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)
	UpdateIssue(pid any, issue int, opt *UpdateIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)
	DeleteIssue(pid any, issue int, options ...RequestOptionFunc) (*Response, error)
	ReorderIssue(pid any, issue int, opt *ReorderIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)
	MoveIssue(pid any, issue int, opt *MoveIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)
	SubscribeToIssue(pid any, issue int, options ...RequestOptionFunc) (*Issue, *Response, error)
	UnsubscribeFromIssue(pid any, issue int, options ...RequestOptionFunc) (*Issue, *Response, error)
	CreateTodo(pid any, issue int, options ...RequestOptionFunc) (*Todo, *Response, error)
	ListMergeRequestsClosingIssue(pid any, issue int, opt *ListMergeRequestsClosingIssueOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	ListMergeRequestsRelatedToIssue(pid any, issue int, opt *ListMergeRequestsRelatedToIssueOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	SetTimeEstimate(pid any, issue int, opt *SetTimeEstimateOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	ResetTimeEstimate(pid any, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	AddSpentTime(pid any, issue int, opt *AddSpentTimeOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	ResetSpentTime(pid any, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	GetTimeSpent(pid any, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	GetParticipants(pid any, issue int, options ...RequestOptionFunc) ([]*BasicUser, *Response, error)
}

type IssuesStatistics added in v0.116.0

type IssuesStatistics struct {
	Statistics struct {
		Counts struct {
			All    int `json:"all"`
			Closed int `json:"closed"`
			Opened int `json:"opened"`
		} `json:"counts"`
	} `json:"statistics"`
}

IssuesStatistics represents a GitLab issues statistic.

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

func (IssuesStatistics) String added in v0.116.0

func (n IssuesStatistics) String() string

type IssuesStatisticsService added in v0.116.0

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

IssuesStatisticsService handles communication with the issues statistics related methods of the GitLab API.

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

func (*IssuesStatisticsService) GetGroupIssuesStatistics added in v0.116.0

func (s *IssuesStatisticsService) GetGroupIssuesStatistics(gid any, opt *GetGroupIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error)

GetGroupIssuesStatistics gets issues count statistics for given group.

GitLab API docs: https://docs.gitlab.com/api/issues_statistics/#get-group-issues-statistics

func (*IssuesStatisticsService) GetIssuesStatistics added in v0.116.0

GetIssuesStatistics gets issues statistics on all issues the authenticated user has access to.

GitLab API docs: https://docs.gitlab.com/api/issues_statistics/#get-issues-statistics

func (*IssuesStatisticsService) GetProjectIssuesStatistics added in v0.116.0

func (s *IssuesStatisticsService) GetProjectIssuesStatistics(pid any, opt *GetProjectIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error)

GetProjectIssuesStatistics gets issues count statistics for given project.

GitLab API docs: https://docs.gitlab.com/api/issues_statistics/#get-project-issues-statistics

type IssuesStatisticsServiceInterface added in v0.126.0

type IssuesStatisticsServiceInterface interface {
	GetIssuesStatistics(opt *GetIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error)
	GetGroupIssuesStatistics(gid any, opt *GetGroupIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error)
	GetProjectIssuesStatistics(pid any, opt *GetProjectIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error)
}

type Iteration added in v0.116.0

type Iteration struct {
	ID          int        `json:"id"`
	IID         int        `json:"iid"`
	Sequence    int        `json:"sequence"`
	GroupID     int        `json:"group_id"`
	Title       string     `json:"title"`
	Description string     `json:"description"`
	State       int        `json:"state"`
	CreatedAt   *time.Time `json:"created_at"`
	UpdatedAt   *time.Time `json:"updated_at"`
	DueDate     *ISOTime   `json:"due_date"`
	StartDate   *ISOTime   `json:"start_date"`
	WebURL      string     `json:"web_url"`
}

Iteration represents a project issue iteration.

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

type IterationEvent added in v0.116.0

type IterationEvent struct {
	ID           int        `json:"id"`
	User         *BasicUser `json:"user"`
	CreatedAt    *time.Time `json:"created_at"`
	ResourceType string     `json:"resource_type"`
	ResourceID   int        `json:"resource_id"`
	Iteration    *Iteration `json:"iteration"`
	Action       string     `json:"action"`
}

IterationEvent represents a resource iteration event.

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

type JenkinsCIService added in v0.7.5

type JenkinsCIService struct {
	Service
	Properties *JenkinsCIServiceProperties `json:"properties"`
}

JenkinsCIService represents Jenkins CI service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#jenkins

type JenkinsCIServiceProperties added in v0.7.5

type JenkinsCIServiceProperties struct {
	URL                   string `json:"jenkins_url"`
	EnableSSLVerification bool   `json:"enable_ssl_verification"`
	ProjectName           string `json:"project_name"`
	Username              string `json:"username"`
}

JenkinsCIServiceProperties represents Jenkins CI specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#jenkins

type JiraService added in v0.7.0

type JiraService struct {
	Service
	Properties *JiraServiceProperties `json:"properties"`
}

JiraService represents Jira service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#jira-issues

type JiraServiceProperties added in v0.7.0

type JiraServiceProperties struct {
	URL                          string   `json:"url"`
	APIURL                       string   `json:"api_url"`
	Username                     string   `json:"username" `
	Password                     string   `json:"password" `
	Active                       bool     `json:"active"`
	JiraAuthType                 int      `json:"jira_auth_type"`
	JiraIssuePrefix              string   `json:"jira_issue_prefix"`
	JiraIssueRegex               string   `json:"jira_issue_regex"`
	JiraIssueTransitionAutomatic bool     `json:"jira_issue_transition_automatic"`
	JiraIssueTransitionID        string   `json:"jira_issue_transition_id"`
	CommitEvents                 bool     `json:"commit_events"`
	MergeRequestsEvents          bool     `json:"merge_requests_events"`
	CommentOnEventEnabled        bool     `json:"comment_on_event_enabled"`
	IssuesEnabled                bool     `json:"issues_enabled"`
	ProjectKeys                  []string `json:"project_keys" `
	UseInheritedSettings         bool     `json:"use_inherited_settings"`
}

JiraServiceProperties represents Jira specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#jira-issues

func (*JiraServiceProperties) UnmarshalJSON added in v0.116.0

func (p *JiraServiceProperties) UnmarshalJSON(b []byte) error

UnmarshalJSON decodes the Jira Service Properties.

This allows support of JiraIssueTransitionID for both type string (>11.9) and float64 (<11.9)

type Job added in v0.6.0

type Job 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"`
	ErasedAt          *time.Time `json:"erased_at"`
	Duration          float64    `json:"duration"`
	QueuedDuration    float64    `json:"queued_duration"`
	ArtifactsExpireAt *time.Time `json:"artifacts_expire_at"`
	TagList           []string   `json:"tag_list"`
	ID                int        `json:"id"`
	Name              string     `json:"name"`
	Pipeline          struct {
		ID        int    `json:"id"`
		ProjectID int    `json:"project_id"`
		Ref       string `json:"ref"`
		Sha       string `json:"sha"`
		Status    string `json:"status"`
	} `json:"pipeline"`
	Ref       string `json:"ref"`
	Artifacts []struct {
		FileType   string `json:"file_type"`
		Filename   string `json:"filename"`
		Size       int    `json:"size"`
		FileFormat string `json:"file_format"`
	} `json:"artifacts"`
	ArtifactsFile struct {
		Filename string `json:"filename"`
		Size     int    `json:"size"`
	} `json:"artifacts_file"`
	Runner struct {
		ID          int    `json:"id"`
		Description string `json:"description"`
		Active      bool   `json:"active"`
		IsShared    bool   `json:"is_shared"`
		Name        string `json:"name"`
	} `json:"runner"`
	Stage         string   `json:"stage"`
	Status        string   `json:"status"`
	FailureReason string   `json:"failure_reason"`
	Tag           bool     `json:"tag"`
	WebURL        string   `json:"web_url"`
	Project       *Project `json:"project"`
	User          *User    `json:"user"`
}

Job represents a ci build.

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

type JobEvent added in v0.116.0

type JobEvent 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"`
	BuildQueuedDuration float64    `json:"build_queued_duration"`
	BuildAllowFailure   bool       `json:"build_allow_failure"`
	BuildFailureReason  string     `json:"build_failure_reason"`
	RetriesCount        int        `json:"retries_count"`
	PipelineID          int        `json:"pipeline_id"`
	ProjectID           int        `json:"project_id"`
	ProjectName         string     `json:"project_name"`
	User                *EventUser `json:"user"`
	Commit              struct {
		ID          int    `json:"id"`
		Name        string `json:"name"`
		SHA         string `json:"sha"`
		Message     string `json:"message"`
		AuthorName  string `json:"author_name"`
		AuthorEmail string `json:"author_email"`
		AuthorURL   string `json:"author_url"`
		Status      string `json:"status"`
		Duration    int    `json:"duration"`
		StartedAt   string `json:"started_at"`
		FinishedAt  string `json:"finished_at"`
	} `json:"commit"`
	Repository *Repository `json:"repository"`
	Runner     struct {
		ID          int      `json:"id"`
		Active      bool     `json:"active"`
		RunnerType  string   `json:"runner_type"`
		IsShared    bool     `json:"is_shared"`
		Description string   `json:"description"`
		Tags        []string `json:"tags"`
	} `json:"runner"`
	Environment struct {
		Name           string `json:"name"`
		Action         string `json:"action"`
		DeploymentTier string `json:"deployment_tier"`
	} `json:"environment"`
	SourcePipeline struct {
		Project struct {
			ID                int    `json:"id"`
			WebURL            string `json:"web_url"`
			PathWithNamespace string `json:"path_with_namespace"`
		} `json:"project"`
		PipelineID int `json:"pipeline_id"`
		JobID      int `json:"job_id"`
	} `json:"source_pipeline"`
}

JobEvent represents a job event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#job-events

type JobStats added in v0.8.1

type JobStats struct {
	Jobs struct {
		Processed int `json:"processed"`
		Failed    int `json:"failed"`
		Enqueued  int `json:"enqueued"`
	} `json:"jobs"`
}

JobStats represents the GitLab sidekiq job stats.

GitLab API docs: https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-job-statistics

type JobTokenAccessSettings added in v0.116.0

type JobTokenAccessSettings struct {
	InboundEnabled bool `json:"inbound_enabled"`
}

JobTokenAccessSettings represents job token access attributes for this project.

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

type JobTokenAllowlistItem added in v0.116.0

type JobTokenAllowlistItem struct {
	SourceProjectID int `json:"source_project_id"`
	TargetGroupID   int `json:"target_group_id"`
}

JobTokenAllowlistItem represents a single job token allowlist item.

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

type JobTokenInboundAllowItem added in v0.116.0

type JobTokenInboundAllowItem struct {
	SourceProjectID int `json:"source_project_id"`
	TargetProjectID int `json:"target_project_id"`
}

JobTokenInboundAllowItem represents a single job token inbound allowlist item.

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

type JobTokenInboundAllowOptions added in v0.116.0

type JobTokenInboundAllowOptions struct {
	TargetProjectID *int `url:"target_project_id,omitempty" json:"target_project_id,omitempty"`
}

AddProjectToJobScopeAllowListOptions represents the available AddProjectToJobScopeAllowList() options.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#add-a-project-to-a-cicd-job-token-inbound-allowlist

type JobTokenScopeService added in v0.116.0

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

JobTokenScopeService handles communication with project CI settings such as token permissions.

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

func (*JobTokenScopeService) AddGroupToJobTokenAllowlist added in v0.116.0

func (j *JobTokenScopeService) AddGroupToJobTokenAllowlist(pid any, opt *AddGroupToJobTokenAllowlistOptions, options ...RequestOptionFunc) (*JobTokenAllowlistItem, *Response, error)

AddProjectToJobScopeGroupsAllowList adds a new group to a project's job token inbound groups allow list.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#add-a-group-to-a-cicd-job-token-allowlist

func (*JobTokenScopeService) AddProjectToJobScopeAllowList added in v0.116.0

func (j *JobTokenScopeService) AddProjectToJobScopeAllowList(pid any, opt *JobTokenInboundAllowOptions, options ...RequestOptionFunc) (*JobTokenInboundAllowItem, *Response, error)

AddProjectToJobScopeAllowList adds a new project to a project's job token inbound allow list.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#add-a-project-to-a-cicd-job-token-inbound-allowlist

func (*JobTokenScopeService) GetJobTokenAllowlistGroups added in v0.116.0

func (j *JobTokenScopeService) GetJobTokenAllowlistGroups(pid any, opt *GetJobTokenAllowlistGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error)

GetJobTokenAllowListGroups fetches the CI/CD job token allowlist groups (job token scopes) of a project.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#get-a-projects-cicd-job-token-allowlist-of-groups

func (*JobTokenScopeService) GetProjectJobTokenAccessSettings added in v0.116.0

func (j *JobTokenScopeService) GetProjectJobTokenAccessSettings(pid any, options ...RequestOptionFunc) (*JobTokenAccessSettings, *Response, error)

GetProjectJobTokenAccessSettings fetch the CI/CD job token access settings (job token scope) of a project.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#get-a-projects-cicd-job-token-access-settings

func (*JobTokenScopeService) GetProjectJobTokenInboundAllowList added in v0.116.0

func (j *JobTokenScopeService) GetProjectJobTokenInboundAllowList(pid any, opt *GetJobTokenInboundAllowListOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

GetProjectJobTokenInboundAllowList fetches the CI/CD job token inbound allowlist (job token scope) of a project.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#get-a-projects-cicd-job-token-inbound-allowlist

func (*JobTokenScopeService) PatchProjectJobTokenAccessSettings added in v0.116.0

func (j *JobTokenScopeService) PatchProjectJobTokenAccessSettings(pid any, opt *PatchProjectJobTokenAccessSettingsOptions, options ...RequestOptionFunc) (*Response, error)

PatchProjectJobTokenAccessSettings patch the Limit access to this project setting (job token scope) of a project.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#patch-a-projects-cicd-job-token-access-settings

func (*JobTokenScopeService) RemoveGroupFromJobTokenAllowlist added in v0.116.0

func (j *JobTokenScopeService) RemoveGroupFromJobTokenAllowlist(pid any, targetGroup int, options ...RequestOptionFunc) (*Response, error)

RemoveGroupFromJopTokenAllowlist removes a group from a project's job token inbound groups allow list.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#remove-a-group-from-a-cicd-job-token-allowlist

func (*JobTokenScopeService) RemoveProjectFromJobScopeAllowList added in v0.116.0

func (j *JobTokenScopeService) RemoveProjectFromJobScopeAllowList(pid any, targetProject int, options ...RequestOptionFunc) (*Response, error)

RemoveProjectFromJobScopeAllowList removes a project from a project's job token inbound allow list.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#remove-a-project-from-a-cicd-job-token-inbound-allowlist

type JobTokenScopeServiceInterface added in v0.126.0

type JobTokenScopeServiceInterface interface {
	GetProjectJobTokenAccessSettings(pid any, options ...RequestOptionFunc) (*JobTokenAccessSettings, *Response, error)
	PatchProjectJobTokenAccessSettings(pid any, opt *PatchProjectJobTokenAccessSettingsOptions, options ...RequestOptionFunc) (*Response, error)
	GetProjectJobTokenInboundAllowList(pid any, opt *GetJobTokenInboundAllowListOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	AddProjectToJobScopeAllowList(pid any, opt *JobTokenInboundAllowOptions, options ...RequestOptionFunc) (*JobTokenInboundAllowItem, *Response, error)
	RemoveProjectFromJobScopeAllowList(pid any, targetProject int, options ...RequestOptionFunc) (*Response, error)
	GetJobTokenAllowlistGroups(pid any, opt *GetJobTokenAllowlistGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error)
	AddGroupToJobTokenAllowlist(pid any, opt *AddGroupToJobTokenAllowlistOptions, options ...RequestOptionFunc) (*JobTokenAllowlistItem, *Response, error)
	RemoveGroupFromJobTokenAllowlist(pid any, targetGroup int, options ...RequestOptionFunc) (*Response, error)
}

type JobVariableOptions added in v0.116.0

type JobVariableOptions struct {
	Key          *string            `url:"key,omitempty" json:"key,omitempty"`
	Value        *string            `url:"value,omitempty" json:"value,omitempty"`
	VariableType *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

JobVariableOptions represents a single job variable.

GitLab API docs: https://docs.gitlab.com/api/jobs/#run-a-job

type JobsService added in v0.6.0

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

JobsService handles communication with the ci builds related methods of the GitLab API.

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

func (*JobsService) CancelJob added in v0.6.0

func (s *JobsService) CancelJob(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)

CancelJob cancels a single job of a project.

GitLab API docs: https://docs.gitlab.com/api/jobs/#cancel-a-job

func (*JobsService) DeleteArtifacts added in v0.116.0

func (s *JobsService) DeleteArtifacts(pid any, jobID int, options ...RequestOptionFunc) (*Response, error)

DeleteArtifacts delete artifacts of a job

GitLab API docs: https://docs.gitlab.com/api/job_artifacts/#delete-job-artifacts

func (*JobsService) DeleteProjectArtifacts added in v0.116.0

func (s *JobsService) DeleteProjectArtifacts(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteProjectArtifacts delete artifacts eligible for deletion in a project

GitLab API docs: https://docs.gitlab.com/api/job_artifacts/#delete-job-artifacts

func (*JobsService) DownloadArtifactsFile added in v0.6.0

func (s *JobsService) DownloadArtifactsFile(pid any, refName string, opt *DownloadArtifactsFileOptions, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

DownloadArtifactsFile download the artifacts file from the given reference name and job provided the job finished successfully.

GitLab API docs: https://docs.gitlab.com/api/job_artifacts/#download-the-artifacts-archive

func (*JobsService) DownloadSingleArtifactsFile added in v0.11.1

func (s *JobsService) DownloadSingleArtifactsFile(pid any, jobID int, artifactPath string, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

DownloadSingleArtifactsFile download a file from the artifacts from the given reference name and job provided the job finished successfully. Only a single file is going to be extracted from the archive and streamed to a client.

GitLab API docs: https://docs.gitlab.com/api/job_artifacts/#download-a-single-artifact-file-by-job-id

func (*JobsService) DownloadSingleArtifactsFileByTagOrBranch added in v0.116.0

func (s *JobsService) DownloadSingleArtifactsFileByTagOrBranch(pid any, refName string, artifactPath string, opt *DownloadArtifactsFileOptions, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

DownloadSingleArtifactsFile download a single artifact file for a specific job of the latest successful pipeline for the given reference name from inside the job’s artifacts archive. The file is extracted from the archive and streamed to the client.

GitLab API docs: https://docs.gitlab.com/api/job_artifacts/#download-a-single-artifact-file-from-specific-tag-or-branch

func (*JobsService) EraseJob added in v0.6.0

func (s *JobsService) EraseJob(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)

EraseJob erases a single job of a project, removes a job artifacts and a job trace.

GitLab API docs: https://docs.gitlab.com/api/jobs/#erase-a-job

func (*JobsService) GetJob added in v0.6.0

func (s *JobsService) GetJob(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)

GetJob gets a single job of a project.

GitLab API docs: https://docs.gitlab.com/api/jobs/#get-a-single-job

func (*JobsService) GetJobArtifacts added in v0.6.0

func (s *JobsService) GetJobArtifacts(pid any, jobID int, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

GetJobArtifacts get jobs artifacts of a project

GitLab API docs: https://docs.gitlab.com/api/job_artifacts/#get-job-artifacts

func (*JobsService) GetJobTokensJob added in v0.116.0

func (s *JobsService) GetJobTokensJob(opts *GetJobTokensJobOptions, options ...RequestOptionFunc) (*Job, *Response, error)

GetJobTokensJob retrieves the job that generated a job token.

GitLab API docs: https://docs.gitlab.com/api/jobs/#get-job-tokens-job

func (*JobsService) GetTraceFile added in v0.6.0

func (s *JobsService) GetTraceFile(pid any, jobID int, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

GetTraceFile gets a trace of a specific job of a project

GitLab API docs: https://docs.gitlab.com/api/jobs/#get-a-log-file

func (*JobsService) KeepArtifacts added in v0.6.0

func (s *JobsService) KeepArtifacts(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)

KeepArtifacts prevents artifacts from being deleted when expiration is set.

GitLab API docs: https://docs.gitlab.com/api/job_artifacts/#keep-artifacts

func (*JobsService) ListPipelineBridges added in v0.116.0

func (s *JobsService) ListPipelineBridges(pid any, pipelineID int, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Bridge, *Response, error)

ListPipelineBridges gets a list of bridges for specific pipeline in a project.

GitLab API docs: https://docs.gitlab.com/api/jobs/#list-pipeline-trigger-jobs

func (*JobsService) ListPipelineJobs added in v0.6.0

func (s *JobsService) ListPipelineJobs(pid any, pipelineID int, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)

ListPipelineJobs gets a list of jobs for specific pipeline in a project. If the pipeline ID is not found, it will respond with 404.

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

func (*JobsService) ListProjectJobs added in v0.6.0

func (s *JobsService) ListProjectJobs(pid any, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)

ListProjectJobs gets a list of jobs in a project.

The scope of jobs to show, one or array of: created, pending, running, failed, success, canceled, skipped; showing all jobs if none provided

GitLab API docs: https://docs.gitlab.com/api/jobs/#list-project-jobs

func (*JobsService) PlayJob added in v0.6.0

func (s *JobsService) PlayJob(pid any, jobID int, opt *PlayJobOptions, options ...RequestOptionFunc) (*Job, *Response, error)

PlayJob triggers a manual action to start a job.

GitLab API docs: https://docs.gitlab.com/api/jobs/#run-a-job

func (*JobsService) RetryJob added in v0.6.0

func (s *JobsService) RetryJob(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)

RetryJob retries a single job of a project

GitLab API docs: https://docs.gitlab.com/api/jobs/#retry-a-job

type JobsServiceInterface added in v0.126.0

type JobsServiceInterface interface {
	ListProjectJobs(pid any, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)
	ListPipelineJobs(pid any, pipelineID int, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)
	ListPipelineBridges(pid any, pipelineID int, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Bridge, *Response, error)
	GetJobTokensJob(opts *GetJobTokensJobOptions, options ...RequestOptionFunc) (*Job, *Response, error)
	GetJob(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)
	GetJobArtifacts(pid any, jobID int, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	DownloadArtifactsFile(pid any, refName string, opt *DownloadArtifactsFileOptions, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	DownloadSingleArtifactsFile(pid any, jobID int, artifactPath string, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	DownloadSingleArtifactsFileByTagOrBranch(pid any, refName string, artifactPath string, opt *DownloadArtifactsFileOptions, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	GetTraceFile(pid any, jobID int, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	CancelJob(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)
	RetryJob(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)
	EraseJob(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)
	KeepArtifacts(pid any, jobID int, options ...RequestOptionFunc) (*Job, *Response, error)
	PlayJob(pid any, jobID int, opt *PlayJobOptions, options ...RequestOptionFunc) (*Job, *Response, error)
	DeleteArtifacts(pid any, jobID int, options ...RequestOptionFunc) (*Response, error)
	DeleteProjectArtifacts(pid any, options ...RequestOptionFunc) (*Response, error)
}

type Key added in v0.11.0

type Key struct {
	ID        int        `json:"id"`
	Title     string     `json:"title"`
	Key       string     `json:"key"`
	CreatedAt *time.Time `json:"created_at"`
	User      User       `json:"user"`
}

Key represents a GitLab user's SSH key.

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

type KeySystemEvent added in v0.116.0

type KeySystemEvent struct {
	BaseSystemEvent
	ID       int    `json:"id"`
	Username string `json:"username"`
	Key      string `json:"key"`
}

KeySystemEvent represents a key system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/

type KeysService added in v0.11.0

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

KeysService handles communication with the keys related methods of the GitLab API.

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

func (*KeysService) GetKeyByFingerprint added in v0.116.0

func (s *KeysService) GetKeyByFingerprint(opt *GetKeyByFingerprintOptions, options ...RequestOptionFunc) (*Key, *Response, error)

GetKeyByFingerprint gets a specific SSH key or deploy key by fingerprint along with the associated user information.

GitLab API docs: https://docs.gitlab.com/api/keys/#get-user-by-fingerprint-of-ssh-key https://docs.gitlab.com/api/keys/#get-user-by-deploy-key-fingerprint

func (*KeysService) GetKeyWithUser added in v0.11.0

func (s *KeysService) GetKeyWithUser(key int, options ...RequestOptionFunc) (*Key, *Response, error)

GetKeyWithUser gets a single key by id along with the associated user information.

GitLab API docs: https://docs.gitlab.com/api/keys/#get-ssh-key-with-user-by-id-of-an-ssh-key

type KeysServiceInterface added in v0.126.0

type KeysServiceInterface interface {
	GetKeyWithUser(key int, options ...RequestOptionFunc) (*Key, *Response, error)
	GetKeyByFingerprint(opt *GetKeyByFingerprintOptions, options ...RequestOptionFunc) (*Key, *Response, error)
}
type LDAPGroupLink struct {
	CN           string           `json:"cn"`
	Filter       string           `json:"filter"`
	GroupAccess  AccessLevelValue `json:"group_access"`
	Provider     string           `json:"provider"`
	MemberRoleID int64            `json:"member_role_id"`
}

LDAPGroupLink represents a GitLab LDAP group link.

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

type Label

type Label struct {
	ID                     int    `json:"id"`
	Name                   string `json:"name"`
	Color                  string `json:"color"`
	TextColor              string `json:"text_color"`
	Description            string `json:"description"`
	OpenIssuesCount        int    `json:"open_issues_count"`
	ClosedIssuesCount      int    `json:"closed_issues_count"`
	OpenMergeRequestsCount int    `json:"open_merge_requests_count"`
	Subscribed             bool   `json:"subscribed"`
	Priority               int    `json:"priority"`
	IsProjectLabel         bool   `json:"is_project_label"`
}

Label represents a GitLab label.

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

func (Label) String

func (l Label) String() string

func (*Label) UnmarshalJSON added in v0.11.3

func (l *Label) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type LabelDetails added in v0.116.0

type LabelDetails struct {
	ID              int    `json:"id"`
	Name            string `json:"name"`
	Color           string `json:"color"`
	Description     string `json:"description"`
	DescriptionHTML string `json:"description_html"`
	TextColor       string `json:"text_color"`
}

LabelDetails represents detailed label information.

type LabelEvent added in v0.116.0

type LabelEvent struct {
	ID           int        `json:"id"`
	Action       string     `json:"action"`
	CreatedAt    *time.Time `json:"created_at"`
	ResourceType string     `json:"resource_type"`
	ResourceID   int        `json:"resource_id"`
	User         struct {
		ID        int    `json:"id"`
		Name      string `json:"name"`
		Username  string `json:"username"`
		State     string `json:"state"`
		AvatarURL string `json:"avatar_url"`
		WebURL    string `json:"web_url"`
	} `json:"user"`
	Label struct {
		ID          int    `json:"id"`
		Name        string `json:"name"`
		Color       string `json:"color"`
		TextColor   string `json:"text_color"`
		Description string `json:"description"`
	} `json:"label"`
}

LabelEvent represents a resource label event.

GitLab API docs: https://docs.gitlab.com/api/resource_label_events/#get-single-issue-label-event

type LabelOptions added in v0.116.0

type LabelOptions []string

LabelOptions is a custom type with specific marshaling characteristics.

func (*LabelOptions) EncodeValues added in v0.116.0

func (l *LabelOptions) EncodeValues(key string, v *url.Values) error

EncodeValues implements the query.EncodeValues interface.

func (*LabelOptions) MarshalJSON added in v0.116.0

func (l *LabelOptions) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (*LabelOptions) UnmarshalJSON added in v0.116.0

func (l *LabelOptions) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type Labels

type Labels []string

Labels represents a list of labels.

type LabelsService

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

LabelsService handles communication with the label related methods of the GitLab API.

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

func (*LabelsService) CreateLabel

func (s *LabelsService) CreateLabel(pid any, opt *CreateLabelOptions, options ...RequestOptionFunc) (*Label, *Response, error)

CreateLabel creates a new label for given repository with given name and color.

GitLab API docs: https://docs.gitlab.com/api/labels/#create-a-new-label

func (*LabelsService) DeleteLabel

func (s *LabelsService) DeleteLabel(pid any, lid any, opt *DeleteLabelOptions, options ...RequestOptionFunc) (*Response, error)

DeleteLabel deletes a label given by its name or ID.

GitLab API docs: https://docs.gitlab.com/api/labels/#delete-a-label

func (*LabelsService) GetLabel added in v0.116.0

func (s *LabelsService) GetLabel(pid any, lid any, options ...RequestOptionFunc) (*Label, *Response, error)

GetLabel get a single label for a given project.

GitLab API docs: https://docs.gitlab.com/api/labels/#get-a-single-project-label

func (*LabelsService) ListLabels

func (s *LabelsService) ListLabels(pid any, opt *ListLabelsOptions, options ...RequestOptionFunc) ([]*Label, *Response, error)

ListLabels gets all labels for given project.

GitLab API docs: https://docs.gitlab.com/api/labels/#list-labels

func (*LabelsService) PromoteLabel added in v0.116.0

func (s *LabelsService) PromoteLabel(pid any, lid any, options ...RequestOptionFunc) (*Response, error)

PromoteLabel Promotes a project label to a group label.

GitLab API docs: https://docs.gitlab.com/api/labels/#promote-a-project-label-to-a-group-label

func (*LabelsService) SubscribeToLabel added in v0.7.4

func (s *LabelsService) SubscribeToLabel(pid any, lid any, options ...RequestOptionFunc) (*Label, *Response, error)

SubscribeToLabel subscribes the authenticated user to a label to receive notifications. If the user is already subscribed to the label, the status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/labels/#subscribe-to-a-label

func (*LabelsService) UnsubscribeFromLabel added in v0.7.4

func (s *LabelsService) UnsubscribeFromLabel(pid any, lid any, options ...RequestOptionFunc) (*Response, error)

UnsubscribeFromLabel unsubscribes the authenticated user from a label to not receive notifications from it. If the user is not subscribed to the label, the status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/labels/#unsubscribe-from-a-label

func (*LabelsService) UpdateLabel

func (s *LabelsService) UpdateLabel(pid any, lid any, opt *UpdateLabelOptions, options ...RequestOptionFunc) (*Label, *Response, error)

UpdateLabel updates an existing label with new name or now color. At least one parameter is required, to update the label.

GitLab API docs: https://docs.gitlab.com/api/labels/#edit-an-existing-label

type LabelsServiceInterface added in v0.126.0

type LabelsServiceInterface interface {
	ListLabels(pid any, opt *ListLabelsOptions, options ...RequestOptionFunc) ([]*Label, *Response, error)
	GetLabel(pid any, lid any, options ...RequestOptionFunc) (*Label, *Response, error)
	CreateLabel(pid any, opt *CreateLabelOptions, options ...RequestOptionFunc) (*Label, *Response, error)
	DeleteLabel(pid any, lid any, opt *DeleteLabelOptions, options ...RequestOptionFunc) (*Response, error)
	UpdateLabel(pid any, lid any, opt *UpdateLabelOptions, options ...RequestOptionFunc) (*Label, *Response, error)
	SubscribeToLabel(pid any, lid any, options ...RequestOptionFunc) (*Label, *Response, error)
	UnsubscribeFromLabel(pid any, lid any, options ...RequestOptionFunc) (*Response, error)
	PromoteLabel(pid any, lid any, options ...RequestOptionFunc) (*Response, error)
}

type LastPipeline added in v0.116.0

type LastPipeline struct {
	ID     int    `json:"id"`
	SHA    string `json:"sha"`
	Ref    string `json:"ref"`
	Status string `json:"status"`
	WebURL string `json:"web_url"`
}

LastPipeline represents the last pipeline ran by schedule this will be returned only for individual schedule get operation

type License added in v0.11.4

type License struct {
	ID               int        `json:"id"`
	Plan             string     `json:"plan"`
	CreatedAt        *time.Time `json:"created_at"`
	StartsAt         *ISOTime   `json:"starts_at"`
	ExpiresAt        *ISOTime   `json:"expires_at"`
	HistoricalMax    int        `json:"historical_max"`
	MaximumUserCount int        `json:"maximum_user_count"`
	Expired          bool       `json:"expired"`
	Overage          int        `json:"overage"`
	UserLimit        int        `json:"user_limit"`
	ActiveUsers      int        `json:"active_users"`
	Licensee         struct {
		Name    string `json:"Name"`
		Company string `json:"Company"`
		Email   string `json:"Email"`
	} `json:"licensee"`
	// Add on codes that may occur in legacy licenses that don't have a plan yet.
	// https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/models/license.rb
	AddOns struct {
		GitLabAuditorUser int `json:"GitLab_Auditor_User"`
		GitLabDeployBoard int `json:"GitLab_DeployBoard"`
		GitLabFileLocks   int `json:"GitLab_FileLocks"`
		GitLabGeo         int `json:"GitLab_Geo"`
		GitLabServiceDesk int `json:"GitLab_ServiceDesk"`
	} `json:"add_ons"`
}

License represents a GitLab license.

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

func (License) String added in v0.11.4

func (l License) String() string

type LicenseService added in v0.11.4

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

LicenseService handles communication with the license related methods of the GitLab API.

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

func (*LicenseService) AddLicense added in v0.11.4

func (s *LicenseService) AddLicense(opt *AddLicenseOptions, options ...RequestOptionFunc) (*License, *Response, error)

AddLicense adds a new license.

GitLab API docs: https://docs.gitlab.com/api/license/#add-a-new-license

func (*LicenseService) DeleteLicense added in v0.116.0

func (s *LicenseService) DeleteLicense(licenseID int, options ...RequestOptionFunc) (*Response, error)

DeleteLicense deletes an existing license.

GitLab API docs: https://docs.gitlab.com/api/license/#delete-a-license

func (*LicenseService) GetLicense added in v0.11.4

func (s *LicenseService) GetLicense(options ...RequestOptionFunc) (*License, *Response, error)

GetLicense retrieves information about the current license.

GitLab API docs: https://docs.gitlab.com/api/license/#retrieve-information-about-the-current-license

type LicenseServiceInterface added in v0.126.0

type LicenseServiceInterface interface {
	GetLicense(options ...RequestOptionFunc) (*License, *Response, error)
	AddLicense(opt *AddLicenseOptions, options ...RequestOptionFunc) (*License, *Response, error)
	DeleteLicense(licenseID int, options ...RequestOptionFunc) (*Response, error)
}

type LicenseTemplate added in v0.11.1

type LicenseTemplate struct {
	Key         string   `json:"key"`
	Name        string   `json:"name"`
	Nickname    string   `json:"nickname"`
	Featured    bool     `json:"featured"`
	HTMLURL     string   `json:"html_url"`
	SourceURL   string   `json:"source_url"`
	Description string   `json:"description"`
	Conditions  []string `json:"conditions"`
	Permissions []string `json:"permissions"`
	Limitations []string `json:"limitations"`
	Content     string   `json:"content"`
}

LicenseTemplate represents a license template.

GitLab API docs: https://docs.gitlab.com/api/templates/licenses/

type LicenseTemplatesService added in v0.11.1

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

LicenseTemplatesService handles communication with the license templates related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/templates/licenses/

func (*LicenseTemplatesService) GetLicenseTemplate added in v0.11.1

func (s *LicenseTemplatesService) GetLicenseTemplate(template string, opt *GetLicenseTemplateOptions, options ...RequestOptionFunc) (*LicenseTemplate, *Response, error)

GetLicenseTemplate get a single license template. You can pass parameters to replace the license placeholder.

GitLab API docs: https://docs.gitlab.com/api/templates/licenses/#single-license-template

func (*LicenseTemplatesService) ListLicenseTemplates added in v0.11.1

func (s *LicenseTemplatesService) ListLicenseTemplates(opt *ListLicenseTemplatesOptions, options ...RequestOptionFunc) ([]*LicenseTemplate, *Response, error)

ListLicenseTemplates get all license templates.

GitLab API docs: https://docs.gitlab.com/api/templates/licenses/#list-license-templates

type LicenseTemplatesServiceInterface added in v0.126.0

type LicenseTemplatesServiceInterface interface {
	ListLicenseTemplates(opt *ListLicenseTemplatesOptions, options ...RequestOptionFunc) ([]*LicenseTemplate, *Response, error)
	GetLicenseTemplate(template string, opt *GetLicenseTemplateOptions, options ...RequestOptionFunc) (*LicenseTemplate, *Response, error)
}

type LinePosition added in v0.116.0

type LinePosition struct {
	LineCode string `json:"line_code"`
	Type     string `json:"type"`
	OldLine  int    `json:"old_line"`
	NewLine  int    `json:"new_line"`
}

LinePosition represents a position in a line range.

type LinePositionOptions added in v0.116.0

type LinePositionOptions struct {
	LineCode *string `url:"line_code,omitempty" json:"line_code,omitempty"`
	Type     *string `url:"type,omitempty" json:"type,omitempty"`
	OldLine  *int    `url:"old_line,omitempty" json:"old_line,omitempty"`
	NewLine  *int    `url:"new_line,omitempty" json:"new_line,omitempty"`
}

LinePositionOptions represents the line position option of a discussion.

type LineRange added in v0.116.0

type LineRange struct {
	StartRange *LinePosition `json:"start"`
	EndRange   *LinePosition `json:"end"`
}

LineRange represents the range of a note.

type LineRangeOptions added in v0.116.0

type LineRangeOptions struct {
	Start *LinePositionOptions `url:"start,omitempty" json:"start,omitempty"`
	End   *LinePositionOptions `url:"end,omitempty" json:"end,omitempty"`
}

LineRangeOptions represents the line range option of a discussion.

type LinkTypeValue added in v0.116.0

type LinkTypeValue string

LinkTypeValue represents a release link type.

const (
	ImageLinkType   LinkTypeValue = "image"
	OtherLinkType   LinkTypeValue = "other"
	PackageLinkType LinkTypeValue = "package"
	RunbookLinkType LinkTypeValue = "runbook"
)

List of available release link types.

GitLab API docs: https://docs.gitlab.com/api/releases/links/#create-a-release-link

type Links struct {
	Self          string `json:"self"`
	Issues        string `json:"issues"`
	MergeRequests string `json:"merge_requests"`
	RepoBranches  string `json:"repo_branches"`
	Labels        string `json:"labels"`
	Events        string `json:"events"`
	Members       string `json:"members"`
	ClusterAgents string `json:"cluster_agents"`
}

Links represents a project web links for self, issues, merge_requests, repo_branches, labels, events, members.

type LintResult added in v0.7.5

type LintResult struct {
	Status     string   `json:"status"`
	Errors     []string `json:"errors"`
	Warnings   []string `json:"warnings"`
	MergedYaml string   `json:"merged_yaml"`
}

LintResult represents the linting results.

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

type ListAccessRequestsOptions added in v0.11.1

type ListAccessRequestsOptions ListOptions

ListAccessRequestsOptions represents the available ListProjectAccessRequests() or ListGroupAccessRequests() options.

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

type ListAgentTokensOptions added in v0.116.0

type ListAgentTokensOptions ListOptions

ListAgentTokensOptions represents the available ListAgentTokens() options.

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

type ListAgentsOptions added in v0.116.0

type ListAgentsOptions ListOptions

ListAgentsOptions represents the available ListAgents() options.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#list-the-agents-for-a-project

type ListAllSnippetsOptions added in v0.116.0

type ListAllSnippetsOptions struct {
	ListOptions
	CreatedAfter      *ISOTime `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore     *ISOTime `url:"created_before,omitempty" json:"created_before,omitempty"`
	RepositoryStorage *string  `url:"repository_storage,omitempty" json:"repository_storage,omitempty"`
}

ListAllSnippetsOptions represents the available ListAllSnippets() options.

GitLab API docs: https://docs.gitlab.com/api/snippets/#list-all-snippets

type ListApplicationsOptions added in v0.116.0

type ListApplicationsOptions ListOptions

ListApplicationsOptions represents the available ListApplications() options.

type ListAuditEventsOptions added in v0.116.0

type ListAuditEventsOptions struct {
	ListOptions
	CreatedAfter  *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
}

ListAuditEventsOptions represents the available ListProjectAuditEvents(), ListGroupAuditEvents() or ListInstanceAuditEvents() options.

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

type ListAwardEmojiOptions added in v0.10.6

type ListAwardEmojiOptions ListOptions

ListAwardEmojiOptions represents the available options for listing emoji for each resource

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

type ListBillableGroupMembersOptions added in v0.116.0

type ListBillableGroupMembersOptions struct {
	ListOptions
	Search *string `url:"search,omitempty" json:"search,omitempty"`
	Sort   *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListBillableGroupMembersOptions represents the available ListBillableGroupMembers() options.

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

type ListBranchesOptions added in v0.6.0

type ListBranchesOptions struct {
	ListOptions
	Search *string `url:"search,omitempty" json:"search,omitempty"`
	Regex  *string `url:"regex,omitempty" json:"regex,omitempty"`
}

ListBranchesOptions represents the available ListBranches() options.

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

type ListBroadcastMessagesOptions added in v0.8.1

type ListBroadcastMessagesOptions ListOptions

ListBroadcastMessagesOptions represents the available ListBroadcastMessages() options.

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

type ListCIYMLTemplatesOptions added in v0.11.1

type ListCIYMLTemplatesOptions ListOptions

ListCIYMLTemplatesOptions represents the available ListAllTemplates() options.

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

type ListClientKeysOptions added in v0.116.0

type ListClientKeysOptions ListOptions

ListClientKeysOptions represents the available ListClientKeys() options.

GitLab API docs: https://docs.gitlab.com/api/error_tracking/#list-project-client-keys

type ListCommitDiscussionsOptions added in v0.11.2

type ListCommitDiscussionsOptions ListOptions

ListCommitDiscussionsOptions represents the available ListCommitDiscussions() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-commit-discussion-items

type ListCommitsOptions

type ListCommitsOptions struct {
	ListOptions
	RefName     *string    `url:"ref_name,omitempty" json:"ref_name,omitempty"`
	Since       *time.Time `url:"since,omitempty" json:"since,omitempty"`
	Until       *time.Time `url:"until,omitempty" json:"until,omitempty"`
	Path        *string    `url:"path,omitempty" json:"path,omitempty"`
	Author      *string    `url:"author,omitempty" json:"author,omitempty"`
	All         *bool      `url:"all,omitempty" json:"all,omitempty"`
	WithStats   *bool      `url:"with_stats,omitempty" json:"with_stats,omitempty"`
	FirstParent *bool      `url:"first_parent,omitempty" json:"first_parent,omitempty"`
	Trailers    *bool      `url:"trailers,omitempty" json:"trailers,omitempty"`
}

ListCommitsOptions represents the available ListCommits() options.

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

type ListContributionEventsOptions added in v0.8.0

type ListContributionEventsOptions struct {
	ListOptions
	Action     *EventTypeValue       `url:"action,omitempty" json:"action,omitempty"`
	TargetType *EventTargetTypeValue `url:"target_type,omitempty" json:"target_type,omitempty"`
	Before     *ISOTime              `url:"before,omitempty" json:"before,omitempty"`
	After      *ISOTime              `url:"after,omitempty" json:"after,omitempty"`
	Sort       *string               `url:"sort,omitempty" json:"sort,omitempty"`
}

ListContributionEventsOptions represents the options for GetUserContributionEvents

GitLap API docs: https://docs.gitlab.com/api/events/#get-user-contribution-events

type ListContributorsOptions added in v0.8.1

type ListContributorsOptions struct {
	ListOptions
	OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort    *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListContributorsOptions represents the available ListContributors() options.

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

type ListDescendantGroupsOptions added in v0.116.0

type ListDescendantGroupsOptions ListGroupsOptions

ListDescendantGroupsOptions represents the available ListDescendantGroups() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-descendant-groups

type ListDockerfileTemplatesOptions added in v0.116.0

type ListDockerfileTemplatesOptions ListOptions

ListDockerfileTemplatesOptions represents the available ListAllTemplates() options.

GitLab API docs: https://docs.gitlab.com/api/templates/dockerfiles/#list-dockerfile-templates

type ListDraftNotesOptions added in v0.116.0

type ListDraftNotesOptions struct {
	ListOptions
	OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort    *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListDraftNotesOptions represents the available ListDraftNotes() options.

GitLab API docs: https://docs.gitlab.com/api/draft_notes/#list-all-merge-request-draft-notes

type ListEmailsForUserOptions added in v0.8.1

type ListEmailsForUserOptions ListOptions

ListEmailsForUserOptions represents the available ListEmailsForUser() options.

GitLab API docs: https://docs.gitlab.com/api/user_email_addresses/#list-all-email-addresses-for-a-user

type ListEnterpriseUsersOptions added in v0.128.0

type ListEnterpriseUsersOptions struct {
	ListOptions
	Username      string     `url:"username,omitempty" json:"username,omitempty"`
	Search        string     `url:"search,omitempty" json:"search,omitempty"`
	Active        bool       `url:"active,omitempty" json:"active,omitempty"`
	Blocked       bool       `url:"blocked,omitempty" json:"blocked,omitempty"`
	CreatedAfter  *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
	TwoFactor     string     `url:"two_factor,omitempty" json:"two_factor,omitempty"`
}

ListEnterpriseUsersOptions represents the available ListEnterpriseUsers() options.

GitLab API docs: https://docs.gitlab.com/api/group_enterprise_users/#list-all-enterprise-users

type ListEnvironmentsOptions added in v0.7.0

type ListEnvironmentsOptions struct {
	ListOptions
	Name   *string `url:"name,omitempty" json:"name,omitempty"`
	Search *string `url:"search,omitempty" json:"search,omitempty"`
	States *string `url:"states,omitempty" json:"states,omitempty"`
}

ListEnvironmentsOptions represents the available ListEnvironments() options.

GitLab API docs: https://docs.gitlab.com/api/environments/#list-environments

type ListEpicNotesOptions added in v0.116.0

type ListEpicNotesOptions struct {
	ListOptions
	OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort    *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListEpicNotesOptions represents the available ListEpicNotes() options. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/notes/#list-all-epic-notes

type ListFeatureFlagUserListsOptions added in v0.128.0

type ListFeatureFlagUserListsOptions struct {
	ListOptions
	Search string `url:"search,omitempty" json:"search,omitempty"`
}

ListFeatureFlagUserListsOptions represents the available ListFeatureFlagUserLists() options.

GitLab API docs: https://docs.gitlab.com/api/feature_flag_user_lists/#list-all-feature-flag-user-lists-for-a-project

type ListFreezePeriodsOptions added in v0.116.0

type ListFreezePeriodsOptions ListOptions

ListFreezePeriodsOptions represents the available ListFreezePeriodsOptions() options.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#list-freeze-periods

type ListGeoNodesOptions added in v0.116.0

type ListGeoNodesOptions ListOptions

ListGeoNodesOptions represents the available ListGeoNodes() options. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#retrieve-configuration-about-all-geo-nodes

type ListGeoSitesOptions added in v0.128.0

type ListGeoSitesOptions ListOptions

ListGeoSitesOptions represents the available ListGeoSites() options.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#retrieve-configuration-about-all-geo-sites

type ListGroupAccessTokensOptions added in v0.116.0

type ListGroupAccessTokensOptions struct {
	ListOptions
	CreatedAfter   *ISOTime          `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore  *ISOTime          `url:"created_before,omitempty" json:"created_before,omitempty"`
	LastUsedAfter  *ISOTime          `url:"last_used_after,omitempty" json:"last_used_after,omitempty"`
	LastUsedBefore *ISOTime          `url:"last_used_before,omitempty" json:"last_used_before,omitempty"`
	Revoked        *bool             `url:"revoked,omitempty" json:"revoked,omitempty"`
	Search         *string           `url:"search,omitempty" json:"search,omitempty"`
	State          *AccessTokenState `url:"state,omitempty" json:"state,omitempty"`
}

ListGroupAccessTokensOptions represents the available options for listing access tokens in a group.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#list-all-group-access-tokens

type ListGroupBadgesOptions added in v0.116.0

type ListGroupBadgesOptions struct {
	ListOptions
	Name *string `url:"name,omitempty" json:"name,omitempty"`
}

ListGroupBadgesOptions represents the available ListGroupBadges() options.

GitLab API docs: https://docs.gitlab.com/api/group_badges/#list-all-badges-of-a-group

type ListGroupDeployTokensOptions added in v0.116.0

type ListGroupDeployTokensOptions ListOptions

ListGroupDeployTokensOptions represents the available ListGroupDeployTokens() options.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#list-group-deploy-tokens

type ListGroupEpicBoardsOptions added in v0.116.0

type ListGroupEpicBoardsOptions ListOptions

ListGroupEpicBoardsOptions represents the available ListGroupEpicBoards() options.

GitLab API docs: https://docs.gitlab.com/api/group_epic_boards/#list-all-epic-boards-in-a-group

type ListGroupEpicDiscussionsOptions added in v0.11.2

type ListGroupEpicDiscussionsOptions ListOptions

ListGroupEpicDiscussionsOptions represents the available ListEpicDiscussions() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-group-epic-discussion-items

type ListGroupEpicsOptions added in v0.116.0

type ListGroupEpicsOptions struct {
	ListOptions
	AuthorID                *int          `url:"author_id,omitempty" json:"author_id,omitempty"`
	Labels                  *LabelOptions `url:"labels,comma,omitempty" json:"labels,omitempty"`
	WithLabelDetails        *bool         `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
	OrderBy                 *string       `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                    *string       `url:"sort,omitempty" json:"sort,omitempty"`
	Search                  *string       `url:"search,omitempty" json:"search,omitempty"`
	State                   *string       `url:"state,omitempty" json:"state,omitempty"`
	CreatedAfter            *time.Time    `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore           *time.Time    `url:"created_before,omitempty" json:"created_before,omitempty"`
	UpdatedAfter            *time.Time    `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore           *time.Time    `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	IncludeAncestorGroups   *bool         `url:"include_ancestor_groups,omitempty" json:"include_ancestor_groups,omitempty"`
	IncludeDescendantGroups *bool         `url:"include_descendant_groups,omitempty" json:"include_descendant_groups,omitempty"`
	MyReactionEmoji         *string       `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
}

ListGroupEpicsOptions represents the available ListGroupEpics() options. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/epics/#list-epics-for-a-group

type ListGroupHooksOptions added in v0.116.0

type ListGroupHooksOptions ListOptions

ListGroupHooksOptions represents the available ListGroupHooks() options.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#list-group-hooks

type ListGroupIssueBoardListsOptions added in v0.11.0

type ListGroupIssueBoardListsOptions ListOptions

ListGroupIssueBoardListsOptions represents the available ListGroupIssueBoardLists() options.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#list-group-issue-board-lists

type ListGroupIssueBoardsOptions added in v0.11.0

type ListGroupIssueBoardsOptions ListOptions

ListGroupIssueBoardsOptions represents the available ListGroupIssueBoards() options.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#list-all-group-issue-boards-in-a-group

type ListGroupIssuesOptions added in v0.6.0

type ListGroupIssuesOptions struct {
	ListOptions
	State             *string       `url:"state,omitempty" json:"state,omitempty"`
	Labels            *LabelOptions `url:"labels,comma,omitempty" json:"labels,omitempty"`
	NotLabels         *LabelOptions `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
	WithLabelDetails  *bool         `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
	IIDs              *[]int        `url:"iids[],omitempty" json:"iids,omitempty"`
	Milestone         *string       `url:"milestone,omitempty" json:"milestone,omitempty"`
	NotMilestone      *string       `url:"not[milestone],omitempty" json:"not[milestone],omitempty"`
	Scope             *string       `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID          *int          `url:"author_id,omitempty" json:"author_id,omitempty"`
	NotAuthorID       *int          `url:"not[author_id],omitempty" json:"not[author_id],omitempty"`
	AuthorUsername    *string       `url:"author_username,omitempty" json:"author_username,omitempty"`
	NotAuthorUsername *string       `url:"not[author_username],omitempty" json:"not[author_username],omitempty"`

	// AssigneeID is defined as an int the the documentation, however, the field
	// must be able to accept Assignee IDs and the words 'None' and 'Any'.  Use
	// *AssigneIDValue instead of *int.
	AssigneeID          *AssigneeIDValue `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	NotAssigneeID       *int             `url:"not[assignee_id],omitempty" json:"not[assignee_id],omitempty"`
	AssigneeUsername    *string          `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
	NotAssigneeUsername *string          `url:"not[assignee_username],omitempty" json:"not[assignee_username],omitempty"`
	MyReactionEmoji     *string          `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
	NotMyReactionEmoji  *string          `url:"not[my_reaction_emoji],omitempty" json:"not[my_reaction_emoji],omitempty"`
	OrderBy             *string          `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                *string          `url:"sort,omitempty" json:"sort,omitempty"`
	Search              *string          `url:"search,omitempty" json:"search,omitempty"`
	NotSearch           *string          `url:"not[search],omitempty" json:"not[search],omitempty"`
	In                  *string          `url:"in,omitempty" json:"in,omitempty"`
	NotIn               *string          `url:"not[in],omitempty" json:"not[in],omitempty"`
	CreatedAfter        *time.Time       `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore       *time.Time       `url:"created_before,omitempty" json:"created_before,omitempty"`
	DueDate             *string          `url:"due_date,omitempty" json:"due_date,omitempty"`
	UpdatedAfter        *time.Time       `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore       *time.Time       `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	Confidential        *bool            `url:"confidential,omitempty" json:"confidential,omitempty"`
	IssueType           *string          `url:"issue_type,omitempty" json:"issue_type,omitempty"`
	IterationID         *int             `url:"iteration_id,omitempty" json:"iteration_id,omitempty"`
}

ListGroupIssuesOptions represents the available ListGroupIssues() options.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-group-issues

type ListGroupIterationsOptions added in v0.116.0

type ListGroupIterationsOptions struct {
	ListOptions
	State            *string `url:"state,omitempty" json:"state,omitempty"`
	Search           *string `url:"search,omitempty" json:"search,omitempty"`
	IncludeAncestors *bool   `url:"include_ancestors,omitempty" json:"include_ancestors,omitempty"`
}

ListGroupIterationsOptions contains the available ListGroupIterations() options

GitLab API docs: https://docs.gitlab.com/api/group_iterations/#list-group-iterations

type ListGroupLabelsOptions added in v0.116.0

type ListGroupLabelsOptions struct {
	ListOptions
	WithCounts               *bool   `url:"with_counts,omitempty" json:"with_counts,omitempty"`
	IncludeAncestorGroups    *bool   `url:"include_ancestor_groups,omitempty" json:"include_ancestor_groups,omitempty"`
	IncludeDescendantGrouops *bool   `url:"include_descendant_groups,omitempty" json:"include_descendant_groups,omitempty"`
	OnlyGroupLabels          *bool   `url:"only_group_labels,omitempty" json:"only_group_labels,omitempty"`
	Search                   *string `url:"search,omitempty" json:"search,omitempty"`
}

ListGroupLabelsOptions represents the available ListGroupLabels() options.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#list-group-labels

type ListGroupMembersOptions added in v0.4.0

type ListGroupMembersOptions struct {
	ListOptions
	Query   *string `url:"query,omitempty" json:"query,omitempty"`
	UserIDs *[]int  `url:"user_ids[],omitempty" json:"user_ids,omitempty"`
}

ListGroupMembersOptions represents the available ListGroupMembers() and ListAllGroupMembers() options.

GitLab API docs: https://docs.gitlab.com/api/members/#list-all-members-of-a-group-or-project

type ListGroupMergeRequestsOptions added in v0.11.1

type ListGroupMergeRequestsOptions struct {
	ListOptions
	State                  *string           `url:"state,omitempty" json:"state,omitempty"`
	OrderBy                *string           `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                   *string           `url:"sort,omitempty" json:"sort,omitempty"`
	Milestone              *string           `url:"milestone,omitempty" json:"milestone,omitempty"`
	View                   *string           `url:"view,omitempty" json:"view,omitempty"`
	Labels                 *LabelOptions     `url:"labels,comma,omitempty" json:"labels,omitempty"`
	NotLabels              *LabelOptions     `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
	WithLabelsDetails      *bool             `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
	WithMergeStatusRecheck *bool             `url:"with_merge_status_recheck,omitempty" json:"with_merge_status_recheck,omitempty"`
	CreatedAfter           *time.Time        `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore          *time.Time        `url:"created_before,omitempty" json:"created_before,omitempty"`
	UpdatedAfter           *time.Time        `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore          *time.Time        `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	Scope                  *string           `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID               *int              `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername         *string           `url:"author_username,omitempty" json:"author_username,omitempty"`
	NotAuthorUsername      *string           `url:"not[author_username],omitempty" json:"not[author_username],omitempty"`
	AssigneeID             *AssigneeIDValue  `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	ApproverIDs            *ApproverIDsValue `url:"approver_ids,omitempty" json:"approver_ids,omitempty"`
	ApprovedByIDs          *ApproverIDsValue `url:"approved_by_ids,omitempty" json:"approved_by_ids,omitempty"`
	ReviewerID             *ReviewerIDValue  `url:"reviewer_id,omitempty" json:"reviewer_id,omitempty"`
	ReviewerUsername       *string           `url:"reviewer_username,omitempty" json:"reviewer_username,omitempty"`
	MyReactionEmoji        *string           `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
	SourceBranch           *string           `url:"source_branch,omitempty" json:"source_branch,omitempty"`
	TargetBranch           *string           `url:"target_branch,omitempty" json:"target_branch,omitempty"`
	Search                 *string           `url:"search,omitempty" json:"search,omitempty"`
	In                     *string           `url:"in,omitempty" json:"in,omitempty"`
	Draft                  *bool             `url:"draft,omitempty" json:"draft,omitempty"`
	WIP                    *string           `url:"wip,omitempty" json:"wip,omitempty"`
}

ListGroupMergeRequestsOptions represents the available ListGroupMergeRequests() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-group-merge-requests

type ListGroupMilestonesOptions added in v0.10.0

type ListGroupMilestonesOptions struct {
	ListOptions
	IIDs               *[]int   `url:"iids[],omitempty" json:"iids,omitempty"`
	State              *string  `url:"state,omitempty" json:"state,omitempty"`
	Title              *string  `url:"title,omitempty" json:"title,omitempty"`
	Search             *string  `url:"search,omitempty" json:"search,omitempty"`
	SearchTitle        *string  `url:"search_title,omitempty" json:"search_title,omitempty"`
	IncludeAncestors   *bool    `url:"include_ancestors,omitempty" json:"include_ancestors,omitempty"`
	IncludeDescendents *bool    `url:"include_descendents,omitempty" json:"include_descendents,omitempty"`
	UpdatedBefore      *ISOTime `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	UpdatedAfter       *ISOTime `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	ContainingDate     *ISOTime `url:"containing_date,omitempty" json:"containing_date,omitempty"`
	StartDate          *ISOTime `url:"start_date,omitempty" json:"start_date,omitempty"`
	EndDate            *ISOTime `url:"end_date,omitempty" json:"end_date,omitempty"`

	// Deprecated: in GitLab 16.7, use IncludeAncestors instead
	IncludeParentMilestones *bool `url:"include_parent_milestones,omitempty" json:"include_parent_milestones,omitempty"`
}

ListGroupMilestonesOptions represents the available ListGroupMilestones() options.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#list-group-milestones

type ListGroupPackagesOptions added in v0.116.0

type ListGroupPackagesOptions struct {
	ListOptions
	ExcludeSubGroups   *bool   `url:"exclude_subgroups,omitempty" json:"exclude_subgroups,omitempty"`
	OrderBy            *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort               *string `url:"sort,omitempty" json:"sort,omitempty"`
	PackageType        *string `url:"package_type,omitempty" json:"package_type,omitempty"`
	PackageName        *string `url:"package_name,omitempty" json:"package_name,omitempty"`
	IncludeVersionless *bool   `url:"include_versionless,omitempty" json:"include_versionless,omitempty"`
	Status             *string `url:"status,omitempty" json:"status,omitempty"`
}

ListGroupPackagesOptions represents the available ListGroupPackages() options.

GitLab API docs: https://docs.gitlab.com/api/packages/#for-a-group

type ListGroupProjectsOptions added in v0.4.0

type ListGroupProjectsOptions struct {
	ListOptions
	Archived                 *bool             `url:"archived,omitempty" json:"archived,omitempty"`
	IncludeSubGroups         *bool             `url:"include_subgroups,omitempty" json:"include_subgroups,omitempty"`
	MinAccessLevel           *AccessLevelValue `url:"min_access_level,omitempty" json:"min_access_level,omitempty"`
	OrderBy                  *string           `url:"order_by,omitempty" json:"order_by,omitempty"`
	Owned                    *bool             `url:"owned,omitempty" json:"owned,omitempty"`
	Search                   *string           `url:"search,omitempty" json:"search,omitempty"`
	Simple                   *bool             `url:"simple,omitempty" json:"simple,omitempty"`
	Sort                     *string           `url:"sort,omitempty" json:"sort,omitempty"`
	Starred                  *bool             `url:"starred,omitempty" json:"starred,omitempty"`
	Topic                    *string           `url:"topic,omitempty" json:"topic,omitempty"`
	Visibility               *VisibilityValue  `url:"visibility,omitempty" json:"visibility,omitempty"`
	WithCustomAttributes     *bool             `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
	WithIssuesEnabled        *bool             `url:"with_issues_enabled,omitempty" json:"with_issues_enabled,omitempty"`
	WithMergeRequestsEnabled *bool             `url:"with_merge_requests_enabled,omitempty" json:"with_merge_requests_enabled,omitempty"`
	WithSecurityReports      *bool             `url:"with_security_reports,omitempty" json:"with_security_reports,omitempty"`
	WithShared               *bool             `url:"with_shared,omitempty" json:"with_shared,omitempty"`
}

ListGroupProjectsOptions represents the available ListGroup() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-projects

type ListGroupProtectedEnvironmentsOptions added in v0.116.0

type ListGroupProtectedEnvironmentsOptions ListOptions

ListGroupProtectedEnvironmentsOptions represents the available ListGroupProtectedEnvironments() options.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#list-group-level-protected-environments

type ListGroupReleasesOptions added in v0.124.0

type ListGroupReleasesOptions struct {
	ListOptions
	Simple *bool `url:"simple,omitempty" json:"simple,omitempty"`
}

ListGroupReleasesOptions represents the available ListGroupReleases() options.

GitLab API docs: https://docs.gitlab.com/api/group_releases.html#list-group-releases

type ListGroupSharedProjectsOptions added in v0.125.0

type ListGroupSharedProjectsOptions struct {
	ListOptions
	Archived                 *bool             `url:"archived,omitempty" json:"archived,omitempty"`
	MinAccessLevel           *AccessLevelValue `url:"min_access_level,omitempty" json:"min_access_level,omitempty"`
	OrderBy                  *string           `url:"order_by,omitempty" json:"order_by,omitempty"`
	Search                   *string           `url:"search,omitempty" json:"search,omitempty"`
	Simple                   *bool             `url:"simple,omitempty" json:"simple,omitempty"`
	Sort                     *string           `url:"sort,omitempty" json:"sort,omitempty"`
	Starred                  *bool             `url:"starred,omitempty" json:"starred,omitempty"`
	Visibility               *VisibilityValue  `url:"visibility,omitempty" json:"visibility,omitempty"`
	WithCustomAttributes     *bool             `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
	WithIssuesEnabled        *bool             `url:"with_issues_enabled,omitempty" json:"with_issues_enabled,omitempty"`
	WithMergeRequestsEnabled *bool             `url:"with_merge_requests_enabled,omitempty" json:"with_merge_requests_enabled,omitempty"`
}

ListGroupSharedProjectsOptions represents the available ListGroupSharedProjects() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-shared-projects

type ListGroupVariablesOptions added in v0.116.0

type ListGroupVariablesOptions ListOptions

ListGroupVariablesOptions represents the available options for listing variables for a group.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#list-group-variables

type ListGroupWikisOptions added in v0.116.0

type ListGroupWikisOptions struct {
	WithContent *bool `url:"with_content,omitempty" json:"with_content,omitempty"`
}

ListGroupWikisOptions represents the available ListGroupWikis options.

GitLab API docs: https://docs.gitlab.com/api/group_wikis/#list-wiki-pages

type ListGroupsOptions

type ListGroupsOptions struct {
	ListOptions
	SkipGroups           *[]int            `url:"skip_groups,omitempty" del:"," json:"skip_groups,omitempty"`
	AllAvailable         *bool             `url:"all_available,omitempty" json:"all_available,omitempty"`
	Search               *string           `url:"search,omitempty" json:"search,omitempty"`
	OrderBy              *string           `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                 *string           `url:"sort,omitempty" json:"sort,omitempty"`
	Statistics           *bool             `url:"statistics,omitempty" json:"statistics,omitempty"`
	WithCustomAttributes *bool             `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
	Owned                *bool             `url:"owned,omitempty" json:"owned,omitempty"`
	MinAccessLevel       *AccessLevelValue `url:"min_access_level,omitempty" json:"min_access_level,omitempty"`
	TopLevelOnly         *bool             `url:"top_level_only,omitempty" json:"top_level_only,omitempty"`
	RepositoryStorage    *string           `url:"repository_storage,omitempty" json:"repository_storage,omitempty"`
}

ListGroupsOptions represents the available ListGroups() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-groups

type ListGroupsRunnersOptions added in v0.116.0

type ListGroupsRunnersOptions struct {
	ListOptions
	Type    *string   `url:"type,omitempty" json:"type,omitempty"`
	Status  *string   `url:"status,omitempty" json:"status,omitempty"`
	TagList *[]string `url:"tag_list,comma,omitempty" json:"tag_list,omitempty"`
}

ListGroupsRunnersOptions represents the available ListGroupsRunners() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-groups-runners

type ListInstanceDeployKeysOptions added in v0.116.0

type ListInstanceDeployKeysOptions struct {
	ListOptions
	Public *bool `url:"public,omitempty" json:"public,omitempty"`
}

ListProjectDeployKeysOptions represents the available ListAllDeployKeys() options.

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#list-all-deploy-keys

type ListInstanceVariablesOptions added in v0.116.0

type ListInstanceVariablesOptions ListOptions

ListInstanceVariablesOptions represents the available options for listing variables for an instance.

GitLab API docs: https://docs.gitlab.com/api/instance_level_ci_variables/#list-all-instance-variables

type ListIssueBoardsOptions added in v0.8.1

type ListIssueBoardsOptions ListOptions

ListIssueBoardsOptions represents the available ListIssueBoards() options.

GitLab API docs: https://docs.gitlab.com/api/boards/#list-project-issue-boards

type ListIssueDiscussionsOptions added in v0.11.2

type ListIssueDiscussionsOptions ListOptions

ListIssueDiscussionsOptions represents the available ListIssueDiscussions() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-issue-discussion-items

type ListIssueNotesOptions

type ListIssueNotesOptions struct {
	ListOptions
	OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort    *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListIssueNotesOptions represents the available ListIssueNotes() options.

GitLab API docs: https://docs.gitlab.com/api/notes/#list-project-issue-notes

type ListIssuesOptions

type ListIssuesOptions struct {
	ListOptions
	State               *string          `url:"state,omitempty" json:"state,omitempty"`
	Labels              *LabelOptions    `url:"labels,comma,omitempty" json:"labels,omitempty"`
	NotLabels           *LabelOptions    `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
	WithLabelDetails    *bool            `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
	Milestone           *string          `url:"milestone,omitempty" json:"milestone,omitempty"`
	NotMilestone        *string          `url:"not[milestone],omitempty" json:"not[milestone],omitempty"`
	Scope               *string          `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID            *int             `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername      *string          `url:"author_username,omitempty" json:"author_username,omitempty"`
	NotAuthorUsername   *string          `url:"not[author_username],omitempty" json:"not[author_username],omitempty"`
	NotAuthorID         *[]int           `url:"not[author_id],omitempty" json:"not[author_id],omitempty"`
	AssigneeID          *AssigneeIDValue `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	NotAssigneeID       *[]int           `url:"not[assignee_id],omitempty" json:"not[assignee_id],omitempty"`
	AssigneeUsername    *string          `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
	NotAssigneeUsername *string          `url:"not[assignee_username],omitempty" json:"not[assignee_username],omitempty"`
	MyReactionEmoji     *string          `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
	NotMyReactionEmoji  *[]string        `url:"not[my_reaction_emoji],omitempty" json:"not[my_reaction_emoji],omitempty"`
	IIDs                *[]int           `url:"iids[],omitempty" json:"iids,omitempty"`
	In                  *string          `url:"in,omitempty" json:"in,omitempty"`
	NotIn               *string          `url:"not[in],omitempty" json:"not[in],omitempty"`
	OrderBy             *string          `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                *string          `url:"sort,omitempty" json:"sort,omitempty"`
	Search              *string          `url:"search,omitempty" json:"search,omitempty"`
	NotSearch           *string          `url:"not[search],omitempty" json:"not[search],omitempty"`
	CreatedAfter        *time.Time       `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore       *time.Time       `url:"created_before,omitempty" json:"created_before,omitempty"`
	DueDate             *string          `url:"due_date,omitempty" json:"due_date,omitempty"`
	UpdatedAfter        *time.Time       `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore       *time.Time       `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	Confidential        *bool            `url:"confidential,omitempty" json:"confidential,omitempty"`
	IssueType           *string          `url:"issue_type,omitempty" json:"issue_type,omitempty"`
	IterationID         *int             `url:"iteration_id,omitempty" json:"iteration_id,omitempty"`
}

ListIssuesOptions represents the available ListIssues() options.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-issues

type ListIterationEventsOptions added in v0.116.0

type ListIterationEventsOptions struct {
	ListOptions
}

ListIterationEventsOptions represents the options for all resource state events list methods.

GitLab API docs: https://docs.gitlab.com/api/resource_iteration_events/#list-project-issue-iteration-events

type ListJobsOptions added in v0.6.0

type ListJobsOptions struct {
	ListOptions
	Scope          *[]BuildStateValue `url:"scope[],omitempty" json:"scope,omitempty"`
	IncludeRetried *bool              `url:"include_retried,omitempty" json:"include_retried,omitempty"`
}

ListJobsOptions represents the available ListProjectJobs() options.

GitLab API docs: https://docs.gitlab.com/api/jobs/#list-project-jobs

type ListLabelEventsOptions added in v0.116.0

type ListLabelEventsOptions struct {
	ListOptions
}

ListLabelEventsOptions represents the options for all resource label events list methods.

GitLab API docs: https://docs.gitlab.com/api/resource_label_events/#list-project-issue-label-events

type ListLabelsOptions added in v0.8.1

type ListLabelsOptions struct {
	ListOptions
	WithCounts            *bool   `url:"with_counts,omitempty" json:"with_counts,omitempty"`
	IncludeAncestorGroups *bool   `url:"include_ancestor_groups,omitempty" json:"include_ancestor_groups,omitempty"`
	Search                *string `url:"search,omitempty" json:"search,omitempty"`
}

ListLabelsOptions represents the available ListLabels() options.

GitLab API docs: https://docs.gitlab.com/api/labels/#list-labels

type ListLicenseTemplatesOptions added in v0.11.1

type ListLicenseTemplatesOptions struct {
	ListOptions
	Popular *bool `url:"popular,omitempty" json:"popular,omitempty"`
}

ListLicenseTemplatesOptions represents the available ListLicenseTemplates() options.

GitLab API docs: https://docs.gitlab.com/api/templates/licenses/#list-license-templates

type ListMarkdownUploadsOptions added in v0.129.0

type ListMarkdownUploadsOptions struct {
	ListOptions
}

type ListMembershipsForBillableGroupMemberOptions added in v0.116.0

type ListMembershipsForBillableGroupMemberOptions = ListOptions

ListMembershipsForBillableGroupMemberOptions represents the available ListMembershipsForBillableGroupMember() options.

GitLab API docs: https://docs.gitlab.com/api/members/#list-memberships-for-a-billable-member-of-a-group

type ListMergeRequestDiffsOptions added in v0.116.0

type ListMergeRequestDiffsOptions struct {
	ListOptions
	Unidiff *bool `url:"unidiff,omitempty" json:"unidiff,omitempty"`
}

ListMergeRequestDiffsOptions represents the available ListMergeRequestDiffs() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-merge-request-diffs

type ListMergeRequestDiscussionsOptions added in v0.11.2

type ListMergeRequestDiscussionsOptions ListOptions

ListMergeRequestDiscussionsOptions represents the available ListMergeRequestDiscussions() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-merge-request-discussion-items

type ListMergeRequestNotesOptions added in v0.8.1

type ListMergeRequestNotesOptions struct {
	ListOptions
	OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort    *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListMergeRequestNotesOptions represents the available ListMergeRequestNotes() options.

GitLab API docs: https://docs.gitlab.com/api/notes/#list-all-merge-request-notes

type ListMergeRequestsClosingIssueOptions added in v0.10.6

type ListMergeRequestsClosingIssueOptions ListOptions

ListMergeRequestsClosingIssueOptions represents the available ListMergeRequestsClosingIssue() options.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-merge-requests-that-close-a-particular-issue-on-merge

type ListMergeRequestsOptions

type ListMergeRequestsOptions struct {
	ListOptions
	Approved               *string           `url:"approved,omitempty" json:"approved,omitempty"`
	State                  *string           `url:"state,omitempty" json:"state,omitempty"`
	OrderBy                *string           `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                   *string           `url:"sort,omitempty" json:"sort,omitempty"`
	Milestone              *string           `url:"milestone,omitempty" json:"milestone,omitempty"`
	View                   *string           `url:"view,omitempty" json:"view,omitempty"`
	Labels                 *LabelOptions     `url:"labels,comma,omitempty" json:"labels,omitempty"`
	NotLabels              *LabelOptions     `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
	WithLabelsDetails      *bool             `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
	WithMergeStatusRecheck *bool             `url:"with_merge_status_recheck,omitempty" json:"with_merge_status_recheck,omitempty"`
	CreatedAfter           *time.Time        `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore          *time.Time        `url:"created_before,omitempty" json:"created_before,omitempty"`
	UpdatedAfter           *time.Time        `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore          *time.Time        `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	Scope                  *string           `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID               *int              `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername         *string           `url:"author_username,omitempty" json:"author_username,omitempty"`
	NotAuthorUsername      *string           `url:"not[author_username],omitempty" json:"not[author_username],omitempty"`
	AssigneeID             *AssigneeIDValue  `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	ApproverIDs            *ApproverIDsValue `url:"approver_ids,omitempty" json:"approver_ids,omitempty"`
	ApprovedByIDs          *ApproverIDsValue `url:"approved_by_ids,omitempty" json:"approved_by_ids,omitempty"`
	ReviewerID             *ReviewerIDValue  `url:"reviewer_id,omitempty" json:"reviewer_id,omitempty"`
	ReviewerUsername       *string           `url:"reviewer_username,omitempty" json:"reviewer_username,omitempty"`
	MyReactionEmoji        *string           `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
	SourceBranch           *string           `url:"source_branch,omitempty" json:"source_branch,omitempty"`
	TargetBranch           *string           `url:"target_branch,omitempty" json:"target_branch,omitempty"`
	Search                 *string           `url:"search,omitempty" json:"search,omitempty"`
	In                     *string           `url:"in,omitempty" json:"in,omitempty"`
	Draft                  *bool             `url:"draft,omitempty" json:"draft,omitempty"`
	WIP                    *string           `url:"wip,omitempty" json:"wip,omitempty"`
}

ListMergeRequestsOptions represents the available ListMergeRequests() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-merge-requests

type ListMergeRequestsRelatedToIssueOptions added in v0.116.0

type ListMergeRequestsRelatedToIssueOptions ListOptions

ListMergeRequestsRelatedToIssueOptions represents the available ListMergeRequestsRelatedToIssue() options.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-merge-requests-related-to-issue

type ListMergeTrainsOptions added in v0.116.0

type ListMergeTrainsOptions struct {
	ListOptions
	Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
	Sort  *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListMergeTrainsOptions represents the available ListMergeTrain() options.

Gitab API docs: https://docs.gitlab.com/api/merge_trains/#list-merge-trains-for-a-project

type ListMetricImagesOptions added in v0.128.0

type ListMetricImagesOptions struct {
	ListOptions
}

ListMetricImagesOptions represents the available ListMetricImages() options.

GitLab API docs: https://docs.gitlab.com/api/alert_management_alerts/#list-metric-images

type ListMilestoneEventsOptions added in v0.116.0

type ListMilestoneEventsOptions struct {
	ListOptions
}

ListMilestoneEventsOptions represents the options for all resource state events list methods.

GitLab API docs: https://docs.gitlab.com/api/resource_milestone_events/#list-project-issue-milestone-events

type ListMilestonesOptions

type ListMilestonesOptions struct {
	ListOptions
	IIDs             *[]int  `url:"iids[],omitempty" json:"iids,omitempty"`
	Title            *string `url:"title,omitempty" json:"title,omitempty"`
	State            *string `url:"state,omitempty" json:"state,omitempty"`
	Search           *string `url:"search,omitempty" json:"search,omitempty"`
	IncludeAncestors *bool   `url:"include_ancestors,omitempty" json:"include_ancestors,omitempty"`

	// Deprecated: in GitLab 16,7, use IncludeAncestors instead
	IncludeParentMilestones *bool `url:"include_parent_milestones,omitempty" json:"include_parent_milestones,omitempty"`
}

ListMilestonesOptions represents the available ListMilestones() options.

GitLab API docs: https://docs.gitlab.com/api/milestones/#list-project-milestones

type ListNamespacesOptions

type ListNamespacesOptions struct {
	ListOptions
	Search       *string `url:"search,omitempty" json:"search,omitempty"`
	OwnedOnly    *bool   `url:"owned_only,omitempty" json:"owned_only,omitempty"`
	TopLevelOnly *bool   `url:"top_level_only,omitempty" json:"top_level_only,omitempty"`
}

ListNamespacesOptions represents the available ListNamespaces() options.

GitLab API docs: https://docs.gitlab.com/api/namespaces/#list-all-namespaces

type ListOptions

type ListOptions struct {
	// For keyset-based paginated result sets, the value must be `"keyset"`
	Pagination string `url:"pagination,omitempty" json:"pagination,omitempty"`
	// For offset-based and keyset-based paginated result sets, the number of results to include per page.
	PerPage int `url:"per_page,omitempty" json:"per_page,omitempty"`
	// For offset-based paginated result sets, page of results to retrieve.
	Page int `url:"page,omitempty" json:"page,omitempty"`
	// For keyset-based paginated result sets, tree record ID at which to fetch the next page.
	PageToken string `url:"page_token,omitempty" json:"page_token,omitempty"`
	// For keyset-based paginated result sets, name of the column by which to order
	OrderBy string `url:"order_by,omitempty" json:"order_by,omitempty"`
	// For keyset-based paginated result sets, sort order (`"asc"“ or `"desc"`)
	Sort string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListOptions specifies the optional parameters to various List methods that support pagination.

type ListPackageFilesOptions added in v0.116.0

type ListPackageFilesOptions ListOptions

ListPackageFilesOptions represents the available ListPackageFiles() options.

GitLab API docs: https://docs.gitlab.com/api/packages/#list-package-files

type ListPagesDomainsOptions added in v0.8.0

type ListPagesDomainsOptions ListOptions

ListPagesDomainsOptions represents the available ListPagesDomains() options.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#list-pages-domains

type ListPendingInvitationsOptions added in v0.116.0

type ListPendingInvitationsOptions struct {
	ListOptions
	Query *string `url:"query,omitempty" json:"query,omitempty"`
}

ListPendingInvitationsOptions represents the available ListPendingInvitations() options.

GitLab API docs: https://docs.gitlab.com/api/invitations/#list-all-invitations-pending-for-a-group-or-project

type ListPersonalAccessTokensOptions added in v0.116.0

type ListPersonalAccessTokensOptions struct {
	ListOptions
	CreatedAfter   *ISOTime `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore  *ISOTime `url:"created_before,omitempty" json:"created_before,omitempty"`
	LastUsedAfter  *ISOTime `url:"last_used_after,omitempty" json:"last_used_after,omitempty"`
	LastUsedBefore *ISOTime `url:"last_used_before,omitempty" json:"last_used_before,omitempty"`
	Revoked        *bool    `url:"revoked,omitempty" json:"revoked,omitempty"`
	Search         *string  `url:"search,omitempty" json:"search,omitempty"`
	State          *string  `url:"state,omitempty" json:"state,omitempty"`
	UserID         *int     `url:"user_id,omitempty" json:"user_id,omitempty"`
}

ListPersonalAccessTokensOptions represents the available ListPersonalAccessTokens() options.

GitLab API docs: https://docs.gitlab.com/api/personal_access_tokens/#list-all-personal-access-tokens

type ListPipelineSchedulesOptions added in v0.9.0

type ListPipelineSchedulesOptions struct {
	ListOptions
	Scope *PipelineScheduleScopeValue `url:"scope,omitempty"`
}

ListPipelineSchedulesOptions represents the available ListPipelineTriggers() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#get-all-pipeline-schedules

type ListPipelineTriggersOptions added in v0.6.0

type ListPipelineTriggersOptions ListOptions

ListPipelineTriggersOptions represents the available ListPipelineTriggers() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_triggers/#list-project-trigger-tokens

type ListPipelinesTriggeredByScheduleOptions added in v0.116.0

type ListPipelinesTriggeredByScheduleOptions ListOptions

ListPipelinesTriggeredByScheduleOptions represents the available ListPipelinesTriggeredBySchedule() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#get-all-pipelines-triggered-by-a-pipeline-schedule

type ListProjectAccessTokensOptions added in v0.116.0

type ListProjectAccessTokensOptions struct {
	ListOptions
	State *string `url:"state,omitempty" json:"state,omitempty"`
}

ListProjectAccessTokensOptions represents the available ListProjectAccessTokens() options.

GitLab API docs: https://docs.gitlab.com/api/project_access_tokens/#list-all-project-access-tokens

type ListProjectBadgesOptions added in v0.11.1

type ListProjectBadgesOptions struct {
	ListOptions
	Name *string `url:"name,omitempty" json:"name,omitempty"`
}

ListProjectBadgesOptions represents the available ListProjectBadges() options.

GitLab API docs: https://docs.gitlab.com/api/project_badges/#list-all-badges-of-a-project

type ListProjectDependenciesOptions added in v0.128.0

type ListProjectDependenciesOptions struct {
	ListOptions
	PackageManager []*DependencyPackageManagerValue `url:"package_manager,omitempty" json:"package_manager,omitempty"`
}

ListProjectDependenciesOptions represents the options for listing project dependencies.

GitLab API docs: https://docs.gitlab.com/api/dependencies/#list-project-dependencies

type ListProjectDeployKeysOptions added in v0.8.1

type ListProjectDeployKeysOptions ListOptions

ListProjectDeployKeysOptions represents the available ListProjectDeployKeys() options.

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#list-deploy-keys-for-project

type ListProjectDeployTokensOptions added in v0.116.0

type ListProjectDeployTokensOptions ListOptions

ListProjectDeployTokensOptions represents the available ListProjectDeployTokens() options.

GitLab API docs: https://docs.gitlab.com/api/deploy_tokens/#list-project-deploy-tokens

type ListProjectDeploymentsOptions added in v0.8.1

type ListProjectDeploymentsOptions struct {
	ListOptions
	OrderBy     *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort        *string `url:"sort,omitempty" json:"sort,omitempty"`
	Environment *string `url:"environment,omitempty" json:"environment,omitempty"`
	Status      *string `url:"status,omitempty" json:"status,omitempty"`

	// Only for Gitlab versions less than 14
	UpdatedAfter  *time.Time `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore *time.Time `url:"updated_before,omitempty" json:"updated_before,omitempty"`

	// Only for Gitlab 14 or higher
	FinishedAfter  *time.Time `url:"finished_after,omitempty" json:"finished_after,omitempty"`
	FinishedBefore *time.Time `url:"finished_before,omitempty" json:"finished_before,omitempty"`
}

ListProjectDeploymentsOptions represents the available ListProjectDeployments() options.

GitLab API docs: https://docs.gitlab.com/api/deployments/#list-project-deployments

type ListProjectFeatureFlagOptions added in v0.116.0

type ListProjectFeatureFlagOptions struct {
	ListOptions
	Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
}

ListProjectFeatureFlagOptions contains the options for ListProjectFeatureFlags

GitLab API docs: https://docs.gitlab.com/api/feature_flags/#list-feature-flags-for-a-project

type ListProjectGroupOptions added in v0.116.0

type ListProjectGroupOptions struct {
	ListOptions
	Search               *string           `url:"search,omitempty" json:"search,omitempty"`
	SharedMinAccessLevel *AccessLevelValue `url:"shared_min_access_level,omitempty" json:"shared_min_access_level,omitempty"`
	SharedVisiableOnly   *bool             `url:"shared_visible_only,omitempty" json:"shared_visible_only,omitempty"`
	SkipGroups           *[]int            `url:"skip_groups,omitempty" json:"skip_groups,omitempty"`
	WithShared           *bool             `url:"with_shared,omitempty" json:"with_shared,omitempty"`
}

ListProjectGroupOptions represents the available ListProjectsGroups() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-groups

type ListProjectHooksOptions

type ListProjectHooksOptions ListOptions

ListProjectHooksOptions represents the available ListProjectHooks() options.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#list-webhooks-for-a-project

type ListProjectInvidedGroupOptions added in v0.116.0

type ListProjectInvidedGroupOptions struct {
	ListOptions
	Search               *string           `url:"search,omitempty" json:"search,omitempty"`
	MinAccessLevel       *AccessLevelValue `url:"min_access_level,omitempty" json:"min_access_level,omitempty"`
	Relation             *[]string         `url:"relation,omitempty" json:"relation,omitempty"`
	WithCustomAttributes *bool             `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
}

ListProjectInvidedGroupOptions represents the available ListProjectsInvitedGroups() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-a-projects-invited-groups

type ListProjectIssuesOptions

type ListProjectIssuesOptions struct {
	ListOptions
	IIDs                *[]int        `url:"iids[],omitempty" json:"iids,omitempty"`
	State               *string       `url:"state,omitempty" json:"state,omitempty"`
	Labels              *LabelOptions `url:"labels,comma,omitempty" json:"labels,omitempty"`
	NotLabels           *LabelOptions `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
	WithLabelDetails    *bool         `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
	Milestone           *string       `url:"milestone,omitempty" json:"milestone,omitempty"`
	NotMilestone        *string       `url:"not[milestone],omitempty" json:"not[milestone],omitempty"`
	Scope               *string       `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID            *int          `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername      *string       `url:"author_username,omitempty" json:"author_username,omitempty"`
	NotAuthorUsername   *string       `url:"not[author_username],omitempty" json:"not[author_username],omitempty"`
	NotAuthorID         *int          `url:"not[author_id],omitempty" json:"not[author_id],omitempty"`
	AssigneeID          *int          `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	NotAssigneeID       *int          `url:"not[assignee_id],omitempty" json:"not[assignee_id],omitempty"`
	AssigneeUsername    *string       `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
	NotAssigneeUsername *string       `url:"not[assignee_username],omitempty" json:"not[assignee_username],omitempty"`
	MyReactionEmoji     *string       `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
	NotMyReactionEmoji  *string       `url:"not[my_reaction_emoji],omitempty" json:"not[my_reaction_emoji],omitempty"`
	OrderBy             *string       `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                *string       `url:"sort,omitempty" json:"sort,omitempty"`
	Search              *string       `url:"search,omitempty" json:"search,omitempty"`
	In                  *string       `url:"in,omitempty" json:"in,omitempty"`
	NotIn               *string       `url:"not[in],omitempty" json:"not[in],omitempty"`
	CreatedAfter        *time.Time    `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore       *time.Time    `url:"created_before,omitempty" json:"created_before,omitempty"`
	DueDate             *string       `url:"due_date,omitempty" json:"due_date,omitempty"`
	UpdatedAfter        *time.Time    `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore       *time.Time    `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	Confidential        *bool         `url:"confidential,omitempty" json:"confidential,omitempty"`
	IssueType           *string       `url:"issue_type,omitempty" json:"issue_type,omitempty"`
	IterationID         *int          `url:"iteration_id,omitempty" json:"iteration_id,omitempty"`
}

ListProjectIssuesOptions represents the available ListProjectIssues() options.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-project-issues

type ListProjectIterationsOptions added in v0.116.0

type ListProjectIterationsOptions struct {
	ListOptions
	State            *string `url:"state,omitempty" json:"state,omitempty"`
	Search           *string `url:"search,omitempty" json:"search,omitempty"`
	IncludeAncestors *bool   `url:"include_ancestors,omitempty" json:"include_ancestors,omitempty"`
}

ListProjectIterationsOptions contains the available ListProjectIterations() options

GitLab API docs: https://docs.gitlab.com/api/iterations/#list-project-iterations

type ListProjectMembersOptions

type ListProjectMembersOptions struct {
	ListOptions
	Query   *string `url:"query,omitempty" json:"query,omitempty"`
	UserIDs *[]int  `url:"user_ids[],omitempty" json:"user_ids,omitempty"`
}

ListProjectMembersOptions represents the available ListProjectMembers() and ListAllProjectMembers() options.

GitLab API docs: https://docs.gitlab.com/api/members/#list-all-members-of-a-group-or-project

type ListProjectMergeRequestsOptions added in v0.6.2

type ListProjectMergeRequestsOptions struct {
	ListOptions
	IIDs                   *[]int            `url:"iids[],omitempty" json:"iids,omitempty"`
	State                  *string           `url:"state,omitempty" json:"state,omitempty"`
	OrderBy                *string           `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                   *string           `url:"sort,omitempty" json:"sort,omitempty"`
	Milestone              *string           `url:"milestone,omitempty" json:"milestone,omitempty"`
	View                   *string           `url:"view,omitempty" json:"view,omitempty"`
	Labels                 *LabelOptions     `url:"labels,comma,omitempty" json:"labels,omitempty"`
	NotLabels              *LabelOptions     `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
	WithLabelsDetails      *bool             `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
	WithMergeStatusRecheck *bool             `url:"with_merge_status_recheck,omitempty" json:"with_merge_status_recheck,omitempty"`
	CreatedAfter           *time.Time        `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore          *time.Time        `url:"created_before,omitempty" json:"created_before,omitempty"`
	UpdatedAfter           *time.Time        `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore          *time.Time        `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	Scope                  *string           `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID               *int              `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername         *string           `url:"author_username,omitempty" json:"author_username,omitempty"`
	NotAuthorUsername      *string           `url:"not[author_username],omitempty" json:"not[author_username],omitempty"`
	AssigneeID             *AssigneeIDValue  `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	ApproverIDs            *ApproverIDsValue `url:"approver_ids,omitempty" json:"approver_ids,omitempty"`
	ApprovedByIDs          *ApproverIDsValue `url:"approved_by_ids,omitempty" json:"approved_by_ids,omitempty"`
	ReviewerID             *ReviewerIDValue  `url:"reviewer_id,omitempty" json:"reviewer_id,omitempty"`
	ReviewerUsername       *string           `url:"reviewer_username,omitempty" json:"reviewer_username,omitempty"`
	MyReactionEmoji        *string           `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
	SourceBranch           *string           `url:"source_branch,omitempty" json:"source_branch,omitempty"`
	TargetBranch           *string           `url:"target_branch,omitempty" json:"target_branch,omitempty"`
	Search                 *string           `url:"search,omitempty" json:"search,omitempty"`
	Draft                  *bool             `url:"draft,omitempty" json:"draft,omitempty"`
	WIP                    *string           `url:"wip,omitempty" json:"wip,omitempty"`
}

ListProjectMergeRequestsOptions represents the available ListMergeRequests() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-project-merge-requests

type ListProjectMirrorOptions added in v0.116.0

type ListProjectMirrorOptions ListOptions

ListProjectMirrorOptions represents the available ListProjectMirror() options.

type ListProjectPackagesOptions added in v0.116.0

type ListProjectPackagesOptions struct {
	ListOptions
	OrderBy            *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort               *string `url:"sort,omitempty" json:"sort,omitempty"`
	PackageType        *string `url:"package_type,omitempty" json:"package_type,omitempty"`
	PackageName        *string `url:"package_name,omitempty" json:"package_name,omitempty"`
	PackageVersion     *string `url:"package_version,omitempty" json:"package_version,omitempty"`
	IncludeVersionless *bool   `url:"include_versionless,omitempty" json:"include_versionless,omitempty"`
	Status             *string `url:"status,omitempty" json:"status,omitempty"`
}

ListProjectPackagesOptions represents the available ListProjectPackages() options.

GitLab API docs: https://docs.gitlab.com/api/packages/#for-a-project

type ListProjectPipelinesOptions added in v0.8.0

type ListProjectPipelinesOptions struct {
	ListOptions
	Scope         *string          `url:"scope,omitempty" json:"scope,omitempty"`
	Status        *BuildStateValue `url:"status,omitempty" json:"status,omitempty"`
	Source        *string          `url:"source,omitempty" json:"source,omitempty"`
	Ref           *string          `url:"ref,omitempty" json:"ref,omitempty"`
	SHA           *string          `url:"sha,omitempty" json:"sha,omitempty"`
	YamlErrors    *bool            `url:"yaml_errors,omitempty" json:"yaml_errors,omitempty"`
	Name          *string          `url:"name,omitempty" json:"name,omitempty"`
	Username      *string          `url:"username,omitempty" json:"username,omitempty"`
	UpdatedAfter  *time.Time       `url:"updated_after,omitempty" json:"updated_after,omitempty"`
	UpdatedBefore *time.Time       `url:"updated_before,omitempty" json:"updated_before,omitempty"`
	OrderBy       *string          `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort          *string          `url:"sort,omitempty" json:"sort,omitempty"`
}

ListProjectPipelinesOptions represents the available ListProjectPipelines() options.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#list-project-pipelines

type ListProjectRunnersOptions added in v0.7.5

type ListProjectRunnersOptions ListRunnersOptions

ListProjectRunnersOptions represents the available ListProjectRunners() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-projects-runners

type ListProjectSecureFilesOptions added in v0.124.0

type ListProjectSecureFilesOptions ListOptions

ListProjectSecureFilesOptions represents the available ListProjectSecureFiles() options.

GitLab API docs: https://docs.gitlab.com/api/secure_files/#list-project-secure-files

type ListProjectSnippetsOptions added in v0.7.2

type ListProjectSnippetsOptions ListOptions

ListProjectSnippetsOptions represents the available ListSnippets() options.

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#list-snippets

type ListProjectTemplatesOptions added in v0.116.0

type ListProjectTemplatesOptions struct {
	ListOptions
	ID   *int    `url:"id,omitempty" json:"id,omitempty"`
	Type *string `url:"type,omitempty" json:"type,omitempty"`
}

ListProjectTemplatesOptions represents the available ListSnippets() options.

GitLab API docs: https://docs.gitlab.com/api/project_templates/#get-all-templates-of-a-particular-type

type ListProjectUserOptions added in v0.8.0

type ListProjectUserOptions struct {
	ListOptions
	Search *string `url:"search,omitempty" json:"search,omitempty"`
}

ListProjectUserOptions represents the available ListProjectsUsers() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-users

type ListProjectVariablesOptions added in v0.116.0

type ListProjectVariablesOptions ListOptions

ListProjectVariablesOptions represents the available options for listing variables in a project.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#list-project-variables

type ListProjectVisibleEventsOptions added in v0.116.0

type ListProjectVisibleEventsOptions struct {
	ListOptions
	Action     *EventTypeValue       `url:"action,omitempty" json:"action,omitempty"`
	TargetType *EventTargetTypeValue `url:"target_type,omitempty" json:"target_type,omitempty"`
	Before     *ISOTime              `url:"before,omitempty" json:"before,omitempty"`
	After      *ISOTime              `url:"after,omitempty" json:"after,omitempty"`
	Sort       *string               `url:"sort,omitempty" json:"sort,omitempty"`
}

ListProjectVisibleEventsOptions represents the available ListProjectVisibleEvents() options.

GitLab API docs: https://docs.gitlab.com/api/events/#list-a-projects-visible-events

type ListProjectVulnerabilitiesOptions added in v0.116.0

type ListProjectVulnerabilitiesOptions struct {
	ListOptions
}

ListProjectVulnerabilitiesOptions represents the available ListProjectVulnerabilities() options. Deprecated: use GraphQL Query.vulnerabilities instead

GitLab API docs: https://docs.gitlab.com/api/project_vulnerabilities/#list-project-vulnerabilities

type ListProjectsOptions

type ListProjectsOptions struct {
	ListOptions
	Archived                 *bool             `url:"archived,omitempty" json:"archived,omitempty"`
	IDAfter                  *int              `url:"id_after,omitempty" json:"id_after,omitempty"`
	IDBefore                 *int              `url:"id_before,omitempty" json:"id_before,omitempty"`
	Imported                 *bool             `url:"imported,omitempty" json:"imported,omitempty"`
	IncludeHidden            *bool             `url:"include_hidden,omitempty" json:"include_hidden,omitempty"`
	IncludePendingDelete     *bool             `url:"include_pending_delete,omitempty" json:"include_pending_delete,omitempty"`
	LastActivityAfter        *time.Time        `url:"last_activity_after,omitempty" json:"last_activity_after,omitempty"`
	LastActivityBefore       *time.Time        `url:"last_activity_before,omitempty" json:"last_activity_before,omitempty"`
	Membership               *bool             `url:"membership,omitempty" json:"membership,omitempty"`
	MinAccessLevel           *AccessLevelValue `url:"min_access_level,omitempty" json:"min_access_level,omitempty"`
	OrderBy                  *string           `url:"order_by,omitempty" json:"order_by,omitempty"`
	Owned                    *bool             `url:"owned,omitempty" json:"owned,omitempty"`
	RepositoryChecksumFailed *bool             `url:"repository_checksum_failed,omitempty" json:"repository_checksum_failed,omitempty"`
	RepositoryStorage        *string           `url:"repository_storage,omitempty" json:"repository_storage,omitempty"`
	Search                   *string           `url:"search,omitempty" json:"search,omitempty"`
	SearchNamespaces         *bool             `url:"search_namespaces,omitempty" json:"search_namespaces,omitempty"`
	Simple                   *bool             `url:"simple,omitempty" json:"simple,omitempty"`
	Sort                     *string           `url:"sort,omitempty" json:"sort,omitempty"`
	Starred                  *bool             `url:"starred,omitempty" json:"starred,omitempty"`
	Statistics               *bool             `url:"statistics,omitempty" json:"statistics,omitempty"`
	Topic                    *string           `url:"topic,omitempty" json:"topic,omitempty"`
	Visibility               *VisibilityValue  `url:"visibility,omitempty" json:"visibility,omitempty"`
	WikiChecksumFailed       *bool             `url:"wiki_checksum_failed,omitempty" json:"wiki_checksum_failed,omitempty"`
	WithCustomAttributes     *bool             `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
	WithIssuesEnabled        *bool             `url:"with_issues_enabled,omitempty" json:"with_issues_enabled,omitempty"`
	WithMergeRequestsEnabled *bool             `url:"with_merge_requests_enabled,omitempty" json:"with_merge_requests_enabled,omitempty"`
	WithProgrammingLanguage  *string           `url:"with_programming_language,omitempty" json:"with_programming_language,omitempty"`
}

ListProjectsOptions represents the available ListProjects() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-all-projects

type ListProtectedBranchesOptions added in v0.8.1

type ListProtectedBranchesOptions struct {
	ListOptions
	Search *string `url:"search,omitempty" json:"search,omitempty"`
}

ListProtectedBranchesOptions represents the available ListProtectedBranches() options.

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

type ListProtectedEnvironmentsOptions added in v0.116.0

type ListProtectedEnvironmentsOptions ListOptions

ListProtectedEnvironmentsOptions represents the available ListProtectedEnvironments() options.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#list-protected-environments

type ListProtectedTagsOptions added in v0.116.0

type ListProtectedTagsOptions ListOptions

ListProtectedTagsOptions represents the available ListProtectedTags() options.

GitLab API docs: https://docs.gitlab.com/api/protected_tags/#list-protected-tags

type ListProvisionedUsersOptions added in v0.116.0

type ListProvisionedUsersOptions struct {
	ListOptions
	Username      *string    `url:"username,omitempty" json:"username,omitempty"`
	Search        *string    `url:"search,omitempty" json:"search,omitempty"`
	Active        *bool      `url:"active,omitempty" json:"active,omitempty"`
	Blocked       *bool      `url:"blocked,omitempty" json:"blocked,omitempty"`
	CreatedAfter  *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
}

ListProvisionedUsersOptions represents the available ListProvisionedUsers() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-provisioned-users

type ListRegistryRepositoriesOptions added in v0.116.0

type ListRegistryRepositoriesOptions struct {
	ListOptions

	// Deprecated: These options are deprecated for ListGroupRegistryRepositories calls. (Removed in GitLab 15.0)
	Tags      *bool `url:"tags,omitempty" json:"tags,omitempty"`
	TagsCount *bool `url:"tags_count,omitempty" json:"tags_count,omitempty"`
}

ListRegistryRepositoriesOptions represents the available ListRegistryRepositories() options.

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

type ListRegistryRepositoryTagsOptions added in v0.116.0

type ListRegistryRepositoryTagsOptions ListOptions

ListRegistryRepositoryTagsOptions represents the available ListRegistryRepositoryTags() options.

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

type ListRelatedIssuesOptions added in v0.128.0

type ListRelatedIssuesOptions ListOptions

ListRelatedIssuesOptions represents the available ListRelatedIssues() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-issues-related-to-the-merge-request

type ListReleaseLinksOptions added in v0.116.0

type ListReleaseLinksOptions ListOptions

ListReleaseLinksOptions represents ListReleaseLinks() options.

GitLab API docs: https://docs.gitlab.com/api/releases/links/#list-links-of-a-release

type ListReleasesOptions added in v0.116.0

type ListReleasesOptions struct {
	ListOptions
	OrderBy                *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                   *string `url:"sort,omitempty" json:"sort,omitempty"`
	IncludeHTMLDescription *bool   `url:"include_html_description,omitempty" json:"include_html_description,omitempty"`
}

ListReleasesOptions represents ListReleases() options.

GitLab API docs: https://docs.gitlab.com/api/releases/#list-releases

type ListRunnerJobsOptions added in v0.8.0

type ListRunnerJobsOptions struct {
	ListOptions
	Status  *string `url:"status,omitempty" json:"status,omitempty"`
	OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort    *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListRunnerJobsOptions represents the available ListRunnerJobs() options. Status can be one of: running, success, failed, canceled.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-jobs-processed-by-a-runner

type ListRunnersOptions added in v0.7.5

type ListRunnersOptions struct {
	ListOptions
	Type    *string   `url:"type,omitempty" json:"type,omitempty"`
	Status  *string   `url:"status,omitempty" json:"status,omitempty"`
	Paused  *bool     `url:"paused,omitempty" json:"paused,omitempty"`
	TagList *[]string `url:"tag_list,comma,omitempty" json:"tag_list,omitempty"`

	// Deprecated: Use Type or Status instead.
	Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
}

ListRunnersOptions represents the available ListRunners() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-owned-runners

type ListSSHKeysForUserOptions added in v0.8.1

type ListSSHKeysForUserOptions ListOptions

ListSSHKeysForUserOptions represents the available ListSSHKeysForUser() options.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-ssh-keys-for-a-user

type ListSSHKeysOptions added in v0.116.0

type ListSSHKeysOptions ListOptions

ListSSHKeysOptions represents the available ListSSHKeys options.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-ssh-keys

type ListServiceAccountsOptions added in v0.116.0

type ListServiceAccountsOptions struct {
	ListOptions
	OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort    *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListServiceAccountsOptions represents the available ListServiceAccounts() options.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#list-all-service-account-users

type ListSnippetDiscussionsOptions added in v0.11.2

type ListSnippetDiscussionsOptions ListOptions

ListSnippetDiscussionsOptions represents the available ListSnippetDiscussions() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-snippet-discussion-items

type ListSnippetNotesOptions added in v0.8.1

type ListSnippetNotesOptions struct {
	ListOptions
	OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort    *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListSnippetNotesOptions represents the available ListSnippetNotes() options.

GitLab API docs: https://docs.gitlab.com/api/notes/#list-all-snippet-notes

type ListSnippetsOptions

type ListSnippetsOptions ListOptions

ListSnippetsOptions represents the available ListSnippets() options.

GitLab API docs: https://docs.gitlab.com/api/snippets/#list-all-snippets-for-current-user

type ListStateEventsOptions added in v0.116.0

type ListStateEventsOptions struct {
	ListOptions
}

ListStateEventsOptions represents the options for all resource state events list methods.

GitLab API docs: https://docs.gitlab.com/api/resource_state_events/#list-project-issue-state-events

type ListStatusOfAllGeoSitesOptions added in v0.128.0

type ListStatusOfAllGeoSitesOptions ListOptions

ListStatusOfAllGeoSitesOptions represents the available ListStatusOfAllGeoSites() options.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#retrieve-status-about-all-geo-sites

type ListSubGroupsOptions added in v0.116.0

type ListSubGroupsOptions ListGroupsOptions

ListSubGroupsOptions represents the available ListSubGroups() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-subgroups

type ListTagsOptions added in v0.7.4

type ListTagsOptions struct {
	ListOptions
	OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
	Search  *string `url:"search,omitempty" json:"search,omitempty"`
	Sort    *string `url:"sort,omitempty" json:"sort,omitempty"`
}

ListTagsOptions represents the available ListTags() options.

GitLab API docs: https://docs.gitlab.com/api/tags/#list-project-repository-tags

type ListTemplatesOptions added in v0.9.0

type ListTemplatesOptions ListOptions

ListTemplatesOptions represents the available ListAllTemplates() options.

GitLab API docs: https://docs.gitlab.com/api/templates/gitignores/#get-all-gitignore-templates

type ListTodosOptions added in v0.6.0

type ListTodosOptions struct {
	ListOptions
	Action    *TodoAction `url:"action,omitempty" json:"action,omitempty"`
	AuthorID  *int        `url:"author_id,omitempty" json:"author_id,omitempty"`
	ProjectID *int        `url:"project_id,omitempty" json:"project_id,omitempty"`
	GroupID   *int        `url:"group_id,omitempty" json:"group_id,omitempty"`
	State     *string     `url:"state,omitempty" json:"state,omitempty"`
	Type      *string     `url:"type,omitempty" json:"type,omitempty"`
}

ListTodosOptions represents the available ListTodos() options.

GitLab API docs: https://docs.gitlab.com/api/todos/#get-a-list-of-to-do-items

type ListTopicsOptions added in v0.116.0

type ListTopicsOptions struct {
	ListOptions
	Search *string `url:"search,omitempty" json:"search,omitempty"`
}

ListTopicsOptions represents the available ListTopics() options.

GitLab API docs: https://docs.gitlab.com/api/topics/#list-topics

type ListTreeOptions

type ListTreeOptions struct {
	ListOptions
	Path      *string `url:"path,omitempty" json:"path,omitempty"`
	Ref       *string `url:"ref,omitempty" json:"ref,omitempty"`
	Recursive *bool   `url:"recursive,omitempty" json:"recursive,omitempty"`
}

ListTreeOptions represents the available ListTree() options.

GitLab API docs: https://docs.gitlab.com/api/repositories/#list-repository-tree

type ListUsersOptions

type ListUsersOptions struct {
	ListOptions
	Active          *bool `url:"active,omitempty" json:"active,omitempty"`
	Blocked         *bool `url:"blocked,omitempty" json:"blocked,omitempty"`
	Humans          *bool `url:"humans,omitempty" json:"humans,omitempty"`
	ExcludeInternal *bool `url:"exclude_internal,omitempty" json:"exclude_internal,omitempty"`
	ExcludeActive   *bool `url:"exclude_active,omitempty" json:"exclude_active,omitempty"`
	ExcludeExternal *bool `url:"exclude_external,omitempty" json:"exclude_external,omitempty"`
	ExcludeHumans   *bool `url:"exclude_humans,omitempty" json:"exclude_humans,omitempty"`

	// The options below are only available for admins.
	Search               *string    `url:"search,omitempty" json:"search,omitempty"`
	Username             *string    `url:"username,omitempty" json:"username,omitempty"`
	ExternalUID          *string    `url:"extern_uid,omitempty" json:"extern_uid,omitempty"`
	Provider             *string    `url:"provider,omitempty" json:"provider,omitempty"`
	CreatedBefore        *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
	CreatedAfter         *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
	OrderBy              *string    `url:"order_by,omitempty" json:"order_by,omitempty"`
	Sort                 *string    `url:"sort,omitempty" json:"sort,omitempty"`
	TwoFactor            *string    `url:"two_factor,omitempty" json:"two_factor,omitempty"`
	Admins               *bool      `url:"admins,omitempty" json:"admins,omitempty"`
	External             *bool      `url:"external,omitempty" json:"external,omitempty"`
	WithoutProjects      *bool      `url:"without_projects,omitempty" json:"without_projects,omitempty"`
	WithCustomAttributes *bool      `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
	WithoutProjectBots   *bool      `url:"without_project_bots,omitempty" json:"without_project_bots,omitempty"`
}

ListUsersOptions represents the available ListUsers() options.

GitLab API docs: https://docs.gitlab.com/api/users/#list-users

type ListWeightEventsOptions added in v0.116.0

type ListWeightEventsOptions struct {
	ListOptions
}

ListWeightEventsOptions represents the options for all resource weight events list methods.

GitLab API docs: https://docs.gitlab.com/api/resource_weight_events/#list-project-issue-weight-events

type ListWikisOptions added in v0.7.0

type ListWikisOptions struct {
	WithContent *bool `url:"with_content,omitempty" json:"with_content,omitempty"`
}

ListWikisOptions represents the available ListWikis options.

GitLab API docs: https://docs.gitlab.com/api/wikis/#list-wiki-pages

type ManagementProject added in v0.116.0

type ManagementProject 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"`
}

ManagementProject represents a GitLab Project Cluster management_project. Deprecated: in GitLab 14.5, to be removed in 19.0

type MarkMigrationAsSuccessfulOptions added in v0.128.0

type MarkMigrationAsSuccessfulOptions struct {
	Database string `url:"database,omitempty" json:"database,omitempty"`
}

MarkMigrationAsSuccessfulOptions represents the options to mark a migration as successful.

GitLab API docs: https://docs.gitlab.com/api/database_migrations/#mark-a-migration-as-successful

type Markdown added in v0.116.0

type Markdown struct {
	HTML string `json:"html"`
}

Markdown represents a markdown document.

Gitlab API docs: https://docs.gitlab.com/api/markdown/

type MarkdownService added in v0.116.0

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

MarkdownService handles communication with the markdown related methods of the GitLab API.

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

func (*MarkdownService) Render added in v0.116.0

func (s *MarkdownService) Render(opt *RenderOptions, options ...RequestOptionFunc) (*Markdown, *Response, error)

Render an arbitrary markdown document.

Gitlab API docs: https://docs.gitlab.com/api/markdown/#render-an-arbitrary-markdown-document

type MarkdownServiceInterface added in v0.126.0

type MarkdownServiceInterface interface {
	Render(opt *RenderOptions, options ...RequestOptionFunc) (*Markdown, *Response, error)
}

type MarkdownUpload added in v0.129.0

type MarkdownUpload struct {
	ID         int        `json:"id"`
	Size       int        `json:"size"`
	Filename   string     `json:"filename"`
	CreatedAt  *time.Time `json:"created_at"`
	UploadedBy *User      `json:"uploaded_by"`
}

MarkdownUpload represents a single markdown upload.

Gitlab API docs: https://docs.gitlab.com/api/project_markdown_uploads/ https://docs.gitlab.com/api/group_markdown_uploads/

func (MarkdownUpload) String added in v0.129.0

func (m MarkdownUpload) String() string

Gets a string representation of a MarkdownUpload.

GitLab API docs: https://docs.gitlab.com/api/project_markdown_uploads/ https://docs.gitlab.com/api/group_markdown_uploads/

type MarkdownUploadedFile added in v0.129.0

type MarkdownUploadedFile struct {
	ID       int    `json:"id"`
	Alt      string `json:"alt"`
	URL      string `json:"url"`
	FullPath string `json:"full_path"`
	Markdown string `json:"markdown"`
}

MarkdownUploadedFile represents a single markdown uploaded file.

Gitlab API docs: https://docs.gitlab.com/api/project_markdown_uploads/

type MattermostService added in v0.116.0

type MattermostService struct {
	Service
	Properties *MattermostServiceProperties `json:"properties"`
}

MattermostService represents Mattermost service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#mattermost-notifications

type MattermostServiceProperties added in v0.116.0

type MattermostServiceProperties struct {
	WebHook                   string    `json:"webhook"`
	Username                  string    `json:"username"`
	Channel                   string    `json:"channel"`
	NotifyOnlyBrokenPipelines BoolValue `json:"notify_only_broken_pipelines"`
	BranchesToBeNotified      string    `json:"branches_to_be_notified"`
	ConfidentialIssueChannel  string    `json:"confidential_issue_channel"`
	ConfidentialNoteChannel   string    `json:"confidential_note_channel"`
	IssueChannel              string    `json:"issue_channel"`
	MergeRequestChannel       string    `json:"merge_request_channel"`
	NoteChannel               string    `json:"note_channel"`
	TagPushChannel            string    `json:"tag_push_channel"`
	PipelineChannel           string    `json:"pipeline_channel"`
	PushChannel               string    `json:"push_channel"`
	VulnerabilityChannel      string    `json:"vulnerability_channel"`
	WikiPageChannel           string    `json:"wiki_page_channel"`
}

MattermostServiceProperties represents Mattermost specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#mattermost-notifications

type MattermostSlashCommandsProperties added in v0.116.0

type MattermostSlashCommandsProperties struct {
	Token    string `json:"token"`
	Username string `json:"username,omitempty"`
}

MattermostSlashCommandsProperties represents Mattermost slash commands specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#mattermost-slash-commands

type MattermostSlashCommandsService added in v0.116.0

type MattermostSlashCommandsService struct {
	Service
	Properties *MattermostSlashCommandsProperties `json:"properties"`
}

MattermostSlashCommandsService represents Mattermost slash commands settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#mattermost-slash-commands

type MemberEvent added in v0.116.0

type MemberEvent struct {
	CreatedAt    *time.Time `json:"created_at"`
	UpdatedAt    *time.Time `json:"updated_at"`
	GroupName    string     `json:"group_name"`
	GroupPath    string     `json:"group_path"`
	GroupID      int        `json:"group_id"`
	UserUsername string     `json:"user_username"`
	UserName     string     `json:"user_name"`
	UserEmail    string     `json:"user_email"`
	UserID       int        `json:"user_id"`
	GroupAccess  string     `json:"group_access"`
	GroupPlan    string     `json:"group_plan"`
	ExpiresAt    *time.Time `json:"expires_at"`
	EventName    string     `json:"event_name"`
}

MemberEvent represents a member event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#group-member-events

type MemberRole added in v0.116.0

type MemberRole struct {
	ID                         int              `json:"id"`
	Name                       string           `json:"name"`
	Description                string           `json:"description,omitempty"`
	GroupID                    int              `json:"group_id"`
	BaseAccessLevel            AccessLevelValue `json:"base_access_level"`
	AdminCICDVariables         bool             `json:"admin_cicd_variables,omitempty"`
	AdminComplianceFramework   bool             `json:"admin_compliance_framework,omitempty"`
	AdminGroupMembers          bool             `json:"admin_group_member,omitempty"`
	AdminMergeRequests         bool             `json:"admin_merge_request,omitempty"`
	AdminPushRules             bool             `json:"admin_push_rules,omitempty"`
	AdminTerraformState        bool             `json:"admin_terraform_state,omitempty"`
	AdminVulnerability         bool             `json:"admin_vulnerability,omitempty"`
	AdminWebHook               bool             `json:"admin_web_hook,omitempty"`
	ArchiveProject             bool             `json:"archive_project,omitempty"`
	ManageDeployTokens         bool             `json:"manage_deploy_tokens,omitempty"`
	ManageGroupAccessTokens    bool             `json:"manage_group_access_tokens,omitempty"`
	ManageMergeRequestSettings bool             `json:"manage_merge_request_settings,omitempty"`
	ManageProjectAccessTokens  bool             `json:"manage_project_access_tokens,omitempty"`
	ManageSecurityPolicyLink   bool             `json:"manage_security_policy_link,omitempty"`
	ReadCode                   bool             `json:"read_code,omitempty"`
	ReadRunners                bool             `json:"read_runners,omitempty"`
	ReadDependency             bool             `json:"read_dependency,omitempty"`
	ReadVulnerability          bool             `json:"read_vulnerability,omitempty"`
	RemoveGroup                bool             `json:"remove_group,omitempty"`
	RemoveProject              bool             `json:"remove_project,omitempty"`
}

MemberRole represents a GitLab member role.

GitLab API docs: https://docs.gitlab.com/api/member_roles/#list-all-member-roles-of-a-group

type MemberRolesService added in v0.116.0

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

MemberRolesService handles communication with the member roles related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/member_roles/#list-all-member-roles-of-a-group

func (*MemberRolesService) CreateInstanceMemberRole added in v0.124.0

func (s *MemberRolesService) CreateInstanceMemberRole(opt *CreateMemberRoleOptions, options ...RequestOptionFunc) (*MemberRole, *Response, error)

CreateInstanceMemberRole creates an instance-wide member role.

Gitlab API docs: https://docs.gitlab.com/api/member_roles/#create-a-instance-member-role

func (*MemberRolesService) CreateMemberRole added in v0.116.0

func (s *MemberRolesService) CreateMemberRole(gid any, opt *CreateMemberRoleOptions, options ...RequestOptionFunc) (*MemberRole, *Response, error)

CreateMemberRole creates a new member role for a specified group.

Gitlab API docs: https://docs.gitlab.com/api/member_roles/#add-a-member-role-to-a-group

func (*MemberRolesService) DeleteInstanceMemberRole added in v0.124.0

func (s *MemberRolesService) DeleteInstanceMemberRole(memberRoleID int, options ...RequestOptionFunc) (*Response, error)

DeleteInstanceMemberRole deletes a member role from a specified group.

Gitlab API docs: https://docs.gitlab.com/api/member_roles/#delete-an-instance-member-role

func (*MemberRolesService) DeleteMemberRole added in v0.116.0

func (s *MemberRolesService) DeleteMemberRole(gid any, memberRole int, options ...RequestOptionFunc) (*Response, error)

DeleteMemberRole deletes a member role from a specified group.

Gitlab API docs: https://docs.gitlab.com/api/member_roles/#remove-member-role-of-a-group

func (*MemberRolesService) ListInstanceMemberRoles added in v0.124.0

func (s *MemberRolesService) ListInstanceMemberRoles(options ...RequestOptionFunc) ([]*MemberRole, *Response, error)

ListInstanceMemberRoles gets all member roles in an instance. Authentication as Administrator is required.

Gitlab API docs: https://docs.gitlab.com/api/member_roles/#get-all-instance-member-roles

func (*MemberRolesService) ListMemberRoles added in v0.116.0

func (s *MemberRolesService) ListMemberRoles(gid any, options ...RequestOptionFunc) ([]*MemberRole, *Response, error)

ListMemberRoles gets a list of member roles for a specified group.

Gitlab API docs: https://docs.gitlab.com/api/member_roles/#get-all-group-member-roles

type MemberRolesServiceInterface added in v0.126.0

type MemberRolesServiceInterface interface {
	ListInstanceMemberRoles(options ...RequestOptionFunc) ([]*MemberRole, *Response, error)
	CreateInstanceMemberRole(opt *CreateMemberRoleOptions, options ...RequestOptionFunc) (*MemberRole, *Response, error)
	DeleteInstanceMemberRole(memberRoleID int, options ...RequestOptionFunc) (*Response, error)
	ListMemberRoles(gid any, options ...RequestOptionFunc) ([]*MemberRole, *Response, error)
	CreateMemberRole(gid any, opt *CreateMemberRoleOptions, options ...RequestOptionFunc) (*MemberRole, *Response, error)
	DeleteMemberRole(gid any, memberRole int, options ...RequestOptionFunc) (*Response, error)
}

type MergeBaseOptions added in v0.116.0

type MergeBaseOptions struct {
	Ref *[]string `url:"refs[],omitempty" json:"refs,omitempty"`
}

MergeBaseOptions represents the available MergeBase() options.

GitLab API docs: https://docs.gitlab.com/api/repositories/#merge-base

type MergeCommentEvent added in v0.3.1

type MergeCommentEvent struct {
	ObjectKind string     `json:"object_kind"`
	EventType  string     `json:"event_type"`
	User       *EventUser `json:"user"`
	ProjectID  int        `json:"project_id"`
	Project    struct {
		ID                int             `json:"id"`
		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"`
	ObjectAttributes struct {
		Attachment       string             `json:"attachment"`
		AuthorID         int                `json:"author_id"`
		ChangePosition   *NotePosition      `json:"change_position"`
		CommitID         string             `json:"commit_id"`
		CreatedAt        string             `json:"created_at"`
		DiscussionID     string             `json:"discussion_id"`
		ID               int                `json:"id"`
		LineCode         string             `json:"line_code"`
		Note             string             `json:"note"`
		NoteableID       int                `json:"noteable_id"`
		NoteableType     string             `json:"noteable_type"`
		OriginalPosition *NotePosition      `json:"original_position"`
		Position         *NotePosition      `json:"position"`
		ProjectID        int                `json:"project_id"`
		ResolvedAt       string             `json:"resolved_at"`
		ResolvedByID     int                `json:"resolved_by_id"`
		ResolvedByPush   bool               `json:"resolved_by_push"`
		StDiff           *Diff              `json:"st_diff"`
		System           bool               `json:"system"`
		Type             string             `json:"type"`
		UpdatedAt        string             `json:"updated_at"`
		UpdatedByID      int                `json:"updated_by_id"`
		Description      string             `json:"description"`
		Action           CommentEventAction `json:"action"`
		URL              string             `json:"url"`
	} `json:"object_attributes"`
	Repository   *Repository `json:"repository"`
	MergeRequest struct {
		ID                        int           `json:"id"`
		TargetBranch              string        `json:"target_branch"`
		SourceBranch              string        `json:"source_branch"`
		SourceProjectID           int           `json:"source_project_id"`
		AuthorID                  int           `json:"author_id"`
		AssigneeID                int           `json:"assignee_id"`
		AssigneeIDs               []int         `json:"assignee_ids"`
		ReviewerIDs               []int         `json:"reviewer_ids"`
		Title                     string        `json:"title"`
		CreatedAt                 string        `json:"created_at"`
		UpdatedAt                 string        `json:"updated_at"`
		MilestoneID               int           `json:"milestone_id"`
		State                     string        `json:"state"`
		MergeStatus               string        `json:"merge_status"`
		TargetProjectID           int           `json:"target_project_id"`
		IID                       int           `json:"iid"`
		Description               string        `json:"description"`
		Position                  int           `json:"position"`
		Labels                    []*EventLabel `json:"labels"`
		LockedAt                  string        `json:"locked_at"`
		UpdatedByID               int           `json:"updated_by_id"`
		MergeError                string        `json:"merge_error"`
		MergeParams               *MergeParams  `json:"merge_params"`
		MergeWhenPipelineSucceeds bool          `json:"merge_when_pipeline_succeeds"`
		MergeUserID               int           `json:"merge_user_id"`
		MergeCommitSHA            string        `json:"merge_commit_sha"`
		DeletedAt                 string        `json:"deleted_at"`
		InProgressMergeCommitSHA  string        `json:"in_progress_merge_commit_sha"`
		LockVersion               int           `json:"lock_version"`
		ApprovalsBeforeMerge      string        `json:"approvals_before_merge"`
		RebaseCommitSHA           string        `json:"rebase_commit_sha"`
		TimeEstimate              int           `json:"time_estimate"`
		Squash                    bool          `json:"squash"`
		LastEditedAt              string        `json:"last_edited_at"`
		LastEditedByID            int           `json:"last_edited_by_id"`
		Source                    *Repository   `json:"source"`
		Target                    *Repository   `json:"target"`
		LastCommit                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:"last_commit"`
		WorkInProgress      bool       `json:"work_in_progress"`
		TotalTimeSpent      int        `json:"total_time_spent"`
		HeadPipelineID      int        `json:"head_pipeline_id"`
		Assignee            *EventUser `json:"assignee"`
		DetailedMergeStatus string     `json:"detailed_merge_status"`
	} `json:"merge_request"`
}

MergeCommentEvent represents a comment on a merge event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#comment-on-a-merge-request

type MergeEvent added in v0.3.1

type MergeEvent struct {
	ObjectKind string     `json:"object_kind"`
	EventType  string     `json:"event_type"`
	User       *EventUser `json:"user"`
	Project    struct {
		ID                int             `json:"id"`
		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"`
		CIConfigPath      string          `json:"ci_config_path"`
		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"`
	ObjectAttributes struct {
		ID                       int          `json:"id"`
		TargetBranch             string       `json:"target_branch"`
		SourceBranch             string       `json:"source_branch"`
		SourceProjectID          int          `json:"source_project_id"`
		AuthorID                 int          `json:"author_id"`
		AssigneeID               int          `json:"assignee_id"`
		AssigneeIDs              []int        `json:"assignee_ids"`
		ReviewerIDs              []int        `json:"reviewer_ids"`
		Title                    string       `json:"title"`
		CreatedAt                string       `json:"created_at"` // Should be *time.Time (see Gitlab issue #21468)
		UpdatedAt                string       `json:"updated_at"` // Should be *time.Time (see Gitlab issue #21468)
		StCommits                []*Commit    `json:"st_commits"`
		StDiffs                  []*Diff      `json:"st_diffs"`
		LastEditedAt             string       `json:"last_edited_at"`
		LastEditedByID           int          `json:"last_edited_by_id"`
		MilestoneID              int          `json:"milestone_id"`
		StateID                  StateID      `json:"state_id"`
		State                    string       `json:"state"`
		MergeStatus              string       `json:"merge_status"`
		TargetProjectID          int          `json:"target_project_id"`
		IID                      int          `json:"iid"`
		Description              string       `json:"description"`
		Position                 int          `json:"position"`
		LockedAt                 string       `json:"locked_at"`
		UpdatedByID              int          `json:"updated_by_id"`
		MergeError               string       `json:"merge_error"`
		MergeParams              *MergeParams `json:"merge_params"`
		MergeWhenBuildSucceeds   bool         `json:"merge_when_build_succeeds"`
		MergeUserID              int          `json:"merge_user_id"`
		MergeCommitSHA           string       `json:"merge_commit_sha"`
		DeletedAt                string       `json:"deleted_at"`
		ApprovalsBeforeMerge     string       `json:"approvals_before_merge"`
		RebaseCommitSHA          string       `json:"rebase_commit_sha"`
		InProgressMergeCommitSHA string       `json:"in_progress_merge_commit_sha"`
		LockVersion              int          `json:"lock_version"`
		TimeEstimate             int          `json:"time_estimate"`
		Source                   *Repository  `json:"source"`
		Target                   *Repository  `json:"target"`
		HeadPipelineID           *int         `json:"head_pipeline_id"`
		LastCommit               struct {
			ID        string     `json:"id"`
			Message   string     `json:"message"`
			Title     string     `json:"title"`
			Timestamp *time.Time `json:"timestamp"`
			URL       string     `json:"url"`
			Author    struct {
				Name  string `json:"name"`
				Email string `json:"email"`
			} `json:"author"`
		} `json:"last_commit"`
		BlockingDiscussionsResolved bool          `json:"blocking_discussions_resolved"`
		WorkInProgress              bool          `json:"work_in_progress"`
		Draft                       bool          `json:"draft"`
		TotalTimeSpent              int           `json:"total_time_spent"`
		TimeChange                  int           `json:"time_change"`
		HumanTotalTimeSpent         string        `json:"human_total_time_spent"`
		HumanTimeChange             string        `json:"human_time_change"`
		HumanTimeEstimate           string        `json:"human_time_estimate"`
		FirstContribution           bool          `json:"first_contribution"`
		URL                         string        `json:"url"`
		Labels                      []*EventLabel `json:"labels"`
		Action                      string        `json:"action"`
		DetailedMergeStatus         string        `json:"detailed_merge_status"`
		OldRev                      string        `json:"oldrev"`
	} `json:"object_attributes"`
	Repository *Repository   `json:"repository"`
	Labels     []*EventLabel `json:"labels"`
	Changes    struct {
		Assignees struct {
			Previous []*EventUser `json:"previous"`
			Current  []*EventUser `json:"current"`
		} `json:"assignees"`
		Reviewers struct {
			Previous []*EventUser `json:"previous"`
			Current  []*EventUser `json:"current"`
		} `json:"reviewers"`
		Description struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"description"`
		Draft struct {
			Previous bool `json:"previous"`
			Current  bool `json:"current"`
		} `json:"draft"`
		Labels struct {
			Previous []*EventLabel `json:"previous"`
			Current  []*EventLabel `json:"current"`
		} `json:"labels"`
		LastEditedAt struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"last_edited_at"`
		LastEditedByID struct {
			Previous int `json:"previous"`
			Current  int `json:"current"`
		} `json:"last_edited_by_id"`
		MergeStatus struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"merge_status"`
		MilestoneID struct {
			Previous int `json:"previous"`
			Current  int `json:"current"`
		} `json:"milestone_id"`
		SourceBranch struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"source_branch"`
		SourceProjectID struct {
			Previous int `json:"previous"`
			Current  int `json:"current"`
		} `json:"source_project_id"`
		StateID struct {
			Previous StateID `json:"previous"`
			Current  StateID `json:"current"`
		} `json:"state_id"`
		TargetBranch struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"target_branch"`
		TargetProjectID struct {
			Previous int `json:"previous"`
			Current  int `json:"current"`
		} `json:"target_project_id"`
		Title struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"title"`
		UpdatedAt struct {
			Previous string `json:"previous"`
			Current  string `json:"current"`
		} `json:"updated_at"`
		UpdatedByID struct {
			Previous int `json:"previous"`
			Current  int `json:"current"`
		} `json:"updated_by_id"`
	} `json:"changes"`
	Assignees []*EventUser `json:"assignees"`
	Reviewers []*EventUser `json:"reviewers"`
}

MergeEvent represents a merge event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#merge-request-events

type MergeMethodValue added in v0.10.5

type MergeMethodValue string

MergeMethodValue represents a project merge type within GitLab.

GitLab API docs: https://docs.gitlab.com/api/projects/#project-merge-method

const (
	NoFastForwardMerge MergeMethodValue = "merge"
	FastForwardMerge   MergeMethodValue = "ff"
	RebaseMerge        MergeMethodValue = "rebase_merge"
)

List of available merge type

GitLab API docs: https://docs.gitlab.com/api/projects/#project-merge-method

type MergeParams added in v0.116.0

type MergeParams struct {
	ForceRemoveSourceBranch bool `json:"force_remove_source_branch"`
}

MergeParams represents the merge params.

func (*MergeParams) UnmarshalJSON added in v0.116.0

func (p *MergeParams) UnmarshalJSON(b []byte) error

UnmarshalJSON decodes the merge parameters

This allows support of ForceRemoveSourceBranch for both type bool (>11.9) and string (<11.9)

type MergeRequest

type MergeRequest struct {
	BasicMergeRequest
	MergeError   string `json:"merge_error"`
	Subscribed   bool   `json:"subscribed"`
	ChangesCount string `json:"changes_count"`
	User         struct {
		CanMerge bool `json:"can_merge"`
	} `json:"user"`
	LatestBuildStartedAt        *time.Time    `json:"latest_build_started_at"`
	LatestBuildFinishedAt       *time.Time    `json:"latest_build_finished_at"`
	FirstDeployedToProductionAt *time.Time    `json:"first_deployed_to_production_at"`
	Pipeline                    *PipelineInfo `json:"pipeline"`
	HeadPipeline                *Pipeline     `json:"head_pipeline"`
	DiffRefs                    struct {
		BaseSha  string `json:"base_sha"`
		HeadSha  string `json:"head_sha"`
		StartSha string `json:"start_sha"`
	} `json:"diff_refs"`
	RebaseInProgress     bool `json:"rebase_in_progress"`
	DivergedCommitsCount int  `json:"diverged_commits_count"`
	FirstContribution    bool `json:"first_contribution"`

	// Deprecated: use Draft instead
	WorkInProgress bool `json:"work_in_progress"`
}

MergeRequest represents a GitLab merge request.

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

func (MergeRequest) String

func (m MergeRequest) String() string

func (*MergeRequest) UnmarshalJSON added in v0.116.0

func (m *MergeRequest) UnmarshalJSON(data []byte) error

type MergeRequestApprovalRule added in v0.116.0

type MergeRequestApprovalRule struct {
	ID                   int                  `json:"id"`
	Name                 string               `json:"name"`
	RuleType             string               `json:"rule_type"`
	ReportType           string               `json:"report_type"`
	EligibleApprovers    []*BasicUser         `json:"eligible_approvers"`
	ApprovalsRequired    int                  `json:"approvals_required"`
	SourceRule           *ProjectApprovalRule `json:"source_rule"`
	Users                []*BasicUser         `json:"users"`
	Groups               []*Group             `json:"groups"`
	ContainsHiddenGroups bool                 `json:"contains_hidden_groups"`
	Section              string               `json:"section"`
	ApprovedBy           []*BasicUser         `json:"approved_by"`
	Approved             bool                 `json:"approved"`
}

MergeRequestApprovalRule represents a GitLab merge request approval rule.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#get-merge-request-approval-rules

func (MergeRequestApprovalRule) String added in v0.116.0

func (s MergeRequestApprovalRule) String() string

String is a stringify for MergeRequestApprovalRule

type MergeRequestApprovalSetting added in v0.125.0

type MergeRequestApprovalSetting struct {
	Value         bool   `json:"value"`
	Locked        bool   `json:"locked"`
	InheritedFrom string `json:"inherited_from"`
}

MergeRequestApprovalSetting represents an individual merge request approval setting.

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

type MergeRequestApprovalSettings added in v0.125.0

type MergeRequestApprovalSettings struct {
	AllowAuthorApproval                         MergeRequestApprovalSetting `json:"allow_author_approval"`
	AllowCommitterApproval                      MergeRequestApprovalSetting `json:"allow_committer_approval"`
	AllowOverridesToApproverListPerMergeRequest MergeRequestApprovalSetting `json:"allow_overrides_to_approver_list_per_merge_request"`
	RetainApprovalsOnPush                       MergeRequestApprovalSetting `json:"retain_approvals_on_push"`
	SelectiveCodeOwnerRemovals                  MergeRequestApprovalSetting `json:"selective_code_owner_removals"`
	RequirePasswordToApprove                    MergeRequestApprovalSetting `json:"require_password_to_approve"`
	RequireReauthenticationToApprove            MergeRequestApprovalSetting `json:"require_reauthentication_to_approve"`
}

MergeRequestApprovalSettings represents the merge request approval settings.

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

type MergeRequestApprovalSettingsService added in v0.125.0

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

MergeRequestApprovalSettingsService handles communication with the merge requests approval settings related methods of the GitLab API.

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

func (*MergeRequestApprovalSettingsService) GetGroupMergeRequestApprovalSettings added in v0.125.0

func (s *MergeRequestApprovalSettingsService) GetGroupMergeRequestApprovalSettings(gid any, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)

GetGroupMergeRequestApprovalSettings gets the merge request approval settings of a group.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approval_settings/#get-group-mr-approval-settings

func (*MergeRequestApprovalSettingsService) GetProjectMergeRequestApprovalSettings added in v0.125.0

func (s *MergeRequestApprovalSettingsService) GetProjectMergeRequestApprovalSettings(pid any, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)

GetProjectMergeRequestApprovalSettings gets the merge request approval settings of a project.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approval_settings/#get-project-mr-approval-settings

func (*MergeRequestApprovalSettingsService) UpdateGroupMergeRequestApprovalSettings added in v0.125.0

UpdateGroupMergeRequestApprovalSettings updates the merge request approval settings of a group.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approval_settings/#update-group-mr-approval-settings

func (*MergeRequestApprovalSettingsService) UpdateProjectMergeRequestApprovalSettings added in v0.125.0

UpdateProjectMergeRequestApprovalSettings updates the merge request approval settings of a project.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approval_settings/#update-project-mr-approval-settings

type MergeRequestApprovalSettingsServiceInterface added in v0.126.0

type MergeRequestApprovalSettingsServiceInterface interface {
	GetGroupMergeRequestApprovalSettings(gid any, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)
	UpdateGroupMergeRequestApprovalSettings(gid any, opt *UpdateMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)
	GetProjectMergeRequestApprovalSettings(pid any, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)
	UpdateProjectMergeRequestApprovalSettings(pid any, opt *UpdateMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)
}

type MergeRequestApprovalState added in v0.116.0

type MergeRequestApprovalState struct {
	ApprovalRulesOverwritten bool                        `json:"approval_rules_overwritten"`
	Rules                    []*MergeRequestApprovalRule `json:"rules"`
}

MergeRequestApprovalState represents a GitLab merge request approval state.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#get-the-approval-state-of-merge-requests

type MergeRequestApprovals added in v0.6.2

type MergeRequestApprovals struct {
	ID                             int                          `json:"id"`
	IID                            int                          `json:"iid"`
	ProjectID                      int                          `json:"project_id"`
	Title                          string                       `json:"title"`
	Description                    string                       `json:"description"`
	State                          string                       `json:"state"`
	CreatedAt                      *time.Time                   `json:"created_at"`
	UpdatedAt                      *time.Time                   `json:"updated_at"`
	MergeStatus                    string                       `json:"merge_status"`
	Approved                       bool                         `json:"approved"`
	ApprovalsBeforeMerge           int                          `json:"approvals_before_merge"`
	ApprovalsRequired              int                          `json:"approvals_required"`
	ApprovalsLeft                  int                          `json:"approvals_left"`
	RequirePasswordToApprove       bool                         `json:"require_password_to_approve"`
	ApprovedBy                     []*MergeRequestApproverUser  `json:"approved_by"`
	SuggestedApprovers             []*BasicUser                 `json:"suggested_approvers"`
	Approvers                      []*MergeRequestApproverUser  `json:"approvers"`
	ApproverGroups                 []*MergeRequestApproverGroup `json:"approver_groups"`
	UserHasApproved                bool                         `json:"user_has_approved"`
	UserCanApprove                 bool                         `json:"user_can_approve"`
	ApprovalRulesLeft              []*MergeRequestApprovalRule  `json:"approval_rules_left"`
	HasApprovalRules               bool                         `json:"has_approval_rules"`
	MergeRequestApproversAvailable bool                         `json:"merge_request_approvers_available"`
	MultipleApprovalRulesAvailable bool                         `json:"multiple_approval_rules_available"`
}

MergeRequestApprovals represents GitLab merge request approvals.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#single-merge-request-approval

func (MergeRequestApprovals) String added in v0.6.2

func (m MergeRequestApprovals) String() string

type MergeRequestApprovalsService added in v0.10.0

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

MergeRequestApprovalsService handles communication with the merge request approvals related methods of the GitLab API. This includes reading/updating approval settings and approve/unapproving merge requests

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

func (*MergeRequestApprovalsService) ApproveMergeRequest added in v0.10.0

ApproveMergeRequest approves a merge request on GitLab. If a non-empty sha is provided then it must match the sha at the HEAD of the MR.

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

func (*MergeRequestApprovalsService) ChangeApprovalConfiguration deprecated added in v0.116.0

func (s *MergeRequestApprovalsService) ChangeApprovalConfiguration(pid any, mergeRequest int, opt *ChangeMergeRequestApprovalConfigurationOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

ChangeApprovalConfiguration updates the approval configuration of a merge request.

Deprecated: in GitLab 16.0

func (*MergeRequestApprovalsService) CreateApprovalRule added in v0.116.0

CreateApprovalRule creates a new MR level approval rule.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#create-merge-request-rule

func (*MergeRequestApprovalsService) DeleteApprovalRule added in v0.116.0

func (s *MergeRequestApprovalsService) DeleteApprovalRule(pid any, mergeRequest int, approvalRule int, options ...RequestOptionFunc) (*Response, error)

DeleteApprovalRule deletes a mr level approval rule.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#delete-merge-request-rule

func (*MergeRequestApprovalsService) GetApprovalRules added in v0.116.0

func (s *MergeRequestApprovalsService) GetApprovalRules(pid any, mergeRequest int, options ...RequestOptionFunc) ([]*MergeRequestApprovalRule, *Response, error)

GetApprovalRules requests information about a merge request’s approval rules

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#get-merge-request-approval-rules

func (*MergeRequestApprovalsService) GetApprovalState added in v0.116.0

func (s *MergeRequestApprovalsService) GetApprovalState(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequestApprovalState, *Response, error)

GetApprovalState requests information about a merge request’s approval state

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#get-the-approval-state-of-merge-requests

func (*MergeRequestApprovalsService) GetConfiguration added in v0.116.0

func (s *MergeRequestApprovalsService) GetConfiguration(pid any, mr int, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error)

GetConfiguration shows information about single merge request approvals

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#single-merge-request-approval

func (*MergeRequestApprovalsService) ResetApprovalsOfMergeRequest added in v0.116.0

func (s *MergeRequestApprovalsService) ResetApprovalsOfMergeRequest(pid any, mr int, options ...RequestOptionFunc) (*Response, error)

ResetApprovalsOfMergeRequest clear all approvals of merge request on GitLab. Available only for bot users based on project or group tokens.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#reset-approvals-of-a-merge-request

func (*MergeRequestApprovalsService) UnapproveMergeRequest added in v0.10.0

func (s *MergeRequestApprovalsService) UnapproveMergeRequest(pid any, mr int, options ...RequestOptionFunc) (*Response, error)

UnapproveMergeRequest unapproves a previously approved merge request on GitLab.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#unapprove-merge-request

func (*MergeRequestApprovalsService) UpdateApprovalRule added in v0.116.0

func (s *MergeRequestApprovalsService) UpdateApprovalRule(pid any, mergeRequest int, approvalRule int, opt *UpdateMergeRequestApprovalRuleOptions, options ...RequestOptionFunc) (*MergeRequestApprovalRule, *Response, error)

UpdateApprovalRule updates an existing approval rule with new options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#update-merge-request-rule

type MergeRequestApprovalsServiceInterface added in v0.126.0

type MergeRequestApprovalsServiceInterface interface {
	ApproveMergeRequest(pid any, mr int, opt *ApproveMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error)
	UnapproveMergeRequest(pid any, mr int, options ...RequestOptionFunc) (*Response, error)
	ResetApprovalsOfMergeRequest(pid any, mr int, options ...RequestOptionFunc) (*Response, error)
	GetConfiguration(pid any, mr int, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error)
	ChangeApprovalConfiguration(pid any, mergeRequest int, opt *ChangeMergeRequestApprovalConfigurationOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	GetApprovalRules(pid any, mergeRequest int, options ...RequestOptionFunc) ([]*MergeRequestApprovalRule, *Response, error)
	GetApprovalState(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequestApprovalState, *Response, error)
	CreateApprovalRule(pid any, mergeRequest int, opt *CreateMergeRequestApprovalRuleOptions, options ...RequestOptionFunc) (*MergeRequestApprovalRule, *Response, error)
	UpdateApprovalRule(pid any, mergeRequest int, approvalRule int, opt *UpdateMergeRequestApprovalRuleOptions, options ...RequestOptionFunc) (*MergeRequestApprovalRule, *Response, error)
	DeleteApprovalRule(pid any, mergeRequest int, approvalRule int, options ...RequestOptionFunc) (*Response, error)
}

type MergeRequestApproverGroup added in v0.116.0

type MergeRequestApproverGroup struct {
	Group struct {
		ID                   int    `json:"id"`
		Name                 string `json:"name"`
		Path                 string `json:"path"`
		Description          string `json:"description"`
		Visibility           string `json:"visibility"`
		AvatarURL            string `json:"avatar_url"`
		WebURL               string `json:"web_url"`
		FullName             string `json:"full_name"`
		FullPath             string `json:"full_path"`
		LFSEnabled           bool   `json:"lfs_enabled"`
		RequestAccessEnabled bool   `json:"request_access_enabled"`
	}
}

MergeRequestApproverGroup represents GitLab project level merge request approver group.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#project-approval-rules

type MergeRequestApproverUser added in v0.116.0

type MergeRequestApproverUser struct {
	User *BasicUser
}

MergeRequestApproverUser represents GitLab project level merge request approver user.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#project-approval-rules

type MergeRequestDependency added in v0.119.0

type MergeRequestDependency struct {
	ID                   int                  `json:"id"`
	BlockingMergeRequest BlockingMergeRequest `json:"blocking_merge_request"`
	ProjectID            int                  `json:"project_id"`
}

MergeRequestDependency represents a GitLab merge request dependency.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#create-a-merge-request-dependency

func (MergeRequestDependency) String added in v0.119.0

func (m MergeRequestDependency) String() string

type MergeRequestDiff added in v0.116.0

type MergeRequestDiff struct {
	OldPath     string `json:"old_path"`
	NewPath     string `json:"new_path"`
	AMode       string `json:"a_mode"`
	BMode       string `json:"b_mode"`
	Diff        string `json:"diff"`
	NewFile     bool   `json:"new_file"`
	RenamedFile bool   `json:"renamed_file"`
	DeletedFile bool   `json:"deleted_file"`
}

MergeRequestDiff represents Gitlab merge request diff.

Gitlab API docs: https://docs.gitlab.com/api/merge_requests/#list-merge-request-diffs

type MergeRequestDiffVersion added in v0.7.4

type MergeRequestDiffVersion struct {
	ID             int        `json:"id"`
	HeadCommitSHA  string     `json:"head_commit_sha,omitempty"`
	BaseCommitSHA  string     `json:"base_commit_sha,omitempty"`
	StartCommitSHA string     `json:"start_commit_sha,omitempty"`
	CreatedAt      *time.Time `json:"created_at,omitempty"`
	MergeRequestID int        `json:"merge_request_id,omitempty"`
	State          string     `json:"state,omitempty"`
	RealSize       string     `json:"real_size,omitempty"`
	Commits        []*Commit  `json:"commits,omitempty"`
	Diffs          []*Diff    `json:"diffs,omitempty"`
}

MergeRequestDiffVersion represents Gitlab merge request version.

Gitlab API docs: https://docs.gitlab.com/api/merge_requests/#get-merge-request-diff-versions

func (MergeRequestDiffVersion) String added in v0.7.4

func (m MergeRequestDiffVersion) String() string

type MergeRequestReviewer added in v0.116.0

type MergeRequestReviewer struct {
	User      *BasicUser `json:"user"`
	State     string     `json:"state"`
	CreatedAt *time.Time `json:"created_at"`
}

MergeRequestReviewer represents a GitLab merge request reviewer.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-merge-request-reviewers

type MergeRequestsCount added in v0.128.0

type MergeRequestsCount struct {
	MergeRequestsCount int `url:"merge_requests_count" json:"merge_requests_count"`
}

MergeRequestsCount represents the total count of recently created merge requests in a group.

GitLab API docs: https://docs.gitlab.com/api/group_activity_analytics/#get-count-of-recently-created-merge-requests-for-group

type MergeRequestsService

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

MergeRequestsService handles communication with the merge requests related methods of the GitLab API.

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

func (*MergeRequestsService) AcceptMergeRequest

func (s *MergeRequestsService) AcceptMergeRequest(pid any, mergeRequest int, opt *AcceptMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

AcceptMergeRequest merges changes submitted with MR using this API. If merge success you get 200 OK. If it has some conflicts and can not be merged - you get 405 and error message 'Branch cannot be merged'. If merge request is already merged or closed - you get 405 and error message 'Method Not Allowed'

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#merge-a-merge-request

func (*MergeRequestsService) AddSpentTime added in v0.6.0

func (s *MergeRequestsService) AddSpentTime(pid any, mergeRequest int, opt *AddSpentTimeOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)

AddSpentTime adds spent time for a single project merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#add-spent-time-for-a-merge-request

func (*MergeRequestsService) CancelMergeWhenPipelineSucceeds added in v0.7.4

func (s *MergeRequestsService) CancelMergeWhenPipelineSucceeds(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

CancelMergeWhenPipelineSucceeds cancels a merge when pipeline succeeds. If you don't have permissions to accept this merge request - you'll get a 401. If the merge request is already merged or closed - you get 405 and error message 'Method Not Allowed'. In case the merge request is not set to be merged when the pipeline succeeds, you'll also get a 406 error.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#cancel-merge-when-pipeline-succeeds

func (*MergeRequestsService) CreateMergeRequest

func (s *MergeRequestsService) CreateMergeRequest(pid any, opt *CreateMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

CreateMergeRequest creates a new merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#create-mr

func (*MergeRequestsService) CreateMergeRequestDependency added in v0.119.0

func (s *MergeRequestsService) CreateMergeRequestDependency(pid any, mergeRequest int, opts CreateMergeRequestDependencyOptions, options ...RequestOptionFunc) (*MergeRequestDependency, *Response, error)

CreateMergeRequestDependency creates a new merge request dependency for a given merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#create-a-merge-request-dependency

func (*MergeRequestsService) CreateMergeRequestPipeline added in v0.116.0

func (s *MergeRequestsService) CreateMergeRequestPipeline(pid any, mergeRequest int, options ...RequestOptionFunc) (*PipelineInfo, *Response, error)

CreateMergeRequestPipeline creates a new pipeline for a merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#create-merge-request-pipeline

func (*MergeRequestsService) CreateTodo added in v0.7.4

func (s *MergeRequestsService) CreateTodo(pid any, mergeRequest int, options ...RequestOptionFunc) (*Todo, *Response, error)

CreateTodo manually creates a todo for the current user on a merge request. If there already exists a todo for the user on that merge request, status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#create-a-to-do-item

func (*MergeRequestsService) DeleteMergeRequest added in v0.7.4

func (s *MergeRequestsService) DeleteMergeRequest(pid any, mergeRequest int, options ...RequestOptionFunc) (*Response, error)

DeleteMergeRequest deletes a merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#delete-a-merge-request

func (*MergeRequestsService) DeleteMergeRequestDependency added in v0.119.0

func (s *MergeRequestsService) DeleteMergeRequestDependency(pid any, mergeRequest int, blockingMergeRequest int, options ...RequestOptionFunc) (*Response, error)

DeleteMergeRequestDependency deletes a merge request dependency for a given merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#delete-a-merge-request-dependency

func (*MergeRequestsService) GetIssuesClosedOnMerge added in v0.7.3

func (s *MergeRequestsService) GetIssuesClosedOnMerge(pid any, mergeRequest int, opt *GetIssuesClosedOnMergeOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

GetIssuesClosedOnMerge gets all the issues that would be closed by merging the provided merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-issues-that-close-on-merge

func (*MergeRequestsService) GetMergeRequest

func (s *MergeRequestsService) GetMergeRequest(pid any, mergeRequest int, opt *GetMergeRequestsOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

GetMergeRequest shows information about a single merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-mr

func (*MergeRequestsService) GetMergeRequestApprovals added in v0.6.2

func (s *MergeRequestsService) GetMergeRequestApprovals(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error)

GetMergeRequestApprovals gets information about a merge requests approvals

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#single-merge-request-approval

func (*MergeRequestsService) GetMergeRequestChanges deprecated

func (s *MergeRequestsService) GetMergeRequestChanges(pid any, mergeRequest int, opt *GetMergeRequestChangesOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

GetMergeRequestChanges shows information about the merge request including its files and changes.

Deprecated: This endpoint has been replaced by MergeRequestsService.ListMergeRequestDiffs()

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-merge-request-changes

func (*MergeRequestsService) GetMergeRequestCommits added in v0.4.0

func (s *MergeRequestsService) GetMergeRequestCommits(pid any, mergeRequest int, opt *GetMergeRequestCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)

GetMergeRequestCommits gets a list of merge request commits.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-merge-request-commits

func (*MergeRequestsService) GetMergeRequestDependencies added in v0.119.0

func (s *MergeRequestsService) GetMergeRequestDependencies(pid any, mergeRequest int, options ...RequestOptionFunc) ([]MergeRequestDependency, *Response, error)

GetMergeRequestDependencies gets a list of merge request dependencies.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-merge-request-dependencies

func (*MergeRequestsService) GetMergeRequestDiffVersions added in v0.7.4

func (s *MergeRequestsService) GetMergeRequestDiffVersions(pid any, mergeRequest int, opt *GetMergeRequestDiffVersionsOptions, options ...RequestOptionFunc) ([]*MergeRequestDiffVersion, *Response, error)

GetMergeRequestDiffVersions get a list of merge request diff versions.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-merge-request-diff-versions

func (*MergeRequestsService) GetMergeRequestParticipants added in v0.116.0

func (s *MergeRequestsService) GetMergeRequestParticipants(pid any, mergeRequest int, options ...RequestOptionFunc) ([]*BasicUser, *Response, error)

GetMergeRequestParticipants gets a list of merge request participants.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-merge-request-participants

func (*MergeRequestsService) GetMergeRequestReviewers added in v0.116.0

func (s *MergeRequestsService) GetMergeRequestReviewers(pid any, mergeRequest int, options ...RequestOptionFunc) ([]*MergeRequestReviewer, *Response, error)

GetMergeRequestReviewers gets a list of merge request reviewers.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-merge-request-reviewers

func (*MergeRequestsService) GetSingleMergeRequestDiffVersion added in v0.7.4

func (s *MergeRequestsService) GetSingleMergeRequestDiffVersion(pid any, mergeRequest, version int, opt *GetSingleMergeRequestDiffVersionOptions, options ...RequestOptionFunc) (*MergeRequestDiffVersion, *Response, error)

GetSingleMergeRequestDiffVersion get a single MR diff version

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-a-single-merge-request-diff-version

func (*MergeRequestsService) GetTimeSpent added in v0.6.0

func (s *MergeRequestsService) GetTimeSpent(pid any, mergeRequest int, options ...RequestOptionFunc) (*TimeStats, *Response, error)

GetTimeSpent gets the spent time for a single project merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-time-tracking-stats

func (*MergeRequestsService) ListGroupMergeRequests added in v0.11.1

func (s *MergeRequestsService) ListGroupMergeRequests(gid any, opt *ListGroupMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

ListGroupMergeRequests gets all merge requests for this group.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-group-merge-requests

func (*MergeRequestsService) ListMergeRequestDiffs added in v0.116.0

func (s *MergeRequestsService) ListMergeRequestDiffs(pid any, mergeRequest int, opt *ListMergeRequestDiffsOptions, options ...RequestOptionFunc) ([]*MergeRequestDiff, *Response, error)

ListMergeRequestDiffs List diffs of the files changed in a merge request

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-merge-request-diffs

func (*MergeRequestsService) ListMergeRequestPipelines added in v0.9.0

func (s *MergeRequestsService) ListMergeRequestPipelines(pid any, mergeRequest int, options ...RequestOptionFunc) ([]*PipelineInfo, *Response, error)

ListMergeRequestPipelines gets all pipelines for the provided merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-merge-request-pipelines

func (*MergeRequestsService) ListMergeRequests

func (s *MergeRequestsService) ListMergeRequests(opt *ListMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

ListMergeRequests gets all merge requests. The state parameter can be used to get only merge requests with a given state (opened, closed, or merged) or all of them (all). The pagination parameters page and per_page can be used to restrict the list of merge requests.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-merge-requests

func (*MergeRequestsService) ListProjectMergeRequests added in v0.6.2

func (s *MergeRequestsService) ListProjectMergeRequests(pid any, opt *ListProjectMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

ListProjectMergeRequests gets all merge requests for this project.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-project-merge-requests

func (*MergeRequestsService) ListRelatedIssues added in v0.128.0

func (s *MergeRequestsService) ListRelatedIssues(pid any, mergeRequest int, opt *ListRelatedIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

ListRelatedIssues gets all the issues related to provided merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-issues-related-to-the-merge-request

func (*MergeRequestsService) RebaseMergeRequest added in v0.116.0

func (s *MergeRequestsService) RebaseMergeRequest(pid any, mergeRequest int, opt *RebaseMergeRequestOptions, options ...RequestOptionFunc) (*Response, error)

RebaseMergeRequest automatically rebases the source_branch of the merge request against its target_branch. If you don’t have permissions to push to the merge request’s source branch, you’ll get a 403 Forbidden response.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#rebase-a-merge-request

func (*MergeRequestsService) ResetSpentTime added in v0.6.0

func (s *MergeRequestsService) ResetSpentTime(pid any, mergeRequest int, options ...RequestOptionFunc) (*TimeStats, *Response, error)

ResetSpentTime resets the spent time for a single project merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#reset-spent-time-for-a-merge-request

func (*MergeRequestsService) ResetTimeEstimate added in v0.6.0

func (s *MergeRequestsService) ResetTimeEstimate(pid any, mergeRequest int, options ...RequestOptionFunc) (*TimeStats, *Response, error)

ResetTimeEstimate resets the time estimate for a single project merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#reset-the-time-estimate-for-a-merge-request

func (*MergeRequestsService) SetTimeEstimate added in v0.6.0

func (s *MergeRequestsService) SetTimeEstimate(pid any, mergeRequest int, opt *SetTimeEstimateOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)

SetTimeEstimate sets the time estimate for a single project merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#set-a-time-estimate-for-a-merge-request

func (*MergeRequestsService) ShowMergeRequestRawDiffs added in v0.121.0

func (s *MergeRequestsService) ShowMergeRequestRawDiffs(pid any, mergeRequest int, opt *ShowMergeRequestRawDiffsOptions, options ...RequestOptionFunc) ([]byte, *Response, error)

ShowMergeRequestRawDiffs Show raw diffs of the files changed in a merge request

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#show-merge-request-raw-diffs

func (*MergeRequestsService) SubscribeToMergeRequest added in v0.7.4

func (s *MergeRequestsService) SubscribeToMergeRequest(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

SubscribeToMergeRequest subscribes the authenticated user to the given merge request to receive notifications. If the user is already subscribed to the merge request, the status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#subscribe-to-a-merge-request

func (*MergeRequestsService) UnsubscribeFromMergeRequest added in v0.7.4

func (s *MergeRequestsService) UnsubscribeFromMergeRequest(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

UnsubscribeFromMergeRequest unsubscribes the authenticated user from the given merge request to not receive notifications from that merge request. If the user is not subscribed to the merge request, status code 304 is returned.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#unsubscribe-from-a-merge-request

func (*MergeRequestsService) UpdateMergeRequest

func (s *MergeRequestsService) UpdateMergeRequest(pid any, mergeRequest int, opt *UpdateMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

UpdateMergeRequest updates an existing project milestone.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#update-mr

type MergeRequestsServiceInterface added in v0.126.0

type MergeRequestsServiceInterface interface {
	ListMergeRequests(opt *ListMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	ListProjectMergeRequests(pid any, opt *ListProjectMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	ListGroupMergeRequests(gid any, opt *ListGroupMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	GetMergeRequest(pid any, mergeRequest int, opt *GetMergeRequestsOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	GetMergeRequestApprovals(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error)
	GetMergeRequestCommits(pid any, mergeRequest int, opt *GetMergeRequestCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)
	GetMergeRequestChanges(pid any, mergeRequest int, opt *GetMergeRequestChangesOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	ListMergeRequestDiffs(pid any, mergeRequest int, opt *ListMergeRequestDiffsOptions, options ...RequestOptionFunc) ([]*MergeRequestDiff, *Response, error)
	ShowMergeRequestRawDiffs(pid any, mergeRequest int, opt *ShowMergeRequestRawDiffsOptions, options ...RequestOptionFunc) ([]byte, *Response, error)
	GetMergeRequestParticipants(pid any, mergeRequest int, options ...RequestOptionFunc) ([]*BasicUser, *Response, error)
	GetMergeRequestReviewers(pid any, mergeRequest int, options ...RequestOptionFunc) ([]*MergeRequestReviewer, *Response, error)
	ListMergeRequestPipelines(pid any, mergeRequest int, options ...RequestOptionFunc) ([]*PipelineInfo, *Response, error)
	CreateMergeRequestPipeline(pid any, mergeRequest int, options ...RequestOptionFunc) (*PipelineInfo, *Response, error)
	GetIssuesClosedOnMerge(pid any, mergeRequest int, opt *GetIssuesClosedOnMergeOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	ListRelatedIssues(pid any, mergeRequest int, opt *ListRelatedIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	CreateMergeRequest(pid any, opt *CreateMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	UpdateMergeRequest(pid any, mergeRequest int, opt *UpdateMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	DeleteMergeRequest(pid any, mergeRequest int, options ...RequestOptionFunc) (*Response, error)
	AcceptMergeRequest(pid any, mergeRequest int, opt *AcceptMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	CancelMergeWhenPipelineSucceeds(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	RebaseMergeRequest(pid any, mergeRequest int, opt *RebaseMergeRequestOptions, options ...RequestOptionFunc) (*Response, error)
	GetMergeRequestDiffVersions(pid any, mergeRequest int, opt *GetMergeRequestDiffVersionsOptions, options ...RequestOptionFunc) ([]*MergeRequestDiffVersion, *Response, error)
	GetSingleMergeRequestDiffVersion(pid any, mergeRequest, version int, opt *GetSingleMergeRequestDiffVersionOptions, options ...RequestOptionFunc) (*MergeRequestDiffVersion, *Response, error)
	SubscribeToMergeRequest(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	UnsubscribeFromMergeRequest(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	CreateTodo(pid any, mergeRequest int, options ...RequestOptionFunc) (*Todo, *Response, error)
	SetTimeEstimate(pid any, mergeRequest int, opt *SetTimeEstimateOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	ResetTimeEstimate(pid any, mergeRequest int, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	AddSpentTime(pid any, mergeRequest int, opt *AddSpentTimeOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	ResetSpentTime(pid any, mergeRequest int, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	GetTimeSpent(pid any, mergeRequest int, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	CreateMergeRequestDependency(pid any, mergeRequest int, opts CreateMergeRequestDependencyOptions, options ...RequestOptionFunc) (*MergeRequestDependency, *Response, error)
	DeleteMergeRequestDependency(pid any, mergeRequest int, blockingMergeRequest int, options ...RequestOptionFunc) (*Response, error)
	GetMergeRequestDependencies(pid any, mergeRequest int, options ...RequestOptionFunc) ([]MergeRequestDependency, *Response, error)
}

type MergeStatusCheck added in v0.116.0

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

type MergeTrain added in v0.116.0

type MergeTrain struct {
	ID           int                     `json:"id"`
	MergeRequest *MergeTrainMergeRequest `json:"merge_request"`
	User         *BasicUser              `json:"user"`
	Pipeline     *Pipeline               `json:"pipeline"`
	CreatedAt    *time.Time              `json:"created_at"`
	UpdatedAt    *time.Time              `json:"updated_at"`
	TargetBranch string                  `json:"target_branch"`
	Status       string                  `json:"status"`
	MergedAt     *time.Time              `json:"merged_at"`
	Duration     int                     `json:"duration"`
}

MergeTrain represents a Gitlab merge train.

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

type MergeTrainMergeRequest added in v0.116.0

type MergeTrainMergeRequest struct {
	ID          int        `json:"id"`
	IID         int        `json:"iid"`
	ProjectID   int        `json:"project_id"`
	Title       string     `json:"title"`
	Description string     `json:"description"`
	State       string     `json:"state"`
	CreatedAt   *time.Time `json:"created_at"`
	UpdatedAt   *time.Time `json:"updated_at"`
	WebURL      string     `json:"web_url"`
}

MergeTrainMergeRequest represents a Gitlab merge request inside merge train.

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

type MergeTrainsService added in v0.116.0

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

MergeTrainsService handles communication with the merge trains related methods of the GitLab API.

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

func (*MergeTrainsService) AddMergeRequestToMergeTrain added in v0.116.0

func (s *MergeTrainsService) AddMergeRequestToMergeTrain(pid any, mergeRequest int, opts *AddMergeRequestToMergeTrainOptions, options ...RequestOptionFunc) ([]*MergeTrain, *Response, error)

AddMergeRequestToMergeTrain Add a merge request to the merge train targeting the merge request’s target branch.

GitLab API docs: https://docs.gitlab.com/api/merge_trains/#add-a-merge-request-to-a-merge-train

func (*MergeTrainsService) GetMergeRequestOnAMergeTrain added in v0.116.0

func (s *MergeTrainsService) GetMergeRequestOnAMergeTrain(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeTrain, *Response, error)

GetMergeRequestOnAMergeTrain Get merge train information for the requested merge request.

GitLab API docs: https://docs.gitlab.com/api/merge_trains/#get-the-status-of-a-merge-request-on-a-merge-train

func (*MergeTrainsService) ListMergeRequestInMergeTrain added in v0.116.0

func (s *MergeTrainsService) ListMergeRequestInMergeTrain(pid any, targetBranch string, opts *ListMergeTrainsOptions, options ...RequestOptionFunc) ([]*MergeTrain, *Response, error)

ListMergeRequestInMergeTrain gets a list of merge requests added to a merge train for the requested target branch.

GitLab API docs: https://docs.gitlab.com/api/merge_trains/#list-merge-requests-in-a-merge-train

func (*MergeTrainsService) ListProjectMergeTrains added in v0.116.0

func (s *MergeTrainsService) ListProjectMergeTrains(pid any, opt *ListMergeTrainsOptions, options ...RequestOptionFunc) ([]*MergeTrain, *Response, error)

ListProjectMergeTrains get a list of merge trains in a project.

GitLab API docs: https://docs.gitlab.com/api/merge_trains/#list-merge-trains-for-a-project

type MergeTrainsServiceInterface added in v0.126.0

type MergeTrainsServiceInterface interface {
	ListProjectMergeTrains(pid any, opt *ListMergeTrainsOptions, options ...RequestOptionFunc) ([]*MergeTrain, *Response, error)
	ListMergeRequestInMergeTrain(pid any, targetBranch string, opts *ListMergeTrainsOptions, options ...RequestOptionFunc) ([]*MergeTrain, *Response, error)
	GetMergeRequestOnAMergeTrain(pid any, mergeRequest int, options ...RequestOptionFunc) (*MergeTrain, *Response, error)
	AddMergeRequestToMergeTrain(pid any, mergeRequest int, opts *AddMergeRequestToMergeTrainOptions, options ...RequestOptionFunc) ([]*MergeTrain, *Response, error)
}

type Metadata added in v0.116.0

type Metadata struct {
	Version  string `json:"version"`
	Revision string `json:"revision"`
	KAS      struct {
		Enabled             bool   `json:"enabled"`
		ExternalURL         string `json:"externalUrl"`
		ExternalK8SProxyURL string `json:"externalK8sProxyUrl"`
		Version             string `json:"version"`
	} `json:"kas"`
	Enterprise bool `json:"enterprise"`
}

Metadata represents a GitLab instance version.

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

func (Metadata) String added in v0.116.0

func (s Metadata) String() string

type MetadataService added in v0.116.0

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

MetadataService handles communication with the GitLab server instance to retrieve its metadata information via the GitLab API.

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

func (*MetadataService) GetMetadata added in v0.116.0

func (s *MetadataService) GetMetadata(options ...RequestOptionFunc) (*Metadata, *Response, error)

GetMetadata gets a GitLab server instance meteadata.

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

type MetadataServiceInterface added in v0.126.0

type MetadataServiceInterface interface {
	GetMetadata(options ...RequestOptionFunc) (*Metadata, *Response, error)
}

type MetricImage added in v0.128.0

type MetricImage struct {
	ID        int        `json:"id"`
	CreatedAt *time.Time `json:"created_at"`
	Filename  string     `json:"filename"`
	FilePath  string     `json:"file_path"`
	URL       string     `json:"url"`
	URLText   string     `json:"url_text"`
}

MetricImage represents a single metric image file.

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

type MicrosoftTeamsService added in v0.11.0

type MicrosoftTeamsService struct {
	Service
	Properties *MicrosoftTeamsServiceProperties `json:"properties"`
}

MicrosoftTeamsService represents Microsoft Teams service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#microsoft-teams-notifications

type MicrosoftTeamsServiceProperties added in v0.11.0

type MicrosoftTeamsServiceProperties struct {
	WebHook                   string    `json:"webhook"`
	NotifyOnlyBrokenPipelines BoolValue `json:"notify_only_broken_pipelines"`
	BranchesToBeNotified      string    `json:"branches_to_be_notified"`
	IssuesEvents              BoolValue `json:"issues_events"`
	ConfidentialIssuesEvents  BoolValue `json:"confidential_issues_events"`
	MergeRequestsEvents       BoolValue `json:"merge_requests_events"`
	TagPushEvents             BoolValue `json:"tag_push_events"`
	NoteEvents                BoolValue `json:"note_events"`
	ConfidentialNoteEvents    BoolValue `json:"confidential_note_events"`
	PipelineEvents            BoolValue `json:"pipeline_events"`
	WikiPageEvents            BoolValue `json:"wiki_page_events"`
}

MicrosoftTeamsServiceProperties represents Microsoft Teams specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#microsoft-teams-notifications

type Milestone

type Milestone struct {
	ID          int        `json:"id"`
	IID         int        `json:"iid"`
	GroupID     int        `json:"group_id"`
	ProjectID   int        `json:"project_id"`
	Title       string     `json:"title"`
	Description string     `json:"description"`
	StartDate   *ISOTime   `json:"start_date"`
	DueDate     *ISOTime   `json:"due_date"`
	State       string     `json:"state"`
	WebURL      string     `json:"web_url"`
	UpdatedAt   *time.Time `json:"updated_at"`
	CreatedAt   *time.Time `json:"created_at"`
	Expired     *bool      `json:"expired"`
}

Milestone represents a GitLab milestone.

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

func (Milestone) String

func (m Milestone) String() string

type MilestoneEvent added in v0.116.0

type MilestoneEvent struct {
	ID           int        `json:"id"`
	User         *BasicUser `json:"user"`
	CreatedAt    *time.Time `json:"created_at"`
	ResourceType string     `json:"resource_type"`
	ResourceID   int        `json:"resource_id"`
	Milestone    *Milestone `json:"milestone"`
	Action       string     `json:"action"`
}

MilestoneEvent represents a resource milestone event.

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

type MilestonesService

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

MilestonesService handles communication with the milestone related methods of the GitLab API.

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

func (*MilestonesService) CreateMilestone

func (s *MilestonesService) CreateMilestone(pid any, opt *CreateMilestoneOptions, options ...RequestOptionFunc) (*Milestone, *Response, error)

CreateMilestone creates a new project milestone.

GitLab API docs: https://docs.gitlab.com/api/milestones/#create-new-milestone

func (*MilestonesService) DeleteMilestone added in v0.10.0

func (s *MilestonesService) DeleteMilestone(pid any, milestone int, options ...RequestOptionFunc) (*Response, error)

DeleteMilestone deletes a specified project milestone.

GitLab API docs: https://docs.gitlab.com/api/milestones/#delete-project-milestone

func (*MilestonesService) GetMilestone

func (s *MilestonesService) GetMilestone(pid any, milestone int, options ...RequestOptionFunc) (*Milestone, *Response, error)

GetMilestone gets a single project milestone.

GitLab API docs: https://docs.gitlab.com/api/milestones/#get-single-milestone

func (*MilestonesService) GetMilestoneIssues

func (s *MilestonesService) GetMilestoneIssues(pid any, milestone int, opt *GetMilestoneIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

GetMilestoneIssues gets all issues assigned to a single project milestone.

GitLab API docs: https://docs.gitlab.com/api/milestones/#get-all-issues-assigned-to-a-single-milestone

func (*MilestonesService) GetMilestoneMergeRequests added in v0.10.0

func (s *MilestonesService) GetMilestoneMergeRequests(pid any, milestone int, opt *GetMilestoneMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

GetMilestoneMergeRequests gets all merge requests assigned to a single project milestone.

GitLab API docs: https://docs.gitlab.com/api/milestones/#get-all-merge-requests-assigned-to-a-single-milestone

func (*MilestonesService) ListMilestones

func (s *MilestonesService) ListMilestones(pid any, opt *ListMilestonesOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)

ListMilestones returns a list of project milestones.

GitLab API docs: https://docs.gitlab.com/api/milestones/#list-project-milestones

func (*MilestonesService) UpdateMilestone

func (s *MilestonesService) UpdateMilestone(pid any, milestone int, opt *UpdateMilestoneOptions, options ...RequestOptionFunc) (*Milestone, *Response, error)

UpdateMilestone updates an existing project milestone.

GitLab API docs: https://docs.gitlab.com/api/milestones/#edit-milestone

type MilestonesServiceInterface added in v0.126.0

type MilestonesServiceInterface interface {
	ListMilestones(pid any, opt *ListMilestonesOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)
	GetMilestone(pid any, milestone int, options ...RequestOptionFunc) (*Milestone, *Response, error)
	CreateMilestone(pid any, opt *CreateMilestoneOptions, options ...RequestOptionFunc) (*Milestone, *Response, error)
	UpdateMilestone(pid any, milestone int, opt *UpdateMilestoneOptions, options ...RequestOptionFunc) (*Milestone, *Response, error)
	DeleteMilestone(pid any, milestone int, options ...RequestOptionFunc) (*Response, error)
	GetMilestoneIssues(pid any, milestone int, opt *GetMilestoneIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	GetMilestoneMergeRequests(pid any, milestone int, opt *GetMilestoneMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
}

type ModifyUserOptions

type ModifyUserOptions struct {
	Admin              *bool       `url:"admin,omitempty" json:"admin,omitempty"`
	Avatar             *UserAvatar `url:"-" json:"avatar,omitempty"`
	Bio                *string     `url:"bio,omitempty" json:"bio,omitempty"`
	CanCreateGroup     *bool       `url:"can_create_group,omitempty" json:"can_create_group,omitempty"`
	CommitEmail        *string     `url:"commit_email,omitempty" json:"commit_email,omitempty"`
	Email              *string     `url:"email,omitempty" json:"email,omitempty"`
	External           *bool       `url:"external,omitempty" json:"external,omitempty"`
	ExternUID          *string     `url:"extern_uid,omitempty" json:"extern_uid,omitempty"`
	JobTitle           *string     `url:"job_title,omitempty" json:"job_title,omitempty"`
	Linkedin           *string     `url:"linkedin,omitempty" json:"linkedin,omitempty"`
	Location           *string     `url:"location,omitempty" json:"location,omitempty"`
	Name               *string     `url:"name,omitempty" json:"name,omitempty"`
	Note               *string     `url:"note,omitempty" json:"note,omitempty"`
	Organization       *string     `url:"organization,omitempty" json:"organization,omitempty"`
	Password           *string     `url:"password,omitempty" json:"password,omitempty"`
	PrivateProfile     *bool       `url:"private_profile,omitempty" json:"private_profile,omitempty"`
	ProjectsLimit      *int        `url:"projects_limit,omitempty" json:"projects_limit,omitempty"`
	Provider           *string     `url:"provider,omitempty" json:"provider,omitempty"`
	PublicEmail        *string     `url:"public_email,omitempty" json:"public_email,omitempty"`
	SkipReconfirmation *bool       `url:"skip_reconfirmation,omitempty" json:"skip_reconfirmation,omitempty"`
	Skype              *string     `url:"skype,omitempty" json:"skype,omitempty"`
	ThemeID            *int        `url:"theme_id,omitempty" json:"theme_id,omitempty"`
	Twitter            *string     `url:"twitter,omitempty" json:"twitter,omitempty"`
	Username           *string     `url:"username,omitempty" json:"username,omitempty"`
	WebsiteURL         *string     `url:"website_url,omitempty" json:"website_url,omitempty"`
}

ModifyUserOptions represents the available ModifyUser() options.

GitLab API docs: https://docs.gitlab.com/api/users/#modify-a-user

type MoveIssueOptions added in v0.116.0

type MoveIssueOptions struct {
	ToProjectID *int `url:"to_project_id,omitempty" json:"to_project_id,omitempty"`
}

MoveIssueOptions represents the available MoveIssue() options.

GitLab API docs: https://docs.gitlab.com/api/issues/#move-an-issue

type Namespace

type Namespace struct {
	ID                          int      `json:"id"`
	Name                        string   `json:"name"`
	Path                        string   `json:"path"`
	Kind                        string   `json:"kind"`
	FullPath                    string   `json:"full_path"`
	ParentID                    int      `json:"parent_id"`
	AvatarURL                   *string  `json:"avatar_url"`
	WebURL                      string   `json:"web_url"`
	MembersCountWithDescendants int      `json:"members_count_with_descendants"`
	BillableMembersCount        int      `json:"billable_members_count"`
	Plan                        string   `json:"plan"`
	TrialEndsOn                 *ISOTime `json:"trial_ends_on"`
	Trial                       bool     `json:"trial"`
	MaxSeatsUsed                *int     `json:"max_seats_used"`
	SeatsInUse                  *int     `json:"seats_in_use"`
}

Namespace represents a GitLab namespace.

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

func (Namespace) String

func (n Namespace) String() string

type NamespaceExistance added in v0.116.0

type NamespaceExistance struct {
	Exists   bool     `json:"exists"`
	Suggests []string `json:"suggests"`
}

NamespaceExistance represents a namespace exists result.

GitLab API docs: https://docs.gitlab.com/api/namespaces/#verify-namespace-availability

type NamespaceExistsOptions added in v0.116.0

type NamespaceExistsOptions struct {
	ParentID *int `url:"parent_id,omitempty" json:"parent_id,omitempty"`
}

NamespaceExistsOptions represents the available NamespaceExists() options.

GitLab API docs: https://docs.gitlab.com/api/namespaces/#verify-namespace-availability

type NamespacesService

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

NamespacesService handles communication with the namespace related methods of the GitLab API.

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

func (*NamespacesService) GetNamespace added in v0.7.4

func (s *NamespacesService) GetNamespace(id any, options ...RequestOptionFunc) (*Namespace, *Response, error)

GetNamespace gets a namespace by id.

GitLab API docs: https://docs.gitlab.com/api/namespaces/#get-details-on-a-namespace

func (*NamespacesService) ListNamespaces

func (s *NamespacesService) ListNamespaces(opt *ListNamespacesOptions, options ...RequestOptionFunc) ([]*Namespace, *Response, error)

ListNamespaces gets a list of projects accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/namespaces/#list-all-namespaces

func (*NamespacesService) NamespaceExists added in v0.116.0

func (s *NamespacesService) NamespaceExists(id any, opt *NamespaceExistsOptions, options ...RequestOptionFunc) (*NamespaceExistance, *Response, error)

NamespaceExists checks the existence of a namespace.

GitLab API docs: https://docs.gitlab.com/api/namespaces/#verify-namespace-availability

func (*NamespacesService) SearchNamespace

func (s *NamespacesService) SearchNamespace(query string, options ...RequestOptionFunc) ([]*Namespace, *Response, error)

SearchNamespace gets all namespaces that match your string in their name or path.

GitLab API docs: https://docs.gitlab.com/api/namespaces/#list-all-namespaces

type NamespacesServiceInterface added in v0.126.0

type NamespacesServiceInterface interface {
	ListNamespaces(opt *ListNamespacesOptions, options ...RequestOptionFunc) ([]*Namespace, *Response, error)
	SearchNamespace(query string, options ...RequestOptionFunc) ([]*Namespace, *Response, error)
	GetNamespace(id any, options ...RequestOptionFunc) (*Namespace, *Response, error)
	NamespaceExists(id any, opt *NamespaceExistsOptions, options ...RequestOptionFunc) (*NamespaceExistance, *Response, error)
}

type NewMembersCount added in v0.128.0

type NewMembersCount struct {
	NewMembersCount int `url:"new_members_count" json:"new_members_count"`
}

NewMembersCount represents the total count of recently added members to a group.

GitLab API docs: https://docs.gitlab.com/api/group_activity_analytics/#get-count-of-members-recently-added-to-group

type Note

type Note struct {
	ID           int           `json:"id"`
	Type         NoteTypeValue `json:"type"`
	Body         string        `json:"body"`
	Attachment   string        `json:"attachment"`
	Title        string        `json:"title"`
	FileName     string        `json:"file_name"`
	Author       NoteAuthor    `json:"author"`
	System       bool          `json:"system"`
	CreatedAt    *time.Time    `json:"created_at"`
	UpdatedAt    *time.Time    `json:"updated_at"`
	ExpiresAt    *time.Time    `json:"expires_at"`
	CommitID     string        `json:"commit_id"`
	Position     *NotePosition `json:"position"`
	NoteableID   int           `json:"noteable_id"`
	NoteableType string        `json:"noteable_type"`
	ProjectID    int           `json:"project_id"`
	NoteableIID  int           `json:"noteable_iid"`
	Resolvable   bool          `json:"resolvable"`
	Resolved     bool          `json:"resolved"`
	ResolvedAt   *time.Time    `json:"resolved_at"`
	ResolvedBy   struct {
		ID        int    `json:"id"`
		Username  string `json:"username"`
		Email     string `json:"email"`
		Name      string `json:"name"`
		State     string `json:"state"`
		AvatarURL string `json:"avatar_url"`
		WebURL    string `json:"web_url"`
	} `json:"resolved_by"`
	Internal bool `json:"internal"`

	// Deprecated: use Internal instead
	Confidential bool `json:"confidential"`
}

Note represents a GitLab note.

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

func (Note) String

func (n Note) String() string

type NoteAuthor added in v0.124.0

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

NoteAuthor represents the author of a note.

type NotePosition added in v0.11.2

type NotePosition struct {
	BaseSHA      string     `json:"base_sha"`
	StartSHA     string     `json:"start_sha"`
	HeadSHA      string     `json:"head_sha"`
	PositionType string     `json:"position_type"`
	NewPath      string     `json:"new_path,omitempty"`
	NewLine      int        `json:"new_line,omitempty"`
	OldPath      string     `json:"old_path,omitempty"`
	OldLine      int        `json:"old_line,omitempty"`
	LineRange    *LineRange `json:"line_range,omitempty"`
}

NotePosition represents the position attributes of a note.

type NoteTypeValue added in v0.116.0

type NoteTypeValue string

NoteTypeValue represents the type of a Note.

const (
	DiffNote       NoteTypeValue = "DiffNote"
	DiscussionNote NoteTypeValue = "DiscussionNote"
	GenericNote    NoteTypeValue = "Note"
	LegacyDiffNote NoteTypeValue = "LegacyDiffNote"
)

List of available note types.

type NotesService

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

NotesService handles communication with the notes related methods of the GitLab API.

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

func (*NotesService) CreateEpicNote added in v0.116.0

func (s *NotesService) CreateEpicNote(gid any, epic int, opt *CreateEpicNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

CreateEpicNote creates a new note for a single merge request. Will be removed in v5 of the API, use Work Items API instead

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

func (*NotesService) CreateIssueNote

func (s *NotesService) CreateIssueNote(pid any, issue int, opt *CreateIssueNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

CreateIssueNote creates a new note to a single project issue.

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

func (*NotesService) CreateMergeRequestNote

func (s *NotesService) CreateMergeRequestNote(pid any, mergeRequest int, opt *CreateMergeRequestNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

CreateMergeRequestNote creates a new note for a single merge request.

GitLab API docs: https://docs.gitlab.com/api/notes/#create-new-merge-request-note

func (*NotesService) CreateSnippetNote

func (s *NotesService) CreateSnippetNote(pid any, snippet int, opt *CreateSnippetNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

CreateSnippetNote creates a new note for a single snippet. Snippet notes are comments users can post to a snippet.

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

func (*NotesService) DeleteEpicNote added in v0.116.0

func (s *NotesService) DeleteEpicNote(gid any, epic, note int, options ...RequestOptionFunc) (*Response, error)

DeleteEpicNote deletes an existing note of a merge request. Will be removed in v5 of the API, use Work Items API instead

https://docs.gitlab.com/api/notes/#delete-an-epic-note

func (*NotesService) DeleteIssueNote added in v0.6.0

func (s *NotesService) DeleteIssueNote(pid any, issue, note int, options ...RequestOptionFunc) (*Response, error)

DeleteIssueNote deletes an existing note of an issue.

GitLab API docs: https://docs.gitlab.com/api/notes/#delete-an-issue-note

func (*NotesService) DeleteMergeRequestNote added in v0.6.0

func (s *NotesService) DeleteMergeRequestNote(pid any, mergeRequest, note int, options ...RequestOptionFunc) (*Response, error)

DeleteMergeRequestNote deletes an existing note of a merge request.

GitLab API docs: https://docs.gitlab.com/api/notes/#delete-a-merge-request-note

func (*NotesService) DeleteSnippetNote added in v0.6.0

func (s *NotesService) DeleteSnippetNote(pid any, snippet, note int, options ...RequestOptionFunc) (*Response, error)

DeleteSnippetNote deletes an existing note of a snippet.

GitLab API docs: https://docs.gitlab.com/api/notes/#delete-a-snippet-note

func (*NotesService) GetEpicNote added in v0.116.0

func (s *NotesService) GetEpicNote(gid any, epic, note int, options ...RequestOptionFunc) (*Note, *Response, error)

GetEpicNote returns a single note for an epic. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/notes/#get-single-epic-note

func (*NotesService) GetIssueNote

func (s *NotesService) GetIssueNote(pid any, issue, note int, options ...RequestOptionFunc) (*Note, *Response, error)

GetIssueNote returns a single note for a specific project issue.

GitLab API docs: https://docs.gitlab.com/api/notes/#get-single-issue-note

func (*NotesService) GetMergeRequestNote

func (s *NotesService) GetMergeRequestNote(pid any, mergeRequest, note int, options ...RequestOptionFunc) (*Note, *Response, error)

GetMergeRequestNote returns a single note for a given merge request.

GitLab API docs: https://docs.gitlab.com/api/notes/#get-single-merge-request-note

func (*NotesService) GetSnippetNote

func (s *NotesService) GetSnippetNote(pid any, snippet, note int, options ...RequestOptionFunc) (*Note, *Response, error)

GetSnippetNote returns a single note for a given snippet.

GitLab API docs: https://docs.gitlab.com/api/notes/#get-single-snippet-note

func (*NotesService) ListEpicNotes added in v0.116.0

func (s *NotesService) ListEpicNotes(gid any, epic int, opt *ListEpicNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)

ListEpicNotes gets a list of all notes for a single epic. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/notes/#list-all-epic-notes

func (*NotesService) ListIssueNotes

func (s *NotesService) ListIssueNotes(pid any, issue int, opt *ListIssueNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)

ListIssueNotes gets a list of all notes for a single issue.

GitLab API docs: https://docs.gitlab.com/api/notes/#list-project-issue-notes

func (*NotesService) ListMergeRequestNotes

func (s *NotesService) ListMergeRequestNotes(pid any, mergeRequest int, opt *ListMergeRequestNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)

ListMergeRequestNotes gets a list of all notes for a single merge request.

GitLab API docs: https://docs.gitlab.com/api/notes/#list-all-merge-request-notes

func (*NotesService) ListSnippetNotes

func (s *NotesService) ListSnippetNotes(pid any, snippet int, opt *ListSnippetNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)

ListSnippetNotes gets a list of all notes for a single snippet. Snippet notes are comments users can post to a snippet.

GitLab API docs: https://docs.gitlab.com/api/notes/#list-all-snippet-notes

func (*NotesService) UpdateEpicNote added in v0.116.0

func (s *NotesService) UpdateEpicNote(gid any, epic, note int, opt *UpdateEpicNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

UpdateEpicNote modifies existing note of an epic. Will be removed in v5 of the API, use Work Items API instead

https://docs.gitlab.com/api/notes/#modify-existing-epic-note

func (*NotesService) UpdateIssueNote

func (s *NotesService) UpdateIssueNote(pid any, issue, note int, opt *UpdateIssueNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

UpdateIssueNote modifies existing note of an issue.

GitLab API docs: https://docs.gitlab.com/api/notes/#modify-existing-issue-note

func (*NotesService) UpdateMergeRequestNote

func (s *NotesService) UpdateMergeRequestNote(pid any, mergeRequest, note int, opt *UpdateMergeRequestNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

UpdateMergeRequestNote modifies existing note of a merge request.

GitLab API docs: https://docs.gitlab.com/api/notes/#modify-existing-merge-request-note

func (*NotesService) UpdateSnippetNote

func (s *NotesService) UpdateSnippetNote(pid any, snippet, note int, opt *UpdateSnippetNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

UpdateSnippetNote modifies existing note of a snippet.

GitLab API docs: https://docs.gitlab.com/api/notes/#modify-existing-snippet-note

type NotesServiceInterface added in v0.126.0

type NotesServiceInterface interface {
	ListIssueNotes(pid any, issue int, opt *ListIssueNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)
	GetIssueNote(pid any, issue, note int, options ...RequestOptionFunc) (*Note, *Response, error)
	CreateIssueNote(pid any, issue int, opt *CreateIssueNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateIssueNote(pid any, issue, note int, opt *UpdateIssueNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteIssueNote(pid any, issue, note int, options ...RequestOptionFunc) (*Response, error)
	ListSnippetNotes(pid any, snippet int, opt *ListSnippetNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)
	GetSnippetNote(pid any, snippet, note int, options ...RequestOptionFunc) (*Note, *Response, error)
	CreateSnippetNote(pid any, snippet int, opt *CreateSnippetNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateSnippetNote(pid any, snippet, note int, opt *UpdateSnippetNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteSnippetNote(pid any, snippet, note int, options ...RequestOptionFunc) (*Response, error)
	ListMergeRequestNotes(pid any, mergeRequest int, opt *ListMergeRequestNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)
	GetMergeRequestNote(pid any, mergeRequest, note int, options ...RequestOptionFunc) (*Note, *Response, error)
	CreateMergeRequestNote(pid any, mergeRequest int, opt *CreateMergeRequestNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateMergeRequestNote(pid any, mergeRequest, note int, opt *UpdateMergeRequestNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteMergeRequestNote(pid any, mergeRequest, note int, options ...RequestOptionFunc) (*Response, error)
	ListEpicNotes(gid any, epic int, opt *ListEpicNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)
	GetEpicNote(gid any, epic, note int, options ...RequestOptionFunc) (*Note, *Response, error)
	CreateEpicNote(gid any, epic int, opt *CreateEpicNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateEpicNote(gid any, epic, note int, opt *UpdateEpicNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteEpicNote(gid any, epic, note int, options ...RequestOptionFunc) (*Response, error)
}

type NotificationEvents added in v0.4.0

type NotificationEvents struct {
	CloseIssue                bool `json:"close_issue"`
	CloseMergeRequest         bool `json:"close_merge_request"`
	FailedPipeline            bool `json:"failed_pipeline"`
	FixedPipeline             bool `json:"fixed_pipeline"`
	IssueDue                  bool `json:"issue_due"`
	MergeWhenPipelineSucceeds bool `json:"merge_when_pipeline_succeeds"`
	MergeMergeRequest         bool `json:"merge_merge_request"`
	MovedProject              bool `json:"moved_project"`
	NewIssue                  bool `json:"new_issue"`
	NewMergeRequest           bool `json:"new_merge_request"`
	NewEpic                   bool `json:"new_epic"`
	NewNote                   bool `json:"new_note"`
	PushToMergeRequest        bool `json:"push_to_merge_request"`
	ReassignIssue             bool `json:"reassign_issue"`
	ReassignMergeRequest      bool `json:"reassign_merge_request"`
	ReopenIssue               bool `json:"reopen_issue"`
	ReopenMergeRequest        bool `json:"reopen_merge_request"`
	SuccessPipeline           bool `json:"success_pipeline"`
}

NotificationEvents represents the available notification setting events.

GitLab API docs: https://docs.gitlab.com/api/notification_settings/#valid-notification-levels

type NotificationLevelValue added in v0.2.0

type NotificationLevelValue int

NotificationLevelValue represents a notification level.

const (
	DisabledNotificationLevel NotificationLevelValue = iota
	ParticipatingNotificationLevel
	WatchNotificationLevel
	GlobalNotificationLevel
	MentionNotificationLevel
	CustomNotificationLevel
)

List of valid notification levels.

func (NotificationLevelValue) MarshalJSON added in v0.4.0

func (l NotificationLevelValue) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (NotificationLevelValue) String added in v0.4.0

func (l NotificationLevelValue) String() string

String implements the fmt.Stringer interface.

func (*NotificationLevelValue) UnmarshalJSON added in v0.4.0

func (l *NotificationLevelValue) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type NotificationSettings added in v0.4.0

type NotificationSettings struct {
	Level             NotificationLevelValue `json:"level"`
	NotificationEmail string                 `json:"notification_email"`
	Events            *NotificationEvents    `json:"events"`
}

NotificationSettings represents the Gitlab notification setting.

GitLab API docs: https://docs.gitlab.com/api/notification_settings/#valid-notification-levels

func (NotificationSettings) String added in v0.4.0

func (ns NotificationSettings) String() string

type NotificationSettingsOptions added in v0.4.0

type NotificationSettingsOptions struct {
	Level                     *NotificationLevelValue `url:"level,omitempty" json:"level,omitempty"`
	NotificationEmail         *string                 `url:"notification_email,omitempty" json:"notification_email,omitempty"`
	CloseIssue                *bool                   `url:"close_issue,omitempty" json:"close_issue,omitempty"`
	CloseMergeRequest         *bool                   `url:"close_merge_request,omitempty" json:"close_merge_request,omitempty"`
	FailedPipeline            *bool                   `url:"failed_pipeline,omitempty" json:"failed_pipeline,omitempty"`
	FixedPipeline             *bool                   `url:"fixed_pipeline,omitempty" json:"fixed_pipeline,omitempty"`
	IssueDue                  *bool                   `url:"issue_due,omitempty" json:"issue_due,omitempty"`
	MergeMergeRequest         *bool                   `url:"merge_merge_request,omitempty" json:"merge_merge_request,omitempty"`
	MergeWhenPipelineSucceeds *bool                   `url:"merge_when_pipeline_succeeds,omitempty" json:"merge_when_pipeline_succeeds,omitempty"`
	MovedProject              *bool                   `url:"moved_project,omitempty" json:"moved_project,omitempty"`
	NewEpic                   *bool                   `url:"new_epic,omitempty" json:"new_epic,omitempty"`
	NewIssue                  *bool                   `url:"new_issue,omitempty" json:"new_issue,omitempty"`
	NewMergeRequest           *bool                   `url:"new_merge_request,omitempty" json:"new_merge_request,omitempty"`
	NewNote                   *bool                   `url:"new_note,omitempty" json:"new_note,omitempty"`
	PushToMergeRequest        *bool                   `url:"push_to_merge_request,omitempty" json:"push_to_merge_request,omitempty"`
	ReassignIssue             *bool                   `url:"reassign_issue,omitempty" json:"reassign_issue,omitempty"`
	ReassignMergeRequest      *bool                   `url:"reassign_merge_request,omitempty" json:"reassign_merge_request,omitempty"`
	ReopenIssue               *bool                   `url:"reopen_issue,omitempty" json:"reopen_issue,omitempty"`
	ReopenMergeRequest        *bool                   `url:"reopen_merge_request,omitempty" json:"reopen_merge_request,omitempty"`
	SuccessPipeline           *bool                   `url:"success_pipeline,omitempty" json:"success_pipeline,omitempty"`
}

NotificationSettingsOptions represents the available options that can be passed to the API when updating the notification settings.

type NotificationSettingsService added in v0.4.0

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

NotificationSettingsService handles communication with the notification settings related methods of the GitLab API.

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

func (*NotificationSettingsService) GetGlobalSettings added in v0.4.0

func (s *NotificationSettingsService) GetGlobalSettings(options ...RequestOptionFunc) (*NotificationSettings, *Response, error)

GetGlobalSettings returns current notification settings and email address.

GitLab API docs: https://docs.gitlab.com/api/notification_settings/#global-notification-settings

func (*NotificationSettingsService) GetSettingsForGroup added in v0.4.0

func (s *NotificationSettingsService) GetSettingsForGroup(gid any, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)

GetSettingsForGroup returns current group notification settings.

GitLab API docs: https://docs.gitlab.com/api/notification_settings/#group--project-level-notification-settings

func (*NotificationSettingsService) GetSettingsForProject added in v0.4.0

func (s *NotificationSettingsService) GetSettingsForProject(pid any, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)

GetSettingsForProject returns current project notification settings.

GitLab API docs: https://docs.gitlab.com/api/notification_settings/#group--project-level-notification-settings

func (*NotificationSettingsService) UpdateGlobalSettings added in v0.4.0

UpdateGlobalSettings updates current notification settings and email address.

GitLab API docs: https://docs.gitlab.com/api/notification_settings/#update-global-notification-settings

func (*NotificationSettingsService) UpdateSettingsForGroup added in v0.4.0

UpdateSettingsForGroup updates current group notification settings.

GitLab API docs: https://docs.gitlab.com/api/notification_settings/#update-groupproject-level-notification-settings

func (*NotificationSettingsService) UpdateSettingsForProject added in v0.4.0

func (s *NotificationSettingsService) UpdateSettingsForProject(pid any, opt *NotificationSettingsOptions, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)

UpdateSettingsForProject updates current project notification settings.

GitLab API docs: https://docs.gitlab.com/api/notification_settings/#update-groupproject-level-notification-settings

type NotificationSettingsServiceInterface added in v0.126.0

type NotificationSettingsServiceInterface interface {
	GetGlobalSettings(options ...RequestOptionFunc) (*NotificationSettings, *Response, error)
	UpdateGlobalSettings(opt *NotificationSettingsOptions, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)
	GetSettingsForGroup(gid any, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)
	GetSettingsForProject(pid any, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)
	UpdateSettingsForGroup(gid any, opt *NotificationSettingsOptions, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)
	UpdateSettingsForProject(pid any, opt *NotificationSettingsOptions, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)
}

type Package added in v0.116.0

type Package struct {
	ID               int           `json:"id"`
	Name             string        `json:"name"`
	Version          string        `json:"version"`
	PackageType      string        `json:"package_type"`
	Status           string        `json:"status"`
	Links            *PackageLinks `json:"_links"`
	CreatedAt        *time.Time    `json:"created_at"`
	LastDownloadedAt *time.Time    `json:"last_downloaded_at"`
	Tags             []PackageTag  `json:"tags"`
}

Package represents a GitLab package.

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

func (Package) String added in v0.116.0

func (s Package) String() string

type PackageFile added in v0.116.0

type PackageFile struct {
	ID         int         `json:"id"`
	PackageID  int         `json:"package_id"`
	CreatedAt  *time.Time  `json:"created_at"`
	FileName   string      `json:"file_name"`
	Size       int         `json:"size"`
	FileMD5    string      `json:"file_md5"`
	FileSHA1   string      `json:"file_sha1"`
	FileSHA256 string      `json:"file_sha256"`
	Pipeline   *[]Pipeline `json:"pipelines"`
}

PackageFile represents one file contained within a package.

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

func (PackageFile) String added in v0.116.0

func (s PackageFile) String() string
type PackageLinks struct {
	WebPath       string `json:"web_path"`
	DeleteAPIPath string `json:"delete_api_path"`
}

PackageLinks holds links for itself and deleting.

func (PackageLinks) String added in v0.116.0

func (s PackageLinks) String() string

type PackageTag added in v0.116.0

type PackageTag struct {
	ID        int        `json:"id"`
	PackageID int        `json:"package_id"`
	Name      string     `json:"name"`
	CreatedAt *time.Time `json:"created_at"`
	UpdatedAt *time.Time `json:"updated_at"`
}

PackageTag holds label information about the package

func (PackageTag) String added in v0.116.0

func (s PackageTag) String() string

type PackagesService added in v0.116.0

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

PackagesService handles communication with the packages related methods of the GitLab API.

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

func (*PackagesService) DeletePackageFile added in v0.116.0

func (s *PackagesService) DeletePackageFile(pid any, pkg, file int, options ...RequestOptionFunc) (*Response, error)

DeletePackageFile deletes a file in project package

GitLab API docs: https://docs.gitlab.com/api/packages/#delete-a-package-file

func (*PackagesService) DeleteProjectPackage added in v0.116.0

func (s *PackagesService) DeleteProjectPackage(pid any, pkg int, options ...RequestOptionFunc) (*Response, error)

DeleteProjectPackage deletes a package in a project.

GitLab API docs: https://docs.gitlab.com/api/packages/#delete-a-project-package

func (*PackagesService) ListGroupPackages added in v0.116.0

func (s *PackagesService) ListGroupPackages(gid any, opt *ListGroupPackagesOptions, options ...RequestOptionFunc) ([]*GroupPackage, *Response, error)

ListGroupPackages gets a list of packages in a group.

GitLab API docs: https://docs.gitlab.com/api/packages/#for-a-group

func (*PackagesService) ListPackageFiles added in v0.116.0

func (s *PackagesService) ListPackageFiles(pid any, pkg int, opt *ListPackageFilesOptions, options ...RequestOptionFunc) ([]*PackageFile, *Response, error)

ListPackageFiles gets a list of files that are within a package

GitLab API docs: https://docs.gitlab.com/api/packages/#list-package-files

func (*PackagesService) ListProjectPackages added in v0.116.0

func (s *PackagesService) ListProjectPackages(pid any, opt *ListProjectPackagesOptions, options ...RequestOptionFunc) ([]*Package, *Response, error)

ListProjectPackages gets a list of packages in a project.

GitLab API docs: https://docs.gitlab.com/api/packages/#for-a-project

type PackagesServiceInterface added in v0.126.0

type PackagesServiceInterface interface {
	ListProjectPackages(pid any, opt *ListProjectPackagesOptions, options ...RequestOptionFunc) ([]*Package, *Response, error)
	ListGroupPackages(gid any, opt *ListGroupPackagesOptions, options ...RequestOptionFunc) ([]*GroupPackage, *Response, error)
	ListPackageFiles(pid any, pkg int, opt *ListPackageFilesOptions, options ...RequestOptionFunc) ([]*PackageFile, *Response, error)
	DeleteProjectPackage(pid any, pkg int, options ...RequestOptionFunc) (*Response, error)
	DeletePackageFile(pid any, pkg, file int, options ...RequestOptionFunc) (*Response, error)
}

type Pages added in v0.116.0

type Pages struct {
	URL                   string             `json:"url"`
	IsUniqueDomainEnabled bool               `json:"is_unique_domain_enabled"`
	ForceHTTPS            bool               `json:"force_https"`
	Deployments           []*PagesDeployment `json:"deployments"`
}

Pages represents the Pages of a project.

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

type PagesDeployment added in v0.116.0

type PagesDeployment struct {
	CreatedAt     time.Time `json:"created_at"`
	URL           string    `json:"url"`
	PathPrefix    string    `json:"path_prefix"`
	RootDirectory string    `json:"root_directory"`
}

PagesDeployment represents a Pages deployment.

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

type PagesDomain added in v0.8.0

type PagesDomain struct {
	Domain           string     `json:"domain"`
	AutoSslEnabled   bool       `json:"auto_ssl_enabled"`
	URL              string     `json:"url"`
	ProjectID        int        `json:"project_id"`
	Verified         bool       `json:"verified"`
	VerificationCode string     `json:"verification_code"`
	EnabledUntil     *time.Time `json:"enabled_until"`
	Certificate      struct {
		Subject         string     `json:"subject"`
		Expired         bool       `json:"expired"`
		Expiration      *time.Time `json:"expiration"`
		Certificate     string     `json:"certificate"`
		CertificateText string     `json:"certificate_text"`
	} `json:"certificate"`
}

PagesDomain represents a pages domain.

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

type PagesDomainsService added in v0.8.0

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

PagesDomainsService handles communication with the pages domains related methods of the GitLab API.

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

func (*PagesDomainsService) CreatePagesDomain added in v0.8.0

func (s *PagesDomainsService) CreatePagesDomain(pid any, opt *CreatePagesDomainOptions, options ...RequestOptionFunc) (*PagesDomain, *Response, error)

CreatePagesDomain creates a new project pages domain.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#create-new-pages-domain

func (*PagesDomainsService) DeletePagesDomain added in v0.8.0

func (s *PagesDomainsService) DeletePagesDomain(pid any, domain string, options ...RequestOptionFunc) (*Response, error)

DeletePagesDomain deletes an existing prject pages domain.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#delete-pages-domain

func (*PagesDomainsService) GetPagesDomain added in v0.8.0

func (s *PagesDomainsService) GetPagesDomain(pid any, domain string, options ...RequestOptionFunc) (*PagesDomain, *Response, error)

GetPagesDomain get a specific pages domain for a project.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#single-pages-domain

func (*PagesDomainsService) ListAllPagesDomains added in v0.11.2

func (s *PagesDomainsService) ListAllPagesDomains(options ...RequestOptionFunc) ([]*PagesDomain, *Response, error)

ListAllPagesDomains gets a list of all pages domains.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#list-all-pages-domains

func (*PagesDomainsService) ListPagesDomains added in v0.8.0

func (s *PagesDomainsService) ListPagesDomains(pid any, opt *ListPagesDomainsOptions, options ...RequestOptionFunc) ([]*PagesDomain, *Response, error)

ListPagesDomains gets a list of project pages domains.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#list-pages-domains

func (*PagesDomainsService) UpdatePagesDomain added in v0.8.0

func (s *PagesDomainsService) UpdatePagesDomain(pid any, domain string, opt *UpdatePagesDomainOptions, options ...RequestOptionFunc) (*PagesDomain, *Response, error)

UpdatePagesDomain updates an existing project pages domain.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#update-pages-domain

type PagesDomainsServiceInterface added in v0.126.0

type PagesDomainsServiceInterface interface {
	ListPagesDomains(pid any, opt *ListPagesDomainsOptions, options ...RequestOptionFunc) ([]*PagesDomain, *Response, error)
	ListAllPagesDomains(options ...RequestOptionFunc) ([]*PagesDomain, *Response, error)
	GetPagesDomain(pid any, domain string, options ...RequestOptionFunc) (*PagesDomain, *Response, error)
	CreatePagesDomain(pid any, opt *CreatePagesDomainOptions, options ...RequestOptionFunc) (*PagesDomain, *Response, error)
	UpdatePagesDomain(pid any, domain string, opt *UpdatePagesDomainOptions, options ...RequestOptionFunc) (*PagesDomain, *Response, error)
	DeletePagesDomain(pid any, domain string, options ...RequestOptionFunc) (*Response, error)
}

type PagesService added in v0.116.0

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

PagesService handles communication with the pages related methods of the GitLab API.

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

func (*PagesService) GetPages added in v0.116.0

func (s *PagesService) GetPages(gid any, options ...RequestOptionFunc) (*Pages, *Response, error)

GetPages lists Pages settings for a project. The user must have at least maintainer privileges.

GitLab API Docs: https://docs.gitlab.com/api/pages/#get-pages-settings-for-a-project

func (*PagesService) UnpublishPages added in v0.116.0

func (s *PagesService) UnpublishPages(gid any, options ...RequestOptionFunc) (*Response, error)

UnpublishPages unpublished pages. The user must have admin privileges.

GitLab API docs: https://docs.gitlab.com/api/pages/#unpublish-pages

func (*PagesService) UpdatePages added in v0.116.0

func (s *PagesService) UpdatePages(pid any, opt UpdatePagesOptions, options ...RequestOptionFunc) (*Pages, *Response, error)

UpdatePages updates Pages settings for a project. The user must have administrator privileges.

GitLab API Docs: https://docs.gitlab.com/api/pages/#update-pages-settings-for-a-project

type PagesServiceInterface added in v0.126.0

type PagesServiceInterface interface {
	UnpublishPages(gid any, options ...RequestOptionFunc) (*Response, error)
	GetPages(gid any, options ...RequestOptionFunc) (*Pages, *Response, error)
	UpdatePages(pid any, opt UpdatePagesOptions, options ...RequestOptionFunc) (*Pages, *Response, error)
}

type PaginationOptionFunc added in v0.128.0

type PaginationOptionFunc = RequestOptionFunc

type PatchProjectJobTokenAccessSettingsOptions added in v0.116.0

type PatchProjectJobTokenAccessSettingsOptions struct {
	Enabled bool `json:"enabled"`
}

PatchProjectJobTokenAccessSettingsOptions represents the available PatchProjectJobTokenAccessSettings() options.

GitLab API docs: https://docs.gitlab.com/api/project_job_token_scopes/#patch-a-projects-cicd-job-token-access-settings

type PendingInvite added in v0.116.0

type PendingInvite struct {
	ID            int              `json:"id"`
	InviteEmail   string           `json:"invite_email"`
	CreatedAt     *time.Time       `json:"created_at"`
	AccessLevel   AccessLevelValue `json:"access_level"`
	ExpiresAt     *time.Time       `json:"expires_at"`
	UserName      string           `json:"user_name"`
	CreatedByName string           `json:"created_by_name"`
}

PendingInvite represents a pending invite.

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

type Permissions

type Permissions struct {
	ProjectAccess *ProjectAccess `json:"project_access"`
	GroupAccess   *GroupAccess   `json:"group_access"`
}

Permissions represents permissions.

type PersonalAccessToken added in v0.116.0

type PersonalAccessToken struct {
	ID          int        `json:"id"`
	Name        string     `json:"name"`
	Revoked     bool       `json:"revoked"`
	CreatedAt   *time.Time `json:"created_at"`
	Description string     `json:"description"`
	Scopes      []string   `json:"scopes"`
	UserID      int        `json:"user_id"`
	LastUsedAt  *time.Time `json:"last_used_at,omitempty"`
	Active      bool       `json:"active"`
	ExpiresAt   *ISOTime   `json:"expires_at"`
	Token       string     `json:"token,omitempty"`
}

PersonalAccessToken represents a personal access token.

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

func (PersonalAccessToken) String added in v0.116.0

func (p PersonalAccessToken) String() string

type PersonalAccessTokensService added in v0.116.0

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

PersonalAccessTokensService handles communication with the personal access tokens related methods of the GitLab API.

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

func (*PersonalAccessTokensService) GetSinglePersonalAccessToken added in v0.116.0

func (s *PersonalAccessTokensService) GetSinglePersonalAccessToken(options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

GetSinglePersonalAccessToken get a single personal access token by using passing the token in a header.

GitLab API docs: https://docs.gitlab.com/api/personal_access_tokens/#self-inform

func (*PersonalAccessTokensService) GetSinglePersonalAccessTokenByID added in v0.116.0

func (s *PersonalAccessTokensService) GetSinglePersonalAccessTokenByID(token int, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

GetSinglePersonalAccessTokenByID get a single personal access token by its ID.

GitLab API docs: https://docs.gitlab.com/api/personal_access_tokens/#get-details-on-a-personal-access-token

func (*PersonalAccessTokensService) ListPersonalAccessTokens added in v0.116.0

ListPersonalAccessTokens gets a list of all personal access tokens.

GitLab API docs: https://docs.gitlab.com/api/personal_access_tokens/#list-all-personal-access-tokens

func (*PersonalAccessTokensService) RevokePersonalAccessToken added in v0.116.0

func (s *PersonalAccessTokensService) RevokePersonalAccessToken(token int, options ...RequestOptionFunc) (*Response, error)

RevokePersonalAccessToken is a backwards-compat shim for RevokePersonalAccessTokenByID.

func (*PersonalAccessTokensService) RevokePersonalAccessTokenByID added in v0.116.0

func (s *PersonalAccessTokensService) RevokePersonalAccessTokenByID(token int, options ...RequestOptionFunc) (*Response, error)

RevokePersonalAccessTokenByID revokes a personal access token by its ID.

GitLab API docs: https://docs.gitlab.com/api/personal_access_tokens/#revoke-a-personal-access-token

func (*PersonalAccessTokensService) RevokePersonalAccessTokenSelf added in v0.116.0

func (s *PersonalAccessTokensService) RevokePersonalAccessTokenSelf(options ...RequestOptionFunc) (*Response, error)

RevokePersonalAccessTokenSelf revokes the currently authenticated personal access token.

GitLab API docs: https://docs.gitlab.com/api/personal_access_tokens/#self-revoke

func (*PersonalAccessTokensService) RotatePersonalAccessToken added in v0.116.0

func (s *PersonalAccessTokensService) RotatePersonalAccessToken(token int, opt *RotatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

RotatePersonalAccessToken is a backwards-compat shim for RotatePersonalAccessTokenByID.

func (*PersonalAccessTokensService) RotatePersonalAccessTokenByID added in v0.116.0

func (s *PersonalAccessTokensService) RotatePersonalAccessTokenByID(token int, opt *RotatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

RotatePersonalAccessTokenByID revokes a token and returns a new token that expires in one week per default.

GitLab API docs: https://docs.gitlab.com/api/personal_access_tokens/#rotate-a-personal-access-token

func (*PersonalAccessTokensService) RotatePersonalAccessTokenSelf added in v0.116.0

RotatePersonalAccessTokenSelf revokes the currently authenticated token and returns a new token that expires in one week per default.

GitLab API docs: https://docs.gitlab.com/api/personal_access_tokens/#self-rotate

type PersonalAccessTokensServiceInterface added in v0.126.0

type PersonalAccessTokensServiceInterface interface {
	ListPersonalAccessTokens(opt *ListPersonalAccessTokensOptions, options ...RequestOptionFunc) ([]*PersonalAccessToken, *Response, error)
	GetSinglePersonalAccessTokenByID(token int, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	GetSinglePersonalAccessToken(options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RotatePersonalAccessToken(token int, opt *RotatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RotatePersonalAccessTokenByID(token int, opt *RotatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RotatePersonalAccessTokenSelf(opt *RotatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RevokePersonalAccessToken(token int, options ...RequestOptionFunc) (*Response, error)
	RevokePersonalAccessTokenByID(token int, options ...RequestOptionFunc) (*Response, error)
	RevokePersonalAccessTokenSelf(options ...RequestOptionFunc) (*Response, error)
}

type Pipeline added in v0.4.0

type Pipeline struct {
	ID             int             `json:"id"`
	IID            int             `json:"iid"`
	ProjectID      int             `json:"project_id"`
	Status         string          `json:"status"`
	Source         PipelineSource  `json:"source"`
	Ref            string          `json:"ref"`
	Name           string          `json:"name"`
	SHA            string          `json:"sha"`
	BeforeSHA      string          `json:"before_sha"`
	Tag            bool            `json:"tag"`
	YamlErrors     string          `json:"yaml_errors"`
	User           *BasicUser      `json:"user"`
	UpdatedAt      *time.Time      `json:"updated_at"`
	CreatedAt      *time.Time      `json:"created_at"`
	StartedAt      *time.Time      `json:"started_at"`
	FinishedAt     *time.Time      `json:"finished_at"`
	CommittedAt    *time.Time      `json:"committed_at"`
	Duration       int             `json:"duration"`
	QueuedDuration int             `json:"queued_duration"`
	Coverage       string          `json:"coverage"`
	WebURL         string          `json:"web_url"`
	DetailedStatus *DetailedStatus `json:"detailed_status"`
}

Pipeline represents a GitLab pipeline.

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

func (Pipeline) String added in v0.4.0

func (p Pipeline) String() string

type PipelineEvent added in v0.3.1

type PipelineEvent struct {
	ObjectKind       string `json:"object_kind"`
	ObjectAttributes struct {
		ID             int      `json:"id"`
		IID            int      `json:"iid"`
		Name           string   `json:"name"`
		Ref            string   `json:"ref"`
		Tag            bool     `json:"tag"`
		SHA            string   `json:"sha"`
		BeforeSHA      string   `json:"before_sha"`
		Source         string   `json:"source"`
		Status         string   `json:"status"`
		DetailedStatus string   `json:"detailed_status"`
		Stages         []string `json:"stages"`
		CreatedAt      string   `json:"created_at"`
		FinishedAt     string   `json:"finished_at"`
		Duration       int      `json:"duration"`
		QueuedDuration int      `json:"queued_duration"`
		URL            string   `json:"url"`
		Variables      []struct {
			Key   string `json:"key"`
			Value string `json:"value"`
		} `json:"variables"`
	} `json:"object_attributes"`
	MergeRequest struct {
		ID                  int    `json:"id"`
		IID                 int    `json:"iid"`
		Title               string `json:"title"`
		SourceBranch        string `json:"source_branch"`
		SourceProjectID     int    `json:"source_project_id"`
		TargetBranch        string `json:"target_branch"`
		TargetProjectID     int    `json:"target_project_id"`
		State               string `json:"state"`
		MergeRequestStatus  string `json:"merge_status"`
		DetailedMergeStatus string `json:"detailed_merge_status"`
		URL                 string `json:"url"`
	} `json:"merge_request"`
	User    *EventUser `json:"user"`
	Project struct {
		ID                int             `json:"id"`
		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"`
	Commit struct {
		ID        string     `json:"id"`
		Message   string     `json:"message"`
		Title     string     `json:"title"`
		Timestamp *time.Time `json:"timestamp"`
		URL       string     `json:"url"`
		Author    struct {
			Name  string `json:"name"`
			Email string `json:"email"`
		} `json:"author"`
	} `json:"commit"`
	SourcePipeline struct {
		Project struct {
			ID                int    `json:"id"`
			WebURL            string `json:"web_url"`
			PathWithNamespace string `json:"path_with_namespace"`
		} `json:"project"`
		PipelineID int `json:"pipeline_id"`
		JobID      int `json:"job_id"`
	} `json:"source_pipeline"`
	Builds []struct {
		ID             int        `json:"id"`
		Stage          string     `json:"stage"`
		Name           string     `json:"name"`
		Status         string     `json:"status"`
		CreatedAt      string     `json:"created_at"`
		StartedAt      string     `json:"started_at"`
		FinishedAt     string     `json:"finished_at"`
		Duration       float64    `json:"duration"`
		QueuedDuration float64    `json:"queued_duration"`
		FailureReason  string     `json:"failure_reason"`
		When           string     `json:"when"`
		Manual         bool       `json:"manual"`
		AllowFailure   bool       `json:"allow_failure"`
		User           *EventUser `json:"user"`
		Runner         struct {
			ID          int      `json:"id"`
			Description string   `json:"description"`
			Active      bool     `json:"active"`
			IsShared    bool     `json:"is_shared"`
			RunnerType  string   `json:"runner_type"`
			Tags        []string `json:"tags"`
		} `json:"runner"`
		ArtifactsFile struct {
			Filename string `json:"filename"`
			Size     int    `json:"size"`
		} `json:"artifacts_file"`
		Environment struct {
			Name           string `json:"name"`
			Action         string `json:"action"`
			DeploymentTier string `json:"deployment_tier"`
		} `json:"environment"`
	} `json:"builds"`
}

PipelineEvent represents a pipeline event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#pipeline-events

type PipelineInfo added in v0.116.0

type PipelineInfo struct {
	ID        int        `json:"id"`
	IID       int        `json:"iid"`
	ProjectID int        `json:"project_id"`
	Status    string     `json:"status"`
	Source    string     `json:"source"`
	Ref       string     `json:"ref"`
	SHA       string     `json:"sha"`
	Name      string     `json:"name"`
	WebURL    string     `json:"web_url"`
	UpdatedAt *time.Time `json:"updated_at"`
	CreatedAt *time.Time `json:"created_at"`
}

PipelineInfo shows the basic entities of a pipeline, mostly used as fields on other assets, like Commit.

func (PipelineInfo) String added in v0.116.0

func (p PipelineInfo) String() string

type PipelineInput added in v0.129.0

type PipelineInput struct {
	Name  string `json:"key"`
	Value any    `json:"value"`
}

PipelineInput represents a pipeline input.

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

type PipelineSchedule added in v0.9.0

type PipelineSchedule struct {
	ID           int                 `json:"id"`
	Description  string              `json:"description"`
	Ref          string              `json:"ref"`
	Cron         string              `json:"cron"`
	CronTimezone string              `json:"cron_timezone"`
	NextRunAt    *time.Time          `json:"next_run_at"`
	Active       bool                `json:"active"`
	CreatedAt    *time.Time          `json:"created_at"`
	UpdatedAt    *time.Time          `json:"updated_at"`
	Owner        *User               `json:"owner"`
	LastPipeline *LastPipeline       `json:"last_pipeline"`
	Variables    []*PipelineVariable `json:"variables"`
	Inputs       []*PipelineInput    `json:"inputs"`
}

PipelineSchedule represents a pipeline schedule.

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

type PipelineScheduleScopeValue added in v0.129.0

type PipelineScheduleScopeValue string

PipelineScheduleScopeValue represents a pipeline schedule scope within GitLab.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#get-all-pipeline-schedules

const (
	PipelineScheduleActive   PipelineScheduleScopeValue = "active"
	PipelineScheduleInactive PipelineScheduleScopeValue = "inactive"
)

List of available pipeline schedule scope values.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#get-all-pipeline-schedules

type PipelineSchedulesService added in v0.9.0

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

PipelineSchedulesService handles communication with the pipeline schedules related methods of the GitLab API.

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

func (*PipelineSchedulesService) CreatePipelineSchedule added in v0.9.0

func (s *PipelineSchedulesService) CreatePipelineSchedule(pid any, opt *CreatePipelineScheduleOptions, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)

CreatePipelineSchedule creates a pipeline schedule.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#create-a-new-pipeline-schedule

func (*PipelineSchedulesService) CreatePipelineScheduleVariable added in v0.9.0

func (s *PipelineSchedulesService) CreatePipelineScheduleVariable(pid any, schedule int, opt *CreatePipelineScheduleVariableOptions, options ...RequestOptionFunc) (*PipelineVariable, *Response, error)

CreatePipelineScheduleVariable creates a pipeline schedule variable.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#create-a-new-pipeline-schedule

func (*PipelineSchedulesService) DeletePipelineSchedule added in v0.9.0

func (s *PipelineSchedulesService) DeletePipelineSchedule(pid any, schedule int, options ...RequestOptionFunc) (*Response, error)

DeletePipelineSchedule deletes a pipeline schedule.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#delete-a-pipeline-schedule

func (*PipelineSchedulesService) DeletePipelineScheduleVariable added in v0.9.0

func (s *PipelineSchedulesService) DeletePipelineScheduleVariable(pid any, schedule int, key string, options ...RequestOptionFunc) (*PipelineVariable, *Response, error)

DeletePipelineScheduleVariable creates a pipeline schedule variable.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#delete-a-pipeline-schedule-variable

func (*PipelineSchedulesService) EditPipelineSchedule added in v0.9.0

func (s *PipelineSchedulesService) EditPipelineSchedule(pid any, schedule int, opt *EditPipelineScheduleOptions, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)

EditPipelineSchedule edits a pipeline schedule.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#edit-a-pipeline-schedule

func (*PipelineSchedulesService) EditPipelineScheduleVariable added in v0.9.0

func (s *PipelineSchedulesService) EditPipelineScheduleVariable(pid any, schedule int, key string, opt *EditPipelineScheduleVariableOptions, options ...RequestOptionFunc) (*PipelineVariable, *Response, error)

EditPipelineScheduleVariable creates a pipeline schedule variable.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#edit-a-pipeline-schedule-variable

func (*PipelineSchedulesService) GetPipelineSchedule added in v0.9.0

func (s *PipelineSchedulesService) GetPipelineSchedule(pid any, schedule int, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)

GetPipelineSchedule gets a pipeline schedule.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#get-a-single-pipeline-schedule

func (*PipelineSchedulesService) ListPipelineSchedules added in v0.9.0

func (s *PipelineSchedulesService) ListPipelineSchedules(pid any, opt *ListPipelineSchedulesOptions, options ...RequestOptionFunc) ([]*PipelineSchedule, *Response, error)

ListPipelineSchedules gets a list of project triggers.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#get-all-pipeline-schedules

func (*PipelineSchedulesService) ListPipelinesTriggeredBySchedule added in v0.116.0

func (s *PipelineSchedulesService) ListPipelinesTriggeredBySchedule(pid any, schedule int, opt *ListPipelinesTriggeredByScheduleOptions, options ...RequestOptionFunc) ([]*Pipeline, *Response, error)

ListPipelinesTriggeredBySchedule gets all pipelines triggered by a pipeline schedule.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#get-all-pipelines-triggered-by-a-pipeline-schedule

func (*PipelineSchedulesService) RunPipelineSchedule added in v0.116.0

func (s *PipelineSchedulesService) RunPipelineSchedule(pid any, schedule int, options ...RequestOptionFunc) (*Response, error)

RunPipelineSchedule triggers a new scheduled pipeline to run immediately.

Gitlab API docs: https://docs.gitlab.com/api/pipeline_schedules/#run-a-scheduled-pipeline-immediately

func (*PipelineSchedulesService) TakeOwnershipOfPipelineSchedule added in v0.9.0

func (s *PipelineSchedulesService) TakeOwnershipOfPipelineSchedule(pid any, schedule int, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)

TakeOwnershipOfPipelineSchedule sets the owner of the specified pipeline schedule to the user issuing the request.

GitLab API docs: https://docs.gitlab.com/api/pipeline_schedules/#take-ownership-of-a-pipeline-schedule

type PipelineSchedulesServiceInterface added in v0.126.0

type PipelineSchedulesServiceInterface interface {
	ListPipelineSchedules(pid any, opt *ListPipelineSchedulesOptions, options ...RequestOptionFunc) ([]*PipelineSchedule, *Response, error)
	GetPipelineSchedule(pid any, schedule int, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)
	ListPipelinesTriggeredBySchedule(pid any, schedule int, opt *ListPipelinesTriggeredByScheduleOptions, options ...RequestOptionFunc) ([]*Pipeline, *Response, error)
	CreatePipelineSchedule(pid any, opt *CreatePipelineScheduleOptions, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)
	EditPipelineSchedule(pid any, schedule int, opt *EditPipelineScheduleOptions, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)
	TakeOwnershipOfPipelineSchedule(pid any, schedule int, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)
	DeletePipelineSchedule(pid any, schedule int, options ...RequestOptionFunc) (*Response, error)
	RunPipelineSchedule(pid any, schedule int, options ...RequestOptionFunc) (*Response, error)
	CreatePipelineScheduleVariable(pid any, schedule int, opt *CreatePipelineScheduleVariableOptions, options ...RequestOptionFunc) (*PipelineVariable, *Response, error)
	EditPipelineScheduleVariable(pid any, schedule int, key string, opt *EditPipelineScheduleVariableOptions, options ...RequestOptionFunc) (*PipelineVariable, *Response, error)
	DeletePipelineScheduleVariable(pid any, schedule int, key string, options ...RequestOptionFunc) (*PipelineVariable, *Response, error)
}

type PipelineSource added in v0.128.0

type PipelineSource string
const (
	PipelineSourceAPI                         PipelineSource = "api"
	PipelineSourceChat                        PipelineSource = "chat"
	PipelineSourceExternal                    PipelineSource = "external"
	PipelineSourceExternalPullRequestEvent    PipelineSource = "external_pull_request_event"
	PipelineSourceMergeRequestEvent           PipelineSource = "merge_request_event"
	PipelineSourceOndemandDastScan            PipelineSource = "ondemand_dast_scan"
	PipelineSourceOndemandDastValidation      PipelineSource = "ondemand_dast_validation"
	PipelineSourceParentPipeline              PipelineSource = "parent_pipeline"
	PipelineSourcePipeline                    PipelineSource = "pipeline"
	PipelineSourcePush                        PipelineSource = "push"
	PipelineSourceSchedule                    PipelineSource = "schedule"
	PipelineSourceSecurityOrchestrationPolicy PipelineSource = "security_orchestration_policy"
	PipelineSourceTrigger                     PipelineSource = "trigger"
	PipelineSourceWeb                         PipelineSource = "web"
	PipelineSourceWebIDE                      PipelineSource = "webide"
)

PipelineSource is the source of a pipeline. GitLab API docs: https://docs.gitlab.com/ci/jobs/job_rules/#ci_pipeline_source-predefined-variable

type PipelineTestCases added in v0.116.0

type PipelineTestCases struct {
	Status         string          `json:"status"`
	Name           string          `json:"name"`
	Classname      string          `json:"classname"`
	File           string          `json:"file"`
	ExecutionTime  float64         `json:"execution_time"`
	SystemOutput   any             `json:"system_output"`
	StackTrace     string          `json:"stack_trace"`
	AttachmentURL  string          `json:"attachment_url"`
	RecentFailures *RecentFailures `json:"recent_failures"`
}

PipelineTestCases contains test cases details.

type PipelineTestReport added in v0.116.0

type PipelineTestReport struct {
	TotalTime    float64               `json:"total_time"`
	TotalCount   int                   `json:"total_count"`
	SuccessCount int                   `json:"success_count"`
	FailedCount  int                   `json:"failed_count"`
	SkippedCount int                   `json:"skipped_count"`
	ErrorCount   int                   `json:"error_count"`
	TestSuites   []*PipelineTestSuites `json:"test_suites"`
}

PipelineTestReport contains a detailed report of a test run.

func (PipelineTestReport) String added in v0.116.0

func (p PipelineTestReport) String() string

type PipelineTestSuites added in v0.116.0

type PipelineTestSuites struct {
	Name         string               `json:"name"`
	TotalTime    float64              `json:"total_time"`
	TotalCount   int                  `json:"total_count"`
	SuccessCount int                  `json:"success_count"`
	FailedCount  int                  `json:"failed_count"`
	SkippedCount int                  `json:"skipped_count"`
	ErrorCount   int                  `json:"error_count"`
	TestCases    []*PipelineTestCases `json:"test_cases"`
}

PipelineTestSuites contains test suites results.

type PipelineTrigger added in v0.6.0

type PipelineTrigger struct {
	ID          int        `json:"id"`
	Description string     `json:"description"`
	CreatedAt   *time.Time `json:"created_at"`
	DeletedAt   *time.Time `json:"deleted_at"`
	LastUsed    *time.Time `json:"last_used"`
	Token       string     `json:"token"`
	UpdatedAt   *time.Time `json:"updated_at"`
	Owner       *User      `json:"owner"`
}

PipelineTrigger represents a project pipeline trigger.

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

type PipelineTriggersService added in v0.6.0

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

PipelineTriggersService handles Project pipeline triggers.

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

func (*PipelineTriggersService) AddPipelineTrigger added in v0.6.0

func (s *PipelineTriggersService) AddPipelineTrigger(pid any, opt *AddPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error)

AddPipelineTrigger adds a pipeline trigger to a specified project.

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

func (*PipelineTriggersService) DeletePipelineTrigger added in v0.6.0

func (s *PipelineTriggersService) DeletePipelineTrigger(pid any, trigger int, options ...RequestOptionFunc) (*Response, error)

DeletePipelineTrigger removes a trigger from a project.

GitLab API docs: https://docs.gitlab.com/api/pipeline_triggers/#remove-a-pipeline-trigger-token

func (*PipelineTriggersService) EditPipelineTrigger added in v0.6.0

func (s *PipelineTriggersService) EditPipelineTrigger(pid any, trigger int, opt *EditPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error)

EditPipelineTrigger edits a trigger for a specified project.

GitLab API docs: https://docs.gitlab.com/api/pipeline_triggers/#update-a-pipeline-trigger-token

func (*PipelineTriggersService) GetPipelineTrigger added in v0.6.0

func (s *PipelineTriggersService) GetPipelineTrigger(pid any, trigger int, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error)

GetPipelineTrigger gets a specific pipeline trigger for a project.

GitLab API docs: https://docs.gitlab.com/api/pipeline_triggers/#get-trigger-token-details

func (*PipelineTriggersService) ListPipelineTriggers added in v0.6.0

func (s *PipelineTriggersService) ListPipelineTriggers(pid any, opt *ListPipelineTriggersOptions, options ...RequestOptionFunc) ([]*PipelineTrigger, *Response, error)

ListPipelineTriggers gets a list of project triggers.

GitLab API docs: https://docs.gitlab.com/api/pipeline_triggers/#list-project-trigger-tokens

func (*PipelineTriggersService) RunPipelineTrigger added in v0.7.0

func (s *PipelineTriggersService) RunPipelineTrigger(pid any, opt *RunPipelineTriggerOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)

RunPipelineTrigger starts a trigger from a project.

GitLab API docs: https://docs.gitlab.com/api/pipeline_triggers/#trigger-a-pipeline-with-a-token

type PipelineTriggersServiceInterface added in v0.126.0

type PipelineTriggersServiceInterface interface {
	ListPipelineTriggers(pid any, opt *ListPipelineTriggersOptions, options ...RequestOptionFunc) ([]*PipelineTrigger, *Response, error)
	GetPipelineTrigger(pid any, trigger int, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error)
	AddPipelineTrigger(pid any, opt *AddPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error)
	EditPipelineTrigger(pid any, trigger int, opt *EditPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error)
	DeletePipelineTrigger(pid any, trigger int, options ...RequestOptionFunc) (*Response, error)
	RunPipelineTrigger(pid any, opt *RunPipelineTriggerOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)
}

type PipelineVariable added in v0.9.0

type PipelineVariable struct {
	Key          string            `json:"key"`
	Value        string            `json:"value"`
	VariableType VariableTypeValue `json:"variable_type"`
}

PipelineVariable represents a pipeline variable.

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

type PipelineVariableOptions added in v0.116.0

type PipelineVariableOptions struct {
	Key          *string            `url:"key,omitempty" json:"key,omitempty"`
	Value        *string            `url:"value,omitempty" json:"value,omitempty"`
	VariableType *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

PipelineVariable represents a pipeline variable.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#create-a-new-pipeline

type PipelinesEmailProperties added in v0.116.0

type PipelinesEmailProperties struct {
	Recipients                string    `json:"recipients"`
	NotifyOnlyBrokenPipelines BoolValue `json:"notify_only_broken_pipelines"`
	NotifyOnlyDefaultBranch   BoolValue `json:"notify_only_default_branch"`
	BranchesToBeNotified      string    `json:"branches_to_be_notified"`
}

PipelinesEmailProperties represents PipelinesEmail specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#pipeline-status-emails

type PipelinesEmailService added in v0.116.0

type PipelinesEmailService struct {
	Service
	Properties *PipelinesEmailProperties `json:"properties"`
}

PipelinesEmailService represents Pipelines Email service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#pipeline-status-emails

type PipelinesService added in v0.4.0

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

PipelinesService handles communication with the repositories related methods of the GitLab API.

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

func (*PipelinesService) CancelPipelineBuild added in v0.4.0

func (s *PipelinesService) CancelPipelineBuild(pid any, pipeline int, options ...RequestOptionFunc) (*Pipeline, *Response, error)

CancelPipelineBuild cancels a pipeline builds.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#cancel-a-pipelines-jobs

func (*PipelinesService) CreatePipeline added in v0.4.0

func (s *PipelinesService) CreatePipeline(pid any, opt *CreatePipelineOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)

CreatePipeline creates a new project pipeline.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#create-a-new-pipeline

func (*PipelinesService) DeletePipeline added in v0.116.0

func (s *PipelinesService) DeletePipeline(pid any, pipeline int, options ...RequestOptionFunc) (*Response, error)

DeletePipeline deletes an existing pipeline.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#delete-a-pipeline

func (*PipelinesService) GetLatestPipeline added in v0.116.0

func (s *PipelinesService) GetLatestPipeline(pid any, opt *GetLatestPipelineOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)

GetLatestPipeline gets the latest pipeline for a specific ref in a project.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#get-the-latest-pipeline

func (*PipelinesService) GetPipeline added in v0.4.0

func (s *PipelinesService) GetPipeline(pid any, pipeline int, options ...RequestOptionFunc) (*Pipeline, *Response, error)

GetPipeline gets a single project pipeline.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#get-a-single-pipeline

func (*PipelinesService) GetPipelineTestReport added in v0.116.0

func (s *PipelinesService) GetPipelineTestReport(pid any, pipeline int, options ...RequestOptionFunc) (*PipelineTestReport, *Response, error)

GetPipelineTestReport gets the test report of a single project pipeline.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#get-a-pipelines-test-report

func (*PipelinesService) GetPipelineVariables added in v0.116.0

func (s *PipelinesService) GetPipelineVariables(pid any, pipeline int, options ...RequestOptionFunc) ([]*PipelineVariable, *Response, error)

GetPipelineVariables gets the variables of a single project pipeline.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#get-variables-of-a-pipeline

func (*PipelinesService) ListProjectPipelines added in v0.4.0

func (s *PipelinesService) ListProjectPipelines(pid any, opt *ListProjectPipelinesOptions, options ...RequestOptionFunc) ([]*PipelineInfo, *Response, error)

ListProjectPipelines gets a list of project piplines.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#list-project-pipelines

func (*PipelinesService) RetryPipelineBuild added in v0.4.0

func (s *PipelinesService) RetryPipelineBuild(pid any, pipeline int, options ...RequestOptionFunc) (*Pipeline, *Response, error)

RetryPipelineBuild retries failed builds in a pipeline.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#retry-jobs-in-a-pipeline

func (*PipelinesService) UpdatePipelineMetadata added in v0.116.0

func (s *PipelinesService) UpdatePipelineMetadata(pid any, pipeline int, opt *UpdatePipelineMetadataOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)

UpdatePipelineMetadata You can update the metadata of a pipeline. The metadata contains the name of the pipeline.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#update-pipeline-metadata

type PipelinesServiceInterface added in v0.126.0

type PipelinesServiceInterface interface {
	ListProjectPipelines(pid any, opt *ListProjectPipelinesOptions, options ...RequestOptionFunc) ([]*PipelineInfo, *Response, error)
	GetPipeline(pid any, pipeline int, options ...RequestOptionFunc) (*Pipeline, *Response, error)
	GetPipelineVariables(pid any, pipeline int, options ...RequestOptionFunc) ([]*PipelineVariable, *Response, error)
	GetPipelineTestReport(pid any, pipeline int, options ...RequestOptionFunc) (*PipelineTestReport, *Response, error)
	GetLatestPipeline(pid any, opt *GetLatestPipelineOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)
	CreatePipeline(pid any, opt *CreatePipelineOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)
	RetryPipelineBuild(pid any, pipeline int, options ...RequestOptionFunc) (*Pipeline, *Response, error)
	CancelPipelineBuild(pid any, pipeline int, options ...RequestOptionFunc) (*Pipeline, *Response, error)
	DeletePipeline(pid any, pipeline int, options ...RequestOptionFunc) (*Response, error)
	UpdatePipelineMetadata(pid any, pipeline int, opt *UpdatePipelineMetadataOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)
}

type PlanLimit added in v0.116.0

type PlanLimit struct {
	ConanMaxFileSize           int `json:"conan_max_file_size,omitempty"`
	GenericPackagesMaxFileSize int `json:"generic_packages_max_file_size,omitempty"`
	HelmMaxFileSize            int `json:"helm_max_file_size,omitempty"`
	MavenMaxFileSize           int `json:"maven_max_file_size,omitempty"`
	NPMMaxFileSize             int `json:"npm_max_file_size,omitempty"`
	NugetMaxFileSize           int `json:"nuget_max_file_size,omitempty"`
	PyPiMaxFileSize            int `json:"pypi_max_file_size,omitempty"`
	TerraformModuleMaxFileSize int `json:"terraform_module_max_file_size,omitempty"`
}

PlanLimit represents a GitLab pipeline.

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

type PlanLimitsService added in v0.116.0

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

PlanLimitsService handles communication with the repositories related methods of the GitLab API.

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

func (*PlanLimitsService) ChangePlanLimits added in v0.116.0

func (s *PlanLimitsService) ChangePlanLimits(opt *ChangePlanLimitOptions, options ...RequestOptionFunc) (*PlanLimit, *Response, error)

ChangePlanLimits modifies the limits of a plan on the GitLab instance.

GitLab API docs: https://docs.gitlab.com/api/plan_limits/#change-plan-limits

func (*PlanLimitsService) GetCurrentPlanLimits added in v0.116.0

func (s *PlanLimitsService) GetCurrentPlanLimits(opt *GetCurrentPlanLimitsOptions, options ...RequestOptionFunc) (*PlanLimit, *Response, error)

List the current limits of a plan on the GitLab instance.

GitLab API docs: https://docs.gitlab.com/api/plan_limits/#get-current-plan-limits

type PlanLimitsServiceInterface added in v0.126.0

type PlanLimitsServiceInterface interface {
	GetCurrentPlanLimits(opt *GetCurrentPlanLimitsOptions, options ...RequestOptionFunc) (*PlanLimit, *Response, error)
	ChangePlanLimits(opt *ChangePlanLimitOptions, options ...RequestOptionFunc) (*PlanLimit, *Response, error)
}

type PlatformKubernetes added in v0.116.0

type PlatformKubernetes struct {
	APIURL            string `json:"api_url"`
	Token             string `json:"token"`
	CaCert            string `json:"ca_cert"`
	Namespace         string `json:"namespace"`
	AuthorizationType string `json:"authorization_type"`
}

PlatformKubernetes represents a GitLab Project Cluster PlatformKubernetes. Deprecated: in GitLab 14.5, to be removed in 19.0

type PlayJobOptions added in v0.116.0

type PlayJobOptions struct {
	JobVariablesAttributes *[]*JobVariableOptions `url:"job_variables_attributes,omitempty" json:"job_variables_attributes,omitempty"`
}

PlayJobOptions represents the available PlayJob() options.

GitLab API docs: https://docs.gitlab.com/api/jobs/#run-a-job

type PositionOptions added in v0.116.0

type PositionOptions struct {
	BaseSHA      *string           `url:"base_sha,omitempty" json:"base_sha,omitempty"`
	HeadSHA      *string           `url:"head_sha,omitempty" json:"head_sha,omitempty"`
	StartSHA     *string           `url:"start_sha,omitempty" json:"start_sha,omitempty"`
	NewPath      *string           `url:"new_path,omitempty" json:"new_path,omitempty"`
	OldPath      *string           `url:"old_path,omitempty" json:"old_path,omitempty"`
	PositionType *string           `url:"position_type,omitempty" json:"position_type"`
	NewLine      *int              `url:"new_line,omitempty" json:"new_line,omitempty"`
	OldLine      *int              `url:"old_line,omitempty" json:"old_line,omitempty"`
	LineRange    *LineRangeOptions `url:"line_range,omitempty" json:"line_range,omitempty"`
	Width        *int              `url:"width,omitempty" json:"width,omitempty"`
	Height       *int              `url:"height,omitempty" json:"height,omitempty"`
	X            *float64          `url:"x,omitempty" json:"x,omitempty"`
	Y            *float64          `url:"y,omitempty" json:"y,omitempty"`
}

PositionOptions represents the position option of a discussion.

type PostCommitCommentOptions

type PostCommitCommentOptions struct {
	Note     *string `url:"note,omitempty" json:"note,omitempty"`
	Path     *string `url:"path" json:"path"`
	Line     *int    `url:"line" json:"line"`
	LineType *string `url:"line_type" json:"line_type"`
}

PostCommitCommentOptions represents the available PostCommitComment() options.

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

type ProcessMetrics added in v0.8.1

type ProcessMetrics struct {
	Processes []struct {
		Hostname    string     `json:"hostname"`
		Pid         int        `json:"pid"`
		Tag         string     `json:"tag"`
		StartedAt   *time.Time `json:"started_at"`
		Queues      []string   `json:"queues"`
		Labels      []string   `json:"labels"`
		Concurrency int        `json:"concurrency"`
		Busy        int        `json:"busy"`
	} `json:"processes"`
}

ProcessMetrics represents the GitLab sidekiq process metrics.

GitLab API docs: https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-process-metrics

type Project

type Project struct {
	ID                                        int                        `json:"id"`
	Description                               string                     `json:"description"`
	DefaultBranch                             string                     `json:"default_branch"`
	Visibility                                VisibilityValue            `json:"visibility"`
	SSHURLToRepo                              string                     `json:"ssh_url_to_repo"`
	HTTPURLToRepo                             string                     `json:"http_url_to_repo"`
	WebURL                                    string                     `json:"web_url"`
	ReadmeURL                                 string                     `json:"readme_url"`
	Topics                                    []string                   `json:"topics"`
	Owner                                     *User                      `json:"owner"`
	Name                                      string                     `json:"name"`
	NameWithNamespace                         string                     `json:"name_with_namespace"`
	Path                                      string                     `json:"path"`
	PathWithNamespace                         string                     `json:"path_with_namespace"`
	OpenIssuesCount                           int                        `json:"open_issues_count"`
	ResolveOutdatedDiffDiscussions            bool                       `json:"resolve_outdated_diff_discussions"`
	ContainerExpirationPolicy                 *ContainerExpirationPolicy `json:"container_expiration_policy,omitempty"`
	ContainerRegistryAccessLevel              AccessControlValue         `json:"container_registry_access_level"`
	ContainerRegistryImagePrefix              string                     `json:"container_registry_image_prefix,omitempty"`
	CreatedAt                                 *time.Time                 `json:"created_at,omitempty"`
	UpdatedAt                                 *time.Time                 `json:"updated_at,omitempty"`
	LastActivityAt                            *time.Time                 `json:"last_activity_at,omitempty"`
	CreatorID                                 int                        `json:"creator_id"`
	Namespace                                 *ProjectNamespace          `json:"namespace"`
	Permissions                               *Permissions               `json:"permissions"`
	MarkedForDeletionOn                       *ISOTime                   `json:"marked_for_deletion_on"`
	EmptyRepo                                 bool                       `json:"empty_repo"`
	Archived                                  bool                       `json:"archived"`
	AvatarURL                                 string                     `json:"avatar_url"`
	LicenseURL                                string                     `json:"license_url"`
	License                                   *ProjectLicense            `json:"license"`
	SharedRunnersEnabled                      bool                       `json:"shared_runners_enabled"`
	GroupRunnersEnabled                       bool                       `json:"group_runners_enabled"`
	RunnerTokenExpirationInterval             int                        `json:"runner_token_expiration_interval"`
	ForksCount                                int                        `json:"forks_count"`
	StarCount                                 int                        `json:"star_count"`
	RunnersToken                              string                     `json:"runners_token"`
	AllowMergeOnSkippedPipeline               bool                       `json:"allow_merge_on_skipped_pipeline"`
	AllowPipelineTriggerApproveDeployment     bool                       `json:"allow_pipeline_trigger_approve_deployment"`
	OnlyAllowMergeIfPipelineSucceeds          bool                       `json:"only_allow_merge_if_pipeline_succeeds"`
	OnlyAllowMergeIfAllDiscussionsAreResolved bool                       `json:"only_allow_merge_if_all_discussions_are_resolved"`
	RemoveSourceBranchAfterMerge              bool                       `json:"remove_source_branch_after_merge"`
	PreventMergeWithoutJiraIssue              bool                       `json:"prevent_merge_without_jira_issue"`
	PrintingMergeRequestLinkEnabled           bool                       `json:"printing_merge_request_link_enabled"`
	LFSEnabled                                bool                       `json:"lfs_enabled"`
	RepositoryStorage                         string                     `json:"repository_storage"`
	RequestAccessEnabled                      bool                       `json:"request_access_enabled"`
	MergeMethod                               MergeMethodValue           `json:"merge_method"`
	CanCreateMergeRequestIn                   bool                       `json:"can_create_merge_request_in"`
	ForkedFromProject                         *ForkParent                `json:"forked_from_project"`
	Mirror                                    bool                       `json:"mirror"`
	MirrorUserID                              int                        `json:"mirror_user_id"`
	MirrorTriggerBuilds                       bool                       `json:"mirror_trigger_builds"`
	OnlyMirrorProtectedBranches               bool                       `json:"only_mirror_protected_branches"`
	MirrorOverwritesDivergedBranches          bool                       `json:"mirror_overwrites_diverged_branches"`
	PackagesEnabled                           bool                       `json:"packages_enabled"`
	ServiceDeskEnabled                        bool                       `json:"service_desk_enabled"`
	ServiceDeskAddress                        string                     `json:"service_desk_address"`
	IssuesAccessLevel                         AccessControlValue         `json:"issues_access_level"`
	ReleasesAccessLevel                       AccessControlValue         `json:"releases_access_level,omitempty"`
	RepositoryAccessLevel                     AccessControlValue         `json:"repository_access_level"`
	MergeRequestsAccessLevel                  AccessControlValue         `json:"merge_requests_access_level"`
	ForkingAccessLevel                        AccessControlValue         `json:"forking_access_level"`
	WikiAccessLevel                           AccessControlValue         `json:"wiki_access_level"`
	BuildsAccessLevel                         AccessControlValue         `json:"builds_access_level"`
	SnippetsAccessLevel                       AccessControlValue         `json:"snippets_access_level"`
	PagesAccessLevel                          AccessControlValue         `json:"pages_access_level"`
	OperationsAccessLevel                     AccessControlValue         `json:"operations_access_level"`
	AnalyticsAccessLevel                      AccessControlValue         `json:"analytics_access_level"`
	EnvironmentsAccessLevel                   AccessControlValue         `json:"environments_access_level"`
	FeatureFlagsAccessLevel                   AccessControlValue         `json:"feature_flags_access_level"`
	InfrastructureAccessLevel                 AccessControlValue         `json:"infrastructure_access_level"`
	MonitorAccessLevel                        AccessControlValue         `json:"monitor_access_level"`
	AutocloseReferencedIssues                 bool                       `json:"autoclose_referenced_issues"`
	SuggestionCommitMessage                   string                     `json:"suggestion_commit_message"`
	SquashOption                              SquashOptionValue          `json:"squash_option"`
	EnforceAuthChecksOnUploads                bool                       `json:"enforce_auth_checks_on_uploads,omitempty"`
	SharedWithGroups                          []struct {
		GroupID          int    `json:"group_id"`
		GroupName        string `json:"group_name"`
		GroupFullPath    string `json:"group_full_path"`
		GroupAccessLevel int    `json:"group_access_level"`
	} `json:"shared_with_groups"`
	Statistics                               *Statistics                                 `json:"statistics"`
	Links                                    *Links                                      `json:"_links,omitempty"`
	ImportURL                                string                                      `json:"import_url"`
	ImportType                               string                                      `json:"import_type"`
	ImportStatus                             string                                      `json:"import_status"`
	ImportError                              string                                      `json:"import_error"`
	CIDefaultGitDepth                        int                                         `json:"ci_default_git_depth"`
	CIDeletePipelinesInSeconds               int                                         `json:"ci_delete_pipelines_in_seconds,omitempty"`
	CIForwardDeploymentEnabled               bool                                        `json:"ci_forward_deployment_enabled"`
	CIForwardDeploymentRollbackAllowed       bool                                        `json:"ci_forward_deployment_rollback_allowed"`
	CIIdTokenSubClaimComponents              []string                                    `json:"ci_id_token_sub_claim_components"`
	CISeperateCache                          bool                                        `json:"ci_separated_caches"`
	CIJobTokenScopeEnabled                   bool                                        `json:"ci_job_token_scope_enabled"`
	CIOptInJWT                               bool                                        `json:"ci_opt_in_jwt"`
	CIAllowForkPipelinesToRunInParentProject bool                                        `json:"ci_allow_fork_pipelines_to_run_in_parent_project"`
	CIRestrictPipelineCancellationRole       AccessControlValue                          `json:"ci_restrict_pipeline_cancellation_role"`
	PublicJobs                               bool                                        `json:"public_jobs"`
	BuildTimeout                             int                                         `json:"build_timeout"`
	AutoCancelPendingPipelines               string                                      `json:"auto_cancel_pending_pipelines"`
	CIConfigPath                             string                                      `json:"ci_config_path"`
	CustomAttributes                         []*CustomAttribute                          `json:"custom_attributes"`
	ComplianceFrameworks                     []string                                    `json:"compliance_frameworks"`
	BuildCoverageRegex                       string                                      `json:"build_coverage_regex"`
	IssuesTemplate                           string                                      `json:"issues_template"`
	MergeRequestsTemplate                    string                                      `json:"merge_requests_template"`
	IssueBranchTemplate                      string                                      `json:"issue_branch_template"`
	KeepLatestArtifact                       bool                                        `json:"keep_latest_artifact"`
	MergePipelinesEnabled                    bool                                        `json:"merge_pipelines_enabled"`
	MergeTrainsEnabled                       bool                                        `json:"merge_trains_enabled"`
	CIPipelineVariablesMinimumOverrideRole   CIPipelineVariablesMinimumOverrideRoleValue `json:"ci_pipeline_variables_minimum_override_role"`
	MergeCommitTemplate                      string                                      `json:"merge_commit_template"`
	SquashCommitTemplate                     string                                      `json:"squash_commit_template"`
	AutoDevopsDeployStrategy                 string                                      `json:"auto_devops_deploy_strategy"`
	AutoDevopsEnabled                        bool                                        `json:"auto_devops_enabled"`
	BuildGitStrategy                         string                                      `json:"build_git_strategy"`
	EmailsEnabled                            bool                                        `json:"emails_enabled"`
	ExternalAuthorizationClassificationLabel string                                      `json:"external_authorization_classification_label"`
	RequirementsEnabled                      bool                                        `json:"requirements_enabled"`
	RequirementsAccessLevel                  AccessControlValue                          `json:"requirements_access_level"`
	SecurityAndComplianceEnabled             bool                                        `json:"security_and_compliance_enabled"`
	SecurityAndComplianceAccessLevel         AccessControlValue                          `json:"security_and_compliance_access_level"`
	MergeRequestDefaultTargetSelf            bool                                        `json:"mr_default_target_self"`
	ModelExperimentsAccessLevel              AccessControlValue                          `json:"model_experiments_access_level"`
	ModelRegistryAccessLevel                 AccessControlValue                          `json:"model_registry_access_level"`
	PreReceiveSecretDetectionEnabled         bool                                        `json:"pre_receive_secret_detection_enabled"`

	// Deprecated: use Topics instead
	TagList []string `json:"tag_list"`
	// Deprecated: use IssuesAccessLevel instead
	IssuesEnabled bool `json:"issues_enabled"`
	// Deprecated: use MergeRequestsAccessLevel instead
	MergeRequestsEnabled bool `json:"merge_requests_enabled"`
	// Deprecated: use Merge Request Approvals API instead
	ApprovalsBeforeMerge int `json:"approvals_before_merge"`
	// Deprecated: use BuildsAccessLevel instead
	JobsEnabled bool `json:"jobs_enabled"`
	// Deprecated: use WikiAccessLevel instead
	WikiEnabled bool `json:"wiki_enabled"`
	// Deprecated: use SnippetsAccessLevel instead
	SnippetsEnabled bool `json:"snippets_enabled"`
	// Deprecated: use ContainerRegistryAccessLevel instead
	ContainerRegistryEnabled bool `json:"container_registry_enabled"`
	// Deprecated: use MarkedForDeletionOn instead
	MarkedForDeletionAt *ISOTime `json:"marked_for_deletion_at"`
	// Deprecated: use CIPipelineVariablesMinimumOverrideRole instead
	RestrictUserDefinedVariables bool `json:"restrict_user_defined_variables"`
	// Deprecated: Use EmailsEnabled instead
	EmailsDisabled bool `json:"emails_disabled"`
	// Deprecated: This parameter has been renamed to PublicJobs in GitLab 9.0.
	PublicBuilds bool `json:"public_builds"`
}

Project represents a GitLab project.

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

func (Project) String

func (s Project) String() string

type ProjectAccess

type ProjectAccess struct {
	AccessLevel       AccessLevelValue       `json:"access_level"`
	NotificationLevel NotificationLevelValue `json:"notification_level"`
}

ProjectAccess represents project access.

type ProjectAccessToken added in v0.116.0

type ProjectAccessToken resourceAccessToken

ProjectAccessToken represents a GitLab project access token.

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

func (ProjectAccessToken) String added in v0.116.0

func (v ProjectAccessToken) String() string

type ProjectAccessTokensService added in v0.116.0

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

ProjectAccessTokensService handles communication with the project access tokens related methods of the GitLab API.

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

func (*ProjectAccessTokensService) CreateProjectAccessToken added in v0.116.0

func (s *ProjectAccessTokensService) CreateProjectAccessToken(pid any, opt *CreateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)

CreateProjectAccessToken creates a new project access token.

GitLab API docs: https://docs.gitlab.com/api/project_access_tokens/#create-a-project-access-token

func (*ProjectAccessTokensService) GetProjectAccessToken added in v0.116.0

func (s *ProjectAccessTokensService) GetProjectAccessToken(pid any, id int, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)

GetProjectAccessToken gets a single project access tokens in a project.

GitLab API docs: https://docs.gitlab.com/api/project_access_tokens/#get-details-on-a-project-access-token

func (*ProjectAccessTokensService) ListProjectAccessTokens added in v0.116.0

func (s *ProjectAccessTokensService) ListProjectAccessTokens(pid any, opt *ListProjectAccessTokensOptions, options ...RequestOptionFunc) ([]*ProjectAccessToken, *Response, error)

ListProjectAccessTokens gets a list of all project access tokens in a project.

GitLab API docs: https://docs.gitlab.com/api/project_access_tokens/#list-all-project-access-tokens

func (*ProjectAccessTokensService) RevokeProjectAccessToken added in v0.116.0

func (s *ProjectAccessTokensService) RevokeProjectAccessToken(pid any, id int, options ...RequestOptionFunc) (*Response, error)

RevokeProjectAccessToken revokes a project access token.

GitLab API docs: https://docs.gitlab.com/api/project_access_tokens/#revoke-a-project-access-token

func (*ProjectAccessTokensService) RotateProjectAccessToken added in v0.116.0

func (s *ProjectAccessTokensService) RotateProjectAccessToken(pid any, id int, opt *RotateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)

RotateProjectAccessToken revokes a project access token and returns a new project access token that expires in one week per default.

GitLab API docs: https://docs.gitlab.com/api/project_access_tokens/#rotate-a-project-access-token

func (*ProjectAccessTokensService) RotateProjectAccessTokenSelf added in v0.127.0

func (s *ProjectAccessTokensService) RotateProjectAccessTokenSelf(pid any, opt *RotateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)

RotateProjectAccessTokenSelf revokes the project access token used for the request and returns a new project access token that expires in one week per default.

GitLab API docs: https://docs.gitlab.com/api/project_access_tokens/#self-rotate

type ProjectAccessTokensServiceInterface added in v0.126.0

type ProjectAccessTokensServiceInterface interface {
	ListProjectAccessTokens(pid any, opt *ListProjectAccessTokensOptions, options ...RequestOptionFunc) ([]*ProjectAccessToken, *Response, error)
	GetProjectAccessToken(pid any, id int, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)
	CreateProjectAccessToken(pid any, opt *CreateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)
	RotateProjectAccessToken(pid any, id int, opt *RotateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)
	RotateProjectAccessTokenSelf(pid any, opt *RotateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)
	RevokeProjectAccessToken(pid any, id int, options ...RequestOptionFunc) (*Response, error)
}

type ProjectApprovalRule added in v0.116.0

type ProjectApprovalRule struct {
	ID                            int                `json:"id"`
	Name                          string             `json:"name"`
	RuleType                      string             `json:"rule_type"`
	ReportType                    string             `json:"report_type"`
	EligibleApprovers             []*BasicUser       `json:"eligible_approvers"`
	ApprovalsRequired             int                `json:"approvals_required"`
	Users                         []*BasicUser       `json:"users"`
	Groups                        []*Group           `json:"groups"`
	ContainsHiddenGroups          bool               `json:"contains_hidden_groups"`
	ProtectedBranches             []*ProtectedBranch `json:"protected_branches"`
	AppliesToAllProtectedBranches bool               `json:"applies_to_all_protected_branches"`
}

ProjectApprovalRule represents a GitLab project approval rule.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#get-all-approval-rules-for-project

func (ProjectApprovalRule) String added in v0.116.0

func (s ProjectApprovalRule) String() string

type ProjectApprovals added in v0.116.0

type ProjectApprovals struct {
	Approvers                                 []*MergeRequestApproverUser  `json:"approvers"`
	ApproverGroups                            []*MergeRequestApproverGroup `json:"approver_groups"`
	ResetApprovalsOnPush                      bool                         `json:"reset_approvals_on_push"`
	DisableOverridingApproversPerMergeRequest bool                         `json:"disable_overriding_approvers_per_merge_request"`
	MergeRequestsAuthorApproval               bool                         `json:"merge_requests_author_approval"`
	MergeRequestsDisableCommittersApproval    bool                         `json:"merge_requests_disable_committers_approval"`
	RequirePasswordToApprove                  bool                         `json:"require_password_to_approve"`
	SelectiveCodeOwnerRemovals                bool                         `json:"selective_code_owner_removals,omitempty"`

	// Deprecated: use Merge Request Approvals API instead
	ApprovalsBeforeMerge int `json:"approvals_before_merge"`
}

ProjectApprovals represents GitLab project level merge request approvals.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#project-approval-rules

type ProjectAvatar added in v0.116.0

type ProjectAvatar struct {
	Filename string
	Image    io.Reader
}

ProjectAvatar represents a GitLab project avatar.

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

func (*ProjectAvatar) MarshalJSON added in v0.116.0

func (a *ProjectAvatar) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

type ProjectBadge added in v0.11.1

type ProjectBadge struct {
	ID               int    `json:"id"`
	Name             string `json:"name"`
	LinkURL          string `json:"link_url"`
	ImageURL         string `json:"image_url"`
	RenderedLinkURL  string `json:"rendered_link_url"`
	RenderedImageURL string `json:"rendered_image_url"`
	// Kind represents a project badge kind. Can be empty, when used PreviewProjectBadge().
	Kind string `json:"kind"`
}

ProjectBadge represents a project badge.

GitLab API docs: https://docs.gitlab.com/api/project_badges/#list-all-badges-of-a-project

type ProjectBadgePreviewOptions added in v0.11.1

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

ProjectBadgePreviewOptions represents the available PreviewProjectBadge() options.

GitLab API docs: https://docs.gitlab.com/api/project_badges/#preview-a-badge-from-a-project

type ProjectBadgesService added in v0.11.1

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

ProjectBadgesService handles communication with the project badges related methods of the GitLab API.

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

func (*ProjectBadgesService) AddProjectBadge added in v0.11.1

func (s *ProjectBadgesService) AddProjectBadge(pid any, opt *AddProjectBadgeOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)

AddProjectBadge adds a badge to a project.

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

func (*ProjectBadgesService) DeleteProjectBadge added in v0.11.1

func (s *ProjectBadgesService) DeleteProjectBadge(pid any, badge int, options ...RequestOptionFunc) (*Response, error)

DeleteProjectBadge removes a badge from a project. Only project's badges will be removed by using this endpoint.

GitLab API docs: https://docs.gitlab.com/api/project_badges/#remove-a-badge-from-a-project

func (*ProjectBadgesService) EditProjectBadge added in v0.11.1

func (s *ProjectBadgesService) EditProjectBadge(pid any, badge int, opt *EditProjectBadgeOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)

EditProjectBadge updates a badge of a project.

GitLab API docs: https://docs.gitlab.com/api/project_badges/#edit-a-badge-of-a-project

func (*ProjectBadgesService) GetProjectBadge added in v0.11.1

func (s *ProjectBadgesService) GetProjectBadge(pid any, badge int, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)

GetProjectBadge gets a project badge.

GitLab API docs: https://docs.gitlab.com/api/project_badges/#get-a-badge-of-a-project

func (*ProjectBadgesService) ListProjectBadges added in v0.11.1

func (s *ProjectBadgesService) ListProjectBadges(pid any, opt *ListProjectBadgesOptions, options ...RequestOptionFunc) ([]*ProjectBadge, *Response, error)

ListProjectBadges gets a list of a project's badges and its group badges.

GitLab API docs: https://docs.gitlab.com/api/project_badges/#list-all-badges-of-a-project

func (*ProjectBadgesService) PreviewProjectBadge added in v0.11.1

func (s *ProjectBadgesService) PreviewProjectBadge(pid any, opt *ProjectBadgePreviewOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)

PreviewProjectBadge returns how the link_url and image_url final URLs would be after resolving the placeholder interpolation.

GitLab API docs: https://docs.gitlab.com/api/project_badges/#preview-a-badge-from-a-project

type ProjectBadgesServiceInterface added in v0.126.0

type ProjectBadgesServiceInterface interface {
	ListProjectBadges(pid any, opt *ListProjectBadgesOptions, options ...RequestOptionFunc) ([]*ProjectBadge, *Response, error)
	GetProjectBadge(pid any, badge int, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)
	AddProjectBadge(pid any, opt *AddProjectBadgeOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)
	EditProjectBadge(pid any, badge int, opt *EditProjectBadgeOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)
	DeleteProjectBadge(pid any, badge int, options ...RequestOptionFunc) (*Response, error)
	PreviewProjectBadge(pid any, opt *ProjectBadgePreviewOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)
}

type ProjectCluster added in v0.116.0

type ProjectCluster struct {
	ID                 int                 `json:"id"`
	Name               string              `json:"name"`
	Domain             string              `json:"domain"`
	CreatedAt          *time.Time          `json:"created_at"`
	ProviderType       string              `json:"provider_type"`
	PlatformType       string              `json:"platform_type"`
	EnvironmentScope   string              `json:"environment_scope"`
	ClusterType        string              `json:"cluster_type"`
	User               *User               `json:"user"`
	PlatformKubernetes *PlatformKubernetes `json:"platform_kubernetes"`
	ManagementProject  *ManagementProject  `json:"management_project"`
	Project            *Project            `json:"project"`
}

ProjectCluster represents a GitLab Project Cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

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

func (ProjectCluster) String deprecated added in v0.116.0

func (v ProjectCluster) String() string

Deprecated: in GitLab 14.5, to be removed in 19.0

type ProjectClustersService added in v0.116.0

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

ProjectClustersService handles communication with the project clusters related methods of the GitLab API. Deprecated: in GitLab 14.5, to be removed in 19.0

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

func (*ProjectClustersService) AddCluster added in v0.116.0

func (s *ProjectClustersService) AddCluster(pid any, opt *AddClusterOptions, options ...RequestOptionFunc) (*ProjectCluster, *Response, error)

AddCluster adds an existing cluster to the project. Deprecated: in GitLab 14.5, to be removed in 19.0

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

func (*ProjectClustersService) DeleteCluster added in v0.116.0

func (s *ProjectClustersService) DeleteCluster(pid any, cluster int, options ...RequestOptionFunc) (*Response, error)

DeleteCluster deletes an existing project cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/project_clusters/#delete-project-cluster

func (*ProjectClustersService) EditCluster added in v0.116.0

func (s *ProjectClustersService) EditCluster(pid any, cluster int, opt *EditClusterOptions, options ...RequestOptionFunc) (*ProjectCluster, *Response, error)

EditCluster updates an existing project cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/project_clusters/#edit-project-cluster

func (*ProjectClustersService) GetCluster added in v0.116.0

func (s *ProjectClustersService) GetCluster(pid any, cluster int, options ...RequestOptionFunc) (*ProjectCluster, *Response, error)

GetCluster gets a cluster. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/project_clusters/#get-a-single-project-cluster

func (*ProjectClustersService) ListClusters added in v0.116.0

func (s *ProjectClustersService) ListClusters(pid any, options ...RequestOptionFunc) ([]*ProjectCluster, *Response, error)

ListClusters gets a list of all clusters in a project. Deprecated: in GitLab 14.5, to be removed in 19.0

GitLab API docs: https://docs.gitlab.com/api/project_clusters/#list-project-clusters

type ProjectClustersServiceInterface deprecated added in v0.126.0

type ProjectClustersServiceInterface interface {
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	ListClusters(pid any, options ...RequestOptionFunc) ([]*ProjectCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	GetCluster(pid any, cluster int, options ...RequestOptionFunc) (*ProjectCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	AddCluster(pid any, opt *AddClusterOptions, options ...RequestOptionFunc) (*ProjectCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	EditCluster(pid any, cluster int, opt *EditClusterOptions, options ...RequestOptionFunc) (*ProjectCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	DeleteCluster(pid any, cluster int, options ...RequestOptionFunc) (*Response, error)
}

Deprecated: in GitLab 14.5, to be removed in 19.0

type ProjectCreationLevelValue added in v0.116.0

type ProjectCreationLevelValue string

ProjectCreationLevelValue represents a project creation level within GitLab.

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

const (
	NoOneProjectCreation      ProjectCreationLevelValue = "noone"
	MaintainerProjectCreation ProjectCreationLevelValue = "maintainer"
	DeveloperProjectCreation  ProjectCreationLevelValue = "developer"
	OwnerProjectCreation      ProjectCreationLevelValue = "owner"
)

List of available project creation levels.

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

type ProjectDeployKey added in v0.116.0

type ProjectDeployKey struct {
	ID                int        `json:"id"`
	Title             string     `json:"title"`
	Key               string     `json:"key"`
	Fingerprint       string     `json:"fingerprint"`
	FingerprintSHA256 string     `json:"fingerprint_sha256"`
	CreatedAt         *time.Time `json:"created_at"`
	CanPush           bool       `json:"can_push"`
	ExpiresAt         *time.Time `json:"expires_at"`
}

ProjectDeployKey represents a GitLab project deploy key.

func (ProjectDeployKey) String added in v0.116.0

func (k ProjectDeployKey) String() string

type ProjectEvent

type ProjectEvent 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   string `json:"created_at"`
	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"`
	Data           struct {
		Before            string      `json:"before"`
		After             string      `json:"after"`
		Ref               string      `json:"ref"`
		UserID            int         `json:"user_id"`
		UserName          string      `json:"user_name"`
		Repository        *Repository `json:"repository"`
		Commits           []*Commit   `json:"commits"`
		TotalCommitsCount int         `json:"total_commits_count"`
	} `json:"data"`
	Note struct {
		ID         int    `json:"id"`
		Body       string `json:"body"`
		Attachment string `json:"attachment"`
		Author     struct {
			ID        int    `json:"id"`
			Username  string `json:"username"`
			Email     string `json:"email"`
			Name      string `json:"name"`
			State     string `json:"state"`
			AvatarURL string `json:"avatar_url"`
			WebURL    string `json:"web_url"`
		} `json:"author"`
		CreatedAt    *time.Time `json:"created_at"`
		System       bool       `json:"system"`
		NoteableID   int        `json:"noteable_id"`
		NoteableType string     `json:"noteable_type"`
		NoteableIID  int        `json:"noteable_iid"`
	} `json:"note"`
	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"`
}

ProjectEvent represents a GitLab project event.

GitLab API docs: https://docs.gitlab.com/api/events/#list-a-projects-visible-events

func (ProjectEvent) String

func (s ProjectEvent) String() string

type ProjectFeatureFlag added in v0.116.0

type ProjectFeatureFlag struct {
	Name        string                        `json:"name"`
	Description string                        `json:"description"`
	Active      bool                          `json:"active"`
	Version     string                        `json:"version"`
	CreatedAt   *time.Time                    `json:"created_at"`
	UpdatedAt   *time.Time                    `json:"updated_at"`
	Scopes      []*ProjectFeatureFlagScope    `json:"scopes"`
	Strategies  []*ProjectFeatureFlagStrategy `json:"strategies"`
}

ProjectFeatureFlag represents a GitLab project iteration.

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

func (ProjectFeatureFlag) String added in v0.116.0

func (i ProjectFeatureFlag) String() string

type ProjectFeatureFlagScope added in v0.116.0

type ProjectFeatureFlagScope struct {
	ID               int    `json:"id"`
	EnvironmentScope string `json:"environment_scope"`
}

ProjectFeatureFlagScope defines the scopes of a feature flag

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

type ProjectFeatureFlagScopeOptions added in v0.116.0

type ProjectFeatureFlagScopeOptions struct {
	ID               *int    `url:"id,omitempty" json:"id,omitempty"`
	EnvironmentScope *string `url:"id,omitempty" json:"environment_scope,omitempty"`
}

ProjectFeatureFlagScopeOptions represents the available feature flag scope options.

Gitlab API docs: https://docs.gitlab.com/api/feature_flags/#create-a-feature-flag

type ProjectFeatureFlagService added in v0.116.0

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

ProjectFeatureFlagService handles operations on gitlab project feature flags using the following api:

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

func (*ProjectFeatureFlagService) CreateProjectFeatureFlag added in v0.116.0

func (s *ProjectFeatureFlagService) CreateProjectFeatureFlag(pid any, opt *CreateProjectFeatureFlagOptions, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)

CreateProjectFeatureFlag creates a feature flag

Gitlab API docs: https://docs.gitlab.com/api/feature_flags/#create-a-feature-flag

func (*ProjectFeatureFlagService) DeleteProjectFeatureFlag added in v0.116.0

func (s *ProjectFeatureFlagService) DeleteProjectFeatureFlag(pid any, name string, options ...RequestOptionFunc) (*Response, error)

DeleteProjectFeatureFlag deletes a feature flag

Gitlab API docs: https://docs.gitlab.com/api/feature_flags/#delete-a-feature-flag

func (*ProjectFeatureFlagService) GetProjectFeatureFlag added in v0.116.0

func (s *ProjectFeatureFlagService) GetProjectFeatureFlag(pid any, name string, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)

GetProjectFeatureFlag gets a single feature flag for the specified project.

GitLab API docs: https://docs.gitlab.com/api/feature_flags/#get-a-single-feature-flag

func (*ProjectFeatureFlagService) ListProjectFeatureFlags added in v0.116.0

func (s *ProjectFeatureFlagService) ListProjectFeatureFlags(pid any, opt *ListProjectFeatureFlagOptions, options ...RequestOptionFunc) ([]*ProjectFeatureFlag, *Response, error)

ListProjectFeatureFlags returns a list with the feature flags of a project.

GitLab API docs: https://docs.gitlab.com/api/feature_flags/#list-feature-flags-for-a-project

func (*ProjectFeatureFlagService) UpdateProjectFeatureFlag added in v0.116.0

func (s *ProjectFeatureFlagService) UpdateProjectFeatureFlag(pid any, name string, opt *UpdateProjectFeatureFlagOptions, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)

UpdateProjectFeatureFlag updates a feature flag

Gitlab API docs: https://docs.gitlab.com/api/feature_flags/#update-a-feature-flag

type ProjectFeatureFlagServiceInterface added in v0.126.0

type ProjectFeatureFlagServiceInterface interface {
	ListProjectFeatureFlags(pid any, opt *ListProjectFeatureFlagOptions, options ...RequestOptionFunc) ([]*ProjectFeatureFlag, *Response, error)
	GetProjectFeatureFlag(pid any, name string, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)
	CreateProjectFeatureFlag(pid any, opt *CreateProjectFeatureFlagOptions, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)
	UpdateProjectFeatureFlag(pid any, name string, opt *UpdateProjectFeatureFlagOptions, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)
	DeleteProjectFeatureFlag(pid any, name string, options ...RequestOptionFunc) (*Response, error)
}

type ProjectFeatureFlagStrategy added in v0.116.0

type ProjectFeatureFlagStrategy struct {
	ID         int                                  `json:"id"`
	Name       string                               `json:"name"`
	Parameters *ProjectFeatureFlagStrategyParameter `json:"parameters"`
	Scopes     []*ProjectFeatureFlagScope           `json:"scopes"`
}

ProjectFeatureFlagStrategy defines the strategy used for a feature flag

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

type ProjectFeatureFlagStrategyParameter added in v0.116.0

type ProjectFeatureFlagStrategyParameter struct {
	GroupID    string `json:"groupId,omitempty"`
	UserIDs    string `json:"userIds,omitempty"`
	Percentage string `json:"percentage,omitempty"`

	// Following fields aren't documented in Gitlab API docs,
	// but are present in Gitlab API since 13.5.
	// Docs: https://docs.getunleash.io/reference/activation-strategies#gradual-rollout
	Rollout    string `json:"rollout,omitempty"`
	Stickiness string `json:"stickiness,omitempty"`
}

ProjectFeatureFlagStrategyParameter is used in updating and creating feature flags

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

type ProjectForkRelation

type ProjectForkRelation struct {
	ID                  int        `json:"id"`
	ForkedToProjectID   int        `json:"forked_to_project_id"`
	ForkedFromProjectID int        `json:"forked_from_project_id"`
	CreatedAt           *time.Time `json:"created_at"`
	UpdatedAt           *time.Time `json:"updated_at"`
}

ProjectForkRelation represents a project fork relationship.

GitLab API docs: https://docs.gitlab.com/api/project_forks/#create-a-fork-relationship-between-projects

type ProjectGroup added in v0.116.0

type ProjectGroup struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	AvatarURL string `json:"avatar_url"`
	WebURL    string `json:"web_url"`
	FullName  string `json:"full_name"`
	FullPath  string `json:"full_path"`
}

ProjectGroup represents a GitLab project group. GitLab API docs: https://docs.gitlab.com/api/projects/#list-groups

type ProjectHook

type ProjectHook struct {
	ID                        int                 `json:"id"`
	URL                       string              `json:"url"`
	Name                      string              `json:"name"`
	Description               string              `json:"description"`
	ConfidentialNoteEvents    bool                `json:"confidential_note_events"`
	ProjectID                 int                 `json:"project_id"`
	PushEvents                bool                `json:"push_events"`
	PushEventsBranchFilter    string              `json:"push_events_branch_filter"`
	IssuesEvents              bool                `json:"issues_events"`
	ConfidentialIssuesEvents  bool                `json:"confidential_issues_events"`
	MergeRequestsEvents       bool                `json:"merge_requests_events"`
	TagPushEvents             bool                `json:"tag_push_events"`
	NoteEvents                bool                `json:"note_events"`
	JobEvents                 bool                `json:"job_events"`
	PipelineEvents            bool                `json:"pipeline_events"`
	WikiPageEvents            bool                `json:"wiki_page_events"`
	DeploymentEvents          bool                `json:"deployment_events"`
	ReleasesEvents            bool                `json:"releases_events"`
	EnableSSLVerification     bool                `json:"enable_ssl_verification"`
	AlertStatus               string              `json:"alert_status"`
	CreatedAt                 *time.Time          `json:"created_at"`
	ResourceAccessTokenEvents bool                `json:"resource_access_token_events"`
	CustomWebhookTemplate     string              `json:"custom_webhook_template"`
	CustomHeaders             []*HookCustomHeader `json:"custom_headers"`
}

ProjectHook represents a project hook.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#list-webhooks-for-a-project

type ProjectHookEvent added in v0.116.0

type ProjectHookEvent string

ProjectHookEvent represents a project hook event.

GitLab API docs: https://docs.gitlab.com/api/projects/#hook-events

const (
	ProjectHookEventPush                ProjectHookEvent = "push_events"
	ProjectHookEventTagPush             ProjectHookEvent = "tag_push_events"
	ProjectHookEventIssues              ProjectHookEvent = "issues_events"
	ProjectHookEventConfidentialIssues  ProjectHookEvent = "confidential_issues_events"
	ProjectHookEventNote                ProjectHookEvent = "note_events"
	ProjectHookEventMergeRequests       ProjectHookEvent = "merge_requests_events"
	ProjectHookEventJob                 ProjectHookEvent = "job_events"
	ProjectHookEventPipeline            ProjectHookEvent = "pipeline_events"
	ProjectHookEventWiki                ProjectHookEvent = "wiki_page_events"
	ProjectHookEventReleases            ProjectHookEvent = "releases_events"
	ProjectHookEventEmoji               ProjectHookEvent = "emoji_events"
	ProjectHookEventResourceAccessToken ProjectHookEvent = "resource_access_token_events"
)

List of available project hook events.

GitLab API docs: https://docs.gitlab.com/api/projects/#hook-events

type ProjectImportExportService added in v0.116.0

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

ProjectImportExportService handles communication with the project import/export related methods of the GitLab API.

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

func (*ProjectImportExportService) ExportDownload added in v0.116.0

func (s *ProjectImportExportService) ExportDownload(pid any, options ...RequestOptionFunc) ([]byte, *Response, error)

ExportDownload download the finished export.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#export-download

func (*ProjectImportExportService) ExportStatus added in v0.116.0

func (s *ProjectImportExportService) ExportStatus(pid any, options ...RequestOptionFunc) (*ExportStatus, *Response, error)

ExportStatus get the status of export.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#export-status

func (*ProjectImportExportService) ImportFromFile added in v0.116.0

func (s *ProjectImportExportService) ImportFromFile(archive io.Reader, opt *ImportFileOptions, options ...RequestOptionFunc) (*ImportStatus, *Response, error)

Import a project from an archive file.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#import-a-file

func (*ProjectImportExportService) ImportStatus added in v0.116.0

func (s *ProjectImportExportService) ImportStatus(pid any, options ...RequestOptionFunc) (*ImportStatus, *Response, error)

ImportStatus get the status of an import.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#import-status

func (*ProjectImportExportService) ScheduleExport added in v0.116.0

func (s *ProjectImportExportService) ScheduleExport(pid any, opt *ScheduleExportOptions, options ...RequestOptionFunc) (*Response, error)

ScheduleExport schedules a project export.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#schedule-an-export

type ProjectImportExportServiceInterface added in v0.126.0

type ProjectImportExportServiceInterface interface {
	ScheduleExport(pid any, opt *ScheduleExportOptions, options ...RequestOptionFunc) (*Response, error)
	ExportStatus(pid any, options ...RequestOptionFunc) (*ExportStatus, *Response, error)
	ExportDownload(pid any, options ...RequestOptionFunc) ([]byte, *Response, error)
	ImportFromFile(archive io.Reader, opt *ImportFileOptions, options ...RequestOptionFunc) (*ImportStatus, *Response, error)
	ImportStatus(pid any, options ...RequestOptionFunc) (*ImportStatus, *Response, error)
}

type ProjectIteration added in v0.116.0

type ProjectIteration struct {
	ID          int        `json:"id"`
	IID         int        `json:"iid"`
	Sequence    int        `json:"sequence"`
	GroupID     int        `json:"group_id"`
	Title       string     `json:"title"`
	Description string     `json:"description"`
	State       int        `json:"state"`
	CreatedAt   *time.Time `json:"created_at"`
	UpdatedAt   *time.Time `json:"updated_at"`
	DueDate     *ISOTime   `json:"due_date"`
	StartDate   *ISOTime   `json:"start_date"`
	WebURL      string     `json:"web_url"`
}

ProjectIteration represents a GitLab project iteration.

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

func (ProjectIteration) String added in v0.116.0

func (i ProjectIteration) String() string

type ProjectIterationsService added in v0.116.0

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

ProjectIterationsService handles communication with the project iterations related methods of the GitLab API

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

func (*ProjectIterationsService) ListProjectIterations added in v0.116.0

func (i *ProjectIterationsService) ListProjectIterations(pid any, opt *ListProjectIterationsOptions, options ...RequestOptionFunc) ([]*ProjectIteration, *Response, error)

ListProjectIterations returns a list of projects iterations.

GitLab API docs: https://docs.gitlab.com/api/iterations/#list-project-iterations

type ProjectIterationsServiceInterface added in v0.126.0

type ProjectIterationsServiceInterface interface {
	ListProjectIterations(pid any, opt *ListProjectIterationsOptions, options ...RequestOptionFunc) ([]*ProjectIteration, *Response, error)
}

type ProjectLanguages added in v0.11.1

type ProjectLanguages map[string]float32

ProjectLanguages is a map of strings because the response is arbitrary

Gitlab API docs: https://docs.gitlab.com/api/projects/#list-programming-languages-used

type ProjectLicense added in v0.116.0

type ProjectLicense struct {
	Key       string `json:"key"`
	Name      string `json:"name"`
	Nickname  string `json:"nickname"`
	HTMLURL   string `json:"html_url"`
	SourceURL string `json:"source_url"`
}

ProjectLicense represent the license for a project.

type ProjectLintOptions added in v0.116.0

type ProjectLintOptions struct {
	ContentRef  *string `url:"content_ref,omitempty" json:"content_ref,omitempty"`
	DryRunRef   *string `url:"dry_run_ref,omitempty" json:"dry_run_ref,omitempty"`
	DryRun      *bool   `url:"dry_run,omitempty" json:"dry_run,omitempty"`
	IncludeJobs *bool   `url:"include_jobs,omitempty" json:"include_jobs,omitempty"`
	Ref         *string `url:"ref,omitempty" json:"ref,omitempty"`
}

ProjectLintOptions represents the available ProjectLint() options.

GitLab API docs: https://docs.gitlab.com/api/lint/#validate-a-projects-cicd-configuration

type ProjectLintResult added in v0.116.0

type ProjectLintResult struct {
	Valid      bool      `json:"valid"`
	Errors     []string  `json:"errors"`
	Warnings   []string  `json:"warnings"`
	MergedYaml string    `json:"merged_yaml"`
	Includes   []Include `json:"includes"`
}

ProjectLintResult represents the linting results by project.

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

type ProjectMarkdownUpload added in v0.116.0

type ProjectMarkdownUpload = MarkdownUpload

Type aliases for backward compatibility

type ProjectMarkdownUploadedFile added in v0.116.0

type ProjectMarkdownUploadedFile = MarkdownUploadedFile

Type aliases for backward compatibility

type ProjectMarkdownUploadsService added in v0.116.0

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

MarkdownUploadsService handles communication with the project markdown uploads related methods of the GitLab API.

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

func (*ProjectMarkdownUploadsService) DeleteProjectMarkdownUploadByID added in v0.116.0

func (s *ProjectMarkdownUploadsService) DeleteProjectMarkdownUploadByID(pid any, uploadID int, options ...RequestOptionFunc) (*Response, error)

DeleteProjectMarkdownUploadByID deletes an upload by ID.

GitLab API Docs: https://docs.gitlab.com/api/project_markdown_uploads/#delete-an-uploaded-file-by-id

func (*ProjectMarkdownUploadsService) DeleteProjectMarkdownUploadBySecretAndFilename added in v0.116.0

func (s *ProjectMarkdownUploadsService) DeleteProjectMarkdownUploadBySecretAndFilename(pid any, secret string, filename string, options ...RequestOptionFunc) (*Response, error)

DeleteProjectMarkdownUploadBySecretAndFilename deletes an upload by secret and filename.

GitLab API Docs: https://docs.gitlab.com/api/project_markdown_uploads/#delete-an-uploaded-file-by-secret-and-filename

func (*ProjectMarkdownUploadsService) DownloadProjectMarkdownUploadByID added in v0.116.0

func (s *ProjectMarkdownUploadsService) DownloadProjectMarkdownUploadByID(pid any, uploadID int, options ...RequestOptionFunc) ([]byte, *Response, error)

DownloadProjectMarkdownUploadByID downloads a specific upload by ID.

GitLab API Docs: https://docs.gitlab.com/api/project_markdown_uploads/#download-an-uploaded-file-by-id

func (*ProjectMarkdownUploadsService) DownloadProjectMarkdownUploadBySecretAndFilename added in v0.116.0

func (s *ProjectMarkdownUploadsService) DownloadProjectMarkdownUploadBySecretAndFilename(pid any, secret string, filename string, options ...RequestOptionFunc) ([]byte, *Response, error)

DownloadProjectMarkdownUploadBySecretAndFilename downloads a specific upload by secret and filename.

GitLab API Docs: https://docs.gitlab.com/api/project_markdown_uploads/#download-an-uploaded-file-by-secret-and-filename

func (*ProjectMarkdownUploadsService) ListProjectMarkdownUploads added in v0.116.0

func (s *ProjectMarkdownUploadsService) ListProjectMarkdownUploads(pid any, options ...RequestOptionFunc) ([]*ProjectMarkdownUpload, *Response, error)

ListProjectMarkdownUploads gets all markdown uploads for a project.

GitLab API Docs: https://docs.gitlab.com/api/project_markdown_uploads/#list-uploads

func (*ProjectMarkdownUploadsService) UploadProjectMarkdown added in v0.116.0

func (s *ProjectMarkdownUploadsService) UploadProjectMarkdown(pid any, content io.Reader, filename string, options ...RequestOptionFunc) (*ProjectMarkdownUploadedFile, *Response, error)

UploadProjectMarkdown uploads a markdown file to a project.

GitLab docs: https://docs.gitlab.com/api/project_markdown_uploads/#upload-a-file

type ProjectMarkdownUploadsServiceInterface added in v0.126.0

type ProjectMarkdownUploadsServiceInterface interface {
	UploadProjectMarkdown(pid any, content io.Reader, filename string, options ...RequestOptionFunc) (*ProjectMarkdownUploadedFile, *Response, error)
	ListProjectMarkdownUploads(pid any, options ...RequestOptionFunc) ([]*ProjectMarkdownUpload, *Response, error)
	DownloadProjectMarkdownUploadByID(pid any, uploadID int, options ...RequestOptionFunc) ([]byte, *Response, error)
	DownloadProjectMarkdownUploadBySecretAndFilename(pid any, secret string, filename string, options ...RequestOptionFunc) ([]byte, *Response, error)
	DeleteProjectMarkdownUploadByID(pid any, uploadID int, options ...RequestOptionFunc) (*Response, error)
	DeleteProjectMarkdownUploadBySecretAndFilename(pid any, secret string, filename string, options ...RequestOptionFunc) (*Response, error)
}

type ProjectMember

type ProjectMember struct {
	ID          int              `json:"id"`
	Username    string           `json:"username"`
	Email       string           `json:"email"`
	Name        string           `json:"name"`
	State       string           `json:"state"`
	CreatedAt   *time.Time       `json:"created_at"`
	ExpiresAt   *ISOTime         `json:"expires_at"`
	AccessLevel AccessLevelValue `json:"access_level"`
	WebURL      string           `json:"web_url"`
	AvatarURL   string           `json:"avatar_url"`
	MemberRole  *MemberRole      `json:"member_role"`
}

ProjectMember represents a project member.

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

type ProjectMembersService added in v0.6.0

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

ProjectMembersService handles communication with the project members related methods of the GitLab API.

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

func (*ProjectMembersService) AddProjectMember added in v0.6.0

func (s *ProjectMembersService) AddProjectMember(pid any, opt *AddProjectMemberOptions, options ...RequestOptionFunc) (*ProjectMember, *Response, error)

AddProjectMember adds a user to a project team. This is an idempotent method and can be called multiple times with the same parameters. Adding team membership to a user that is already a member does not affect the existing membership.

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

func (*ProjectMembersService) DeleteProjectMember added in v0.6.0

func (s *ProjectMembersService) DeleteProjectMember(pid any, user int, options ...RequestOptionFunc) (*Response, error)

DeleteProjectMember removes a user from a project team.

GitLab API docs: https://docs.gitlab.com/api/members/#remove-a-member-from-a-group-or-project

func (*ProjectMembersService) EditProjectMember added in v0.6.0

func (s *ProjectMembersService) EditProjectMember(pid any, user int, opt *EditProjectMemberOptions, options ...RequestOptionFunc) (*ProjectMember, *Response, error)

EditProjectMember updates a project team member to a specified access level..

GitLab API docs: https://docs.gitlab.com/api/members/#edit-a-member-of-a-group-or-project

func (*ProjectMembersService) GetInheritedProjectMember added in v0.116.0

func (s *ProjectMembersService) GetInheritedProjectMember(pid any, user int, options ...RequestOptionFunc) (*ProjectMember, *Response, error)

GetInheritedProjectMember gets a project team member, including inherited

GitLab API docs: https://docs.gitlab.com/api/members/#get-a-member-of-a-group-or-project-including-inherited-and-invited-members

func (*ProjectMembersService) GetProjectMember added in v0.6.0

func (s *ProjectMembersService) GetProjectMember(pid any, user int, options ...RequestOptionFunc) (*ProjectMember, *Response, error)

GetProjectMember gets a project team member.

GitLab API docs: https://docs.gitlab.com/api/members/#get-a-member-of-a-group-or-project

func (*ProjectMembersService) ListAllProjectMembers added in v0.11.2

func (s *ProjectMembersService) ListAllProjectMembers(pid any, opt *ListProjectMembersOptions, options ...RequestOptionFunc) ([]*ProjectMember, *Response, error)

ListAllProjectMembers gets a list of a project's team members viewable by the authenticated user. Returns a list including inherited members through ancestor groups.

GitLab API docs: https://docs.gitlab.com/api/members/#list-all-members-of-a-group-or-project-including-inherited-and-invited-members

func (*ProjectMembersService) ListProjectMembers added in v0.6.0

func (s *ProjectMembersService) ListProjectMembers(pid any, opt *ListProjectMembersOptions, options ...RequestOptionFunc) ([]*ProjectMember, *Response, error)

ListProjectMembers gets a list of a project's team members viewable by the authenticated user. Returns only direct members and not inherited members through ancestors groups.

GitLab API docs: https://docs.gitlab.com/api/members/#list-all-members-of-a-group-or-project

type ProjectMembersServiceInterface added in v0.126.0

type ProjectMembersServiceInterface interface {
	ListProjectMembers(pid any, opt *ListProjectMembersOptions, options ...RequestOptionFunc) ([]*ProjectMember, *Response, error)
	ListAllProjectMembers(pid any, opt *ListProjectMembersOptions, options ...RequestOptionFunc) ([]*ProjectMember, *Response, error)
	GetProjectMember(pid any, user int, options ...RequestOptionFunc) (*ProjectMember, *Response, error)
	GetInheritedProjectMember(pid any, user int, options ...RequestOptionFunc) (*ProjectMember, *Response, error)
	AddProjectMember(pid any, opt *AddProjectMemberOptions, options ...RequestOptionFunc) (*ProjectMember, *Response, error)
	EditProjectMember(pid any, user int, opt *EditProjectMemberOptions, options ...RequestOptionFunc) (*ProjectMember, *Response, error)
	DeleteProjectMember(pid any, user int, options ...RequestOptionFunc) (*Response, error)
}

type ProjectMirror added in v0.116.0

type ProjectMirror struct {
	Enabled                bool       `json:"enabled"`
	ID                     int        `json:"id"`
	LastError              string     `json:"last_error"`
	LastSuccessfulUpdateAt *time.Time `json:"last_successful_update_at"`
	LastUpdateAt           *time.Time `json:"last_update_at"`
	LastUpdateStartedAt    *time.Time `json:"last_update_started_at"`
	MirrorBranchRegex      string     `json:"mirror_branch_regex"`
	OnlyProtectedBranches  bool       `json:"only_protected_branches"`
	KeepDivergentRefs      bool       `json:"keep_divergent_refs"`
	UpdateStatus           string     `json:"update_status"`
	URL                    string     `json:"url"`
	AuthMethod             string     `json:"auth_method"`
}

ProjectMirror represents a project mirror configuration.

GitLAb API docs: https://docs.gitlab.com/api/remote_mirrors/

type ProjectMirrorPublicKey added in v0.125.0

type ProjectMirrorPublicKey struct {
	PublicKey string `json:"public_key"`
}

type ProjectMirrorService added in v0.116.0

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

ProjectMirrorService handles communication with the project mirror related methods of the GitLab API.

GitLAb API docs: https://docs.gitlab.com/api/remote_mirrors/

func (*ProjectMirrorService) AddProjectMirror added in v0.116.0

func (s *ProjectMirrorService) AddProjectMirror(pid any, opt *AddProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)

AddProjectMirror creates a new mirror on the project.

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

func (*ProjectMirrorService) DeleteProjectMirror added in v0.116.0

func (s *ProjectMirrorService) DeleteProjectMirror(pid any, mirror int, options ...RequestOptionFunc) (*Response, error)

DeleteProjectMirror deletes a project mirror.

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

func (*ProjectMirrorService) EditProjectMirror added in v0.116.0

func (s *ProjectMirrorService) EditProjectMirror(pid any, mirror int, opt *EditProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)

EditProjectMirror updates a project team member to a specified access level..

GitLab API docs: https://docs.gitlab.com/api/remote_mirrors/#update-a-remote-mirrors-attributes

func (*ProjectMirrorService) GetProjectMirror added in v0.116.0

func (s *ProjectMirrorService) GetProjectMirror(pid any, mirror int, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)

GetProjectMirror gets a single mirror configured on the project.

GitLab API docs: https://docs.gitlab.com/api/remote_mirrors/#get-a-single-projects-remote-mirror

func (*ProjectMirrorService) GetProjectMirrorPublicKey added in v0.125.0

func (s *ProjectMirrorService) GetProjectMirrorPublicKey(pid any, mirror int, options ...RequestOptionFunc) (*ProjectMirrorPublicKey, *Response, error)

GetProjectMirrorPublicKey gets the SSH public key for a single mirror configured on the project.

GitLab API docs: https://docs.gitlab.com/api/remote_mirrors/#get-a-single-projects-remote-mirror-public-key

func (*ProjectMirrorService) ListProjectMirror added in v0.116.0

func (s *ProjectMirrorService) ListProjectMirror(pid any, opt *ListProjectMirrorOptions, options ...RequestOptionFunc) ([]*ProjectMirror, *Response, error)

ListProjectMirror gets a list of mirrors configured on the project.

GitLab API docs: https://docs.gitlab.com/api/remote_mirrors/#list-a-projects-remote-mirrors

type ProjectMirrorServiceInterface added in v0.126.0

type ProjectMirrorServiceInterface interface {
	ListProjectMirror(pid any, opt *ListProjectMirrorOptions, options ...RequestOptionFunc) ([]*ProjectMirror, *Response, error)
	GetProjectMirror(pid any, mirror int, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)
	GetProjectMirrorPublicKey(pid any, mirror int, options ...RequestOptionFunc) (*ProjectMirrorPublicKey, *Response, error)
	AddProjectMirror(pid any, opt *AddProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)
	EditProjectMirror(pid any, mirror int, opt *EditProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)
	DeleteProjectMirror(pid any, mirror int, options ...RequestOptionFunc) (*Response, error)
}

type ProjectNamespace

type ProjectNamespace struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	Path      string `json:"path"`
	Kind      string `json:"kind"`
	FullPath  string `json:"full_path"`
	ParentID  int    `json:"parent_id"`
	AvatarURL string `json:"avatar_url"`
	WebURL    string `json:"web_url"`
}

ProjectNamespace represents a project namespace.

type ProjectNamespaceLintOptions added in v0.116.0

type ProjectNamespaceLintOptions struct {
	Content     *string `url:"content,omitempty" json:"content,omitempty"`
	DryRun      *bool   `url:"dry_run,omitempty" json:"dry_run,omitempty"`
	IncludeJobs *bool   `url:"include_jobs,omitempty" json:"include_jobs,omitempty"`
	Ref         *string `url:"ref,omitempty" json:"ref,omitempty"`
}

ProjectNamespaceLintOptions represents the available ProjectNamespaceLint() options.

GitLab API docs: https://docs.gitlab.com/api/lint/#validate-sample-cicd-configuration

type ProjectPullMirrorDetails added in v0.116.0

type ProjectPullMirrorDetails struct {
	ID                     int        `json:"id"`
	LastError              string     `json:"last_error"`
	LastSuccessfulUpdateAt *time.Time `json:"last_successful_update_at"`
	LastUpdateAt           *time.Time `json:"last_update_at"`
	LastUpdateStartedAt    *time.Time `json:"last_update_started_at"`
	UpdateStatus           string     `json:"update_status"`
	URL                    string     `json:"url"`
}

ProjectPullMirrorDetails represent the details of the configuration pull mirror and its update status.

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

type ProjectPushRules added in v0.116.0

type ProjectPushRules struct {
	ID                         int        `json:"id"`
	ProjectID                  int        `json:"project_id"`
	CommitMessageRegex         string     `json:"commit_message_regex"`
	CommitMessageNegativeRegex string     `json:"commit_message_negative_regex"`
	BranchNameRegex            string     `json:"branch_name_regex"`
	DenyDeleteTag              bool       `json:"deny_delete_tag"`
	CreatedAt                  *time.Time `json:"created_at"`
	MemberCheck                bool       `json:"member_check"`
	PreventSecrets             bool       `json:"prevent_secrets"`
	AuthorEmailRegex           string     `json:"author_email_regex"`
	FileNameRegex              string     `json:"file_name_regex"`
	MaxFileSize                int        `json:"max_file_size"`
	CommitCommitterCheck       bool       `json:"commit_committer_check"`
	CommitCommitterNameCheck   bool       `json:"commit_committer_name_check"`
	RejectUnsignedCommits      bool       `json:"reject_unsigned_commits"`
	RejectNonDCOCommits        bool       `json:"reject_non_dco_commits"`
}

ProjectPushRules represents a project push rule.

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

type ProjectRepositoryStorageMove added in v0.116.0

type ProjectRepositoryStorageMove struct {
	ID                     int                `json:"id"`
	CreatedAt              *time.Time         `json:"created_at"`
	State                  string             `json:"state"`
	SourceStorageName      string             `json:"source_storage_name"`
	DestinationStorageName string             `json:"destination_storage_name"`
	Project                *RepositoryProject `json:"project"`
}

ProjectRepositoryStorageMove represents the status of a repository move.

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

type ProjectRepositoryStorageMoveService added in v0.116.0

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

ProjectRepositoryStorageMoveService handles communication with the repositories related methods of the GitLab API.

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

func (ProjectRepositoryStorageMoveService) GetStorageMove added in v0.116.0

func (p ProjectRepositoryStorageMoveService) GetStorageMove(repositoryStorage int, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error)

GetStorageMove gets a single project repository storage move.

GitLab API docs: https://docs.gitlab.com/api/project_repository_storage_moves/#get-a-single-project-repository-storage-move

func (ProjectRepositoryStorageMoveService) GetStorageMoveForProject added in v0.116.0

func (p ProjectRepositoryStorageMoveService) GetStorageMoveForProject(project int, repositoryStorage int, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error)

GetStorageMoveForProject gets a single repository storage move for a project.

GitLab API docs: https://docs.gitlab.com/api/project_repository_storage_moves/#get-a-single-repository-storage-move-for-a-project

func (ProjectRepositoryStorageMoveService) RetrieveAllStorageMoves added in v0.116.0

RetrieveAllStorageMoves retrieves all project repository storage moves accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/project_repository_storage_moves/#retrieve-all-project-repository-storage-moves

func (ProjectRepositoryStorageMoveService) RetrieveAllStorageMovesForProject added in v0.116.0

RetrieveAllStorageMovesForProject retrieves all repository storage moves for a single project accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/project_repository_storage_moves/#retrieve-all-repository-storage-moves-for-a-project

func (ProjectRepositoryStorageMoveService) ScheduleAllStorageMoves added in v0.116.0

ScheduleAllStorageMoves schedules all repositories to be moved.

GitLab API docs: https://docs.gitlab.com/api/project_repository_storage_moves/#schedule-repository-storage-moves-for-all-projects-on-a-storage-shard

func (ProjectRepositoryStorageMoveService) ScheduleStorageMoveForProject added in v0.116.0

ScheduleStorageMoveForProject schedule a repository to be moved for a project.

GitLab API docs: https://docs.gitlab.com/api/project_repository_storage_moves/#schedule-a-repository-storage-move-for-a-project

type ProjectRepositoryStorageMoveServiceInterface added in v0.126.0

type ProjectRepositoryStorageMoveServiceInterface interface {
	RetrieveAllStorageMoves(opts RetrieveAllProjectStorageMovesOptions, options ...RequestOptionFunc) ([]*ProjectRepositoryStorageMove, *Response, error)
	RetrieveAllStorageMovesForProject(project int, opts RetrieveAllProjectStorageMovesOptions, options ...RequestOptionFunc) ([]*ProjectRepositoryStorageMove, *Response, error)
	GetStorageMove(repositoryStorage int, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error)
	GetStorageMoveForProject(project int, repositoryStorage int, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error)
	ScheduleStorageMoveForProject(project int, opts ScheduleStorageMoveForProjectOptions, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error)
	ScheduleAllStorageMoves(opts ScheduleAllProjectStorageMovesOptions, options ...RequestOptionFunc) (*Response, error)
}

type ProjectReposityStorage added in v0.116.0

type ProjectReposityStorage struct {
	ProjectID         int        `json:"project_id"`
	DiskPath          string     `json:"disk_path"`
	CreatedAt         *time.Time `json:"created_at"`
	RepositoryStorage string     `json:"repository_storage"`
}

GetRepositoryStorage Get the path to repository storage.

GitLab API docs: https://docs.gitlab.com/api/projects/#get-the-path-to-repository-storage

type ProjectResourceAccessTokenEvent added in v0.116.0

type ProjectResourceAccessTokenEvent struct {
	EventName  string `json:"event_name"`
	ObjectKind string `json:"object_kind"`
	Project    struct {
		ID                int    `json:"id"`
		Name              string `json:"name"`
		Description       string `json:"description"`
		WebURL            string `json:"web_url"`
		AvatarURL         string `json:"avatar_url"`
		GitSSHURL         string `json:"git_ssh_url"`
		GitHTTPURL        string `json:"git_http_url"`
		Namespace         string `json:"namespace"`
		VisibilityLevel   int    `json:"visibility_level"`
		PathWithNamespace string `json:"path_with_namespace"`
		DefaultBranch     string `json:"default_branch"`
		CIConfigPath      string `json:"ci_config_path"`
		Homepage          string `json:"homepage"`
		URL               string `json:"url"`
		SSHURL            string `json:"ssh_url"`
		HTTPURL           string `json:"http_url"`
	} `json:"project"`
	ObjectAttributes struct {
		ID        int      `json:"id"`
		UserID    int      `json:"user_id"`
		Name      string   `json:"name"`
		CreatedAt string   `json:"created_at"`
		ExpiresAt *ISOTime `json:"expires_at"`
	} `json:"object_attributes"`
}

ProjectResourceAccessTokenEvent represents a resource access token event for a project.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#project-and-group-access-token-events

type ProjectSecuritySettings added in v0.124.0

type ProjectSecuritySettings struct {
	ProjectID                           int64      `json:"project_id"`
	CreatedAt                           *time.Time `json:"created_at"`
	UpdatedAt                           *time.Time `json:"updated_at"`
	AutoFixContainerScanning            bool       `json:"auto_fix_container_scanning"`
	AutoFixDAST                         bool       `json:"auto_fix_dast"`
	AutoFixDependencyScanning           bool       `json:"auto_fix_dependency_scanning"`
	AutoFixSAST                         bool       `json:"auto_fix_sast"`
	ContinuousVulnerabilityScansEnabled bool       `json:"continuous_vulnerability_scans_enabled"`
	ContainerScanningForRegistryEnabled bool       `json:"container_scanning_for_registry_enabled"`
	SecretPushProtectionEnabled         bool       `json:"secret_push_protection_enabled"`
}

ProjectSecuritySettings represents the project security settings data.

Gitlab API docs: https://docs.gitlab.com/api/project_security_settings/

func (ProjectSecuritySettings) String added in v0.124.0

func (s ProjectSecuritySettings) String() string

Gets a string representation of the ProjectSecuritySettings data.

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

type ProjectSecuritySettingsService added in v0.124.0

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

ProjectSecuritySettingsService handles communication with the Project Security Settings related methods of the GitLab API.

Gitlab API docs: https://docs.gitlab.com/api/project_security_settings/

func (*ProjectSecuritySettingsService) ListProjectSecuritySettings added in v0.124.0

func (s *ProjectSecuritySettingsService) ListProjectSecuritySettings(pid any, options ...RequestOptionFunc) (*ProjectSecuritySettings, *Response, error)

ListProjectSecuritySettings lists all of a project's security settings.

GitLab API Docs: https://docs.gitlab.com/api/project_security_settings/#list-project-security-settings

func (*ProjectSecuritySettingsService) UpdateSecretPushProtectionEnabledSetting added in v0.124.0

func (s *ProjectSecuritySettingsService) UpdateSecretPushProtectionEnabledSetting(pid any, opt UpdateProjectSecuritySettingsOptions, options ...RequestOptionFunc) (*ProjectSecuritySettings, *Response, error)

UpdateSecretPushProtectionEnabledSetting updates the secret_push_protection_enabled setting for the all projects in a project to the provided value.

GitLab API Docs: https://docs.gitlab.com/api/project_security_settings/#update-secret_push_protection_enabled-setting

type ProjectSecuritySettingsServiceInterface added in v0.126.0

type ProjectSecuritySettingsServiceInterface interface {
	ListProjectSecuritySettings(pid any, options ...RequestOptionFunc) (*ProjectSecuritySettings, *Response, error)
	UpdateSecretPushProtectionEnabledSetting(pid any, opt UpdateProjectSecuritySettingsOptions, options ...RequestOptionFunc) (*ProjectSecuritySettings, *Response, error)
}

type ProjectSnippetsService

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

ProjectSnippetsService handles communication with the project snippets related methods of the GitLab API.

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

func (*ProjectSnippetsService) CreateSnippet

func (s *ProjectSnippetsService) CreateSnippet(pid any, opt *CreateProjectSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)

CreateSnippet creates a new project snippet. The user must have permission to create new snippets.

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#create-new-snippet

func (*ProjectSnippetsService) DeleteSnippet

func (s *ProjectSnippetsService) DeleteSnippet(pid any, snippet int, options ...RequestOptionFunc) (*Response, error)

DeleteSnippet deletes an existing project snippet. This is an idempotent function and deleting a non-existent snippet still returns a 200 OK status code.

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#delete-snippet

func (*ProjectSnippetsService) GetSnippet

func (s *ProjectSnippetsService) GetSnippet(pid any, snippet int, options ...RequestOptionFunc) (*Snippet, *Response, error)

GetSnippet gets a single project snippet

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#single-snippet

func (*ProjectSnippetsService) ListSnippets

func (s *ProjectSnippetsService) ListSnippets(pid any, opt *ListProjectSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)

ListSnippets gets a list of project snippets.

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#list-snippets

func (*ProjectSnippetsService) SnippetContent

func (s *ProjectSnippetsService) SnippetContent(pid any, snippet int, options ...RequestOptionFunc) ([]byte, *Response, error)

SnippetContent returns the raw project snippet as plain text.

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#snippet-content

func (*ProjectSnippetsService) UpdateSnippet

func (s *ProjectSnippetsService) UpdateSnippet(pid any, snippet int, opt *UpdateProjectSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)

UpdateSnippet updates an existing project snippet. The user must have permission to change an existing snippet.

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#update-snippet

type ProjectSnippetsServiceInterface added in v0.126.0

type ProjectSnippetsServiceInterface interface {
	ListSnippets(pid any, opt *ListProjectSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)
	GetSnippet(pid any, snippet int, options ...RequestOptionFunc) (*Snippet, *Response, error)
	CreateSnippet(pid any, opt *CreateProjectSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)
	UpdateSnippet(pid any, snippet int, opt *UpdateProjectSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)
	DeleteSnippet(pid any, snippet int, options ...RequestOptionFunc) (*Response, error)
	SnippetContent(pid any, snippet int, options ...RequestOptionFunc) ([]byte, *Response, error)
}

type ProjectStatusCheck added in v0.116.0

type ProjectStatusCheck struct {
	ID                int                          `json:"id"`
	Name              string                       `json:"name"`
	ProjectID         int                          `json:"project_id"`
	ExternalURL       string                       `json:"external_url"`
	ProtectedBranches []StatusCheckProtectedBranch `json:"protected_branches"`
}

type ProjectSystemEvent added in v0.116.0

type ProjectSystemEvent struct {
	BaseSystemEvent
	Name                 string `json:"name"`
	Path                 string `json:"path"`
	PathWithNamespace    string `json:"path_with_namespace"`
	ProjectID            int    `json:"project_id"`
	OwnerName            string `json:"owner_name"`
	OwnerEmail           string `json:"owner_email"`
	ProjectVisibility    string `json:"project_visibility"`
	OldPathWithNamespace string `json:"old_path_with_namespace,omitempty"`
}

ProjectSystemEvent represents a project system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/

type ProjectTemplate added in v0.116.0

type ProjectTemplate struct {
	Key         string   `json:"key"`
	Name        string   `json:"name"`
	Nickname    string   `json:"nickname"`
	Popular     bool     `json:"popular"`
	HTMLURL     string   `json:"html_url"`
	SourceURL   string   `json:"source_url"`
	Description string   `json:"description"`
	Conditions  []string `json:"conditions"`
	Permissions []string `json:"permissions"`
	Limitations []string `json:"limitations"`
	Content     string   `json:"content"`
}

ProjectTemplate represents a GitLab ProjectTemplate.

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

func (ProjectTemplate) String added in v0.116.0

func (s ProjectTemplate) String() string

type ProjectTemplatesService added in v0.116.0

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

ProjectTemplatesService handles communication with the project templates related methods of the GitLab API.

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

func (*ProjectTemplatesService) GetProjectTemplate added in v0.116.0

func (s *ProjectTemplatesService) GetProjectTemplate(pid any, templateType string, templateName string, options ...RequestOptionFunc) (*ProjectTemplate, *Response, error)

GetProjectTemplate gets a single project template.

GitLab API docs: https://docs.gitlab.com/api/project_templates/#get-one-template-of-a-particular-type

func (*ProjectTemplatesService) ListTemplates added in v0.116.0

func (s *ProjectTemplatesService) ListTemplates(pid any, templateType string, opt *ListProjectTemplatesOptions, options ...RequestOptionFunc) ([]*ProjectTemplate, *Response, error)

ListTemplates gets a list of project templates.

GitLab API docs: https://docs.gitlab.com/api/project_templates/#get-all-templates-of-a-particular-type

type ProjectTemplatesServiceInterface added in v0.126.0

type ProjectTemplatesServiceInterface interface {
	ListTemplates(pid any, templateType string, opt *ListProjectTemplatesOptions, options ...RequestOptionFunc) ([]*ProjectTemplate, *Response, error)
	GetProjectTemplate(pid any, templateType string, templateName string, options ...RequestOptionFunc) (*ProjectTemplate, *Response, error)
}

type ProjectUser added in v0.8.0

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

ProjectUser represents a GitLab project user.

type ProjectVariable added in v0.11.0

type ProjectVariable struct {
	Key              string            `json:"key"`
	Value            string            `json:"value"`
	VariableType     VariableTypeValue `json:"variable_type"`
	Protected        bool              `json:"protected"`
	Masked           bool              `json:"masked"`
	Hidden           bool              `json:"hidden"`
	Raw              bool              `json:"raw"`
	EnvironmentScope string            `json:"environment_scope"`
	Description      string            `json:"description"`
}

ProjectVariable represents a GitLab Project Variable.

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

func (ProjectVariable) String added in v0.11.0

func (v ProjectVariable) String() string

type ProjectVariablesService added in v0.11.0

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

ProjectVariablesService handles communication with the project variables related methods of the GitLab API.

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

func (*ProjectVariablesService) CreateVariable added in v0.11.0

CreateVariable creates a new project variable.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#create-a-variable

func (*ProjectVariablesService) GetVariable added in v0.11.0

GetVariable gets a variable.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#get-a-single-variable

func (*ProjectVariablesService) ListVariables added in v0.11.0

ListVariables gets a list of all variables in a project.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#list-project-variables

func (*ProjectVariablesService) RemoveVariable added in v0.11.0

func (s *ProjectVariablesService) RemoveVariable(pid any, key string, opt *RemoveProjectVariableOptions, options ...RequestOptionFunc) (*Response, error)

RemoveVariable removes a project's variable.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#delete-a-variable

func (*ProjectVariablesService) UpdateVariable added in v0.11.0

UpdateVariable updates a project's variable.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#update-a-variable

type ProjectVariablesServiceInterface added in v0.126.0

type ProjectVariablesServiceInterface interface {
	ListVariables(pid any, opt *ListProjectVariablesOptions, options ...RequestOptionFunc) ([]*ProjectVariable, *Response, error)
	GetVariable(pid any, key string, opt *GetProjectVariableOptions, options ...RequestOptionFunc) (*ProjectVariable, *Response, error)
	CreateVariable(pid any, opt *CreateProjectVariableOptions, options ...RequestOptionFunc) (*ProjectVariable, *Response, error)
	UpdateVariable(pid any, key string, opt *UpdateProjectVariableOptions, options ...RequestOptionFunc) (*ProjectVariable, *Response, error)
	RemoveVariable(pid any, key string, opt *RemoveProjectVariableOptions, options ...RequestOptionFunc) (*Response, error)
}

type ProjectVulnerabilitiesService added in v0.116.0

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

ProjectVulnerabilitiesService handles communication with the projects vulnerabilities related methods of the GitLab API. Deprecated: use GraphQL Query.vulnerabilities instead

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

func (*ProjectVulnerabilitiesService) CreateVulnerability added in v0.116.0

CreateVulnerability creates a new vulnerability on the selected project. Deprecated: use GraphQL Query.vulnerabilities instead

GitLab API docs: https://docs.gitlab.com/api/project_vulnerabilities/#new-vulnerability

func (*ProjectVulnerabilitiesService) ListProjectVulnerabilities added in v0.116.0

ListProjectVulnerabilities gets a list of all project vulnerabilities. Deprecated: use GraphQL Query.vulnerabilities instead

GitLab API docs: https://docs.gitlab.com/api/project_vulnerabilities/#list-project-vulnerabilities

type ProjectVulnerabilitiesServiceInterface deprecated added in v0.126.0

type ProjectVulnerabilitiesServiceInterface interface {
	// Deprecated: use GraphQL Query.vulnerabilities instead
	ListProjectVulnerabilities(pid any, opt *ListProjectVulnerabilitiesOptions, options ...RequestOptionFunc) ([]*ProjectVulnerability, *Response, error)
	// Deprecated: use GraphQL Query.vulnerabilities instead
	CreateVulnerability(pid any, opt *CreateVulnerabilityOptions, options ...RequestOptionFunc) (*ProjectVulnerability, *Response, error)
}

Deprecated: use GraphQL Query.vulnerabilities instead

type ProjectVulnerability added in v0.116.0

type ProjectVulnerability struct {
	AuthorID                int        `json:"author_id"`
	Confidence              string     `json:"confidence"`
	CreatedAt               *time.Time `json:"created_at"`
	Description             string     `json:"description"`
	DismissedAt             *time.Time `json:"dismissed_at"`
	DismissedByID           int        `json:"dismissed_by_id"`
	DueDate                 *time.Time `json:"due_date"`
	Finding                 *Finding   `json:"finding"`
	ID                      int        `json:"id"`
	LastEditedAt            *time.Time `json:"last_edited_at"`
	LastEditedByID          int        `json:"last_edited_by_id"`
	Project                 *Project   `json:"project"`
	ProjectDefaultBranch    string     `json:"project_default_branch"`
	ReportType              string     `json:"report_type"`
	ResolvedAt              *time.Time `json:"resolved_at"`
	ResolvedByID            int        `json:"resolved_by_id"`
	ResolvedOnDefaultBranch bool       `json:"resolved_on_default_branch"`
	Severity                string     `json:"severity"`
	StartDate               *time.Time `json:"start_date"`
	State                   string     `json:"state"`
	Title                   string     `json:"title"`
	UpdatedAt               *time.Time `json:"updated_at"`
	UpdatedByID             int        `json:"updated_by_id"`
}

Project represents a GitLab project vulnerability. Deprecated: use GraphQL Query.vulnerabilities instead

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

type ProjectsService

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

ProjectsService handles communication with the repositories related methods of the GitLab API.

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

func (*ProjectsService) AddProjectHook

func (s *ProjectsService) AddProjectHook(pid any, opt *AddProjectHookOptions, options ...RequestOptionFunc) (*ProjectHook, *Response, error)

AddProjectHook adds a hook to a specified project.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#add-a-webhook-to-a-project

func (*ProjectsService) AddProjectPushRule added in v0.116.0

func (s *ProjectsService) AddProjectPushRule(pid any, opt *AddProjectPushRuleOptions, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error)

AddProjectPushRule adds a push rule to a specified project.

GitLab API docs: https://docs.gitlab.com/api/project_push_rules/#add-a-project-push-rule

func (*ProjectsService) ArchiveProject

func (s *ProjectsService) ArchiveProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)

ArchiveProject archives the project if the user is either admin or the project owner of this project.

GitLab API docs: https://docs.gitlab.com/api/projects/#archive-a-project

func (*ProjectsService) ChangeApprovalConfiguration added in v0.116.0

func (s *ProjectsService) ChangeApprovalConfiguration(pid any, opt *ChangeApprovalConfigurationOptions, options ...RequestOptionFunc) (*ProjectApprovals, *Response, error)

ChangeApprovalConfiguration updates the approval configuration for a project.

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

func (*ProjectsService) ConfigureProjectPullMirror added in v0.125.0

func (s *ProjectsService) ConfigureProjectPullMirror(pid any, opt *ConfigureProjectPullMirrorOptions, options ...RequestOptionFunc) (*ProjectPullMirrorDetails, *Response, error)

ConfigureProjectPullMirror configures pull mirroring settings.

GitLab API docs: https://docs.gitlab.com/api/project_pull_mirroring/#configure-pull-mirroring-for-a-project

func (*ProjectsService) CreateProject

func (s *ProjectsService) CreateProject(opt *CreateProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

CreateProject creates a new project owned by the authenticated user.

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

func (*ProjectsService) CreateProjectApprovalRule added in v0.116.0

func (s *ProjectsService) CreateProjectApprovalRule(pid any, opt *CreateProjectLevelRuleOptions, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)

CreateProjectApprovalRule creates a new project-level approval rule.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#create-project-approval-rule

func (*ProjectsService) CreateProjectForUser

func (s *ProjectsService) CreateProjectForUser(user int, opt *CreateProjectForUserOptions, options ...RequestOptionFunc) (*Project, *Response, error)

CreateProjectForUser creates a new project owned by the specified user. Available only for admins.

GitLab API docs: https://docs.gitlab.com/api/projects/#create-a-project-for-a-user

func (*ProjectsService) CreateProjectForkRelation

func (s *ProjectsService) CreateProjectForkRelation(pid any, fork int, options ...RequestOptionFunc) (*ProjectForkRelation, *Response, error)

CreateProjectForkRelation creates a forked from/to relation between existing projects.

GitLab API docs: https://docs.gitlab.com/api/project_forks/#create-a-fork-relationship-between-projects

func (*ProjectsService) DeleteProject

func (s *ProjectsService) DeleteProject(pid any, opt *DeleteProjectOptions, options ...RequestOptionFunc) (*Response, error)

DeleteProject removes a project including all associated resources (issues, merge requests etc.)

GitLab API docs: https://docs.gitlab.com/api/projects/#delete-a-project

func (*ProjectsService) DeleteProjectApprovalRule added in v0.116.0

func (s *ProjectsService) DeleteProjectApprovalRule(pid any, approvalRule int, options ...RequestOptionFunc) (*Response, error)

DeleteProjectApprovalRule deletes a project-level approval rule.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#delete-project-approval-rule

func (*ProjectsService) DeleteProjectCustomHeader added in v0.116.0

func (s *ProjectsService) DeleteProjectCustomHeader(pid any, hook int, key string, options ...RequestOptionFunc) (*Response, error)

DeleteProjectCustomHeader deletes a project custom webhook header.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#delete-a-custom-header

func (*ProjectsService) DeleteProjectForkRelation

func (s *ProjectsService) DeleteProjectForkRelation(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteProjectForkRelation deletes an existing forked from relationship.

GitLab API docs: https://docs.gitlab.com/api/project_forks/#delete-a-fork-relationship-between-projects

func (*ProjectsService) DeleteProjectHook

func (s *ProjectsService) DeleteProjectHook(pid any, hook int, options ...RequestOptionFunc) (*Response, error)

DeleteProjectHook removes a hook from a project. This is an idempotent method and can be called multiple times. Either the hook is available or not.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#delete-project-webhook

func (*ProjectsService) DeleteProjectPushRule added in v0.116.0

func (s *ProjectsService) DeleteProjectPushRule(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteProjectPushRule removes a push rule from a project. This is an idempotent method and can be called multiple times. Either the push rule is available or not.

GitLab API docs: https://docs.gitlab.com/api/project_push_rules/#delete-project-push-rule

func (*ProjectsService) DeleteSharedProjectFromGroup added in v0.10.0

func (s *ProjectsService) DeleteSharedProjectFromGroup(pid any, groupID int, options ...RequestOptionFunc) (*Response, error)

DeleteSharedProjectFromGroup allows to unshare a project from a group.

GitLab API docs: https://docs.gitlab.com/api/projects/#delete-a-shared-project-link-in-a-group

func (*ProjectsService) DownloadAvatar added in v0.121.0

func (s *ProjectsService) DownloadAvatar(pid any, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

DownloadAvatar downloads an avatar.

GitLab API docs: https://docs.gitlab.com/api/projects/#download-a-project-avatar

func (*ProjectsService) EditProject

func (s *ProjectsService) EditProject(pid any, opt *EditProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

EditProject updates an existing project.

GitLab API docs: https://docs.gitlab.com/api/projects/#edit-a-project

func (*ProjectsService) EditProjectHook

func (s *ProjectsService) EditProjectHook(pid any, hook int, opt *EditProjectHookOptions, options ...RequestOptionFunc) (*ProjectHook, *Response, error)

EditProjectHook edits a hook for a specified project.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#edit-a-project-webhook

func (*ProjectsService) EditProjectPushRule added in v0.116.0

func (s *ProjectsService) EditProjectPushRule(pid any, opt *EditProjectPushRuleOptions, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error)

EditProjectPushRule edits a push rule for a specified project.

GitLab API docs: https://docs.gitlab.com/api/project_push_rules/#edit-project-push-rule

func (*ProjectsService) ForkProject

func (s *ProjectsService) ForkProject(pid any, opt *ForkProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

ForkProject forks a project into the user namespace of the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/project_forks/#fork-a-project

func (*ProjectsService) GetApprovalConfiguration added in v0.116.0

func (s *ProjectsService) GetApprovalConfiguration(pid any, options ...RequestOptionFunc) (*ProjectApprovals, *Response, error)

GetApprovalConfiguration get the approval configuration for a project.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#project-approval-rules

func (*ProjectsService) GetProject

func (s *ProjectsService) GetProject(pid any, opt *GetProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

GetProject gets a specific project, identified by project ID or NAMESPACE/PROJECT_NAME, which is owned by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/projects/#get-a-single-project

func (*ProjectsService) GetProjectApprovalRule added in v0.116.0

func (s *ProjectsService) GetProjectApprovalRule(pid any, ruleID int, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)

GetProjectApprovalRule gets the project level approvers.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#get-single-approval-rule-for-project

func (*ProjectsService) GetProjectApprovalRules added in v0.116.0

func (s *ProjectsService) GetProjectApprovalRules(pid any, opt *GetProjectApprovalRulesListsOptions, options ...RequestOptionFunc) ([]*ProjectApprovalRule, *Response, error)

GetProjectApprovalRules looks up the list of project level approver rules.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#get-all-approval-rules-for-project

func (*ProjectsService) GetProjectHook

func (s *ProjectsService) GetProjectHook(pid any, hook int, options ...RequestOptionFunc) (*ProjectHook, *Response, error)

GetProjectHook gets a specific hook for a project.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#get-a-project-webhook

func (*ProjectsService) GetProjectLanguages added in v0.11.1

func (s *ProjectsService) GetProjectLanguages(pid any, options ...RequestOptionFunc) (*ProjectLanguages, *Response, error)

GetProjectLanguages gets a list of languages used by the project

GitLab API docs: https://docs.gitlab.com/api/projects/#list-programming-languages-used

func (*ProjectsService) GetProjectPullMirrorDetails added in v0.116.0

func (s *ProjectsService) GetProjectPullMirrorDetails(pid any, options ...RequestOptionFunc) (*ProjectPullMirrorDetails, *Response, error)

GetProjectPullMirrorDetails returns the pull mirror details.

GitLab API docs: https://docs.gitlab.com/api/project_pull_mirroring/#get-a-projects-pull-mirror-details

func (*ProjectsService) GetProjectPushRules added in v0.116.0

func (s *ProjectsService) GetProjectPushRules(pid any, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error)

GetProjectPushRules gets the push rules of a project.

GitLab API docs: https://docs.gitlab.com/api/project_push_rules/#get-project-push-rules

func (*ProjectsService) GetRepositoryStorage added in v0.116.0

func (s *ProjectsService) GetRepositoryStorage(pid any, options ...RequestOptionFunc) (*ProjectReposityStorage, *Response, error)

GetRepositoryStorage Get the path to repository storage.

GitLab API docs: https://docs.gitlab.com/api/projects/#get-the-path-to-repository-storage

func (*ProjectsService) ListProjectForks added in v0.7.5

func (s *ProjectsService) ListProjectForks(pid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

ListProjectForks gets a list of project forks.

GitLab API docs: https://docs.gitlab.com/api/project_forks/#list-forks-of-a-project

func (*ProjectsService) ListProjectHooks

func (s *ProjectsService) ListProjectHooks(pid any, opt *ListProjectHooksOptions, options ...RequestOptionFunc) ([]*ProjectHook, *Response, error)

ListProjectHooks gets a list of project hooks.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#list-webhooks-for-a-project

func (*ProjectsService) ListProjects

func (s *ProjectsService) ListProjects(opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

ListProjects gets a list of projects accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-all-projects

func (*ProjectsService) ListProjectsGroups added in v0.116.0

func (s *ProjectsService) ListProjectsGroups(pid any, opt *ListProjectGroupOptions, options ...RequestOptionFunc) ([]*ProjectGroup, *Response, error)

ListProjectsGroups gets a list of groups for the given project.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-groups

func (*ProjectsService) ListProjectsInvitedGroups added in v0.116.0

func (s *ProjectsService) ListProjectsInvitedGroups(pid any, opt *ListProjectInvidedGroupOptions, options ...RequestOptionFunc) ([]*ProjectGroup, *Response, error)

ListProjectsInvitedGroups lists invited groups of a project

GitLab API docs: https://docs.gitlab.com/api/projects/#list-a-projects-invited-groups

func (*ProjectsService) ListProjectsUsers added in v0.8.0

func (s *ProjectsService) ListProjectsUsers(pid any, opt *ListProjectUserOptions, options ...RequestOptionFunc) ([]*ProjectUser, *Response, error)

ListProjectsUsers gets a list of users for the given project.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-users

func (*ProjectsService) ListUserContributedProjects added in v0.116.0

func (s *ProjectsService) ListUserContributedProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

ListUserContributedProjects gets a list of visible projects a given user has contributed to.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-projects-a-user-has-contributed-to

func (*ProjectsService) ListUserProjects added in v0.7.0

func (s *ProjectsService) ListUserProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

ListUserProjects gets a list of projects for the given user.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-a-users-projects

func (*ProjectsService) ListUserStarredProjects added in v0.116.0

func (s *ProjectsService) ListUserStarredProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

ListUserStarredProjects gets a list of projects starred by the given user.

GitLab API docs: https://docs.gitlab.com/api/project_starring/#list-projects-starred-by-a-user

func (*ProjectsService) SetProjectCustomHeader added in v0.116.0

func (s *ProjectsService) SetProjectCustomHeader(pid any, hook int, key string, opt *SetHookCustomHeaderOptions, options ...RequestOptionFunc) (*Response, error)

SetProjectCustomHeader creates or updates a project custom webhook header.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#set-a-custom-header

func (*ProjectsService) ShareProjectWithGroup added in v0.6.0

func (s *ProjectsService) ShareProjectWithGroup(pid any, opt *ShareWithGroupOptions, options ...RequestOptionFunc) (*Response, error)

ShareProjectWithGroup allows to share a project with a group.

GitLab API docs: https://docs.gitlab.com/api/projects/#share-a-project-with-a-group

func (*ProjectsService) StarProject added in v0.6.0

func (s *ProjectsService) StarProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)

StarProject stars a given the project.

GitLab API docs: https://docs.gitlab.com/api/project_starring/#star-a-project

func (*ProjectsService) StartHousekeepingProject added in v0.116.0

func (s *ProjectsService) StartHousekeepingProject(pid any, options ...RequestOptionFunc) (*Response, error)

StartHousekeepingProject start the Housekeeping task for a project.

GitLab API docs: https://docs.gitlab.com/api/projects/#start-the-housekeeping-task-for-a-project

func (*ProjectsService) StartMirroringProject added in v0.116.0

func (s *ProjectsService) StartMirroringProject(pid any, options ...RequestOptionFunc) (*Response, error)

StartMirroringProject start the pull mirroring process for a project.

GitLab API docs: https://docs.gitlab.com/api/project_pull_mirroring/#start-the-pull-mirroring-process-for-a-project

func (*ProjectsService) TransferProject added in v0.116.0

func (s *ProjectsService) TransferProject(pid any, opt *TransferProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

TransferProject transfer a project into the specified namespace

GitLab API docs: https://docs.gitlab.com/api/projects/#transfer-a-project-to-a-new-namespace

func (*ProjectsService) TriggerTestProjectHook added in v0.116.0

func (s *ProjectsService) TriggerTestProjectHook(pid any, hook int, event ProjectHookEvent, options ...RequestOptionFunc) (*Response, error)

TriggerTestProjectHook Trigger a test hook for a specified project.

In GitLab 17.0 and later, this endpoint has a special rate limit. In GitLab 17.0 the rate was three requests per minute for each project hook. In GitLab 17.1 this was changed to five requests per minute for each project and authenticated user.

To disable this limit on self-managed GitLab and GitLab Dedicated, an administrator can disable the feature flag named web_hook_test_api_endpoint_rate_limit.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#trigger-a-test-project-webhook

func (*ProjectsService) UnarchiveProject

func (s *ProjectsService) UnarchiveProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)

UnarchiveProject unarchives the project if the user is either admin or the project owner of this project.

GitLab API docs: https://docs.gitlab.com/api/projects/#unarchive-a-project

func (*ProjectsService) UnstarProject added in v0.6.0

func (s *ProjectsService) UnstarProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)

UnstarProject unstars a given project.

GitLab API docs: https://docs.gitlab.com/api/project_starring/#unstar-a-project

func (*ProjectsService) UpdateProjectApprovalRule added in v0.116.0

func (s *ProjectsService) UpdateProjectApprovalRule(pid any, approvalRule int, opt *UpdateProjectLevelRuleOptions, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)

UpdateProjectApprovalRule updates an existing approval rule with new options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#update-project-approval-rule

func (*ProjectsService) UploadAvatar added in v0.116.0

func (s *ProjectsService) UploadAvatar(pid any, avatar io.Reader, filename string, options ...RequestOptionFunc) (*Project, *Response, error)

UploadAvatar uploads an avatar.

GitLab API docs: https://docs.gitlab.com/api/projects/#upload-a-project-avatar

type ProjectsServiceInterface added in v0.126.0

type ProjectsServiceInterface interface {
	ListProjects(opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	ListUserProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	ListUserContributedProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	ListUserStarredProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	ListProjectsUsers(pid any, opt *ListProjectUserOptions, options ...RequestOptionFunc) ([]*ProjectUser, *Response, error)
	ListProjectsGroups(pid any, opt *ListProjectGroupOptions, options ...RequestOptionFunc) ([]*ProjectGroup, *Response, error)
	GetProjectLanguages(pid any, options ...RequestOptionFunc) (*ProjectLanguages, *Response, error)
	GetProject(pid any, opt *GetProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)
	CreateProject(opt *CreateProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)
	CreateProjectForUser(user int, opt *CreateProjectForUserOptions, options ...RequestOptionFunc) (*Project, *Response, error)
	EditProject(pid any, opt *EditProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)
	ForkProject(pid any, opt *ForkProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)
	StarProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)
	ListProjectsInvitedGroups(pid any, opt *ListProjectInvidedGroupOptions, options ...RequestOptionFunc) ([]*ProjectGroup, *Response, error)
	UnstarProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)
	ArchiveProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)
	UnarchiveProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)
	DeleteProject(pid any, opt *DeleteProjectOptions, options ...RequestOptionFunc) (*Response, error)
	ShareProjectWithGroup(pid any, opt *ShareWithGroupOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteSharedProjectFromGroup(pid any, groupID int, options ...RequestOptionFunc) (*Response, error)
	ListProjectHooks(pid any, opt *ListProjectHooksOptions, options ...RequestOptionFunc) ([]*ProjectHook, *Response, error)
	GetProjectHook(pid any, hook int, options ...RequestOptionFunc) (*ProjectHook, *Response, error)
	AddProjectHook(pid any, opt *AddProjectHookOptions, options ...RequestOptionFunc) (*ProjectHook, *Response, error)
	EditProjectHook(pid any, hook int, opt *EditProjectHookOptions, options ...RequestOptionFunc) (*ProjectHook, *Response, error)
	DeleteProjectHook(pid any, hook int, options ...RequestOptionFunc) (*Response, error)
	TriggerTestProjectHook(pid any, hook int, event ProjectHookEvent, options ...RequestOptionFunc) (*Response, error)
	SetProjectCustomHeader(pid any, hook int, key string, opt *SetHookCustomHeaderOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteProjectCustomHeader(pid any, hook int, key string, options ...RequestOptionFunc) (*Response, error)
	CreateProjectForkRelation(pid any, fork int, options ...RequestOptionFunc) (*ProjectForkRelation, *Response, error)
	DeleteProjectForkRelation(pid any, options ...RequestOptionFunc) (*Response, error)
	UploadAvatar(pid any, avatar io.Reader, filename string, options ...RequestOptionFunc) (*Project, *Response, error)
	DownloadAvatar(pid any, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	ListProjectForks(pid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	GetProjectPushRules(pid any, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error)
	AddProjectPushRule(pid any, opt *AddProjectPushRuleOptions, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error)
	EditProjectPushRule(pid any, opt *EditProjectPushRuleOptions, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error)
	DeleteProjectPushRule(pid any, options ...RequestOptionFunc) (*Response, error)
	GetApprovalConfiguration(pid any, options ...RequestOptionFunc) (*ProjectApprovals, *Response, error)
	ChangeApprovalConfiguration(pid any, opt *ChangeApprovalConfigurationOptions, options ...RequestOptionFunc) (*ProjectApprovals, *Response, error)
	GetProjectApprovalRules(pid any, opt *GetProjectApprovalRulesListsOptions, options ...RequestOptionFunc) ([]*ProjectApprovalRule, *Response, error)
	GetProjectApprovalRule(pid any, ruleID int, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)
	CreateProjectApprovalRule(pid any, opt *CreateProjectLevelRuleOptions, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)
	UpdateProjectApprovalRule(pid any, approvalRule int, opt *UpdateProjectLevelRuleOptions, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)
	DeleteProjectApprovalRule(pid any, approvalRule int, options ...RequestOptionFunc) (*Response, error)
	GetProjectPullMirrorDetails(pid any, options ...RequestOptionFunc) (*ProjectPullMirrorDetails, *Response, error)
	ConfigureProjectPullMirror(pid any, opt *ConfigureProjectPullMirrorOptions, options ...RequestOptionFunc) (*ProjectPullMirrorDetails, *Response, error)
	StartMirroringProject(pid any, options ...RequestOptionFunc) (*Response, error)
	TransferProject(pid any, opt *TransferProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)
	StartHousekeepingProject(pid any, options ...RequestOptionFunc) (*Response, error)
	GetRepositoryStorage(pid any, options ...RequestOptionFunc) (*ProjectReposityStorage, *Response, error)
}

ProjectsServiceInterface handles communication with the repositories related methods of the GitLab API.

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

type ProtectGroupEnvironmentOptions added in v0.116.0

type ProtectGroupEnvironmentOptions struct {
	Name                  *string                                 `url:"name,omitempty" json:"name,omitempty"`
	DeployAccessLevels    *[]*GroupEnvironmentAccessOptions       `url:"deploy_access_levels,omitempty" json:"deploy_access_levels,omitempty"`
	RequiredApprovalCount *int                                    `url:"required_approval_count,omitempty" json:"required_approval_count,omitempty"`
	ApprovalRules         *[]*GroupEnvironmentApprovalRuleOptions `url:"approval_rules,omitempty" json:"approval_rules,omitempty"`
}

ProtectGroupEnvironmentOptions represents the available ProtectGroupEnvironment() options.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#protect-a-single-environment

type ProtectRepositoryBranchesOptions added in v0.7.4

type ProtectRepositoryBranchesOptions struct {
	Name                      *string                     `url:"name,omitempty" json:"name,omitempty"`
	PushAccessLevel           *AccessLevelValue           `url:"push_access_level,omitempty" json:"push_access_level,omitempty"`
	MergeAccessLevel          *AccessLevelValue           `url:"merge_access_level,omitempty" json:"merge_access_level,omitempty"`
	UnprotectAccessLevel      *AccessLevelValue           `url:"unprotect_access_level,omitempty" json:"unprotect_access_level,omitempty"`
	AllowForcePush            *bool                       `url:"allow_force_push,omitempty" json:"allow_force_push,omitempty"`
	AllowedToPush             *[]*BranchPermissionOptions `url:"allowed_to_push,omitempty" json:"allowed_to_push,omitempty"`
	AllowedToMerge            *[]*BranchPermissionOptions `url:"allowed_to_merge,omitempty" json:"allowed_to_merge,omitempty"`
	AllowedToUnprotect        *[]*BranchPermissionOptions `url:"allowed_to_unprotect,omitempty" json:"allowed_to_unprotect,omitempty"`
	CodeOwnerApprovalRequired *bool                       `url:"code_owner_approval_required,omitempty" json:"code_owner_approval_required,omitempty"`
}

ProtectRepositoryBranchesOptions represents the available ProtectRepositoryBranches() options.

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

type ProtectRepositoryEnvironmentsOptions added in v0.116.0

type ProtectRepositoryEnvironmentsOptions struct {
	Name                  *string                            `url:"name,omitempty" json:"name,omitempty"`
	DeployAccessLevels    *[]*EnvironmentAccessOptions       `url:"deploy_access_levels,omitempty" json:"deploy_access_levels,omitempty"`
	RequiredApprovalCount *int                               `url:"required_approval_count,omitempty" json:"required_approval_count,omitempty"`
	ApprovalRules         *[]*EnvironmentApprovalRuleOptions `url:"approval_rules,omitempty" json:"approval_rules,omitempty"`
}

ProtectRepositoryEnvironmentsOptions represents the available ProtectRepositoryEnvironments() options.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#protect-a-single-environment

type ProtectRepositoryTagsOptions added in v0.116.0

type ProtectRepositoryTagsOptions struct {
	Name              *string                   `url:"name,omitempty" json:"name,omitempty"`
	CreateAccessLevel *AccessLevelValue         `url:"create_access_level,omitempty" json:"create_access_level,omitempty"`
	AllowedToCreate   *[]*TagsPermissionOptions `url:"allowed_to_create,omitempty" json:"allowed_to_create,omitempty"`
}

ProtectRepositoryTagsOptions represents the available ProtectRepositoryTags() options.

GitLab API docs: https://docs.gitlab.com/api/protected_tags/#protect-repository-tags

type ProtectedBranch added in v0.7.4

type ProtectedBranch struct {
	ID                        int                        `json:"id"`
	Name                      string                     `json:"name"`
	PushAccessLevels          []*BranchAccessDescription `json:"push_access_levels"`
	MergeAccessLevels         []*BranchAccessDescription `json:"merge_access_levels"`
	UnprotectAccessLevels     []*BranchAccessDescription `json:"unprotect_access_levels"`
	AllowForcePush            bool                       `json:"allow_force_push"`
	CodeOwnerApprovalRequired bool                       `json:"code_owner_approval_required"`
}

ProtectedBranch represents a protected branch.

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

type ProtectedBranchesService added in v0.7.4

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

ProtectedBranchesService handles communication with the protected branch related methods of the GitLab API.

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

func (*ProtectedBranchesService) GetProtectedBranch added in v0.7.4

func (s *ProtectedBranchesService) GetProtectedBranch(pid any, branch string, options ...RequestOptionFunc) (*ProtectedBranch, *Response, error)

GetProtectedBranch gets a single protected branch or wildcard protected branch.

GitLab API docs: https://docs.gitlab.com/api/protected_branches/#get-a-single-protected-branch-or-wildcard-protected-branch

func (*ProtectedBranchesService) ListProtectedBranches added in v0.7.4

func (s *ProtectedBranchesService) ListProtectedBranches(pid any, opt *ListProtectedBranchesOptions, options ...RequestOptionFunc) ([]*ProtectedBranch, *Response, error)

ListProtectedBranches gets a list of protected branches from a project.

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

func (*ProtectedBranchesService) ProtectRepositoryBranches added in v0.7.4

func (s *ProtectedBranchesService) ProtectRepositoryBranches(pid any, opt *ProtectRepositoryBranchesOptions, options ...RequestOptionFunc) (*ProtectedBranch, *Response, error)

ProtectRepositoryBranches protects a single repository branch or several project repository branches using a wildcard protected branch.

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

func (*ProtectedBranchesService) UnprotectRepositoryBranches added in v0.7.4

func (s *ProtectedBranchesService) UnprotectRepositoryBranches(pid any, branch string, options ...RequestOptionFunc) (*Response, error)

UnprotectRepositoryBranches unprotects the given protected branch or wildcard protected branch.

GitLab API docs: https://docs.gitlab.com/api/protected_branches/#unprotect-repository-branches

func (*ProtectedBranchesService) UpdateProtectedBranch added in v0.116.0

func (s *ProtectedBranchesService) UpdateProtectedBranch(pid any, branch string, opt *UpdateProtectedBranchOptions, options ...RequestOptionFunc) (*ProtectedBranch, *Response, error)

UpdateProtectedBranch updates a protected branch.

Gitlab API docs: https://docs.gitlab.com/api/protected_branches/#update-a-protected-branch

type ProtectedBranchesServiceInterface added in v0.126.0

type ProtectedBranchesServiceInterface interface {
	ListProtectedBranches(pid any, opt *ListProtectedBranchesOptions, options ...RequestOptionFunc) ([]*ProtectedBranch, *Response, error)
	GetProtectedBranch(pid any, branch string, options ...RequestOptionFunc) (*ProtectedBranch, *Response, error)
	ProtectRepositoryBranches(pid any, opt *ProtectRepositoryBranchesOptions, options ...RequestOptionFunc) (*ProtectedBranch, *Response, error)
	UnprotectRepositoryBranches(pid any, branch string, options ...RequestOptionFunc) (*Response, error)
	UpdateProtectedBranch(pid any, branch string, opt *UpdateProtectedBranchOptions, options ...RequestOptionFunc) (*ProtectedBranch, *Response, error)
}

type ProtectedEnvironment added in v0.116.0

type ProtectedEnvironment struct {
	Name                  string                          `json:"name"`
	DeployAccessLevels    []*EnvironmentAccessDescription `json:"deploy_access_levels"`
	RequiredApprovalCount int                             `json:"required_approval_count"`
	ApprovalRules         []*EnvironmentApprovalRule      `json:"approval_rules"`
}

ProtectedEnvironment represents a protected environment.

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

type ProtectedEnvironmentsService added in v0.116.0

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

ProtectedEnvironmentsService handles communication with the protected environment methods of the GitLab API.

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

func (*ProtectedEnvironmentsService) GetProtectedEnvironment added in v0.116.0

func (s *ProtectedEnvironmentsService) GetProtectedEnvironment(pid any, environment string, options ...RequestOptionFunc) (*ProtectedEnvironment, *Response, error)

GetProtectedEnvironment returns a single protected environment or wildcard protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#get-a-single-protected-environment

func (*ProtectedEnvironmentsService) ListProtectedEnvironments added in v0.116.0

ListProtectedEnvironments returns a list of protected environments from a project.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#list-protected-environments

func (*ProtectedEnvironmentsService) ProtectRepositoryEnvironments added in v0.116.0

ProtectRepositoryEnvironments protects a single repository environment or several project repository environments using wildcard protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#protect-a-single-environment

func (*ProtectedEnvironmentsService) UnprotectEnvironment added in v0.116.0

func (s *ProtectedEnvironmentsService) UnprotectEnvironment(pid any, environment string, options ...RequestOptionFunc) (*Response, error)

UnprotectEnvironment unprotects the given protected environment or wildcard protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#unprotect-a-single-environment

func (*ProtectedEnvironmentsService) UpdateProtectedEnvironments added in v0.116.0

func (s *ProtectedEnvironmentsService) UpdateProtectedEnvironments(pid any, environment string, opt *UpdateProtectedEnvironmentsOptions, options ...RequestOptionFunc) (*ProtectedEnvironment, *Response, error)

UpdateProtectedEnvironments updates a single repository environment or several project repository environments using wildcard protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#update-a-protected-environment

type ProtectedEnvironmentsServiceInterface added in v0.126.0

type ProtectedEnvironmentsServiceInterface interface {
	ListProtectedEnvironments(pid any, opt *ListProtectedEnvironmentsOptions, options ...RequestOptionFunc) ([]*ProtectedEnvironment, *Response, error)
	GetProtectedEnvironment(pid any, environment string, options ...RequestOptionFunc) (*ProtectedEnvironment, *Response, error)
	ProtectRepositoryEnvironments(pid any, opt *ProtectRepositoryEnvironmentsOptions, options ...RequestOptionFunc) (*ProtectedEnvironment, *Response, error)
	UpdateProtectedEnvironments(pid any, environment string, opt *UpdateProtectedEnvironmentsOptions, options ...RequestOptionFunc) (*ProtectedEnvironment, *Response, error)
	UnprotectEnvironment(pid any, environment string, options ...RequestOptionFunc) (*Response, error)
}

type ProtectedTag added in v0.116.0

type ProtectedTag struct {
	Name               string                  `json:"name"`
	CreateAccessLevels []*TagAccessDescription `json:"create_access_levels"`
}

ProtectedTag represents a protected tag.

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

type ProtectedTagsService added in v0.116.0

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

ProtectedTagsService handles communication with the protected tag methods of the GitLab API.

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

func (*ProtectedTagsService) GetProtectedTag added in v0.116.0

func (s *ProtectedTagsService) GetProtectedTag(pid any, tag string, options ...RequestOptionFunc) (*ProtectedTag, *Response, error)

GetProtectedTag returns a single protected tag or wildcard protected tag.

GitLab API docs: https://docs.gitlab.com/api/protected_tags/#get-a-single-protected-tag-or-wildcard-protected-tag

func (*ProtectedTagsService) ListProtectedTags added in v0.116.0

func (s *ProtectedTagsService) ListProtectedTags(pid any, opt *ListProtectedTagsOptions, options ...RequestOptionFunc) ([]*ProtectedTag, *Response, error)

ListProtectedTags returns a list of protected tags from a project.

GitLab API docs: https://docs.gitlab.com/api/protected_tags/#list-protected-tags

func (*ProtectedTagsService) ProtectRepositoryTags added in v0.116.0

func (s *ProtectedTagsService) ProtectRepositoryTags(pid any, opt *ProtectRepositoryTagsOptions, options ...RequestOptionFunc) (*ProtectedTag, *Response, error)

ProtectRepositoryTags protects a single repository tag or several project repository tags using a wildcard protected tag.

GitLab API docs: https://docs.gitlab.com/api/protected_tags/#protect-repository-tags

func (*ProtectedTagsService) UnprotectRepositoryTags added in v0.116.0

func (s *ProtectedTagsService) UnprotectRepositoryTags(pid any, tag string, options ...RequestOptionFunc) (*Response, error)

UnprotectRepositoryTags unprotects the given protected tag or wildcard protected tag.

GitLab API docs: https://docs.gitlab.com/api/protected_tags/#unprotect-repository-tags

type ProtectedTagsServiceInterface added in v0.126.0

type ProtectedTagsServiceInterface interface {
	ListProtectedTags(pid any, opt *ListProtectedTagsOptions, options ...RequestOptionFunc) ([]*ProtectedTag, *Response, error)
	GetProtectedTag(pid any, tag string, options ...RequestOptionFunc) (*ProtectedTag, *Response, error)
	ProtectRepositoryTags(pid any, opt *ProtectRepositoryTagsOptions, options ...RequestOptionFunc) (*ProtectedTag, *Response, error)
	UnprotectRepositoryTags(pid any, tag string, options ...RequestOptionFunc) (*Response, error)
}

type ProtectionRuleAccessLevel added in v0.127.0

type ProtectionRuleAccessLevel string

ProtectionRuleAccessLevel represents the access level for a Container Registry Protection Rule.

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

const (
	ProtectionRuleAccessLevelMaintainer ProtectionRuleAccessLevel = "maintainer"
	ProtectionRuleAccessLevelOwner      ProtectionRuleAccessLevel = "owner"
	ProtectionRuleAccessLevelAdmin      ProtectionRuleAccessLevel = "admin"
)

These constants represent all valid protection rule access levels.

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

type PublishPackageFileOptions added in v0.116.0

type PublishPackageFileOptions struct {
	Status *GenericPackageStatusValue `url:"status,omitempty" json:"status,omitempty"`
	Select *GenericPackageSelectValue `url:"select,omitempty" json:"select,omitempty"`
}

PublishPackageFileOptions represents the available PublishPackageFile() options.

GitLab docs: https://docs.gitlab.com/user/packages/generic_packages/#publish-a-single-file

type PushEvent added in v0.3.1

type PushEvent struct {
	ObjectKind   string `json:"object_kind"`
	EventName    string `json:"event_name"`
	Before       string `json:"before"`
	After        string `json:"after"`
	Ref          string `json:"ref"`
	CheckoutSHA  string `json:"checkout_sha"`
	UserID       int    `json:"user_id"`
	UserName     string `json:"user_name"`
	UserUsername string `json:"user_username"`
	UserEmail    string `json:"user_email"`
	UserAvatar   string `json:"user_avatar"`
	ProjectID    int    `json:"project_id"`
	Project      struct {
		ID                int             `json:"id"`
		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"`
	Commits    []*struct {
		ID        string     `json:"id"`
		Message   string     `json:"message"`
		Title     string     `json:"title"`
		Timestamp *time.Time `json:"timestamp"`
		URL       string     `json:"url"`
		Author    struct {
			Name  string `json:"name"`
			Email string `json:"email"`
		} `json:"author"`
		Added    []string `json:"added"`
		Modified []string `json:"modified"`
		Removed  []string `json:"removed"`
	} `json:"commits"`
	TotalCommitsCount int `json:"total_commits_count"`
}

PushEvent represents a push event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#push-events

type PushSystemEvent added in v0.116.0

type PushSystemEvent struct {
	BaseSystemEvent
	Before       string `json:"before"`
	After        string `json:"after"`
	Ref          string `json:"ref"`
	CheckoutSHA  string `json:"checkout_sha"`
	UserID       int    `json:"user_id"`
	UserName     string `json:"user_name"`
	UserUsername string `json:"user_username"`
	UserEmail    string `json:"user_email"`
	UserAvatar   string `json:"user_avatar"`
	ProjectID    int    `json:"project_id"`
	Project      struct {
		Name              string `json:"name"`
		Description       string `json:"description"`
		WebURL            string `json:"web_url"`
		AvatarURL         string `json:"avatar_url"`
		GitHTTPURL        string `json:"git_http_url"`
		GitSSHURL         string `json:"git_ssh_url"`
		Namespace         string `json:"namespace"`
		VisibilityLevel   int    `json:"visibility_level"`
		PathWithNamespace string `json:"path_with_namespace"`
		DefaultBranch     string `json:"default_branch"`
		Homepage          string `json:"homepage"`
		URL               string `json:"url"`
	} `json:"project"`
	Commits []struct {
		ID        string    `json:"id"`
		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:"commits"`
	TotalCommitsCount int `json:"total_commits_count"`
}

PushSystemEvent represents a push system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#push-events

type QueueMetrics added in v0.8.1

type QueueMetrics struct {
	Queues map[string]struct {
		Backlog int `json:"backlog"`
		Latency int `json:"latency"`
	} `json:"queues"`
}

QueueMetrics represents the GitLab sidekiq queue metrics.

GitLab API docs: https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-queue-metrics

type RateLimiter added in v0.116.0

type RateLimiter interface {
	Wait(context.Context) error
}

RateLimiter describes the interface that all (custom) rate limiters must implement.

type RebaseMergeRequestOptions added in v0.116.0

type RebaseMergeRequestOptions struct {
	SkipCI *bool `url:"skip_ci,omitempty" json:"skip_ci,omitempty"`
}

RebaseMergeRequestOptions represents the available RebaseMergeRequest() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#rebase-a-merge-request

type RecentFailures added in v0.116.0

type RecentFailures struct {
	Count      int    `json:"count"`
	BaseBranch string `json:"base_branch"`
}

RecentFailures contains failures count for the project's default branch.

type RedmineService added in v0.116.0

type RedmineService struct {
	Service
	Properties *RedmineServiceProperties `json:"properties"`
}

RedmineService represents the Redmine service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#redmine

type RedmineServiceProperties added in v0.116.0

type RedmineServiceProperties struct {
	NewIssueURL          string    `json:"new_issue_url"`
	ProjectURL           string    `json:"project_url"`
	IssuesURL            string    `json:"issues_url"`
	UseInheritedSettings BoolValue `json:"use_inherited_settings"`
}

RedmineServiceProperties represents Redmine specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#redmine

type RegisterAgentOptions added in v0.116.0

type RegisterAgentOptions struct {
	Name *string `url:"name,omitempty" json:"name,omitempty"`
}

RegisterAgentOptions represents the available RegisterAgent() options.

GitLab API docs: https://docs.gitlab.com/api/cluster_agents/#register-an-agent-with-a-project

type RegisterNewRunnerInfoOptions added in v0.116.0

type RegisterNewRunnerInfoOptions struct {
	Name         *string `url:"name,omitempty" json:"name,omitempty"`
	Version      *string `url:"version,omitempty" json:"version,omitempty"`
	Revision     *string `url:"revision,omitempty" json:"revision,omitempty"`
	Platform     *string `url:"platform,omitempty" json:"platform,omitempty"`
	Architecture *string `url:"architecture,omitempty" json:"architecture,omitempty"`
}

RegisterNewRunnerInfoOptions represents the info hashmap parameter in RegisterNewRunnerOptions.

GitLab API docs: https://docs.gitlab.com/api/runners/#create-a-runner

type RegisterNewRunnerOptions added in v0.11.0

type RegisterNewRunnerOptions struct {
	Token           *string                       `url:"token" json:"token"`
	Description     *string                       `url:"description,omitempty" json:"description,omitempty"`
	Info            *RegisterNewRunnerInfoOptions `url:"info,omitempty" json:"info,omitempty"`
	Paused          *bool                         `url:"paused,omitempty" json:"paused,omitempty"`
	Locked          *bool                         `url:"locked,omitempty" json:"locked,omitempty"`
	RunUntagged     *bool                         `url:"run_untagged,omitempty" json:"run_untagged,omitempty"`
	TagList         *[]string                     `url:"tag_list[],omitempty" json:"tag_list,omitempty"`
	AccessLevel     *string                       `url:"access_level,omitempty" json:"access_level,omitempty"`
	MaximumTimeout  *int                          `url:"maximum_timeout,omitempty" json:"maximum_timeout,omitempty"`
	MaintenanceNote *string                       `url:"maintenance_note,omitempty" json:"maintenance_note,omitempty"`

	// Deprecated: for removal in v5 of the API, use Paused instead
	Active *bool `url:"active,omitempty" json:"active,omitempty"`
}

RegisterNewRunnerOptions represents the available RegisterNewRunner() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#create-a-runner

type RegistryRepository added in v0.116.0

type RegistryRepository struct {
	ID                     int                      `json:"id"`
	Name                   string                   `json:"name"`
	Path                   string                   `json:"path"`
	ProjectID              int                      `json:"project_id"`
	Location               string                   `json:"location"`
	CreatedAt              *time.Time               `json:"created_at"`
	CleanupPolicyStartedAt *time.Time               `json:"cleanup_policy_started_at"`
	Status                 *ContainerRegistryStatus `json:"status"`
	TagsCount              int                      `json:"tags_count"`
	Tags                   []*RegistryRepositoryTag `json:"tags"`
}

RegistryRepository represents a GitLab content registry repository.

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

func (RegistryRepository) String added in v0.116.0

func (s RegistryRepository) String() string

type RegistryRepositoryTag added in v0.116.0

type RegistryRepositoryTag struct {
	Name          string     `json:"name"`
	Path          string     `json:"path"`
	Location      string     `json:"location"`
	Revision      string     `json:"revision"`
	ShortRevision string     `json:"short_revision"`
	Digest        string     `json:"digest"`
	CreatedAt     *time.Time `json:"created_at"`
	TotalSize     int        `json:"total_size"`
}

RegistryRepositoryTag represents a GitLab registry image tag.

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

func (RegistryRepositoryTag) String added in v0.116.0

func (s RegistryRepositoryTag) String() string

type Release added in v0.10.0

type Release struct {
	TagName         string     `json:"tag_name"`
	Name            string     `json:"name"`
	Description     string     `json:"description"`
	DescriptionHTML string     `json:"description_html"`
	CreatedAt       *time.Time `json:"created_at"`
	ReleasedAt      *time.Time `json:"released_at"`
	Author          struct {
		ID        int    `json:"id"`
		Name      string `json:"name"`
		Username  string `json:"username"`
		State     string `json:"state"`
		AvatarURL string `json:"avatar_url"`
		WebURL    string `json:"web_url"`
	} `json:"author"`
	Commit          Commit              `json:"commit"`
	Milestones      []*ReleaseMilestone `json:"milestones"`
	UpcomingRelease bool                `json:"upcoming_release"`
	CommitPath      string              `json:"commit_path"`
	TagPath         string              `json:"tag_path"`
	Assets          struct {
		Count   int `json:"count"`
		Sources []struct {
			Format string `json:"format"`
			URL    string `json:"url"`
		} `json:"sources"`
		Links            []*ReleaseLink `json:"links"`
		EvidenceFilePath string         `json:"evidence_file_path"`
	} `json:"assets"`
	Evidences []*ReleaseEvidence `json:"evidences"`
	Links     struct {
		ClosedIssueURL     string `json:"closed_issues_url"`
		ClosedMergeRequest string `json:"closed_merge_requests_url"`
		EditURL            string `json:"edit_url"`
		MergedMergeRequest string `json:"merged_merge_requests_url"`
		OpenedIssues       string `json:"opened_issues_url"`
		OpenedMergeRequest string `json:"opened_merge_requests_url"`
		Self               string `json:"self"`
	} `json:"_links"`
}

Release represents a project release.

GitLab API docs: https://docs.gitlab.com/api/releases/#list-releases

type ReleaseAssetLinkOptions added in v0.116.0

type ReleaseAssetLinkOptions struct {
	Name            *string        `url:"name,omitempty" json:"name,omitempty"`
	URL             *string        `url:"url,omitempty" json:"url,omitempty"`
	FilePath        *string        `url:"filepath,omitempty" json:"filepath,omitempty"`
	DirectAssetPath *string        `url:"direct_asset_path,omitempty" json:"direct_asset_path,omitempty"`
	LinkType        *LinkTypeValue `url:"link_type,omitempty" json:"link_type,omitempty"`
}

ReleaseAssetLinkOptions represents release asset link in CreateRelease() options.

GitLab API docs: https://docs.gitlab.com/api/releases/#create-a-release

type ReleaseAssetsOptions added in v0.116.0

type ReleaseAssetsOptions struct {
	Links []*ReleaseAssetLinkOptions `url:"links,omitempty" json:"links,omitempty"`
}

ReleaseAssetsOptions represents release assets in CreateRelease() options.

GitLab API docs: https://docs.gitlab.com/api/releases/#create-a-release

type ReleaseEvent added in v0.116.0

type ReleaseEvent struct {
	ID          int    `json:"id"`
	CreatedAt   string `json:"created_at"` // Should be *time.Time (see Gitlab issue #21468)
	Description string `json:"description"`
	Name        string `json:"name"`
	Tag         string `json:"tag"`
	ReleasedAt  string `json:"released_at"` // Should be *time.Time (see Gitlab issue #21468)
	ObjectKind  string `json:"object_kind"`
	Project     struct {
		ID                int     `json:"id"`
		Name              string  `json:"name"`
		Description       string  `json:"description"`
		WebURL            string  `json:"web_url"`
		AvatarURL         *string `json:"avatar_url"`
		GitSSHURL         string  `json:"git_ssh_url"`
		GitHTTPURL        string  `json:"git_http_url"`
		Namespace         string  `json:"namespace"`
		VisibilityLevel   int     `json:"visibility_level"`
		PathWithNamespace string  `json:"path_with_namespace"`
		DefaultBranch     string  `json:"default_branch"`
		CIConfigPath      string  `json:"ci_config_path"`
		Homepage          string  `json:"homepage"`
		URL               string  `json:"url"`
		SSHURL            string  `json:"ssh_url"`
		HTTPURL           string  `json:"http_url"`
	} `json:"project"`
	URL    string `json:"url"`
	Action string `json:"action"`
	Assets struct {
		Count int `json:"count"`
		Links []struct {
			ID       int    `json:"id"`
			External bool   `json:"external"`
			LinkType string `json:"link_type"`
			Name     string `json:"name"`
			URL      string `json:"url"`
		} `json:"links"`
		Sources []struct {
			Format string `json:"format"`
			URL    string `json:"url"`
		} `json:"sources"`
	} `json:"assets"`
	Commit struct {
		ID        string `json:"id"`
		Message   string `json:"message"`
		Title     string `json:"title"`
		Timestamp string `json:"timestamp"` // Should be *time.Time (see Gitlab issue #21468)
		URL       string `json:"url"`
		Author    struct {
			Name  string `json:"name"`
			Email string `json:"email"`
		} `json:"author"`
	} `json:"commit"`
}

ReleaseEvent represents a release event

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#release-events

type ReleaseEvidence added in v0.121.0

type ReleaseEvidence struct {
	SHA         string     `json:"sha"`
	Filepath    string     `json:"filepath"`
	CollectedAt *time.Time `json:"collected_at"`
}

ReleaseEvidence represents a project release's evidence.

GitLab API docs: https://docs.gitlab.com/api/releases/#list-releases

type ReleaseLink struct {
	ID             int           `json:"id"`
	Name           string        `json:"name"`
	URL            string        `json:"url"`
	DirectAssetURL string        `json:"direct_asset_url"`
	External       bool          `json:"external"`
	LinkType       LinkTypeValue `json:"link_type"`
}

ReleaseLink represents a release link.

GitLab API docs: https://docs.gitlab.com/api/releases/links/

type ReleaseLinksService added in v0.116.0

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

ReleaseLinksService handles communication with the release link methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/releases/links/

func (s *ReleaseLinksService) CreateReleaseLink(pid any, tagName string, opt *CreateReleaseLinkOptions, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)

CreateReleaseLink creates a link.

GitLab API docs: https://docs.gitlab.com/api/releases/links/#create-a-release-link

func (s *ReleaseLinksService) DeleteReleaseLink(pid any, tagName string, link int, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)

DeleteReleaseLink deletes a link from release.

GitLab API docs: https://docs.gitlab.com/api/releases/links/#delete-a-release-link

func (s *ReleaseLinksService) GetReleaseLink(pid any, tagName string, link int, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)

GetReleaseLink returns a link from release assets.

GitLab API docs: https://docs.gitlab.com/api/releases/links/#get-a-release-link

func (s *ReleaseLinksService) ListReleaseLinks(pid any, tagName string, opt *ListReleaseLinksOptions, options ...RequestOptionFunc) ([]*ReleaseLink, *Response, error)

ListReleaseLinks gets assets as links from a Release.

GitLab API docs: https://docs.gitlab.com/api/releases/links/#list-links-of-a-release

func (s *ReleaseLinksService) UpdateReleaseLink(pid any, tagName string, link int, opt *UpdateReleaseLinkOptions, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)

UpdateReleaseLink updates an asset link.

GitLab API docs: https://docs.gitlab.com/api/releases/links/#update-a-release-link

type ReleaseLinksServiceInterface added in v0.126.0

type ReleaseLinksServiceInterface interface {
	ListReleaseLinks(pid any, tagName string, opt *ListReleaseLinksOptions, options ...RequestOptionFunc) ([]*ReleaseLink, *Response, error)
	GetReleaseLink(pid any, tagName string, link int, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)
	CreateReleaseLink(pid any, tagName string, opt *CreateReleaseLinkOptions, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)
	UpdateReleaseLink(pid any, tagName string, link int, opt *UpdateReleaseLinkOptions, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)
	DeleteReleaseLink(pid any, tagName string, link int, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)
}

type ReleaseMilestone added in v0.121.0

type ReleaseMilestone struct {
	ID          int                         `json:"id"`
	IID         int                         `json:"iid"`
	ProjectID   int                         `json:"project_id"`
	Title       string                      `json:"title"`
	Description string                      `json:"description"`
	State       string                      `json:"state"`
	CreatedAt   *time.Time                  `json:"created_at"`
	UpdatedAt   *time.Time                  `json:"updated_at"`
	DueDate     *ISOTime                    `json:"due_date"`
	StartDate   *ISOTime                    `json:"start_date"`
	WebURL      string                      `json:"web_url"`
	IssueStats  *ReleaseMilestoneIssueStats `json:"issue_stats"`
}

ReleaseMilestone represents a project release milestone.

GitLab API docs: https://docs.gitlab.com/api/releases/#list-releases

type ReleaseMilestoneIssueStats added in v0.121.0

type ReleaseMilestoneIssueStats struct {
	Total  int `json:"total"`
	Closed int `json:"closed"`
}

ReleaseMilestoneIssueStats represents a project release milestone's related issues statistics.

GitLab API docs: https://docs.gitlab.com/api/releases/#list-releases

type ReleaseNote added in v0.116.0

type ReleaseNote struct {
	TagName     string `json:"tag_name"`
	Description string `json:"description"`
}

ReleaseNote represents a GitLab version release.

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

type ReleasesService added in v0.116.0

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

ReleasesService handles communication with the releases methods of the GitLab API.

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

func (*ReleasesService) CreateRelease added in v0.116.0

func (s *ReleasesService) CreateRelease(pid any, opts *CreateReleaseOptions, options ...RequestOptionFunc) (*Release, *Response, error)

CreateRelease creates a release.

GitLab API docs: https://docs.gitlab.com/api/releases/#create-a-release

func (*ReleasesService) DeleteRelease added in v0.116.0

func (s *ReleasesService) DeleteRelease(pid any, tagName string, options ...RequestOptionFunc) (*Release, *Response, error)

DeleteRelease deletes a release.

GitLab API docs: https://docs.gitlab.com/api/releases/#delete-a-release

func (*ReleasesService) GetLatestRelease added in v0.116.0

func (s *ReleasesService) GetLatestRelease(pid any, options ...RequestOptionFunc) (*Release, *Response, error)

GetLatestRelease returns the latest release for the project.

GitLab API docs: https://docs.gitlab.com/api/releases/#get-the-latest-release

func (*ReleasesService) GetRelease added in v0.116.0

func (s *ReleasesService) GetRelease(pid any, tagName string, options ...RequestOptionFunc) (*Release, *Response, error)

GetRelease returns a single release, identified by a tag name.

GitLab API docs: https://docs.gitlab.com/api/releases/#get-a-release-by-a-tag-name

func (*ReleasesService) ListReleases added in v0.116.0

func (s *ReleasesService) ListReleases(pid any, opt *ListReleasesOptions, options ...RequestOptionFunc) ([]*Release, *Response, error)

ListReleases gets a pagenated of releases accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/releases/#list-releases

func (*ReleasesService) UpdateRelease added in v0.116.0

func (s *ReleasesService) UpdateRelease(pid any, tagName string, opts *UpdateReleaseOptions, options ...RequestOptionFunc) (*Release, *Response, error)

UpdateRelease updates a release.

GitLab API docs: https://docs.gitlab.com/api/releases/#update-a-release

type ReleasesServiceInterface added in v0.126.0

type ReleasesServiceInterface interface {
	ListReleases(pid any, opt *ListReleasesOptions, options ...RequestOptionFunc) ([]*Release, *Response, error)
	GetRelease(pid any, tagName string, options ...RequestOptionFunc) (*Release, *Response, error)
	GetLatestRelease(pid any, options ...RequestOptionFunc) (*Release, *Response, error)
	CreateRelease(pid any, opts *CreateReleaseOptions, options ...RequestOptionFunc) (*Release, *Response, error)
	UpdateRelease(pid any, tagName string, opts *UpdateReleaseOptions, options ...RequestOptionFunc) (*Release, *Response, error)
	DeleteRelease(pid any, tagName string, options ...RequestOptionFunc) (*Release, *Response, error)
}

type RemoveGroupMemberOptions added in v0.116.0

type RemoveGroupMemberOptions struct {
	SkipSubresources  *bool `url:"skip_subresources,omitempty" json:"skip_subresources,omitempty"`
	UnassignIssuables *bool `url:"unassign_issuables,omitempty" json:"unassign_issuables,omitempty"`
}

RemoveGroupMemberOptions represents the available options to remove a group member.

GitLab API docs: https://docs.gitlab.com/api/members/#remove-a-member-from-a-group-or-project

type RemoveGroupVariableOptions added in v0.124.0

type RemoveGroupVariableOptions struct {
	Filter *VariableFilter `url:"filter,omitempty" json:"filter,omitempty"`
}

RemoveGroupVariableOptions represents the available RemoveVariable() options.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#remove-variable

type RemoveProjectVariableOptions added in v0.116.0

type RemoveProjectVariableOptions struct {
	Filter *VariableFilter `url:"filter,omitempty" json:"filter,omitempty"`
}

RemoveProjectVariableOptions represents the available RemoveVariable() options.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#delete-a-variable

type RenderOptions added in v0.116.0

type RenderOptions struct {
	Text                    *string `url:"text,omitempty" json:"text,omitempty"`
	GitlabFlavouredMarkdown *bool   `url:"gfm,omitempty" json:"gfm,omitempty"`
	Project                 *string `url:"project,omitempty" json:"project,omitempty"`
}

RenderOptions represents the available Render() options.

Gitlab API docs: https://docs.gitlab.com/api/markdown/#render-an-arbitrary-markdown-document

type ReorderIssueOptions added in v0.116.0

type ReorderIssueOptions struct {
	MoveAfterID  *int `url:"move_after_id,omitempty" json:"move_after_id,omitempty"`
	MoveBeforeID *int `url:"move_before_id,omitempty" json:"move_before_id,omitempty"`
}

ReorderIssueOptions represents the available ReorderIssue() options.

GitLab API docs: https://docs.gitlab.com/api/issues/#reorder-an-issue

type RepositoriesService

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

RepositoriesService handles communication with the repositories related methods of the GitLab API.

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

func (*RepositoriesService) AddChangelog added in v0.116.0

func (s *RepositoriesService) AddChangelog(pid any, opt *AddChangelogOptions, options ...RequestOptionFunc) (*Response, error)

AddChangelog generates changelog data based on commits in a repository.

Gitlab API docs: https://docs.gitlab.com/api/repositories/#add-changelog-data-to-a-changelog-file

func (*RepositoriesService) Archive

func (s *RepositoriesService) Archive(pid any, opt *ArchiveOptions, options ...RequestOptionFunc) ([]byte, *Response, error)

Archive gets an archive of the repository.

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

func (*RepositoriesService) Blob added in v0.116.0

func (s *RepositoriesService) Blob(pid any, sha string, options ...RequestOptionFunc) ([]byte, *Response, error)

Blob gets information about blob in repository like size and content. Note that blob content is Base64 encoded.

GitLab API docs: https://docs.gitlab.com/api/repositories/#get-a-blob-from-repository

func (*RepositoriesService) Compare

func (s *RepositoriesService) Compare(pid any, opt *CompareOptions, options ...RequestOptionFunc) (*Compare, *Response, error)

Compare compares branches, tags or commits.

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

func (*RepositoriesService) Contributors

func (s *RepositoriesService) Contributors(pid any, opt *ListContributorsOptions, options ...RequestOptionFunc) ([]*Contributor, *Response, error)

Contributors gets the repository contributors list.

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

func (*RepositoriesService) GenerateChangelogData added in v0.116.0

func (s *RepositoriesService) GenerateChangelogData(pid any, opt GenerateChangelogDataOptions, options ...RequestOptionFunc) (*ChangelogData, *Response, error)

GenerateChangelogData generates changelog data based on commits in a repository, without committing them to a changelog file.

Gitlab API docs: https://docs.gitlab.com/api/repositories/#generate-changelog-data

func (*RepositoriesService) ListTree

func (s *RepositoriesService) ListTree(pid any, opt *ListTreeOptions, options ...RequestOptionFunc) ([]*TreeNode, *Response, error)

ListTree gets a list of repository files and directories in a project.

GitLab API docs: https://docs.gitlab.com/api/repositories/#list-repository-tree

func (*RepositoriesService) MergeBase added in v0.116.0

func (s *RepositoriesService) MergeBase(pid any, opt *MergeBaseOptions, options ...RequestOptionFunc) (*Commit, *Response, error)

MergeBase gets the common ancestor for 2 refs (commit SHAs, branch names or tags).

GitLab API docs: https://docs.gitlab.com/api/repositories/#merge-base

func (*RepositoriesService) RawBlobContent

func (s *RepositoriesService) RawBlobContent(pid any, sha string, options ...RequestOptionFunc) ([]byte, *Response, error)

RawBlobContent gets the raw file contents for a blob by blob SHA.

GitLab API docs: https://docs.gitlab.com/api/repositories/#raw-blob-content

func (*RepositoriesService) StreamArchive added in v0.116.0

func (s *RepositoriesService) StreamArchive(pid any, w io.Writer, opt *ArchiveOptions, options ...RequestOptionFunc) (*Response, error)

StreamArchive streams an archive of the repository to the provided io.Writer.

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

type RepositoriesServiceInterface added in v0.126.0

type RepositoriesServiceInterface interface {
	ListTree(pid any, opt *ListTreeOptions, options ...RequestOptionFunc) ([]*TreeNode, *Response, error)
	Blob(pid any, sha string, options ...RequestOptionFunc) ([]byte, *Response, error)
	RawBlobContent(pid any, sha string, options ...RequestOptionFunc) ([]byte, *Response, error)
	Archive(pid any, opt *ArchiveOptions, options ...RequestOptionFunc) ([]byte, *Response, error)
	StreamArchive(pid any, w io.Writer, opt *ArchiveOptions, options ...RequestOptionFunc) (*Response, error)
	Compare(pid any, opt *CompareOptions, options ...RequestOptionFunc) (*Compare, *Response, error)
	Contributors(pid any, opt *ListContributorsOptions, options ...RequestOptionFunc) ([]*Contributor, *Response, error)
	MergeBase(pid any, opt *MergeBaseOptions, options ...RequestOptionFunc) (*Commit, *Response, error)
	AddChangelog(pid any, opt *AddChangelogOptions, options ...RequestOptionFunc) (*Response, error)
	GenerateChangelogData(pid any, opt GenerateChangelogDataOptions, options ...RequestOptionFunc) (*ChangelogData, *Response, error)
}

type Repository added in v0.3.1

type Repository struct {
	Name              string          `json:"name"`
	Description       string          `json:"description"`
	WebURL            string          `json:"web_url"`
	AvatarURL         string          `json:"avatar_url"`
	GitSSHURL         string          `json:"git_ssh_url"`
	GitHTTPURL        string          `json:"git_http_url"`
	Namespace         string          `json:"namespace"`
	Visibility        VisibilityValue `json:"visibility"`
	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"`
}

Repository represents a repository.

type RepositoryFilesService

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

RepositoryFilesService handles communication with the repository files related methods of the GitLab API.

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

func (*RepositoryFilesService) CreateFile

func (s *RepositoryFilesService) CreateFile(pid any, fileName string, opt *CreateFileOptions, options ...RequestOptionFunc) (*FileInfo, *Response, error)

CreateFile creates a new file in a repository.

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

func (*RepositoryFilesService) DeleteFile

func (s *RepositoryFilesService) DeleteFile(pid any, fileName string, opt *DeleteFileOptions, options ...RequestOptionFunc) (*Response, error)

DeleteFile deletes an existing file in a repository

GitLab API docs: https://docs.gitlab.com/api/repository_files/#delete-existing-file-in-repository

func (*RepositoryFilesService) GetFile

func (s *RepositoryFilesService) GetFile(pid any, fileName string, opt *GetFileOptions, options ...RequestOptionFunc) (*File, *Response, error)

GetFile allows you to receive information about a file in repository like name, size, content. Note that file content is Base64 encoded.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-file-from-repository

func (*RepositoryFilesService) GetFileBlame added in v0.116.0

func (s *RepositoryFilesService) GetFileBlame(pid any, file string, opt *GetFileBlameOptions, options ...RequestOptionFunc) ([]*FileBlameRange, *Response, error)

GetFileBlame allows you to receive blame information. Each blame range contains lines and corresponding commit info.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-file-blame-from-repository

func (*RepositoryFilesService) GetFileMetaData added in v0.116.0

func (s *RepositoryFilesService) GetFileMetaData(pid any, fileName string, opt *GetFileMetaDataOptions, options ...RequestOptionFunc) (*File, *Response, error)

GetFileMetaData allows you to receive meta information about a file in repository like name, size.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-file-from-repository

func (*RepositoryFilesService) GetRawFile added in v0.6.0

func (s *RepositoryFilesService) GetRawFile(pid any, fileName string, opt *GetRawFileOptions, options ...RequestOptionFunc) ([]byte, *Response, error)

GetRawFile gets the contents of a raw file from a repository.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-raw-file-from-repository

func (*RepositoryFilesService) GetRawFileMetaData added in v0.127.0

func (s *RepositoryFilesService) GetRawFileMetaData(pid any, fileName string, opt *GetRawFileOptions, options ...RequestOptionFunc) (*File, *Response, error)

GetRawFileMetaData gets the metadata of a raw file from a repository.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-raw-file-from-repository

func (*RepositoryFilesService) UpdateFile

func (s *RepositoryFilesService) UpdateFile(pid any, fileName string, opt *UpdateFileOptions, options ...RequestOptionFunc) (*FileInfo, *Response, error)

UpdateFile updates an existing file in a repository

GitLab API docs: https://docs.gitlab.com/api/repository_files/#update-existing-file-in-repository

type RepositoryFilesServiceInterface added in v0.126.0

type RepositoryFilesServiceInterface interface {
	GetFile(pid any, fileName string, opt *GetFileOptions, options ...RequestOptionFunc) (*File, *Response, error)
	GetFileMetaData(pid any, fileName string, opt *GetFileMetaDataOptions, options ...RequestOptionFunc) (*File, *Response, error)
	GetFileBlame(pid any, file string, opt *GetFileBlameOptions, options ...RequestOptionFunc) ([]*FileBlameRange, *Response, error)
	GetRawFile(pid any, fileName string, opt *GetRawFileOptions, options ...RequestOptionFunc) ([]byte, *Response, error)
	GetRawFileMetaData(pid any, fileName string, opt *GetRawFileOptions, options ...RequestOptionFunc) (*File, *Response, error)
	CreateFile(pid any, fileName string, opt *CreateFileOptions, options ...RequestOptionFunc) (*FileInfo, *Response, error)
	UpdateFile(pid any, fileName string, opt *UpdateFileOptions, options ...RequestOptionFunc) (*FileInfo, *Response, error)
	DeleteFile(pid any, fileName string, opt *DeleteFileOptions, options ...RequestOptionFunc) (*Response, error)
}

type RepositoryGroup added in v0.116.0

type RepositoryGroup struct {
	ID     int    `json:"id"`
	Name   string `json:"name"`
	WebURL string `json:"web_url"`
}

type RepositoryProject added in v0.116.0

type RepositoryProject 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"`
}

type RepositorySnippet added in v0.116.0

type RepositorySnippet struct {
	ID            int             `json:"id"`
	Title         string          `json:"title"`
	Description   string          `json:"description"`
	Visibility    VisibilityValue `json:"visibility"`
	UpdatedAt     *time.Time      `json:"updated_at"`
	CreatedAt     *time.Time      `json:"created_at"`
	ProjectID     int             `json:"project_id"`
	WebURL        string          `json:"web_url"`
	RawURL        string          `json:"raw_url"`
	SSHURLToRepo  string          `json:"ssh_url_to_repo"`
	HTTPURLToRepo string          `json:"http_url_to_repo"`
}

type RepositorySubmodulesService added in v0.116.0

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

RepositorySubmodulesService handles communication with the repository submodules related methods of the GitLab API.

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

func (*RepositorySubmodulesService) UpdateSubmodule added in v0.116.0

func (s *RepositorySubmodulesService) UpdateSubmodule(pid any, submodule string, opt *UpdateSubmoduleOptions, options ...RequestOptionFunc) (*SubmoduleCommit, *Response, error)

UpdateSubmodule updates an existing submodule reference.

GitLab API docs: https://docs.gitlab.com/api/repository_submodules/#update-existing-submodule-reference-in-repository

type RepositorySubmodulesServiceInterface added in v0.126.0

type RepositorySubmodulesServiceInterface interface {
	UpdateSubmodule(pid any, submodule string, opt *UpdateSubmoduleOptions, options ...RequestOptionFunc) (*SubmoduleCommit, *Response, error)
}

type RepositoryUpdateSystemEvent added in v0.116.0

type RepositoryUpdateSystemEvent struct {
	BaseSystemEvent
	UserID     int    `json:"user_id"`
	UserName   string `json:"user_name"`
	UserEmail  string `json:"user_email"`
	UserAvatar string `json:"user_avatar"`
	ProjectID  int    `json:"project_id"`
	Project    struct {
		ID                int    `json:"id"`
		Name              string `json:"name"`
		Description       string `json:"description"`
		WebURL            string `json:"web_url"`
		AvatarURL         string `json:"avatar_url"`
		GitHTTPURL        string `json:"git_http_url"`
		GitSSHURL         string `json:"git_ssh_url"`
		Namespace         string `json:"namespace"`
		VisibilityLevel   int    `json:"visibility_level"`
		PathWithNamespace string `json:"path_with_namespace"`
		DefaultBranch     string `json:"default_branch"`
		CiConfigPath      string `json:"ci_config_path"`
		Homepage          string `json:"homepage"`
		URL               string `json:"url"`
	} `json:"project"`
	Changes []struct {
		Before string `json:"before"`
		After  string `json:"after"`
		Ref    string `json:"ref"`
	} `json:"changes"`
	Refs []string `json:"refs"`
}

RepositoryUpdateSystemEvent represents a repository updated system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#repository-update-events

type RequestOptionFunc added in v0.116.0

type RequestOptionFunc func(*retryablehttp.Request) error

RequestOptionFunc can be passed to all API requests to customize the API request.

func WithContext added in v0.5.0

func WithContext(ctx context.Context) RequestOptionFunc

WithContext runs the request with the provided context

func WithHeader added in v0.116.0

func WithHeader(name, value string) RequestOptionFunc

WithHeader takes a header name and value and appends it to the request headers.

func WithHeaders added in v0.116.0

func WithHeaders(headers map[string]string) RequestOptionFunc

WithHeaders takes a map of header name/value pairs and appends them to the request headers.

func WithKeysetPaginationParameters added in v0.116.0

func WithKeysetPaginationParameters(nextLink string) RequestOptionFunc

WithKeysetPaginationParameters takes a "next" link from the Link header of a response to a keyset-based paginated request and modifies the values of each query parameter in the request with its corresponding response parameter.

func WithOffsetPaginationParameters added in v0.128.0

func WithOffsetPaginationParameters(page int) RequestOptionFunc

WithOffsetPaginationParameters takes a page number and modifies the request to use that page for offset-based pagination, overriding any existing page value.

func WithRequestRetry added in v0.129.0

func WithRequestRetry(checkRetry retryablehttp.CheckRetry) RequestOptionFunc

WithRequestRetry takes a `retryablehttp.CheckRetry` which is then used when making this one request.

Example (CreateMergeRequestAndSetAutoMerge)
git, err := NewClient("yourtokengoeshere")
if err != nil {
	log.Fatal(err)
}

projectName := "example/example"

// Create a new Merge Request
mr, _, err := git.MergeRequests.CreateMergeRequest(projectName, &CreateMergeRequestOptions{
	SourceBranch:       Ptr("my-topic-branch"),
	TargetBranch:       Ptr("main"),
	Title:              Ptr("New MergeRequest"),
	Description:        Ptr("New MergeRequest"),
	RemoveSourceBranch: Ptr(true),
})
if err != nil {
	log.Fatal(err)
}

// Set auto-merge to created Merge Request
// c.f. https://docs.gitlab.com/user/project/merge_requests/auto_merge/
_, _, err = git.MergeRequests.AcceptMergeRequest(
	projectName, mr.IID, &AcceptMergeRequestOptions{MergeWhenPipelineSucceeds: Ptr(true)},

	// client-go provides retries on rate limit (429) and server (>= 500) errors by default.
	//
	// But Method Not Allowed (405) and Unprocessable Content (422) errors will be returned
	// when AcceptMergeRequest is called immediately after CreateMergeRequest.
	//
	// c.f. https://docs.gitlab.com/api/merge_requests/#merge-a-merge-request
	//
	// Therefore, add a retryable status code only for AcceptMergeRequest calls
	WithRequestRetry(func(ctx context.Context, resp *http.Response, err error) (bool, error) {
		if ctx.Err() != nil {
			return false, ctx.Err()
		}
		if err != nil {
			return false, err
		}
		if resp.StatusCode == http.StatusTooManyRequests || resp.StatusCode >= http.StatusInternalServerError || resp.StatusCode == http.StatusMethodNotAllowed || resp.StatusCode == http.StatusUnprocessableEntity {
			return true, nil
		}
		return false, nil
	}),
)
if err != nil {
	log.Fatal(err)
}

func WithSudo added in v0.4.0

func WithSudo(uid any) RequestOptionFunc

WithSudo takes either a username or user ID and sets the SUDO request header.

func WithToken added in v0.116.0

func WithToken(authType AuthType, token string) RequestOptionFunc

WithToken takes a token which is then used when making this one request.

type ResolveMergeRequestDiscussionOptions added in v0.11.2

type ResolveMergeRequestDiscussionOptions struct {
	Resolved *bool `url:"resolved,omitempty" json:"resolved,omitempty"`
}

ResolveMergeRequestDiscussionOptions represents the available ResolveMergeRequestDiscussion() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#resolve-a-merge-request-thread

type ResourceGroup added in v0.116.0

type ResourceGroup struct {
	ID          int        `json:"id"`
	Key         string     `json:"key"`
	ProcessMode string     `json:"process_mode"`
	CreatedAt   *time.Time `json:"created_at"`
	UpdatedAt   *time.Time `json:"updated_at"`
}

ResourceGrouop represents a GitLab Project Resource Group.

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

func (ResourceGroup) String added in v0.116.0

func (rg ResourceGroup) String() string

Gets a string representation of a ResourceGroup

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

type ResourceGroupProcessMode added in v0.116.0

type ResourceGroupProcessMode string

ResourceGroupProcessMode represents a process mode for a resource group within a GitLab project.

GitLab API docs: https://docs.gitlab.com/ci/resource_groups/#process-modes

const (
	Unordered   ResourceGroupProcessMode = "unordered"
	OldestFirst ResourceGroupProcessMode = "oldest_first"
	NewestFirst ResourceGroupProcessMode = "newest_first"
)

List of available resource group process modes.

GitLab API docs: https://docs.gitlab.com/ci/resource_groups/#process-modes

type ResourceGroupService added in v0.116.0

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

ResourceGroupService handles communication with the resource group related methods of the GitLab API.

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

func (*ResourceGroupService) EditAnExistingResourceGroup added in v0.116.0

func (s *ResourceGroupService) EditAnExistingResourceGroup(pid any, key string, opts *EditAnExistingResourceGroupOptions, options ...RequestOptionFunc) (*ResourceGroup, *Response, error)

EditAnExistingResourceGroup allows you to edit a specific resource group for a given project

GitLab API docs: https://docs.gitlab.com/api/resource_groups/#edit-an-existing-resource-group

func (*ResourceGroupService) GetASpecificResourceGroup added in v0.116.0

func (s *ResourceGroupService) GetASpecificResourceGroup(pid any, key string, options ...RequestOptionFunc) (*ResourceGroup, *Response, error)

GetASpecificResourceGroup allows you to get a specific resource group for a given project.

GitLab API docs: https://docs.gitlab.com/api/resource_groups/#get-a-specific-resource-group

func (*ResourceGroupService) GetAllResourceGroupsForAProject added in v0.116.0

func (s *ResourceGroupService) GetAllResourceGroupsForAProject(pid any, options ...RequestOptionFunc) ([]*ResourceGroup, *Response, error)

GetAllResourceGroupsForAProject allows you to get all resource groups associated with a given project.

GitLab API docs: https://docs.gitlab.com/api/resource_groups/#get-all-resource-groups-for-a-project

func (*ResourceGroupService) ListUpcomingJobsForASpecificResourceGroup added in v0.116.0

func (s *ResourceGroupService) ListUpcomingJobsForASpecificResourceGroup(pid any, key string, options ...RequestOptionFunc) ([]*Job, *Response, error)

ListUpcomingJobsForASpecificResourceGroup allows you to get all upcoming jobs for a specific resource group for a given project.

GitLab API docs: https://docs.gitlab.com/api/resource_groups/#list-upcoming-jobs-for-a-specific-resource-group

type ResourceGroupServiceInterface added in v0.126.0

type ResourceGroupServiceInterface interface {
	GetAllResourceGroupsForAProject(pid any, options ...RequestOptionFunc) ([]*ResourceGroup, *Response, error)
	GetASpecificResourceGroup(pid any, key string, options ...RequestOptionFunc) (*ResourceGroup, *Response, error)
	ListUpcomingJobsForASpecificResourceGroup(pid any, key string, options ...RequestOptionFunc) ([]*Job, *Response, error)
	EditAnExistingResourceGroup(pid any, key string, opts *EditAnExistingResourceGroupOptions, options ...RequestOptionFunc) (*ResourceGroup, *Response, error)
}

type ResourceIterationEventsService added in v0.116.0

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

ResourceIterationEventsService handles communication with the event related methods of the GitLab API.

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

func (*ResourceIterationEventsService) GetIssueIterationEvent added in v0.116.0

func (s *ResourceIterationEventsService) GetIssueIterationEvent(pid any, issue int, event int, options ...RequestOptionFunc) (*IterationEvent, *Response, error)

GetIssueIterationEvent gets a single issue iteration event.

GitLab API docs: https://docs.gitlab.com/api/resource_iteration_events/#get-single-issue-iteration-event

func (*ResourceIterationEventsService) ListIssueIterationEvents added in v0.116.0

func (s *ResourceIterationEventsService) ListIssueIterationEvents(pid any, issue int, opt *ListIterationEventsOptions, options ...RequestOptionFunc) ([]*IterationEvent, *Response, error)

ListIssueIterationEvents retrieves resource iteration events for the specified project and issue.

GitLab API docs: https://docs.gitlab.com/api/resource_iteration_events/#list-project-issue-iteration-events

type ResourceIterationEventsServiceInterface added in v0.126.0

type ResourceIterationEventsServiceInterface interface {
	ListIssueIterationEvents(pid any, issue int, opt *ListIterationEventsOptions, options ...RequestOptionFunc) ([]*IterationEvent, *Response, error)
	GetIssueIterationEvent(pid any, issue int, event int, options ...RequestOptionFunc) (*IterationEvent, *Response, error)
}

type ResourceLabelEventsService added in v0.116.0

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

ResourceLabelEventsService handles communication with the event related methods of the GitLab API.

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

func (*ResourceLabelEventsService) GetGroupEpicLabelEvent added in v0.116.0

func (s *ResourceLabelEventsService) GetGroupEpicLabelEvent(gid any, epic int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error)

GetGroupEpicLabelEvent gets a single group epic label event. Will be removed in v5, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/resource_label_events/#get-single-epic-label-event

func (*ResourceLabelEventsService) GetIssueLabelEvent added in v0.116.0

func (s *ResourceLabelEventsService) GetIssueLabelEvent(pid any, issue int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error)

GetIssueLabelEvent gets a single issue-label-event.

GitLab API docs: https://docs.gitlab.com/api/resource_label_events/#get-single-issue-label-event

func (*ResourceLabelEventsService) GetMergeRequestLabelEvent added in v0.116.0

func (s *ResourceLabelEventsService) GetMergeRequestLabelEvent(pid any, request int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error)

GetMergeRequestLabelEvent gets a single merge request label event.

GitLab API docs: https://docs.gitlab.com/api/resource_label_events/#get-single-merge-request-label-event

func (*ResourceLabelEventsService) ListGroupEpicLabelEvents added in v0.116.0

func (s *ResourceLabelEventsService) ListGroupEpicLabelEvents(gid any, epic int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error)

ListGroupEpicLabelEvents retrieves resource label events for the specified group and epic. Will be removed in v5, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/resource_label_events/#list-group-epic-label-events

func (*ResourceLabelEventsService) ListIssueLabelEvents added in v0.116.0

func (s *ResourceLabelEventsService) ListIssueLabelEvents(pid any, issue int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error)

ListIssueLabelEvents retrieves resource label events for the specified project and issue.

GitLab API docs: https://docs.gitlab.com/api/resource_label_events/#list-project-issue-label-events

func (*ResourceLabelEventsService) ListMergeRequestsLabelEvents added in v0.116.0

func (s *ResourceLabelEventsService) ListMergeRequestsLabelEvents(pid any, request int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error)

ListMergeRequestsLabelEvents retrieves resource label events for the specified project and merge request.

GitLab API docs: https://docs.gitlab.com/api/resource_label_events/#list-project-merge-request-label-events

type ResourceLabelEventsServiceInterface added in v0.126.0

type ResourceLabelEventsServiceInterface interface {
	ListIssueLabelEvents(pid any, issue int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error)
	GetIssueLabelEvent(pid any, issue int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error)
	ListMergeRequestsLabelEvents(pid any, request int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error)
	GetMergeRequestLabelEvent(pid any, request int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error)

	// Will be removed in v5, use Work Items API instead
	ListGroupEpicLabelEvents(gid any, epic int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error)
	// Will be removed in v5, use Work Items API instead
	GetGroupEpicLabelEvent(gid any, epic int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error)
}

type ResourceMilestoneEventsService added in v0.116.0

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

ResourceMilestoneEventsService handles communication with the event related methods of the GitLab API.

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

func (*ResourceMilestoneEventsService) GetIssueMilestoneEvent added in v0.116.0

func (s *ResourceMilestoneEventsService) GetIssueMilestoneEvent(pid any, issue int, event int, options ...RequestOptionFunc) (*MilestoneEvent, *Response, error)

GetIssueMilestoneEvent gets a single issue milestone event.

GitLab API docs: https://docs.gitlab.com/api/resource_milestone_events/#get-single-issue-milestone-event

func (*ResourceMilestoneEventsService) GetMergeRequestMilestoneEvent added in v0.116.0

func (s *ResourceMilestoneEventsService) GetMergeRequestMilestoneEvent(pid any, request int, event int, options ...RequestOptionFunc) (*MilestoneEvent, *Response, error)

GetMergeRequestMilestoneEvent gets a single merge request milestone event.

GitLab API docs: https://docs.gitlab.com/api/resource_milestone_events/#get-single-merge-request-milestone-event

func (*ResourceMilestoneEventsService) ListIssueMilestoneEvents added in v0.116.0

func (s *ResourceMilestoneEventsService) ListIssueMilestoneEvents(pid any, issue int, opt *ListMilestoneEventsOptions, options ...RequestOptionFunc) ([]*MilestoneEvent, *Response, error)

ListIssueMilestoneEvents retrieves resource milestone events for the specified project and issue.

GitLab API docs: https://docs.gitlab.com/api/resource_milestone_events/#list-project-issue-milestone-events

func (*ResourceMilestoneEventsService) ListMergeMilestoneEvents added in v0.116.0

func (s *ResourceMilestoneEventsService) ListMergeMilestoneEvents(pid any, request int, opt *ListMilestoneEventsOptions, options ...RequestOptionFunc) ([]*MilestoneEvent, *Response, error)

ListMergeMilestoneEvents retrieves resource milestone events for the specified project and merge request.

GitLab API docs: https://docs.gitlab.com/api/resource_milestone_events/#list-project-merge-request-milestone-events

type ResourceMilestoneEventsServiceInterface added in v0.126.0

type ResourceMilestoneEventsServiceInterface interface {
	ListIssueMilestoneEvents(pid any, issue int, opt *ListMilestoneEventsOptions, options ...RequestOptionFunc) ([]*MilestoneEvent, *Response, error)
	GetIssueMilestoneEvent(pid any, issue int, event int, options ...RequestOptionFunc) (*MilestoneEvent, *Response, error)
	ListMergeMilestoneEvents(pid any, request int, opt *ListMilestoneEventsOptions, options ...RequestOptionFunc) ([]*MilestoneEvent, *Response, error)
	GetMergeRequestMilestoneEvent(pid any, request int, event int, options ...RequestOptionFunc) (*MilestoneEvent, *Response, error)
}

type ResourceStateEventsService added in v0.116.0

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

ResourceStateEventsService handles communication with the event related methods of the GitLab API.

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

func (*ResourceStateEventsService) GetIssueStateEvent added in v0.116.0

func (s *ResourceStateEventsService) GetIssueStateEvent(pid any, issue int, event int, options ...RequestOptionFunc) (*StateEvent, *Response, error)

GetIssueStateEvent gets a single issue-state-event.

GitLab API docs: https://docs.gitlab.com/api/resource_state_events/#get-single-issue-state-event

func (*ResourceStateEventsService) GetMergeRequestStateEvent added in v0.116.0

func (s *ResourceStateEventsService) GetMergeRequestStateEvent(pid any, request int, event int, options ...RequestOptionFunc) (*StateEvent, *Response, error)

GetMergeRequestStateEvent gets a single merge request state event.

GitLab API docs: https://docs.gitlab.com/api/resource_state_events/#get-single-merge-request-state-event

func (*ResourceStateEventsService) ListIssueStateEvents added in v0.116.0

func (s *ResourceStateEventsService) ListIssueStateEvents(pid any, issue int, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error)

ListIssueStateEvents retrieves resource state events for the specified project and issue.

GitLab API docs: https://docs.gitlab.com/api/resource_state_events/#list-project-issue-state-events

func (*ResourceStateEventsService) ListMergeStateEvents added in v0.116.0

func (s *ResourceStateEventsService) ListMergeStateEvents(pid any, request int, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error)

ListMergeStateEvents retrieves resource state events for the specified project and merge request.

GitLab API docs: https://docs.gitlab.com/api/resource_state_events/#list-project-merge-request-state-events

type ResourceStateEventsServiceInterface added in v0.126.0

type ResourceStateEventsServiceInterface interface {
	ListIssueStateEvents(pid any, issue int, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error)
	GetIssueStateEvent(pid any, issue int, event int, options ...RequestOptionFunc) (*StateEvent, *Response, error)
	ListMergeStateEvents(pid any, request int, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error)
	GetMergeRequestStateEvent(pid any, request int, event int, options ...RequestOptionFunc) (*StateEvent, *Response, error)
}

type ResourceType added in v0.129.0

type ResourceType string

ResourceType represents the type of resource (project or group)

const (
	ProjectResource ResourceType = "projects"
	GroupResource   ResourceType = "groups"
)

type ResourceWeightEventsService added in v0.116.0

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

ResourceWeightEventsService handles communication with the event related methods of the GitLab API.

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

func (*ResourceWeightEventsService) ListIssueWeightEvents added in v0.116.0

func (s *ResourceWeightEventsService) ListIssueWeightEvents(pid any, issue int, opt *ListWeightEventsOptions, options ...RequestOptionFunc) ([]*WeightEvent, *Response, error)

ListIssueWeightEvents retrieves resource weight events for the specified project and issue.

GitLab API docs: https://docs.gitlab.com/api/resource_weight_events/#list-project-issue-weight-events

type ResourceWeightEventsServiceInterface added in v0.126.0

type ResourceWeightEventsServiceInterface interface {
	ListIssueWeightEvents(pid any, issue int, opt *ListWeightEventsOptions, options ...RequestOptionFunc) ([]*WeightEvent, *Response, error)
}

type Response

type Response struct {
	*http.Response

	// Fields used for offset-based pagination.
	TotalItems   int
	TotalPages   int
	ItemsPerPage int
	CurrentPage  int
	NextPage     int
	PreviousPage int

	// Fields used for keyset-based pagination.
	PreviousLink string
	NextLink     string
	FirstLink    string
	LastLink     string
}

Response is a GitLab API response. This wraps the standard http.Response returned from GitLab and provides convenient access to things like pagination links.

type RetrieveAllGroupStorageMovesOptions added in v0.116.0

type RetrieveAllGroupStorageMovesOptions ListOptions

RetrieveAllGroupStorageMovesOptions represents the available RetrieveAllStorageMoves() options.

GitLab API docs: https://docs.gitlab.com/api/group_repository_storage_moves/#retrieve-all-group-repository-storage-moves

type RetrieveAllProjectStorageMovesOptions added in v0.116.0

type RetrieveAllProjectStorageMovesOptions ListOptions

RetrieveAllProjectStorageMovesOptions represents the available RetrieveAllStorageMoves() options.

GitLab API docs: https://docs.gitlab.com/api/project_repository_storage_moves/#retrieve-all-project-repository-storage-moves

type RetrieveAllSnippetStorageMovesOptions added in v0.116.0

type RetrieveAllSnippetStorageMovesOptions ListOptions

RetrieveAllSnippetStorageMovesOptions represents the available RetrieveAllStorageMoves() options.

GitLab API docs: https://docs.gitlab.com/api/snippet_repository_storage_moves/#retrieve-all-snippet-repository-storage-moves https://docs.gitlab.com/api/snippet_repository_storage_moves/#retrieve-all-repository-storage-moves-for-a-snippet

type RevertCommitOptions added in v0.116.0

type RevertCommitOptions struct {
	Branch *string `url:"branch,omitempty" json:"branch,omitempty"`
}

RevertCommitOptions represents the available RevertCommit() options.

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

type ReviewerIDValue added in v0.116.0

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

ReviewerIDValue represents a reviewer ID value within GitLab.

func ReviewerID added in v0.116.0

func ReviewerID(v any) *ReviewerIDValue

ReviewerID is a helper routine that creates a new ReviewerIDValue.

func (*ReviewerIDValue) EncodeValues added in v0.116.0

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

EncodeValues implements the query.Encoder interface.

func (ReviewerIDValue) MarshalJSON added in v0.116.0

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

MarshalJSON implements the json.Marshaler interface.

func (*ReviewerIDValue) UnmarshalJSON added in v0.116.0

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

UnmarshalJSON implements the json.Unmarshaler interface.

type RotateGroupAccessTokenOptions added in v0.116.0

type RotateGroupAccessTokenOptions struct {
	ExpiresAt *ISOTime `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

RotateGroupAccessTokenOptions represents the available RotateGroupAccessToken() options.

GitLab API docs: https://docs.gitlab.com/api/group_access_tokens/#rotate-a-group-access-token

type RotatePersonalAccessTokenOptions added in v0.116.0

type RotatePersonalAccessTokenOptions struct {
	ExpiresAt *ISOTime `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

RotatePersonalAccessTokenOptions represents the available RotatePersonalAccessToken() options.

GitLab API docs: https://docs.gitlab.com/api/personal_access_tokens/#rotate-a-personal-access-token

type RotateProjectAccessTokenOptions added in v0.116.0

type RotateProjectAccessTokenOptions struct {
	ExpiresAt *ISOTime `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

RotateProjectAccessTokenOptions represents the available RotateProjectAccessToken() options.

GitLab API docs: https://docs.gitlab.com/api/project_access_tokens/#rotate-a-project-access-token

type RotateServiceAccountPersonalAccessTokenOptions added in v0.123.0

type RotateServiceAccountPersonalAccessTokenOptions struct {
	ExpiresAt *ISOTime `url:"expires_at,omitempty" json:"expires_at,omitempty"`
}

RotateServiceAccountPersonalAccessTokenOptions represents the available RotateServiceAccountPersonalAccessToken() options.

GitLab API docs: https://docs.gitlab.com/api/group_service_accounts/#rotate-a-personal-access-token-for-a-service-account-user

type RunPipelineTriggerOptions added in v0.7.0

type RunPipelineTriggerOptions struct {
	Ref       *string           `url:"ref" json:"ref"`
	Token     *string           `url:"token" json:"token"`
	Variables map[string]string `url:"variables,omitempty" json:"variables,omitempty"`
}

RunPipelineTriggerOptions represents the available RunPipelineTrigger() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_triggers/#trigger-a-pipeline-with-a-token

type Runner added in v0.7.5

type Runner struct {
	ID             int        `json:"id"`
	Description    string     `json:"description"`
	Paused         bool       `json:"paused"`
	IsShared       bool       `json:"is_shared"`
	RunnerType     string     `json:"runner_type"`
	Name           string     `json:"name"`
	Online         bool       `json:"online"`
	Status         string     `json:"status"`
	Token          string     `json:"token"`
	TokenExpiresAt *time.Time `json:"token_expires_at"`

	// Deprecated: for removal in v5 of the API, use Paused instead
	Active bool `json:"active"`

	// Deprecated: for removal in v5 of the API, returns an empty string from 17.0 onwards, see GraphQL resource CiRunnerManager instead
	IPAddress string `json:"ip_address"`
}

Runner represents a GitLab CI Runner.

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

type RunnerAuthenticationToken added in v0.116.0

type RunnerAuthenticationToken struct {
	Token          *string    `url:"token" json:"token"`
	TokenExpiresAt *time.Time `url:"token_expires_at" json:"token_expires_at"`
}

type RunnerDetails added in v0.8.0

type RunnerDetails struct {
	Paused          bool       `json:"paused"`
	Description     string     `json:"description"`
	ID              int        `json:"id"`
	IsShared        bool       `json:"is_shared"`
	RunnerType      string     `json:"runner_type"`
	ContactedAt     *time.Time `json:"contacted_at"`
	MaintenanceNote string     `json:"maintenance_note"`
	Name            string     `json:"name"`
	Online          bool       `json:"online"`
	Status          string     `json:"status"`
	Projects        []struct {
		ID                int    `json:"id"`
		Name              string `json:"name"`
		NameWithNamespace string `json:"name_with_namespace"`
		Path              string `json:"path"`
		PathWithNamespace string `json:"path_with_namespace"`
	} `json:"projects"`
	Token          string   `json:"token"`
	TagList        []string `json:"tag_list"`
	RunUntagged    bool     `json:"run_untagged"`
	Locked         bool     `json:"locked"`
	AccessLevel    string   `json:"access_level"`
	MaximumTimeout int      `json:"maximum_timeout"`
	Groups         []struct {
		ID     int    `json:"id"`
		Name   string `json:"name"`
		WebURL string `json:"web_url"`
	} `json:"groups"`

	// Deprecated: for removal in v5 of the API, see GraphQL resource CiRunnerManager instead
	Architecture string `json:"architecture"`

	// Deprecated: for removal in v5 of the API, returns an empty string from 17.0 onwards, see GraphQL resource CiRunnerManager instead
	IPAddress string `json:"ip_address"`

	// Deprecated: for removal in v5 of the API, see GraphQL resource CiRunnerManager instead
	Platform string `json:"platform"`

	// Deprecated: for removal in v5 of the API, see GraphQL resource CiRunnerManager instead
	Revision string `json:"revision"`

	// Deprecated: for removal in v5 of the API, see GraphQL resource CiRunnerManager instead
	Version string `json:"version"`

	// Deprecated: for removal in v5 of the API, use Paused instead
	Active bool `json:"active"`
}

RunnerDetails represents the GitLab CI runner details.

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

type RunnerRegistrationToken added in v0.116.0

type RunnerRegistrationToken struct {
	Token          *string    `url:"token" json:"token"`
	TokenExpiresAt *time.Time `url:"token_expires_at" json:"token_expires_at"`
}

type RunnersService added in v0.7.5

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

RunnersService handles communication with the runner related methods of the GitLab API.

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

func (*RunnersService) DeleteRegisteredRunner added in v0.11.0

func (s *RunnersService) DeleteRegisteredRunner(opt *DeleteRegisteredRunnerOptions, options ...RequestOptionFunc) (*Response, error)

DeleteRegisteredRunner deletes a Runner by Token.

GitLab API docs: https://docs.gitlab.com/api/runners/#delete-a-runner-by-authentication-token

func (*RunnersService) DeleteRegisteredRunnerByID added in v0.116.0

func (s *RunnersService) DeleteRegisteredRunnerByID(rid int, options ...RequestOptionFunc) (*Response, error)

DeleteRegisteredRunnerByID deletes a runner by ID.

GitLab API docs: https://docs.gitlab.com/api/runners/#delete-a-runner-by-id

func (*RunnersService) DisableProjectRunner added in v0.8.0

func (s *RunnersService) DisableProjectRunner(pid any, runner int, options ...RequestOptionFunc) (*Response, error)

DisableProjectRunner disables a specific runner from project.

GitLab API docs: https://docs.gitlab.com/api/runners/#unassign-a-runner-from-project

func (*RunnersService) EnableProjectRunner added in v0.7.5

func (s *RunnersService) EnableProjectRunner(pid any, opt *EnableProjectRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error)

EnableProjectRunner enables an available specific runner in the project.

GitLab API docs: https://docs.gitlab.com/api/runners/#assign-a-runner-to-project

func (*RunnersService) GetRunnerDetails added in v0.8.0

func (s *RunnersService) GetRunnerDetails(rid any, options ...RequestOptionFunc) (*RunnerDetails, *Response, error)

GetRunnerDetails returns details for given runner.

GitLab API docs: https://docs.gitlab.com/api/runners/#get-runners-details

func (*RunnersService) ListAllRunners added in v0.7.5

func (s *RunnersService) ListAllRunners(opt *ListRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)

ListAllRunners gets a list of all runners in the GitLab instance. Access is restricted to users with admin privileges.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-all-runners

func (*RunnersService) ListGroupsRunners added in v0.116.0

func (s *RunnersService) ListGroupsRunners(gid any, opt *ListGroupsRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)

ListGroupsRunners lists all runners (specific and shared) available in the group as well it’s ancestor groups. Shared runners are listed if at least one shared runner is defined.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-groups-runners

func (*RunnersService) ListProjectRunners added in v0.7.5

func (s *RunnersService) ListProjectRunners(pid any, opt *ListProjectRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)

ListProjectRunners gets a list of runners accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-projects-runners

func (*RunnersService) ListRunnerJobs added in v0.8.0

func (s *RunnersService) ListRunnerJobs(rid any, opt *ListRunnerJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)

ListRunnerJobs gets a list of jobs that are being processed or were processed by specified Runner.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-jobs-processed-by-a-runner

func (*RunnersService) ListRunners added in v0.7.5

func (s *RunnersService) ListRunners(opt *ListRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)

ListRunners gets a list of runners accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-owned-runners

func (*RunnersService) RegisterNewRunner added in v0.11.0

func (s *RunnersService) RegisterNewRunner(opt *RegisterNewRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error)

RegisterNewRunner registers a new Runner for the instance.

GitLab API docs: https://docs.gitlab.com/api/runners/#create-a-runner

func (*RunnersService) RemoveRunner added in v0.8.0

func (s *RunnersService) RemoveRunner(rid any, options ...RequestOptionFunc) (*Response, error)

RemoveRunner removes a runner.

GitLab API docs: https://docs.gitlab.com/api/runners/#delete-a-runner

func (*RunnersService) ResetGroupRunnerRegistrationToken added in v0.116.0

func (s *RunnersService) ResetGroupRunnerRegistrationToken(gid any, options ...RequestOptionFunc) (*RunnerRegistrationToken, *Response, error)

ResetGroupRunnerRegistrationToken resets a group's runner registration token. Deprecated: for removal in GitLab 20.0, see https://docs.gitlab.com/ci/runners/new_creation_workflow/ instead

GitLab API docs: https://docs.gitlab.com/api/runners/#reset-groups-runner-registration-token

func (*RunnersService) ResetInstanceRunnerRegistrationToken added in v0.116.0

func (s *RunnersService) ResetInstanceRunnerRegistrationToken(options ...RequestOptionFunc) (*RunnerRegistrationToken, *Response, error)

ResetInstanceRunnerRegistrationToken resets the instance runner registration token. Deprecated: for removal in GitLab 20.0, see https://docs.gitlab.com/ci/runners/new_creation_workflow/ instead

GitLab API docs: https://docs.gitlab.com/api/runners/#reset-instances-runner-registration-token

func (*RunnersService) ResetProjectRunnerRegistrationToken added in v0.116.0

func (s *RunnersService) ResetProjectRunnerRegistrationToken(pid any, options ...RequestOptionFunc) (*RunnerRegistrationToken, *Response, error)

ResetProjectRunnerRegistrationToken resets a projects's runner registration token. Deprecated: for removal in GitLab 20.0, see https://docs.gitlab.com/ci/runners/new_creation_workflow/ instead

GitLab API docs: https://docs.gitlab.com/api/runners/#reset-projects-runner-registration-token

func (*RunnersService) ResetRunnerAuthenticationToken added in v0.116.0

func (s *RunnersService) ResetRunnerAuthenticationToken(rid int, options ...RequestOptionFunc) (*RunnerAuthenticationToken, *Response, error)

ResetRunnerAuthenticationToken resets a runner's authentication token.

GitLab API docs: https://docs.gitlab.com/api/runners/#reset-runners-authentication-token-by-using-the-runner-id

func (*RunnersService) UpdateRunnerDetails added in v0.8.0

func (s *RunnersService) UpdateRunnerDetails(rid any, opt *UpdateRunnerDetailsOptions, options ...RequestOptionFunc) (*RunnerDetails, *Response, error)

UpdateRunnerDetails updates details for a given runner.

GitLab API docs: https://docs.gitlab.com/api/runners/#update-runners-details

func (*RunnersService) VerifyRegisteredRunner added in v0.11.0

func (s *RunnersService) VerifyRegisteredRunner(opt *VerifyRegisteredRunnerOptions, options ...RequestOptionFunc) (*Response, error)

VerifyRegisteredRunner registers a new runner for the instance.

GitLab API docs: https://docs.gitlab.com/api/runners/#verify-authentication-for-a-registered-runner

type RunnersServiceInterface added in v0.126.0

type RunnersServiceInterface interface {
	ListRunners(opt *ListRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)
	ListAllRunners(opt *ListRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)
	GetRunnerDetails(rid any, options ...RequestOptionFunc) (*RunnerDetails, *Response, error)
	UpdateRunnerDetails(rid any, opt *UpdateRunnerDetailsOptions, options ...RequestOptionFunc) (*RunnerDetails, *Response, error)
	RemoveRunner(rid any, options ...RequestOptionFunc) (*Response, error)
	ListRunnerJobs(rid any, opt *ListRunnerJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)
	ListProjectRunners(pid any, opt *ListProjectRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)
	EnableProjectRunner(pid any, opt *EnableProjectRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error)
	DisableProjectRunner(pid any, runner int, options ...RequestOptionFunc) (*Response, error)
	ListGroupsRunners(gid any, opt *ListGroupsRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)
	RegisterNewRunner(opt *RegisterNewRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error)
	DeleteRegisteredRunner(opt *DeleteRegisteredRunnerOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteRegisteredRunnerByID(rid int, options ...RequestOptionFunc) (*Response, error)
	VerifyRegisteredRunner(opt *VerifyRegisteredRunnerOptions, options ...RequestOptionFunc) (*Response, error)
	ResetRunnerAuthenticationToken(rid int, options ...RequestOptionFunc) (*RunnerAuthenticationToken, *Response, error)

	// Deprecated: for removal in GitLab 20.0, see https://docs.gitlab.com/ci/runners/new_creation_workflow/ instead
	ResetInstanceRunnerRegistrationToken(options ...RequestOptionFunc) (*RunnerRegistrationToken, *Response, error)

	// Deprecated: for removal in GitLab 20.0, see https://docs.gitlab.com/ci/runners/new_creation_workflow/ instead
	ResetGroupRunnerRegistrationToken(gid any, options ...RequestOptionFunc) (*RunnerRegistrationToken, *Response, error)

	// Deprecated: for removal in GitLab 20.0, see https://docs.gitlab.com/ci/runners/new_creation_workflow/ instead
	ResetProjectRunnerRegistrationToken(pid any, options ...RequestOptionFunc) (*RunnerRegistrationToken, *Response, error)
}
type SAMLGroupLink struct {
	Name         string           `json:"name"`
	AccessLevel  AccessLevelValue `json:"access_level"`
	MemberRoleID int              `json:"member_role_id,omitempty"`
}

SAMLGroupLink represents a GitLab SAML group link.

GitLab API docs: https://docs.gitlab.com/api/groups/#saml-group-links

type SSHKey

type SSHKey struct {
	ID        int        `json:"id"`
	Title     string     `json:"title"`
	Key       string     `json:"key"`
	CreatedAt *time.Time `json:"created_at"`
	ExpiresAt *time.Time `json:"expires_at"`
	UsageType string     `json:"usage_type"`
}

SSHKey represents a SSH key.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-ssh-keys

type ScheduleAllGroupStorageMovesOptions added in v0.116.0

type ScheduleAllGroupStorageMovesOptions struct {
	SourceStorageName      *string `url:"source_storage_name,omitempty" json:"source_storage_name,omitempty"`
	DestinationStorageName *string `url:"destination_storage_name,omitempty" json:"destination_storage_name,omitempty"`
}

ScheduleAllGroupStorageMovesOptions represents the available ScheduleAllStorageMoves() options.

GitLab API docs: https://docs.gitlab.com/api/group_repository_storage_moves/#schedule-repository-storage-moves-for-all-groups-on-a-storage-shard

type ScheduleAllProjectStorageMovesOptions added in v0.116.0

type ScheduleAllProjectStorageMovesOptions struct {
	SourceStorageName      *string `url:"source_storage_name,omitempty" json:"source_storage_name,omitempty"`
	DestinationStorageName *string `url:"destination_storage_name,omitempty" json:"destination_storage_name,omitempty"`
}

ScheduleAllProjectStorageMovesOptions represents the available ScheduleAllStorageMoves() options.

GitLab API docs: https://docs.gitlab.com/api/project_repository_storage_moves/#schedule-repository-storage-moves-for-all-projects-on-a-storage-shard

type ScheduleAllSnippetStorageMovesOptions added in v0.116.0

type ScheduleAllSnippetStorageMovesOptions struct {
	SourceStorageName      *string `url:"source_storage_name,omitempty" json:"source_storage_name,omitempty"`
	DestinationStorageName *string `url:"destination_storage_name,omitempty" json:"destination_storage_name,omitempty"`
}

ScheduleAllSnippetStorageMovesOptions represents the available ScheduleAllStorageMoves() options.

GitLab API docs: https://docs.gitlab.com/api/snippet_repository_storage_moves/#schedule-repository-storage-moves-for-all-snippets-on-a-storage-shard

type ScheduleExportOptions added in v0.116.0

type ScheduleExportOptions struct {
	Description *string `url:"description,omitempty" json:"description,omitempty"`
	Upload      struct {
		URL        *string `url:"url,omitempty" json:"url,omitempty"`
		HTTPMethod *string `url:"http_method,omitempty" json:"http_method,omitempty"`
	} `url:"upload,omitempty" json:"upload,omitempty"`
}

ScheduleExportOptions represents the available ScheduleExport() options.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#schedule-an-export

type ScheduleStorageMoveForGroupOptions added in v0.116.0

type ScheduleStorageMoveForGroupOptions struct {
	DestinationStorageName *string `url:"destination_storage_name,omitempty" json:"destination_storage_name,omitempty"`
}

ScheduleStorageMoveForGroupOptions represents the available ScheduleStorageMoveForGroup() options.

GitLab API docs: https://docs.gitlab.com/api/group_repository_storage_moves/#schedule-a-repository-storage-move-for-a-group

type ScheduleStorageMoveForProjectOptions added in v0.116.0

type ScheduleStorageMoveForProjectOptions struct {
	DestinationStorageName *string `url:"destination_storage_name,omitempty" json:"destination_storage_name,omitempty"`
}

ScheduleStorageMoveForProjectOptions represents the available ScheduleStorageMoveForProject() options.

GitLab API docs: https://docs.gitlab.com/api/project_repository_storage_moves/#schedule-a-repository-storage-move-for-a-project

type ScheduleStorageMoveForSnippetOptions added in v0.116.0

type ScheduleStorageMoveForSnippetOptions struct {
	DestinationStorageName *string `url:"destination_storage_name,omitempty" json:"destination_storage_name,omitempty"`
}

ScheduleStorageMoveForSnippetOptions represents the available ScheduleStorageMoveForSnippet() options.

GitLab API docs: https://docs.gitlab.com/api/snippet_repository_storage_moves/#schedule-a-repository-storage-move-for-a-snippet

type SearchOptions added in v0.9.0

type SearchOptions struct {
	ListOptions
	Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
}

SearchOptions represents the available options for all search methods.

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

type SearchService added in v0.9.0

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

SearchService handles communication with the search related methods of the GitLab API.

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

func (*SearchService) Blobs added in v0.9.0

func (s *SearchService) Blobs(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Blob, *Response, error)

Blobs searches the expression within all blobs

GitLab API docs: https://docs.gitlab.com/api/search/#scope-blobs

func (*SearchService) BlobsByGroup added in v0.9.0

func (s *SearchService) BlobsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Blob, *Response, error)

BlobsByGroup searches the expression within blobs for the specified group

GitLab API docs: https://docs.gitlab.com/api/search/#scope-blobs-1

func (*SearchService) BlobsByProject added in v0.9.0

func (s *SearchService) BlobsByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Blob, *Response, error)

BlobsByProject searches the expression within blobs for the specified project

GitLab API docs: https://docs.gitlab.com/api/search/#scope-blobs-2

func (*SearchService) Commits added in v0.9.0

func (s *SearchService) Commits(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)

Commits searches the expression within all commits

GitLab API docs: https://docs.gitlab.com/api/search/#scope-commits

func (*SearchService) CommitsByGroup added in v0.9.0

func (s *SearchService) CommitsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)

CommitsByGroup searches the expression within commits for the specified group

GitLab API docs: https://docs.gitlab.com/api/search/#scope-commits-1

func (*SearchService) CommitsByProject added in v0.9.0

func (s *SearchService) CommitsByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)

CommitsByProject searches the expression within commits for the specified project

GitLab API docs: https://docs.gitlab.com/api/search/#scope-commits-2

func (*SearchService) Issues added in v0.9.0

func (s *SearchService) Issues(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

Issues searches the expression within issues

GitLab API docs: https://docs.gitlab.com/api/search/#scope-issues

func (*SearchService) IssuesByGroup added in v0.9.0

func (s *SearchService) IssuesByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

IssuesByGroup searches the expression within issues for the specified group

GitLab API docs: https://docs.gitlab.com/api/search/#scope-issues-1

func (*SearchService) IssuesByProject added in v0.9.0

func (s *SearchService) IssuesByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

IssuesByProject searches the expression within issues for the specified project

GitLab API docs: https://docs.gitlab.com/api/search/#scope-issues-2

func (*SearchService) MergeRequests added in v0.9.0

func (s *SearchService) MergeRequests(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)

MergeRequests searches the expression within merge requests

GitLab API docs: https://docs.gitlab.com/api/search/#scope-merge_requests

func (*SearchService) MergeRequestsByGroup added in v0.9.0

func (s *SearchService) MergeRequestsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)

MergeRequestsByGroup searches the expression within merge requests for the specified group

GitLab API docs: https://docs.gitlab.com/api/search/#scope-merge_requests-1

func (*SearchService) MergeRequestsByProject added in v0.9.0

func (s *SearchService) MergeRequestsByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)

MergeRequestsByProject searches the expression within merge requests for the specified project

GitLab API docs: https://docs.gitlab.com/api/search/#scope-merge_requests-2

func (*SearchService) Milestones added in v0.9.0

func (s *SearchService) Milestones(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)

Milestones searches the expression within milestones

GitLab API docs: https://docs.gitlab.com/api/search/#scope-milestones

func (*SearchService) MilestonesByGroup added in v0.9.0

func (s *SearchService) MilestonesByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)

MilestonesByGroup searches the expression within milestones for the specified group

GitLab API docs: https://docs.gitlab.com/api/search/#scope-milestones-1

func (*SearchService) MilestonesByProject added in v0.9.0

func (s *SearchService) MilestonesByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)

MilestonesByProject searches the expression within milestones for the specified project

GitLab API docs: https://docs.gitlab.com/api/search/#scope-milestones-2

func (*SearchService) NotesByProject added in v0.9.0

func (s *SearchService) NotesByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)

NotesByProject searches the expression within notes for the specified project

GitLab API docs: // https://docs.gitlab.com/api/search/#scope-notes

func (*SearchService) Projects added in v0.9.0

func (s *SearchService) Projects(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

Projects searches the expression within projects

GitLab API docs: https://docs.gitlab.com/api/search/#scope-projects

func (*SearchService) ProjectsByGroup added in v0.9.0

func (s *SearchService) ProjectsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

ProjectsByGroup searches the expression within projects for the specified group

GitLab API docs: https://docs.gitlab.com/api/search/#group-search-api

func (*SearchService) SnippetTitles added in v0.9.0

func (s *SearchService) SnippetTitles(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)

SnippetTitles searches the expression within snippet titles

GitLab API docs: https://docs.gitlab.com/api/search/#scope-snippet_titles

func (*SearchService) Users added in v0.116.0

func (s *SearchService) Users(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*User, *Response, error)

Users searches the expression within all users

GitLab API docs: https://docs.gitlab.com/api/search/#scope-users

func (*SearchService) UsersByGroup added in v0.116.0

func (s *SearchService) UsersByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*User, *Response, error)

UsersByGroup searches the expression within users for the specified group

GitLab API docs: https://docs.gitlab.com/api/search/#scope-users-1

func (*SearchService) UsersByProject added in v0.116.0

func (s *SearchService) UsersByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*User, *Response, error)

UsersByProject searches the expression within users for the specified project

GitLab API docs: https://docs.gitlab.com/api/search/#scope-users-2

func (*SearchService) WikiBlobs added in v0.9.0

func (s *SearchService) WikiBlobs(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)

WikiBlobs searches the expression within all wiki blobs

GitLab API docs: https://docs.gitlab.com/api/search/#scope-wiki_blobs

func (*SearchService) WikiBlobsByGroup added in v0.9.0

func (s *SearchService) WikiBlobsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)

WikiBlobsByGroup searches the expression within wiki blobs for specified group

GitLab API docs: https://docs.gitlab.com/api/search/#scope-wiki_blobs-1

func (*SearchService) WikiBlobsByProject added in v0.9.0

func (s *SearchService) WikiBlobsByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)

WikiBlobsByProject searches the expression within wiki blobs for the specified project

GitLab API docs: https://docs.gitlab.com/api/search/#scope-wiki_blobs-2

type SearchServiceInterface added in v0.126.0

type SearchServiceInterface interface {
	Projects(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	ProjectsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	Issues(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	IssuesByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	IssuesByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	MergeRequests(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)
	MergeRequestsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)
	MergeRequestsByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)
	Milestones(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)
	MilestonesByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)
	MilestonesByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)
	SnippetTitles(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)
	NotesByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)
	WikiBlobs(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)
	WikiBlobsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)
	WikiBlobsByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)
	Commits(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)
	CommitsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)
	CommitsByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)
	Blobs(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Blob, *Response, error)
	BlobsByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Blob, *Response, error)
	BlobsByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Blob, *Response, error)
	Users(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*User, *Response, error)
	UsersByGroup(gid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*User, *Response, error)
	UsersByProject(pid any, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*User, *Response, error)
}

type SecureFile added in v0.124.0

type SecureFile struct {
	ID                int                 `json:"id"`
	Name              string              `json:"name"`
	Checksum          string              `json:"checksum"`
	ChecksumAlgorithm string              `json:"checksum_algorithm"`
	CreatedAt         *time.Time          `json:"created_at"`
	ExpiresAt         *time.Time          `json:"expires_at"`
	Metadata          *SecureFileMetadata `json:"metadata"`
}

SecureFile represents a single secure file.

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

func (SecureFile) String added in v0.124.0

func (f SecureFile) String() string

Gets a string representation of a SecureFile.

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

type SecureFileIssuer added in v0.124.0

type SecureFileIssuer struct {
	C  string `json:"C"`
	O  string `json:"O"`
	CN string `json:"CN"`
	OU string `json:"OU"`
}

SecureFileIssuer represents the issuer of a secure file.

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

type SecureFileMetadata added in v0.124.0

type SecureFileMetadata struct {
	ID        string            `json:"id"`
	Issuer    SecureFileIssuer  `json:"issuer"`
	Subject   SecureFileSubject `json:"subject"`
	ExpiresAt *time.Time        `json:"expires_at"`
}

SecureFileMetadata represents the metadata for a secure file.

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

type SecureFileSubject added in v0.124.0

type SecureFileSubject struct {
	C   string `json:"C"`
	O   string `json:"O"`
	CN  string `json:"CN"`
	OU  string `json:"OU"`
	UID string `json:"UID"`
}

SecureFileSubject represents the subject of a secure file.

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

type SecureFilesService added in v0.124.0

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

SecureFilesService handles communication with the secure files related methods of the GitLab API.

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

func (SecureFilesService) CreateSecureFile added in v0.124.0

func (s SecureFilesService) CreateSecureFile(pid any, content io.Reader, opt *CreateSecureFileOptions, options ...RequestOptionFunc) (*SecureFile, *Response, error)

CreateSecureFile creates a new secure file.

GitLab API docs: https://docs.gitlab.com/api/secure_files/#create-secure-file

func (SecureFilesService) DownloadSecureFile added in v0.124.0

func (s SecureFilesService) DownloadSecureFile(pid any, id int, options ...RequestOptionFunc) (io.Reader, *Response, error)

DownloadSecureFile downloads the contents of a project's secure file.

GitLab API docs: https://docs.gitlab.com/api/secure_files/#download-secure-file

func (SecureFilesService) ListProjectSecureFiles added in v0.124.0

func (s SecureFilesService) ListProjectSecureFiles(pid any, opt *ListProjectSecureFilesOptions, options ...RequestOptionFunc) ([]*SecureFile, *Response, error)

ListProjectSecureFiles gets a list of secure files in a project.

GitLab API docs: https://docs.gitlab.com/api/secure_files/#list-project-secure-files

func (SecureFilesService) RemoveSecureFile added in v0.124.0

func (s SecureFilesService) RemoveSecureFile(pid any, id int, options ...RequestOptionFunc) (*Response, error)

RemoveSecureFile removes a project's secure file.

GitLab API docs: https://docs.gitlab.com/api/secure_files/#remove-secure-file

func (SecureFilesService) ShowSecureFileDetails added in v0.124.0

func (s SecureFilesService) ShowSecureFileDetails(pid any, id int, options ...RequestOptionFunc) (*SecureFile, *Response, error)

ShowSecureFileDetails gets the details of a specific secure file in a project.

GitLab API docs: https://docs.gitlab.com/api/secure_files/#show-secure-file-details

type SecureFilesServiceInterface added in v0.126.0

type SecureFilesServiceInterface interface {
	ListProjectSecureFiles(pid any, opt *ListProjectSecureFilesOptions, options ...RequestOptionFunc) ([]*SecureFile, *Response, error)
	ShowSecureFileDetails(pid any, id int, options ...RequestOptionFunc) (*SecureFile, *Response, error)
	CreateSecureFile(pid any, content io.Reader, opt *CreateSecureFileOptions, options ...RequestOptionFunc) (*SecureFile, *Response, error)
	DownloadSecureFile(pid any, id int, options ...RequestOptionFunc) (io.Reader, *Response, error)
	RemoveSecureFile(pid any, id int, options ...RequestOptionFunc) (*Response, error)
}

type Service

type Service struct {
	ID                             int        `json:"id"`
	Title                          string     `json:"title"`
	Slug                           string     `json:"slug"`
	CreatedAt                      *time.Time `json:"created_at"`
	UpdatedAt                      *time.Time `json:"updated_at"`
	Active                         bool       `json:"active"`
	AlertEvents                    bool       `json:"alert_events"`
	CommitEvents                   bool       `json:"commit_events"`
	ConfidentialIssuesEvents       bool       `json:"confidential_issues_events"`
	ConfidentialNoteEvents         bool       `json:"confidential_note_events"`
	DeploymentEvents               bool       `json:"deployment_events"`
	GroupConfidentialMentionEvents bool       `json:"group_confidential_mention_events"`
	GroupMentionEvents             bool       `json:"group_mention_events"`
	IncidentEvents                 bool       `json:"incident_events"`
	IssuesEvents                   bool       `json:"issues_events"`
	JobEvents                      bool       `json:"job_events"`
	MergeRequestsEvents            bool       `json:"merge_requests_events"`
	NoteEvents                     bool       `json:"note_events"`
	PipelineEvents                 bool       `json:"pipeline_events"`
	PushEvents                     bool       `json:"push_events"`
	TagPushEvents                  bool       `json:"tag_push_events"`
	VulnerabilityEvents            bool       `json:"vulnerability_events"`
	WikiPageEvents                 bool       `json:"wiki_page_events"`
	CommentOnEventEnabled          bool       `json:"comment_on_event_enabled"`
	Inherited                      bool       `json:"inherited"`
}

Service represents a GitLab service.

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

type ServiceAccount added in v0.116.0

type ServiceAccount struct {
	ID       int    `json:"id"`
	Username string `json:"username"`
	Name     string `json:"name"`
}

ServiceAccount represents a GitLab service account.

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

type ServicePingData added in v0.126.0

type ServicePingData struct {
	RecordedAt *time.Time        `json:"recorded_at"`
	License    map[string]string `json:"license"`
	Counts     map[string]int    `json:"counts"`
}

ServicePingData represents a service ping data response.

type ServicePingNonSqlMetrics added in v0.126.0

type ServicePingNonSqlMetrics struct {
	RecordedAt            string            `json:"recorded_at"`
	UUID                  string            `json:"uuid"`
	Hostname              string            `json:"hostname"`
	Version               string            `json:"version"`
	InstallationType      string            `json:"installation_type"`
	ActiveUserCount       int               `json:"active_user_count"`
	Edition               string            `json:"edition"`
	LicenseMD5            string            `json:"license_md5"`
	LicenseSHA256         string            `json:"license_sha256"`
	LicenseID             string            `json:"license_id"`
	HistoricalMaxUsers    int               `json:"historical_max_users"`
	Licensee              map[string]string `json:"licensee"`
	LicenseUserCount      int               `json:"license_user_count"`
	LicenseStartsAt       string            `json:"license_starts_at"`
	LicenseExpiresAt      string            `json:"license_expires_at"`
	LicensePlan           string            `json:"license_plan"`
	LicenseAddOns         map[string]int    `json:"license_add_ons"`
	LicenseTrial          string            `json:"license_trial"`
	LicenseSubscriptionID string            `json:"license_subscription_id"`
	License               map[string]string `json:"license"`
	Settings              map[string]string `json:"settings"`
}

ServicePingNonSqlMetrics represents the non-SQL metrics used in service ping.

type ServicePingQueries added in v0.126.0

type ServicePingQueries struct {
	RecordedAt            *time.Time        `json:"recorded_at"`
	UUID                  string            `json:"uuid"`
	Hostname              string            `json:"hostname"`
	Version               string            `json:"version"`
	InstallationType      string            `json:"installation_type"`
	ActiveUserCount       string            `json:"active_user_count"`
	Edition               string            `json:"edition"`
	LicenseMD5            string            `json:"license_md5"`
	LicenseSHA256         string            `json:"license_sha256"`
	LicenseID             string            `json:"license_id"`
	HistoricalMaxUsers    int               `json:"historical_max_users"`
	Licensee              map[string]string `json:"licensee"`
	LicenseUserCount      int               `json:"license_user_count"`
	LicenseStartsAt       string            `json:"license_starts_at"`
	LicenseExpiresAt      string            `json:"license_expires_at"`
	LicensePlan           string            `json:"license_plan"`
	LicenseAddOns         map[string]int    `json:"license_add_ons"`
	LicenseTrial          string            `json:"license_trial"`
	LicenseSubscriptionID string            `json:"license_subscription_id"`
	License               map[string]string `json:"license"`
	Settings              map[string]string `json:"settings"`
	Counts                map[string]string `json:"counts"`
}

ServicePingQueries represents the raw service ping SQL queries.

type ServicesService

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

ServicesService handles communication with the services related methods of the GitLab API.

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

func (*ServicesService) DeleteCustomIssueTrackerService added in v0.116.0

func (s *ServicesService) DeleteCustomIssueTrackerService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteCustomIssueTrackerService deletes Custom Issue Tracker service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-a-custom-issue-tracker

func (*ServicesService) DeleteDataDogService added in v0.116.0

func (s *ServicesService) DeleteDataDogService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteDataDogService deletes the DataDog service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-datadog

func (*ServicesService) DeleteDiscordService added in v0.116.0

func (s *ServicesService) DeleteDiscordService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteDiscordService deletes Discord service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-discord-notifications

func (*ServicesService) DeleteDroneCIService

func (s *ServicesService) DeleteDroneCIService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteDroneCIService deletes Drone CI service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-drone

func (*ServicesService) DeleteEmailsOnPushService added in v0.116.0

func (s *ServicesService) DeleteEmailsOnPushService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteEmailsOnPushService deletes Emails on Push service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-emails-on-push

func (*ServicesService) DeleteExternalWikiService added in v0.116.0

func (s *ServicesService) DeleteExternalWikiService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteExternalWikiService deletes External Wiki service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-an-external-wiki

func (*ServicesService) DeleteGithubService added in v0.116.0

func (s *ServicesService) DeleteGithubService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteGithubService deletes Github service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-github

func (*ServicesService) DeleteHarborService added in v0.116.0

func (s *ServicesService) DeleteHarborService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteHarborService deletes Harbor service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-harbor

func (*ServicesService) DeleteJenkinsCIService added in v0.7.5

func (s *ServicesService) DeleteJenkinsCIService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteJenkinsCIService deletes Jenkins CI service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-jenkins

func (*ServicesService) DeleteJiraService added in v0.7.0

func (s *ServicesService) DeleteJiraService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteJiraService deletes Jira service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-jira

func (*ServicesService) DeleteMattermostService added in v0.116.0

func (s *ServicesService) DeleteMattermostService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteMattermostService deletes Mattermost service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-mattermost-notifications

func (*ServicesService) DeleteMattermostSlashCommandsService added in v0.116.0

func (s *ServicesService) DeleteMattermostSlashCommandsService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteMattermostSlashCommandsService deletes Mattermost slash commands service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-mattermost-slash-commands

func (*ServicesService) DeleteMicrosoftTeamsService added in v0.11.0

func (s *ServicesService) DeleteMicrosoftTeamsService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteMicrosoftTeamsService deletes Microsoft Teams service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-microsoft-teams-notifications

func (*ServicesService) DeletePipelinesEmailService added in v0.116.0

func (s *ServicesService) DeletePipelinesEmailService(pid any, options ...RequestOptionFunc) (*Response, error)

DeletePipelinesEmailService deletes Pipelines Email service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-pipeline-status-emails

func (*ServicesService) DeleteRedmineService added in v0.116.0

func (s *ServicesService) DeleteRedmineService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteRedmineService deletes Redmine service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-redmine

func (*ServicesService) DeleteSlackService

func (s *ServicesService) DeleteSlackService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteSlackService deletes Slack service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-slack-notifications

func (*ServicesService) DeleteSlackSlashCommandsService added in v0.116.0

func (s *ServicesService) DeleteSlackSlashCommandsService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteSlackSlashCommandsService deletes Slack slash commands service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-slack-slash-commands

func (*ServicesService) DeleteTelegramService added in v0.116.0

func (s *ServicesService) DeleteTelegramService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteTelegramService deletes Telegram service for project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-telegram

func (*ServicesService) DeleteYouTrackService added in v0.116.0

func (s *ServicesService) DeleteYouTrackService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteYouTrackService deletes YouTrack service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-youtrack

func (*ServicesService) DisableSlackApplication added in v0.116.0

func (s *ServicesService) DisableSlackApplication(pid any, options ...RequestOptionFunc) (*Response, error)

DisableSlackApplication disable the GitLab for Slack app integration for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#disable-gitlab-for-slack-app

func (*ServicesService) GetCustomIssueTrackerService added in v0.116.0

func (s *ServicesService) GetCustomIssueTrackerService(pid any, options ...RequestOptionFunc) (*CustomIssueTrackerService, *Response, error)

GetCustomIssueTrackerService gets Custom Issue Tracker service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-custom-issue-tracker-settings

func (*ServicesService) GetDataDogService added in v0.116.0

func (s *ServicesService) GetDataDogService(pid any, options ...RequestOptionFunc) (*DataDogService, *Response, error)

GetDataDogService gets DataDog service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-datadog-settings

func (*ServicesService) GetDiscordService added in v0.116.0

func (s *ServicesService) GetDiscordService(pid any, options ...RequestOptionFunc) (*DiscordService, *Response, error)

GetDiscordService gets Discord service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-discord-notifications-settings

func (*ServicesService) GetDroneCIService

func (s *ServicesService) GetDroneCIService(pid any, options ...RequestOptionFunc) (*DroneCIService, *Response, error)

GetDroneCIService gets Drone CI service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-drone-settings

func (*ServicesService) GetEmailsOnPushService added in v0.116.0

func (s *ServicesService) GetEmailsOnPushService(pid any, options ...RequestOptionFunc) (*EmailsOnPushService, *Response, error)

GetEmailsOnPushService gets Emails on Push service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-emails-on-push-settings

func (*ServicesService) GetExternalWikiService added in v0.116.0

func (s *ServicesService) GetExternalWikiService(pid any, options ...RequestOptionFunc) (*ExternalWikiService, *Response, error)

GetExternalWikiService gets External Wiki service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-external-wiki-settings

func (*ServicesService) GetGithubService added in v0.116.0

func (s *ServicesService) GetGithubService(pid any, options ...RequestOptionFunc) (*GithubService, *Response, error)

GetGithubService gets Github service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-github-settings

func (*ServicesService) GetHarborService added in v0.116.0

func (s *ServicesService) GetHarborService(pid any, options ...RequestOptionFunc) (*HarborService, *Response, error)

GetHarborService gets Harbor service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-harbor-settings

func (*ServicesService) GetJenkinsCIService added in v0.7.5

func (s *ServicesService) GetJenkinsCIService(pid any, options ...RequestOptionFunc) (*JenkinsCIService, *Response, error)

GetJenkinsCIService gets Jenkins CI service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-jenkins-settings

func (*ServicesService) GetJiraService added in v0.7.0

func (s *ServicesService) GetJiraService(pid any, options ...RequestOptionFunc) (*JiraService, *Response, error)

GetJiraService gets Jira service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-jira-settings

func (*ServicesService) GetMattermostService added in v0.116.0

func (s *ServicesService) GetMattermostService(pid any, options ...RequestOptionFunc) (*MattermostService, *Response, error)

GetMattermostService gets Mattermost service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-mattermost-notifications-settings

func (*ServicesService) GetMattermostSlashCommandsService added in v0.116.0

func (s *ServicesService) GetMattermostSlashCommandsService(pid any, options ...RequestOptionFunc) (*MattermostSlashCommandsService, *Response, error)

GetMattermostSlashCommandsService gets Slack Mattermost commands service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-mattermost-slash-commands-settings

func (*ServicesService) GetMicrosoftTeamsService added in v0.11.0

func (s *ServicesService) GetMicrosoftTeamsService(pid any, options ...RequestOptionFunc) (*MicrosoftTeamsService, *Response, error)

GetMicrosoftTeamsService gets MicrosoftTeams service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-microsoft-teams-notifications-settings

func (*ServicesService) GetPipelinesEmailService added in v0.116.0

func (s *ServicesService) GetPipelinesEmailService(pid any, options ...RequestOptionFunc) (*PipelinesEmailService, *Response, error)

GetPipelinesEmailService gets Pipelines Email service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-pipeline-status-emails-settings

func (*ServicesService) GetRedmineService added in v0.116.0

func (s *ServicesService) GetRedmineService(pid any, options ...RequestOptionFunc) (*RedmineService, *Response, error)

GetRedmineService gets Redmine service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-redmine-settings

func (*ServicesService) GetSlackApplication added in v0.116.0

func (s *ServicesService) GetSlackApplication(pid any, options ...RequestOptionFunc) (*SlackApplication, *Response, error)

GetSlackApplication gets the GitLab for Slack app integration settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-gitlab-for-slack-app-settings

func (*ServicesService) GetSlackService added in v0.6.2

func (s *ServicesService) GetSlackService(pid any, options ...RequestOptionFunc) (*SlackService, *Response, error)

GetSlackService gets Slack service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-slack-notifications-settings

func (*ServicesService) GetSlackSlashCommandsService added in v0.116.0

func (s *ServicesService) GetSlackSlashCommandsService(pid any, options ...RequestOptionFunc) (*SlackSlashCommandsService, *Response, error)

GetSlackSlashCommandsService gets Slack slash commands service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-slack-slash-commands-settings

func (*ServicesService) GetTelegramService added in v0.116.0

func (s *ServicesService) GetTelegramService(pid any, options ...RequestOptionFunc) (*TelegramService, *Response, error)

GetTelegramService gets MicrosoftTeams service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-telegram-settings

func (*ServicesService) GetYouTrackService added in v0.116.0

func (s *ServicesService) GetYouTrackService(pid any, options ...RequestOptionFunc) (*YouTrackService, *Response, error)

GetYouTrackService gets YouTrack service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-youtrack-settings

func (*ServicesService) ListServices added in v0.116.0

func (s *ServicesService) ListServices(pid any, options ...RequestOptionFunc) ([]*Service, *Response, error)

ListServices gets a list of all active services.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#list-all-active-integrations

func (*ServicesService) SetCustomIssueTrackerService added in v0.116.0

func (s *ServicesService) SetCustomIssueTrackerService(pid any, opt *SetCustomIssueTrackerServiceOptions, options ...RequestOptionFunc) (*CustomIssueTrackerService, *Response, error)

SetCustomIssueTrackerService sets Custom Issue Tracker service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-a-custom-issue-tracker

func (*ServicesService) SetDataDogService added in v0.116.0

func (s *ServicesService) SetDataDogService(pid any, opt *SetDataDogServiceOptions, options ...RequestOptionFunc) (*DataDogService, *Response, error)

SetDataDogService sets DataDog service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-datadog

func (*ServicesService) SetDiscordService added in v0.116.0

func (s *ServicesService) SetDiscordService(pid any, opt *SetDiscordServiceOptions, options ...RequestOptionFunc) (*DiscordService, *Response, error)

SetDiscordService sets Discord service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-discord-notifications

func (*ServicesService) SetDroneCIService

func (s *ServicesService) SetDroneCIService(pid any, opt *SetDroneCIServiceOptions, options ...RequestOptionFunc) (*DroneCIService, *Response, error)

SetDroneCIService sets Drone CI service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-drone

func (*ServicesService) SetEmailsOnPushService added in v0.116.0

func (s *ServicesService) SetEmailsOnPushService(pid any, opt *SetEmailsOnPushServiceOptions, options ...RequestOptionFunc) (*EmailsOnPushService, *Response, error)

SetEmailsOnPushService sets Emails on Push service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-emails-on-push

func (*ServicesService) SetExternalWikiService added in v0.116.0

func (s *ServicesService) SetExternalWikiService(pid any, opt *SetExternalWikiServiceOptions, options ...RequestOptionFunc) (*ExternalWikiService, *Response, error)

SetExternalWikiService sets External Wiki service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-an-external-wiki

func (*ServicesService) SetGithubService added in v0.116.0

func (s *ServicesService) SetGithubService(pid any, opt *SetGithubServiceOptions, options ...RequestOptionFunc) (*GithubService, *Response, error)

SetGithubService sets Github service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-github

func (*ServicesService) SetHarborService added in v0.116.0

func (s *ServicesService) SetHarborService(pid any, opt *SetHarborServiceOptions, options ...RequestOptionFunc) (*HarborService, *Response, error)

SetHarborService sets Harbor service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-harbor

func (*ServicesService) SetJenkinsCIService added in v0.7.5

func (s *ServicesService) SetJenkinsCIService(pid any, opt *SetJenkinsCIServiceOptions, options ...RequestOptionFunc) (*JenkinsCIService, *Response, error)

SetJenkinsCIService sets Jenkins service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-jenkins

func (*ServicesService) SetJiraService added in v0.7.0

func (s *ServicesService) SetJiraService(pid any, opt *SetJiraServiceOptions, options ...RequestOptionFunc) (*JiraService, *Response, error)

SetJiraService sets Jira service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-jira-issues

func (*ServicesService) SetMattermostService added in v0.116.0

func (s *ServicesService) SetMattermostService(pid any, opt *SetMattermostServiceOptions, options ...RequestOptionFunc) (*MattermostService, *Response, error)

SetMattermostService sets Mattermost service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-mattermost-notifications

func (*ServicesService) SetMattermostSlashCommandsService added in v0.116.0

func (s *ServicesService) SetMattermostSlashCommandsService(pid any, opt *SetMattermostSlashCommandsServiceOptions, options ...RequestOptionFunc) (*MattermostSlashCommandsService, *Response, error)

SetMattermostSlashCommandsService sets Mattermost slash commands service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-mattermost-slash-commands

func (*ServicesService) SetMicrosoftTeamsService added in v0.11.0

func (s *ServicesService) SetMicrosoftTeamsService(pid any, opt *SetMicrosoftTeamsServiceOptions, options ...RequestOptionFunc) (*MicrosoftTeamsService, *Response, error)

SetMicrosoftTeamsService sets Microsoft Teams service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-microsoft-teams-notifications

func (*ServicesService) SetPipelinesEmailService added in v0.116.0

func (s *ServicesService) SetPipelinesEmailService(pid any, opt *SetPipelinesEmailServiceOptions, options ...RequestOptionFunc) (*PipelinesEmailService, *Response, error)

SetPipelinesEmailService sets Pipelines Email service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-pipeline-status-emails

func (*ServicesService) SetRedmineService added in v0.116.0

func (s *ServicesService) SetRedmineService(pid any, opt *SetRedmineServiceOptions, options ...RequestOptionFunc) (*RedmineService, *Response, error)

SetRedmineService sets Redmine service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-redmine

func (*ServicesService) SetSlackApplication added in v0.116.0

func (s *ServicesService) SetSlackApplication(pid any, opt *SetSlackApplicationOptions, options ...RequestOptionFunc) (*SlackApplication, *Response, error)

SetSlackApplication update the GitLab for Slack app integration for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-gitlab-for-slack-app

func (*ServicesService) SetSlackService

func (s *ServicesService) SetSlackService(pid any, opt *SetSlackServiceOptions, options ...RequestOptionFunc) (*SlackService, *Response, error)

SetSlackService sets Slack service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-slack-notifications

func (*ServicesService) SetSlackSlashCommandsService added in v0.116.0

func (s *ServicesService) SetSlackSlashCommandsService(pid any, opt *SetSlackSlashCommandsServiceOptions, options ...RequestOptionFunc) (*SlackSlashCommandsService, *Response, error)

SetSlackSlashCommandsService sets Slack slash commands service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-slack-slash-commands

func (*ServicesService) SetTelegramService added in v0.116.0

func (s *ServicesService) SetTelegramService(pid any, opt *SetTelegramServiceOptions, options ...RequestOptionFunc) (*TelegramService, *Response, error)

SetTelegramService sets Telegram service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-telegram

func (*ServicesService) SetYouTrackService added in v0.116.0

func (s *ServicesService) SetYouTrackService(pid any, opt *SetYouTrackServiceOptions, options ...RequestOptionFunc) (*YouTrackService, *Response, error)

SetYouTrackService sets YouTrack service for a project

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-youtrack

type ServicesServiceInterface added in v0.126.0

type ServicesServiceInterface interface {
	ListServices(pid any, options ...RequestOptionFunc) ([]*Service, *Response, error)
	GetCustomIssueTrackerService(pid any, options ...RequestOptionFunc) (*CustomIssueTrackerService, *Response, error)
	SetCustomIssueTrackerService(pid any, opt *SetCustomIssueTrackerServiceOptions, options ...RequestOptionFunc) (*CustomIssueTrackerService, *Response, error)
	DeleteCustomIssueTrackerService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetDataDogService(pid any, options ...RequestOptionFunc) (*DataDogService, *Response, error)
	SetDataDogService(pid any, opt *SetDataDogServiceOptions, options ...RequestOptionFunc) (*DataDogService, *Response, error)
	DeleteDataDogService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetDiscordService(pid any, options ...RequestOptionFunc) (*DiscordService, *Response, error)
	SetDiscordService(pid any, opt *SetDiscordServiceOptions, options ...RequestOptionFunc) (*DiscordService, *Response, error)
	DeleteDiscordService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetDroneCIService(pid any, options ...RequestOptionFunc) (*DroneCIService, *Response, error)
	SetDroneCIService(pid any, opt *SetDroneCIServiceOptions, options ...RequestOptionFunc) (*DroneCIService, *Response, error)
	DeleteDroneCIService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetEmailsOnPushService(pid any, options ...RequestOptionFunc) (*EmailsOnPushService, *Response, error)
	SetEmailsOnPushService(pid any, opt *SetEmailsOnPushServiceOptions, options ...RequestOptionFunc) (*EmailsOnPushService, *Response, error)
	DeleteEmailsOnPushService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetExternalWikiService(pid any, options ...RequestOptionFunc) (*ExternalWikiService, *Response, error)
	SetExternalWikiService(pid any, opt *SetExternalWikiServiceOptions, options ...RequestOptionFunc) (*ExternalWikiService, *Response, error)
	DeleteExternalWikiService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetGithubService(pid any, options ...RequestOptionFunc) (*GithubService, *Response, error)
	SetGithubService(pid any, opt *SetGithubServiceOptions, options ...RequestOptionFunc) (*GithubService, *Response, error)
	DeleteGithubService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetHarborService(pid any, options ...RequestOptionFunc) (*HarborService, *Response, error)
	SetHarborService(pid any, opt *SetHarborServiceOptions, options ...RequestOptionFunc) (*HarborService, *Response, error)
	DeleteHarborService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetSlackApplication(pid any, options ...RequestOptionFunc) (*SlackApplication, *Response, error)
	SetSlackApplication(pid any, opt *SetSlackApplicationOptions, options ...RequestOptionFunc) (*SlackApplication, *Response, error)
	DisableSlackApplication(pid any, options ...RequestOptionFunc) (*Response, error)
	GetJenkinsCIService(pid any, options ...RequestOptionFunc) (*JenkinsCIService, *Response, error)
	SetJenkinsCIService(pid any, opt *SetJenkinsCIServiceOptions, options ...RequestOptionFunc) (*JenkinsCIService, *Response, error)
	DeleteJenkinsCIService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetJiraService(pid any, options ...RequestOptionFunc) (*JiraService, *Response, error)
	SetJiraService(pid any, opt *SetJiraServiceOptions, options ...RequestOptionFunc) (*JiraService, *Response, error)
	DeleteJiraService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetMattermostService(pid any, options ...RequestOptionFunc) (*MattermostService, *Response, error)
	SetMattermostService(pid any, opt *SetMattermostServiceOptions, options ...RequestOptionFunc) (*MattermostService, *Response, error)
	DeleteMattermostService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetMattermostSlashCommandsService(pid any, options ...RequestOptionFunc) (*MattermostSlashCommandsService, *Response, error)
	SetMattermostSlashCommandsService(pid any, opt *SetMattermostSlashCommandsServiceOptions, options ...RequestOptionFunc) (*MattermostSlashCommandsService, *Response, error)
	DeleteMattermostSlashCommandsService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetMicrosoftTeamsService(pid any, options ...RequestOptionFunc) (*MicrosoftTeamsService, *Response, error)
	SetMicrosoftTeamsService(pid any, opt *SetMicrosoftTeamsServiceOptions, options ...RequestOptionFunc) (*MicrosoftTeamsService, *Response, error)
	DeleteMicrosoftTeamsService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetPipelinesEmailService(pid any, options ...RequestOptionFunc) (*PipelinesEmailService, *Response, error)
	SetPipelinesEmailService(pid any, opt *SetPipelinesEmailServiceOptions, options ...RequestOptionFunc) (*PipelinesEmailService, *Response, error)
	DeletePipelinesEmailService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetRedmineService(pid any, options ...RequestOptionFunc) (*RedmineService, *Response, error)
	SetRedmineService(pid any, opt *SetRedmineServiceOptions, options ...RequestOptionFunc) (*RedmineService, *Response, error)
	DeleteRedmineService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetSlackService(pid any, options ...RequestOptionFunc) (*SlackService, *Response, error)
	SetSlackService(pid any, opt *SetSlackServiceOptions, options ...RequestOptionFunc) (*SlackService, *Response, error)
	DeleteSlackService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetSlackSlashCommandsService(pid any, options ...RequestOptionFunc) (*SlackSlashCommandsService, *Response, error)
	SetSlackSlashCommandsService(pid any, opt *SetSlackSlashCommandsServiceOptions, options ...RequestOptionFunc) (*SlackSlashCommandsService, *Response, error)
	DeleteSlackSlashCommandsService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetTelegramService(pid any, options ...RequestOptionFunc) (*TelegramService, *Response, error)
	SetTelegramService(pid any, opt *SetTelegramServiceOptions, options ...RequestOptionFunc) (*TelegramService, *Response, error)
	DeleteTelegramService(pid any, options ...RequestOptionFunc) (*Response, error)
	GetYouTrackService(pid any, options ...RequestOptionFunc) (*YouTrackService, *Response, error)
	SetYouTrackService(pid any, opt *SetYouTrackServiceOptions, options ...RequestOptionFunc) (*YouTrackService, *Response, error)
	DeleteYouTrackService(pid any, options ...RequestOptionFunc) (*Response, error)
}

type SetCommitStatusOptions

type SetCommitStatusOptions struct {
	State       BuildStateValue `url:"state" json:"state"`
	Ref         *string         `url:"ref,omitempty" json:"ref,omitempty"`
	Name        *string         `url:"name,omitempty" json:"name,omitempty"`
	Context     *string         `url:"context,omitempty" json:"context,omitempty"`
	TargetURL   *string         `url:"target_url,omitempty" json:"target_url,omitempty"`
	Description *string         `url:"description,omitempty" json:"description,omitempty"`
	Coverage    *float64        `url:"coverage,omitempty" json:"coverage,omitempty"`
	PipelineID  *int            `url:"pipeline_id,omitempty" json:"pipeline_id,omitempty"`
}

SetCommitStatusOptions represents the available SetCommitStatus() options.

GitLab API docs: https://docs.gitlab.com/api/commits/#set-the-pipeline-status-of-a-commit

type SetCustomIssueTrackerServiceOptions added in v0.116.0

type SetCustomIssueTrackerServiceOptions struct {
	NewIssueURL *string `url:"new_issue_url,omitempty" json:"new_issue_url,omitempty"`
	IssuesURL   *string `url:"issues_url,omitempty" json:"issues_url,omitempty"`
	ProjectURL  *string `url:"project_url,omitempty" json:"project_url,omitempty"`
}

SetCustomIssueTrackerServiceOptions represents the available SetCustomIssueTrackerService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-a-custom-issue-tracker

type SetDataDogServiceOptions added in v0.116.0

type SetDataDogServiceOptions struct {
	APIKey             *string `url:"api_key,omitempty" json:"api_key,omitempty"`
	APIURL             *string `url:"api_url,omitempty" json:"api_url,omitempty"`
	DataDogEnv         *string `url:"datadog_env,omitempty" json:"datadog_env,omitempty"`
	DataDogService     *string `url:"datadog_service,omitempty" json:"datadog_service,omitempty"`
	DataDogSite        *string `url:"datadog_site,omitempty" json:"datadog_site,omitempty"`
	DataDogTags        *string `url:"datadog_tags,omitempty" json:"datadog_tags,omitempty"`
	ArchiveTraceEvents *bool   `url:"archive_trace_events,omitempty" json:"archive_trace_events,omitempty"`
}

SetDataDogServiceOptions represents the available SetDataDogService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-datadog

type SetDiscordServiceOptions added in v0.116.0

type SetDiscordServiceOptions struct {
	WebHook                          *string `url:"webhook,omitempty" json:"webhook,omitempty"`
	BranchesToBeNotified             *string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,omitempty"`
	ConfidentialIssuesEvents         *bool   `url:"confidential_issues_events,omitempty" json:"confidential_issues_events,omitempty"`
	ConfidentialIssuesChannel        *string `url:"confidential_issue_channel,omitempty" json:"confidential_issue_channel,omitempty"`
	ConfidentialNoteEvents           *bool   `url:"confidential_note_events,omitempty" json:"confidential_note_events,omitempty"`
	ConfidentialNoteChannel          *string `url:"confidential_note_channel,omitempty" json:"confidential_note_channel,omitempty"`
	DeploymentEvents                 *bool   `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
	DeploymentChannel                *string `url:"deployment_channel,omitempty" json:"deployment_channel,omitempty"`
	GroupConfidentialMentionsEvents  *bool   `url:"group_confidential_mentions_events,omitempty" json:"group_confidential_mentions_events,omitempty"`
	GroupConfidentialMentionsChannel *string `url:"group_confidential_mentions_channel,omitempty" json:"group_confidential_mentions_channel,omitempty"`
	GroupMentionsEvents              *bool   `url:"group_mentions_events,omitempty" json:"group_mentions_events,omitempty"`
	GroupMentionsChannel             *string `url:"group_mentions_channel,omitempty" json:"group_mentions_channel,omitempty"`
	IssuesEvents                     *bool   `url:"issues_events,omitempty" json:"issues_events,omitempty"`
	IssueChannel                     *string `url:"issue_channel,omitempty" json:"issue_channel,omitempty"`
	MergeRequestsEvents              *bool   `url:"merge_requests_events,omitempty" json:"merge_requests_events,omitempty"`
	MergeRequestChannel              *string `url:"merge_request_channel,omitempty" json:"merge_request_channel,omitempty"`
	NoteEvents                       *bool   `url:"note_events,omitempty" json:"note_events,omitempty"`
	NoteChannel                      *string `url:"note_channel,omitempty" json:"note_channel,omitempty"`
	NotifyOnlyBrokenPipelines        *bool   `url:"notify_only_broken_pipelines,omitempty" json:"notify_only_broken_pipelines,omitempty"`
	PipelineEvents                   *bool   `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
	PipelineChannel                  *string `url:"pipeline_channel,omitempty" json:"pipeline_channel,omitempty"`
	PushEvents                       *bool   `url:"push_events,omitempty" json:"push_events,omitempty"`
	PushChannel                      *string `url:"push_channel,omitempty" json:"push_channel,omitempty"`
	TagPushEvents                    *bool   `url:"tag_push_events,omitempty" json:"tag_push_events,omitempty"`
	TagPushChannel                   *string `url:"tag_push_channel,omitempty" json:"tag_push_channel,omitempty"`
	WikiPageEvents                   *bool   `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
	WikiPageChannel                  *string `url:"wiki_page_channel,omitempty" json:"wiki_page_channel,omitempty"`
}

SetDiscordServiceOptions represents the available SetDiscordService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-discord-notifications

type SetDroneCIServiceOptions

type SetDroneCIServiceOptions struct {
	Token                 *string `url:"token,omitempty" json:"token,omitempty"`
	DroneURL              *string `url:"drone_url,omitempty" json:"drone_url,omitempty"`
	EnableSSLVerification *bool   `url:"enable_ssl_verification,omitempty" json:"enable_ssl_verification,omitempty"`
	PushEvents            *bool   `url:"push_events,omitempty" json:"push_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"`
}

SetDroneCIServiceOptions represents the available SetDroneCIService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-drone

type SetEmailsOnPushServiceOptions added in v0.116.0

type SetEmailsOnPushServiceOptions struct {
	Recipients             *string `url:"recipients,omitempty" json:"recipients,omitempty"`
	DisableDiffs           *bool   `url:"disable_diffs,omitempty" json:"disable_diffs,omitempty"`
	SendFromCommitterEmail *bool   `url:"send_from_committer_email,omitempty" json:"send_from_committer_email,omitempty"`
	PushEvents             *bool   `url:"push_events,omitempty" json:"push_events,omitempty"`
	TagPushEvents          *bool   `url:"tag_push_events,omitempty" json:"tag_push_events,omitempty"`
	BranchesToBeNotified   *string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,omitempty"`
}

SetEmailsOnPushServiceOptions represents the available SetEmailsOnPushService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-emails-on-push

type SetExternalStatusCheckStatusOptions added in v0.116.0

type SetExternalStatusCheckStatusOptions struct {
	SHA                   *string `url:"sha,omitempty" json:"sha,omitempty"`
	ExternalStatusCheckID *int    `url:"external_status_check_id,omitempty" json:"external_status_check_id,omitempty"`
	Status                *string `url:"status,omitempty" json:"status,omitempty"`
}

SetExternalStatusCheckStatusOptions represents the available SetExternalStatusCheckStatus() options.

GitLab API docs: https://docs.gitlab.com/api/status_checks/#set-status-of-an-external-status-check

type SetExternalWikiServiceOptions added in v0.116.0

type SetExternalWikiServiceOptions struct {
	ExternalWikiURL *string `url:"external_wiki_url,omitempty" json:"external_wiki_url,omitempty"`
}

SetExternalWikiServiceOptions represents the available SetExternalWikiService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-an-external-wiki

type SetFeatureFlagOptions added in v0.129.0

type SetFeatureFlagOptions struct {
	Value        any    `url:"value" json:"value"`
	Key          string `url:"key" json:"key"`
	FeatureGroup string `url:"feature_group" json:"feature_group"`
	User         string `url:"user" json:"user"`
	Group        string `url:"group" json:"group"`
	Namespace    string `url:"namespace" json:"namespace"`
	Project      string `url:"project" json:"project"`
	Repository   string `url:"repository" json:"repository"`
	Force        bool   `url:"force" json:"force"`
}

SetFeatureFlagOptions represents the available options for SetFeatureFlag().

GitLab API docs: https://docs.gitlab.com/api/features/#set-or-create-a-feature

type SetGithubServiceOptions added in v0.116.0

type SetGithubServiceOptions struct {
	Token         *string `url:"token,omitempty" json:"token,omitempty"`
	RepositoryURL *string `url:"repository_url,omitempty" json:"repository_url,omitempty"`
	StaticContext *bool   `url:"static_context,omitempty" json:"static_context,omitempty"`
}

SetGithubServiceOptions represents the available SetGithubService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-github

type SetHarborServiceOptions added in v0.116.0

type SetHarborServiceOptions struct {
	URL                  *string `url:"url,omitempty" json:"url,omitempty"`
	ProjectName          *string `url:"project_name,omitempty" json:"project_name,omitempty"`
	Username             *string `url:"username,omitempty" json:"username,omitempty"`
	Password             *string `url:"password,omitempty" json:"password,omitempty"`
	UseInheritedSettings *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

SetHarborServiceOptions represents the available SetHarborService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-harbor

type SetHookCustomHeaderOptions added in v0.116.0

type SetHookCustomHeaderOptions struct {
	Value *string `json:"value,omitempty"`
}

SetHookCustomHeaderOptions represents the available SetProjectCustomHeader() options.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#set-a-custom-header

type SetHookURLVariableOptions added in v0.124.0

type SetHookURLVariableOptions struct {
	Value *string `json:"value,omitempty"`
}

SetHookURLVariableOptions represents the available SetGroupHookURLVariable() options.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#set-a-url-variable

type SetJenkinsCIServiceOptions added in v0.7.5

type SetJenkinsCIServiceOptions struct {
	URL                   *string `url:"jenkins_url,omitempty" json:"jenkins_url,omitempty"`
	EnableSSLVerification *bool   `url:"enable_ssl_verification,omitempty" json:"enable_ssl_verification,omitempty"`
	ProjectName           *string `url:"project_name,omitempty" json:"project_name,omitempty"`
	Username              *string `url:"username,omitempty" json:"username,omitempty"`
	Password              *string `url:"password,omitempty" json:"password,omitempty"`
	PushEvents            *bool   `url:"push_events,omitempty" json:"push_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"`
}

SetJenkinsCIServiceOptions represents the available SetJenkinsCIService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#jenkins

type SetJiraServiceOptions added in v0.7.0

type SetJiraServiceOptions struct {
	URL                          *string   `url:"url,omitempty" json:"url,omitempty"`
	APIURL                       *string   `url:"api_url,omitempty" json:"api_url,omitempty"`
	Username                     *string   `url:"username,omitempty" json:"username,omitempty" `
	Password                     *string   `url:"password,omitempty" json:"password,omitempty" `
	Active                       *bool     `url:"active,omitempty" json:"active,omitempty"`
	JiraAuthType                 *int      `url:"jira_auth_type,omitempty" json:"jira_auth_type,omitempty"`
	JiraIssuePrefix              *string   `url:"jira_issue_prefix,omitempty" json:"jira_issue_prefix,omitempty"`
	JiraIssueRegex               *string   `url:"jira_issue_regex,omitempty" json:"jira_issue_regex,omitempty"`
	JiraIssueTransitionAutomatic *bool     `url:"jira_issue_transition_automatic,omitempty" json:"jira_issue_transition_automatic,omitempty"`
	JiraIssueTransitionID        *string   `url:"jira_issue_transition_id,omitempty" json:"jira_issue_transition_id,omitempty"`
	CommitEvents                 *bool     `url:"commit_events,omitempty" json:"commit_events,omitempty"`
	MergeRequestsEvents          *bool     `url:"merge_requests_events,omitempty" json:"merge_requests_events,omitempty"`
	CommentOnEventEnabled        *bool     `url:"comment_on_event_enabled,omitempty" json:"comment_on_event_enabled,omitempty"`
	IssuesEnabled                *bool     `url:"issues_enabled,omitempty" json:"issues_enabled,omitempty"`
	ProjectKeys                  *[]string `url:"project_keys,comma,omitempty" json:"project_keys,omitempty" `
	UseInheritedSettings         *bool     `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

SetJiraServiceOptions represents the available SetJiraService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-jira-issues

type SetMattermostServiceOptions added in v0.116.0

type SetMattermostServiceOptions struct {
	WebHook                   *string `url:"webhook,omitempty" json:"webhook,omitempty"`
	Username                  *string `url:"username,omitempty" json:"username,omitempty"`
	Channel                   *string `url:"channel,omitempty" json:"channel,omitempty"`
	NotifyOnlyBrokenPipelines *bool   `url:"notify_only_broken_pipelines,omitempty" json:"notify_only_broken_pipelines,omitempty"`
	BranchesToBeNotified      *string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,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"`
	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"`
	ConfidentialNoteChannel   *string `url:"confidential_note_channel,omitempty" json:"confidential_note_channel,omitempty"`
	PipelineEvents            *bool   `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
	WikiPageEvents            *bool   `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
	PushChannel               *string `url:"push_channel,omitempty" json:"push_channel,omitempty"`
	IssueChannel              *string `url:"issue_channel,omitempty" json:"issue_channel,omitempty"`
	ConfidentialIssueChannel  *string `url:"confidential_issue_channel,omitempty" json:"confidential_issue_channel,omitempty"`
	MergeRequestChannel       *string `url:"merge_request_channel,omitempty" json:"merge_request_channel,omitempty"`
	NoteChannel               *string `url:"note_channel,omitempty" json:"note_channel,omitempty"`
	ConfidentialNoteEvents    *bool   `url:"confidential_note_events,omitempty" json:"confidential_note_events,omitempty"`
	TagPushChannel            *string `url:"tag_push_channel,omitempty" json:"tag_push_channel,omitempty"`
	PipelineChannel           *string `url:"pipeline_channel,omitempty" json:"pipeline_channel,omitempty"`
	WikiPageChannel           *string `url:"wiki_page_channel,omitempty" json:"wiki_page_channel,omitempty"`
}

SetMattermostServiceOptions represents the available SetMattermostService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-mattermost-notifications

type SetMattermostSlashCommandsServiceOptions added in v0.116.0

type SetMattermostSlashCommandsServiceOptions struct {
	Token    *string `url:"token,omitempty" json:"token,omitempty"`
	Username *string `url:"username,omitempty" json:"username,omitempty"`
}

SetMattermostSlashCommandsServiceOptions represents the available SetSlackSlashCommandsService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-mattermost-slash-commands

type SetMicrosoftTeamsServiceOptions added in v0.11.0

type SetMicrosoftTeamsServiceOptions struct {
	WebHook                   *string `url:"webhook,omitempty" json:"webhook,omitempty"`
	NotifyOnlyBrokenPipelines *bool   `url:"notify_only_broken_pipelines,omitempty" json:"notify_only_broken_pipelines,omitempty"`
	BranchesToBeNotified      *string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,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"`
	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"`
	ConfidentialNoteEvents    *bool   `url:"confidential_note_events,omitempty" json:"confidential_note_events,omitempty"`
	PipelineEvents            *bool   `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
	WikiPageEvents            *bool   `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
}

SetMicrosoftTeamsServiceOptions represents the available SetMicrosoftTeamsService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-microsoft-teams-notifications

type SetPipelinesEmailServiceOptions added in v0.116.0

type SetPipelinesEmailServiceOptions struct {
	Recipients                *string `url:"recipients,omitempty" json:"recipients,omitempty"`
	NotifyOnlyBrokenPipelines *bool   `url:"notify_only_broken_pipelines,omitempty" json:"notify_only_broken_pipelines,omitempty"`
	NotifyOnlyDefaultBranch   *bool   `url:"notify_only_default_branch,omitempty" json:"notify_only_default_branch,omitempty"`
	AddPusher                 *bool   `url:"add_pusher,omitempty" json:"add_pusher,omitempty"`
	BranchesToBeNotified      *string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,omitempty"`
	PipelineEvents            *bool   `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
}

SetPipelinesEmailServiceOptions represents the available SetPipelinesEmailService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-pipeline-status-emails

type SetRedmineServiceOptions added in v0.116.0

type SetRedmineServiceOptions struct {
	NewIssueURL          *string `url:"new_issue_url,omitempty" json:"new_issue_url,omitempty"`
	ProjectURL           *string `url:"project_url,omitempty" json:"project_url,omitempty"`
	IssuesURL            *string `url:"issues_url,omitempty" json:"issues_url,omitempty"`
	UseInheritedSettings *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

SetRedmineServiceOptions represents the available SetRedmineService(). options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-redmine

type SetSlackApplicationOptions added in v0.116.0

type SetSlackApplicationOptions struct {
	Channel                    *string `url:"channel,omitempty" json:"channel,omitempty"`
	NotifyOnlyBrokenPipelines  *bool   `url:"notify_only_broken_pipelines,omitempty" json:"notify_only_broken_pipelines,omitempty"`
	BranchesToBeNotified       *string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,omitempty"`
	AlertEvents                *bool   `url:"alert_events,omitempty" json:"alert_events,omitempty"`
	IssuesEvents               *bool   `url:"issues_events,omitempty" json:"issues_events,omitempty"`
	ConfidentialIssuesEvents   *bool   `url:"confidential_issues_events,omitempty" json:"confidential_issues_events,omitempty"`
	MergeRequestsEvents        *bool   `url:"merge_requests_events,omitempty" json:"merge_requests_events,omitempty"`
	NoteEvents                 *bool   `url:"note_events,omitempty" json:"note_events,omitempty"`
	ConfidentialNoteEvents     *bool   `url:"confidential_note_events,omitempty" json:"confidential_note_events,omitempty"`
	DeploymentEvents           *bool   `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
	IncidentsEvents            *bool   `url:"incidents_events,omitempty" json:"incidents_events,omitempty"`
	PipelineEvents             *bool   `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
	PushEvents                 *bool   `url:"push_events,omitempty" json:"push_events,omitempty"`
	TagPushEvents              *bool   `url:"tag_push_events,omitempty" json:"tag_push_events,omitempty"`
	VulnerabilityEvents        *bool   `url:"vulnerability_events,omitempty" json:"vulnerability_events,omitempty"`
	WikiPageEvents             *bool   `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
	LabelsToBeNotified         *string `url:"labels_to_be_notified,omitempty" json:"labels_to_be_notified,omitempty"`
	LabelsToBeNotifiedBehavior *string `url:"labels_to_be_notified_behavior,omitempty" json:"labels_to_be_notified_behavior,omitempty"`
	PushChannel                *string `url:"push_channel,omitempty" json:"push_channel,omitempty"`
	IssueChannel               *string `url:"issue_channel,omitempty" json:"issue_channel,omitempty"`
	ConfidentialIssueChannel   *string `url:"confidential_issue_channel,omitempty" json:"confidential_issue_channel,omitempty"`
	MergeRequestChannel        *string `url:"merge_request_channel,omitempty" json:"merge_request_channel,omitempty"`
	NoteChannel                *string `url:"note_channel,omitempty" json:"note_channel,omitempty"`
	ConfidentialNoteChannel    *string `url:"confidential_note_channel,omitempty" json:"confidential_note_channel,omitempty"`
	TagPushChannel             *string `url:"tag_push_channel,omitempty" json:"tag_push_channel,omitempty"`
	PipelineChannel            *string `url:"pipeline_channel,omitempty" json:"pipeline_channel,omitempty"`
	WikiPageChannel            *string `url:"wiki_page_channel,omitempty" json:"wiki_page_channel,omitempty"`
	DeploymentChannel          *string `url:"deployment_channel,omitempty" json:"deployment_channel,omitempty"`
	IncidentChannel            *string `url:"incident_channel,omitempty" json:"incident_channel,omitempty"`
	VulnerabilityChannel       *string `url:"vulnerability_channel,omitempty" json:"vulnerability_channel,omitempty"`
	AlertChannel               *string `url:"alert_channel,omitempty" json:"alert_channel,omitempty"`
	UseInheritedSettings       *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`

	// Deprecated: This parameter has been replaced with BranchesToBeNotified.
	NotifyOnlyDefaultBranch *bool `url:"notify_only_default_branch,omitempty" json:"notify_only_default_branch,omitempty"`
}

SetSlackApplicationOptions represents the available SetSlackApplication() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-gitlab-for-slack-app

type SetSlackServiceOptions

type SetSlackServiceOptions struct {
	WebHook                   *string `url:"webhook,omitempty" json:"webhook,omitempty"`
	Username                  *string `url:"username,omitempty" json:"username,omitempty"`
	Channel                   *string `url:"channel,omitempty" json:"channel,omitempty"`
	NotifyOnlyBrokenPipelines *bool   `url:"notify_only_broken_pipelines,omitempty" json:"notify_only_broken_pipelines,omitempty"`
	NotifyOnlyDefaultBranch   *bool   `url:"notify_only_default_branch,omitempty" json:"notify_only_default_branch,omitempty"`
	BranchesToBeNotified      *string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,omitempty"`
	AlertChannel              *string `url:"alert_channel,omitempty" json:"alert_channel,omitempty"`
	AlertEvents               *bool   `url:"alert_events,omitempty" json:"alert_events,omitempty"`
	ConfidentialIssueChannel  *string `url:"confidential_issue_channel,omitempty" json:"confidential_issue_channel,omitempty"`
	ConfidentialIssuesEvents  *bool   `url:"confidential_issues_events,omitempty" json:"confidential_issues_events,omitempty"`
	ConfidentialNoteChannel   *string `url:"confidential_note_channel,omitempty" json:"confidential_note_channel,omitempty"`
	ConfidentialNoteEvents    *bool   `url:"confidential_note_events,omitempty" json:"confidential_note_events,omitempty"`
	DeploymentChannel         *string `url:"deployment_channel,omitempty" json:"deployment_channel,omitempty"`
	DeploymentEvents          *bool   `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
	IssueChannel              *string `url:"issue_channel,omitempty" json:"issue_channel,omitempty"`
	IssuesEvents              *bool   `url:"issues_events,omitempty" json:"issues_events,omitempty"`
	MergeRequestChannel       *string `url:"merge_request_channel,omitempty" json:"merge_request_channel,omitempty"`
	MergeRequestsEvents       *bool   `url:"merge_requests_events,omitempty" json:"merge_requests_events,omitempty"`
	NoteChannel               *string `url:"note_channel,omitempty" json:"note_channel,omitempty"`
	NoteEvents                *bool   `url:"note_events,omitempty" json:"note_events,omitempty"`
	PipelineChannel           *string `url:"pipeline_channel,omitempty" json:"pipeline_channel,omitempty"`
	PipelineEvents            *bool   `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
	PushChannel               *string `url:"push_channel,omitempty" json:"push_channel,omitempty"`
	PushEvents                *bool   `url:"push_events,omitempty" json:"push_events,omitempty"`
	TagPushChannel            *string `url:"tag_push_channel,omitempty" json:"tag_push_channel,omitempty"`
	TagPushEvents             *bool   `url:"tag_push_events,omitempty" json:"tag_push_events,omitempty"`
	WikiPageChannel           *string `url:"wiki_page_channel,omitempty" json:"wiki_page_channel,omitempty"`
	WikiPageEvents            *bool   `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
}

SetSlackServiceOptions represents the available SetSlackService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-slack-notifications

type SetSlackSlashCommandsServiceOptions added in v0.116.0

type SetSlackSlashCommandsServiceOptions struct {
	Token *string `url:"token,omitempty" json:"token,omitempty"`
}

SetSlackSlashCommandsServiceOptions represents the available SetSlackSlashCommandsService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-slack-slash-commands

type SetTelegramServiceOptions added in v0.116.0

type SetTelegramServiceOptions struct {
	Token                     *string `url:"token,omitempty" json:"token,omitempty"`
	Room                      *string `url:"room,omitempty" json:"room,omitempty"`
	NotifyOnlyBrokenPipelines *bool   `url:"notify_only_broken_pipelines,omitempty" json:"notify_only_broken_pipelines,omitempty"`
	BranchesToBeNotified      *string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,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"`
	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"`
	ConfidentialNoteEvents    *bool   `url:"confidential_note_events,omitempty" json:"confidential_note_events,omitempty"`
	PipelineEvents            *bool   `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
	WikiPageEvents            *bool   `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
}

SetTelegramServiceOptions represents the available SetTelegramService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-telegram

type SetTimeEstimateOptions added in v0.4.0

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

SetTimeEstimateOptions represents the available SetTimeEstimate() options.

GitLab docs: https://docs.gitlab.com/api/issues/#set-a-time-estimate-for-an-issue

type SetYouTrackServiceOptions added in v0.116.0

type SetYouTrackServiceOptions struct {
	IssuesURL   *string `url:"issues_url,omitempty" json:"issues_url,omitempty"`
	ProjectURL  *string `url:"project_url,omitempty" json:"project_url,omitempty"`
	Description *string `url:"description,omitempty" json:"description,omitempty"`
	PushEvents  *bool   `url:"push_events,omitempty" json:"push_events,omitempty"`
}

SetYouTrackServiceOptions represents the available SetYouTrackService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-youtrack

type Settings

type Settings struct {
	ID                                                    int                       `json:"id"`
	AbuseNotificationEmail                                string                    `json:"abuse_notification_email"`
	AdminMode                                             bool                      `json:"admin_mode"`
	AfterSignOutPath                                      string                    `json:"after_sign_out_path"`
	AfterSignUpText                                       string                    `json:"after_sign_up_text"`
	AkismetAPIKey                                         string                    `json:"akismet_api_key"`
	AkismetEnabled                                        bool                      `json:"akismet_enabled"`
	AllowAccountDeletion                                  bool                      `json:"allow_account_deletion"`
	AllowAllIntegrations                                  bool                      `json:"allow_all_integrations"`
	AllowedIntegrations                                   []string                  `json:"allowed_integrations"`
	AllowGroupOwnersToManageLDAP                          bool                      `json:"allow_group_owners_to_manage_ldap"`
	AllowLocalRequestsFromSystemHooks                     bool                      `json:"allow_local_requests_from_system_hooks"`
	AllowLocalRequestsFromWebHooksAndServices             bool                      `json:"allow_local_requests_from_web_hooks_and_services"`
	AllowProjectCreationForGuestAndBelow                  bool                      `json:"allow_project_creation_for_guest_and_below"`
	AllowRunnerRegistrationToken                          bool                      `json:"allow_runner_registration_token"`
	ArchiveBuildsInHumanReadable                          string                    `json:"archive_builds_in_human_readable"`
	ASCIIDocMaxIncludes                                   int                       `json:"asciidoc_max_includes"`
	AssetProxyAllowlist                                   []string                  `json:"asset_proxy_allowlist"`
	AssetProxyEnabled                                     bool                      `json:"asset_proxy_enabled"`
	AssetProxyURL                                         string                    `json:"asset_proxy_url"`
	AssetProxySecretKey                                   string                    `json:"asset_proxy_secret_key"`
	AuthorizedKeysEnabled                                 bool                      `json:"authorized_keys_enabled"`
	AutoBanUserOnExcessiveProjectsDownload                bool                      `json:"auto_ban_user_on_excessive_projects_download"`
	AutocompleteUsers                                     int                       `json:"autocomplete_users"`
	AutocompleteUsersUnauthenticated                      int                       `json:"autocomplete_users_unauthenticated"`
	AutoDevOpsDomain                                      string                    `json:"auto_devops_domain"`
	AutoDevOpsEnabled                                     bool                      `json:"auto_devops_enabled"`
	AutomaticPurchasedStorageAllocation                   bool                      `json:"automatic_purchased_storage_allocation"`
	BulkImportConcurrentPipelineBatchLimit                int                       `json:"bulk_import_concurrent_pipeline_batch_limit"`
	BulkImportEnabled                                     bool                      `json:"bulk_import_enabled"`
	BulkImportMaxDownloadFileSize                         int                       `json:"bulk_import_max_download_file_size"`
	CanCreateGroup                                        bool                      `json:"can_create_group"`
	CheckNamespacePlan                                    bool                      `json:"check_namespace_plan"`
	CIJobLiveTraceEnabled                                 bool                      `json:"ci_job_live_trace_enabled"`
	CIMaxIncludes                                         int                       `json:"ci_max_includes"`
	CIMaxTotalYAMLSizeBytes                               int                       `json:"ci_max_total_yaml_size_bytes"`
	CIPartitionsSizeLimit                                 int                       `json:"ci_partitions_size_limit"`
	CommitEmailHostname                                   string                    `json:"commit_email_hostname"`
	ConcurrentBitbucketImportJobsLimit                    int                       `json:"concurrent_bitbucket_import_jobs_limit"`
	ConcurrentBitbucketServerImportJobsLimit              int                       `json:"concurrent_bitbucket_server_import_jobs_limit"`
	ConcurrentGitHubImportJobsLimit                       int                       `json:"concurrent_github_import_jobs_limit"`
	ContainerExpirationPoliciesEnableHistoricEntries      bool                      `json:"container_expiration_policies_enable_historic_entries"`
	ContainerRegistryCleanupTagsServiceMaxListSize        int                       `json:"container_registry_cleanup_tags_service_max_list_size"`
	ContainerRegistryDeleteTagsServiceTimeout             int                       `json:"container_registry_delete_tags_service_timeout"`
	ContainerRegistryExpirationPoliciesCaching            bool                      `json:"container_registry_expiration_policies_caching"`
	ContainerRegistryExpirationPoliciesWorkerCapacity     int                       `json:"container_registry_expiration_policies_worker_capacity"`
	ContainerRegistryImportCreatedBefore                  *time.Time                `json:"container_registry_import_created_before"`
	ContainerRegistryImportMaxRetries                     int                       `json:"container_registry_import_max_retries"`
	ContainerRegistryImportMaxStepDuration                int                       `json:"container_registry_import_max_step_duration"`
	ContainerRegistryImportMaxTagsCount                   int                       `json:"container_registry_import_max_tags_count"`
	ContainerRegistryImportStartMaxRetries                int                       `json:"container_registry_import_start_max_retries"`
	ContainerRegistryImportTargetPlan                     string                    `json:"container_registry_import_target_plan"`
	ContainerRegistryTokenExpireDelay                     int                       `json:"container_registry_token_expire_delay"`
	CreatedAt                                             *time.Time                `json:"created_at"`
	CustomHTTPCloneURLRoot                                string                    `json:"custom_http_clone_url_root"`
	DNSRebindingProtectionEnabled                         bool                      `json:"dns_rebinding_protection_enabled"`
	DSAKeyRestriction                                     int                       `json:"dsa_key_restriction"`
	DeactivateDormantUsers                                bool                      `json:"deactivate_dormant_users"`
	DeactivateDormantUsersPeriod                          int                       `json:"deactivate_dormant_users_period"`
	DecompressArchiveFileTimeout                          int                       `json:"decompress_archive_file_timeout"`
	DefaultArtifactsExpireIn                              string                    `json:"default_artifacts_expire_in"`
	DefaultBranchName                                     string                    `json:"default_branch_name"`
	DefaultBranchProtectionDefaults                       *BranchProtectionDefaults `json:"default_branch_protection_defaults,omitempty"`
	DefaultCiConfigPath                                   string                    `json:"default_ci_config_path"`
	DefaultGroupVisibility                                VisibilityValue           `json:"default_group_visibility"`
	DefaultPreferredLanguage                              string                    `json:"default_preferred_language"`
	DefaultProjectCreation                                int                       `json:"default_project_creation"`
	DefaultProjectDeletionProtection                      bool                      `json:"default_project_deletion_protection"`
	DefaultProjectVisibility                              VisibilityValue           `json:"default_project_visibility"`
	DefaultProjectsLimit                                  int                       `json:"default_projects_limit"`
	DefaultSnippetVisibility                              VisibilityValue           `json:"default_snippet_visibility"`
	DefaultSyntaxHighlightingTheme                        int                       `json:"default_syntax_highlighting_theme"`
	DelayedGroupDeletion                                  bool                      `json:"delayed_group_deletion"`
	DelayedProjectDeletion                                bool                      `json:"delayed_project_deletion"`
	DeleteInactiveProjects                                bool                      `json:"delete_inactive_projects"`
	DeleteUnconfirmedUsers                                bool                      `json:"delete_unconfirmed_users"`
	DeletionAdjournedPeriod                               int                       `json:"deletion_adjourned_period"`
	DiagramsnetEnabled                                    bool                      `json:"diagramsnet_enabled"`
	DiagramsnetURL                                        string                    `json:"diagramsnet_url"`
	DiffMaxFiles                                          int                       `json:"diff_max_files"`
	DiffMaxLines                                          int                       `json:"diff_max_lines"`
	DiffMaxPatchBytes                                     int                       `json:"diff_max_patch_bytes"`
	DisableAdminOAuthScopes                               bool                      `json:"disable_admin_oauth_scopes"`
	DisableFeedToken                                      bool                      `json:"disable_feed_token"`
	DisableOverridingApproversPerMergeRequest             bool                      `json:"disable_overriding_approvers_per_merge_request"`
	DisablePersonalAccessTokens                           bool                      `json:"disable_personal_access_tokens"`
	DisabledOauthSignInSources                            []string                  `json:"disabled_oauth_sign_in_sources"`
	DomainAllowlist                                       []string                  `json:"domain_allowlist"`
	DomainDenylist                                        []string                  `json:"domain_denylist"`
	DomainDenylistEnabled                                 bool                      `json:"domain_denylist_enabled"`
	DownstreamPipelineTriggerLimitPerProjectUserSHA       int                       `json:"downstream_pipeline_trigger_limit_per_project_user_sha"`
	DuoFeaturesEnabled                                    bool                      `json:"duo_features_enabled"`
	ECDSAKeyRestriction                                   int                       `json:"ecdsa_key_restriction"`
	ECDSASKKeyRestriction                                 int                       `json:"ecdsa_sk_key_restriction"`
	EKSAccessKeyID                                        string                    `json:"eks_access_key_id"`
	EKSAccountID                                          string                    `json:"eks_account_id"`
	EKSIntegrationEnabled                                 bool                      `json:"eks_integration_enabled"`
	EKSSecretAccessKey                                    string                    `json:"eks_secret_access_key"`
	Ed25519KeyRestriction                                 int                       `json:"ed25519_key_restriction"`
	Ed25519SKKeyRestriction                               int                       `json:"ed25519_sk_key_restriction"`
	ElasticsearchAWS                                      bool                      `json:"elasticsearch_aws"`
	ElasticsearchAWSAccessKey                             string                    `json:"elasticsearch_aws_access_key"`
	ElasticsearchAWSRegion                                string                    `json:"elasticsearch_aws_region"`
	ElasticsearchAWSSecretAccessKey                       string                    `json:"elasticsearch_aws_secret_access_key"`
	ElasticsearchAnalyzersKuromojiEnabled                 bool                      `json:"elasticsearch_analyzers_kuromoji_enabled"`
	ElasticsearchAnalyzersKuromojiSearch                  bool                      `json:"elasticsearch_analyzers_kuromoji_search"`
	ElasticsearchAnalyzersSmartCNEnabled                  bool                      `json:"elasticsearch_analyzers_smartcn_enabled"`
	ElasticsearchAnalyzersSmartCNSearch                   bool                      `json:"elasticsearch_analyzers_smartcn_search"`
	ElasticsearchClientRequestTimeout                     int                       `json:"elasticsearch_client_request_timeout"`
	ElasticsearchIndexedFieldLengthLimit                  int                       `json:"elasticsearch_indexed_field_length_limit"`
	ElasticsearchIndexedFileSizeLimitKB                   int                       `json:"elasticsearch_indexed_file_size_limit_kb"`
	ElasticsearchIndexing                                 bool                      `json:"elasticsearch_indexing"`
	ElasticsearchLimitIndexing                            bool                      `json:"elasticsearch_limit_indexing"`
	ElasticsearchMaxBulkConcurrency                       int                       `json:"elasticsearch_max_bulk_concurrency"`
	ElasticsearchMaxBulkSizeMB                            int                       `json:"elasticsearch_max_bulk_size_mb"`
	ElasticsearchMaxCodeIndexingConcurrency               int                       `json:"elasticsearch_max_code_indexing_concurrency"`
	ElasticsearchNamespaceIDs                             []int                     `json:"elasticsearch_namespace_ids"`
	ElasticsearchPassword                                 string                    `json:"elasticsearch_password"`
	ElasticsearchPauseIndexing                            bool                      `json:"elasticsearch_pause_indexing"`
	ElasticsearchProjectIDs                               []int                     `json:"elasticsearch_project_ids"`
	ElasticsearchReplicas                                 int                       `json:"elasticsearch_replicas"`
	ElasticsearchRequeueWorkers                           bool                      `json:"elasticsearch_requeue_workers"`
	ElasticsearchRetryOnFailure                           int                       `json:"elasticsearch_retry_on_failure"`
	ElasticsearchSearch                                   bool                      `json:"elasticsearch_search"`
	ElasticsearchShards                                   int                       `json:"elasticsearch_shards"`
	ElasticsearchURL                                      []string                  `json:"elasticsearch_url"`
	ElasticsearchUsername                                 string                    `json:"elasticsearch_username"`
	ElasticsearchWorkerNumberOfShards                     int                       `json:"elasticsearch_worker_number_of_shards"`
	EmailAdditionalText                                   string                    `json:"email_additional_text"`
	EmailAuthorInBody                                     bool                      `json:"email_author_in_body"`
	EmailConfirmationSetting                              string                    `json:"email_confirmation_setting"`
	EmailRestrictions                                     string                    `json:"email_restrictions"`
	EmailRestrictionsEnabled                              bool                      `json:"email_restrictions_enabled"`
	EnableArtifactExternalRedirectWarningPage             bool                      `json:"enable_artifact_external_redirect_warning_page"`
	EnabledGitAccessProtocol                              string                    `json:"enabled_git_access_protocol"`
	EnforceCIInboundJobTokenScopeEnabled                  bool                      `json:"enforce_ci_inbound_job_token_scope_enabled"`
	EnforceNamespaceStorageLimit                          bool                      `json:"enforce_namespace_storage_limit"`
	EnforcePATExpiration                                  bool                      `json:"enforce_pat_expiration"`
	EnforceSSHKeyExpiration                               bool                      `json:"enforce_ssh_key_expiration"`
	EnforceTerms                                          bool                      `json:"enforce_terms"`
	ExternalAuthClientCert                                string                    `json:"external_auth_client_cert"`
	ExternalAuthClientKey                                 string                    `json:"external_auth_client_key"`
	ExternalAuthClientKeyPass                             string                    `json:"external_auth_client_key_pass"`
	ExternalAuthorizationServiceDefaultLabel              string                    `json:"external_authorization_service_default_label"`
	ExternalAuthorizationServiceEnabled                   bool                      `json:"external_authorization_service_enabled"`
	ExternalAuthorizationServiceTimeout                   float64                   `json:"external_authorization_service_timeout"`
	ExternalAuthorizationServiceURL                       string                    `json:"external_authorization_service_url"`
	ExternalPipelineValidationServiceTimeout              int                       `json:"external_pipeline_validation_service_timeout"`
	ExternalPipelineValidationServiceToken                string                    `json:"external_pipeline_validation_service_token"`
	ExternalPipelineValidationServiceURL                  string                    `json:"external_pipeline_validation_service_url"`
	FailedLoginAttemptsUnlockPeriodInMinutes              int                       `json:"failed_login_attempts_unlock_period_in_minutes"`
	FileTemplateProjectID                                 int                       `json:"file_template_project_id"`
	FirstDayOfWeek                                        int                       `json:"first_day_of_week"`
	FlocEnabled                                           bool                      `json:"floc_enabled"`
	GeoNodeAllowedIPs                                     string                    `json:"geo_node_allowed_ips"`
	GeoStatusTimeout                                      int                       `json:"geo_status_timeout"`
	GitRateLimitUsersAlertlist                            []int                     `json:"git_rate_limit_users_alertlist"`
	GitTwoFactorSessionExpiry                             int                       `json:"git_two_factor_session_expiry"`
	GitalyTimeoutDefault                                  int                       `json:"gitaly_timeout_default"`
	GitalyTimeoutFast                                     int                       `json:"gitaly_timeout_fast"`
	GitalyTimeoutMedium                                   int                       `json:"gitaly_timeout_medium"`
	GitlabDedicatedInstance                               bool                      `json:"gitlab_dedicated_instance"`
	GitlabEnvironmentToolkitInstance                      bool                      `json:"gitlab_environment_toolkit_instance"`
	GitlabShellOperationLimit                             int                       `json:"gitlab_shell_operation_limit"`
	GitpodEnabled                                         bool                      `json:"gitpod_enabled"`
	GitpodURL                                             string                    `json:"gitpod_url"`
	GitRateLimitUsersAllowlist                            []string                  `json:"git_rate_limit_users_allowlist"`
	GloballyAllowedIPs                                    string                    `json:"globally_allowed_ips"`
	GrafanaEnabled                                        bool                      `json:"grafana_enabled"`
	GrafanaURL                                            string                    `json:"grafana_url"`
	GravatarEnabled                                       bool                      `json:"gravatar_enabled"`
	GroupDownloadExportLimit                              int                       `json:"group_download_export_limit"`
	GroupExportLimit                                      int                       `json:"group_export_limit"`
	GroupImportLimit                                      int                       `json:"group_import_limit"`
	GroupOwnersCanManageDefaultBranchProtection           bool                      `json:"group_owners_can_manage_default_branch_protection"`
	GroupRunnerTokenExpirationInterval                    int                       `json:"group_runner_token_expiration_interval"`
	HTMLEmailsEnabled                                     bool                      `json:"html_emails_enabled"`
	HashedStorageEnabled                                  bool                      `json:"hashed_storage_enabled"`
	HelpPageDocumentationBaseURL                          string                    `json:"help_page_documentation_base_url"`
	HelpPageHideCommercialContent                         bool                      `json:"help_page_hide_commercial_content"`
	HelpPageSupportURL                                    string                    `json:"help_page_support_url"`
	HelpPageText                                          string                    `json:"help_page_text"`
	HelpText                                              string                    `json:"help_text"`
	HideThirdPartyOffers                                  bool                      `json:"hide_third_party_offers"`
	HomePageURL                                           string                    `json:"home_page_url"`
	HousekeepingEnabled                                   bool                      `json:"housekeeping_enabled"`
	HousekeepingOptimizeRepositoryPeriod                  int                       `json:"housekeeping_optimize_repository_period"`
	ImportSources                                         []string                  `json:"import_sources"`
	InactiveProjectsDeleteAfterMonths                     int                       `json:"inactive_projects_delete_after_months"`
	InactiveProjectsMinSizeMB                             int                       `json:"inactive_projects_min_size_mb"`
	InactiveProjectsSendWarningEmailAfterMonths           int                       `json:"inactive_projects_send_warning_email_after_months"`
	IncludeOptionalMetricsInServicePing                   bool                      `json:"include_optional_metrics_in_service_ping"`
	InProductMarketingEmailsEnabled                       bool                      `json:"in_product_marketing_emails_enabled"`
	InvisibleCaptchaEnabled                               bool                      `json:"invisible_captcha_enabled"`
	IssuesCreateLimit                                     int                       `json:"issues_create_limit"`
	JiraConnectApplicationKey                             string                    `json:"jira_connect_application_key"`
	JiraConnectPublicKeyStorageEnabled                    bool                      `json:"jira_connect_public_key_storage_enabled"`
	JiraConnectProxyURL                                   string                    `json:"jira_connect_proxy_url"`
	KeepLatestArtifact                                    bool                      `json:"keep_latest_artifact"`
	KrokiEnabled                                          bool                      `json:"kroki_enabled"`
	KrokiFormats                                          map[string]bool           `json:"kroki_formats"`
	KrokiURL                                              string                    `json:"kroki_url"`
	LocalMarkdownVersion                                  int                       `json:"local_markdown_version"`
	LockDuoFeaturesEnabled                                bool                      `json:"lock_duo_features_enabled"`
	LockMembershipsToLDAP                                 bool                      `json:"lock_memberships_to_ldap"`
	LoginRecaptchaProtectionEnabled                       bool                      `json:"login_recaptcha_protection_enabled"`
	MailgunEventsEnabled                                  bool                      `json:"mailgun_events_enabled"`
	MailgunSigningKey                                     string                    `json:"mailgun_signing_key"`
	MaintenanceMode                                       bool                      `json:"maintenance_mode"`
	MaintenanceModeMessage                                string                    `json:"maintenance_mode_message"`
	MavenPackageRequestsForwarding                        bool                      `json:"maven_package_requests_forwarding"`
	MaxArtifactsSize                                      int                       `json:"max_artifacts_size"`
	MaxAttachmentSize                                     int                       `json:"max_attachment_size"`
	MaxDecompressedArchiveSize                            int                       `json:"max_decompressed_archive_size"`
	MaxExportSize                                         int                       `json:"max_export_size"`
	MaxImportRemoteFileSize                               int                       `json:"max_import_remote_file_size"`
	MaxImportSize                                         int                       `json:"max_import_size"`
	MaxLoginAttempts                                      int                       `json:"max_login_attempts"`
	MaxNumberOfRepositoryDownloads                        int                       `json:"max_number_of_repository_downloads"`
	MaxNumberOfRepositoryDownloadsWithinTimePeriod        int                       `json:"max_number_of_repository_downloads_within_time_period"`
	MaxPagesSize                                          int                       `json:"max_pages_size"`
	MaxPersonalAccessTokenLifetime                        int                       `json:"max_personal_access_token_lifetime"`
	MaxSSHKeyLifetime                                     int                       `json:"max_ssh_key_lifetime"`
	MaxTerraformStateSizeBytes                            int                       `json:"max_terraform_state_size_bytes"`
	MaxYAMLDepth                                          int                       `json:"max_yaml_depth"`
	MaxYAMLSizeBytes                                      int                       `json:"max_yaml_size_bytes"`
	MetricsMethodCallThreshold                            int                       `json:"metrics_method_call_threshold"`
	MinimumPasswordLength                                 int                       `json:"minimum_password_length"`
	MirrorAvailable                                       bool                      `json:"mirror_available"`
	MirrorCapacityThreshold                               int                       `json:"mirror_capacity_threshold"`
	MirrorMaxCapacity                                     int                       `json:"mirror_max_capacity"`
	MirrorMaxDelay                                        int                       `json:"mirror_max_delay"`
	NPMPackageRequestsForwarding                          bool                      `json:"npm_package_requests_forwarding"`
	NotesCreateLimit                                      int                       `json:"notes_create_limit"`
	NotifyOnUnknownSignIn                                 bool                      `json:"notify_on_unknown_sign_in"`
	NugetSkipMetadataURLValidation                        bool                      `json:"nuget_skip_metadata_url_validation"`
	OutboundLocalRequestsAllowlistRaw                     string                    `json:"outbound_local_requests_allowlist_raw"`
	OutboundLocalRequestsWhitelist                        []string                  `json:"outbound_local_requests_whitelist"`
	PackageMetadataPURLTypes                              []int                     `json:"package_metadata_purl_types"`
	PackageRegistryAllowAnyoneToPullOption                bool                      `json:"package_registry_allow_anyone_to_pull_option"`
	PackageRegistryCleanupPoliciesWorkerCapacity          int                       `json:"package_registry_cleanup_policies_worker_capacity"`
	PagesDomainVerificationEnabled                        bool                      `json:"pages_domain_verification_enabled"`
	PasswordAuthenticationEnabledForGit                   bool                      `json:"password_authentication_enabled_for_git"`
	PasswordAuthenticationEnabledForWeb                   bool                      `json:"password_authentication_enabled_for_web"`
	PasswordNumberRequired                                bool                      `json:"password_number_required"`
	PasswordSymbolRequired                                bool                      `json:"password_symbol_required"`
	PasswordUppercaseRequired                             bool                      `json:"password_uppercase_required"`
	PasswordLowercaseRequired                             bool                      `json:"password_lowercase_required"`
	PerformanceBarAllowedGroupPath                        string                    `json:"performance_bar_allowed_group_path"`
	PersonalAccessTokenPrefix                             string                    `json:"personal_access_token_prefix"`
	PipelineLimitPerProjectUserSha                        int                       `json:"pipeline_limit_per_project_user_sha"`
	PlantumlEnabled                                       bool                      `json:"plantuml_enabled"`
	PlantumlURL                                           string                    `json:"plantuml_url"`
	PollingIntervalMultiplier                             float64                   `json:"polling_interval_multiplier,string"`
	PreventMergeRequestsAuthorApproval                    bool                      `json:"prevent_merge_request_author_approval"`
	PreventMergeRequestsCommittersApproval                bool                      `json:"prevent_merge_request_committers_approval"`
	ProjectDownloadExportLimit                            int                       `json:"project_download_export_limit"`
	ProjectExportEnabled                                  bool                      `json:"project_export_enabled"`
	ProjectExportLimit                                    int                       `json:"project_export_limit"`
	ProjectImportLimit                                    int                       `json:"project_import_limit"`
	ProjectJobsAPIRateLimit                               int                       `json:"project_jobs_api_rate_limit"`
	ProjectRunnerTokenExpirationInterval                  int                       `json:"project_runner_token_expiration_interval"`
	ProjectsAPIRateLimitUnauthenticated                   int                       `json:"projects_api_rate_limit_unauthenticated"`
	PrometheusMetricsEnabled                              bool                      `json:"prometheus_metrics_enabled"`
	ProtectedCIVariables                                  bool                      `json:"protected_ci_variables"`
	PseudonymizerEnabled                                  bool                      `json:"pseudonymizer_enabled"`
	PushEventActivitiesLimit                              int                       `json:"push_event_activities_limit"`
	PushEventHooksLimit                                   int                       `json:"push_event_hooks_limit"`
	PyPIPackageRequestsForwarding                         bool                      `json:"pypi_package_requests_forwarding"`
	RSAKeyRestriction                                     int                       `json:"rsa_key_restriction"`
	RateLimitingResponseText                              string                    `json:"rate_limiting_response_text"`
	RawBlobRequestLimit                                   int                       `json:"raw_blob_request_limit"`
	RecaptchaEnabled                                      bool                      `json:"recaptcha_enabled"`
	RecaptchaPrivateKey                                   string                    `json:"recaptcha_private_key"`
	RecaptchaSiteKey                                      string                    `json:"recaptcha_site_key"`
	ReceiveMaxInputSize                                   int                       `json:"receive_max_input_size"`
	ReceptiveClusterAgentsEnabled                         bool                      `json:"receptive_cluster_agents_enabled"`
	RememberMeEnabled                                     bool                      `json:"remember_me_enabled"`
	RepositoryChecksEnabled                               bool                      `json:"repository_checks_enabled"`
	RepositorySizeLimit                                   int                       `json:"repository_size_limit"`
	RepositoryStorages                                    []string                  `json:"repository_storages"`
	RepositoryStoragesWeighted                            map[string]int            `json:"repository_storages_weighted"`
	RequireAdminApprovalAfterUserSignup                   bool                      `json:"require_admin_approval_after_user_signup"`
	RequireAdminTwoFactorAuthentication                   bool                      `json:"require_admin_two_factor_authentication"`
	RequirePersonalAccessTokenExpiry                      bool                      `json:"require_personal_access_token_expiry"`
	RequireTwoFactorAuthentication                        bool                      `json:"require_two_factor_authentication"`
	RestrictedVisibilityLevels                            []VisibilityValue         `json:"restricted_visibility_levels"`
	RunnerTokenExpirationInterval                         int                       `json:"runner_token_expiration_interval"`
	SearchRateLimit                                       int                       `json:"search_rate_limit"`
	SearchRateLimitUnauthenticated                        int                       `json:"search_rate_limit_unauthenticated"`
	SecretDetectionRevocationTokenTypesURL                string                    `json:"secret_detection_revocation_token_types_url"`
	SecretDetectionTokenRevocationEnabled                 bool                      `json:"secret_detection_token_revocation_enabled"`
	SecretDetectionTokenRevocationToken                   string                    `json:"secret_detection_token_revocation_token"`
	SecretDetectionTokenRevocationURL                     string                    `json:"secret_detection_token_revocation_url"`
	SecurityApprovalPoliciesLimit                         int                       `json:"security_approval_policies_limit"`
	SecurityPolicyGlobalGroupApproversEnabled             bool                      `json:"security_policy_global_group_approvers_enabled"`
	SecurityTXTContent                                    string                    `json:"security_txt_content"`
	SendUserConfirmationEmail                             bool                      `json:"send_user_confirmation_email"`
	SentryClientsideDSN                                   string                    `json:"sentry_clientside_dsn"`
	SentryDSN                                             string                    `json:"sentry_dsn"`
	SentryEnabled                                         bool                      `json:"sentry_enabled"`
	SentryEnvironment                                     string                    `json:"sentry_environment"`
	ServiceAccessTokensExpirationEnforced                 bool                      `json:"service_access_tokens_expiration_enforced"`
	SessionExpireDelay                                    int                       `json:"session_expire_delay"`
	SharedRunnersEnabled                                  bool                      `json:"shared_runners_enabled"`
	SharedRunnersMinutes                                  int                       `json:"shared_runners_minutes"`
	SharedRunnersText                                     string                    `json:"shared_runners_text"`
	SidekiqJobLimiterCompressionThresholdBytes            int                       `json:"sidekiq_job_limiter_compression_threshold_bytes"`
	SidekiqJobLimiterLimitBytes                           int                       `json:"sidekiq_job_limiter_limit_bytes"`
	SidekiqJobLimiterMode                                 string                    `json:"sidekiq_job_limiter_mode"`
	SignInText                                            string                    `json:"sign_in_text"`
	SignupEnabled                                         bool                      `json:"signup_enabled"`
	SilentAdminExportsEnabled                             bool                      `json:"silent_admin_exports_enabled"`
	SilentModeEnabled                                     bool                      `json:"silent_mode_enabled"`
	SlackAppEnabled                                       bool                      `json:"slack_app_enabled"`
	SlackAppID                                            string                    `json:"slack_app_id"`
	SlackAppSecret                                        string                    `json:"slack_app_secret"`
	SlackAppSigningSecret                                 string                    `json:"slack_app_signing_secret"`
	SlackAppVerificationToken                             string                    `json:"slack_app_verification_token"`
	SnippetSizeLimit                                      int                       `json:"snippet_size_limit"`
	SnowplowAppID                                         string                    `json:"snowplow_app_id"`
	SnowplowCollectorHostname                             string                    `json:"snowplow_collector_hostname"`
	SnowplowCookieDomain                                  string                    `json:"snowplow_cookie_domain"`
	SnowplowDatabaseCollectorHostname                     string                    `json:"snowplow_database_collector_hostname"`
	SnowplowEnabled                                       bool                      `json:"snowplow_enabled"`
	SourcegraphEnabled                                    bool                      `json:"sourcegraph_enabled"`
	SourcegraphPublicOnly                                 bool                      `json:"sourcegraph_public_only"`
	SourcegraphURL                                        string                    `json:"sourcegraph_url"`
	SpamCheckAPIKey                                       string                    `json:"spam_check_api_key"`
	SpamCheckEndpointEnabled                              bool                      `json:"spam_check_endpoint_enabled"`
	SpamCheckEndpointURL                                  string                    `json:"spam_check_endpoint_url"`
	StaticObjectsExternalStorageAuthToken                 string                    `json:"static_objects_external_storage_auth_token"`
	StaticObjectsExternalStorageURL                       string                    `json:"static_objects_external_storage_url"`
	SuggestPipelineEnabled                                bool                      `json:"suggest_pipeline_enabled"`
	TerminalMaxSessionTime                                int                       `json:"terminal_max_session_time"`
	Terms                                                 string                    `json:"terms"`
	ThrottleAuthenticatedAPIEnabled                       bool                      `json:"throttle_authenticated_api_enabled"`
	ThrottleAuthenticatedAPIPeriodInSeconds               int                       `json:"throttle_authenticated_api_period_in_seconds"`
	ThrottleAuthenticatedAPIRequestsPerPeriod             int                       `json:"throttle_authenticated_api_requests_per_period"`
	ThrottleAuthenticatedDeprecatedAPIEnabled             bool                      `json:"throttle_authenticated_deprecated_api_enabled"`
	ThrottleAuthenticatedDeprecatedAPIPeriodInSeconds     int                       `json:"throttle_authenticated_deprecated_api_period_in_seconds"`
	ThrottleAuthenticatedDeprecatedAPIRequestsPerPeriod   int                       `json:"throttle_authenticated_deprecated_api_requests_per_period"`
	ThrottleAuthenticatedFilesAPIEnabled                  bool                      `json:"throttle_authenticated_files_api_enabled"`
	ThrottleAuthenticatedFilesAPIPeriodInSeconds          int                       `json:"throttle_authenticated_files_api_period_in_seconds"`
	ThrottleAuthenticatedFilesAPIRequestsPerPeriod        int                       `json:"throttle_authenticated_files_api_requests_per_period"`
	ThrottleAuthenticatedGitLFSEnabled                    bool                      `json:"throttle_authenticated_git_lfs_enabled"`
	ThrottleAuthenticatedGitLFSPeriodInSeconds            int                       `json:"throttle_authenticated_git_lfs_period_in_seconds"`
	ThrottleAuthenticatedGitLFSRequestsPerPeriod          int                       `json:"throttle_authenticated_git_lfs_requests_per_period"`
	ThrottleAuthenticatedPackagesAPIEnabled               bool                      `json:"throttle_authenticated_packages_api_enabled"`
	ThrottleAuthenticatedPackagesAPIPeriodInSeconds       int                       `json:"throttle_authenticated_packages_api_period_in_seconds"`
	ThrottleAuthenticatedPackagesAPIRequestsPerPeriod     int                       `json:"throttle_authenticated_packages_api_requests_per_period"`
	ThrottleAuthenticatedWebEnabled                       bool                      `json:"throttle_authenticated_web_enabled"`
	ThrottleAuthenticatedWebPeriodInSeconds               int                       `json:"throttle_authenticated_web_period_in_seconds"`
	ThrottleAuthenticatedWebRequestsPerPeriod             int                       `json:"throttle_authenticated_web_requests_per_period"`
	ThrottleIncidentManagementNotificationEnabled         bool                      `json:"throttle_incident_management_notification_enabled"`
	ThrottleIncidentManagementNotificationPerPeriod       int                       `json:"throttle_incident_management_notification_per_period"`
	ThrottleIncidentManagementNotificationPeriodInSeconds int                       `json:"throttle_incident_management_notification_period_in_seconds"`
	ThrottleProtectedPathsEnabled                         bool                      `json:"throttle_protected_paths_enabled"`
	ThrottleProtectedPathsPeriodInSeconds                 int                       `json:"throttle_protected_paths_period_in_seconds"`
	ThrottleProtectedPathsRequestsPerPeriod               int                       `json:"throttle_protected_paths_requests_per_period"`
	ThrottleUnauthenticatedAPIEnabled                     bool                      `json:"throttle_unauthenticated_api_enabled"`
	ThrottleUnauthenticatedAPIPeriodInSeconds             int                       `json:"throttle_unauthenticated_api_period_in_seconds"`
	ThrottleUnauthenticatedAPIRequestsPerPeriod           int                       `json:"throttle_unauthenticated_api_requests_per_period"`
	ThrottleUnauthenticatedDeprecatedAPIEnabled           bool                      `json:"throttle_unauthenticated_deprecated_api_enabled"`
	ThrottleUnauthenticatedDeprecatedAPIPeriodInSeconds   int                       `json:"throttle_unauthenticated_deprecated_api_period_in_seconds"`
	ThrottleUnauthenticatedDeprecatedAPIRequestsPerPeriod int                       `json:"throttle_unauthenticated_deprecated_api_requests_per_period"`
	ThrottleUnauthenticatedFilesAPIEnabled                bool                      `json:"throttle_unauthenticated_files_api_enabled"`
	ThrottleUnauthenticatedFilesAPIPeriodInSeconds        int                       `json:"throttle_unauthenticated_files_api_period_in_seconds"`
	ThrottleUnauthenticatedFilesAPIRequestsPerPeriod      int                       `json:"throttle_unauthenticated_files_api_requests_per_period"`
	ThrottleUnauthenticatedGitLFSEnabled                  bool                      `json:"throttle_unauthenticated_git_lfs_enabled"`
	ThrottleUnauthenticatedGitLFSPeriodInSeconds          int                       `json:"throttle_unauthenticated_git_lfs_period_in_seconds"`
	ThrottleUnauthenticatedGitLFSRequestsPerPeriod        int                       `json:"throttle_unauthenticated_git_lfs_requests_per_period"`
	ThrottleUnauthenticatedPackagesAPIEnabled             bool                      `json:"throttle_unauthenticated_packages_api_enabled"`
	ThrottleUnauthenticatedPackagesAPIPeriodInSeconds     int                       `json:"throttle_unauthenticated_packages_api_period_in_seconds"`
	ThrottleUnauthenticatedPackagesAPIRequestsPerPeriod   int                       `json:"throttle_unauthenticated_packages_api_requests_per_period"`
	ThrottleUnauthenticatedWebEnabled                     bool                      `json:"throttle_unauthenticated_web_enabled"`
	ThrottleUnauthenticatedWebPeriodInSeconds             int                       `json:"throttle_unauthenticated_web_period_in_seconds"`
	ThrottleUnauthenticatedWebRequestsPerPeriod           int                       `json:"throttle_unauthenticated_web_requests_per_period"`
	TimeTrackingLimitToHours                              bool                      `json:"time_tracking_limit_to_hours"`
	TwoFactorGracePeriod                                  int                       `json:"two_factor_grace_period"`
	UnconfirmedUsersDeleteAfterDays                       int                       `json:"unconfirmed_users_delete_after_days"`
	UniqueIPsLimitEnabled                                 bool                      `json:"unique_ips_limit_enabled"`
	UniqueIPsLimitPerUser                                 int                       `json:"unique_ips_limit_per_user"`
	UniqueIPsLimitTimeWindow                              int                       `json:"unique_ips_limit_time_window"`
	UpdateRunnerVersionsEnabled                           bool                      `json:"update_runner_versions_enabled"`
	UpdatedAt                                             *time.Time                `json:"updated_at"`
	UpdatingNameDisabledForUsers                          bool                      `json:"updating_name_disabled_for_users"`
	UsagePingEnabled                                      bool                      `json:"usage_ping_enabled"`
	UsagePingFeaturesEnabled                              bool                      `json:"usage_ping_features_enabled"`
	UseClickhouseForAnalytics                             bool                      `json:"use_clickhouse_for_analytics"`
	UserDeactivationEmailsEnabled                         bool                      `json:"user_deactivation_emails_enabled"`
	UserDefaultExternal                                   bool                      `json:"user_default_external"`
	UserDefaultInternalRegex                              string                    `json:"user_default_internal_regex"`
	UserDefaultsToPrivateProfile                          bool                      `json:"user_defaults_to_private_profile"`
	UserOauthApplications                                 bool                      `json:"user_oauth_applications"`
	UserShowAddSSHKeyMessage                              bool                      `json:"user_show_add_ssh_key_message"`
	UsersGetByIDLimit                                     int                       `json:"users_get_by_id_limit"`
	UsersGetByIDLimitAllowlistRaw                         string                    `json:"users_get_by_id_limit_allowlist_raw"`
	ValidRunnerRegistrars                                 []string                  `json:"valid_runner_registrars"`
	VersionCheckEnabled                                   bool                      `json:"version_check_enabled"`
	WebIDEClientsidePreviewEnabled                        bool                      `json:"web_ide_clientside_preview_enabled"`
	WhatsNewVariant                                       string                    `json:"whats_new_variant"`
	WikiPageMaxContentBytes                               int                       `json:"wiki_page_max_content_bytes"`

	// Deprecated: Use DefaultBranchProtectionDefaults instead.
	DefaultBranchProtection int `json:"default_branch_protection"`
	// Deprecated: Cannot be set through the API, always true
	HousekeepingBitmapsEnabled bool `json:"housekeeping_bitmaps_enabled"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingFullRepackPeriod int `json:"housekeeping_full_repack_period"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingGcPeriod int `json:"housekeeping_gc_period"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingIncrementalRepackPeriod int `json:"housekeeping_incremental_repack_period"`
	// Deprecated: use PerformanceBarAllowedGroupPath instead
	PerformanceBarAllowedGroupID int `json:"performance_bar_allowed_group_id"`
	// Deprecated: use PerformanceBarAllowedGroupPath: nil instead
	PerformanceBarEnabled bool `json:"performance_bar_enabled"`
	// Deprecated: Use AbuseNotificationEmail instead.
	AdminNotificationEmail string `json:"admin_notification_email"`
	// Deprecated: Use AllowLocalRequestsFromWebHooksAndServices instead.
	AllowLocalRequestsFromHooksAndServices bool `json:"allow_local_requests_from_hooks_and_services"`
	// Deprecated: Use AssetProxyAllowlist instead.
	AssetProxyWhitelist []string `json:"asset_proxy_whitelist"`
	// Deprecated: Use ThrottleUnauthenticatedWebEnabled or ThrottleUnauthenticatedAPIEnabled instead. (Deprecated in GitLab 14.3)
	ThrottleUnauthenticatedEnabled bool `json:"throttle_unauthenticated_enabled"`
	// Deprecated: Use ThrottleUnauthenticatedWebPeriodInSeconds or ThrottleUnauthenticatedAPIPeriodInSeconds instead. (Deprecated in GitLab 14.3)
	ThrottleUnauthenticatedPeriodInSeconds int `json:"throttle_unauthenticated_period_in_seconds"`
	// Deprecated: Use ThrottleUnauthenticatedWebRequestsPerPeriod or ThrottleUnauthenticatedAPIRequestsPerPeriod instead. (Deprecated in GitLab 14.3)
	ThrottleUnauthenticatedRequestsPerPeriod int `json:"throttle_unauthenticated_requests_per_period"`
	// Deprecated: Replaced by SearchRateLimit in GitLab 14.9 (removed in 15.0).
	UserEmailLookupLimit int `json:"user_email_lookup_limit"`
}

Settings represents the GitLab application settings.

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

The available parameters have been modeled directly after the code, as the documentation seems to be inaccurate.

https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/lib/api/settings.rb https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/lib/api/entities/application_setting.rb#L5 https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/app/helpers/application_settings_helper.rb#L192 https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/ee/lib/ee/api/helpers/settings_helpers.rb#L10 https://gitlab.com/gitlab-org/gitlab/-/blob/v14.9.3-ee/ee/app/helpers/ee/application_settings_helper.rb#L20

func (Settings) String

func (s Settings) String() string

func (*Settings) UnmarshalJSON added in v0.116.0

func (s *Settings) UnmarshalJSON(data []byte) error

Settings requires a custom unmarshaller in order to properly unmarshal `container_registry_import_created_before` which is either a time.Time or an empty string if no value is set.

type SettingsService

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

SettingsService handles communication with the application SettingsService related methods of the GitLab API.

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

func (*SettingsService) GetSettings

func (s *SettingsService) GetSettings(options ...RequestOptionFunc) (*Settings, *Response, error)

GetSettings gets the current application settings.

GitLab API docs: https://docs.gitlab.com/api/settings/#get-details-on-current-application-settings

func (*SettingsService) UpdateSettings

func (s *SettingsService) UpdateSettings(opt *UpdateSettingsOptions, options ...RequestOptionFunc) (*Settings, *Response, error)

UpdateSettings updates the application settings.

GitLab API docs: https://docs.gitlab.com/api/settings/#update-application-settings

type SettingsServiceInterface added in v0.126.0

type SettingsServiceInterface interface {
	GetSettings(options ...RequestOptionFunc) (*Settings, *Response, error)
	UpdateSettings(opt *UpdateSettingsOptions, options ...RequestOptionFunc) (*Settings, *Response, error)
}

type ShareGroupWithGroupOptions added in v0.116.0

type ShareGroupWithGroupOptions struct {
	GroupID      *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	GroupAccess  *AccessLevelValue `url:"group_access,omitempty" json:"group_access,omitempty"`
	ExpiresAt    *ISOTime          `url:"expires_at,omitempty" json:"expires_at,omitempty"`
	MemberRoleID *int              `url:"member_role_id,omitempty" json:"member_role_id,omitempty"`
}

ShareGroupWithGroupOptions represents the available ShareGroupWithGroup() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#share-groups-with-groups

type ShareWithGroupOptions added in v0.6.0

type ShareWithGroupOptions struct {
	ExpiresAt   *string           `url:"expires_at" json:"expires_at"`
	GroupAccess *AccessLevelValue `url:"group_access" json:"group_access"`
	GroupID     *int              `url:"group_id" json:"group_id"`
}

ShareWithGroupOptions represents the available SharedWithGroup() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#share-a-project-with-a-group

type SharedRunnersSettingValue added in v0.116.0

type SharedRunnersSettingValue string

SharedRunnersSettingValue determines whether shared runners are enabled for a group’s subgroups and projects.

GitLab API docs: https://docs.gitlab.com/api/groups/#options-for-shared_runners_setting

const (
	EnabledSharedRunnersSettingValue                  SharedRunnersSettingValue = "enabled"
	DisabledAndOverridableSharedRunnersSettingValue   SharedRunnersSettingValue = "disabled_and_overridable"
	DisabledAndUnoverridableSharedRunnersSettingValue SharedRunnersSettingValue = "disabled_and_unoverridable"

	// Deprecated: DisabledWithOverrideSharedRunnersSettingValue is deprecated
	// in favor of DisabledAndOverridableSharedRunnersSettingValue.
	DisabledWithOverrideSharedRunnersSettingValue SharedRunnersSettingValue = "disabled_with_override"
)

List of available shared runner setting levels.

GitLab API docs: https://docs.gitlab.com/api/groups/#options-for-shared_runners_setting

type SharedWithGroup added in v0.124.0

type SharedWithGroup struct {
	GroupID          int      `json:"group_id"`
	GroupName        string   `json:"group_name"`
	GroupFullPath    string   `json:"group_full_path"`
	GroupAccessLevel int      `json:"group_access_level"`
	ExpiresAt        *ISOTime `json:"expires_at"`
	MemberRoleID     int      `json:"member_role_id"`
}

SharedWithGroup represents a GitLab group shared with a group.

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

type ShowMergeRequestRawDiffsOptions added in v0.121.0

type ShowMergeRequestRawDiffsOptions struct{}

ShowMergeRequestRawDiffsOptions represents the available ShowMergeRequestRawDiffs() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#show-merge-request-raw-diffs

type SidekiqService added in v0.8.1

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

SidekiqService handles communication with the sidekiq service

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

func (*SidekiqService) GetCompoundMetrics added in v0.8.1

func (s *SidekiqService) GetCompoundMetrics(options ...RequestOptionFunc) (*CompoundMetrics, *Response, error)

GetCompoundMetrics lists all the currently available information about Sidekiq. Get a compound response of all the previously mentioned metrics

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

func (*SidekiqService) GetJobStats added in v0.8.1

func (s *SidekiqService) GetJobStats(options ...RequestOptionFunc) (*JobStats, *Response, error)

GetJobStats list information about the jobs that Sidekiq has performed.

GitLab API docs: https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-job-statistics

func (*SidekiqService) GetProcessMetrics added in v0.8.1

func (s *SidekiqService) GetProcessMetrics(options ...RequestOptionFunc) (*ProcessMetrics, *Response, error)

GetProcessMetrics lists information about all the Sidekiq workers registered to process your queues.

GitLab API docs: https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-process-metrics

func (*SidekiqService) GetQueueMetrics added in v0.8.1

func (s *SidekiqService) GetQueueMetrics(options ...RequestOptionFunc) (*QueueMetrics, *Response, error)

GetQueueMetrics lists information about all the registered queues, their backlog and their latency.

GitLab API docs: https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-queue-metrics

type SidekiqServiceInterface added in v0.126.0

type SidekiqServiceInterface interface {
	GetQueueMetrics(options ...RequestOptionFunc) (*QueueMetrics, *Response, error)
	GetProcessMetrics(options ...RequestOptionFunc) (*ProcessMetrics, *Response, error)
	GetJobStats(options ...RequestOptionFunc) (*JobStats, *Response, error)
	GetCompoundMetrics(options ...RequestOptionFunc) (*CompoundMetrics, *Response, error)
}

type SlackApplication added in v0.116.0

type SlackApplication struct {
	Service
	Properties *SlackApplicationProperties `json:"properties"`
}

SlackApplication represents GitLab for slack application settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#gitlab-for-slack-app

type SlackApplicationProperties added in v0.116.0

type SlackApplicationProperties struct {
	Channel                    string `json:"channel"`
	NotifyOnlyBrokenPipelines  bool   `json:"notify_only_broken_pipelines"`
	BranchesToBeNotified       string `json:"branches_to_be_notified"`
	LabelsToBeNotified         string `json:"labels_to_be_notified"`
	LabelsToBeNotifiedBehavior string `json:"labels_to_be_notified_behavior"`
	PushChannel                string `json:"push_channel"`
	IssueChannel               string `json:"issue_channel"`
	ConfidentialIssueChannel   string `json:"confidential_issue_channel"`
	MergeRequestChannel        string `json:"merge_request_channel"`
	NoteChannel                string `json:"note_channel"`
	ConfidentialNoteChannel    string `json:"confidential_note_channel"`
	TagPushChannel             string `json:"tag_push_channel"`
	PipelineChannel            string `json:"pipeline_channel"`
	WikiPageChannel            string `json:"wiki_page_channel"`
	DeploymentChannel          string `json:"deployment_channel"`
	IncidentChannel            string `json:"incident_channel"`
	VulnerabilityChannel       string `json:"vulnerability_channel"`
	AlertChannel               string `json:"alert_channel"`

	// Deprecated: This parameter has been replaced with BranchesToBeNotified.
	NotifyOnlyDefaultBranch bool `json:"notify_only_default_branch"`
}

SlackApplicationProperties represents GitLab for slack application specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#gitlab-for-slack-app

type SlackService added in v0.6.2

type SlackService struct {
	Service
	Properties *SlackServiceProperties `json:"properties"`
}

SlackService represents Slack service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#slack-notifications

type SlackServiceProperties added in v0.6.2

type SlackServiceProperties struct {
	WebHook                   string    `json:"webhook"`
	Username                  string    `json:"username"`
	Channel                   string    `json:"channel"`
	NotifyOnlyBrokenPipelines BoolValue `json:"notify_only_broken_pipelines"`
	NotifyOnlyDefaultBranch   BoolValue `json:"notify_only_default_branch"`
	BranchesToBeNotified      string    `json:"branches_to_be_notified"`
	AlertChannel              string    `json:"alert_channel"`
	ConfidentialIssueChannel  string    `json:"confidential_issue_channel"`
	ConfidentialNoteChannel   string    `json:"confidential_note_channel"`
	DeploymentChannel         string    `json:"deployment_channel"`
	IssueChannel              string    `json:"issue_channel"`
	MergeRequestChannel       string    `json:"merge_request_channel"`
	NoteChannel               string    `json:"note_channel"`
	TagPushChannel            string    `json:"tag_push_channel"`
	PipelineChannel           string    `json:"pipeline_channel"`
	PushChannel               string    `json:"push_channel"`
	VulnerabilityChannel      string    `json:"vulnerability_channel"`
	WikiPageChannel           string    `json:"wiki_page_channel"`
}

SlackServiceProperties represents Slack specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#slack-notifications

type SlackSlashCommandsProperties added in v0.116.0

type SlackSlashCommandsProperties struct {
	Token string `json:"token"`
}

SlackSlashCommandsProperties represents Slack slash commands specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#slack-slash-commands

type SlackSlashCommandsService added in v0.116.0

type SlackSlashCommandsService struct {
	Service
	Properties *SlackSlashCommandsProperties `json:"properties"`
}

SlackSlashCommandsService represents Slack slash commands settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#slack-slash-commands

type Snippet

type Snippet struct {
	ID          int    `json:"id"`
	Title       string `json:"title"`
	FileName    string `json:"file_name"`
	Description string `json:"description"`
	Visibility  string `json:"visibility"`
	Author      struct {
		ID        int        `json:"id"`
		Username  string     `json:"username"`
		Email     string     `json:"email"`
		Name      string     `json:"name"`
		State     string     `json:"state"`
		CreatedAt *time.Time `json:"created_at"`
	} `json:"author"`
	UpdatedAt *time.Time `json:"updated_at"`
	CreatedAt *time.Time `json:"created_at"`
	ProjectID int        `json:"project_id"`
	WebURL    string     `json:"web_url"`
	RawURL    string     `json:"raw_url"`
	Files     []struct {
		Path   string `json:"path"`
		RawURL string `json:"raw_url"`
	} `json:"files"`
	RepositoryStorage string `json:"repository_storage"`
}

Snippet represents a GitLab snippet.

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

func (Snippet) String

func (s Snippet) String() string

type SnippetCommentEvent added in v0.3.1

type SnippetCommentEvent struct {
	ObjectKind string     `json:"object_kind"`
	EventType  string     `json:"event_type"`
	User       *EventUser `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       *Diff              `json:"st_diff"`
		Description  string             `json:"description"`
		Action       CommentEventAction `json:"action"`
		URL          string             `json:"url"`
	} `json:"object_attributes"`
	Snippet *struct {
		ID                 int    `json:"id"`
		Title              string `json:"title"`
		Content            string `json:"content"`
		AuthorID           int    `json:"author_id"`
		ProjectID          int    `json:"project_id"`
		CreatedAt          string `json:"created_at"`
		UpdatedAt          string `json:"updated_at"`
		Filename           string `json:"file_name"`
		ExpiresAt          string `json:"expires_at"`
		Type               string `json:"type"`
		VisibilityLevel    int    `json:"visibility_level"`
		Description        string `json:"description"`
		Secret             bool   `json:"secret"`
		RepositoryReadOnly bool   `json:"repository_read_only"`
	} `json:"snippet"`
}

SnippetCommentEvent represents a comment on a snippet event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#comment-on-a-code-snippet

type SnippetRepositoryStorageMove added in v0.116.0

type SnippetRepositoryStorageMove struct {
	ID                     int                `json:"id"`
	CreatedAt              *time.Time         `json:"created_at"`
	State                  string             `json:"state"`
	SourceStorageName      string             `json:"source_storage_name"`
	DestinationStorageName string             `json:"destination_storage_name"`
	Snippet                *RepositorySnippet `json:"snippet"`
}

SnippetRepositoryStorageMove represents the status of a repository move.

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

type SnippetRepositoryStorageMoveService added in v0.116.0

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

SnippetRepositoryStorageMoveService handles communication with the snippets related methods of the GitLab API.

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

func (SnippetRepositoryStorageMoveService) GetStorageMove added in v0.116.0

func (s SnippetRepositoryStorageMoveService) GetStorageMove(repositoryStorage int, options ...RequestOptionFunc) (*SnippetRepositoryStorageMove, *Response, error)

GetStorageMove gets a single snippet repository storage move.

GitLab API docs: https://docs.gitlab.com/api/snippet_repository_storage_moves/#get-a-single-snippet-repository-storage-move

func (SnippetRepositoryStorageMoveService) GetStorageMoveForSnippet added in v0.116.0

func (s SnippetRepositoryStorageMoveService) GetStorageMoveForSnippet(snippet int, repositoryStorage int, options ...RequestOptionFunc) (*SnippetRepositoryStorageMove, *Response, error)

GetStorageMoveForSnippet gets a single repository storage move for a snippet.

GitLab API docs: https://docs.gitlab.com/api/snippet_repository_storage_moves/#get-a-single-repository-storage-move-for-a-snippet

func (SnippetRepositoryStorageMoveService) RetrieveAllStorageMoves added in v0.116.0

RetrieveAllStorageMoves retrieves all snippet repository storage moves accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/snippet_repository_storage_moves/#retrieve-all-snippet-repository-storage-moves

func (SnippetRepositoryStorageMoveService) RetrieveAllStorageMovesForSnippet added in v0.116.0

RetrieveAllStorageMovesForSnippet retrieves all repository storage moves for a single snippet accessible by the authenticated user.

GitLab API docs: https://docs.gitlab.com/api/snippet_repository_storage_moves/#retrieve-all-repository-storage-moves-for-a-snippet

func (SnippetRepositoryStorageMoveService) ScheduleAllStorageMoves added in v0.116.0

ScheduleAllStorageMoves schedules all snippet repositories to be moved.

GitLab API docs: https://docs.gitlab.com/api/snippet_repository_storage_moves/#schedule-repository-storage-moves-for-all-snippets-on-a-storage-shard

func (SnippetRepositoryStorageMoveService) ScheduleStorageMoveForSnippet added in v0.116.0

ScheduleStorageMoveForSnippet schedule a repository to be moved for a snippet.

GitLab API docs: https://docs.gitlab.com/api/snippet_repository_storage_moves/#schedule-a-repository-storage-move-for-a-snippet

type SnippetRepositoryStorageMoveServiceInterface added in v0.126.0

type SnippetRepositoryStorageMoveServiceInterface interface {
	RetrieveAllStorageMoves(opts RetrieveAllSnippetStorageMovesOptions, options ...RequestOptionFunc) ([]*SnippetRepositoryStorageMove, *Response, error)
	RetrieveAllStorageMovesForSnippet(snippet int, opts RetrieveAllSnippetStorageMovesOptions, options ...RequestOptionFunc) ([]*SnippetRepositoryStorageMove, *Response, error)
	GetStorageMove(repositoryStorage int, options ...RequestOptionFunc) (*SnippetRepositoryStorageMove, *Response, error)
	GetStorageMoveForSnippet(snippet int, repositoryStorage int, options ...RequestOptionFunc) (*SnippetRepositoryStorageMove, *Response, error)
	ScheduleStorageMoveForSnippet(snippet int, opts ScheduleStorageMoveForSnippetOptions, options ...RequestOptionFunc) (*SnippetRepositoryStorageMove, *Response, error)
	ScheduleAllStorageMoves(opts ScheduleAllSnippetStorageMovesOptions, options ...RequestOptionFunc) (*Response, error)
}

type SnippetsService added in v0.7.2

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

SnippetsService handles communication with the snippets related methods of the GitLab API.

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

func (*SnippetsService) CreateSnippet added in v0.7.2

func (s *SnippetsService) CreateSnippet(opt *CreateSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)

CreateSnippet creates a new snippet. The user must have permission to create new snippets.

GitLab API docs: https://docs.gitlab.com/api/snippets/#create-new-snippet

func (*SnippetsService) DeleteSnippet added in v0.7.2

func (s *SnippetsService) DeleteSnippet(snippet int, options ...RequestOptionFunc) (*Response, error)

DeleteSnippet deletes an existing snippet. This is an idempotent function and deleting a non-existent snippet still returns a 200 OK status code.

GitLab API docs: https://docs.gitlab.com/api/snippets/#delete-snippet

func (*SnippetsService) ExploreSnippets added in v0.7.5

func (s *SnippetsService) ExploreSnippets(opt *ExploreSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)

ExploreSnippets gets the list of public snippets.

GitLab API docs: https://docs.gitlab.com/api/snippets/#list-all-public-snippets

func (*SnippetsService) GetSnippet added in v0.7.2

func (s *SnippetsService) GetSnippet(snippet int, options ...RequestOptionFunc) (*Snippet, *Response, error)

GetSnippet gets a single snippet

GitLab API docs: https://docs.gitlab.com/api/snippets/#get-a-single-snippet

func (*SnippetsService) ListAllSnippets added in v0.116.0

func (s *SnippetsService) ListAllSnippets(opt *ListAllSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)

ListAllSnippets gets all snippets the current user has access to.

GitLab API docs: https://docs.gitlab.com/api/snippets/#list-all-snippets

func (*SnippetsService) ListSnippets added in v0.7.2

func (s *SnippetsService) ListSnippets(opt *ListSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)

ListSnippets gets a list of snippets.

GitLab API docs: https://docs.gitlab.com/api/snippets/#list-all-snippets-for-current-user

func (*SnippetsService) SnippetContent added in v0.7.2

func (s *SnippetsService) SnippetContent(snippet int, options ...RequestOptionFunc) ([]byte, *Response, error)

SnippetContent gets a single snippet’s raw contents.

GitLab API docs: https://docs.gitlab.com/api/snippets/#single-snippet-contents

func (*SnippetsService) SnippetFileContent added in v0.116.0

func (s *SnippetsService) SnippetFileContent(snippet int, ref, filename string, options ...RequestOptionFunc) ([]byte, *Response, error)

SnippetFileContent returns the raw file content as plain text.

GitLab API docs: https://docs.gitlab.com/api/snippets/#snippet-repository-file-content

func (*SnippetsService) UpdateSnippet added in v0.7.2

func (s *SnippetsService) UpdateSnippet(snippet int, opt *UpdateSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)

UpdateSnippet updates an existing snippet. The user must have permission to change an existing snippet.

GitLab API docs: https://docs.gitlab.com/api/snippets/#update-snippet

type SnippetsServiceInterface added in v0.126.0

type SnippetsServiceInterface interface {
	ListSnippets(opt *ListSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)
	GetSnippet(snippet int, options ...RequestOptionFunc) (*Snippet, *Response, error)
	SnippetContent(snippet int, options ...RequestOptionFunc) ([]byte, *Response, error)
	SnippetFileContent(snippet int, ref, filename string, options ...RequestOptionFunc) ([]byte, *Response, error)
	CreateSnippet(opt *CreateSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)
	UpdateSnippet(snippet int, opt *UpdateSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)
	DeleteSnippet(snippet int, options ...RequestOptionFunc) (*Response, error)
	ExploreSnippets(opt *ExploreSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)
	ListAllSnippets(opt *ListAllSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)
}

type SquashOptionValue added in v0.116.0

type SquashOptionValue string

SquashOptionValue represents a squash optional level within GitLab.

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

const (
	SquashOptionNever      SquashOptionValue = "never"
	SquashOptionAlways     SquashOptionValue = "always"
	SquashOptionDefaultOff SquashOptionValue = "default_off"
	SquashOptionDefaultOn  SquashOptionValue = "default_on"
)

List of available squash options.

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

type StateEvent added in v0.116.0

type StateEvent struct {
	ID           int            `json:"id"`
	User         *BasicUser     `json:"user"`
	CreatedAt    *time.Time     `json:"created_at"`
	ResourceType string         `json:"resource_type"`
	ResourceID   int            `json:"resource_id"`
	State        EventTypeValue `json:"state"`
}

StateEvent represents a resource state event.

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

type StateID added in v0.116.0

type StateID int

StateID identifies the state of an issue or merge request.

There are no GitLab API docs on the subject, but the mappings can be found in GitLab's codebase: https://gitlab.com/gitlab-org/gitlab-foss/-/blob/ba5be4989e/app/models/concerns/issuable.rb#L39-42

const (
	StateIDNone   StateID = 0
	StateIDOpen   StateID = 1
	StateIDClosed StateID = 2
	StateIDMerged StateID = 3
	StateIDLocked StateID = 4
)

type Statistics added in v0.116.0

type Statistics struct {
	CommitCount           int64 `json:"commit_count"`
	StorageSize           int64 `json:"storage_size"`
	RepositorySize        int64 `json:"repository_size"`
	WikiSize              int64 `json:"wiki_size"`
	LFSObjectsSize        int64 `json:"lfs_objects_size"`
	JobArtifactsSize      int64 `json:"job_artifacts_size"`
	PipelineArtifactsSize int64 `json:"pipeline_artifacts_size"`
	PackagesSize          int64 `json:"packages_size"`
	SnippetsSize          int64 `json:"snippets_size"`
	UploadsSize           int64 `json:"uploads_size"`
	ContainerRegistrySize int64 `json:"container_registry_size"`
}

Statistics represents a statistics record for a group or project.

type StatusCheckProtectedBranch added in v0.116.0

type StatusCheckProtectedBranch struct {
	ID                        int        `json:"id"`
	ProjectID                 int        `json:"project_id"`
	Name                      string     `json:"name"`
	CreatedAt                 *time.Time `json:"created_at"`
	UpdatedAt                 *time.Time `json:"updated_at"`
	CodeOwnerApprovalRequired bool       `json:"code_owner_approval_required"`
}

type StopEnvironmentOptions added in v0.116.0

type StopEnvironmentOptions struct {
	Force *bool `url:"force,omitempty" json:"force,omitempty"`
}

StopEnvironmentOptions represents the available StopEnvironment() options.

GitLab API docs: https://docs.gitlab.com/api/environments/#stop-an-environment

type SubGroupCreationLevelValue added in v0.116.0

type SubGroupCreationLevelValue string

SubGroupCreationLevelValue represents a sub group creation level within GitLab.

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

const (
	OwnerSubGroupCreationLevelValue      SubGroupCreationLevelValue = "owner"
	MaintainerSubGroupCreationLevelValue SubGroupCreationLevelValue = "maintainer"
)

List of available sub group creation levels.

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

type SubGroupEvent added in v0.116.0

type SubGroupEvent struct {
	CreatedAt      *time.Time `json:"created_at"`
	UpdatedAt      *time.Time `json:"updated_at"`
	EventName      string     `json:"event_name"`
	Name           string     `json:"name"`
	Path           string     `json:"path"`
	FullPath       string     `json:"full_path"`
	GroupID        int        `json:"group_id"`
	ParentGroupID  int        `json:"parent_group_id"`
	ParentName     string     `json:"parent_name"`
	ParentPath     string     `json:"parent_path"`
	ParentFullPath string     `json:"parent_full_path"`
}

SubGroupEvent represents a subgroup event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#subgroup-events

type SubmoduleCommit added in v0.116.0

type SubmoduleCommit struct {
	ID             string           `json:"id"`
	ShortID        string           `json:"short_id"`
	Title          string           `json:"title"`
	AuthorName     string           `json:"author_name"`
	AuthorEmail    string           `json:"author_email"`
	CommitterName  string           `json:"committer_name"`
	CommitterEmail string           `json:"committer_email"`
	CreatedAt      *time.Time       `json:"created_at"`
	Message        string           `json:"message"`
	ParentIDs      []string         `json:"parent_ids"`
	CommittedDate  *time.Time       `json:"committed_date"`
	AuthoredDate   *time.Time       `json:"authored_date"`
	Status         *BuildStateValue `json:"status"`
}

SubmoduleCommit represents a GitLab submodule commit.

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

func (SubmoduleCommit) String added in v0.116.0

func (r SubmoduleCommit) String() string

type SystemHooksService

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

SystemHooksService handles communication with the system hooks related methods of the GitLab API.

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

func (*SystemHooksService) AddHook

func (s *SystemHooksService) AddHook(opt *AddHookOptions, options ...RequestOptionFunc) (*Hook, *Response, error)

AddHook adds a new system hook hook.

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

func (*SystemHooksService) DeleteHook

func (s *SystemHooksService) DeleteHook(hook int, options ...RequestOptionFunc) (*Response, error)

DeleteHook deletes a system hook. This is an idempotent API function and returns 200 OK even if the hook is not available. If the hook is deleted it is also returned as JSON.

GitLab API docs: https://docs.gitlab.com/api/system_hooks/#delete-system-hook

func (*SystemHooksService) GetHook added in v0.116.0

func (s *SystemHooksService) GetHook(hook int, options ...RequestOptionFunc) (*Hook, *Response, error)

GetHook get a single system hook.

GitLab API docs: https://docs.gitlab.com/api/system_hooks/#get-system-hook

func (*SystemHooksService) ListHooks

func (s *SystemHooksService) ListHooks(options ...RequestOptionFunc) ([]*Hook, *Response, error)

ListHooks gets a list of system hooks.

GitLab API docs: https://docs.gitlab.com/api/system_hooks/#list-system-hooks

func (*SystemHooksService) TestHook

func (s *SystemHooksService) TestHook(hook int, options ...RequestOptionFunc) (*HookEvent, *Response, error)

TestHook tests a system hook.

GitLab API docs: https://docs.gitlab.com/api/system_hooks/#test-system-hook

type SystemHooksServiceInterface added in v0.126.0

type SystemHooksServiceInterface interface {
	ListHooks(options ...RequestOptionFunc) ([]*Hook, *Response, error)
	GetHook(hook int, options ...RequestOptionFunc) (*Hook, *Response, error)
	AddHook(opt *AddHookOptions, options ...RequestOptionFunc) (*Hook, *Response, error)
	TestHook(hook int, options ...RequestOptionFunc) (*HookEvent, *Response, error)
	DeleteHook(hook int, options ...RequestOptionFunc) (*Response, error)
}

type Tag

type Tag struct {
	Commit    *Commit      `json:"commit"`
	Release   *ReleaseNote `json:"release"`
	Name      string       `json:"name"`
	Message   string       `json:"message"`
	Protected bool         `json:"protected"`
	Target    string       `json:"target"`
}

Tag represents a GitLab tag.

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

func (Tag) String

func (t Tag) String() string

type TagAccessDescription added in v0.116.0

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

TagAccessDescription reperesents the access decription for a protected tag.

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

type TagEvent added in v0.3.1

type TagEvent struct {
	ObjectKind   string `json:"object_kind"`
	EventName    string `json:"event_name"`
	Before       string `json:"before"`
	After        string `json:"after"`
	Ref          string `json:"ref"`
	CheckoutSHA  string `json:"checkout_sha"`
	UserID       int    `json:"user_id"`
	UserName     string `json:"user_name"`
	UserUsername string `json:"user_username"`
	UserAvatar   string `json:"user_avatar"`
	UserEmail    string `json:"user_email"`
	ProjectID    int    `json:"project_id"`
	Message      string `json:"message"`
	Project      struct {
		ID                int             `json:"id"`
		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"`
	Commits    []*struct {
		ID        string     `json:"id"`
		Message   string     `json:"message"`
		Title     string     `json:"title"`
		Timestamp *time.Time `json:"timestamp"`
		URL       string     `json:"url"`
		Author    struct {
			Name  string `json:"name"`
			Email string `json:"email"`
		} `json:"author"`
		Added    []string `json:"added"`
		Modified []string `json:"modified"`
		Removed  []string `json:"removed"`
	} `json:"commits"`
	TotalCommitsCount int `json:"total_commits_count"`
}

TagEvent represents a tag event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#tag-events

type TagPushSystemEvent added in v0.116.0

type TagPushSystemEvent struct {
	BaseSystemEvent
	Before       string `json:"before"`
	After        string `json:"after"`
	Ref          string `json:"ref"`
	CheckoutSHA  string `json:"checkout_sha"`
	UserID       int    `json:"user_id"`
	UserName     string `json:"user_name"`
	UserUsername string `json:"user_username"`
	UserEmail    string `json:"user_email"`
	UserAvatar   string `json:"user_avatar"`
	ProjectID    int    `json:"project_id"`
	Project      struct {
		Name              string `json:"name"`
		Description       string `json:"description"`
		WebURL            string `json:"web_url"`
		AvatarURL         string `json:"avatar_url"`
		GitHTTPURL        string `json:"git_http_url"`
		GitSSHURL         string `json:"git_ssh_url"`
		Namespace         string `json:"namespace"`
		VisibilityLevel   int    `json:"visibility_level"`
		PathWithNamespace string `json:"path_with_namespace"`
		DefaultBranch     string `json:"default_branch"`
		Homepage          string `json:"homepage"`
		URL               string `json:"url"`
	} `json:"project"`
	Commits []struct {
		ID        string    `json:"id"`
		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:"commits"`
	TotalCommitsCount int `json:"total_commits_count"`
}

TagPushSystemEvent represents a tag push system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#tag-events

type TagsPermissionOptions added in v0.116.0

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

TagsPermissionOptions represents a protected tag permission option.

GitLab API docs: https://docs.gitlab.com/api/protected_tags/#protect-repository-tags

type TagsService added in v0.3.0

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

TagsService handles communication with the tags related methods of the GitLab API.

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

func (*TagsService) CreateTag added in v0.3.0

func (s *TagsService) CreateTag(pid any, opt *CreateTagOptions, options ...RequestOptionFunc) (*Tag, *Response, error)

CreateTag creates a new tag in the repository that points to the supplied ref.

GitLab API docs: https://docs.gitlab.com/api/tags/#create-a-new-tag

func (*TagsService) DeleteTag added in v0.3.0

func (s *TagsService) DeleteTag(pid any, tag string, options ...RequestOptionFunc) (*Response, error)

DeleteTag deletes a tag of a repository with given name.

GitLab API docs: https://docs.gitlab.com/api/tags/#delete-a-tag

func (*TagsService) GetTag added in v0.4.0

func (s *TagsService) GetTag(pid any, tag string, options ...RequestOptionFunc) (*Tag, *Response, error)

GetTag a specific repository tag determined by its name. It returns 200 together with the tag information if the tag exists. It returns 404 if the tag does not exist.

GitLab API docs: https://docs.gitlab.com/api/tags/#get-a-single-repository-tag

func (*TagsService) GetTagSignature added in v0.128.0

func (s *TagsService) GetTagSignature(pid any, tag string, options ...RequestOptionFunc) (*X509Signature, *Response, error)

GetTagSignature a specific repository tag determined by its name. It returns 200 together with the signature if the tag exists. It returns 404 if the tag does not exist.

GitLab API docs: https://docs.gitlab.com/api/tags/#get-x509-signature-of-a-tag

func (*TagsService) ListTags added in v0.3.0

func (s *TagsService) ListTags(pid any, opt *ListTagsOptions, options ...RequestOptionFunc) ([]*Tag, *Response, error)

ListTags gets a list of tags from a project, sorted by name in reverse alphabetical order.

GitLab API docs: https://docs.gitlab.com/api/tags/#list-project-repository-tags

type TagsServiceInterface added in v0.126.0

type TagsServiceInterface interface {
	ListTags(pid any, opt *ListTagsOptions, options ...RequestOptionFunc) ([]*Tag, *Response, error)
	GetTag(pid any, tag string, options ...RequestOptionFunc) (*Tag, *Response, error)
	GetTagSignature(pid any, tag string, options ...RequestOptionFunc) (*X509Signature, *Response, error)
	CreateTag(pid any, opt *CreateTagOptions, options ...RequestOptionFunc) (*Tag, *Response, error)
	DeleteTag(pid any, tag string, options ...RequestOptionFunc) (*Response, error)
}

type TasksCompletionStatus added in v0.116.0

type TasksCompletionStatus struct {
	Count          int `json:"count"`
	CompletedCount int `json:"completed_count"`
}

TasksCompletionStatus represents tasks of the issue/merge request.

type TelegramService added in v0.116.0

type TelegramService struct {
	Service
	Properties *TelegramServiceProperties `json:"properties"`
}

TelegramService represents Telegram service settings.

Gitlab API docs: https://docs.gitlab.com/api/project_integrations/#telegram

type TelegramServiceProperties added in v0.116.0

type TelegramServiceProperties struct {
	Room                      string `json:"room"`
	NotifyOnlyBrokenPipelines bool   `json:"notify_only_broken_pipelines"`
	BranchesToBeNotified      string `json:"branches_to_be_notified"`
}

TelegramServiceProperties represents Telegram specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-telegram

type TimeStats added in v0.4.0

type TimeStats struct {
	HumanTimeEstimate   string `json:"human_time_estimate"`
	HumanTotalTimeSpent string `json:"human_total_time_spent"`
	TimeEstimate        int    `json:"time_estimate"`
	TotalTimeSpent      int    `json:"total_time_spent"`
}

TimeStats represents the time estimates and time spent for an issue.

GitLab docs: https://docs.gitlab.com/api/issues/#time-tracking

func (TimeStats) String added in v0.4.0

func (t TimeStats) String() string

type Todo added in v0.6.0

type Todo struct {
	ID         int            `json:"id"`
	Project    *BasicProject  `json:"project"`
	Author     *BasicUser     `json:"author"`
	ActionName TodoAction     `json:"action_name"`
	TargetType TodoTargetType `json:"target_type"`
	Target     *TodoTarget    `json:"target"`
	TargetURL  string         `json:"target_url"`
	Body       string         `json:"body"`
	State      string         `json:"state"`
	CreatedAt  *time.Time     `json:"created_at"`
}

Todo represents a GitLab todo.

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

func (Todo) String added in v0.6.0

func (t Todo) String() string

type TodoAction added in v0.6.0

type TodoAction string

TodoAction represents the available actions that can be performed on a todo.

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

const (
	TodoAssigned          TodoAction = "assigned"
	TodoMentioned         TodoAction = "mentioned"
	TodoBuildFailed       TodoAction = "build_failed"
	TodoMarked            TodoAction = "marked"
	TodoApprovalRequired  TodoAction = "approval_required"
	TodoDirectlyAddressed TodoAction = "directly_addressed"
)

The available todo actions.

type TodoTarget added in v0.6.0

type TodoTarget struct {
	Assignees            []*BasicUser           `json:"assignees"`
	Assignee             *BasicUser             `json:"assignee"`
	Author               *BasicUser             `json:"author"`
	CreatedAt            *time.Time             `json:"created_at"`
	Description          string                 `json:"description"`
	Downvotes            int                    `json:"downvotes"`
	ID                   any                    `json:"id"`
	IID                  int                    `json:"iid"`
	Labels               []string               `json:"labels"`
	Milestone            *Milestone             `json:"milestone"`
	ProjectID            int                    `json:"project_id"`
	State                string                 `json:"state"`
	Subscribed           bool                   `json:"subscribed"`
	TaskCompletionStatus *TasksCompletionStatus `json:"task_completion_status"`
	Title                string                 `json:"title"`
	UpdatedAt            *time.Time             `json:"updated_at"`
	Upvotes              int                    `json:"upvotes"`
	UserNotesCount       int                    `json:"user_notes_count"`
	WebURL               string                 `json:"web_url"`

	// Only available for type Issue
	Confidential bool        `json:"confidential"`
	DueDate      string      `json:"due_date"`
	HasTasks     bool        `json:"has_tasks"`
	Links        *IssueLinks `json:"_links"`
	MovedToID    int         `json:"moved_to_id"`
	TimeStats    *TimeStats  `json:"time_stats"`
	Weight       int         `json:"weight"`

	// Only available for type MergeRequest
	MergedAt                  *time.Time   `json:"merged_at"`
	ApprovalsBeforeMerge      int          `json:"approvals_before_merge"`
	ForceRemoveSourceBranch   bool         `json:"force_remove_source_branch"`
	MergeCommitSHA            string       `json:"merge_commit_sha"`
	MergeWhenPipelineSucceeds bool         `json:"merge_when_pipeline_succeeds"`
	MergeStatus               string       `json:"merge_status"`
	Reference                 string       `json:"reference"`
	Reviewers                 []*BasicUser `json:"reviewers"`
	SHA                       string       `json:"sha"`
	ShouldRemoveSourceBranch  bool         `json:"should_remove_source_branch"`
	SourceBranch              string       `json:"source_branch"`
	SourceProjectID           int          `json:"source_project_id"`
	Squash                    bool         `json:"squash"`
	TargetBranch              string       `json:"target_branch"`
	TargetProjectID           int          `json:"target_project_id"`
	WorkInProgress            bool         `json:"work_in_progress"`

	// Only available for type DesignManagement::Design
	FileName string `json:"filename"`
	ImageURL string `json:"image_url"`
}

TodoTarget represents a todo target of type Issue or MergeRequest

type TodoTargetType added in v0.116.0

type TodoTargetType string

TodoTargetType represents the available target that can be linked to a todo.

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

const (
	TodoTargetAlertManagement  TodoTargetType = "AlertManagement::Alert"
	TodoTargetDesignManagement TodoTargetType = "DesignManagement::Design"
	TodoTargetIssue            TodoTargetType = "Issue"
	TodoTargetMergeRequest     TodoTargetType = "MergeRequest"
)

type TodosService added in v0.6.0

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

TodosService handles communication with the todos related methods of the Gitlab API.

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

func (*TodosService) ListTodos added in v0.6.0

func (s *TodosService) ListTodos(opt *ListTodosOptions, options ...RequestOptionFunc) ([]*Todo, *Response, error)

ListTodos lists all todos created by authenticated user. When no filter is applied, it returns all pending todos for the current user.

GitLab API docs: https://docs.gitlab.com/api/todos/#get-a-list-of-to-do-items

func (*TodosService) MarkAllTodosAsDone added in v0.6.0

func (s *TodosService) MarkAllTodosAsDone(options ...RequestOptionFunc) (*Response, error)

MarkAllTodosAsDone marks all pending todos for the current user as done.

GitLab API docs: https://docs.gitlab.com/api/todos/#mark-all-to-do-items-as-done

func (*TodosService) MarkTodoAsDone added in v0.6.0

func (s *TodosService) MarkTodoAsDone(id int, options ...RequestOptionFunc) (*Response, error)

MarkTodoAsDone marks a single pending todo given by its ID for the current user as done.

GitLab API docs: https://docs.gitlab.com/api/todos/#mark-a-to-do-item-as-done

type TodosServiceInterface added in v0.126.0

type TodosServiceInterface interface {
	ListTodos(opt *ListTodosOptions, options ...RequestOptionFunc) ([]*Todo, *Response, error)
	MarkTodoAsDone(id int, options ...RequestOptionFunc) (*Response, error)
	MarkAllTodosAsDone(options ...RequestOptionFunc) (*Response, error)
}

type Topic added in v0.116.0

type Topic struct {
	ID                 int    `json:"id"`
	Name               string `json:"name"`
	Title              string `json:"title"`
	Description        string `json:"description"`
	TotalProjectsCount uint64 `json:"total_projects_count"`
	AvatarURL          string `json:"avatar_url"`
}

Topic represents a GitLab project topic.

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

func (Topic) String added in v0.116.0

func (t Topic) String() string

type TopicAvatar added in v0.116.0

type TopicAvatar struct {
	Filename string
	Image    io.Reader
}

TopicAvatar represents a GitLab topic avatar.

func (*TopicAvatar) MarshalJSON added in v0.116.0

func (a *TopicAvatar) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

type TopicsService added in v0.116.0

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

TopicsService handles communication with the topics related methods of the GitLab API.

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

func (*TopicsService) CreateTopic added in v0.116.0

func (s *TopicsService) CreateTopic(opt *CreateTopicOptions, options ...RequestOptionFunc) (*Topic, *Response, error)

CreateTopic creates a new project topic.

GitLab API docs: https://docs.gitlab.com/api/topics/#create-a-project-topic

func (*TopicsService) DeleteTopic added in v0.116.0

func (s *TopicsService) DeleteTopic(topic int, options ...RequestOptionFunc) (*Response, error)

DeleteTopic deletes a project topic. Only available to administrators.

GitLab API docs: https://docs.gitlab.com/api/topics/#delete-a-project-topic

func (*TopicsService) GetTopic added in v0.116.0

func (s *TopicsService) GetTopic(topic int, options ...RequestOptionFunc) (*Topic, *Response, error)

GetTopic gets a project topic by ID.

GitLab API docs: https://docs.gitlab.com/api/topics/#get-a-topic

func (*TopicsService) ListTopics added in v0.116.0

func (s *TopicsService) ListTopics(opt *ListTopicsOptions, options ...RequestOptionFunc) ([]*Topic, *Response, error)

ListTopics returns a list of project topics in the GitLab instance ordered by number of associated projects.

GitLab API docs: https://docs.gitlab.com/api/topics/#list-topics

func (*TopicsService) UpdateTopic added in v0.116.0

func (s *TopicsService) UpdateTopic(topic int, opt *UpdateTopicOptions, options ...RequestOptionFunc) (*Topic, *Response, error)

UpdateTopic updates a project topic. Only available to administrators.

To remove a topic avatar set the TopicAvatar.Filename to an empty string and set TopicAvatar.Image to nil.

GitLab API docs: https://docs.gitlab.com/api/topics/#update-a-project-topic

type TopicsServiceInterface added in v0.126.0

type TopicsServiceInterface interface {
	ListTopics(opt *ListTopicsOptions, options ...RequestOptionFunc) ([]*Topic, *Response, error)
	GetTopic(topic int, options ...RequestOptionFunc) (*Topic, *Response, error)
	CreateTopic(opt *CreateTopicOptions, options ...RequestOptionFunc) (*Topic, *Response, error)
	UpdateTopic(topic int, opt *UpdateTopicOptions, options ...RequestOptionFunc) (*Topic, *Response, error)
	DeleteTopic(topic int, options ...RequestOptionFunc) (*Response, error)
}

type TrackEventOptions added in v0.126.0

type TrackEventOptions struct {
	Event                string            `json:"event" url:"event"`
	SendToSnowplow       *bool             `json:"send_to_snowplow,omitempty" url:"send_to_snowplow,omitempty"`
	NamespaceID          *int              `json:"namespace_id,omitempty" url:"namespace_id,omitempty"`
	ProjectID            *int              `json:"project_id,omitempty" url:"project_id,omitempty"`
	AdditionalProperties map[string]string `json:"additional_properties,omitempty" url:"additional_properties,omitempty"`
}

TrackEventOptions represents the available options for tracking events.

type TrackEventsOptions added in v0.126.0

type TrackEventsOptions struct {
	Events []TrackEventOptions `json:"events" url:"events"`
}

TrackEventsOptions represents the available options for tracking multiple events.

type TransferProjectOptions added in v0.116.0

type TransferProjectOptions struct {
	Namespace any `url:"namespace,omitempty" json:"namespace,omitempty"`
}

TransferProjectOptions represents the available TransferProject() options.

GitLab API docs: https://docs.gitlab.com/api/projects/#transfer-a-project-to-a-new-namespace

type TransferSubGroupOptions added in v0.116.0

type TransferSubGroupOptions struct {
	GroupID *int `url:"group_id,omitempty" json:"group_id,omitempty"`
}

TransferSubGroupOptions represents the available TransferSubGroup() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#transfer-a-group

type TreeNode

type TreeNode struct {
	ID   string `json:"id"`
	Name string `json:"name"`
	Type string `json:"type"`
	Path string `json:"path"`
	Mode string `json:"mode"`
}

TreeNode represents a GitLab repository file or directory.

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

func (TreeNode) String

func (t TreeNode) String() string

type UpdateBroadcastMessageOptions added in v0.8.1

type UpdateBroadcastMessageOptions struct {
	Message            *string            `url:"message,omitempty" json:"message,omitempty"`
	StartsAt           *time.Time         `url:"starts_at,omitempty" json:"starts_at,omitempty"`
	EndsAt             *time.Time         `url:"ends_at,omitempty" json:"ends_at,omitempty"`
	Font               *string            `url:"font,omitempty" json:"font,omitempty"`
	TargetAccessLevels []AccessLevelValue `url:"target_access_levels,omitempty" json:"target_access_levels,omitempty"`
	TargetPath         *string            `url:"target_path,omitempty" json:"target_path,omitempty"`
	BroadcastType      *string            `url:"broadcast_type,omitempty" json:"broadcast_type,omitempty"`
	Dismissable        *bool              `url:"dismissable,omitempty" json:"dismissable,omitempty"`
	Theme              *string            `url:"theme,omitempty" json:"theme,omitempty"`
}

UpdateBroadcastMessageOptions represents the available CreateBroadcastMessage() options.

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

type UpdateCommitDiscussionNoteOptions added in v0.11.2

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

UpdateCommitDiscussionNoteOptions represents the available UpdateCommitDiscussion() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-an-existing-commit-thread-note

type UpdateContainerRegistryProtectionRuleOptions added in v0.127.0

type UpdateContainerRegistryProtectionRuleOptions struct {
	RepositoryPathPattern       *string                    `url:"repository_path_pattern,omitempty" json:"repository_path_pattern,omitempty"`
	MinimumAccessLevelForPush   *ProtectionRuleAccessLevel `url:"minimum_access_level_for_push,omitempty" json:"minimum_access_level_for_push,omitempty"`
	MinimumAccessLevelForDelete *ProtectionRuleAccessLevel `url:"minimum_access_level_for_delete,omitempty" json:"minimum_access_level_for_delete,omitempty"`
}

UpdateContainerRegistryProtectionRuleOptions represents the available UpdateContainerRegistryProtectionRule() options.

GitLab API docs: https://docs.gitlab.com/api/container_repository_protection_rules/#update-a-container-repository-protection-rule

type UpdateDeployKeyOptions added in v0.116.0

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

UpdateDeployKeyOptions represents the available UpdateDeployKey() options.

GitLab API docs: https://docs.gitlab.com/api/deploy_keys/#update-deploy-key

type UpdateDraftNoteOptions added in v0.116.0

type UpdateDraftNoteOptions struct {
	Note     *string          `url:"note,omitempty" json:"note,omitempty"`
	Position *PositionOptions `url:"position,omitempty" json:"position,omitempty"`
}

UpdateDraftNoteOptions represents the available UpdateDraftNote() options.

Gitlab API docs: https://docs.gitlab.com/api/draft_notes/#create-a-draft-note

type UpdateEnvironmentAccessOptions added in v0.116.0

type UpdateEnvironmentAccessOptions struct {
	AccessLevel          *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ID                   *int              `url:"id,omitempty" json:"id,omitempty"`
	UserID               *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID              *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	GroupInheritanceType *int              `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
	Destroy              *bool             `url:"_destroy,omitempty" json:"_destroy,omitempty"`
}

UpdateEnvironmentAccessOptions represents the options for updates to an access decription for a protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#update-a-protected-environment

type UpdateEnvironmentApprovalRuleOptions added in v0.116.0

type UpdateEnvironmentApprovalRuleOptions struct {
	ID                     *int              `url:"id,omitempty" json:"id,omitempty"`
	UserID                 *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID                *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	AccessLevel            *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	AccessLevelDescription *string           `url:"access_level_description,omitempty" json:"access_level_description,omitempty"`
	RequiredApprovalCount  *int              `url:"required_approvals,omitempty" json:"required_approvals,omitempty"`
	GroupInheritanceType   *int              `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
	Destroy                *bool             `url:"_destroy,omitempty" json:"_destroy,omitempty"`
}

UpdateEnvironmentApprovalRuleOptions represents the updates to the approval rules for a protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#update-a-protected-environment

type UpdateEpicDiscussionNoteOptions added in v0.11.2

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

UpdateEpicDiscussionNoteOptions represents the available UpdateEpicDiscussion() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-existing-epic-thread-note

type UpdateEpicIsssueAssignmentOptions added in v0.116.0

type UpdateEpicIsssueAssignmentOptions = UpdateEpicIssueAssignmentOptions

UpdateEpicIsssueAssignmentOptions is kept for backwards compatibility. Deprecated: use UpdateEpicIssueAssignmentOptions instead.

type UpdateEpicIssueAssignmentOptions added in v0.129.0

type UpdateEpicIssueAssignmentOptions struct {
	*ListOptions
	MoveBeforeID *int `url:"move_before_id,omitempty" json:"move_before_id,omitempty"`
	MoveAfterID  *int `url:"move_after_id,omitempty" json:"move_after_id,omitempty"`
}

UpdateEpicIssueAssignmentOptions describes the UpdateEpicIssueAssignment() options. Will be removed in v5 of the API, use Work Items API instead

Gitlab API Docs: https://docs.gitlab.com/api/epic_issues/#update-epic---issue-association

type UpdateEpicNoteOptions added in v0.116.0

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

UpdateEpicNoteOptions represents the available UpdateEpicNote() options. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/notes/#modify-existing-epic-note

type UpdateEpicOptions added in v0.116.0

type UpdateEpicOptions struct {
	AddLabels        *LabelOptions `url:"add_labels,omitempty" json:"add_labels,omitempty"`
	Confidential     *bool         `url:"confidential,omitempty" json:"confidential,omitempty"`
	Description      *string       `url:"description,omitempty" json:"description,omitempty"`
	DueDateFixed     *ISOTime      `url:"due_date_fixed,omitempty" json:"due_date_fixed,omitempty"`
	DueDateIsFixed   *bool         `url:"due_date_is_fixed,omitempty" json:"due_date_is_fixed,omitempty"`
	Labels           *LabelOptions `url:"labels,comma,omitempty" json:"labels,omitempty"`
	ParentID         *int          `url:"parent_id,omitempty" json:"parent_id,omitempty"`
	RemoveLabels     *LabelOptions `url:"remove_labels,omitempty" json:"remove_labels,omitempty"`
	StartDateFixed   *ISOTime      `url:"start_date_fixed,omitempty" json:"start_date_fixed,omitempty"`
	StartDateIsFixed *bool         `url:"start_date_is_fixed,omitempty" json:"start_date_is_fixed,omitempty"`
	StateEvent       *string       `url:"state_event,omitempty" json:"state_event,omitempty"`
	Title            *string       `url:"title,omitempty" json:"title,omitempty"`
	UpdatedAt        *time.Time    `url:"updated_at,omitempty" json:"updated_at,omitempty"`
	Color            *string       `url:"color,omitempty" json:"color,omitempty"`
}

UpdateEpicOptions represents the available UpdateEpic() options. Will be removed in v5 of the API, use Work Items API instead

GitLab API docs: https://docs.gitlab.com/api/epics/#update-epic

type UpdateExternalStatusCheckOptions added in v0.116.0

type UpdateExternalStatusCheckOptions struct {
	Name               *string `url:"name,omitempty" json:"name,omitempty"`
	ExternalURL        *string `url:"external_url,omitempty" json:"external_url,omitempty"`
	ProtectedBranchIDs *[]int  `url:"protected_branch_ids,omitempty" json:"protected_branch_ids,omitempty"`
}

UpdateExternalStatusCheckOptions represents the available UpdateExternalStatusCheck() options.

GitLab API docs: https://docs.gitlab.com/api/status_checks/#update-external-status-check-service

type UpdateFeatureFlagUserListOptions added in v0.128.0

type UpdateFeatureFlagUserListOptions struct {
	Name     string `url:"name,omitempty" json:"name,omitempty"`
	UserXIDs string `url:"user_xids,omitempty" json:"user_xids,omitempty"`
}

UpdateFeatureFlagUserListOptions represents the available UpdateFeatureFlagUserList() options.

GitLab API docs: https://docs.gitlab.com/api/feature_flag_user_lists/#update-a-feature-flag-user-list

type UpdateFileOptions

type UpdateFileOptions 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"`
	LastCommitID    *string `url:"last_commit_id,omitempty" json:"last_commit_id,omitempty"`
	ExecuteFilemode *bool   `url:"execute_filemode,omitempty" json:"execute_filemode,omitempty"`
}

UpdateFileOptions represents the available UpdateFile() options.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#update-existing-file-in-repository

type UpdateFreezePeriodOptions added in v0.116.0

type UpdateFreezePeriodOptions struct {
	FreezeStart  *string `url:"freeze_start,omitempty" json:"freeze_start,omitempty"`
	FreezeEnd    *string `url:"freeze_end,omitempty" json:"freeze_end,omitempty"`
	CronTimezone *string `url:"cron_timezone,omitempty" json:"cron_timezone,omitempty"`
}

UpdateFreezePeriodOptions represents the available UpdateFreezePeriodOptions() options.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#update-a-freeze-period

type UpdateGeoNodesOptions added in v0.116.0

type UpdateGeoNodesOptions struct {
	ID                               *int      `url:"primary,omitempty" json:"primary,omitempty"`
	Enabled                          *bool     `url:"enabled,omitempty" json:"enabled,omitempty"`
	Name                             *string   `url:"name,omitempty" json:"name,omitempty"`
	URL                              *string   `url:"url,omitempty" json:"url,omitempty"`
	InternalURL                      *string   `url:"internal_url,omitempty" json:"internal_url,omitempty"`
	FilesMaxCapacity                 *int      `url:"files_max_capacity,omitempty" json:"files_max_capacity,omitempty"`
	ReposMaxCapacity                 *int      `url:"repos_max_capacity,omitempty" json:"repos_max_capacity,omitempty"`
	VerificationMaxCapacity          *int      `url:"verification_max_capacity,omitempty" json:"verification_max_capacity,omitempty"`
	ContainerRepositoriesMaxCapacity *int      `url:"container_repositories_max_capacity,omitempty" json:"container_repositories_max_capacity,omitempty"`
	SyncObjectStorage                *bool     `url:"sync_object_storage,omitempty" json:"sync_object_storage,omitempty"`
	SelectiveSyncType                *string   `url:"selective_sync_type,omitempty" json:"selective_sync_type,omitempty"`
	SelectiveSyncShards              *[]string `url:"selective_sync_shards,omitempty" json:"selective_sync_shards,omitempty"`
	SelectiveSyncNamespaceIds        *[]int    `url:"selective_sync_namespace_ids,omitempty" json:"selective_sync_namespace_ids,omitempty"`
	MinimumReverificationInterval    *int      `url:"minimum_reverification_interval,omitempty" json:"minimum_reverification_interval,omitempty"`
}

UpdateGeoNodesOptions represents the available EditGeoNode() options. Deprecated: will be removed in v5 of the API, use Geo Sites API instead

GitLab API docs: https://docs.gitlab.com/api/geo_nodes/#edit-a-geo-node

type UpdateGroupEnvironmentAccessOptions added in v0.116.0

type UpdateGroupEnvironmentAccessOptions struct {
	AccessLevel          *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ID                   *int              `url:"id,omitempty" json:"id,omitempty"`
	UserID               *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID              *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	GroupInheritanceType *int              `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
	Destroy              *bool             `url:"_destroy,omitempty" json:"_destroy,omitempty"`
}

UpdateGroupEnvironmentAccessOptions represents the options for updates to the access decription for a group-level protected environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#update-a-protected-environment

type UpdateGroupEnvironmentApprovalRuleOptions added in v0.116.0

type UpdateGroupEnvironmentApprovalRuleOptions struct {
	ID                     *int              `url:"id,omitempty" json:"id,omitempty"`
	UserID                 *int              `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID                *int              `url:"group_id,omitempty" json:"group_id,omitempty"`
	AccessLevel            *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	AccessLevelDescription *string           `url:"access_level_description,omitempty" json:"access_level_description,omitempty"`
	RequiredApprovalCount  *int              `url:"required_approvals,omitempty" json:"required_approvals,omitempty"`
	GroupInheritanceType   *int              `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
	Destroy                *bool             `url:"_destroy,omitempty" json:"_destroy,omitempty"`
}

UpdateGroupEnvironmentApprovalRuleOptions represents the updates to the approval rules for a group-level protected environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#update-a-protected-environment

type UpdateGroupIssueBoardListOptions added in v0.11.0

type UpdateGroupIssueBoardListOptions struct {
	Position *int `url:"position" json:"position"`
}

UpdateGroupIssueBoardListOptions represents the available UpdateGroupIssueBoardList() options.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#edit-group-issue-board-list

type UpdateGroupIssueBoardOptions added in v0.116.0

type UpdateGroupIssueBoardOptions struct {
	Name        *string       `url:"name,omitempty" json:"name,omitempty"`
	AssigneeID  *int          `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	MilestoneID *int          `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	Labels      *LabelOptions `url:"labels,omitempty" json:"labels,omitempty"`
	Weight      *int          `url:"weight,omitempty" json:"weight,omitempty"`
}

UpdateGroupIssueBoardOptions represents a group issue board.

GitLab API docs: https://docs.gitlab.com/api/group_boards/#update-a-group-issue-board

type UpdateGroupLabelOptions added in v0.116.0

type UpdateGroupLabelOptions struct {
	Name        *string `url:"name,omitempty" json:"name,omitempty"`
	NewName     *string `url:"new_name,omitempty" json:"new_name,omitempty"`
	Color       *string `url:"color,omitempty" json:"color,omitempty"`
	Description *string `url:"description,omitempty" json:"description,omitempty"`
	Priority    *int    `url:"priority,omitempty" json:"priority,omitempty"`
}

UpdateGroupLabelOptions represents the available UpdateGroupLabel() options.

GitLab API docs: https://docs.gitlab.com/api/group_labels/#update-a-group-label

type UpdateGroupMilestoneOptions added in v0.10.0

type UpdateGroupMilestoneOptions struct {
	Title       *string  `url:"title,omitempty" json:"title,omitempty"`
	Description *string  `url:"description,omitempty" json:"description,omitempty"`
	StartDate   *ISOTime `url:"start_date,omitempty" json:"start_date,omitempty"`
	DueDate     *ISOTime `url:"due_date,omitempty" json:"due_date,omitempty"`
	StateEvent  *string  `url:"state_event,omitempty" json:"state_event,omitempty"`
}

UpdateGroupMilestoneOptions represents the available UpdateGroupMilestone() options.

GitLab API docs: https://docs.gitlab.com/api/group_milestones/#edit-milestone

type UpdateGroupOptions added in v0.6.0

type UpdateGroupOptions struct {
	Name                                 *string                                 `url:"name,omitempty" json:"name,omitempty"`
	Path                                 *string                                 `url:"path,omitempty" json:"path,omitempty"`
	Avatar                               *GroupAvatar                            `url:"-" json:"avatar,omitempty"`
	DefaultBranch                        *string                                 `url:"default_branch,omitempty" json:"default_branch,omitempty"`
	Description                          *string                                 `url:"description,omitempty" json:"description,omitempty"`
	MembershipLock                       *bool                                   `url:"membership_lock,omitempty" json:"membership_lock,omitempty"`
	Visibility                           *VisibilityValue                        `url:"visibility,omitempty" json:"visibility,omitempty"`
	ShareWithGroupLock                   *bool                                   `url:"share_with_group_lock,omitempty" json:"share_with_group_lock,omitempty"`
	RequireTwoFactorAuth                 *bool                                   `url:"require_two_factor_authentication,omitempty" json:"require_two_factor_authentication,omitempty"`
	TwoFactorGracePeriod                 *int                                    `url:"two_factor_grace_period,omitempty" json:"two_factor_grace_period,omitempty"`
	ProjectCreationLevel                 *ProjectCreationLevelValue              `url:"project_creation_level,omitempty" json:"project_creation_level,omitempty"`
	AutoDevopsEnabled                    *bool                                   `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
	SubGroupCreationLevel                *SubGroupCreationLevelValue             `url:"subgroup_creation_level,omitempty" json:"subgroup_creation_level,omitempty"`
	EmailsEnabled                        *bool                                   `url:"emails_enabled,omitempty" json:"emails_enabled,omitempty"`
	MentionsDisabled                     *bool                                   `url:"mentions_disabled,omitempty" json:"mentions_disabled,omitempty"`
	LFSEnabled                           *bool                                   `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"`
	RequestAccessEnabled                 *bool                                   `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"`
	DefaultBranchProtectionDefaults      *DefaultBranchProtectionDefaultsOptions `url:"default_branch_protection_defaults,omitempty" json:"default_branch_protection_defaults,omitempty"`
	FileTemplateProjectID                *int                                    `url:"file_template_project_id,omitempty" json:"file_template_project_id,omitempty"`
	SharedRunnersMinutesLimit            *int                                    `url:"shared_runners_minutes_limit,omitempty" json:"shared_runners_minutes_limit,omitempty"`
	ExtraSharedRunnersMinutesLimit       *int                                    `url:"extra_shared_runners_minutes_limit,omitempty" json:"extra_shared_runners_minutes_limit,omitempty"`
	PreventForkingOutsideGroup           *bool                                   `url:"prevent_forking_outside_group,omitempty" json:"prevent_forking_outside_group,omitempty"`
	SharedRunnersSetting                 *SharedRunnersSettingValue              `url:"shared_runners_setting,omitempty" json:"shared_runners_setting,omitempty"`
	PreventSharingGroupsOutsideHierarchy *bool                                   `url:"prevent_sharing_groups_outside_hierarchy,omitempty" json:"prevent_sharing_groups_outside_hierarchy,omitempty"`
	IPRestrictionRanges                  *string                                 `url:"ip_restriction_ranges,omitempty" json:"ip_restriction_ranges,omitempty"`
	AllowedEmailDomainsList              *string                                 `url:"allowed_email_domains_list,omitempty" json:"allowed_email_domains_list,omitempty"`
	WikiAccessLevel                      *AccessControlValue                     `url:"wiki_access_level,omitempty" json:"wiki_access_level,omitempty"`

	// Deprecated: Use EmailsEnabled instead
	EmailsDisabled *bool `url:"emails_disabled,omitempty" json:"emails_disabled,omitempty"`

	// Deprecated: Use DefaultBranchProtectionDefaults instead
	DefaultBranchProtection *int `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`
}

UpdateGroupOptions represents the available UpdateGroup() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#update-group-attributes

type UpdateGroupProtectedEnvironmentOptions added in v0.116.0

type UpdateGroupProtectedEnvironmentOptions struct {
	Name                  *string                                       `url:"name,omitempty" json:"name,omitempty"`
	DeployAccessLevels    *[]*UpdateGroupEnvironmentAccessOptions       `url:"deploy_access_levels,omitempty" json:"deploy_access_levels,omitempty"`
	RequiredApprovalCount *int                                          `url:"required_approval_count,omitempty" json:"required_approval_count,omitempty"`
	ApprovalRules         *[]*UpdateGroupEnvironmentApprovalRuleOptions `url:"approval_rules,omitempty" json:"approval_rules,omitempty"`
}

UpdateGroupProtectedEnvironmentOptions represents the available UpdateGroupProtectedEnvironment() options.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#update-a-protected-environment

type UpdateGroupSecuritySettingsOptions added in v0.121.0

type UpdateGroupSecuritySettingsOptions struct {
	SecretPushProtectionEnabled *bool  `url:"secret_push_protection_enabled,omitempty" json:"secret_push_protection_enabled,omitempty"`
	ProjectsToExclude           *[]int `url:"projects_to_exclude,omitempty" json:"projects_to_exclude,omitempty"`
}

GetGroupSecuritySettingsOptions represent the request options for updating the group security settings.

GitLab API docs: https://docs.gitlab.com/api/group_security_settings/#update-secret_push_protection_enabled-setting

type UpdateGroupVariableOptions added in v0.116.0

type UpdateGroupVariableOptions struct {
	Value            *string            `url:"value,omitempty" json:"value,omitempty"`
	Description      *string            `url:"description,omitempty" json:"description,omitempty"`
	EnvironmentScope *string            `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
	Filter           *VariableFilter    `url:"filter,omitempty" json:"filter,omitempty"`
	Masked           *bool              `url:"masked,omitempty" json:"masked,omitempty"`
	Protected        *bool              `url:"protected,omitempty" json:"protected,omitempty"`
	Raw              *bool              `url:"raw,omitempty" json:"raw,omitempty"`
	VariableType     *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

UpdateGroupVariableOptions represents the available UpdateVariable() options.

GitLab API docs: https://docs.gitlab.com/api/group_level_variables/#update-variable

type UpdateInstanceVariableOptions added in v0.116.0

type UpdateInstanceVariableOptions struct {
	Value        *string            `url:"value,omitempty" json:"value,omitempty"`
	Description  *string            `url:"description,omitempty" json:"description,omitempty"`
	Masked       *bool              `url:"masked,omitempty" json:"masked,omitempty"`
	Protected    *bool              `url:"protected,omitempty" json:"protected,omitempty"`
	Raw          *bool              `url:"raw,omitempty" json:"raw,omitempty"`
	VariableType *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

UpdateInstanceVariableOptions represents the available UpdateVariable() options.

GitLab API docs: https://docs.gitlab.com/api/instance_level_ci_variables/#update-instance-variable

type UpdateIssueBoardListOptions added in v0.8.0

type UpdateIssueBoardListOptions struct {
	Position *int `url:"position" json:"position"`
}

UpdateIssueBoardListOptions represents the available UpdateIssueBoardList() options.

GitLab API docs: https://docs.gitlab.com/api/boards/#reorder-a-list-in-a-board

type UpdateIssueBoardOptions added in v0.116.0

type UpdateIssueBoardOptions struct {
	Name        *string       `url:"name,omitempty" json:"name,omitempty"`
	AssigneeID  *int          `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	MilestoneID *int          `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	Labels      *LabelOptions `url:"labels,omitempty" json:"labels,omitempty"`
	Weight      *int          `url:"weight,omitempty" json:"weight,omitempty"`
}

UpdateIssueBoardOptions represents the available UpdateIssueBoard() options.

GitLab API docs: https://docs.gitlab.com/api/boards/#update-an-issue-board

type UpdateIssueDiscussionNoteOptions added in v0.11.2

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

UpdateIssueDiscussionNoteOptions represents the available UpdateIssueDiscussion() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-existing-issue-thread-note

type UpdateIssueNoteOptions

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

UpdateIssueNoteOptions represents the available UpdateIssueNote() options.

GitLab API docs: https://docs.gitlab.com/api/notes/#modify-existing-issue-note

type UpdateIssueOptions

type UpdateIssueOptions struct {
	Title            *string       `url:"title,omitempty" json:"title,omitempty"`
	Description      *string       `url:"description,omitempty" json:"description,omitempty"`
	Confidential     *bool         `url:"confidential,omitempty" json:"confidential,omitempty"`
	AssigneeIDs      *[]int        `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
	MilestoneID      *int          `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	Labels           *LabelOptions `url:"labels,comma,omitempty" json:"labels,omitempty"`
	AddLabels        *LabelOptions `url:"add_labels,comma,omitempty" json:"add_labels,omitempty"`
	RemoveLabels     *LabelOptions `url:"remove_labels,comma,omitempty" json:"remove_labels,omitempty"`
	StateEvent       *string       `url:"state_event,omitempty" json:"state_event,omitempty"`
	UpdatedAt        *time.Time    `url:"updated_at,omitempty" json:"updated_at,omitempty"`
	DueDate          *ISOTime      `url:"due_date,omitempty" json:"due_date,omitempty"`
	EpicID           *int          `url:"epic_id,omitempty" json:"epic_id,omitempty"`
	Weight           *int          `url:"weight,omitempty" json:"weight,omitempty"`
	DiscussionLocked *bool         `url:"discussion_locked,omitempty" json:"discussion_locked,omitempty"`
	IssueType        *string       `url:"issue_type,omitempty" json:"issue_type,omitempty"`

	ResetDueDate     bool `url:"-" json:"-"`
	ResetEpicID      bool `url:"-" json:"-"`
	ResetMilestoneID bool `url:"-" json:"-"`
	ResetWeight      bool `url:"-" json:"-"`
}

UpdateIssueOptions represents the available UpdateIssue() options.

To reset the due date, epic, milestone, or weight of the issue, set the ResetDueDate, ResetEpic, ResetMilestone, or ResetWeight field to true.

GitLab API docs: https://docs.gitlab.com/api/issues/#edit-an-issue

func (UpdateIssueOptions) MarshalJSON added in v0.129.0

func (o UpdateIssueOptions) MarshalJSON() ([]byte, error)

MarshalJSON implements custom JSON marshaling for UpdateIssueOptions. This is needed to support emitting a literal `null` when the field needs to be removed.

type UpdateLabelOptions

type UpdateLabelOptions struct {
	Name        *string `url:"name,omitempty" json:"name,omitempty"`
	NewName     *string `url:"new_name,omitempty" json:"new_name,omitempty"`
	Color       *string `url:"color,omitempty" json:"color,omitempty"`
	Description *string `url:"description,omitempty" json:"description,omitempty"`
	Priority    *int    `url:"priority,omitempty" json:"priority,omitempty"`
}

UpdateLabelOptions represents the available UpdateLabel() options.

GitLab API docs: https://docs.gitlab.com/api/labels/#edit-an-existing-label

type UpdateMergeRequestApprovalRuleOptions added in v0.116.0

type UpdateMergeRequestApprovalRuleOptions struct {
	Name              *string `url:"name,omitempty" json:"name,omitempty"`
	ApprovalsRequired *int    `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
	UserIDs           *[]int  `url:"user_ids,omitempty" json:"user_ids,omitempty"`
	GroupIDs          *[]int  `url:"group_ids,omitempty" json:"group_ids,omitempty"`
}

UpdateMergeRequestApprovalRuleOptions represents the available UpdateApprovalRule() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#update-merge-request-rule

type UpdateMergeRequestApprovalSettingsOptions added in v0.125.0

type UpdateMergeRequestApprovalSettingsOptions struct {
	AllowAuthorApproval                         *bool `url:"allow_author_approval,omitempty" json:"allow_author_approval,omitempty"`
	AllowCommitterApproval                      *bool `url:"allow_committer_approval,omitempty" json:"allow_committer_approval,omitempty"`
	AllowOverridesToApproverListPerMergeRequest *bool `` /* 134-byte string literal not displayed */
	RetainApprovalsOnPush                       *bool `url:"retain_approvals_on_push,omitempty" json:"retain_approvals_on_push,omitempty"`
	SelectiveCodeOwnerRemovals                  *bool `url:"selective_code_owner_removals,omitempty" json:"selective_code_owner_removals,omitempty"`
	RequireReauthenticationToApprove            *bool `url:"require_reauthentication_to_approve,omitempty" json:"require_reauthentication_to_approve,omitempty"`
}

UpdateMergeRequestApprovalSettingsOptions represents the available UpdateGroupMergeRequestApprovalSettings() and UpdateProjectMergeRequestApprovalSettings() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approval_settings/#update-group-mr-approval-settings https://docs.gitlab.com/api/merge_request_approval_settings/#update-project-mr-approval-settings

type UpdateMergeRequestDiscussionNoteOptions added in v0.11.2

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

UpdateMergeRequestDiscussionNoteOptions represents the available UpdateMergeRequestDiscussion() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-an-existing-merge-request-thread-note

type UpdateMergeRequestNoteOptions

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

UpdateMergeRequestNoteOptions represents the available UpdateMergeRequestNote() options.

GitLab API docs: https://docs.gitlab.com/api/notes/#modify-existing-merge-request-note

type UpdateMergeRequestOptions

type UpdateMergeRequestOptions struct {
	Title              *string       `url:"title,omitempty" json:"title,omitempty"`
	Description        *string       `url:"description,omitempty" json:"description,omitempty"`
	TargetBranch       *string       `url:"target_branch,omitempty" json:"target_branch,omitempty"`
	AssigneeID         *int          `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	AssigneeIDs        *[]int        `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
	ReviewerIDs        *[]int        `url:"reviewer_ids,omitempty" json:"reviewer_ids,omitempty"`
	Labels             *LabelOptions `url:"labels,comma,omitempty" json:"labels,omitempty"`
	AddLabels          *LabelOptions `url:"add_labels,comma,omitempty" json:"add_labels,omitempty"`
	RemoveLabels       *LabelOptions `url:"remove_labels,comma,omitempty" json:"remove_labels,omitempty"`
	MilestoneID        *int          `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	StateEvent         *string       `url:"state_event,omitempty" json:"state_event,omitempty"`
	RemoveSourceBranch *bool         `url:"remove_source_branch,omitempty" json:"remove_source_branch,omitempty"`
	Squash             *bool         `url:"squash,omitempty" json:"squash,omitempty"`
	DiscussionLocked   *bool         `url:"discussion_locked,omitempty" json:"discussion_locked,omitempty"`
	AllowCollaboration *bool         `url:"allow_collaboration,omitempty" json:"allow_collaboration,omitempty"`
}

UpdateMergeRequestOptions represents the available UpdateMergeRequest() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#update-mr

type UpdateMetricImageOptions added in v0.128.0

type UpdateMetricImageOptions struct {
	URL     *string `url:"url,omitempty" json:"url,omitempty"`
	URLText *string `url:"url_text,omitempty" json:"url_text,omitempty"`
}

UpdateMetricImageOptions represents the available UpdateMetricImage() options.

GitLab API docs: https://docs.gitlab.com/api/alert_management_alerts/#update-metric-image

type UpdateMilestoneOptions

type UpdateMilestoneOptions struct {
	Title       *string  `url:"title,omitempty" json:"title,omitempty"`
	Description *string  `url:"description,omitempty" json:"description,omitempty"`
	StartDate   *ISOTime `url:"start_date,omitempty" json:"start_date,omitempty"`
	DueDate     *ISOTime `url:"due_date,omitempty" json:"due_date,omitempty"`
	StateEvent  *string  `url:"state_event,omitempty" json:"state_event,omitempty"`
}

UpdateMilestoneOptions represents the available UpdateMilestone() options.

GitLab API docs: https://docs.gitlab.com/api/milestones/#edit-milestone

type UpdatePagesDomainOptions added in v0.8.0

type UpdatePagesDomainOptions struct {
	AutoSslEnabled *bool   `url:"auto_ssl_enabled,omitempty" json:"auto_ssl_enabled,omitempty"`
	Certificate    *string `url:"certificate,omitempty" json:"certificate,omitempty"`
	Key            *string `url:"key,omitempty" json:"key,omitempty"`
}

UpdatePagesDomainOptions represents the available UpdatePagesDomain() options.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#update-pages-domain

type UpdatePagesOptions added in v0.116.0

type UpdatePagesOptions struct {
	PagesUniqueDomainEnabled *bool `url:"pages_unique_domain_enabled,omitempty" json:"pages_unique_domain_enabled,omitempty"`
	PagesHTTPSOnly           *bool `url:"pages_https_only,omitempty" json:"pages_https_only,omitempty"`
}

UpdatePages represents the available UpdatePages() options.

GitLab API docs: https://docs.gitlab.com/api/pages/#update-pages-settings-for-a-project

type UpdatePipelineMetadataOptions added in v0.116.0

type UpdatePipelineMetadataOptions struct {
	Name *string `url:"name,omitempty" json:"name,omitempty"`
}

UpdatePipelineMetadataOptions represents the available UpdatePipelineMetadata() options.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#update-pipeline-metadata

type UpdateProjectDeploymentOptions added in v0.116.0

type UpdateProjectDeploymentOptions struct {
	Status *DeploymentStatusValue `url:"status,omitempty" json:"status,omitempty"`
}

UpdateProjectDeploymentOptions represents the available UpdateProjectDeployment() options.

GitLab API docs: https://docs.gitlab.com/api/deployments/#update-a-deployment

type UpdateProjectFeatureFlagOptions added in v0.116.0

type UpdateProjectFeatureFlagOptions struct {
	Name        *string                        `url:"name,omitempty" json:"name,omitempty"`
	Description *string                        `url:"description,omitempty" json:"description,omitempty"`
	Active      *bool                          `url:"active,omitempty" json:"active,omitempty"`
	Strategies  *[]*FeatureFlagStrategyOptions `url:"strategies,omitempty" json:"strategies,omitempty"`
}

UpdateProjectFeatureFlagOptions represents the available UpdateProjectFeatureFlag() options.

Gitlab API docs: https://docs.gitlab.com/api/feature_flags/#update-a-feature-flag

type UpdateProjectLevelRuleOptions added in v0.116.0

type UpdateProjectLevelRuleOptions struct {
	Name                          *string   `url:"name,omitempty" json:"name,omitempty"`
	ApprovalsRequired             *int      `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
	UserIDs                       *[]int    `url:"user_ids,omitempty" json:"user_ids,omitempty"`
	GroupIDs                      *[]int    `url:"group_ids,omitempty" json:"group_ids,omitempty"`
	ProtectedBranchIDs            *[]int    `url:"protected_branch_ids,omitempty" json:"protected_branch_ids,omitempty"`
	AppliesToAllProtectedBranches *bool     `url:"applies_to_all_protected_branches,omitempty" json:"applies_to_all_protected_branches,omitempty"`
	Usernames                     *[]string `url:"usernames,omitempty" json:"usernames,omitempty"`
}

UpdateProjectLevelRuleOptions represents the available UpdateProjectApprovalRule() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approvals/#update-project-approval-rule

type UpdateProjectSecuritySettingsOptions added in v0.124.0

type UpdateProjectSecuritySettingsOptions struct {
	SecretPushProtectionEnabled *bool `url:"secret_push_protection_enabled,omitempty" json:"secret_push_protection_enabled,omitempty"`
}

UpdateProjectSecuritySettingsOptions represent the request options for updating the project security settings.

GitLab API docs: https://docs.gitlab.com/api/project_security_settings/#update-secret_push_protection_enabled-setting

type UpdateProjectSnippetOptions added in v0.7.2

type UpdateProjectSnippetOptions struct {
	Title       *string                      `url:"title,omitempty" json:"title,omitempty"`
	Description *string                      `url:"description,omitempty" json:"description,omitempty"`
	Visibility  *VisibilityValue             `url:"visibility,omitempty" json:"visibility,omitempty"`
	Files       *[]*UpdateSnippetFileOptions `url:"files,omitempty" json:"files,omitempty"`

	// Deprecated: use Files instead
	FileName *string `url:"file_name,omitempty" json:"file_name,omitempty"`
	// Deprecated: use Files instead
	Content *string `url:"content,omitempty" json:"content,omitempty"`
}

UpdateProjectSnippetOptions represents the available UpdateSnippet() options.

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#update-snippet

type UpdateProjectVariableOptions added in v0.116.0

type UpdateProjectVariableOptions struct {
	Value            *string            `url:"value,omitempty" json:"value,omitempty"`
	Description      *string            `url:"description,omitempty" json:"description,omitempty"`
	EnvironmentScope *string            `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
	Filter           *VariableFilter    `url:"filter,omitempty" json:"filter,omitempty"`
	Masked           *bool              `url:"masked,omitempty" json:"masked,omitempty"`
	Protected        *bool              `url:"protected,omitempty" json:"protected,omitempty"`
	Raw              *bool              `url:"raw,omitempty" json:"raw,omitempty"`
	VariableType     *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}

UpdateProjectVariableOptions represents the available UpdateVariable() options.

GitLab API docs: https://docs.gitlab.com/api/project_level_variables/#update-a-variable

type UpdateProtectedBranchOptions added in v0.116.0

type UpdateProtectedBranchOptions struct {
	Name                      *string                     `url:"name,omitempty" json:"name,omitempty"`
	AllowForcePush            *bool                       `url:"allow_force_push,omitempty" json:"allow_force_push,omitempty"`
	CodeOwnerApprovalRequired *bool                       `url:"code_owner_approval_required,omitempty" json:"code_owner_approval_required,omitempty"`
	AllowedToPush             *[]*BranchPermissionOptions `url:"allowed_to_push,omitempty" json:"allowed_to_push,omitempty"`
	AllowedToMerge            *[]*BranchPermissionOptions `url:"allowed_to_merge,omitempty" json:"allowed_to_merge,omitempty"`
	AllowedToUnprotect        *[]*BranchPermissionOptions `url:"allowed_to_unprotect,omitempty" json:"allowed_to_unprotect,omitempty"`
}

UpdateProtectedBranchOptions represents the available UpdateProtectedBranch() options.

GitLab API docs: https://docs.gitlab.com/api/protected_branches/#update-a-protected-branch

type UpdateProtectedEnvironmentsOptions added in v0.116.0

type UpdateProtectedEnvironmentsOptions struct {
	Name                  *string                                  `url:"name,omitempty" json:"name,omitempty"`
	DeployAccessLevels    *[]*UpdateEnvironmentAccessOptions       `url:"deploy_access_levels,omitempty" json:"deploy_access_levels,omitempty"`
	RequiredApprovalCount *int                                     `url:"required_approval_count,omitempty" json:"required_approval_count,omitempty"`
	ApprovalRules         *[]*UpdateEnvironmentApprovalRuleOptions `url:"approval_rules,omitempty" json:"approval_rules,omitempty"`
}

UpdateProtectedEnvironmentsOptions represents the available UpdateProtectedEnvironments() options.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#update-a-protected-environment

type UpdateReleaseLinkOptions added in v0.116.0

type UpdateReleaseLinkOptions struct {
	Name            *string        `url:"name,omitempty" json:"name,omitempty"`
	URL             *string        `url:"url,omitempty" json:"url,omitempty"`
	FilePath        *string        `url:"filepath,omitempty" json:"filepath,omitempty"`
	DirectAssetPath *string        `url:"direct_asset_path,omitempty" json:"direct_asset_path,omitempty"`
	LinkType        *LinkTypeValue `url:"link_type,omitempty" json:"link_type,omitempty"`
}

UpdateReleaseLinkOptions represents UpdateReleaseLink() options.

You have to specify at least one of Name of URL.

GitLab API docs: https://docs.gitlab.com/api/releases/links/#update-a-release-link

type UpdateReleaseOptions added in v0.10.0

type UpdateReleaseOptions struct {
	Name        *string    `url:"name" json:"name"`
	Description *string    `url:"description" json:"description"`
	Milestones  *[]string  `url:"milestones,omitempty" json:"milestones,omitempty"`
	ReleasedAt  *time.Time `url:"released_at,omitempty" json:"released_at,omitempty"`
}

UpdateReleaseOptions represents UpdateRelease() options.

GitLab API docs: https://docs.gitlab.com/api/releases/#update-a-release

type UpdateRunnerDetailsOptions added in v0.8.0

type UpdateRunnerDetailsOptions struct {
	Description     *string   `url:"description,omitempty" json:"description,omitempty"`
	Paused          *bool     `url:"paused,omitempty" json:"paused,omitempty"`
	TagList         *[]string `url:"tag_list[],omitempty" json:"tag_list,omitempty"`
	RunUntagged     *bool     `url:"run_untagged,omitempty" json:"run_untagged,omitempty"`
	Locked          *bool     `url:"locked,omitempty" json:"locked,omitempty"`
	AccessLevel     *string   `url:"access_level,omitempty" json:"access_level,omitempty"`
	MaximumTimeout  *int      `url:"maximum_timeout,omitempty" json:"maximum_timeout,omitempty"`
	MaintenanceNote *string   `url:"maintenance_note,omitempty" json:"maintenance_note,omitempty"`

	// Deprecated: for removal in v5 of the API, use Paused instead
	Active *bool `url:"active,omitempty" json:"active,omitempty"`
}

UpdateRunnerDetailsOptions represents the available UpdateRunnerDetails() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#update-runners-details

type UpdateSCIMIdentityOptions added in v0.124.0

type UpdateSCIMIdentityOptions struct {
	ExternUID *string `url:"extern_uid,omitempty" json:"extern_uid,omitempty"`
}

UpdateSCIMIdentityOptions represent the request options for updating a SCIM Identity.

GitLab API docs: https://docs.gitlab.com/api/scim/#update-extern_uid-field-for-a-scim-identity

type UpdateSettingsOptions

type UpdateSettingsOptions struct {
	AbuseNotificationEmail                                *string                                 `url:"abuse_notification_email,omitempty" json:"abuse_notification_email,omitempty"`
	AdminMode                                             *bool                                   `url:"admin_mode,omitempty" json:"admin_mode,omitempty"`
	AfterSignOutPath                                      *string                                 `url:"after_sign_out_path,omitempty" json:"after_sign_out_path,omitempty"`
	AfterSignUpText                                       *string                                 `url:"after_sign_up_text,omitempty" json:"after_sign_up_text,omitempty"`
	AkismetAPIKey                                         *string                                 `url:"akismet_api_key,omitempty" json:"akismet_api_key,omitempty"`
	AkismetEnabled                                        *bool                                   `url:"akismet_enabled,omitempty" json:"akismet_enabled,omitempty"`
	AllowAccountDeletion                                  *bool                                   `url:"allow_account_deletion,omitempty" json:"allow_account_deletion,omitempty"`
	AllowAllIntegrations                                  *bool                                   `url:"allow_all_integrations,omitempty" json:"allow_all_integrations,omitempty"`
	AllowedIntegrations                                   *[]string                               `url:"allowed_integrations,omitempty" json:"allowed_integrations,omitempty"`
	AllowGroupOwnersToManageLDAP                          *bool                                   `url:"allow_group_owners_to_manage_ldap,omitempty" json:"allow_group_owners_to_manage_ldap,omitempty"`
	AllowLocalRequestsFromSystemHooks                     *bool                                   `url:"allow_local_requests_from_system_hooks,omitempty" json:"allow_local_requests_from_system_hooks,omitempty"`
	AllowLocalRequestsFromWebHooksAndServices             *bool                                   `` /* 130-byte string literal not displayed */
	AllowProjectCreationForGuestAndBelow                  *bool                                   `url:"allow_project_creation_for_guest_and_below,omitempty" json:"allow_project_creation_for_guest_and_below,omitempty"`
	AllowRunnerRegistrationToken                          *bool                                   `url:"allow_runner_registration_token,omitempty" json:"allow_runner_registration_token,omitempty"`
	ArchiveBuildsInHumanReadable                          *string                                 `url:"archive_builds_in_human_readable,omitempty" json:"archive_builds_in_human_readable,omitempty"`
	ASCIIDocMaxIncludes                                   *int                                    `url:"asciidoc_max_includes,omitempty" json:"asciidoc_max_includes,omitempty"`
	AssetProxyAllowlist                                   *[]string                               `url:"asset_proxy_allowlist,omitempty" json:"asset_proxy_allowlist,omitempty"`
	AssetProxyEnabled                                     *bool                                   `url:"asset_proxy_enabled,omitempty" json:"asset_proxy_enabled,omitempty"`
	AssetProxySecretKey                                   *string                                 `url:"asset_proxy_secret_key,omitempty" json:"asset_proxy_secret_key,omitempty"`
	AssetProxyURL                                         *string                                 `url:"asset_proxy_url,omitempty" json:"asset_proxy_url,omitempty"`
	AuthorizedKeysEnabled                                 *bool                                   `url:"authorized_keys_enabled,omitempty" json:"authorized_keys_enabled,omitempty"`
	AutoBanUserOnExcessiveProjectsDownload                *bool                                   `url:"auto_ban_user_on_excessive_projects_download,omitempty" json:"auto_ban_user_on_excessive_projects_download,omitempty"`
	AutocompleteUsers                                     *int                                    `url:"autocomplete_users,omitempty" json:"autocomplete_users,omitempty"`
	AutocompleteUsersUnauthenticated                      *int                                    `url:"autocomplete_users_unauthenticated,omitempty" json:"autocomplete_users_unauthenticated,omitempty"`
	AutoDevOpsDomain                                      *string                                 `url:"auto_devops_domain,omitempty" json:"auto_devops_domain,omitempty"`
	AutoDevOpsEnabled                                     *bool                                   `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
	AutomaticPurchasedStorageAllocation                   *bool                                   `url:"automatic_purchased_storage_allocation,omitempty" json:"automatic_purchased_storage_allocation,omitempty"`
	BulkImportConcurrentPipelineBatchLimit                *int                                    `url:"bulk_import_concurrent_pipeline_batch_limit,omitempty" json:"bulk_import_concurrent_pipeline_batch_limit,omitempty"`
	BulkImportEnabled                                     *bool                                   `url:"bulk_import_enabled,omitempty" json:"bulk_import_enabled,omitempty"`
	BulkImportMaxDownloadFileSize                         *int                                    `url:"bulk_import_max_download_file_size,omitempty" json:"bulk_import_max_download_file_size,omitempty"`
	CanCreateGroup                                        *bool                                   `url:"can_create_group,omitempty" json:"can_create_group,omitempty"`
	CheckNamespacePlan                                    *bool                                   `url:"check_namespace_plan,omitempty" json:"check_namespace_plan,omitempty"`
	CIJobLiveTraceEnabled                                 *bool                                   `url:"ci_job_live_trace_enabled,omitempty" json:"ci_job_live_trace_enabled,omitempty"`
	CIMaxIncludes                                         *int                                    `url:"ci_max_includes,omitempty" json:"ci_max_includes,omitempty"`
	CIMaxTotalYAMLSizeBytes                               *int                                    `url:"ci_max_total_yaml_size_bytes,omitempty" json:"ci_max_total_yaml_size_bytes,omitempty"`
	CIPartitionsSizeLimit                                 *int                                    `url:"ci_partitions_size_limit,omitempty" json:"ci_partitions_size_limit,omitempty"`
	CommitEmailHostname                                   *string                                 `url:"commit_email_hostname,omitempty" json:"commit_email_hostname,omitempty"`
	ConcurrentBitbucketImportJobsLimit                    *int                                    `url:"concurrent_bitbucket_import_jobs_limit,omitempty" json:"concurrent_bitbucket_import_jobs_limit,omitempty"`
	ConcurrentBitbucketServerImportJobsLimit              *int                                    `url:"concurrent_bitbucket_server_import_jobs_limit,omitempty" json:"concurrent_bitbucket_server_import_jobs_limit,omitempty"`
	ConcurrentGitHubImportJobsLimit                       *int                                    `url:"concurrent_github_import_jobs_limit,omitempty" json:"concurrent_github_import_jobs_limit,omitempty"`
	ContainerExpirationPoliciesEnableHistoricEntries      *bool                                   `` /* 140-byte string literal not displayed */
	ContainerRegistryCleanupTagsServiceMaxListSize        *int                                    `` /* 140-byte string literal not displayed */
	ContainerRegistryDeleteTagsServiceTimeout             *int                                    `` /* 126-byte string literal not displayed */
	ContainerRegistryExpirationPoliciesCaching            *bool                                   `` /* 126-byte string literal not displayed */
	ContainerRegistryExpirationPoliciesWorkerCapacity     *int                                    `` /* 142-byte string literal not displayed */
	ContainerRegistryImportCreatedBefore                  *time.Time                              `url:"container_registry_import_created_before,omitempty" json:"container_registry_import_created_before,omitempty"`
	ContainerRegistryImportMaxRetries                     *int                                    `url:"container_registry_import_max_retries,omitempty" json:"container_registry_import_max_retries,omitempty"`
	ContainerRegistryImportMaxStepDuration                *int                                    `url:"container_registry_import_max_step_duration,omitempty" json:"container_registry_import_max_step_duration,omitempty"`
	ContainerRegistryImportMaxTagsCount                   *int                                    `url:"container_registry_import_max_tags_count,omitempty" json:"container_registry_import_max_tags_count,omitempty"`
	ContainerRegistryImportStartMaxRetries                *int                                    `url:"container_registry_import_start_max_retries,omitempty" json:"container_registry_import_start_max_retries,omitempty"`
	ContainerRegistryImportTargetPlan                     *string                                 `url:"container_registry_import_target_plan,omitempty" json:"container_registry_import_target_plan,omitempty"`
	ContainerRegistryTokenExpireDelay                     *int                                    `url:"container_registry_token_expire_delay,omitempty" json:"container_registry_token_expire_delay,omitempty"`
	CustomHTTPCloneURLRoot                                *string                                 `url:"custom_http_clone_url_root,omitempty" json:"custom_http_clone_url_root,omitempty"`
	DNSRebindingProtectionEnabled                         *bool                                   `url:"dns_rebinding_protection_enabled,omitempty" json:"dns_rebinding_protection_enabled,omitempty"`
	DSAKeyRestriction                                     *int                                    `url:"dsa_key_restriction,omitempty" json:"dsa_key_restriction,omitempty"`
	DeactivateDormantUsers                                *bool                                   `url:"deactivate_dormant_users,omitempty" json:"deactivate_dormant_users,omitempty"`
	DeactivateDormantUsersPeriod                          *int                                    `url:"deactivate_dormant_users_period,omitempty" json:"deactivate_dormant_users_period,omitempty"`
	DecompressArchiveFileTimeout                          *int                                    `url:"decompress_archive_file_timeout,omitempty" json:"decompress_archive_file_timeout,omitempty"`
	DefaultArtifactsExpireIn                              *string                                 `url:"default_artifacts_expire_in,omitempty" json:"default_artifacts_expire_in,omitempty"`
	DefaultBranchName                                     *string                                 `url:"default_branch_name,omitempty" json:"default_branch_name,omitempty"`
	DefaultBranchProtectionDefaults                       *DefaultBranchProtectionDefaultsOptions `url:"default_branch_protection_defaults,omitempty" json:"default_branch_protection_defaults,omitempty"`
	DefaultCiConfigPath                                   *string                                 `url:"default_ci_config_path,omitempty" json:"default_ci_config_path,omitempty"`
	DefaultGroupVisibility                                *VisibilityValue                        `url:"default_group_visibility,omitempty" json:"default_group_visibility,omitempty"`
	DefaultPreferredLanguage                              *string                                 `url:"default_preferred_language,omitempty" json:"default_preferred_language,omitempty"`
	DefaultProjectCreation                                *int                                    `url:"default_project_creation,omitempty" json:"default_project_creation,omitempty"`
	DefaultProjectDeletionProtection                      *bool                                   `url:"default_project_deletion_protection,omitempty" json:"default_project_deletion_protection,omitempty"`
	DefaultProjectVisibility                              *VisibilityValue                        `url:"default_project_visibility,omitempty" json:"default_project_visibility,omitempty"`
	DefaultProjectsLimit                                  *int                                    `url:"default_projects_limit,omitempty" json:"default_projects_limit,omitempty"`
	DefaultSnippetVisibility                              *VisibilityValue                        `url:"default_snippet_visibility,omitempty" json:"default_snippet_visibility,omitempty"`
	DefaultSyntaxHighlightingTheme                        *int                                    `url:"default_syntax_highlighting_theme,omitempty" json:"default_syntax_highlighting_theme,omitempty"`
	DelayedGroupDeletion                                  *bool                                   `url:"delayed_group_deletion,omitempty" json:"delayed_group_deletion,omitempty"`
	DelayedProjectDeletion                                *bool                                   `url:"delayed_project_deletion,omitempty" json:"delayed_project_deletion,omitempty"`
	DeleteInactiveProjects                                *bool                                   `url:"delete_inactive_projects,omitempty" json:"delete_inactive_projects,omitempty"`
	DeleteUnconfirmedUsers                                *bool                                   `url:"delete_unconfirmed_users,omitempty" json:"delete_unconfirmed_users,omitempty"`
	DeletionAdjournedPeriod                               *int                                    `url:"deletion_adjourned_period,omitempty" json:"deletion_adjourned_period,omitempty"`
	DiagramsnetEnabled                                    *bool                                   `url:"diagramsnet_enabled,omitempty" json:"diagramsnet_enabled,omitempty"`
	DiagramsnetURL                                        *string                                 `url:"diagramsnet_url,omitempty" json:"diagramsnet_url,omitempty"`
	DiffMaxFiles                                          *int                                    `url:"diff_max_files,omitempty" json:"diff_max_files,omitempty"`
	DiffMaxLines                                          *int                                    `url:"diff_max_lines,omitempty" json:"diff_max_lines,omitempty"`
	DiffMaxPatchBytes                                     *int                                    `url:"diff_max_patch_bytes,omitempty" json:"diff_max_patch_bytes,omitempty"`
	DisableFeedToken                                      *bool                                   `url:"disable_feed_token,omitempty" json:"disable_feed_token,omitempty"`
	DisableAdminOAuthScopes                               *bool                                   `url:"disable_admin_oauth_scopes,omitempty" json:"disable_admin_oauth_scopes,omitempty"`
	DisableOverridingApproversPerMergeRequest             *bool                                   `` /* 126-byte string literal not displayed */
	DisablePersonalAccessTokens                           *bool                                   `url:"disable_personal_access_tokens,omitempty" json:"disable_personal_access_tokens,omitempty"`
	DisabledOauthSignInSources                            *[]string                               `url:"disabled_oauth_sign_in_sources,omitempty" json:"disabled_oauth_sign_in_sources,omitempty"`
	DomainAllowlist                                       *[]string                               `url:"domain_allowlist,omitempty" json:"domain_allowlist,omitempty"`
	DomainDenylist                                        *[]string                               `url:"domain_denylist,omitempty" json:"domain_denylist,omitempty"`
	DomainDenylistEnabled                                 *bool                                   `url:"domain_denylist_enabled,omitempty" json:"domain_denylist_enabled,omitempty"`
	DownstreamPipelineTriggerLimitPerProjectUserSHA       *int                                    `` /* 142-byte string literal not displayed */
	DuoFeaturesEnabled                                    *bool                                   `url:"duo_features_enabled,omitempty" json:"duo_features_enabled,omitempty"`
	ECDSAKeyRestriction                                   *int                                    `url:"ecdsa_key_restriction,omitempty" json:"ecdsa_key_restriction,omitempty"`
	ECDSASKKeyRestriction                                 *int                                    `url:"ecdsa_sk_key_restriction,omitempty" json:"ecdsa_sk_key_restriction,omitempty"`
	EKSAccessKeyID                                        *string                                 `url:"eks_access_key_id,omitempty" json:"eks_access_key_id,omitempty"`
	EKSAccountID                                          *string                                 `url:"eks_account_id,omitempty" json:"eks_account_id,omitempty"`
	EKSIntegrationEnabled                                 *bool                                   `url:"eks_integration_enabled,omitempty" json:"eks_integration_enabled,omitempty"`
	EKSSecretAccessKey                                    *string                                 `url:"eks_secret_access_key,omitempty" json:"eks_secret_access_key,omitempty"`
	Ed25519KeyRestriction                                 *int                                    `url:"ed25519_key_restriction,omitempty" json:"ed25519_key_restriction,omitempty"`
	Ed25519SKKeyRestriction                               *int                                    `url:"ed25519_sk_key_restriction,omitempty" json:"ed25519_sk_key_restriction,omitempty"`
	ElasticsearchAWS                                      *bool                                   `url:"elasticsearch_aws,omitempty" json:"elasticsearch_aws,omitempty"`
	ElasticsearchAWSAccessKey                             *string                                 `url:"elasticsearch_aws_access_key,omitempty" json:"elasticsearch_aws_access_key,omitempty"`
	ElasticsearchAWSRegion                                *string                                 `url:"elasticsearch_aws_region,omitempty" json:"elasticsearch_aws_region,omitempty"`
	ElasticsearchAWSSecretAccessKey                       *string                                 `url:"elasticsearch_aws_secret_access_key,omitempty" json:"elasticsearch_aws_secret_access_key,omitempty"`
	ElasticsearchAnalyzersKuromojiEnabled                 *bool                                   `url:"elasticsearch_analyzers_kuromoji_enabled,omitempty" json:"elasticsearch_analyzers_kuromoji_enabled,omitempty"`
	ElasticsearchAnalyzersKuromojiSearch                  *int                                    `url:"elasticsearch_analyzers_kuromoji_search,omitempty" json:"elasticsearch_analyzers_kuromoji_search,omitempty"`
	ElasticsearchAnalyzersSmartCNEnabled                  *bool                                   `url:"elasticsearch_analyzers_smartcn_enabled,omitempty" json:"elasticsearch_analyzers_smartcn_enabled,omitempty"`
	ElasticsearchAnalyzersSmartCNSearch                   *int                                    `url:"elasticsearch_analyzers_smartcn_search,omitempty" json:"elasticsearch_analyzers_smartcn_search,omitempty"`
	ElasticsearchClientRequestTimeout                     *int                                    `url:"elasticsearch_client_request_timeout,omitempty" json:"elasticsearch_client_request_timeout,omitempty"`
	ElasticsearchIndexedFieldLengthLimit                  *int                                    `url:"elasticsearch_indexed_field_length_limit,omitempty" json:"elasticsearch_indexed_field_length_limit,omitempty"`
	ElasticsearchIndexedFileSizeLimitKB                   *int                                    `url:"elasticsearch_indexed_file_size_limit_kb,omitempty" json:"elasticsearch_indexed_file_size_limit_kb,omitempty"`
	ElasticsearchIndexing                                 *bool                                   `url:"elasticsearch_indexing,omitempty" json:"elasticsearch_indexing,omitempty"`
	ElasticsearchLimitIndexing                            *bool                                   `url:"elasticsearch_limit_indexing,omitempty" json:"elasticsearch_limit_indexing,omitempty"`
	ElasticsearchMaxBulkConcurrency                       *int                                    `url:"elasticsearch_max_bulk_concurrency,omitempty" json:"elasticsearch_max_bulk_concurrency,omitempty"`
	ElasticsearchMaxBulkSizeMB                            *int                                    `url:"elasticsearch_max_bulk_size_mb,omitempty" json:"elasticsearch_max_bulk_size_mb,omitempty"`
	ElasticsearchMaxCodeIndexingConcurrency               *int                                    `url:"elasticsearch_max_code_indexing_concurrency,omitempty" json:"elasticsearch_max_code_indexing_concurrency,omitempty"`
	ElasticsearchNamespaceIDs                             *[]int                                  `url:"elasticsearch_namespace_ids,omitempty" json:"elasticsearch_namespace_ids,omitempty"`
	ElasticsearchPassword                                 *string                                 `url:"elasticsearch_password,omitempty" json:"elasticsearch_password,omitempty"`
	ElasticsearchPauseIndexing                            *bool                                   `url:"elasticsearch_pause_indexing,omitempty" json:"elasticsearch_pause_indexing,omitempty"`
	ElasticsearchProjectIDs                               *[]int                                  `url:"elasticsearch_project_ids,omitempty" json:"elasticsearch_project_ids,omitempty"`
	ElasticsearchReplicas                                 *int                                    `url:"elasticsearch_replicas,omitempty" json:"elasticsearch_replicas,omitempty"`
	ElasticsearchRequeueWorkers                           *bool                                   `url:"elasticsearch_requeue_workers,omitempty" json:"elasticsearch_requeue_workers,omitempty"`
	ElasticsearchRetryOnFailure                           *int                                    `url:"elasticsearch_retry_on_failure,omitempty" json:"elasticsearch_retry_on_failure,omitempty"`
	ElasticsearchSearch                                   *bool                                   `url:"elasticsearch_search,omitempty" json:"elasticsearch_search,omitempty"`
	ElasticsearchShards                                   *int                                    `url:"elasticsearch_shards,omitempty" json:"elasticsearch_shards,omitempty"`
	ElasticsearchURL                                      *string                                 `url:"elasticsearch_url,omitempty" json:"elasticsearch_url,omitempty"`
	ElasticsearchUsername                                 *string                                 `url:"elasticsearch_username,omitempty" json:"elasticsearch_username,omitempty"`
	ElasticsearchWorkerNumberOfShards                     *int                                    `url:"elasticsearch_worker_number_of_shards,omitempty" json:"elasticsearch_worker_number_of_shards,omitempty"`
	EmailAdditionalText                                   *string                                 `url:"email_additional_text,omitempty" json:"email_additional_text,omitempty"`
	EmailAuthorInBody                                     *bool                                   `url:"email_author_in_body,omitempty" json:"email_author_in_body,omitempty"`
	EmailConfirmationSetting                              *string                                 `url:"email_confirmation_setting,omitempty" json:"email_confirmation_setting,omitempty"`
	EmailRestrictions                                     *string                                 `url:"email_restrictions,omitempty" json:"email_restrictions,omitempty"`
	EmailRestrictionsEnabled                              *bool                                   `url:"email_restrictions_enabled,omitempty" json:"email_restrictions_enabled,omitempty"`
	EnableArtifactExternalRedirectWarningPage             *bool                                   `` /* 126-byte string literal not displayed */
	EnabledGitAccessProtocol                              *string                                 `url:"enabled_git_access_protocol,omitempty" json:"enabled_git_access_protocol,omitempty"`
	EnforceCIInboundJobTokenScopeEnabled                  *bool                                   `url:"enforce_ci_inbound_job_token_scope_enabled,omitempty" json:"enforce_ci_inbound_job_token_scope_enabled,omitempty"`
	EnforceNamespaceStorageLimit                          *bool                                   `url:"enforce_namespace_storage_limit,omitempty" json:"enforce_namespace_storage_limit,omitempty"`
	EnforcePATExpiration                                  *bool                                   `url:"enforce_pat_expiration,omitempty" json:"enforce_pat_expiration,omitempty"`
	EnforceSSHKeyExpiration                               *bool                                   `url:"enforce_ssh_key_expiration,omitempty" json:"enforce_ssh_key_expiration,omitempty"`
	EnforceTerms                                          *bool                                   `url:"enforce_terms,omitempty" json:"enforce_terms,omitempty"`
	ExternalAuthClientCert                                *string                                 `url:"external_auth_client_cert,omitempty" json:"external_auth_client_cert,omitempty"`
	ExternalAuthClientKey                                 *string                                 `url:"external_auth_client_key,omitempty" json:"external_auth_client_key,omitempty"`
	ExternalAuthClientKeyPass                             *string                                 `url:"external_auth_client_key_pass,omitempty" json:"external_auth_client_key_pass,omitempty"`
	ExternalAuthorizationServiceDefaultLabel              *string                                 `url:"external_authorization_service_default_label,omitempty" json:"external_authorization_service_default_label,omitempty"`
	ExternalAuthorizationServiceEnabled                   *bool                                   `url:"external_authorization_service_enabled,omitempty" json:"external_authorization_service_enabled,omitempty"`
	ExternalAuthorizationServiceTimeout                   *float64                                `url:"external_authorization_service_timeout,omitempty" json:"external_authorization_service_timeout,omitempty"`
	ExternalAuthorizationServiceURL                       *string                                 `url:"external_authorization_service_url,omitempty" json:"external_authorization_service_url,omitempty"`
	ExternalPipelineValidationServiceTimeout              *int                                    `url:"external_pipeline_validation_service_timeout,omitempty" json:"external_pipeline_validation_service_timeout,omitempty"`
	ExternalPipelineValidationServiceToken                *string                                 `url:"external_pipeline_validation_service_token,omitempty" json:"external_pipeline_validation_service_token,omitempty"`
	ExternalPipelineValidationServiceURL                  *string                                 `url:"external_pipeline_validation_service_url,omitempty" json:"external_pipeline_validation_service_url,omitempty"`
	FailedLoginAttemptsUnlockPeriodInMinutes              *int                                    `` /* 126-byte string literal not displayed */
	FileTemplateProjectID                                 *int                                    `url:"file_template_project_id,omitempty" json:"file_template_project_id,omitempty"`
	FirstDayOfWeek                                        *int                                    `url:"first_day_of_week,omitempty" json:"first_day_of_week,omitempty"`
	FlocEnabled                                           *bool                                   `url:"floc_enabled,omitempty" json:"floc_enabled,omitempty"`
	GeoNodeAllowedIPs                                     *string                                 `url:"geo_node_allowed_ips,omitempty" json:"geo_node_allowed_ips,omitempty"`
	GeoStatusTimeout                                      *int                                    `url:"geo_status_timeout,omitempty" json:"geo_status_timeout,omitempty"`
	GitRateLimitUsersAlertlist                            *[]int                                  `url:"git_rate_limit_users_alertlist,omitempty" json:"git_rate_limit_users_alertlist,omitempty"`
	GitTwoFactorSessionExpiry                             *int                                    `url:"git_two_factor_session_expiry,omitempty" json:"git_two_factor_session_expiry,omitempty"`
	GitalyTimeoutDefault                                  *int                                    `url:"gitaly_timeout_default,omitempty" json:"gitaly_timeout_default,omitempty"`
	GitalyTimeoutFast                                     *int                                    `url:"gitaly_timeout_fast,omitempty" json:"gitaly_timeout_fast,omitempty"`
	GitalyTimeoutMedium                                   *int                                    `url:"gitaly_timeout_medium,omitempty" json:"gitaly_timeout_medium,omitempty"`
	GitlabDedicatedInstance                               *bool                                   `url:"gitlab_dedicated_instance,omitempty" json:"gitlab_dedicated_instance,omitempty"`
	GitlabEnvironmentToolkitInstance                      *bool                                   `url:"gitlab_environment_toolkit_instance,omitempty" json:"gitlab_environment_toolkit_instance,omitempty"`
	GitlabShellOperationLimit                             *int                                    `url:"gitlab_shell_operation_limit,omitempty" json:"gitlab_shell_operation_limit,omitempty"`
	GitpodEnabled                                         *bool                                   `url:"gitpod_enabled,omitempty" json:"gitpod_enabled,omitempty"`
	GitpodURL                                             *string                                 `url:"gitpod_url,omitempty" json:"gitpod_url,omitempty"`
	GitRateLimitUsersAllowlist                            *[]string                               `url:"git_rate_limit_users_allowlist,omitempty" json:"git_rate_limit_users_allowlist,omitempty"`
	GloballyAllowedIPs                                    *string                                 `url:"globally_allowed_ips,omitempty" json:"globally_allowed_ips,omitempty"`
	GrafanaEnabled                                        *bool                                   `url:"grafana_enabled,omitempty" json:"grafana_enabled,omitempty"`
	GrafanaURL                                            *string                                 `url:"grafana_url,omitempty" json:"grafana_url,omitempty"`
	GravatarEnabled                                       *bool                                   `url:"gravatar_enabled,omitempty" json:"gravatar_enabled,omitempty"`
	GroupDownloadExportLimit                              *int                                    `url:"group_download_export_limit,omitempty" json:"group_download_export_limit,omitempty"`
	GroupExportLimit                                      *int                                    `url:"group_export_limit,omitempty" json:"group_export_limit,omitempty"`
	GroupImportLimit                                      *int                                    `url:"group_import_limit,omitempty" json:"group_import_limit,omitempty"`
	GroupOwnersCanManageDefaultBranchProtection           *bool                                   `` /* 132-byte string literal not displayed */
	GroupRunnerTokenExpirationInterval                    *int                                    `url:"group_runner_token_expiration_interval,omitempty" json:"group_runner_token_expiration_interval,omitempty"`
	HTMLEmailsEnabled                                     *bool                                   `url:"html_emails_enabled,omitempty" json:"html_emails_enabled,omitempty"`
	HashedStorageEnabled                                  *bool                                   `url:"hashed_storage_enabled,omitempty" json:"hashed_storage_enabled,omitempty"`
	HelpPageDocumentationBaseURL                          *string                                 `url:"help_page_documentation_base_url,omitempty" json:"help_page_documentation_base_url,omitempty"`
	HelpPageHideCommercialContent                         *bool                                   `url:"help_page_hide_commercial_content,omitempty" json:"help_page_hide_commercial_content,omitempty"`
	HelpPageSupportURL                                    *string                                 `url:"help_page_support_url,omitempty" json:"help_page_support_url,omitempty"`
	HelpPageText                                          *string                                 `url:"help_page_text,omitempty" json:"help_page_text,omitempty"`
	HelpText                                              *string                                 `url:"help_text,omitempty" json:"help_text,omitempty"`
	HideThirdPartyOffers                                  *bool                                   `url:"hide_third_party_offers,omitempty" json:"hide_third_party_offers,omitempty"`
	HomePageURL                                           *string                                 `url:"home_page_url,omitempty" json:"home_page_url,omitempty"`
	HousekeepingEnabled                                   *bool                                   `url:"housekeeping_enabled,omitempty" json:"housekeeping_enabled,omitempty"`
	HousekeepingOptimizeRepositoryPeriod                  *int                                    `url:"housekeeping_optimize_repository_period,omitempty" json:"housekeeping_optimize_repository_period,omitempty"`
	ImportSources                                         *[]string                               `url:"import_sources,omitempty" json:"import_sources,omitempty"`
	InactiveProjectsDeleteAfterMonths                     *int                                    `url:"inactive_projects_delete_after_months,omitempty" json:"inactive_projects_delete_after_months,omitempty"`
	InactiveProjectsMinSizeMB                             *int                                    `url:"inactive_projects_min_size_mb,omitempty" json:"inactive_projects_min_size_mb,omitempty"`
	InactiveProjectsSendWarningEmailAfterMonths           *int                                    `` /* 132-byte string literal not displayed */
	IncludeOptionalMetricsInServicePing                   *bool                                   `url:"include_optional_metrics_in_service_ping,omitempty" json:"include_optional_metrics_in_service_ping,omitempty"`
	InProductMarketingEmailsEnabled                       *bool                                   `url:"in_product_marketing_emails_enabled,omitempty" json:"in_product_marketing_emails_enabled,omitempty"`
	InvisibleCaptchaEnabled                               *bool                                   `url:"invisible_captcha_enabled,omitempty" json:"invisible_captcha_enabled,omitempty"`
	IssuesCreateLimit                                     *int                                    `url:"issues_create_limit,omitempty" json:"issues_create_limit,omitempty"`
	JiraConnectApplicationKey                             *string                                 `url:"jira_connect_application_key,omitempty" json:"jira_connect_application_key,omitempty"`
	JiraConnectPublicKeyStorageEnabled                    *bool                                   `url:"jira_connect_public_key_storage_enabled,omitempty" json:"jira_connect_public_key_storage_enabled,omitempty"`
	JiraConnectProxyURL                                   *string                                 `url:"jira_connect_proxy_url,omitempty" json:"jira_connect_proxy_url,omitempty"`
	KeepLatestArtifact                                    *bool                                   `url:"keep_latest_artifact,omitempty" json:"keep_latest_artifact,omitempty"`
	KrokiEnabled                                          *bool                                   `url:"kroki_enabled,omitempty" json:"kroki_enabled,omitempty"`
	KrokiFormats                                          *map[string]bool                        `url:"kroki_formats,omitempty" json:"kroki_formats,omitempty"`
	KrokiURL                                              *string                                 `url:"kroki_url,omitempty" json:"kroki_url,omitempty"`
	LocalMarkdownVersion                                  *int                                    `url:"local_markdown_version,omitempty" json:"local_markdown_version,omitempty"`
	LockDuoFeaturesEnabled                                *bool                                   `url:"lock_duo_features_enabled,omitempty" json:"lock_duo_features_enabled,omitempty"`
	LockMembershipsToLDAP                                 *bool                                   `url:"lock_memberships_to_ldap,omitempty" json:"lock_memberships_to_ldap,omitempty"`
	LoginRecaptchaProtectionEnabled                       *bool                                   `url:"login_recaptcha_protection_enabled,omitempty" json:"login_recaptcha_protection_enabled,omitempty"`
	MailgunEventsEnabled                                  *bool                                   `url:"mailgun_events_enabled,omitempty" json:"mailgun_events_enabled,omitempty"`
	MailgunSigningKey                                     *string                                 `url:"mailgun_signing_key,omitempty" json:"mailgun_signing_key,omitempty"`
	MaintenanceMode                                       *bool                                   `url:"maintenance_mode,omitempty" json:"maintenance_mode,omitempty"`
	MaintenanceModeMessage                                *string                                 `url:"maintenance_mode_message,omitempty" json:"maintenance_mode_message,omitempty"`
	MavenPackageRequestsForwarding                        *bool                                   `url:"maven_package_requests_forwarding,omitempty" json:"maven_package_requests_forwarding,omitempty"`
	MaxArtifactsSize                                      *int                                    `url:"max_artifacts_size,omitempty" json:"max_artifacts_size,omitempty"`
	MaxAttachmentSize                                     *int                                    `url:"max_attachment_size,omitempty" json:"max_attachment_size,omitempty"`
	MaxDecompressedArchiveSize                            *int                                    `url:"max_decompressed_archive_size,omitempty" json:"max_decompressed_archive_size,omitempty"`
	MaxExportSize                                         *int                                    `url:"max_export_size,omitempty" json:"max_export_size,omitempty"`
	MaxImportRemoteFileSize                               *int                                    `url:"max_import_remote_file_size,omitempty" json:"max_import_remote_file_size,omitempty"`
	MaxImportSize                                         *int                                    `url:"max_import_size,omitempty" json:"max_import_size,omitempty"`
	MaxLoginAttempts                                      *int                                    `url:"max_login_attempts,omitempty" json:"max_login_attempts,omitempty"`
	MaxNumberOfRepositoryDownloads                        *int                                    `url:"max_number_of_repository_downloads,omitempty" json:"max_number_of_repository_downloads,omitempty"`
	MaxNumberOfRepositoryDownloadsWithinTimePeriod        *int                                    `` /* 140-byte string literal not displayed */
	MaxPagesSize                                          *int                                    `url:"max_pages_size,omitempty" json:"max_pages_size,omitempty"`
	MaxPersonalAccessTokenLifetime                        *int                                    `url:"max_personal_access_token_lifetime,omitempty" json:"max_personal_access_token_lifetime,omitempty"`
	MaxSSHKeyLifetime                                     *int                                    `url:"max_ssh_key_lifetime,omitempty" json:"max_ssh_key_lifetime,omitempty"`
	MaxTerraformStateSizeBytes                            *int                                    `url:"max_terraform_state_size_bytes,omitempty" json:"max_terraform_state_size_bytes,omitempty"`
	MaxYAMLDepth                                          *int                                    `url:"max_yaml_depth,omitempty" json:"max_yaml_depth,omitempty"`
	MaxYAMLSizeBytes                                      *int                                    `url:"max_yaml_size_bytes,omitempty" json:"max_yaml_size_bytes,omitempty"`
	MetricsMethodCallThreshold                            *int                                    `url:"metrics_method_call_threshold,omitempty" json:"metrics_method_call_threshold,omitempty"`
	MinimumPasswordLength                                 *int                                    `url:"minimum_password_length,omitempty" json:"minimum_password_length,omitempty"`
	MirrorAvailable                                       *bool                                   `url:"mirror_available,omitempty" json:"mirror_available,omitempty"`
	MirrorCapacityThreshold                               *int                                    `url:"mirror_capacity_threshold,omitempty" json:"mirror_capacity_threshold,omitempty"`
	MirrorMaxCapacity                                     *int                                    `url:"mirror_max_capacity,omitempty" json:"mirror_max_capacity,omitempty"`
	MirrorMaxDelay                                        *int                                    `url:"mirror_max_delay,omitempty" json:"mirror_max_delay,omitempty"`
	NPMPackageRequestsForwarding                          *bool                                   `url:"npm_package_requests_forwarding,omitempty" json:"npm_package_requests_forwarding,omitempty"`
	NotesCreateLimit                                      *int                                    `url:"notes_create_limit,omitempty" json:"notes_create_limit,omitempty"`
	NotifyOnUnknownSignIn                                 *bool                                   `url:"notify_on_unknown_sign_in,omitempty" json:"notify_on_unknown_sign_in,omitempty"`
	NugetSkipMetadataURLValidation                        *bool                                   `url:"nuget_skip_metadata_url_validation,omitempty" json:"nuget_skip_metadata_url_validation,omitempty"`
	OutboundLocalRequestsAllowlistRaw                     *string                                 `url:"outbound_local_requests_allowlist_raw,omitempty" json:"outbound_local_requests_allowlist_raw,omitempty"`
	OutboundLocalRequestsWhitelist                        *[]string                               `url:"outbound_local_requests_whitelist,omitempty" json:"outbound_local_requests_whitelist,omitempty"`
	PackageMetadataPURLTypes                              *[]int                                  `url:"package_metadata_purl_types,omitempty" json:"package_metadata_purl_types,omitempty"`
	PackageRegistryAllowAnyoneToPullOption                *bool                                   `url:"package_registry_allow_anyone_to_pull_option,omitempty" json:"package_registry_allow_anyone_to_pull_option,omitempty"`
	PackageRegistryCleanupPoliciesWorkerCapacity          *int                                    `` /* 132-byte string literal not displayed */
	PagesDomainVerificationEnabled                        *bool                                   `url:"pages_domain_verification_enabled,omitempty" json:"pages_domain_verification_enabled,omitempty"`
	PasswordAuthenticationEnabledForGit                   *bool                                   `url:"password_authentication_enabled_for_git,omitempty" json:"password_authentication_enabled_for_git,omitempty"`
	PasswordAuthenticationEnabledForWeb                   *bool                                   `url:"password_authentication_enabled_for_web,omitempty" json:"password_authentication_enabled_for_web,omitempty"`
	PasswordNumberRequired                                *bool                                   `url:"password_number_required,omitempty" json:"password_number_required,omitempty"`
	PasswordSymbolRequired                                *bool                                   `url:"password_symbol_required,omitempty" json:"password_symbol_required,omitempty"`
	PasswordUppercaseRequired                             *bool                                   `url:"password_uppercase_required,omitempty" json:"password_uppercase_required,omitempty"`
	PasswordLowercaseRequired                             *bool                                   `url:"password_lowercase_required,omitempty" json:"password_lowercase_required,omitempty"`
	PerformanceBarAllowedGroupPath                        *string                                 `url:"performance_bar_allowed_group_path,omitempty" json:"performance_bar_allowed_group_path,omitempty"`
	PersonalAccessTokenPrefix                             *string                                 `url:"personal_access_token_prefix,omitempty" json:"personal_access_token_prefix,omitempty"`
	PlantumlEnabled                                       *bool                                   `url:"plantuml_enabled,omitempty" json:"plantuml_enabled,omitempty"`
	PlantumlURL                                           *string                                 `url:"plantuml_url,omitempty" json:"plantuml_url,omitempty"`
	PipelineLimitPerProjectUserSha                        *int                                    `url:"pipeline_limit_per_project_user_sha,omitempty" json:"pipeline_limit_per_project_user_sha,omitempty"`
	PollingIntervalMultiplier                             *float64                                `url:"polling_interval_multiplier,omitempty" json:"polling_interval_multiplier,omitempty"`
	PreventMergeRequestsAuthorApproval                    *bool                                   `url:"prevent_merge_requests_author_approval,omitempty" json:"prevent_merge_requests_author_approval,omitempty"`
	PreventMergeRequestsCommittersApproval                *bool                                   `url:"prevent_merge_requests_committers_approval,omitempty" json:"prevent_merge_requests_committers_approval,omitempty"`
	ProjectDownloadExportLimit                            *int                                    `url:"project_download_export_limit,omitempty" json:"project_download_export_limit,omitempty"`
	ProjectExportEnabled                                  *bool                                   `url:"project_export_enabled,omitempty" json:"project_export_enabled,omitempty"`
	ProjectExportLimit                                    *int                                    `url:"project_export_limit,omitempty" json:"project_export_limit,omitempty"`
	ProjectImportLimit                                    *int                                    `url:"project_import_limit,omitempty" json:"project_import_limit,omitempty"`
	ProjectJobsAPIRateLimit                               *int                                    `url:"project_jobs_api_rate_limit,omitempty" json:"project_jobs_api_rate_limit,omitempty"`
	ProjectRunnerTokenExpirationInterval                  *int                                    `url:"project_runner_token_expiration_interval,omitempty" json:"project_runner_token_expiration_interval,omitempty"`
	ProjectsAPIRateLimitUnauthenticated                   *int                                    `url:"projects_api_rate_limit_unauthenticated,omitempty" json:"projects_api_rate_limit_unauthenticated,omitempty"`
	PrometheusMetricsEnabled                              *bool                                   `url:"prometheus_metrics_enabled,omitempty" json:"prometheus_metrics_enabled,omitempty"`
	ProtectedCIVariables                                  *bool                                   `url:"protected_ci_variables,omitempty" json:"protected_ci_variables,omitempty"`
	PseudonymizerEnabled                                  *bool                                   `url:"pseudonymizer_enabled,omitempty" json:"pseudonymizer_enabled,omitempty"`
	PushEventActivitiesLimit                              *int                                    `url:"push_event_activities_limit,omitempty" json:"push_event_activities_limit,omitempty"`
	PushEventHooksLimit                                   *int                                    `url:"push_event_hooks_limit,omitempty" json:"push_event_hooks_limit,omitempty"`
	PyPIPackageRequestsForwarding                         *bool                                   `url:"pypi_package_requests_forwarding,omitempty" json:"pypi_package_requests_forwarding,omitempty"`
	RSAKeyRestriction                                     *int                                    `url:"rsa_key_restriction,omitempty" json:"rsa_key_restriction,omitempty"`
	RateLimitingResponseText                              *string                                 `url:"rate_limiting_response_text,omitempty" json:"rate_limiting_response_text,omitempty"`
	RawBlobRequestLimit                                   *int                                    `url:"raw_blob_request_limit,omitempty" json:"raw_blob_request_limit,omitempty"`
	RecaptchaEnabled                                      *bool                                   `url:"recaptcha_enabled,omitempty" json:"recaptcha_enabled,omitempty"`
	RecaptchaPrivateKey                                   *string                                 `url:"recaptcha_private_key,omitempty" json:"recaptcha_private_key,omitempty"`
	RecaptchaSiteKey                                      *string                                 `url:"recaptcha_site_key,omitempty" json:"recaptcha_site_key,omitempty"`
	ReceiveMaxInputSize                                   *int                                    `url:"receive_max_input_size,omitempty" json:"receive_max_input_size,omitempty"`
	ReceptiveClusterAgentsEnabled                         *bool                                   `url:"receptive_cluster_agents_enabled,omitempty" json:"receptive_cluster_agents_enabled,omitempty"`
	RememberMeEnabled                                     *bool                                   `url:"remember_me_enabled,omitempty" json:"remember_me_enabled,omitempty"`
	RepositoryChecksEnabled                               *bool                                   `url:"repository_checks_enabled,omitempty" json:"repository_checks_enabled,omitempty"`
	RepositorySizeLimit                                   *int                                    `url:"repository_size_limit,omitempty" json:"repository_size_limit,omitempty"`
	RepositoryStorages                                    *[]string                               `url:"repository_storages,omitempty" json:"repository_storages,omitempty"`
	RepositoryStoragesWeighted                            *map[string]int                         `url:"repository_storages_weighted,omitempty" json:"repository_storages_weighted,omitempty"`
	RequireAdminApprovalAfterUserSignup                   *bool                                   `url:"require_admin_approval_after_user_signup,omitempty" json:"require_admin_approval_after_user_signup,omitempty"`
	RequireAdminTwoFactorAuthentication                   *bool                                   `url:"require_admin_two_factor_authentication,omitempty" json:"require_admin_two_factor_authentication,omitempty"`
	RequirePersonalAccessTokenExpiry                      *bool                                   `url:"require_personal_access_token_expiry,omitempty" json:"require_personal_access_token_expiry,omitempty"`
	RequireTwoFactorAuthentication                        *bool                                   `url:"require_two_factor_authentication,omitempty" json:"require_two_factor_authentication,omitempty"`
	RestrictedVisibilityLevels                            *[]VisibilityValue                      `url:"restricted_visibility_levels,omitempty" json:"restricted_visibility_levels,omitempty"`
	RunnerTokenExpirationInterval                         *int                                    `url:"runner_token_expiration_interval,omitempty" json:"runner_token_expiration_interval,omitempty"`
	SearchRateLimit                                       *int                                    `url:"search_rate_limit,omitempty" json:"search_rate_limit,omitempty"`
	SearchRateLimitUnauthenticated                        *int                                    `url:"search_rate_limit_unauthenticated,omitempty" json:"search_rate_limit_unauthenticated,omitempty"`
	SecretDetectionRevocationTokenTypesURL                *string                                 `url:"secret_detection_revocation_token_types_url,omitempty" json:"secret_detection_revocation_token_types_url,omitempty"`
	SecretDetectionTokenRevocationEnabled                 *bool                                   `url:"secret_detection_token_revocation_enabled,omitempty" json:"secret_detection_token_revocation_enabled,omitempty"`
	SecretDetectionTokenRevocationToken                   *string                                 `url:"secret_detection_token_revocation_token,omitempty" json:"secret_detection_token_revocation_token,omitempty"`
	SecretDetectionTokenRevocationURL                     *string                                 `url:"secret_detection_token_revocation_url,omitempty" json:"secret_detection_token_revocation_url,omitempty"`
	SecurityApprovalPoliciesLimit                         *int                                    `url:"security_approval_policies_limit,omitempty" json:"security_approval_policies_limit,omitempty"`
	SecurityPolicyGlobalGroupApproversEnabled             *bool                                   `` /* 126-byte string literal not displayed */
	SecurityTXTContent                                    *string                                 `url:"security_txt_content,omitempty" json:"security_txt_content,omitempty"`
	SendUserConfirmationEmail                             *bool                                   `url:"send_user_confirmation_email,omitempty" json:"send_user_confirmation_email,omitempty"`
	SentryClientsideDSN                                   *string                                 `url:"sentry_clientside_dsn,omitempty" json:"sentry_clientside_dsn,omitempty"`
	SentryDSN                                             *string                                 `url:"sentry_dsn,omitempty" json:"sentry_dsn,omitempty"`
	SentryEnabled                                         *string                                 `url:"sentry_enabled,omitempty" json:"sentry_enabled,omitempty"`
	SentryEnvironment                                     *string                                 `url:"sentry_environment,omitempty" json:"sentry_environment,omitempty"`
	ServiceAccessTokensExpirationEnforced                 *bool                                   `url:"service_access_tokens_expiration_enforced,omitempty" json:"service_access_tokens_expiration_enforced,omitempty"`
	SessionExpireDelay                                    *int                                    `url:"session_expire_delay,omitempty" json:"session_expire_delay,omitempty"`
	SharedRunnersEnabled                                  *bool                                   `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
	SharedRunnersMinutes                                  *int                                    `url:"shared_runners_minutes,omitempty" json:"shared_runners_minutes,omitempty"`
	SharedRunnersText                                     *string                                 `url:"shared_runners_text,omitempty" json:"shared_runners_text,omitempty"`
	SidekiqJobLimiterCompressionThresholdBytes            *int                                    `` /* 128-byte string literal not displayed */
	SidekiqJobLimiterLimitBytes                           *int                                    `url:"sidekiq_job_limiter_limit_bytes,omitempty" json:"sidekiq_job_limiter_limit_bytes,omitempty"`
	SidekiqJobLimiterMode                                 *string                                 `url:"sidekiq_job_limiter_mode,omitempty" json:"sidekiq_job_limiter_mode,omitempty"`
	SignInText                                            *string                                 `url:"sign_in_text,omitempty" json:"sign_in_text,omitempty"`
	SignupEnabled                                         *bool                                   `url:"signup_enabled,omitempty" json:"signup_enabled,omitempty"`
	SilentAdminExportsEnabled                             *bool                                   `url:"silent_admin_exports_enabled,omitempty" json:"silent_admin_exports_enabled,omitempty"`
	SilentModeEnabled                                     *bool                                   `url:"silent_mode_enabled,omitempty" json:"silent_mode_enabled,omitempty"`
	SlackAppEnabled                                       *bool                                   `url:"slack_app_enabled,omitempty" json:"slack_app_enabled,omitempty"`
	SlackAppID                                            *string                                 `url:"slack_app_id,omitempty" json:"slack_app_id,omitempty"`
	SlackAppSecret                                        *string                                 `url:"slack_app_secret,omitempty" json:"slack_app_secret,omitempty"`
	SlackAppSigningSecret                                 *string                                 `url:"slack_app_signing_secret,omitempty" json:"slack_app_signing_secret,omitempty"`
	SlackAppVerificationToken                             *string                                 `url:"slack_app_verification_token,omitempty" json:"slack_app_verification_token,omitempty"`
	SnippetSizeLimit                                      *int                                    `url:"snippet_size_limit,omitempty" json:"snippet_size_limit,omitempty"`
	SnowplowAppID                                         *string                                 `url:"snowplow_app_id,omitempty" json:"snowplow_app_id,omitempty"`
	SnowplowCollectorHostname                             *string                                 `url:"snowplow_collector_hostname,omitempty" json:"snowplow_collector_hostname,omitempty"`
	SnowplowCookieDomain                                  *string                                 `url:"snowplow_cookie_domain,omitempty" json:"snowplow_cookie_domain,omitempty"`
	SnowplowDatabaseCollectorHostname                     *string                                 `url:"snowplow_database_collector_hostname,omitempty" json:"snowplow_database_collector_hostname,omitempty"`
	SnowplowEnabled                                       *bool                                   `url:"snowplow_enabled,omitempty" json:"snowplow_enabled,omitempty"`
	SourcegraphEnabled                                    *bool                                   `url:"sourcegraph_enabled,omitempty" json:"sourcegraph_enabled,omitempty"`
	SourcegraphPublicOnly                                 *bool                                   `url:"sourcegraph_public_only,omitempty" json:"sourcegraph_public_only,omitempty"`
	SourcegraphURL                                        *string                                 `url:"sourcegraph_url,omitempty" json:"sourcegraph_url,omitempty"`
	SpamCheckAPIKey                                       *string                                 `url:"spam_check_api_key,omitempty" json:"spam_check_api_key,omitempty"`
	SpamCheckEndpointEnabled                              *bool                                   `url:"spam_check_endpoint_enabled,omitempty" json:"spam_check_endpoint_enabled,omitempty"`
	SpamCheckEndpointURL                                  *string                                 `url:"spam_check_endpoint_url,omitempty" json:"spam_check_endpoint_url,omitempty"`
	StaticObjectsExternalStorageAuthToken                 *string                                 `url:"static_objects_external_storage_auth_token,omitempty" json:"static_objects_external_storage_auth_token,omitempty"`
	StaticObjectsExternalStorageURL                       *string                                 `url:"static_objects_external_storage_url,omitempty" json:"static_objects_external_storage_url,omitempty"`
	SuggestPipelineEnabled                                *bool                                   `url:"suggest_pipeline_enabled,omitempty" json:"suggest_pipeline_enabled,omitempty"`
	TerminalMaxSessionTime                                *int                                    `url:"terminal_max_session_time,omitempty" json:"terminal_max_session_time,omitempty"`
	Terms                                                 *string                                 `url:"terms,omitempty" json:"terms,omitempty"`
	ThrottleAuthenticatedAPIEnabled                       *bool                                   `url:"throttle_authenticated_api_enabled,omitempty" json:"throttle_authenticated_api_enabled,omitempty"`
	ThrottleAuthenticatedAPIPeriodInSeconds               *int                                    `url:"throttle_authenticated_api_period_in_seconds,omitempty" json:"throttle_authenticated_api_period_in_seconds,omitempty"`
	ThrottleAuthenticatedAPIRequestsPerPeriod             *int                                    `` /* 126-byte string literal not displayed */
	ThrottleAuthenticatedDeprecatedAPIEnabled             *bool                                   `url:"throttle_authenticated_deprecated_api_enabled,omitempty" json:"throttle_authenticated_deprecated_api_enabled,omitempty"`
	ThrottleAuthenticatedDeprecatedAPIPeriodInSeconds     *int                                    `` /* 144-byte string literal not displayed */
	ThrottleAuthenticatedDeprecatedAPIRequestsPerPeriod   *int                                    `` /* 148-byte string literal not displayed */
	ThrottleAuthenticatedFilesAPIEnabled                  *bool                                   `url:"throttle_authenticated_files_api_enabled,omitempty" json:"throttle_authenticated_files_api_enabled,omitempty"`
	ThrottleAuthenticatedFilesAPIPeriodInSeconds          *int                                    `` /* 134-byte string literal not displayed */
	ThrottleAuthenticatedFilesAPIRequestsPerPeriod        *int                                    `` /* 138-byte string literal not displayed */
	ThrottleAuthenticatedGitLFSEnabled                    *bool                                   `url:"throttle_authenticated_git_lfs_enabled,omitempty" json:"throttle_authenticated_git_lfs_enabled,omitempty"`
	ThrottleAuthenticatedGitLFSPeriodInSeconds            *int                                    `` /* 130-byte string literal not displayed */
	ThrottleAuthenticatedGitLFSRequestsPerPeriod          *int                                    `` /* 134-byte string literal not displayed */
	ThrottleAuthenticatedPackagesAPIEnabled               *bool                                   `url:"throttle_authenticated_packages_api_enabled,omitempty" json:"throttle_authenticated_packages_api_enabled,omitempty"`
	ThrottleAuthenticatedPackagesAPIPeriodInSeconds       *int                                    `` /* 140-byte string literal not displayed */
	ThrottleAuthenticatedPackagesAPIRequestsPerPeriod     *int                                    `` /* 144-byte string literal not displayed */
	ThrottleAuthenticatedWebEnabled                       *bool                                   `url:"throttle_authenticated_web_enabled,omitempty" json:"throttle_authenticated_web_enabled,omitempty"`
	ThrottleAuthenticatedWebPeriodInSeconds               *int                                    `url:"throttle_authenticated_web_period_in_seconds,omitempty" json:"throttle_authenticated_web_period_in_seconds,omitempty"`
	ThrottleAuthenticatedWebRequestsPerPeriod             *int                                    `` /* 126-byte string literal not displayed */
	ThrottleIncidentManagementNotificationEnabled         *bool                                   `` /* 132-byte string literal not displayed */
	ThrottleIncidentManagementNotificationPerPeriod       *int                                    `` /* 138-byte string literal not displayed */
	ThrottleIncidentManagementNotificationPeriodInSeconds *int                                    `` /* 152-byte string literal not displayed */
	ThrottleProtectedPathsEnabled                         *bool                                   `url:"throttle_protected_paths_enabled_enabled,omitempty" json:"throttle_protected_paths_enabled,omitempty"`
	ThrottleProtectedPathsPeriodInSeconds                 *int                                    `` /* 126-byte string literal not displayed */
	ThrottleProtectedPathsRequestsPerPeriod               *int                                    `url:"throttle_protected_paths_enabled_requests_per_period,omitempty" json:"throttle_protected_paths_per_period,omitempty"`
	ThrottleUnauthenticatedAPIEnabled                     *bool                                   `url:"throttle_unauthenticated_api_enabled,omitempty" json:"throttle_unauthenticated_api_enabled,omitempty"`
	ThrottleUnauthenticatedAPIPeriodInSeconds             *int                                    `` /* 126-byte string literal not displayed */
	ThrottleUnauthenticatedAPIRequestsPerPeriod           *int                                    `` /* 130-byte string literal not displayed */
	ThrottleUnauthenticatedDeprecatedAPIEnabled           *bool                                   `` /* 128-byte string literal not displayed */
	ThrottleUnauthenticatedDeprecatedAPIPeriodInSeconds   *int                                    `` /* 148-byte string literal not displayed */
	ThrottleUnauthenticatedDeprecatedAPIRequestsPerPeriod *int                                    `` /* 152-byte string literal not displayed */
	ThrottleUnauthenticatedFilesAPIEnabled                *bool                                   `url:"throttle_unauthenticated_files_api_enabled,omitempty" json:"throttle_unauthenticated_files_api_enabled,omitempty"`
	ThrottleUnauthenticatedFilesAPIPeriodInSeconds        *int                                    `` /* 138-byte string literal not displayed */
	ThrottleUnauthenticatedFilesAPIRequestsPerPeriod      *int                                    `` /* 142-byte string literal not displayed */
	ThrottleUnauthenticatedGitLFSEnabled                  *bool                                   `url:"throttle_unauthenticated_git_lfs_enabled,omitempty" json:"throttle_unauthenticated_git_lfs_enabled,omitempty"`
	ThrottleUnauthenticatedGitLFSPeriodInSeconds          *int                                    `` /* 134-byte string literal not displayed */
	ThrottleUnauthenticatedGitLFSRequestsPerPeriod        *int                                    `` /* 138-byte string literal not displayed */
	ThrottleUnauthenticatedPackagesAPIEnabled             *bool                                   `url:"throttle_unauthenticated_packages_api_enabled,omitempty" json:"throttle_unauthenticated_packages_api_enabled,omitempty"`
	ThrottleUnauthenticatedPackagesAPIPeriodInSeconds     *int                                    `` /* 144-byte string literal not displayed */
	ThrottleUnauthenticatedPackagesAPIRequestsPerPeriod   *int                                    `` /* 148-byte string literal not displayed */
	ThrottleUnauthenticatedWebEnabled                     *bool                                   `url:"throttle_unauthenticated_web_enabled,omitempty" json:"throttle_unauthenticated_web_enabled,omitempty"`
	ThrottleUnauthenticatedWebPeriodInSeconds             *int                                    `` /* 126-byte string literal not displayed */
	ThrottleUnauthenticatedWebRequestsPerPeriod           *int                                    `` /* 130-byte string literal not displayed */
	TimeTrackingLimitToHours                              *bool                                   `url:"time_tracking_limit_to_hours,omitempty" json:"time_tracking_limit_to_hours,omitempty"`
	TwoFactorGracePeriod                                  *int                                    `url:"two_factor_grace_period,omitempty" json:"two_factor_grace_period,omitempty"`
	UnconfirmedUsersDeleteAfterDays                       *int                                    `url:"unconfirmed_users_delete_after_days,omitempty" json:"unconfirmed_users_delete_after_days,omitempty"`
	UniqueIPsLimitEnabled                                 *bool                                   `url:"unique_ips_limit_enabled,omitempty" json:"unique_ips_limit_enabled,omitempty"`
	UniqueIPsLimitPerUser                                 *int                                    `url:"unique_ips_limit_per_user,omitempty" json:"unique_ips_limit_per_user,omitempty"`
	UniqueIPsLimitTimeWindow                              *int                                    `url:"unique_ips_limit_time_window,omitempty" json:"unique_ips_limit_time_window,omitempty"`
	UpdateRunnerVersionsEnabled                           *bool                                   `url:"update_runner_versions_enabled,omitempty" json:"update_runner_versions_enabled,omitempty"`
	UpdatingNameDisabledForUsers                          *bool                                   `url:"updating_name_disabled_for_users,omitempty" json:"updating_name_disabled_for_users,omitempty"`
	UsagePingEnabled                                      *bool                                   `url:"usage_ping_enabled,omitempty" json:"usage_ping_enabled,omitempty"`
	UsagePingFeaturesEnabled                              *bool                                   `url:"usage_ping_features_enabled,omitempty" json:"usage_ping_features_enabled,omitempty"`
	UseClickhouseForAnalytics                             *bool                                   `url:"use_clickhouse_for_analytics,omitempty" json:"use_clickhouse_for_analytics,omitempty"`
	UserDeactivationEmailsEnabled                         *bool                                   `url:"user_deactivation_emails_enabled,omitempty" json:"user_deactivation_emails_enabled,omitempty"`
	UserDefaultExternal                                   *bool                                   `url:"user_default_external,omitempty" json:"user_default_external,omitempty"`
	UserDefaultInternalRegex                              *string                                 `url:"user_default_internal_regex,omitempty" json:"user_default_internal_regex,omitempty"`
	UserDefaultsToPrivateProfile                          *bool                                   `url:"user_defaults_to_private_profile,omitempty" json:"user_defaults_to_private_profile,omitempty"`
	UserEmailLookupLimit                                  *int                                    `url:"user_email_lookup_limit,omitempty" json:"user_email_lookup_limit,omitempty"`
	UserOauthApplications                                 *bool                                   `url:"user_oauth_applications,omitempty" json:"user_oauth_applications,omitempty"`
	UserShowAddSSHKeyMessage                              *bool                                   `url:"user_show_add_ssh_key_message,omitempty" json:"user_show_add_ssh_key_message,omitempty"`
	UsersGetByIDLimit                                     *int                                    `url:"users_get_by_id_limit,omitempty" json:"users_get_by_id_limit,omitempty"`
	UsersGetByIDLimitAllowlistRaw                         *string                                 `url:"users_get_by_id_limit_allowlist_raw,omitempty" json:"users_get_by_id_limit_allowlist_raw,omitempty"`
	ValidRunnerRegistrars                                 *[]string                               `url:"valid_runner_registrars,omitempty" json:"valid_runner_registrars,omitempty"`
	VersionCheckEnabled                                   *bool                                   `url:"version_check_enabled,omitempty" json:"version_check_enabled,omitempty"`
	WebIDEClientsidePreviewEnabled                        *bool                                   `url:"web_ide_clientside_preview_enabled,omitempty" json:"web_ide_clientside_preview_enabled,omitempty"`
	WhatsNewVariant                                       *string                                 `url:"whats_new_variant,omitempty" json:"whats_new_variant,omitempty"`
	WikiPageMaxContentBytes                               *int                                    `url:"wiki_page_max_content_bytes,omitempty" json:"wiki_page_max_content_bytes,omitempty"`

	// Deprecated: Use AbuseNotificationEmail instead.
	AdminNotificationEmail *string `url:"admin_notification_email,omitempty" json:"admin_notification_email,omitempty"`
	// Deprecated: Use AllowLocalRequestsFromWebHooksAndServices instead.
	AllowLocalRequestsFromHooksAndServices *bool `url:"allow_local_requests_from_hooks_and_services,omitempty" json:"allow_local_requests_from_hooks_and_services,omitempty"`
	// Deprecated: Use AssetProxyAllowlist instead.
	AssetProxyWhitelist *[]string `url:"asset_proxy_whitelist,omitempty" json:"asset_proxy_whitelist,omitempty"`
	// Deprecated: Use DefaultBranchProtectionDefaults instead.
	DefaultBranchProtection *int `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`
	// Deprecated: Cannot be set through the API, always true
	HousekeepingBitmapsEnabled *bool `url:"housekeeping_bitmaps_enabled,omitempty" json:"housekeeping_bitmaps_enabled,omitempty"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingFullRepackPeriod *int `url:"housekeeping_full_repack_period,omitempty" json:"housekeeping_full_repack_period,omitempty"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingGcPeriod *int `url:"housekeeping_gc_period,omitempty" json:"housekeeping_gc_period,omitempty"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingIncrementalRepackPeriod *int `url:"housekeeping_incremental_repack_period,omitempty" json:"housekeeping_incremental_repack_period,omitempty"`
	// Deprecated: use PerformanceBarAllowedGroupPath instead
	PerformanceBarAllowedGroupID *int `url:"performance_bar_allowed_group_id,omitempty" json:"performance_bar_allowed_group_id,omitempty"`
	// Deprecated: use PerformanceBarAllowedGroupPath: nil instead
	PerformanceBarEnabled *bool `url:"performance_bar_enabled,omitempty" json:"performance_bar_enabled,omitempty"`
	// Deprecated: Use ThrottleUnauthenticatedWebEnabled or ThrottleUnauthenticatedAPIEnabled instead. (Deprecated in GitLab 14.3)
	ThrottleUnauthenticatedEnabled *bool `url:"throttle_unauthenticated_enabled,omitempty" json:"throttle_unauthenticated_enabled,omitempty"`
	// Deprecated: Use ThrottleUnauthenticatedWebPeriodInSeconds or ThrottleUnauthenticatedAPIPeriodInSeconds instead. (Deprecated in GitLab 14.3)
	ThrottleUnauthenticatedPeriodInSeconds *int `url:"throttle_unauthenticated_period_in_seconds,omitempty" json:"throttle_unauthenticated_period_in_seconds,omitempty"`
	// Deprecated: Use ThrottleUnauthenticatedWebRequestsPerPeriod or ThrottleUnauthenticatedAPIRequestsPerPeriod instead. (Deprecated in GitLab 14.3)
	ThrottleUnauthenticatedRequestsPerPeriod *int `url:"throttle_unauthenticated_requests_per_period,omitempty" json:"throttle_unauthenticated_requests_per_period,omitempty"`
}

UpdateSettingsOptions represents the available UpdateSettings() options.

GitLab API docs: https://docs.gitlab.com/api/settings/#update-application-settings

type UpdateSnippetDiscussionNoteOptions added in v0.11.2

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

UpdateSnippetDiscussionNoteOptions represents the available UpdateSnippetDiscussion() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#modify-existing-snippet-thread-note

type UpdateSnippetFileOptions added in v0.116.0

type UpdateSnippetFileOptions struct {
	Action       *string `url:"action,omitempty" json:"action,omitempty"`
	FilePath     *string `url:"file_path,omitempty" json:"file_path,omitempty"`
	Content      *string `url:"content,omitempty" json:"content,omitempty"`
	PreviousPath *string `url:"previous_path,omitempty" json:"previous_path,omitempty"`
}

UpdateSnippetFileOptions represents the update snippet file options.

GitLab API docs: https://docs.gitlab.com/api/snippets/#update-snippet

type UpdateSnippetNoteOptions

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

UpdateSnippetNoteOptions represents the available UpdateSnippetNote() options.

GitLab API docs: https://docs.gitlab.com/api/notes/#modify-existing-snippet-note

type UpdateSnippetOptions

type UpdateSnippetOptions struct {
	Title       *string                      `url:"title,omitempty" json:"title,omitempty"`
	FileName    *string                      `url:"file_name,omitempty" json:"file_name,omitempty"`
	Description *string                      `url:"description,omitempty" json:"description,omitempty"`
	Content     *string                      `url:"content,omitempty" json:"content,omitempty"`
	Visibility  *VisibilityValue             `url:"visibility,omitempty" json:"visibility,omitempty"`
	Files       *[]*UpdateSnippetFileOptions `url:"files,omitempty" json:"files,omitempty"`
}

UpdateSnippetOptions represents the available UpdateSnippet() options.

GitLab API docs: https://docs.gitlab.com/api/snippets/#update-snippet

type UpdateSubmoduleOptions added in v0.116.0

type UpdateSubmoduleOptions struct {
	Branch        *string `url:"branch,omitempty" json:"branch,omitempty"`
	CommitSHA     *string `url:"commit_sha,omitempty" json:"commit_sha,omitempty"`
	CommitMessage *string `url:"commit_message,omitempty" json:"commit_message,omitempty"`
}

UpdateSubmoduleOptions represents the available UpdateSubmodule() options.

GitLab API docs: https://docs.gitlab.com/api/repository_submodules/#update-existing-submodule-reference-in-repository

type UpdateTopicOptions added in v0.116.0

type UpdateTopicOptions struct {
	Name        *string      `url:"name,omitempty" json:"name,omitempty"`
	Title       *string      `url:"title,omitempty" json:"title,omitempty"`
	Description *string      `url:"description,omitempty" json:"description,omitempty"`
	Avatar      *TopicAvatar `url:"-" json:"avatar,omitempty"`
}

UpdateTopicOptions represents the available UpdateTopic() options.

GitLab API docs: https://docs.gitlab.com/api/topics/#update-a-project-topic

type UploadMetricImageOptions added in v0.128.0

type UploadMetricImageOptions struct {
	URL     *string `url:"url,omitempty" json:"url,omitempty"`
	URLText *string `url:"url_text,omitempty" json:"url_text,omitempty"`
}

UploadMetricImageOptions represents the available UploadMetricImage() options.

GitLab API docs: https://docs.gitlab.com/api/alert_management_alerts/#upload-metric-image

type UploadType added in v0.116.0

type UploadType string

UploadType represents the available upload types.

const (
	UploadAvatar UploadType = "avatar"
	UploadFile   UploadType = "file"
)

The available upload types.

type UploadWikiAttachmentOptions added in v0.124.0

type UploadWikiAttachmentOptions struct {
	Branch *string `url:"branch,omitempty" json:"branch,omitempty"`
}

UploadWikiAttachmentOptions represents options to UploadWikiAttachment.

GitLab API docs: https://docs.gitlab.com/api/wikis/#upload-an-attachment-to-the-wiki-repository

type UsageDataService added in v0.126.0

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

UsageDataService handles communication with the service ping related methods of the GitLab API.

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

func (*UsageDataService) GetMetricDefinitionsAsYAML added in v0.126.0

func (s *UsageDataService) GetMetricDefinitionsAsYAML(options ...RequestOptionFunc) (io.Reader, *Response, error)

GetMetricDefinitionsAsYAML gets all metric definitions as a single YAML file.

GitLab API docs: https://docs.gitlab.com/api/usage_data/#export-metric-definitions-as-a-single-yaml-file

func (*UsageDataService) GetNonSQLMetrics added in v0.126.0

func (s *UsageDataService) GetNonSQLMetrics(options ...RequestOptionFunc) (*ServicePingNonSqlMetrics, *Response, error)

GetNonSQLMetrics gets all non-SQL metrics data used in the service ping.

GitLab API docs: https://docs.gitlab.com/api/usage_data/#usagedatanonsqlmetrics-api

func (*UsageDataService) GetQueries added in v0.126.0

func (s *UsageDataService) GetQueries(options ...RequestOptionFunc) (*ServicePingQueries, *Response, error)

GetQueries gets all raw SQL queries used to compute service ping.

GitLab API docs: https://docs.gitlab.com/api/usage_data/#export-service-ping-sql-queries

func (*UsageDataService) GetServicePing added in v0.126.0

func (s *UsageDataService) GetServicePing(options ...RequestOptionFunc) (*ServicePingData, *Response, error)

GetServicePing gets the current service ping data.

GitLab API docs: https://docs.gitlab.com/api/usage_data/#export-service-ping-data

func (*UsageDataService) TrackEvent added in v0.126.0

func (s *UsageDataService) TrackEvent(opt *TrackEventOptions, options ...RequestOptionFunc) (*Response, error)

TrackEvent tracks an internal GitLab event.

GitLab API docs: https://docs.gitlab.com/api/usage_data/#events-tracking-api

func (*UsageDataService) TrackEvents added in v0.126.0

func (s *UsageDataService) TrackEvents(opt *TrackEventsOptions, options ...RequestOptionFunc) (*Response, error)

TrackEvents tracks multiple internal GitLab events.

GitLab API docs: https://docs.gitlab.com/api/usage_data/#events-tracking-api

type UsageDataServiceInterface added in v0.126.0

type UsageDataServiceInterface interface {
	GetServicePing(options ...RequestOptionFunc) (*ServicePingData, *Response, error)
	GetMetricDefinitionsAsYAML(options ...RequestOptionFunc) (io.Reader, *Response, error)
	GetQueries(options ...RequestOptionFunc) (*ServicePingQueries, *Response, error)
	GetNonSQLMetrics(options ...RequestOptionFunc) (*ServicePingNonSqlMetrics, *Response, error)
	TrackEvent(opt *TrackEventOptions, options ...RequestOptionFunc) (*Response, error)
	TrackEvents(opt *TrackEventsOptions, options ...RequestOptionFunc) (*Response, error)
}

type User

type User struct {
	ID                             int                `json:"id"`
	Username                       string             `json:"username"`
	Email                          string             `json:"email"`
	Name                           string             `json:"name"`
	State                          string             `json:"state"`
	WebURL                         string             `json:"web_url"`
	CreatedAt                      *time.Time         `json:"created_at"`
	Bio                            string             `json:"bio"`
	Bot                            bool               `json:"bot"`
	Location                       string             `json:"location"`
	PublicEmail                    string             `json:"public_email"`
	Skype                          string             `json:"skype"`
	Linkedin                       string             `json:"linkedin"`
	Twitter                        string             `json:"twitter"`
	WebsiteURL                     string             `json:"website_url"`
	Organization                   string             `json:"organization"`
	JobTitle                       string             `json:"job_title"`
	ExternUID                      string             `json:"extern_uid"`
	Provider                       string             `json:"provider"`
	ThemeID                        int                `json:"theme_id"`
	LastActivityOn                 *ISOTime           `json:"last_activity_on"`
	ColorSchemeID                  int                `json:"color_scheme_id"`
	IsAdmin                        bool               `json:"is_admin"`
	IsAuditor                      bool               `json:"is_auditor"`
	AvatarURL                      string             `json:"avatar_url"`
	CanCreateGroup                 bool               `json:"can_create_group"`
	CanCreateProject               bool               `json:"can_create_project"`
	ProjectsLimit                  int                `json:"projects_limit"`
	CurrentSignInAt                *time.Time         `json:"current_sign_in_at"`
	CurrentSignInIP                *net.IP            `json:"current_sign_in_ip"`
	LastSignInAt                   *time.Time         `json:"last_sign_in_at"`
	LastSignInIP                   *net.IP            `json:"last_sign_in_ip"`
	ConfirmedAt                    *time.Time         `json:"confirmed_at"`
	TwoFactorEnabled               bool               `json:"two_factor_enabled"`
	Note                           string             `json:"note"`
	Identities                     []*UserIdentity    `json:"identities"`
	External                       bool               `json:"external"`
	PrivateProfile                 bool               `json:"private_profile"`
	SharedRunnersMinutesLimit      int                `json:"shared_runners_minutes_limit"`
	ExtraSharedRunnersMinutesLimit int                `json:"extra_shared_runners_minutes_limit"`
	UsingLicenseSeat               bool               `json:"using_license_seat"`
	CustomAttributes               []*CustomAttribute `json:"custom_attributes"`
	NamespaceID                    int                `json:"namespace_id"`
	Locked                         bool               `json:"locked"`
	CreatedBy                      *BasicUser         `json:"created_by"`
}

User represents a GitLab user.

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

type UserActivity added in v0.7.2

type UserActivity struct {
	Username       string   `json:"username"`
	LastActivityOn *ISOTime `json:"last_activity_on"`
}

UserActivity represents an entry in the user/activities response

GitLab API docs: https://docs.gitlab.com/api/users/#list-a-users-activity

type UserAssociationsCount added in v0.116.0

type UserAssociationsCount struct {
	GroupsCount        int `json:"groups_count"`
	ProjectsCount      int `json:"projects_count"`
	IssuesCount        int `json:"issues_count"`
	MergeRequestsCount int `json:"merge_requests_count"`
}

UserAssociationsCount represents the user associations count.

Gitlab API docs: https://docs.gitlab.com/api/users/#get-a-count-of-a-users-projects-groups-issues-and-merge-requests

type UserAvatar added in v0.116.0

type UserAvatar struct {
	Filename string
	Image    io.Reader
}

UserAvatar represents a GitLab user avatar.

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

func (*UserAvatar) MarshalJSON added in v0.116.0

func (a *UserAvatar) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

type UserGroupSystemEvent added in v0.116.0

type UserGroupSystemEvent struct {
	BaseSystemEvent
	ID          int    `json:"user_id"`
	Name        string `json:"user_name"`
	Username    string `json:"user_username"`
	Email       string `json:"user_email"`
	GroupID     int    `json:"group_id"`
	GroupName   string `json:"group_name"`
	GroupPath   string `json:"group_path"`
	GroupAccess string `json:"group_access"`
}

UserGroupSystemEvent represents a user group system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/

type UserIDValue added in v0.116.0

type UserIDValue string

UserIDValue represents a user ID value within GitLab.

const (
	UserIDAny  UserIDValue = "Any"
	UserIDNone UserIDValue = "None"
)

List of available user ID values.

type UserIdentity

type UserIdentity struct {
	Provider  string `json:"provider"`
	ExternUID string `json:"extern_uid"`
}

UserIdentity represents a user identity.

type UserMembership added in v0.116.0

type UserMembership struct {
	SourceID    int              `json:"source_id"`
	SourceName  string           `json:"source_name"`
	SourceType  string           `json:"source_type"`
	AccessLevel AccessLevelValue `json:"access_level"`
}

UserMembership represents a membership of the user in a namespace or project.

GitLab API docs: https://docs.gitlab.com/api/users/#list-projects-and-groups-that-a-user-is-a-member-of

type UserRunner added in v0.116.0

type UserRunner struct {
	ID             int        `json:"id"`
	Token          string     `json:"token"`
	TokenExpiresAt *time.Time `json:"token_expires_at"`
}

UserRunner represents a GitLab runner linked to the current user.

GitLab API docs: https://docs.gitlab.com/api/users/#create-a-runner-linked-to-a-user

type UserStatus added in v0.116.0

type UserStatus struct {
	Emoji         string            `json:"emoji"`
	Availability  AvailabilityValue `json:"availability"`
	Message       string            `json:"message"`
	MessageHTML   string            `json:"message_html"`
	ClearStatusAt *time.Time        `json:"clear_status_at"`
}

UserStatus represents the current status of a user

GitLab API docs: https://docs.gitlab.com/api/users/#get-your-user-status

type UserStatusOptions added in v0.116.0

type UserStatusOptions struct {
	Emoji            *string                `url:"emoji,omitempty" json:"emoji,omitempty"`
	Availability     *AvailabilityValue     `url:"availability,omitempty" json:"availability,omitempty"`
	Message          *string                `url:"message,omitempty" json:"message,omitempty"`
	ClearStatusAfter *ClearStatusAfterValue `url:"clear_status_after,omitempty" json:"clear_status_after,omitempty"`
}

UserStatusOptions represents the options required to set the status

GitLab API docs: https://docs.gitlab.com/api/users/#set-your-user-status

type UserSystemEvent added in v0.116.0

type UserSystemEvent struct {
	BaseSystemEvent
	ID          int    `json:"user_id"`
	Name        string `json:"name"`
	Username    string `json:"username"`
	OldUsername string `json:"old_username,omitempty"`
	Email       string `json:"email"`
	State       string `json:"state,omitempty"`
}

UserSystemEvent represents a user system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/

type UserTeamSystemEvent added in v0.116.0

type UserTeamSystemEvent struct {
	BaseSystemEvent
	ID                       int    `json:"user_id"`
	Name                     string `json:"user_name"`
	Username                 string `json:"user_username"`
	Email                    string `json:"user_email"`
	ProjectID                int    `json:"project_id"`
	ProjectName              string `json:"project_name"`
	ProjectPath              string `json:"project_path"`
	ProjectPathWithNamespace string `json:"project_path_with_namespace"`
	ProjectVisibility        string `json:"project_visibility"`
	AccessLevel              string `json:"access_level"`
}

UserTeamSystemEvent represents a user team system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/

type UsersService

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

UsersService handles communication with the user related methods of the GitLab API.

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

func (*UsersService) ActivateUser added in v0.116.0

func (s *UsersService) ActivateUser(user int, options ...RequestOptionFunc) error

ActivateUser activate the specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_moderation/#reactivate-a-user

func (*UsersService) AddEmail added in v0.4.0

func (s *UsersService) AddEmail(opt *AddEmailOptions, options ...RequestOptionFunc) (*Email, *Response, error)

AddEmail creates a new email owned by the currently authenticated user.

GitLab API docs: https://docs.gitlab.com/api/user_email_addresses/#add-an-email-address

func (*UsersService) AddEmailForUser added in v0.4.0

func (s *UsersService) AddEmailForUser(user int, opt *AddEmailOptions, options ...RequestOptionFunc) (*Email, *Response, error)

AddEmailForUser creates new email owned by specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_email_addresses/#add-an-email-address-for-a-user

func (*UsersService) AddGPGKey added in v0.116.0

func (s *UsersService) AddGPGKey(opt *AddGPGKeyOptions, options ...RequestOptionFunc) (*GPGKey, *Response, error)

AddGPGKey creates a new GPG key owned by the currently authenticated user.

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

func (*UsersService) AddGPGKeyForUser added in v0.116.0

func (s *UsersService) AddGPGKeyForUser(user int, opt *AddGPGKeyOptions, options ...RequestOptionFunc) (*GPGKey, *Response, error)

AddGPGKeyForUser creates new GPG key owned by the specified user.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#add-a-gpg-key-for-a-user

func (*UsersService) AddSSHKey

func (s *UsersService) AddSSHKey(opt *AddSSHKeyOptions, options ...RequestOptionFunc) (*SSHKey, *Response, error)

AddSSHKey creates a new key owned by the currently authenticated user.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#add-an-ssh-key

func (*UsersService) AddSSHKeyForUser

func (s *UsersService) AddSSHKeyForUser(user int, opt *AddSSHKeyOptions, options ...RequestOptionFunc) (*SSHKey, *Response, error)

AddSSHKeyForUser creates new key owned by specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#add-an-ssh-key-for-a-user

func (*UsersService) ApproveUser added in v0.116.0

func (s *UsersService) ApproveUser(user int, options ...RequestOptionFunc) error

ApproveUser approve the specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_moderation/#approve-access-to-a-user

func (*UsersService) BanUser added in v0.116.0

func (s *UsersService) BanUser(user int, options ...RequestOptionFunc) error

BanUser bans the specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_moderation/#ban-a-user

func (*UsersService) BlockUser

func (s *UsersService) BlockUser(user int, options ...RequestOptionFunc) error

BlockUser blocks the specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_moderation/#block-access-to-a-user

func (*UsersService) CreateImpersonationToken added in v0.6.0

func (s *UsersService) CreateImpersonationToken(user int, opt *CreateImpersonationTokenOptions, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error)

CreateImpersonationToken creates an impersonation token.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#create-an-impersonation-token

func (*UsersService) CreatePersonalAccessToken added in v0.116.0

func (s *UsersService) CreatePersonalAccessToken(user int, opt *CreatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

CreatePersonalAccessToken creates a personal access token.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#create-a-personal-access-token-for-a-user

func (*UsersService) CreatePersonalAccessTokenForCurrentUser added in v0.116.0

func (s *UsersService) CreatePersonalAccessTokenForCurrentUser(opt *CreatePersonalAccessTokenForCurrentUserOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

CreatePersonalAccessTokenForCurrentUser creates a personal access token with limited scopes for the currently authenticated user.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#create-a-personal-access-token

func (*UsersService) CreateServiceAccountUser added in v0.116.0

func (s *UsersService) CreateServiceAccountUser(opts *CreateServiceAccountUserOptions, options ...RequestOptionFunc) (*User, *Response, error)

CreateServiceAccountUser creates a new service account user.

GitLab API docs: https://docs.gitlab.com/api/user_service_accounts/#create-a-service-account-user

func (*UsersService) CreateUser

func (s *UsersService) CreateUser(opt *CreateUserOptions, options ...RequestOptionFunc) (*User, *Response, error)

CreateUser creates a new user. Note only administrators can create new users.

GitLab API docs: https://docs.gitlab.com/api/users/#create-a-user

func (*UsersService) CreateUserRunner added in v0.116.0

func (s *UsersService) CreateUserRunner(opts *CreateUserRunnerOptions, options ...RequestOptionFunc) (*UserRunner, *Response, error)

CreateUserRunner creates a runner linked to the current user.

GitLab API docs: https://docs.gitlab.com/api/users/#create-a-runner-linked-to-a-user

func (*UsersService) CurrentUser

func (s *UsersService) CurrentUser(options ...RequestOptionFunc) (*User, *Response, error)

CurrentUser gets currently authenticated user.

GitLab API docs: https://docs.gitlab.com/api/users/#get-the-current-user

func (*UsersService) CurrentUserStatus added in v0.116.0

func (s *UsersService) CurrentUserStatus(options ...RequestOptionFunc) (*UserStatus, *Response, error)

CurrentUserStatus retrieves the user status

GitLab API docs: https://docs.gitlab.com/api/users/#get-your-user-status

func (*UsersService) DeactivateUser added in v0.116.0

func (s *UsersService) DeactivateUser(user int, options ...RequestOptionFunc) error

DeactivateUser deactivate the specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_moderation/#deactivate-a-user

func (*UsersService) DeleteEmail added in v0.4.0

func (s *UsersService) DeleteEmail(email int, options ...RequestOptionFunc) (*Response, error)

DeleteEmail deletes email owned by currently authenticated user. This is an idempotent function and calling it on a key that is already deleted or not available results in 200 OK.

GitLab API docs: https://docs.gitlab.com/api/user_email_addresses/#delete-an-email-address

func (*UsersService) DeleteEmailForUser added in v0.4.0

func (s *UsersService) DeleteEmailForUser(user, email int, options ...RequestOptionFunc) (*Response, error)

DeleteEmailForUser deletes email owned by a specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_email_addresses/#delete-an-email-address-for-a-user

func (*UsersService) DeleteGPGKey added in v0.116.0

func (s *UsersService) DeleteGPGKey(key int, options ...RequestOptionFunc) (*Response, error)

DeleteGPGKey deletes a GPG key owned by currently authenticated user.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#delete-a-gpg-key

func (*UsersService) DeleteGPGKeyForUser added in v0.116.0

func (s *UsersService) DeleteGPGKeyForUser(user, key int, options ...RequestOptionFunc) (*Response, error)

DeleteGPGKeyForUser deletes a GPG key owned by a specified user.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#delete-a-gpg-key-for-a-user

func (*UsersService) DeleteSSHKey

func (s *UsersService) DeleteSSHKey(key int, options ...RequestOptionFunc) (*Response, error)

DeleteSSHKey deletes key owned by currently authenticated user. This is an idempotent function and calling it on a key that is already deleted or not available results in 200 OK.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#delete-an-ssh-key

func (*UsersService) DeleteSSHKeyForUser

func (s *UsersService) DeleteSSHKeyForUser(user, key int, options ...RequestOptionFunc) (*Response, error)

DeleteSSHKeyForUser deletes key owned by a specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#delete-an-ssh-key-for-a-user

func (*UsersService) DeleteUser

func (s *UsersService) DeleteUser(user int, options ...RequestOptionFunc) (*Response, error)

DeleteUser deletes a user. Available only for administrators. This is an idempotent function, calling this function for a non-existent user id still returns a status code 200 OK. The JSON response differs if the user was actually deleted or not. In the former the user is returned and in the latter not.

GitLab API docs: https://docs.gitlab.com/api/users/#delete-a-user

func (*UsersService) DeleteUserIdentity added in v0.125.0

func (s *UsersService) DeleteUserIdentity(user int, provider string, options ...RequestOptionFunc) (*Response, error)

DeleteUserIdentity deletes a user's authentication identity using the provider name associated with that identity. Only available for administrators.

GitLab API docs: https://docs.gitlab.com/api/users/#delete-authentication-identity-from-a-user

func (*UsersService) DisableTwoFactor added in v0.116.0

func (s *UsersService) DisableTwoFactor(user int, options ...RequestOptionFunc) error

DisableTwoFactor disables two factor authentication for the specified user.

GitLab API docs: https://docs.gitlab.com/api/users/#disable-two-factor-authentication-for-a-user

func (*UsersService) GetAllImpersonationTokens added in v0.6.0

func (s *UsersService) GetAllImpersonationTokens(user int, opt *GetAllImpersonationTokensOptions, options ...RequestOptionFunc) ([]*ImpersonationToken, *Response, error)

GetAllImpersonationTokens retrieves all impersonation tokens of a user.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#list-all-impersonation-tokens-for-a-user

func (*UsersService) GetEmail added in v0.4.0

func (s *UsersService) GetEmail(email int, options ...RequestOptionFunc) (*Email, *Response, error)

GetEmail gets a single email.

GitLab API docs: https://docs.gitlab.com/api/user_email_addresses/#get-details-on-an-email-address

func (*UsersService) GetGPGKey added in v0.116.0

func (s *UsersService) GetGPGKey(key int, options ...RequestOptionFunc) (*GPGKey, *Response, error)

GetGPGKey gets a specific GPG key of currently authenticated user.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#get-a-gpg-key

func (*UsersService) GetGPGKeyForUser added in v0.116.0

func (s *UsersService) GetGPGKeyForUser(user, key int, options ...RequestOptionFunc) (*GPGKey, *Response, error)

GetGPGKeyForUser gets a specific GPG key for a given user.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#get-a-gpg-key-for-a-user

func (*UsersService) GetImpersonationToken added in v0.6.0

func (s *UsersService) GetImpersonationToken(user, token int, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error)

GetImpersonationToken retrieves an impersonation token of a user.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#get-an-impersonation-token-for-a-user

func (*UsersService) GetSSHKey

func (s *UsersService) GetSSHKey(key int, options ...RequestOptionFunc) (*SSHKey, *Response, error)

GetSSHKey gets a single key.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#get-an-ssh-key

func (*UsersService) GetSSHKeyForUser added in v0.116.0

func (s *UsersService) GetSSHKeyForUser(user int, key int, options ...RequestOptionFunc) (*SSHKey, *Response, error)

GetSSHKeyForUser gets a single key for a given user.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#get-an-ssh-key-for-a-user

func (*UsersService) GetUser

func (s *UsersService) GetUser(user int, opt GetUsersOptions, options ...RequestOptionFunc) (*User, *Response, error)

GetUser gets a single user.

GitLab API docs: https://docs.gitlab.com/api/users/#get-a-single-user

func (*UsersService) GetUserActivities added in v0.7.2

func (s *UsersService) GetUserActivities(opt *GetUserActivitiesOptions, options ...RequestOptionFunc) ([]*UserActivity, *Response, error)

GetUserActivities retrieves user activities (admin only)

GitLab API docs: https://docs.gitlab.com/api/users/#list-a-users-activity

func (*UsersService) GetUserAssociationsCount added in v0.116.0

func (s *UsersService) GetUserAssociationsCount(user int, options ...RequestOptionFunc) (*UserAssociationsCount, *Response, error)

GetUserAssociationsCount gets a list of a specified user associations.

Gitlab API docs: https://docs.gitlab.com/api/users/#get-a-count-of-a-users-projects-groups-issues-and-merge-requests

func (*UsersService) GetUserMemberships added in v0.116.0

func (s *UsersService) GetUserMemberships(user int, opt *GetUserMembershipOptions, options ...RequestOptionFunc) ([]*UserMembership, *Response, error)

GetUserMemberships retrieves a list of the user's memberships.

GitLab API docs: https://docs.gitlab.com/api/users/#list-projects-and-groups-that-a-user-is-a-member-of

func (*UsersService) GetUserStatus added in v0.116.0

func (s *UsersService) GetUserStatus(uid any, options ...RequestOptionFunc) (*UserStatus, *Response, error)

GetUserStatus retrieves a user's status.

uid can be either a user ID (int) or a username (string); will trim one "@" character off the username, if present. Other types will cause an error to be returned.

GitLab API docs: https://docs.gitlab.com/api/users/#get-the-status-of-a-user

func (*UsersService) ListEmails added in v0.4.0

func (s *UsersService) ListEmails(options ...RequestOptionFunc) ([]*Email, *Response, error)

ListEmails gets a list of currently authenticated user's Emails.

GitLab API docs: https://docs.gitlab.com/api/user_email_addresses/#list-all-email-addresses

func (*UsersService) ListEmailsForUser added in v0.4.0

func (s *UsersService) ListEmailsForUser(user int, opt *ListEmailsForUserOptions, options ...RequestOptionFunc) ([]*Email, *Response, error)

ListEmailsForUser gets a list of a specified user's Emails. Available only for admin

GitLab API docs: https://docs.gitlab.com/api/user_email_addresses/#list-all-email-addresses-for-a-user

func (*UsersService) ListGPGKeys added in v0.116.0

func (s *UsersService) ListGPGKeys(options ...RequestOptionFunc) ([]*GPGKey, *Response, error)

ListGPGKeys gets a list of currently authenticated user’s GPG keys.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-gpg-keys

func (*UsersService) ListGPGKeysForUser added in v0.116.0

func (s *UsersService) ListGPGKeysForUser(user int, options ...RequestOptionFunc) ([]*GPGKey, *Response, error)

ListGPGKeysForUser gets a list of a specified user’s GPG keys.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-gpg-keys-for-a-user

func (*UsersService) ListSSHKeys

func (s *UsersService) ListSSHKeys(opt *ListSSHKeysOptions, options ...RequestOptionFunc) ([]*SSHKey, *Response, error)

ListSSHKeys gets a list of currently authenticated user's SSH keys.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-ssh-keys

func (*UsersService) ListSSHKeysForUser

func (s *UsersService) ListSSHKeysForUser(uid any, opt *ListSSHKeysForUserOptions, options ...RequestOptionFunc) ([]*SSHKey, *Response, error)

ListSSHKeysForUser gets a list of a specified user's SSH keys.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-ssh-keys-for-a-user

func (*UsersService) ListServiceAccounts added in v0.116.0

func (s *UsersService) ListServiceAccounts(opt *ListServiceAccountsOptions, options ...RequestOptionFunc) ([]*ServiceAccount, *Response, error)

ListServiceAccounts lists all service accounts.

GitLab API docs: https://docs.gitlab.com/api/user_service_accounts/#list-all-service-account-users

func (*UsersService) ListUserContributionEvents added in v0.8.0

func (s *UsersService) ListUserContributionEvents(uid any, opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error)

ListUserContributionEvents retrieves user contribution events for the specified user, sorted from newest to oldest.

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

func (*UsersService) ListUsers

func (s *UsersService) ListUsers(opt *ListUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)

ListUsers gets a list of users.

GitLab API docs: https://docs.gitlab.com/api/users/#list-users

func (*UsersService) ModifyUser

func (s *UsersService) ModifyUser(user int, opt *ModifyUserOptions, options ...RequestOptionFunc) (*User, *Response, error)

ModifyUser modifies an existing user. Only administrators can change attributes of a user.

GitLab API docs: https://docs.gitlab.com/api/users/#modify-a-user

func (*UsersService) RejectUser added in v0.116.0

func (s *UsersService) RejectUser(user int, options ...RequestOptionFunc) error

RejectUser reject the specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_moderation/#reject-access-to-a-user

func (*UsersService) RevokeImpersonationToken added in v0.6.0

func (s *UsersService) RevokeImpersonationToken(user, token int, options ...RequestOptionFunc) (*Response, error)

RevokeImpersonationToken revokes an impersonation token.

GitLab API docs: https://docs.gitlab.com/api/user_tokens/#revoke-an-impersonation-token

func (*UsersService) SetUserStatus added in v0.116.0

func (s *UsersService) SetUserStatus(opt *UserStatusOptions, options ...RequestOptionFunc) (*UserStatus, *Response, error)

SetUserStatus sets the user's status

GitLab API docs: https://docs.gitlab.com/api/users/#set-your-user-status

func (*UsersService) UnbanUser added in v0.116.0

func (s *UsersService) UnbanUser(user int, options ...RequestOptionFunc) error

UnbanUser unbans the specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_moderation/#unban-a-user

func (*UsersService) UnblockUser

func (s *UsersService) UnblockUser(user int, options ...RequestOptionFunc) error

UnblockUser unblocks the specified user. Available only for admin.

GitLab API docs: https://docs.gitlab.com/api/user_moderation/#unblock-access-to-a-user

func (*UsersService) UploadAvatar added in v0.116.0

func (s *UsersService) UploadAvatar(avatar io.Reader, filename string, options ...RequestOptionFunc) (*User, *Response, error)

UploadAvatar uploads an avatar to the current user.

GitLab API docs: https://docs.gitlab.com/api/users/#upload-an-avatar-for-yourself

type UsersServiceInterface added in v0.126.0

type UsersServiceInterface interface {
	ListUsers(opt *ListUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)
	GetUser(user int, opt GetUsersOptions, options ...RequestOptionFunc) (*User, *Response, error)
	CreateUser(opt *CreateUserOptions, options ...RequestOptionFunc) (*User, *Response, error)
	ModifyUser(user int, opt *ModifyUserOptions, options ...RequestOptionFunc) (*User, *Response, error)
	DeleteUser(user int, options ...RequestOptionFunc) (*Response, error)
	CurrentUser(options ...RequestOptionFunc) (*User, *Response, error)
	CurrentUserStatus(options ...RequestOptionFunc) (*UserStatus, *Response, error)
	GetUserStatus(uid any, options ...RequestOptionFunc) (*UserStatus, *Response, error)
	SetUserStatus(opt *UserStatusOptions, options ...RequestOptionFunc) (*UserStatus, *Response, error)
	GetUserAssociationsCount(user int, options ...RequestOptionFunc) (*UserAssociationsCount, *Response, error)
	ListSSHKeys(opt *ListSSHKeysOptions, options ...RequestOptionFunc) ([]*SSHKey, *Response, error)
	ListSSHKeysForUser(uid any, opt *ListSSHKeysForUserOptions, options ...RequestOptionFunc) ([]*SSHKey, *Response, error)
	GetSSHKey(key int, options ...RequestOptionFunc) (*SSHKey, *Response, error)
	GetSSHKeyForUser(user int, key int, options ...RequestOptionFunc) (*SSHKey, *Response, error)
	AddSSHKey(opt *AddSSHKeyOptions, options ...RequestOptionFunc) (*SSHKey, *Response, error)
	AddSSHKeyForUser(user int, opt *AddSSHKeyOptions, options ...RequestOptionFunc) (*SSHKey, *Response, error)
	DeleteSSHKey(key int, options ...RequestOptionFunc) (*Response, error)
	DeleteSSHKeyForUser(user, key int, options ...RequestOptionFunc) (*Response, error)
	ListGPGKeys(options ...RequestOptionFunc) ([]*GPGKey, *Response, error)
	GetGPGKey(key int, options ...RequestOptionFunc) (*GPGKey, *Response, error)
	AddGPGKey(opt *AddGPGKeyOptions, options ...RequestOptionFunc) (*GPGKey, *Response, error)
	DeleteGPGKey(key int, options ...RequestOptionFunc) (*Response, error)
	ListGPGKeysForUser(user int, options ...RequestOptionFunc) ([]*GPGKey, *Response, error)
	GetGPGKeyForUser(user, key int, options ...RequestOptionFunc) (*GPGKey, *Response, error)
	AddGPGKeyForUser(user int, opt *AddGPGKeyOptions, options ...RequestOptionFunc) (*GPGKey, *Response, error)
	DeleteGPGKeyForUser(user, key int, options ...RequestOptionFunc) (*Response, error)
	ListEmails(options ...RequestOptionFunc) ([]*Email, *Response, error)
	ListEmailsForUser(user int, opt *ListEmailsForUserOptions, options ...RequestOptionFunc) ([]*Email, *Response, error)
	GetEmail(email int, options ...RequestOptionFunc) (*Email, *Response, error)
	AddEmail(opt *AddEmailOptions, options ...RequestOptionFunc) (*Email, *Response, error)
	AddEmailForUser(user int, opt *AddEmailOptions, options ...RequestOptionFunc) (*Email, *Response, error)
	DeleteEmail(email int, options ...RequestOptionFunc) (*Response, error)
	DeleteEmailForUser(user, email int, options ...RequestOptionFunc) (*Response, error)
	BlockUser(user int, options ...RequestOptionFunc) error
	UnblockUser(user int, options ...RequestOptionFunc) error
	BanUser(user int, options ...RequestOptionFunc) error
	UnbanUser(user int, options ...RequestOptionFunc) error
	DeactivateUser(user int, options ...RequestOptionFunc) error
	ActivateUser(user int, options ...RequestOptionFunc) error
	ApproveUser(user int, options ...RequestOptionFunc) error
	RejectUser(user int, options ...RequestOptionFunc) error
	GetAllImpersonationTokens(user int, opt *GetAllImpersonationTokensOptions, options ...RequestOptionFunc) ([]*ImpersonationToken, *Response, error)
	GetImpersonationToken(user, token int, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error)
	CreateImpersonationToken(user int, opt *CreateImpersonationTokenOptions, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error)
	RevokeImpersonationToken(user, token int, options ...RequestOptionFunc) (*Response, error)
	CreatePersonalAccessToken(user int, opt *CreatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	CreatePersonalAccessTokenForCurrentUser(opt *CreatePersonalAccessTokenForCurrentUserOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	GetUserActivities(opt *GetUserActivitiesOptions, options ...RequestOptionFunc) ([]*UserActivity, *Response, error)
	GetUserMemberships(user int, opt *GetUserMembershipOptions, options ...RequestOptionFunc) ([]*UserMembership, *Response, error)
	DisableTwoFactor(user int, options ...RequestOptionFunc) error
	CreateUserRunner(opts *CreateUserRunnerOptions, options ...RequestOptionFunc) (*UserRunner, *Response, error)
	CreateServiceAccountUser(opts *CreateServiceAccountUserOptions, options ...RequestOptionFunc) (*User, *Response, error)
	ListServiceAccounts(opt *ListServiceAccountsOptions, options ...RequestOptionFunc) ([]*ServiceAccount, *Response, error)
	UploadAvatar(avatar io.Reader, filename string, options ...RequestOptionFunc) (*User, *Response, error)
	DeleteUserIdentity(user int, provider string, options ...RequestOptionFunc) (*Response, error)

	// events.go
	ListUserContributionEvents(uid any, opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error)
}

type ValidateService added in v0.7.5

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

ValidateService handles communication with the validation related methods of the GitLab API.

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

func (*ValidateService) ProjectLint added in v0.116.0

func (s *ValidateService) ProjectLint(pid any, opt *ProjectLintOptions, options ...RequestOptionFunc) (*ProjectLintResult, *Response, error)

ProjectLint validates .gitlab-ci.yml content by project.

GitLab API docs: https://docs.gitlab.com/api/lint/#validate-a-projects-cicd-configuration

func (*ValidateService) ProjectNamespaceLint added in v0.116.0

func (s *ValidateService) ProjectNamespaceLint(pid any, opt *ProjectNamespaceLintOptions, options ...RequestOptionFunc) (*ProjectLintResult, *Response, error)

ProjectNamespaceLint validates .gitlab-ci.yml content by project.

GitLab API docs: https://docs.gitlab.com/api/lint/#validate-sample-cicd-configuration

type ValidateServiceInterface added in v0.126.0

type ValidateServiceInterface interface {
	ProjectNamespaceLint(pid any, opt *ProjectNamespaceLintOptions, options ...RequestOptionFunc) (*ProjectLintResult, *Response, error)
	ProjectLint(pid any, opt *ProjectLintOptions, options ...RequestOptionFunc) (*ProjectLintResult, *Response, error)
}

type VariableFilter added in v0.116.0

type VariableFilter struct {
	EnvironmentScope string `url:"environment_scope, omitempty" json:"environment_scope,omitempty"`
}

VariableFilter filters available for project variable related functions

type VariableTypeValue added in v0.116.0

type VariableTypeValue string

VariableTypeValue represents a variable type within GitLab.

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

const (
	EnvVariableType  VariableTypeValue = "env_var"
	FileVariableType VariableTypeValue = "file"
)

List of available variable types.

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

type VerifyRegisteredRunnerOptions added in v0.11.0

type VerifyRegisteredRunnerOptions struct {
	Token *string `url:"token" json:"token"`
}

VerifyRegisteredRunnerOptions represents the available VerifyRegisteredRunner() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#verify-authentication-for-a-registered-runner

type Version added in v0.6.0

type Version struct {
	Version  string `json:"version"`
	Revision string `json:"revision"`
}

Version represents a GitLab instance version.

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

func (Version) String added in v0.6.0

func (s Version) String() string

type VersionService added in v0.6.0

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

VersionService handles communication with the GitLab server instance to retrieve its version information via the GitLab API.

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

func (*VersionService) GetVersion added in v0.6.0

func (s *VersionService) GetVersion(options ...RequestOptionFunc) (*Version, *Response, error)

GetVersion gets a GitLab server instance version; it is only available to authenticated users.

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

type VersionServiceInterface added in v0.126.0

type VersionServiceInterface interface {
	GetVersion(options ...RequestOptionFunc) (*Version, *Response, error)
}

type VisibilityValue added in v0.6.0

type VisibilityValue string

VisibilityValue represents a visibility level within GitLab.

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

const (
	PrivateVisibility  VisibilityValue = "private"
	InternalVisibility VisibilityValue = "internal"
	PublicVisibility   VisibilityValue = "public"
)

List of available visibility levels.

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

type WeightEvent added in v0.116.0

type WeightEvent struct {
	ID           int            `json:"id"`
	User         *BasicUser     `json:"user"`
	CreatedAt    *time.Time     `json:"created_at"`
	ResourceType string         `json:"resource_type"`
	ResourceID   int            `json:"resource_id"`
	State        EventTypeValue `json:"state"`
	IssueID      int            `json:"issue_id"`
	Weight       int            `json:"weight"`
}

WeightEvent represents a resource weight event.

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

type Wiki added in v0.7.0

type Wiki struct {
	Content  string          `json:"content"`
	Encoding string          `json:"encoding"`
	Format   WikiFormatValue `json:"format"`
	Slug     string          `json:"slug"`
	Title    string          `json:"title"`
}

Wiki represents a GitLab wiki.

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

func (Wiki) String added in v0.7.0

func (w Wiki) String() string

type WikiAttachment added in v0.124.0

type WikiAttachment struct {
	FileName string             `json:"file_name"`
	FilePath string             `json:"file_path"`
	Branch   string             `json:"branch"`
	Link     WikiAttachmentLink `json:"link"`
}

WikiAttachment represents a GitLab wiki attachment.

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

func (WikiAttachment) String added in v0.124.0

func (wa WikiAttachment) String() string
type WikiAttachmentLink struct {
	URL      string `json:"url"`
	Markdown string `json:"markdown"`
}

WikiAttachmentLink represents a GitLab wiki attachment link.

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

type WikiFormatValue added in v0.116.0

type WikiFormatValue string

WikiFormatValue represents the available wiki formats.

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

const (
	WikiFormatMarkdown WikiFormatValue = "markdown"
	WikiFormatRDoc     WikiFormatValue = "rdoc"
	WikiFormatASCIIDoc WikiFormatValue = "asciidoc"
	WikiFormatOrg      WikiFormatValue = "org"
)

The available wiki formats.

type WikiPageEvent added in v0.3.1

type WikiPageEvent struct {
	ObjectKind string     `json:"object_kind"`
	User       *EventUser `json:"user"`
	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"`
	Wiki struct {
		WebURL            string `json:"web_url"`
		GitSSHURL         string `json:"git_ssh_url"`
		GitHTTPURL        string `json:"git_http_url"`
		PathWithNamespace string `json:"path_with_namespace"`
		DefaultBranch     string `json:"default_branch"`
	} `json:"wiki"`
	ObjectAttributes struct {
		Title   string `json:"title"`
		Content string `json:"content"`
		Format  string `json:"format"`
		Message string `json:"message"`
		Slug    string `json:"slug"`
		URL     string `json:"url"`
		Action  string `json:"action"`
		DiffURL string `json:"diff_url"`
	} `json:"object_attributes"`
}

WikiPageEvent represents a wiki page event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#wiki-page-events

type WikisService added in v0.7.0

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

WikisService handles communication with the wikis related methods of the Gitlab API.

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

func (*WikisService) CreateWikiPage added in v0.7.0

func (s *WikisService) CreateWikiPage(pid any, opt *CreateWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)

CreateWikiPage creates a new wiki page for the given repository with the given title, slug, and content.

GitLab API docs: https://docs.gitlab.com/api/wikis/#create-a-new-wiki-page

func (*WikisService) DeleteWikiPage added in v0.7.0

func (s *WikisService) DeleteWikiPage(pid any, slug string, options ...RequestOptionFunc) (*Response, error)

DeleteWikiPage deletes a wiki page with a given slug.

GitLab API docs: https://docs.gitlab.com/api/wikis/#delete-a-wiki-page

func (*WikisService) EditWikiPage added in v0.7.0

func (s *WikisService) EditWikiPage(pid any, slug string, opt *EditWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)

EditWikiPage Updates an existing wiki page. At least one parameter is required to update the wiki page.

GitLab API docs: https://docs.gitlab.com/api/wikis/#edit-an-existing-wiki-page

func (*WikisService) GetWikiPage added in v0.7.0

func (s *WikisService) GetWikiPage(pid any, slug string, opt *GetWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)

GetWikiPage gets a wiki page for a given project.

GitLab API docs: https://docs.gitlab.com/api/wikis/#get-a-wiki-page

func (*WikisService) ListWikis added in v0.7.0

func (s *WikisService) ListWikis(pid any, opt *ListWikisOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)

ListWikis lists all pages of the wiki of the given project id. When with_content is set, it also returns the content of the pages.

GitLab API docs: https://docs.gitlab.com/api/wikis/#list-wiki-pages

func (*WikisService) UploadWikiAttachment added in v0.124.0

func (s *WikisService) UploadWikiAttachment(pid any, content io.Reader, filename string, opt *UploadWikiAttachmentOptions, options ...RequestOptionFunc) (*WikiAttachment, *Response, error)

UploadWikiAttachment uploads a file to the attachment folder inside the wiki’s repository. The attachment folder is the uploads folder.

GitLab API docs: https://docs.gitlab.com/api/wikis/#upload-an-attachment-to-the-wiki-repository

type WikisServiceInterface added in v0.126.0

type WikisServiceInterface interface {
	ListWikis(pid any, opt *ListWikisOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)
	GetWikiPage(pid any, slug string, opt *GetWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)
	CreateWikiPage(pid any, opt *CreateWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)
	EditWikiPage(pid any, slug string, opt *EditWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)
	DeleteWikiPage(pid any, slug string, options ...RequestOptionFunc) (*Response, error)
	UploadWikiAttachment(pid any, content io.Reader, filename string, opt *UploadWikiAttachmentOptions, options ...RequestOptionFunc) (*WikiAttachment, *Response, error)
}

type X509Certificate added in v0.128.0

type X509Certificate struct {
	ID                   int        `json:"id"`
	Subject              string     `json:"subject"`
	SubjectKeyIdentifier string     `json:"subject_key_identifier"`
	Email                string     `json:"email"`
	SerialNumber         *big.Int   `json:"serial_number"`
	CertificateStatus    string     `json:"certificate_status"`
	X509Issuer           X509Issuer `json:"x509_issuer"`
}

type X509Issuer added in v0.128.0

type X509Issuer struct {
	ID                   int    `json:"id"`
	Subject              string `json:"subject"`
	SubjectKeyIdentifier string `json:"subject_key_identifier"`
	CrlUrl               string `json:"crl_url"`
}

type X509Signature added in v0.128.0

type X509Signature struct {
	SignatureType      string          `json:"signature_type"`
	VerificationStatus string          `json:"verification_status"`
	X509Certificate    X509Certificate `json:"x509_certificate"`
}

X509Signature represents a GitLab Tag Signature object.

GitLab API docs: https://docs.gitlab.com/api/tags/#get-x509-signature-of-a-tag

type YouTrackService added in v0.116.0

type YouTrackService struct {
	Service
	Properties *YouTrackServiceProperties `json:"properties"`
}

YouTrackService represents YouTrack service settings.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#youtrack

type YouTrackServiceProperties added in v0.116.0

type YouTrackServiceProperties struct {
	IssuesURL   string `json:"issues_url"`
	ProjectURL  string `json:"project_url"`
	Description string `json:"description"`
	PushEvents  bool   `json:"push_events"`
}

YouTrackServiceProperties represents YouTrack specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#youtrack

Source Files

Directories

Path Synopsis
Package testing is a generated GoMock package.
Package testing is a generated GoMock package.

Jump to

Keyboard shortcuts

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