gitlab

package module
v2.13.0 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2026 License: Apache-2.0 Imports: 31 Imported by: 8

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]]

client-go 2.0 Has Been Released!

We're pleased to announce that version 2.0 has been released for the client-go library, which continues our backwards compatibility guarantee introduced in the 1.0 release by ensuring all breaking changes are included in a major release version to follow SemVar. For the release 2.0 migration guide, please see the Migration Guides section below!

Usage

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

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/v2"
)

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)
	}
}
Use OAuth2 helper package

The following example demonstrates how to use the gitlab.com/gitlab-org/api/client-go/v2/oauth2 package:

package main

import (
	"context"
	"fmt"
	"os/exec"

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

func main() {
	ctx := context.Background()
	// Authorize with GitLab.com and OAuth2
	clientID := "aaa"
	redirectURL := "http://localhost:9999/auth/redirect"
	scopes := []string{"read_api"}
	config := gitlaboauth2.NewOAuth2Config("", clientID, redirectURL, scopes)

	server := gitlaboauth2.NewCallbackServer(config, ":9999", func(url string) error {
		return exec.Command("open", url).Start()
	})

	token, err := server.GetToken(ctx)
	if err != nil {
		panic(err)
	}

	client, err := gitlab.NewAuthSourceClient(gitlab.OAuthTokenSource{TokenSource: config.TokenSource(ctx, token)})
	if err != nil {
		panic(err)
	}

	user, _, err := client.Users.CurrentUser()
	if err != nil {
		panic(err)
	}

	fmt.Printf("Current user: %s\n", user.Username)
}
Use the config package (experimental)

The config package defines a configuration file format (YAML) to configure GitLab instances and their associated authentication methods combined in contexts (similar to what you might know from Kubernetes).

The configuration is located in the users config directory (e.g. XDG config dir), in gitlab/config.yaml.

A basic example for an OAuth flow for GitLab.com that stores the credentials in the systems keyring, looks like this:

version: gitlab.com/config/v1beta1

instances:
    - name: gitlab-com
      server: https://gitlab.com

auths:
    - name: oauth-keyring
      auth-info:
        oauth2:
            access-token-source:
                keyring:
                    service: client-go
                    user: access-token
            refresh-token-source:
                keyring:
                    service: client-go
                    user: refresh-token
contexts:
    - name: gitlab-com-keyring
      instance: gitlab-com
      auth: oauth-keyring

current-context: gitlab-com-keyring

An application with client-go is able to effortlessly create a new client using that configuration:

package main

import (
	"fmt"
	"log"

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

func main() {
	// Create a config with default location (~/.config/gitlab/config.yaml)
	cfg := config.New(
		config.WithOAuth2Settings(config.OAuth2Settings{
			AuthorizationFlowEnabled: true,
			CallbackServerListenAddr: ":7171",
			Browser: func(url string) error {
				fmt.Printf("Open: %s\n", url)
				return nil
			},
			ClientID:    "<your-client-id>",
			RedirectURL: "http://localhost:7171/auth/redirect",
			Scopes:      []string{"read_api"},
		}),
	)

	// Load the configuration
	if err := cfg.Load(); err != nil {
		log.Printf("Failed to load config: %v", err)
		return
	}

	client, err := cfg.NewClient(gitlab.WithUserAgent("my-app"))
	if err != nil {
		log.Fatalf("Failed to create client: %v", err)
	}

	// Use the client
	user, _, err := client.Users.CurrentUser()
	if err != nil {
		log.Fatalf("Failed to get current user: %v", err)
	}

	fmt.Printf("Authenticated as: %s (%s)\n", user.Name, user.Username)
}

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/v2

Testing

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

You can use them like this:

func TestMockExample(t *testing.T) {
	client := gitlabtesting.NewTestClient(t)
	opts := &gitlab.ListAgentsOptions{}
	expectedResp := &gitlab.Response{}
	pid := 1
	// Setup expectations
	client.MockClusterAgents.EXPECT().
		ListAgents(pid, opts).
		Return([]*gitlab.Agent{{ID: 1}}, expectedResp, 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, resp, err := client.ClusterAgents.ListAgents(pid, opts)
	assert.NoError(t, err)
	assert.Equal(t, expectedResp, resp)
	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.

Migration Guides

client-go will release a major update roughly once every 6 months to align to the Go release cycle. Each major release will publish a migration guide to help users migrate from the previous major release.

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

Package gitlab implements a GitLab API client.

Example (BasicAuth)

Example_basicAuth demonstrates authenticating with username and password. This uses OAuth2 password credentials flow under the hood.

// Note: The setupBasicAuthMock() function below is ONLY for the example purpose
// and has nothing to do with how a user will use client-go.
// In production, you would authenticate against a real GitLab instance.
client, server := setupBasicAuthMock()
defer server.Close()

// Use the authenticated client
projects, _, _ := client.Projects.ListProjects(nil)
fmt.Printf("Found %d projects\n", len(projects))
Output:
Found 2 projects
Example (FileUpload)

Example_fileUpload demonstrates uploading a file to a GitLab repository.

// Note: The setupFileUploadMock() function below is ONLY for the example purpose
// and has nothing to do with how a user will use client-go.
// In production, you would use a real authenticated GitLab client.
client, server := setupFileUploadMock()
defer server.Close()

// Create a new file in the repository
opts := &gitlab.CreateFileOptions{
	Branch:        gitlab.Ptr("main"),
	Content:       gitlab.Ptr("# My Project\n\nDocumentation for this project."),
	CommitMessage: gitlab.Ptr("Add README"),
}

file, _, _ := client.RepositoryFiles.CreateFile(
	"my-group/my-project",
	"README.md",
	opts,
)

fmt.Printf("Created %s on branch %s\n", file.FilePath, file.Branch)
Output:
Created README.md on branch main
Example (KeysetPagination)

Example_keysetPagination demonstrates keyset-based pagination. Keyset pagination is more efficient for large datasets and prevents duplicates when data changes during pagination.

// Note: The setupPaginationMock() function below is ONLY for the example purpose
// and has nothing to do with how a user will use client-go.
// In production, you would use a real authenticated GitLab client.
client, server := setupPaginationMock(true)
defer server.Close()

// Configure keyset pagination
opts := &gitlab.ListProjectsOptions{
	ListOptions: gitlab.ListOptions{
		OrderBy:    "id",
		Pagination: "keyset",
		PerPage:    5,
		Sort:       "asc",
	},
	Owned: gitlab.Ptr(true),
}

// Scan2 works with both pagination types
count := 0
for range gitlab.Must(gitlab.Scan2(func(p gitlab.PaginationOptionFunc) ([]*gitlab.Project, *gitlab.Response, error) {
	return client.Projects.ListProjects(opts, p)
})) {
	count++
}

fmt.Printf("Iterated over %d projects\n", count)
Output:
Iterated over 2 projects
Example (Pagination)

Example_pagination demonstrates standard offset-based pagination. This automatically handles pagination using page numbers.

// Note: The setupPaginationMock() function below is ONLY for the example purpose
// and has nothing to do with how a user will use client-go.
// In production, you would use a real authenticated GitLab client.
client, server := setupPaginationMock(false)
defer server.Close()

// Configure pagination options
opts := &gitlab.ListProjectsOptions{
	ListOptions: gitlab.ListOptions{
		PerPage: 10,
		Page:    1,
	},
	Owned: gitlab.Ptr(true),
}

// Scan2 automatically handles pagination
count := 0
for range gitlab.Must(gitlab.Scan2(func(p gitlab.PaginationOptionFunc) ([]*gitlab.Project, *gitlab.Response, error) {
	return client.Projects.ListProjects(opts, p)
})) {
	count++
}

fmt.Printf("Iterated over %d projects\n", count)
Output:
Iterated over 2 projects

Index

Examples

Constants

View Source
const (
	AccessTokenHeaderName = "Private-Token"
	JobTokenHeaderName    = "Job-Token"
	OAuthTokenHeaderName  = "Authorization"
)
View Source
const (
	// GraphQLAPIEndpoint defines the endpoint URI for the GraphQL backend
	GraphQLAPIEndpoint = "/api/graphql"
)

Variables

View Source
var (
	// ErrNotFound is returned for 404 Not Found errors
	ErrNotFound = errors.New("404 Not Found")

	// ErrEmptyResponse is returned when the API response is empty but expected to contain data
	ErrEmptyResponse = errors.New("unexpected empty response")
)
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.

Functions

func CheckResponse

func CheckResponse(r *http.Response) error

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

func HasStatusCode

func HasStatusCode(err error, statusCode int) bool

func HookEventToken

func HookEventToken(r *http.Request) string

HookEventToken returns the token for the given request.

func Must

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

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

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

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

func PathEscape(s string) string

PathEscape is a helper function to escape a project identifier.

func Ptr

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

Ptr is a helper that returns a pointer to v.

func Scan

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

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.

Example
package main

import (
	"fmt"
	"log"

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

func main() {
	// Create a client (this would normally use your GitLab instance URL and token)
	client, err := gitlab.NewAuthSourceClient(
		gitlab.AccessTokenAuthSource{"your-token"},
		gitlab.WithBaseURL("https://gitlab.example.com/api/v4"),
	)
	if err != nil {
		// Handle the error
		panic(err)
	}

	opts := &gitlab.ListProjectsOptions{}

	pager := func(pageOpt gitlab.PaginationOptionFunc) ([]*gitlab.Project, *gitlab.Response, error) {
		// Call ListProjects with pageOpt to retrieve the next page
		return client.Projects.ListProjects(opts, pageOpt)
	}

	// Create a project iterator
	projects := gitlab.Scan2(pager)

	// Iterate over the project iterator
	for project, err := range projects {
		// Errors are delivered inline — check for them and break the loop before using the value
		if err != nil {
			log.Println("ERROR:", err)
			break
		}

		fmt.Printf("- %s (ID: %d)\n", project.PathWithNamespace, project.ID)
	}
}

func ScanAndCollect

func ScanAndCollect[T any](f func(p PaginationOptionFunc) ([]T, *Response, error)) ([]T, error)

ScanAndCollect is a convenience function that collects all results and returns them as a slice as well as an error if one happens.

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

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

func ScanAndCollectN

func ScanAndCollectN[T any](f func(p PaginationOptionFunc) ([]T, *Response, error), n int) ([]T, error)

ScanAndCollectN is a convenience function that collects at most n results and returns them as a slice as well as an error if one happens.

This is useful when you need a slice, e.g. for marshaling the data structures, passing the data to a function expecting a slice, or implementing custom sorting logic. If you want to iterate over all items, the iterator returned by Scan2 is a more memory efficient alternative.

n determines the number of items to collect:

  • n > 0: at most n items are returned
  • n == 0: the result is a nil slice (zero items)
  • n < 0: all items are returned (no limit)

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

Example
package main

import (
	"encoding/json"
	"os"

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

func main() {
	// Create a client (this would normally use your GitLab instance URL and token)
	client, err := gitlab.NewAuthSourceClient(
		gitlab.AccessTokenAuthSource{"your-token"},
		gitlab.WithBaseURL("https://gitlab.example.com/api/v4"),
	)
	if err != nil {
		// Handle the error
		panic(err)
	}

	opts := &gitlab.ListProjectsOptions{}

	pager := func(pageOpt gitlab.PaginationOptionFunc) ([]*gitlab.Project, *gitlab.Response, error) {
		// Call ListProjects with pageOpt to retrieve the next page
		return client.Projects.ListProjects(opts, pageOpt)
	}

	// Retrieve at most 42 projects
	const limit = 42

	projects, err := gitlab.ScanAndCollectN(pager, limit)
	if err != nil {
		// Handle the error
		panic(err)
	}

	// Use the slice — here we serialize it to JSON, but you could sort it, pass it to another function, etc.
	// Note: if you want to iterate over items, use gitlab.Scan2() instead
	if err := json.NewEncoder(os.Stdout).Encode(projects); err != nil {
		panic(err)
	}
}

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

type AcceptMergeRequestOptions struct {
	AutoMerge                *bool   `url:"auto_merge,omitempty" json:"auto_merge,omitempty"`
	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"`
	SHA                      *string `url:"sha,omitempty" json:"sha,omitempty"`

	// Deprecated: use AutoMerge instead
	MergeWhenPipelineSucceeds *bool `url:"merge_when_pipeline_succeeds,omitempty" json:"merge_when_pipeline_succeeds,omitempty"`
}

AcceptMergeRequestOptions represents the available AcceptMergeRequest() options.

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

type AccessControlValue

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

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

type AccessLevelValue

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

type AccessRequest struct {
	ID          int64            `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

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

func (s *AccessRequestsService) ApproveGroupAccessRequest(gid any, user int64, opt *ApproveAccessRequestOptions, options ...RequestOptionFunc) (*AccessRequest, *Response, error)

func (*AccessRequestsService) ApproveProjectAccessRequest

func (s *AccessRequestsService) ApproveProjectAccessRequest(pid any, user int64, opt *ApproveAccessRequestOptions, options ...RequestOptionFunc) (*AccessRequest, *Response, error)

func (*AccessRequestsService) DenyGroupAccessRequest

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

func (*AccessRequestsService) DenyProjectAccessRequest

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

func (*AccessRequestsService) ListGroupAccessRequests

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

func (*AccessRequestsService) ListProjectAccessRequests

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

func (*AccessRequestsService) RequestGroupAccess

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

func (*AccessRequestsService) RequestProjectAccess

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

type AccessRequestsServiceInterface

type AccessRequestsServiceInterface interface {
	// 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
	// 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
	ListProjectAccessRequests(pid 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
	ListGroupAccessRequests(gid any, opt *ListAccessRequestsOptions, 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
	RequestProjectAccess(pid 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
	RequestGroupAccess(gid any, 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
	ApproveProjectAccessRequest(pid any, user int64, 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
	ApproveGroupAccessRequest(gid any, user int64, opt *ApproveAccessRequestOptions, options ...RequestOptionFunc) (*AccessRequest, *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
	DenyProjectAccessRequest(pid any, user int64, 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
	DenyGroupAccessRequest(gid any, user int64, options ...RequestOptionFunc) (*Response, error)
}

type AccessTokenAuthSource

type AccessTokenAuthSource struct {
	Token string
}

AccessTokenAuthSource used as an AuthSource for various access tokens, like Personal-, Project- and Group- Access Tokens. Can be used for all tokens that authorize with the Private-Token header.

func (AccessTokenAuthSource) Header

func (AccessTokenAuthSource) Init

type AccessTokenSort

type AccessTokenSort string

AccessTokenSort represents the available sorting options for access tokens.

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

const (
	CreatedAsc   AccessTokenSort = "created_asc"
	CreatedDesc  AccessTokenSort = "created_desc"
	ExpiresAsc   AccessTokenSort = "expires_asc"
	ExpiresDesc  AccessTokenSort = "expires_desc"
	LastUsedAsc  AccessTokenSort = "last_used_asc"
	LastUsedDesc AccessTokenSort = "last_used_desc"
	NameAsc      AccessTokenSort = "name_asc"
	NameDesc     AccessTokenSort = "name_desc"
)

type AccessTokenState

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

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

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

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

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

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

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

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

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

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"`
	ProjectEvents             *bool                `url:"project_events,omitempty"  json:"project_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"`
	MilestoneEvents           *bool                `url:"milestone_events,omitempty" json:"milestone_events,omitempty"`
	SubGroupEvents            *bool                `url:"subgroup_events,omitempty" json:"subgroup_events,omitempty"`
	EmojiEvents               *bool                `url:"emoji_events,omitempty" json:"emoji_events,omitempty"`
	MemberEvents              *bool                `url:"member_events,omitempty" json:"member_events,omitempty"`
	VulnerabilityEvents       *bool                `url:"vulnerability_events,omitempty" json:"vulnerability_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

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       *int64            `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 *int64            `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

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

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                *int64  `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

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  *int64            `url:"member_role_id,omitempty" json:"member_role_id,omitempty"`
	Provider      *string           `url:"provider,omitempty" json:"provider,omitempty"`
}

AddGroupSAMLLinkOptions represents the available AddGroupSAMLLink() options.

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

type AddGroupToJobTokenAllowlistOptions

type AddGroupToJobTokenAllowlistOptions struct {
	TargetGroupID *int64 `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 AddInstanceDeployKeyOptions

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

AddInstanceDeployKeyOptions represents the available AddInstanceDeployKey() options.

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

type AddIssueDiscussionNoteOptions

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

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

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

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

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

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

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"`
	EmojiEvents               *bool                `url:"emoji_events,omitempty" json:"emoji_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"`
	VulnerabilityEvents       *bool                `url:"vulnerability_events,omitempty" json:"vulnerability_events,omitempty"`
	BranchFilterStrategy      *string              `url:"branch_filter_strategy,omitempty" json:"branch_filter_strategy,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 *int64            `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

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"`
	HostKeys              *[]string `url:"host_keys,omitempty" json:"host_keys,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

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                *int64  `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

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

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 AdminCompliancePolicySettings

type AdminCompliancePolicySettings struct {
	CSPNamespaceID *int64 `json:"csp_namespace_id"`
}

AdminCompliancePolicySettings represents the GitLab admin compliance policy settings.

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

func (AdminCompliancePolicySettings) String

type AdminCompliancePolicySettingsService

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

AdminCompliancePolicySettingsService handles communication with the admin compliance policy settings related methods of the GitLab API.

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

func (*AdminCompliancePolicySettingsService) GetCompliancePolicySettings

func (*AdminCompliancePolicySettingsService) UpdateCompliancePolicySettings

type AdminCompliancePolicySettingsServiceInterface

type AdminCompliancePolicySettingsServiceInterface interface {
	// GetCompliancePolicySettings gets the current security policy settings for the GitLab instance.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/compliance_policy_settings/#get-security-policy-settings
	GetCompliancePolicySettings(options ...RequestOptionFunc) (*AdminCompliancePolicySettings, *Response, error)

	// UpdateCompliancePolicySettings updates the security policy settings for the GitLab instance.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/compliance_policy_settings/#update-security-policy-settings
	UpdateCompliancePolicySettings(opt *UpdateAdminCompliancePolicySettingsOptions, options ...RequestOptionFunc) (*AdminCompliancePolicySettings, *Response, error)
}

type Agent

type Agent struct {
	ID              int64         `json:"id"`
	Name            string        `json:"name"`
	CreatedAt       *time.Time    `json:"created_at"`
	CreatedByUserID int64         `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

func (a Agent) String() string

type AgentToken

type AgentToken struct {
	ID              int64      `json:"id"`
	Name            string     `json:"name"`
	Description     string     `json:"description"`
	AgentID         int64      `json:"agent_id"`
	Status          string     `json:"status"`
	CreatedAt       *time.Time `json:"created_at"`
	CreatedByUserID int64      `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

func (a AgentToken) String() string

type AlertManagementService

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

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

func (*AlertManagementService) ListMetricImages

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

func (*AlertManagementService) UpdateMetricImage

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

func (*AlertManagementService) UploadMetricImage

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

type AlertManagementServiceInterface

type AlertManagementServiceInterface interface {
	// UploadMetricImage uploads a metric image to a project alert.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/alert_management_alerts/#upload-metric-image
	UploadMetricImage(pid any, alertIID int64, content io.Reader, filename string, opt *UploadMetricImageOptions, 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-all-metric-images
	ListMetricImages(pid any, alertIID int64, opt *ListMetricImagesOptions, 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-a-metric-image
	UpdateMetricImage(pid any, alertIID int64, id int64, opt *UpdateMetricImageOptions, options ...RequestOptionFunc) (*MetricImage, *Response, error)

	// DeleteMetricImage deletes a metric image for a project alert.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/alert_management_alerts/#delete-a-metric-image
	DeleteMetricImage(pid any, alertIID int64, id int64, options ...RequestOptionFunc) (*Response, error)
}

type AllHeadersAuthStrategy added in v2.13.0

type AllHeadersAuthStrategy struct{}

AllHeadersAuthStrategy - The default implementation for v2 of package. With this authentication strategy, all token headers specified in the client will be passed in the request and GitLab will determine which token to use. This means that if both a Job Token and a Private Token are provided, both will be sent in the headers.

func (AllHeadersAuthStrategy) ApplyAuthHeader added in v2.13.0

func (d AllHeadersAuthStrategy) ApplyAuthHeader(authSource AuthSource, req *retryablehttp.Request) error

type Appearance

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

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

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

func (*AppearanceService) GetAppearance

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

type AppearanceServiceInterface

type AppearanceServiceInterface interface {
	// 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
	GetAppearance(options ...RequestOptionFunc) (*Appearance, *Response, error)

	// ChangeAppearance changes the appearance configuration.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/appearance/#update-application-appearance
	ChangeAppearance(opt *ChangeAppearanceOptions, options ...RequestOptionFunc) (*Appearance, *Response, error)
}

type Application

type Application struct {
	ID              int64  `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

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

ApplicationStatistics represents application statistics.

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

type ApplicationStatisticsService

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

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

type ApplicationStatisticsServiceInterface

type ApplicationStatisticsServiceInterface interface {
	// GetApplicationStatistics gets details on the current application statistics.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/statistics/#get-details-on-current-application-statistics
	GetApplicationStatistics(options ...RequestOptionFunc) (*ApplicationStatistics, *Response, error)
}

type ApplicationsService

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

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

func (*ApplicationsService) DeleteApplication

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

func (*ApplicationsService) ListApplications

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

type ApplicationsServiceInterface

type ApplicationsServiceInterface interface {
	// CreateApplication creates a new application owned by the authenticated user.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/applications/#create-an-application
	CreateApplication(opt *CreateApplicationOptions, 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
	ListApplications(opt *ListApplicationsOptions, options ...RequestOptionFunc) ([]*Application, *Response, error)

	// DeleteApplication removes a specific application.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/applications/#delete-an-application
	DeleteApplication(application int64, options ...RequestOptionFunc) (*Response, error)
}

type ApproveAccessRequestOptions

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

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

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

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

ApproverIDsValue represents an approver ID value within GitLab.

func ApproverIDs

func ApproverIDs(v any) *ApproverIDsValue

ApproverIDs is a helper routine that creates a new ApproverIDsValue.

func (*ApproverIDsValue) EncodeValues

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

EncodeValues implements the query.Encoder interface.

func (ApproverIDsValue) MarshalJSON

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

MarshalJSON implements the json.Marshaler interface.

func (*ApproverIDsValue) UnmarshalJSON

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

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

AssigneeIDValue represents an assignee ID value within GitLab.

func AssigneeID

func AssigneeID(v any) *AssigneeIDValue

AssigneeID is a helper routine that creates a new AssigneeIDValue.

func (*AssigneeIDValue) EncodeValues

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

EncodeValues implements the query.Encoder interface.

func (AssigneeIDValue) MarshalJSON

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

MarshalJSON implements the json.Marshaler interface.

func (*AssigneeIDValue) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaler interface.

type Attestation

type Attestation struct {
	ID            int64      `json:"id"`
	IID           int64      `json:"iid"`
	ProjectID     int64      `json:"project_id"`
	BuildID       int64      `json:"build_id"`
	Status        string     `json:"status"`
	CreatedAt     *time.Time `json:"created_at"`
	UpdatedAt     *time.Time `json:"updated_at"`
	ExpireAt      *time.Time `json:"expire_at"`
	PredicateKind string     `json:"predicate_kind"`
	PredicateType string     `json:"predicate_type"`
	SubjectDigest string     `json:"subject_digest"`
	DownloadURL   string     `json:"download_url"`
}

type AttestationsService

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

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

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

func (*AttestationsService) DownloadAttestation

func (s *AttestationsService) DownloadAttestation(pid any, attestationIID int64, options ...RequestOptionFunc) ([]byte, *Response, error)

func (*AttestationsService) ListAttestations

func (s *AttestationsService) ListAttestations(pid any, subjectDigest string, options ...RequestOptionFunc) ([]*Attestation, *Response, error)

type AttestationsServiceInterface

type AttestationsServiceInterface interface {
	// ListAttestations gets a list of all attestations
	//
	// GitLab API docs: https://docs.gitlab.com/api/attestations/#list-all-attestations
	ListAttestations(pid any, subjectDigest string, options ...RequestOptionFunc) ([]*Attestation, *Response, error)

	// DownloadAttestation
	//
	// GitLab API docs: https://docs.gitlab.com/api/attestations/#download-an-attestation
	DownloadAttestation(pid any, attestationIID int64, options ...RequestOptionFunc) ([]byte, *Response, error)
}

type AuditEvent

type AuditEvent struct {
	ID         int64             `json:"id"`
	AuthorID   int64             `json:"author_id"`
	EntityID   int64             `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

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

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

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

func (*AuditEventsService) GetInstanceAuditEvent

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

func (*AuditEventsService) GetProjectAuditEvent

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

func (*AuditEventsService) ListGroupAuditEvents

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

func (*AuditEventsService) ListInstanceAuditEvents

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

func (*AuditEventsService) ListProjectAuditEvents

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

type AuditEventsServiceInterface

type AuditEventsServiceInterface interface {
	// 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
	// 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
	ListInstanceAuditEvents(opt *ListAuditEventsOptions, 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
	GetInstanceAuditEvent(event int64, 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
	ListGroupAuditEvents(gid any, opt *ListAuditEventsOptions, 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
	GetGroupAuditEvent(gid any, event int64, 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
	ListProjectAuditEvents(pid any, opt *ListAuditEventsOptions, 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
	GetProjectAuditEvent(pid any, event int64, options ...RequestOptionFunc) (*AuditEvent, *Response, error)
}

type AuthSource

type AuthSource interface {
	// Init is called once before making any requests.
	// If the token source needs access to client to initialize itself, it should do so here.
	Init(context.Context, *Client) error

	// Header returns an authentication header. When no error is returned, the
	// key and value should never be empty.
	Header(ctx context.Context) (key, value string, err error)
}

AuthSource is used to obtain access tokens.

type AuthTokenStrategy added in v2.13.0

type AuthTokenStrategy interface {
	ApplyAuthHeader(authSource AuthSource, req *retryablehttp.Request) error
}

AuthTokenStrategy - Specifies a strategy that injects authorization headers from the AuthSource.

type AuthType

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        int64      `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

type AvailabilityValue string

AvailabilityValue represents an availability value within GitLab.

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

List of available availability values.

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

type Avatar

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

Avatar represents a GitLab avatar.

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

type AvatarRequestsService

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

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

type AvatarRequestsServiceInterface

type AvatarRequestsServiceInterface interface {
	// 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
	GetAvatar(opt *GetAvatarOptions, options ...RequestOptionFunc) (*Avatar, *Response, error)
}

type AwardEmoji

type AwardEmoji struct {
	ID            int64      `json:"id"`
	Name          string     `json:"name"`
	User          BasicUser  `json:"user"`
	CreatedAt     *time.Time `json:"created_at"`
	UpdatedAt     *time.Time `json:"updated_at"`
	AwardableID   int64      `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

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

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

func (*AwardEmojiService) CreateIssuesAwardEmojiOnNote

func (s *AwardEmojiService) CreateIssuesAwardEmojiOnNote(pid any, issueID, noteID int64, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

func (*AwardEmojiService) CreateMergeRequestAwardEmoji

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

func (*AwardEmojiService) CreateMergeRequestAwardEmojiOnNote

func (s *AwardEmojiService) CreateMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID int64, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

func (*AwardEmojiService) CreateSnippetAwardEmoji

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

func (*AwardEmojiService) CreateSnippetAwardEmojiOnNote

func (s *AwardEmojiService) CreateSnippetAwardEmojiOnNote(pid any, snippetIID, noteID int64, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

func (*AwardEmojiService) DeleteIssueAwardEmoji

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

func (*AwardEmojiService) DeleteIssuesAwardEmojiOnNote

func (s *AwardEmojiService) DeleteIssuesAwardEmojiOnNote(pid any, issueID, noteID, awardID int64, options ...RequestOptionFunc) (*Response, error)

func (*AwardEmojiService) DeleteMergeRequestAwardEmoji

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

func (*AwardEmojiService) DeleteMergeRequestAwardEmojiOnNote

func (s *AwardEmojiService) DeleteMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID, awardID int64, options ...RequestOptionFunc) (*Response, error)

func (*AwardEmojiService) DeleteSnippetAwardEmoji

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

func (*AwardEmojiService) DeleteSnippetAwardEmojiOnNote

func (s *AwardEmojiService) DeleteSnippetAwardEmojiOnNote(pid any, snippetIID, noteID, awardID int64, options ...RequestOptionFunc) (*Response, error)

func (*AwardEmojiService) GetIssueAwardEmoji

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

func (*AwardEmojiService) GetIssuesAwardEmojiOnNote

func (s *AwardEmojiService) GetIssuesAwardEmojiOnNote(pid any, issueID, noteID, awardID int64, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

func (*AwardEmojiService) GetMergeRequestAwardEmoji

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

func (*AwardEmojiService) GetMergeRequestAwardEmojiOnNote

func (s *AwardEmojiService) GetMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID, awardID int64, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

func (*AwardEmojiService) GetSnippetAwardEmoji

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

func (*AwardEmojiService) GetSnippetAwardEmojiOnNote

func (s *AwardEmojiService) GetSnippetAwardEmojiOnNote(pid any, snippetIID, noteID, awardID int64, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

func (*AwardEmojiService) ListIssueAwardEmoji

func (s *AwardEmojiService) ListIssueAwardEmoji(pid any, issueIID int64, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

func (*AwardEmojiService) ListIssuesAwardEmojiOnNote

func (s *AwardEmojiService) ListIssuesAwardEmojiOnNote(pid any, issueID, noteID int64, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

func (*AwardEmojiService) ListMergeRequestAwardEmoji

func (s *AwardEmojiService) ListMergeRequestAwardEmoji(pid any, mergeRequestIID int64, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

func (*AwardEmojiService) ListMergeRequestAwardEmojiOnNote

func (s *AwardEmojiService) ListMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID int64, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

func (*AwardEmojiService) ListSnippetAwardEmoji

func (s *AwardEmojiService) ListSnippetAwardEmoji(pid any, snippetID int64, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

func (*AwardEmojiService) ListSnippetAwardEmojiOnNote

func (s *AwardEmojiService) ListSnippetAwardEmojiOnNote(pid any, snippetIID, noteID int64, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error)

type AwardEmojiServiceInterface

type AwardEmojiServiceInterface interface {
	// 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
	ListMergeRequestAwardEmoji(pid any, mergeRequestIID int64, 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
	ListIssueAwardEmoji(pid any, issueIID int64, 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
	ListSnippetAwardEmoji(pid any, snippetID int64, opt *ListAwardEmojiOptions, 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
	GetMergeRequestAwardEmoji(pid any, mergeRequestIID, awardID int64, 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
	GetIssueAwardEmoji(pid any, issueIID, awardID int64, 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
	GetSnippetAwardEmoji(pid any, snippetID, awardID int64, 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
	CreateMergeRequestAwardEmoji(pid any, mergeRequestIID int64, 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
	CreateIssueAwardEmoji(pid any, issueIID int64, 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
	CreateSnippetAwardEmoji(pid any, snippetID int64, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error)

	// DeleteIssueAwardEmoji delete award emoji on an issue.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/emoji_reactions/#delete-an-emoji-reaction
	DeleteIssueAwardEmoji(pid any, issueIID, awardID int64, 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
	DeleteMergeRequestAwardEmoji(pid any, mergeRequestIID, awardID int64, 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
	DeleteSnippetAwardEmoji(pid any, snippetID, awardID int64, options ...RequestOptionFunc) (*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
	ListIssuesAwardEmojiOnNote(pid any, issueID, noteID int64, 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
	ListMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID int64, 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
	ListSnippetAwardEmojiOnNote(pid any, snippetIID, noteID int64, opt *ListAwardEmojiOptions, 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
	GetIssuesAwardEmojiOnNote(pid any, issueID, noteID, awardID int64, 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
	GetMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID, awardID int64, 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
	GetSnippetAwardEmojiOnNote(pid any, snippetIID, noteID, awardID int64, 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
	CreateIssuesAwardEmojiOnNote(pid any, issueID, noteID int64, 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
	CreateMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID int64, 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
	CreateSnippetAwardEmojiOnNote(pid any, snippetIID, noteID int64, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *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
	DeleteIssuesAwardEmojiOnNote(pid any, issueID, noteID, awardID int64, 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
	DeleteMergeRequestAwardEmojiOnNote(pid any, mergeRequestIID, noteID, awardID int64, 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
	DeleteSnippetAwardEmojiOnNote(pid any, snippetIID, noteID, awardID int64, options ...RequestOptionFunc) (*Response, error)
}

type BadgeKind

type BadgeKind string

BadgeKind represents a GitLab Badge Kind

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

all possible values Badge Kind

type BaseSystemEvent

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

type BasicMergeRequest struct {
	ID                          int64                  `json:"id"`
	IID                         int64                  `json:"iid"`
	TargetBranch                string                 `json:"target_branch"`
	SourceBranch                string                 `json:"source_branch"`
	ProjectID                   int64                  `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                     int64                  `json:"upvotes"`
	Downvotes                   int64                  `json:"downvotes"`
	Author                      *BasicUser             `json:"author"`
	Assignee                    *BasicUser             `json:"assignee"`
	Assignees                   []*BasicUser           `json:"assignees"`
	Reviewers                   []*BasicUser           `json:"reviewers"`
	SourceProjectID             int64                  `json:"source_project_id"`
	TargetProjectID             int64                  `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              int64                  `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

func (m BasicMergeRequest) String() string

type BasicProject

type BasicProject struct {
	ID                int64      `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

type BasicUser struct {
	ID       int64  `json:"id"`
	Username string `json:"username"`
	Name     string `json:"name"`

	// State represents the administrative status of the user account.
	// Common values: "active", "blocked", "deactivated", "banned",
	// "ldap_blocked", "blocked_pending_approval".
	State string `json:"state"`

	CreatedAt *time.Time `json:"created_at"`
	AvatarURL string     `json:"avatar_url"`
	WebURL    string     `json:"web_url"`
}

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

type Batch

type Batch struct {
	Status       int64     `json:"status"`
	BatchNumber  int64     `json:"batch_number"`
	ObjectsCount int64     `json:"objects_count"`
	Error        string    `json:"error"`
	UpdatedAt    time.Time `json:"updated_at"`
}

type BillableGroupMember

type BillableGroupMember struct {
	ID             int64      `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

type BillableUserMembership struct {
	ID               int64               `json:"id"`
	SourceID         int64               `json:"source_id"`
	SourceFullName   string              `json:"source_full_name"`
	SourceMembersURL string              `json:"source_members_url"`
	CreatedAt        *time.Time          `json:"created_at"`
	ExpiresAt        *ISOTime            `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

type BitbucketCloudImport struct {
	ID                    int64  `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

func (s BitbucketCloudImport) String() string

type BitbucketServerImport

type BitbucketServerImport struct {
	ID       int64  `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

func (s BitbucketServerImport) String() string

type Blob

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 int64  `json:"startline"`
	ProjectID int64  `json:"project_id"`
}

Blob represents a single blob.

type BlockingMergeRequest

type BlockingMergeRequest struct {
	ID                          int64                  `json:"id"`
	Iid                         int64                  `json:"iid"`
	TargetBranch                string                 `json:"target_branch"`
	SourceBranch                string                 `json:"source_branch"`
	ProjectID                   int64                  `json:"project_id"`
	Title                       string                 `json:"title"`
	State                       string                 `json:"state"`
	CreatedAt                   time.Time              `json:"created_at"`
	UpdatedAt                   time.Time              `json:"updated_at"`
	Upvotes                     int64                  `json:"upvotes"`
	Downvotes                   int64                  `json:"downvotes"`
	Author                      *BasicUser             `json:"author"`
	Assignee                    *BasicUser             `json:"assignee"`
	Assignees                   []*BasicUser           `json:"assignees"`
	Reviewers                   []*BasicUser           `json:"reviewers"`
	SourceProjectID             int64                  `json:"source_project_id"`
	TargetProjectID             int64                  `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              int64                  `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 *int64 `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

type BoardList struct {
	ID             int64              `json:"id"`
	Assignee       *BoardListAssignee `json:"assignee"`
	Iteration      *ProjectIteration  `json:"iteration"`
	Label          *Label             `json:"label"`
	MaxIssueCount  int64              `json:"max_issue_count"`
	MaxIssueWeight int64              `json:"max_issue_weight"`
	Milestone      *Milestone         `json:"milestone"`
	Position       int64              `json:"position"`
}

BoardList represents a GitLab board list.

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

func (BoardList) String

func (b BoardList) String() string

type BoardListAssignee

type BoardListAssignee struct {
	ID       int64  `json:"id"`
	Name     string `json:"name"`
	Username string `json:"username"`
}

BoardListAssignee represents a GitLab board list assignee.

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

func (BoardListAssignee) String

func (a BoardListAssignee) String() string

type BoolValue

type BoolValue bool

BoolValue is a boolean value with advanced json unmarshaling features.

func (*BoolValue) UnmarshalJSON

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

type BranchAccessDescription struct {
	ID                     int64            `json:"id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	DeployKeyID            int64            `json:"deploy_key_id"`
	UserID                 int64            `json:"user_id"`
	GroupID                int64            `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

type BranchPermissionOptions struct {
	ID          *int64            `url:"id,omitempty" json:"id,omitempty"`
	UserID      *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID     *int64            `url:"group_id,omitempty" json:"group_id,omitempty"`
	DeployKeyID *int64            `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

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"`
	CodeOwnerApprovalRequired bool                `json:"code_owner_approval_required,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

type BranchProtectionDefaultsOptions struct {
	AllowedToPush           *[]int64 `url:"allowed_to_push,omitempty" json:"allowed_to_push,omitempty"`
	AllowForcePush          *bool    `url:"allow_force_push,omitempty" json:"allow_force_push,omitempty"`
	AllowedToMerge          *[]int64 `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)

func (*BranchesService) DeleteBranch

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

func (*BranchesService) DeleteMergedBranches

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

func (*BranchesService) GetBranch

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

func (*BranchesService) ListBranches

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

type BranchesServiceInterface

type BranchesServiceInterface interface {
	// 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
	ListBranches(pid any, opts *ListBranchesOptions, 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
	GetBranch(pid any, branch string, 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
	CreateBranch(pid any, opt *CreateBranchOptions, options ...RequestOptionFunc) (*Branch, *Response, error)

	// DeleteBranch deletes an existing branch.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/branches/#delete-repository-branch
	DeleteBranch(pid any, branch string, 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
	DeleteMergedBranches(pid any, options ...RequestOptionFunc) (*Response, error)
}

type Bridge

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                 int64         `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

type BroadcastMessage struct {
	Message            string             `json:"message"`
	StartsAt           *time.Time         `json:"starts_at"`
	EndsAt             *time.Time         `json:"ends_at"`
	Font               string             `json:"font"`
	ID                 int64              `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

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

func (*BroadcastMessagesService) DeleteBroadcastMessage

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

func (*BroadcastMessagesService) GetBroadcastMessage

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

func (*BroadcastMessagesService) ListBroadcastMessages

func (*BroadcastMessagesService) UpdateBroadcastMessage

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

type BroadcastMessagesServiceInterface

type BroadcastMessagesServiceInterface interface {
	// ListBroadcastMessages gets a list of all broadcasted messages.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/broadcast_messages/#get-all-broadcast-messages
	ListBroadcastMessages(opt *ListBroadcastMessagesOptions, 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
	GetBroadcastMessage(broadcast int64, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error)

	// CreateBroadcastMessage creates a message to broadcast.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/broadcast_messages/#create-a-broadcast-message
	CreateBroadcastMessage(opt *CreateBroadcastMessageOptions, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error)

	// UpdateBroadcastMessage updates a broadcasted message.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/broadcast_messages/#update-a-broadcast-message
	UpdateBroadcastMessage(broadcast int64, opt *UpdateBroadcastMessageOptions, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error)

	// DeleteBroadcastMessage deletes a broadcasted message.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/broadcast_messages/#delete-a-broadcast-message
	DeleteBroadcastMessage(broadcast int64, options ...RequestOptionFunc) (*Response, error)
}

type BuildEvent

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           int64            `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         int64            `json:"project_id"`
	ProjectName       string           `json:"project_name"`
	User              *EventUser       `json:"user"`
	Commit            BuildEventCommit `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 BuildEventCommit

type BuildEventCommit struct {
	ID          int64  `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    int64  `json:"duration"`
	StartedAt   string `json:"started_at"`
	FinishedAt  string `json:"finished_at"`
}

type BuildStateValue

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

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

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

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

type BulkImportStartMigrationResponse struct {
	ID          int64     `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

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

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

type BulkImportsServiceInterface

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

type BurndownChartEvent

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

BurndownChartEvent represents 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

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

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

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

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

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

func (*CIYMLTemplatesService) ListAllTemplates

type CIYMLTemplatesServiceInterface

type CIYMLTemplatesServiceInterface interface {
	// ListAllTemplates get all GitLab CI YML templates.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/templates/gitlab_ci_ymls/#list-gitlab-ci-yaml-templates
	ListAllTemplates(opt *ListCIYMLTemplatesOptions, options ...RequestOptionFunc) ([]*CIYMLTemplateListItem, *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
	GetTemplate(key string, options ...RequestOptionFunc) (*CIYMLTemplate, *Response, error)
}

type CancelGitHubProjectImportOptions

type CancelGitHubProjectImportOptions struct {
	ProjectID *int64 `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

type CancelledGitHubImport struct {
	ID                    int64  `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

func (s CancelledGitHubImport) String() string

type ChangeAppearanceOptions

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

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"`
	RequireReauthenticationToApprove          *bool `url:"require_reauthentication_to_approve,omitempty" json:"require_reauthentication_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 *int64 `url:"approvals_before_merge,omitempty" json:"approvals_before_merge,omitempty"`
	// Deprecated: use RequireReauthenticationToApprove instead
	RequirePasswordToApprove *bool `url:"require_password_to_approve,omitempty" json:"require_password_to_approve,omitempty"`
}

ChangeApprovalConfigurationOptions represents the available ApprovalConfiguration() options.

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

type ChangeMergeRequestApprovalConfigurationOptions deprecated

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

ChangeMergeRequestApprovalConfigurationOptions represents the available ChangeMergeRequestApprovalConfiguration() options.

Deprecated: in GitLab 16.0

type ChangePlanLimitOptions

type ChangePlanLimitOptions struct {
	PlanName                   *string `url:"plan_name,omitempty" json:"plan_name,omitempty"`
	ConanMaxFileSize           *int64  `url:"conan_max_file_size,omitempty" json:"conan_max_file_size,omitempty"`
	GenericPackagesMaxFileSize *int64  `url:"generic_packages_max_file_size,omitempty" json:"generic_packages_max_file_size,omitempty"`
	HelmMaxFileSize            *int64  `url:"helm_max_file_size,omitempty" json:"helm_max_file_size,omitempty"`
	MavenMaxFileSize           *int64  `url:"maven_max_file_size,omitempty" json:"maven_max_file_size,omitempty"`
	NPMMaxFileSize             *int64  `url:"npm_max_file_size,omitempty" json:"npm_max_file_size,omitempty"`
	NugetMaxFileSize           *int64  `url:"nuget_max_file_size,omitempty" json:"nuget_max_file_size,omitempty"`
	PyPiMaxFileSize            *int64  `url:"pypi_max_file_size,omitempty" json:"pypi_max_file_size,omitempty"`
	TerraformModuleMaxFileSize *int64  `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

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

func (c ChangelogData) String() string

type CherryPickCommitOptions

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

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
	AdminCompliancePolicySettings    AdminCompliancePolicySettingsServiceInterface
	AlertManagement                  AlertManagementServiceInterface
	Appearance                       AppearanceServiceInterface
	Applications                     ApplicationsServiceInterface
	ApplicationStatistics            ApplicationStatisticsServiceInterface
	Attestations                     AttestationsServiceInterface
	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
	GroupCredentials                 GroupCredentialsServiceInterface
	GroupEpicBoards                  GroupEpicBoardsServiceInterface
	GroupImportExport                GroupImportExportServiceInterface
	Integrations                     IntegrationsServiceInterface
	GroupIssueBoards                 GroupIssueBoardsServiceInterface
	GroupIterations                  GroupIterationsServiceInterface
	GroupLabels                      GroupLabelsServiceInterface
	GroupMarkdownUploads             GroupMarkdownUploadsServiceInterface
	GroupMembers                     GroupMembersServiceInterface
	GroupMilestones                  GroupMilestonesServiceInterface
	GroupProtectedEnvironments       GroupProtectedEnvironmentsServiceInterface
	GroupProtectedBranches           GroupProtectedBranchesServiceInterface
	GroupRelationsExport             GroupRelationsExportServiceInterface
	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
	MergeRequestContextCommits       MergeRequestContextCommitsServiceInterface
	MergeRequests                    MergeRequestsServiceInterface
	MergeTrains                      MergeTrainsServiceInterface
	Metadata                         MetadataServiceInterface
	Milestones                       MilestonesServiceInterface
	ModelRegistry                    ModelRegistryServiceInterface
	Namespaces                       NamespacesServiceInterface
	Notes                            NotesServiceInterface
	NotificationSettings             NotificationSettingsServiceInterface
	Packages                         PackagesServiceInterface
	Pages                            PagesServiceInterface
	PagesDomains                     PagesDomainsServiceInterface
	PersonalAccessTokens             PersonalAccessTokensServiceInterface
	PipelineSchedules                PipelineSchedulesServiceInterface
	PipelineTriggers                 PipelineTriggersServiceInterface
	Pipelines                        PipelinesServiceInterface
	PlanLimits                       PlanLimitsServiceInterface
	ProjectAccessTokens              ProjectAccessTokensServiceInterface
	ProjectAliases                   ProjectAliasesServiceInterface
	ProjectBadges                    ProjectBadgesServiceInterface
	ProjectCluster                   ProjectClustersServiceInterface
	ProjectFeatureFlags              ProjectFeatureFlagServiceInterface
	ProjectImportExport              ProjectImportExportServiceInterface
	ProjectIterations                ProjectIterationsServiceInterface
	ProjectMarkdownUploads           ProjectMarkdownUploadsServiceInterface
	ProjectMembers                   ProjectMembersServiceInterface
	ProjectMirrors                   ProjectMirrorServiceInterface
	ProjectRepositoryStorageMove     ProjectRepositoryStorageMoveServiceInterface
	ProjectSecuritySettings          ProjectSecuritySettingsServiceInterface
	ProjectSnippets                  ProjectSnippetsServiceInterface
	ProjectStatistics                ProjectStatisticsServiceInterface
	ProjectTemplates                 ProjectTemplatesServiceInterface
	ProjectVariables                 ProjectVariablesServiceInterface
	ProjectVulnerabilities           ProjectVulnerabilitiesServiceInterface
	Projects                         ProjectsServiceInterface
	ProtectedBranches                ProtectedBranchesServiceInterface
	ProtectedEnvironments            ProtectedEnvironmentsServiceInterface
	ProtectedPackages                ProtectedPackagesServiceInterface
	ProtectedTags                    ProtectedTagsServiceInterface
	ReleaseLinks                     ReleaseLinksServiceInterface
	Releases                         ReleasesServiceInterface
	Repositories                     RepositoriesServiceInterface
	RepositoryFiles                  RepositoryFilesServiceInterface
	RepositorySubmodules             RepositorySubmodulesServiceInterface
	ResourceGroup                    ResourceGroupServiceInterface
	ResourceIterationEvents          ResourceIterationEventsServiceInterface
	ResourceLabelEvents              ResourceLabelEventsServiceInterface
	ResourceMilestoneEvents          ResourceMilestoneEventsServiceInterface
	ResourceStateEvents              ResourceStateEventsServiceInterface
	ResourceWeightEvents             ResourceWeightEventsServiceInterface
	RunnerControllers                RunnerControllersServiceInterface
	RunnerControllerScopes           RunnerControllerScopesServiceInterface
	RunnerControllerTokens           RunnerControllerTokensServiceInterface
	Runners                          RunnersServiceInterface
	Search                           SearchServiceInterface
	SecureFiles                      SecureFilesServiceInterface
	Services                         ServicesServiceInterface
	Settings                         SettingsServiceInterface
	Sidekiq                          SidekiqServiceInterface
	SnippetRepositoryStorageMove     SnippetRepositoryStorageMoveServiceInterface
	Snippets                         SnippetsServiceInterface
	SystemHooks                      SystemHooksServiceInterface
	Tags                             TagsServiceInterface
	TerraformStates                  TerraformStatesServiceInterface
	Todos                            TodosServiceInterface
	Topics                           TopicsServiceInterface
	UsageData                        UsageDataServiceInterface
	Users                            UsersServiceInterface
	Validate                         ValidateServiceInterface
	Version                          VersionServiceInterface
	Wikis                            WikisServiceInterface
	WorkItems                        WorkItemsServiceInterface
	// contains filtered or unexported fields
}

A Client manages communication with the GitLab API.

func NewAuthSourceClient

func NewAuthSourceClient(as AuthSource, options ...ClientOptionFunc) (*Client, error)

NewAuthSourceClient returns a new GitLab API client that uses the AuthSource for authentication.

func NewBasicAuthClient deprecated

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

NewBasicAuthClient returns a new GitLab API client using the OAuth 2.0 Resource Owner Password Credentials flow. The provided username and password are used to obtain an OAuth access token from GitLab's token endpoint on the first API request. The token is then cached, reused for subsequent requests, and refreshed when expired.

The Resource Owner Password Credentials flow is only suitable for trusted, first-party applications and does not work for users who have two-factor authentication enabled.

Note: This method uses OAuth tokens with Bearer authentication, not HTTP Basic Auth.

Deprecated: GitLab recommends against using this authentication method.

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

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 deprecated

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

NewOAuthClient returns a new GitLab API client using a static OAuth bearer token for authentication.

Deprecated: use NewAuthSourceClient with a StaticTokenSource instead. For example:

ts := oauth2.StaticTokenSource(
    &oauth2.Token{AccessToken: "YOUR STATIC TOKEN"},
)
c, err := gitlab.NewAuthSourceClient(gitlab.OAuthTokenSource{ts})

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. If v is a *bodyReader, the response body is preserved without copying and the caller is responsible for closing it.

func (*Client) HTTPClient

func (c *Client) HTTPClient() *http.Client

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) NewRequestToURL

func (c *Client) NewRequestToURL(method string, u *url.URL, opt any, options []RequestOptionFunc) (*retryablehttp.Request, error)

func (*Client) UploadRequest

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

type ClientOptionFunc func(*Client) error

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

func WithAuthSourceStrategy added in v2.13.0

func WithAuthSourceStrategy(strategy AuthTokenStrategy) ClientOptionFunc

WithAuthSourceStrategy set strategy for authSource inject auth header

func WithBaseURL

func WithBaseURL(urlStr string) ClientOptionFunc

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

func WithCookieJar

func WithCookieJar(jar http.CookieJar) ClientOptionFunc

WithCookieJar can be used to configure a cookie jar.

func WithCustomBackoff

func WithCustomBackoff(backoff retryablehttp.Backoff) ClientOptionFunc

WithCustomBackoff can be used to configure a custom backoff policy.

func WithCustomLeveledLogger

func WithCustomLeveledLogger(leveledLogger retryablehttp.LeveledLogger) ClientOptionFunc

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

func WithCustomLimiter

func WithCustomLimiter(limiter RateLimiter) ClientOptionFunc

WithCustomLimiter injects a custom rate limiter to the client.

func WithCustomLogger

func WithCustomLogger(logger retryablehttp.Logger) ClientOptionFunc

WithCustomLogger can be used to configure a custom retryablehttp logger.

func WithCustomRetry

func WithCustomRetry(checkRetry retryablehttp.CheckRetry) ClientOptionFunc

WithCustomRetry can be used to configure a custom retry policy.

func WithCustomRetryMax

func WithCustomRetryMax(retryMax int) ClientOptionFunc

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

func WithCustomRetryWaitMinMax

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

func WithErrorHandler(handler retryablehttp.ErrorHandler) ClientOptionFunc

WithErrorHandler can be used to configure a custom error handler.

func WithHTTPClient

func WithHTTPClient(httpClient *http.Client) ClientOptionFunc

WithHTTPClient can be used to configure a custom HTTP client.

func WithInterceptor

func WithInterceptor(i Interceptor) ClientOptionFunc

WithInterceptor registers an Interceptor in the client's http request call pipeline. It returns a ClientOptionFunc that adds the interceptor to the client.

func WithRequestLogHook

func WithRequestLogHook(hook retryablehttp.RequestLogHook) ClientOptionFunc

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

func WithRequestOptions

func WithRequestOptions(options ...RequestOptionFunc) ClientOptionFunc

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

func WithResponseLogHook

func WithResponseLogHook(hook retryablehttp.ResponseLogHook) ClientOptionFunc

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

func WithURLWarningLogger

func WithURLWarningLogger(logger *slog.Logger) ClientOptionFunc

WithURLWarningLogger sets a custom logger for URL validation warnings. By default, warnings are logged using slog.Default(). Pass slog.New(slog.DiscardHandler) to disable warnings.

func WithUserAgent

func WithUserAgent(userAgent string) ClientOptionFunc

WithUserAgent can be used to configure a custom user agent.

func WithoutRetries

func WithoutRetries() ClientOptionFunc

WithoutRetries disables the default retry logic.

type ClusterAgentsService

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

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

func (*ClusterAgentsService) DeleteAgent

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

func (*ClusterAgentsService) GetAgent

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

func (*ClusterAgentsService) GetAgentToken

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

func (*ClusterAgentsService) ListAgentTokens

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

func (*ClusterAgentsService) ListAgents

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

func (*ClusterAgentsService) RegisterAgent

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

func (*ClusterAgentsService) RevokeAgentToken

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

type ClusterAgentsServiceInterface

type ClusterAgentsServiceInterface interface {
	// 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
	// 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
	ListAgents(pid any, opt *ListAgentsOptions, 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
	GetAgent(pid any, id int64, 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
	RegisterAgent(pid any, opt *RegisterAgentOptions, options ...RequestOptionFunc) (*Agent, *Response, error)

	// DeleteAgent deletes an existing agent registration.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/cluster_agents/#delete-a-registered-agent
	DeleteAgent(pid any, id int64, options ...RequestOptionFunc) (*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
	ListAgentTokens(pid any, aid int64, opt *ListAgentTokensOptions, 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
	GetAgentToken(pid any, aid int64, id int64, 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
	CreateAgentToken(pid any, aid int64, opt *CreateAgentTokenOptions, options ...RequestOptionFunc) (*AgentToken, *Response, error)

	// RevokeAgentToken revokes an agent token.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/cluster_agents/#revoke-an-agent-token
	RevokeAgentToken(pid any, aid int64, id int64, options ...RequestOptionFunc) (*Response, error)
}

type CommentEventAction

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        int64             `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

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     int64  `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

type CommitCommentEvent struct {
	ObjectKind       string                             `json:"object_kind"`
	EventType        string                             `json:"event_type"`
	User             *User                              `json:"user"`
	ProjectID        int64                              `json:"project_id"`
	Project          CommitCommentEventProject          `json:"project"`
	Repository       *Repository                        `json:"repository"`
	ObjectAttributes CommitCommentEventObjectAttributes `json:"object_attributes"`
	Commit           *CommitCommentEventCommit          `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 CommitCommentEventCommit

type CommitCommentEventCommit struct {
	ID        string            `json:"id"`
	Title     string            `json:"title"`
	Message   string            `json:"message"`
	Timestamp *time.Time        `json:"timestamp"`
	URL       string            `json:"url"`
	Author    EventCommitAuthor `json:"author"`
}

type CommitCommentEventObjectAttributes

type CommitCommentEventObjectAttributes struct {
	ID           int64              `json:"id"`
	Note         string             `json:"note"`
	NoteableType string             `json:"noteable_type"`
	AuthorID     int64              `json:"author_id"`
	CreatedAt    string             `json:"created_at"`
	UpdatedAt    string             `json:"updated_at"`
	ProjectID    int64              `json:"project_id"`
	Attachment   string             `json:"attachment"`
	LineCode     string             `json:"line_code"`
	CommitID     string             `json:"commit_id"`
	NoteableID   int64              `json:"noteable_id"`
	System       bool               `json:"system"`
	StDiff       *Diff              `json:"st_diff"`
	Description  string             `json:"description"`
	Action       CommentEventAction `json:"action"`
	URL          string             `json:"url"`
}

type CommitCommentEventProject

type CommitCommentEventProject struct {
	ID                int64           `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"`
}

type CommitRef

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

type CommitStats struct {
	Additions int64 `json:"additions"`
	Deletions int64 `json:"deletions"`
	Total     int64 `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           int64      `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   int64      `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

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

func (*CommitsService) CreateCommit

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

func (*CommitsService) GetCommit

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

func (*CommitsService) GetCommitComments

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

func (*CommitsService) GetCommitDiff

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

func (*CommitsService) GetCommitRefs

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

func (*CommitsService) GetCommitStatuses

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

func (*CommitsService) GetGPGSignature

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

func (*CommitsService) ListCommits

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

func (*CommitsService) ListMergeRequestsByCommit

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

func (*CommitsService) PostCommitComment

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

func (*CommitsService) RevertCommit

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

func (*CommitsService) SetCommitStatus

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

type CommitsServiceInterface

type CommitsServiceInterface interface {
	// ListCommits gets a list of repository commits in a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/commits/#list-repository-commits
	ListCommits(pid any, opt *ListCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *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
	GetCommitRefs(pid any, sha string, opt *GetCommitRefsOptions, options ...RequestOptionFunc) ([]*CommitRef, *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
	GetCommit(pid any, sha string, opt *GetCommitOptions, 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
	CreateCommit(pid any, opt *CreateCommitOptions, options ...RequestOptionFunc) (*Commit, *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
	GetCommitDiff(pid any, sha string, opt *GetCommitDiffOptions, options ...RequestOptionFunc) ([]*Diff, *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
	GetCommitComments(pid any, sha string, opt *GetCommitCommentsOptions, options ...RequestOptionFunc) ([]*CommitComment, *Response, error)

	// PostCommitComment adds a comment to a commit. Optionally you can post
	// comments on a specific line of a commit. Therefore both path, line_new and
	// line_old are required.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/commits/#post-comment-to-commit
	PostCommitComment(pid any, sha string, opt *PostCommitCommentOptions, options ...RequestOptionFunc) (*CommitComment, *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
	GetCommitStatuses(pid any, sha string, opt *GetCommitStatusesOptions, 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
	SetCommitStatus(pid any, sha string, opt *SetCommitStatusOptions, options ...RequestOptionFunc) (*CommitStatus, *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
	ListMergeRequestsByCommit(pid any, sha string, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

	// CherryPickCommit cherry picks a commit to a given branch.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/commits/#cherry-pick-a-commit
	CherryPickCommit(pid any, sha string, opt *CherryPickCommitOptions, 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
	RevertCommit(pid any, sha string, opt *RevertCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error)

	// GetGPGSignature gets a GPG signature of a commit.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/commits/#get-signature-of-a-commit
	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

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

type ConfigProject struct {
	ID                int64      `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

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

type ContainerExpirationPolicy struct {
	Cadence         string     `json:"cadence"`
	KeepN           int64      `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

type ContainerExpirationPolicyAttributes struct {
	Cadence         *string `url:"cadence,omitempty" json:"cadence,omitempty"`
	KeepN           *int64  `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

type ContainerRegistryProtectionRule struct {
	ID                          int64                     `json:"id"`
	ProjectID                   int64                     `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

type ContainerRegistryProtectionRulesService

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

func (*ContainerRegistryProtectionRulesService) DeleteContainerRegistryProtectionRule

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

func (*ContainerRegistryProtectionRulesService) ListContainerRegistryProtectionRules

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

func (*ContainerRegistryProtectionRulesService) UpdateContainerRegistryProtectionRule

type ContainerRegistryProtectionRulesServiceInterface

type ContainerRegistryProtectionRulesServiceInterface interface {
	// 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
	// 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
	ListContainerRegistryProtectionRules(pid any, options ...RequestOptionFunc) ([]*ContainerRegistryProtectionRule, *Response, error)

	// 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
	CreateContainerRegistryProtectionRule(pid any, opt *CreateContainerRegistryProtectionRuleOptions, options ...RequestOptionFunc) (*ContainerRegistryProtectionRule, *Response, error)

	// 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
	UpdateContainerRegistryProtectionRule(pid any, ruleID int64, opt *UpdateContainerRegistryProtectionRuleOptions, options ...RequestOptionFunc) (*ContainerRegistryProtectionRule, *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
	DeleteContainerRegistryProtectionRule(pid any, ruleID int64, options ...RequestOptionFunc) (*Response, error)
}

type ContainerRegistryService

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

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

func (*ContainerRegistryService) DeleteRegistryRepositoryTag

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

func (*ContainerRegistryService) DeleteRegistryRepositoryTags

func (s *ContainerRegistryService) DeleteRegistryRepositoryTags(pid any, repository int64, opt *DeleteRegistryRepositoryTagsOptions, options ...RequestOptionFunc) (*Response, error)

func (*ContainerRegistryService) GetRegistryRepositoryTagDetail

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

func (*ContainerRegistryService) GetSingleRegistryRepository

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

func (*ContainerRegistryService) ListGroupRegistryRepositories

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

func (*ContainerRegistryService) ListProjectRegistryRepositories

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

func (*ContainerRegistryService) ListRegistryRepositoryTags

func (s *ContainerRegistryService) ListRegistryRepositoryTags(pid any, repository int64, opt *ListRegistryRepositoryTagsOptions, options ...RequestOptionFunc) ([]*RegistryRepositoryTag, *Response, error)

type ContainerRegistryServiceInterface

type ContainerRegistryServiceInterface interface {
	// ListProjectRegistryRepositories gets a list of registry repositories in a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/container_registry/#within-a-project
	ListProjectRegistryRepositories(pid any, opt *ListProjectRegistryRepositoriesOptions, 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
	ListGroupRegistryRepositories(gid any, opt *ListGroupRegistryRepositoriesOptions, 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
	GetSingleRegistryRepository(pid any, opt *GetSingleRegistryRepositoryOptions, options ...RequestOptionFunc) (*RegistryRepository, *Response, error)

	// DeleteRegistryRepository deletes a repository in a registry.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/container_registry/#delete-registry-repository
	DeleteRegistryRepository(pid any, repository int64, options ...RequestOptionFunc) (*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
	ListRegistryRepositoryTags(pid any, repository int64, opt *ListRegistryRepositoryTagsOptions, 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
	GetRegistryRepositoryTagDetail(pid any, repository int64, tagName string, options ...RequestOptionFunc) (*RegistryRepositoryTag, *Response, error)

	// DeleteRegistryRepositoryTag deletes a registry repository tag.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/container_registry/#delete-a-registry-repository-tag
	DeleteRegistryRepositoryTag(pid any, repository int64, tagName string, 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
	DeleteRegistryRepositoryTags(pid any, repository int64, opt *DeleteRegistryRepositoryTagsOptions, options ...RequestOptionFunc) (*Response, error)
}

type ContainerRegistryStatus

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

type ContributionEvent struct {
	ID             int64                     `json:"id"`
	Title          string                    `json:"title"`
	ProjectID      int64                     `json:"project_id"`
	ActionName     string                    `json:"action_name"`
	TargetID       int64                     `json:"target_id"`
	TargetIID      int64                     `json:"target_iid"`
	TargetType     string                    `json:"target_type"`
	AuthorID       int64                     `json:"author_id"`
	TargetTitle    string                    `json:"target_title"`
	CreatedAt      *time.Time                `json:"created_at"`
	PushData       ContributionEventPushData `json:"push_data"`
	Note           *Note                     `json:"note"`
	Author         BasicUser                 `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 ContributionEventPushData

type ContributionEventPushData struct {
	CommitCount int64  `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"`
}

ContributionEventPushData represents a user's contribution push data.

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

type Contributor

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

Contributor represents a GitLab contributor.

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

func (Contributor) String

func (c Contributor) String() string

type CreateAgentTokenOptions

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

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

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

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

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

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

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

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

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: GitLab API docs: https://docs.gitlab.com/api/draft_notes/#create-a-draft-note

type CreateEnvironmentOptions

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      *int64  `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

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

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

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         *int64        `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

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

CreateExternalStatusCheckOptions represents the available CreateExternalStatusCheck() options. Deprecated: to be removed in 1.0; use CreateProjectExternalStatusCheckOptions instead

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

type CreateFeatureFlagUserListOptions

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

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

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                 *int64    `url:"files_max_capacity,omitempty" json:"files_max_capacity,omitempty"`
	ReposMaxCapacity                 *int64    `url:"repos_max_capacity,omitempty" json:"repos_max_capacity,omitempty"`
	VerificationMaxCapacity          *int64    `url:"verification_max_capacity,omitempty" json:"verification_max_capacity,omitempty"`
	ContainerRepositoriesMaxCapacity *int64    `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        *[]int64  `url:"selective_sync_namespace_ids,omitempty" json:"selective_sync_namespace_ids,omitempty"`
	MinimumReverificationInterval    *int64    `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

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                 *int64    `url:"files_max_capacity,omitempty" json:"files_max_capacity,omitempty"`
	ReposMaxCapacity                 *int64    `url:"repos_max_capacity,omitempty" json:"repos_max_capacity,omitempty"`
	VerificationMaxCapacity          *int64    `url:"verification_max_capacity,omitempty" json:"verification_max_capacity,omitempty"`
	ContainerRepositoriesMaxCapacity *int64    `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        *[]int64  `url:"selective_sync_namespace_ids,omitempty" json:"selective_sync_namespace_ids,omitempty"`
	MinimumReverificationInterval    *int64    `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-geo-site

type CreateGroupAccessTokenOptions

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

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

type CreateGroupIssueBoardListOptions struct {
	LabelID *int64 `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

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

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    Nullable[int64] `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

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            *int64                                  `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                        *int64                                  `url:"parent_id,omitempty" json:"parent_id,omitempty"`
	SharedRunnersMinutesLimit       *int64                                  `url:"shared_runners_minutes_limit,omitempty" json:"shared_runners_minutes_limit,omitempty"`
	ExtraSharedRunnersMinutesLimit  *int64                                  `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 *int64 `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`

	EnabledGitAccessProtocol  *EnabledGitAccessProtocolValue `url:"enabled_git_access_protocol,omitempty" json:"enabled_git_access_protocol,omitempty"`
	OrganizationID            *int64                         `url:"organization_id,omitempty" json:"organization_id,omitempty"`
	DuoAvailability           *DuoAvailabilityValue          `url:"duo_availability,omitempty" json:"duo_availability,omitempty"`
	ExperimentFeaturesEnabled *bool                          `url:"experiment_features_enabled,omitempty" json:"experiment_features_enabled,omitempty"`
}

CreateGroupOptions represents the available CreateGroup() options.

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

type CreateGroupSSHCertificateOptions

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

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

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

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

type CreateInstanceVariableOptions

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

type CreateIssueBoardListOptions struct {
	LabelID     *int64 `url:"label_id,omitempty" json:"label_id,omitempty"`
	AssigneeID  *int64 `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	MilestoneID *int64 `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	IterationID *int64 `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

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

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

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          *int64  `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"`
	// AssigneeID is a CE-only attribute. For EE, use AssigneeIDs instead.
	AssigneeID *int64 `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	// AssigneeIDs is a EE-only attribute. For CE, use AssigneeID instead.
	AssigneeIDs                        *[]int64      `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
	MilestoneID                        *int64        `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                             *int64        `url:"epic_id,omitempty" json:"epic_id,omitempty"`
	MergeRequestToResolveDiscussionsOf *int64        `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                             *int64        `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    Nullable[int64] `url:"priority,omitempty" json:"priority,omitempty"`
	Archived    *bool           `url:"archived,omitempty" json:"archived,omitempty"`
}

CreateLabelOptions represents the available CreateLabel() options.

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

type CreateMemberRoleOptions

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

type CreateMergeRequestApprovalRuleOptions struct {
	Name                  *string  `url:"name,omitempty" json:"name,omitempty"`
	ApprovalsRequired     *int64   `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
	ApprovalProjectRuleID *int64   `url:"approval_project_rule_id,omitempty" json:"approval_project_rule_id,omitempty"`
	UserIDs               *[]int64 `url:"user_ids,omitempty" json:"user_ids,omitempty"`
	GroupIDs              *[]int64 `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 CreateMergeRequestContextCommitsOptions

type CreateMergeRequestContextCommitsOptions struct {
	Commits *[]string `url:"commits,omitempty" json:"commits,omitempty"`
}

CreateMergeRequestContextCommitsOptions represents the available CreateMergeRequestContextCommits() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_context_commits/#create-mr-context-commits

type CreateMergeRequestDependencyOptions

type CreateMergeRequestDependencyOptions struct {
	BlockingMergeRequestID *int64 `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

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         *int64        `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	AssigneeIDs        *[]int64      `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
	ReviewerIDs        *[]int64      `url:"reviewer_ids,omitempty" json:"reviewer_ids,omitempty"`
	TargetProjectID    *int64        `url:"target_project_id,omitempty" json:"target_project_id,omitempty"`
	MilestoneID        *int64        `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 *int64 `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 CreatePackageProtectionRulesOptions

type CreatePackageProtectionRulesOptions struct {
	PackageNamePattern          *string                             `url:"package_name_pattern" json:"package_name_pattern"`
	PackageType                 *string                             `url:"package_type" json:"package_type"`
	MinimumAccessLevelForDelete Nullable[ProtectionRuleAccessLevel] `url:"minimum_access_level_for_delete,omitempty" json:"minimum_access_level_for_delete,omitempty"`
	MinimumAccessLevelForPush   Nullable[ProtectionRuleAccessLevel] `url:"minimum_access_level_for_push,omitempty" json:"minimum_access_level_for_push,omitempty"`
}

CreatePackageProtectionRulesOptions represents the available CreatePackageProtectionRules() options.

GitLab API docs: https://docs.gitlab.com/api/project_packages_protection_rules/#create-a-package-protection-rule

type CreatePagesDomainOptions

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

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

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

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

	// Inputs contains pipeline input parameters.
	// See PipelineInputsOption for supported types and usage.
	Inputs PipelineInputsOption `url:"inputs,omitempty" json:"inputs,omitempty"`
}

CreatePipelineOptions represents the available CreatePipeline() options.

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

type CreatePipelineScheduleOptions

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

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

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 CreateProjectAliasOptions

type CreateProjectAliasOptions struct {
	Name      *string `json:"name" url:"name,omitempty"`
	ProjectID int64   `json:"project_id" url:"project_id,omitempty"`
}

CreateProjectAliasOptions represents the options for creating a project alias.

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

type CreateProjectDeployTokenOptions

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

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 CreateProjectExternalStatusCheckOptions

type CreateProjectExternalStatusCheckOptions struct {
	Name               *string  `url:"name,omitempty" json:"name,omitempty"`
	ExternalURL        *string  `url:"external_url,omitempty" json:"external_url,omitempty"`
	SharedSecret       *string  `url:"shared_secret,omitempty" json:"shared_secret,omitempty"`
	ProtectedBranchIDs *[]int64 `url:"protected_branch_ids,omitempty" json:"protected_branch_ids,omitempty"`
}

CreateProjectExternalStatusCheckOptions represents the available CreateProjectExternalStatusCheck() options.

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

type CreateProjectFeatureFlagOptions

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

type CreateProjectLevelRuleOptions struct {
	Name                          *string   `url:"name,omitempty" json:"name,omitempty"`
	ApprovalsRequired             *int64    `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                       *[]int64  `url:"user_ids,omitempty" json:"user_ids,omitempty"`
	GroupIDs                      *[]int64  `url:"group_ids,omitempty" json:"group_ids,omitempty"`
	ProtectedBranchIDs            *[]int64  `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                              *int64                               `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               *int64                               `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"`
	MergeTrainsSkipTrainAllowed               *bool                                `url:"merge_trains_skip_train_allowed,omitempty" json:"merge_trains_skip_train_allowed,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                               *int64                               `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"`
	ResourceGroupDefaultProcessMode           *ResourceGroupProcessMode            `url:"resource_group_default_process_mode,omitempty" json:"resource_group_default_process_mode,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                         *int64                               `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"`
	MergeRequestTitleRegex                    *string                              `url:"merge_request_title_regex,omitempty" json:"merge_request_title_regex,omitempty"`
	MergeRequestTitleRegexDescription         *string                              `url:"merge_request_title_regex_description,omitempty" json:"merge_request_title_regex_description,omitempty"`
	// Deprecated: use Merge Request Approvals API instead
	ApprovalsBeforeMerge *int64 `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

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

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

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

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 CreateRunnerControllerOptions

type CreateRunnerControllerOptions struct {
	Description *string                     `url:"description,omitempty" json:"description,omitempty"`
	State       *RunnerControllerStateValue `url:"state,omitempty" json:"state,omitempty"`
}

CreateRunnerControllerOptions represents the available CreateRunnerController() options.

GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#register-a-runner-controller

type CreateRunnerControllerTokenOptions

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

CreateRunnerControllerTokenOptions represents the available CreateRunnerControllerToken() options.

GitLab API docs: https://docs.gitlab.com/api/runner_controller_tokens/#create-a-runner-controller-token

type CreateSecureFileOptions

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

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

CreateServiceAccountOptions represents the available CreateServiceAccount() options.

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

type CreateServiceAccountPersonalAccessTokenOptions

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

CreateServiceAccountPersonalAccessTokenOptions represents the available CreateServiceAccountPersonalAccessToken() options.

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

type CreateServiceAccountUserOptions

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

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

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 CreateTargetBranchRuleOptions added in v2.8.0

type CreateTargetBranchRuleOptions struct {
	Name         string
	TargetBranch string
}

CreateTargetBranchRuleOptions represents the available CreateTargetBranchRule() options.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#mutationprojecttargetbranchrulecreate

type CreateTopicOptions

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       *int64      `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             *int64      `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"`
	ViewDiffsFileByFile *bool       `url:"view_diffs_file_by_file,omitempty" json:"view_diffs_file_by_file,omitempty"`
	PublicEmail         *string     `url:"public_email,omitempty" json:"public_email,omitempty"`
	Auditor             *bool       `url:"auditor,omitempty" json:"auditor,omitempty"`
	ColorSchemeID       *int        `url:"color_scheme_id,omitempty" json:"color_scheme_id,omitempty"`
	CommitEmail         *string     `url:"commit_email,omitempty" json:"commit_email,omitempty"`
	Discord             *string     `url:"discord,omitempty" json:"discord,omitempty"`
	// ExtraSharedRunnersMinutesLimit can only be set by administrators. Premium and Ultimate only.
	ExtraSharedRunnersMinutesLimit *int    `url:"extra_shared_runners_minutes_limit,omitempty" json:"extra_shared_runners_minutes_limit,omitempty"`
	Github                         *string `url:"github,omitempty" json:"github,omitempty"`
	GroupIDForSAML                 *int    `url:"group_id_for_saml,omitempty" json:"group_id_for_saml,omitempty"`
	Pronouns                       *string `url:"pronouns,omitempty" json:"pronouns,omitempty"`
	// SharedRunnersMinutesLimit can only be set by administrators. Premium and Ultimate only.
	SharedRunnersMinutesLimit *int `url:"shared_runners_minutes_limit,omitempty" json:"shared_runners_minutes_limit,omitempty"`
}

CreateUserOptions represents the available CreateUser() options.

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

type CreateUserRunnerOptions

type CreateUserRunnerOptions struct {
	RunnerType      *string   `url:"runner_type,omitempty" json:"runner_type,omitempty"`
	GroupID         *int64    `url:"group_id,omitempty" json:"group_id,omitempty"`
	ProjectID       *int64    `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  *int64    `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

type CreateVulnerabilityOptions struct {
	FindingID *int64 `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

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 CreateWorkItemOptions

type CreateWorkItemOptions struct {
	// Title of the work item. Required.
	Title string

	// Description of the work item.
	Description *string

	// Sets the work item confidentiality.
	Confidential *bool

	// Global IDs of assignees.
	AssigneeIDs []int64

	// Global ID of the milestone to assign to the work item.
	MilestoneID *int64

	// Source which triggered the creation of the work item. Used only for tracking purposes.
	CreateSource *string

	// Timestamp when the work item was created. Available only for admins and project owners.
	CreatedAt *time.Time // admins and project owners only

	// CRM contact IDs to set.
	CRMContactIDs []int64

	// Global ID of the parent work item.
	ParentID *int64

	// Global IDs of labels to be added to the work item.
	LabelIDs []int64

	// Linked work items to be added to the work item.
	LinkedItems *CreateWorkItemOptionsLinkedItems

	// Start date for the work item.
	StartDate *ISOTime

	// Due date for the work item.
	DueDate *ISOTime

	// Weight of the work item.
	Weight *int64

	// Health status to be assigned to the work item. Possible values: onTrack, needsAttention, atRisk
	HealthStatus *string

	// Global ID of the iteration to assign to the work item.
	IterationID *int64

	// Color of the work item, represented as a hex code or named color. Example: "#fefefe"
	Color *string
}

CreateWorkItemOptions represents the available CreateWorkItem() options.

GitLab API docs: https://docs.gitlab.com/ee/api/graphql/reference/#workitemcreateinput

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

type CreateWorkItemOptionsLinkedItems

type CreateWorkItemOptionsLinkedItems struct {
	LinkType    *string // enum: BLOCKED_BY, BLOCKS, RELATED
	WorkItemIDs []int64
}

CreateWorkItemOptionsLinkedItems represents linked items to be added to a work item.

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

type CustomAttribute

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

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

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

func (*CustomAttributesService) DeleteCustomProjectAttribute

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

func (*CustomAttributesService) DeleteCustomUserAttribute

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

func (*CustomAttributesService) GetCustomGroupAttribute

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

func (*CustomAttributesService) GetCustomProjectAttribute

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

func (*CustomAttributesService) GetCustomUserAttribute

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

func (*CustomAttributesService) ListCustomGroupAttributes

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

func (*CustomAttributesService) ListCustomProjectAttributes

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

func (*CustomAttributesService) ListCustomUserAttributes

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

func (*CustomAttributesService) SetCustomGroupAttribute

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

func (*CustomAttributesService) SetCustomProjectAttribute

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

func (*CustomAttributesService) SetCustomUserAttribute

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

type CustomAttributesServiceInterface

type CustomAttributesServiceInterface interface {
	// ListCustomUserAttributes lists the custom attributes of the specified user.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/custom_attributes/#list-custom-attributes
	ListCustomUserAttributes(user int64, 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
	ListCustomGroupAttributes(group int64, 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
	ListCustomProjectAttributes(project int64, 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
	GetCustomUserAttribute(user int64, 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
	GetCustomGroupAttribute(group int64, 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
	GetCustomProjectAttribute(project int64, key string, 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
	SetCustomUserAttribute(user int64, 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
	SetCustomGroupAttribute(group int64, 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
	SetCustomProjectAttribute(project int64, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error)

	// DeleteCustomUserAttribute removes the custom attribute of the specified user.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/custom_attributes/#delete-custom-attribute
	DeleteCustomUserAttribute(user int64, 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
	DeleteCustomGroupAttribute(group int64, 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
	DeleteCustomProjectAttribute(project int64, key string, options ...RequestOptionFunc) (*Response, error)
}

type CustomIssueTrackerService

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

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

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

func (m DORAMetric) String() string

String gets a string representation of a DORAMetric data point

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

type DORAMetricInterval

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

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

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

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

func (*DORAMetricsService) GetProjectDORAMetrics

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

type DORAMetricsServiceInterface

type DORAMetricsServiceInterface interface {
	// GetProjectDORAMetrics gets the DORA metrics for a project.
	//
	// GitLab API Docs:
	// https://docs.gitlab.com/api/dora/metrics/#get-project-level-dora-metrics
	GetProjectDORAMetrics(pid 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
	GetGroupDORAMetrics(gid any, opt GetDORAMetricsOptions, options ...RequestOptionFunc) ([]DORAMetric, *Response, error)
}

DORAMetricsServiceInterface defines all the API methods for the DORAMetricsService

type DataDogService

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

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"`
	DataDogCIVisibility  bool   `url:"datadog_ci_visibility,omitempty" json:"datadog_ci_visibility,omitempty"`
	UseInheritedSettings bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

DataDogServiceProperties represents DataDog specific properties.

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

type DatabaseMigrationsService

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

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

type DatabaseMigrationsServiceInterface

type DatabaseMigrationsServiceInterface interface {
	// MarkMigrationAsSuccessful marks 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
	MarkMigrationAsSuccessful(version int64, opt *MarkMigrationAsSuccessfulOptions, options ...RequestOptionFunc) (*Response, error)
}

type DayStats

type DayStats struct {
	Count int64  `json:"count"`
	Date  string `json:"date"`
}

type DefaultBranchProtectionDefaultsOptions

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"`
	CodeOwnerApprovalRequired *bool                `url:"code_owner_approval_required,omitempty" json:"code_owner_approval_required,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

func (*DefaultBranchProtectionDefaultsOptions) EncodeValues

EncodeValues implements the query.Encoder interface

type DeleteEnterpriseUserOptions

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

DeleteEnterpriseUserOptions represents the available DeleteEnterpriseUser options.

GitLab API docs: https://docs.gitlab.com/api/group_enterprise_users/#delete-an-enterprise-user

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

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

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

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 DeleteMergeRequestContextCommitsOptions

type DeleteMergeRequestContextCommitsOptions struct {
	Commits *[]string `url:"commits,omitempty" json:"commits,omitempty"`
}

DeleteMergeRequestContextCommitsOptions represents the available DeleteMergeRequestContextCommits() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_context_commits/#delete-mr-context-commits

type DeleteProjectExternalStatusCheckOptions

type DeleteProjectExternalStatusCheckOptions struct{}

DeleteProjectExternalStatusCheckOptions represents the available DeleteProjectExternalStatusCheck() options.

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

type DeleteProjectOptions

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

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

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            *int64  `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

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/service_accounts/#delete-a-group-service-account

type DependenciesService

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

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

type DependenciesServiceInterface

type DependenciesServiceInterface interface {
	// 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
	ListProjectDependencies(pid any, opt *ListProjectDependenciesOptions, options ...RequestOptionFunc) ([]*Dependency, *Response, error)
}

type Dependency

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

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

type DependencyListExport struct {
	ID          int64  `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

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

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

func (*DependencyListExportService) DownloadDependencyListExport

func (s *DependencyListExportService) DownloadDependencyListExport(id int64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)

func (*DependencyListExportService) GetDependencyListExport

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

type DependencyListExportServiceInterface

type DependencyListExportServiceInterface interface {
	// 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
	CreateDependencyListExport(pipelineID int64, opt *CreateDependencyListExportOptions, 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
	GetDependencyListExport(id int64, options ...RequestOptionFunc) (*DependencyListExport, *Response, error)

	// DownloadDependencyListExport downloads a single dependency list export.
	//
	// The returned io.ReadCloser must be closed by the caller to avoid
	// leaking the underlying response body.
	//
	// The github.com/CycloneDX/cyclonedx-go package can be used to parse the data from the returned io.ReadCloser.
	//
	//	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
	DownloadDependencyListExport(id int64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)
}

type DependencyPackageManagerValue

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

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

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

type DependencyProxyServiceInterface

type DependencyProxyServiceInterface interface {
	// 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
	PurgeGroupDependencyProxy(gid any, options ...RequestOptionFunc) (*Response, error)
}

type DependencyVulnerability

type DependencyVulnerability struct {
	Name     string `url:"name" json:"name"`
	Severity string `url:"severity" json:"severity"`
	ID       int64  `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

type DeployKeyProject struct {
	ID                int64      `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

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)

func (*DeployKeysService) AddInstanceDeployKey

func (s *DeployKeysService) AddInstanceDeployKey(opt *AddInstanceDeployKeyOptions, options ...RequestOptionFunc) (*InstanceDeployKey, *Response, error)

func (*DeployKeysService) DeleteDeployKey

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

func (*DeployKeysService) EnableDeployKey

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

func (*DeployKeysService) GetDeployKey

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

func (*DeployKeysService) ListAllDeployKeys

func (*DeployKeysService) ListProjectDeployKeys

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

func (*DeployKeysService) ListUserProjectDeployKeys

func (s *DeployKeysService) ListUserProjectDeployKeys(uid any, opt *ListUserProjectDeployKeysOptions, options ...RequestOptionFunc) ([]*ProjectDeployKey, *Response, error)

ListUserProjectDeployKeys gets a list of a user's deploy keys.

uid can be either a user ID (int) or a username (string). If a username is provided with a leading "@" (e.g., "@johndoe"), it will be trimmed.

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

func (*DeployKeysService) UpdateDeployKey

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

type DeployKeysServiceInterface

type DeployKeysServiceInterface interface {
	// ListAllDeployKeys gets a list of all deploy keys.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deploy_keys/#list-all-deploy-keys
	// ListAllDeployKeys gets a list of all deploy keys.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deploy_keys/#list-all-deploy-keys
	ListAllDeployKeys(opt *ListInstanceDeployKeysOptions, options ...RequestOptionFunc) ([]*InstanceDeployKey, *Response, error)

	// AddInstanceDeployKey creates a deploy key for the GitLab instance.
	// Requires administrator access.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deploy_keys/#add-deploy-key
	AddInstanceDeployKey(opt *AddInstanceDeployKeyOptions, options ...RequestOptionFunc) (*InstanceDeployKey, *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
	ListProjectDeployKeys(pid any, opt *ListProjectDeployKeysOptions, options ...RequestOptionFunc) ([]*ProjectDeployKey, *Response, error)

	// ListUserProjectDeployKeys gets a list of a user's deploy keys.
	//
	// uid can be either a user ID (int) or a username (string). If a username
	// is provided with a leading "@" (e.g., "@johndoe"), it will be trimmed.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deploy_keys/#list-project-deploy-keys-for-user
	ListUserProjectDeployKeys(uid any, opt *ListUserProjectDeployKeysOptions, 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
	GetDeployKey(pid any, deployKey int64, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)

	// AddDeployKey creates a new deploy key for a project. If the deploy key already
	// exists in another project, it will be joined to the project but only if
	// the original one is accessible by the same user.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deploy_keys/#add-deploy-key-for-a-project
	AddDeployKey(pid any, opt *AddDeployKeyOptions, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)

	// DeleteDeployKey deletes a deploy key from a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deploy_keys/#delete-deploy-key
	DeleteDeployKey(pid any, deployKey int64, options ...RequestOptionFunc) (*Response, error)

	// EnableDeployKey enables a deploy key.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deploy_keys/#enable-a-deploy-key
	EnableDeployKey(pid any, deployKey int64, 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
	UpdateDeployKey(pid any, deployKey int64, opt *UpdateDeployKeyOptions, options ...RequestOptionFunc) (*ProjectDeployKey, *Response, error)
}

type DeployToken

type DeployToken struct {
	ID        int64      `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

func (k DeployToken) String() string

type DeployTokensService

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

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

func (*DeployTokensService) CreateProjectDeployToken

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

func (*DeployTokensService) DeleteGroupDeployToken

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

func (*DeployTokensService) DeleteProjectDeployToken

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

func (*DeployTokensService) GetGroupDeployToken

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

func (*DeployTokensService) GetProjectDeployToken

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

func (*DeployTokensService) ListAllDeployTokens

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

func (*DeployTokensService) ListGroupDeployTokens

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

func (*DeployTokensService) ListProjectDeployTokens

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

type DeployTokensServiceInterface

type DeployTokensServiceInterface interface {
	// ListAllDeployTokens gets a list of all deploy tokens.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deploy_tokens/#list-all-deploy-tokens
	// ListAllDeployTokens gets a list of all deploy tokens.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deploy_tokens/#list-all-deploy-tokens
	ListAllDeployTokens(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
	ListProjectDeployTokens(pid any, opt *ListProjectDeployTokensOptions, 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
	GetProjectDeployToken(pid any, deployToken int64, 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
	CreateProjectDeployToken(pid any, opt *CreateProjectDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *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
	DeleteProjectDeployToken(pid any, deployToken int64, options ...RequestOptionFunc) (*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
	ListGroupDeployTokens(gid any, opt *ListGroupDeployTokensOptions, 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
	GetGroupDeployToken(gid any, deployToken int64, 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
	CreateGroupDeployToken(gid any, opt *CreateGroupDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *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
	DeleteGroupDeployToken(gid any, deployToken int64, options ...RequestOptionFunc) (*Response, error)
}

type Deployment

type Deployment struct {
	ID          int64                `json:"id"`
	IID         int64                `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  DeploymentDeployable `json:"deployable"`
}

Deployment represents the GitLab deployment

type DeploymentApprovalStatus

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 DeploymentDeployable

type DeploymentDeployable struct {
	ID         int64                        `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   DeploymentDeployablePipeline `json:"pipeline"`
	Runner     *Runner                      `json:"runner"`
}

DeploymentDeployable represents the Gitlab deployment deployable

type DeploymentDeployablePipeline

type DeploymentDeployablePipeline struct {
	ID        int64      `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"`
}

DeploymentDeployablePipeline represents the Gitlab deployment deployable pipeline

type DeploymentEvent

type DeploymentEvent struct {
	ObjectKind             string                 `json:"object_kind"`
	Status                 string                 `json:"status"`
	StatusChangedAt        string                 `json:"status_changed_at"`
	DeploymentID           int64                  `json:"deployment_id"`
	DeployableID           int64                  `json:"deployable_id"`
	DeployableURL          string                 `json:"deployable_url"`
	Environment            string                 `json:"environment"`
	EnvironmentSlug        string                 `json:"environment_slug"`
	EnvironmentExternalURL string                 `json:"environment_external_url"`
	Project                DeploymentEventProject `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 DeploymentEventProject

type DeploymentEventProject struct {
	ID                int64   `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"`
	VisibilityLevel   int64   `json:"visibility_level"`
	CIConfigPath      string  `json:"ci_config_path"`
}

type DeploymentMergeRequestsService

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

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

type DeploymentMergeRequestsServiceInterface

type DeploymentMergeRequestsServiceInterface interface {
	// 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
	ListDeploymentMergeRequests(pid any, deployment int64, opts *ListMergeRequestsOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error)
}

DeploymentMergeRequestsServiceInterface defines all the API methods for the DeploymentMergeRequestsService

type DeploymentStatusValue

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

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

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

func (*DeploymentsService) CreateProjectDeployment

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

func (*DeploymentsService) DeleteProjectDeployment

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

func (*DeploymentsService) GetProjectDeployment

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

func (*DeploymentsService) ListProjectDeployments

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

func (*DeploymentsService) UpdateProjectDeployment

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

type DeploymentsServiceInterface

type DeploymentsServiceInterface interface {
	// ListProjectDeployments gets a list of deployments in a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deployments/#list-project-deployments
	// ListProjectDeployments gets a list of deployments in a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deployments/#list-project-deployments
	ListProjectDeployments(pid any, opts *ListProjectDeploymentsOptions, options ...RequestOptionFunc) ([]*Deployment, *Response, error)

	// GetProjectDeployment gets a specific deployment for a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deployments/#get-a-specific-deployment
	GetProjectDeployment(pid any, deployment int64, options ...RequestOptionFunc) (*Deployment, *Response, error)

	// CreateProjectDeployment creates a project deployment.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deployments/#create-a-deployment
	CreateProjectDeployment(pid any, opt *CreateProjectDeploymentOptions, options ...RequestOptionFunc) (*Deployment, *Response, error)

	// UpdateProjectDeployment updates a project deployment.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deployments/#update-a-deployment
	UpdateProjectDeployment(pid any, deployment int64, opt *UpdateProjectDeploymentOptions, options ...RequestOptionFunc) (*Deployment, *Response, error)

	// ApproveOrRejectProjectDeployment approves or rejects a blocked deployment.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deployments/#approve-or-reject-a-blocked-deployment
	ApproveOrRejectProjectDeployment(pid any, deployment int64, opt *ApproveOrRejectProjectDeploymentOptions, options ...RequestOptionFunc) (*Response, error)

	// DeleteProjectDeployment deletes a specific deployment.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/deployments/#delete-a-specific-deployment
	DeleteProjectDeployment(pid any, deployment int64, options ...RequestOptionFunc) (*Response, error)
}

DeploymentsServiceInterface defines all the API methods for the DeploymentsService

type DetailedStatus

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 DetailedStatusIllustration `json:"illustration"`
	Favicon      string                     `json:"favicon"`
}

DetailedStatus contains detailed information about the status of a pipeline.

func (DetailedStatus) String

func (s DetailedStatus) String() string

type DetailedStatusIllustration

type DetailedStatusIllustration struct {
	Image string `json:"image"`
}

DetailedStatusIllustration contains detailed information about the status illustration of a pipeline.

func (DetailedStatusIllustration) String

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 DiscordIntegration

type DiscordIntegration struct {
	Integration
	Properties DiscordIntegrationProperties `json:"properties"`
}

DiscordIntegration represents the Discord integration settings.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#discord

type DiscordIntegrationProperties

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

DiscordIntegrationProperties represents Discord specific properties.

type DiscordService

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

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

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

func (d Discussion) String() string

type DiscussionsService

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

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

func (*DiscussionsService) AddEpicDiscussionNote

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

func (*DiscussionsService) AddIssueDiscussionNote

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

func (*DiscussionsService) AddMergeRequestDiscussionNote

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

func (*DiscussionsService) AddSnippetDiscussionNote

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

func (*DiscussionsService) CreateCommitDiscussion

func (s *DiscussionsService) CreateCommitDiscussion(pid any, commit string, opt *CreateCommitDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) CreateEpicDiscussion

func (s *DiscussionsService) CreateEpicDiscussion(gid any, epic int64, opt *CreateEpicDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) CreateIssueDiscussion

func (s *DiscussionsService) CreateIssueDiscussion(pid any, issue int64, opt *CreateIssueDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) CreateMergeRequestDiscussion

func (s *DiscussionsService) CreateMergeRequestDiscussion(pid any, mergeRequest int64, opt *CreateMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) CreateSnippetDiscussion

func (s *DiscussionsService) CreateSnippetDiscussion(pid any, snippet int64, opt *CreateSnippetDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) DeleteCommitDiscussionNote

func (s *DiscussionsService) DeleteCommitDiscussionNote(pid any, commit string, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)

func (*DiscussionsService) DeleteEpicDiscussionNote

func (s *DiscussionsService) DeleteEpicDiscussionNote(gid any, epic int64, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)

func (*DiscussionsService) DeleteIssueDiscussionNote

func (s *DiscussionsService) DeleteIssueDiscussionNote(pid any, issue int64, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)

func (*DiscussionsService) DeleteMergeRequestDiscussionNote

func (s *DiscussionsService) DeleteMergeRequestDiscussionNote(pid any, mergeRequest int64, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)

func (*DiscussionsService) DeleteSnippetDiscussionNote

func (s *DiscussionsService) DeleteSnippetDiscussionNote(pid any, snippet int64, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)

func (*DiscussionsService) GetCommitDiscussion

func (s *DiscussionsService) GetCommitDiscussion(pid any, commit string, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) GetEpicDiscussion

func (s *DiscussionsService) GetEpicDiscussion(gid any, epic int64, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) GetIssueDiscussion

func (s *DiscussionsService) GetIssueDiscussion(pid any, issue int64, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) GetMergeRequestDiscussion

func (s *DiscussionsService) GetMergeRequestDiscussion(pid any, mergeRequest int64, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) GetSnippetDiscussion

func (s *DiscussionsService) GetSnippetDiscussion(pid any, snippet int64, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) ListCommitDiscussions

func (s *DiscussionsService) ListCommitDiscussions(pid any, commit string, opt *ListCommitDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

func (*DiscussionsService) ListGroupEpicDiscussions

func (s *DiscussionsService) ListGroupEpicDiscussions(gid any, epic int64, opt *ListGroupEpicDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

func (*DiscussionsService) ListIssueDiscussions

func (s *DiscussionsService) ListIssueDiscussions(pid any, issue int64, opt *ListIssueDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

func (*DiscussionsService) ListMergeRequestDiscussions

func (s *DiscussionsService) ListMergeRequestDiscussions(pid any, mergeRequest int64, opt *ListMergeRequestDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

func (*DiscussionsService) ListSnippetDiscussions

func (s *DiscussionsService) ListSnippetDiscussions(pid any, snippet int64, opt *ListSnippetDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

func (*DiscussionsService) ResolveMergeRequestDiscussion

func (s *DiscussionsService) ResolveMergeRequestDiscussion(pid any, mergeRequest int64, discussion string, opt *ResolveMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

func (*DiscussionsService) UpdateCommitDiscussionNote

func (s *DiscussionsService) UpdateCommitDiscussionNote(pid any, commit string, discussion string, note int64, opt *UpdateCommitDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

func (*DiscussionsService) UpdateEpicDiscussionNote

func (s *DiscussionsService) UpdateEpicDiscussionNote(gid any, epic int64, discussion string, note int64, opt *UpdateEpicDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

func (*DiscussionsService) UpdateIssueDiscussionNote

func (s *DiscussionsService) UpdateIssueDiscussionNote(pid any, issue int64, discussion string, note int64, opt *UpdateIssueDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

func (*DiscussionsService) UpdateMergeRequestDiscussionNote

func (s *DiscussionsService) UpdateMergeRequestDiscussionNote(pid any, mergeRequest int64, discussion string, note int64, opt *UpdateMergeRequestDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

func (*DiscussionsService) UpdateSnippetDiscussionNote

func (s *DiscussionsService) UpdateSnippetDiscussionNote(pid any, snippet int64, discussion string, note int64, opt *UpdateSnippetDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

type DiscussionsServiceInterface

type DiscussionsServiceInterface interface {
	// 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
	ListIssueDiscussions(pid any, issue int64, opt *ListIssueDiscussionsOptions, 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
	GetIssueDiscussion(pid any, issue int64, discussion string, 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
	CreateIssueDiscussion(pid any, issue int64, opt *CreateIssueDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// AddIssueDiscussionNote creates a new note in an existing discussion of an issue.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#add-note-to-existing-issue-thread
	AddIssueDiscussionNote(pid any, issue int64, discussion string, opt *AddIssueDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// UpdateIssueDiscussionNote modifies an existing note in a discussion of an issue.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#modify-existing-issue-thread-note
	UpdateIssueDiscussionNote(pid any, issue int64, discussion string, note int64, opt *UpdateIssueDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// DeleteIssueDiscussionNote deletes a note from a discussion of an issue.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#delete-an-issue-thread-note
	DeleteIssueDiscussionNote(pid any, issue int64, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)

	// ListSnippetDiscussions gets all discussions for a snippet.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#list-project-snippet-discussion-items
	ListSnippetDiscussions(pid any, snippet int64, opt *ListSnippetDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

	// GetSnippetDiscussion returns a single discussion for a snippet.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#get-single-snippet-discussion-item
	GetSnippetDiscussion(pid any, snippet int64, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// CreateSnippetDiscussion creates a new discussion for a snippet.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#create-new-snippet-thread
	CreateSnippetDiscussion(pid any, snippet int64, opt *CreateSnippetDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// AddSnippetDiscussionNote adds a new note to a snippet discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#add-note-to-existing-snippet-thread
	AddSnippetDiscussionNote(pid any, snippet int64, discussion string, opt *AddSnippetDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// UpdateSnippetDiscussionNote modifies an existing note in a snippet discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#modify-existing-snippet-thread-note
	UpdateSnippetDiscussionNote(pid any, snippet int64, discussion string, note int64, opt *UpdateSnippetDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// DeleteSnippetDiscussionNote deletes a note from a snippet discussion.
	//
	// GitLab API docs: https://docs.gitlab.com/api/discussions/#delete-a-snippet-thread-note
	DeleteSnippetDiscussionNote(pid any, snippet int64, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)

	// ListGroupEpicDiscussions gets all discussions for a group epic.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#list-group-epic-discussion-items
	ListGroupEpicDiscussions(gid any, epic int64, opt *ListGroupEpicDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

	// GetEpicDiscussion returns a single discussion for a group epic.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#get-single-epic-discussion-item
	GetEpicDiscussion(gid any, epic int64, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// CreateEpicDiscussion creates a new discussion for a group epic.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#create-new-epic-thread
	CreateEpicDiscussion(gid any, epic int64, opt *CreateEpicDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// AddEpicDiscussionNote adds a new note to an epic discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#add-note-to-existing-epic-thread
	AddEpicDiscussionNote(gid any, epic int64, discussion string, opt *AddEpicDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// UpdateEpicDiscussionNote modifies an existing note in an epic discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#modify-existing-epic-thread-note
	UpdateEpicDiscussionNote(gid any, epic int64, discussion string, note int64, opt *UpdateEpicDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// DeleteEpicDiscussionNote deletes a note from an epic discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#delete-an-epic-thread-note
	DeleteEpicDiscussionNote(gid any, epic int64, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)

	// ListMergeRequestDiscussions gets all discussions for a merge request.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#list-project-merge-request-discussion-items
	ListMergeRequestDiscussions(pid any, mergeRequest int64, opt *ListMergeRequestDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

	// GetMergeRequestDiscussion returns a single discussion for a merge request.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#get-single-merge-request-discussion-item
	GetMergeRequestDiscussion(pid any, mergeRequest int64, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// CreateMergeRequestDiscussion creates a new discussion for a merge request.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#create-new-merge-request-thread
	CreateMergeRequestDiscussion(pid any, mergeRequest int64, opt *CreateMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// ResolveMergeRequestDiscussion resolves or unresolves a merge request discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#resolve-a-merge-request-thread
	ResolveMergeRequestDiscussion(pid any, mergeRequest int64, discussion string, opt *ResolveMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// AddMergeRequestDiscussionNote adds a new note to a merge request discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#add-note-to-existing-merge-request-thread
	AddMergeRequestDiscussionNote(pid any, mergeRequest int64, discussion string, opt *AddMergeRequestDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// UpdateMergeRequestDiscussionNote modifies an existing note in a merge request discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#modify-an-existing-merge-request-thread-note
	UpdateMergeRequestDiscussionNote(pid any, mergeRequest int64, discussion string, note int64, opt *UpdateMergeRequestDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// DeleteMergeRequestDiscussionNote deletes a note from a merge request discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#delete-a-merge-request-thread-note
	DeleteMergeRequestDiscussionNote(pid any, mergeRequest int64, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)

	// ListCommitDiscussions gets all discussions for a commit.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#list-project-commit-discussion-items
	ListCommitDiscussions(pid any, commit string, opt *ListCommitDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error)

	// GetCommitDiscussion returns a single discussion for a commit.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#get-single-commit-discussion-item
	GetCommitDiscussion(pid any, commit string, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// CreateCommitDiscussion creates a new discussion for a commit.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#create-new-commit-thread
	CreateCommitDiscussion(pid any, commit string, opt *CreateCommitDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error)

	// AddCommitDiscussionNote adds a new note to a commit discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#add-note-to-existing-commit-thread
	AddCommitDiscussionNote(pid any, commit string, discussion string, opt *AddCommitDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// UpdateCommitDiscussionNote modifies an existing note in a commit discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#modify-an-existing-commit-thread-note
	UpdateCommitDiscussionNote(pid any, commit string, discussion string, note int64, opt *UpdateCommitDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)

	// DeleteCommitDiscussionNote deletes a note from a commit discussion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/discussions/#delete-a-commit-thread-note
	DeleteCommitDiscussionNote(pid any, commit string, discussion string, note int64, options ...RequestOptionFunc) (*Response, error)
}

DiscussionsServiceInterface defines all the API methods for the DiscussionsService

type DockerfileTemplate

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

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

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

func (*DockerfileTemplatesService) ListTemplates

type DockerfileTemplatesServiceInterface

type DockerfileTemplatesServiceInterface interface {
	// ListTemplates get a list of available Dockerfile templates.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/templates/dockerfiles/#list-dockerfile-templates
	ListTemplates(opt *ListDockerfileTemplatesOptions, options ...RequestOptionFunc) ([]*DockerfileTemplateListItem, *Response, error)

	// GetTemplate get a single Dockerfile template.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/templates/dockerfiles/#single-dockerfile-template
	GetTemplate(key string, options ...RequestOptionFunc) (*DockerfileTemplate, *Response, error)
}

DockerfileTemplatesServiceInterface defines all the API methods for the DockerfileTemplatesService

type DownloadArtifactsFileOptions

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

type DraftNote struct {
	ID                int64         `json:"id"`
	AuthorID          int64         `json:"author_id"`
	MergeRequestID    int64         `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

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

func (s *DraftNotesService) CreateDraftNote(pid any, mergeRequest int64, opt *CreateDraftNoteOptions, options ...RequestOptionFunc) (*DraftNote, *Response, error)

func (*DraftNotesService) DeleteDraftNote

func (s *DraftNotesService) DeleteDraftNote(pid any, mergeRequest int64, note int64, options ...RequestOptionFunc) (*Response, error)

func (*DraftNotesService) GetDraftNote

func (s *DraftNotesService) GetDraftNote(pid any, mergeRequest int64, note int64, options ...RequestOptionFunc) (*DraftNote, *Response, error)

func (*DraftNotesService) ListDraftNotes

func (s *DraftNotesService) ListDraftNotes(pid any, mergeRequest int64, opt *ListDraftNotesOptions, options ...RequestOptionFunc) ([]*DraftNote, *Response, error)

func (*DraftNotesService) PublishAllDraftNotes

func (s *DraftNotesService) PublishAllDraftNotes(pid any, mergeRequest int64, options ...RequestOptionFunc) (*Response, error)

func (*DraftNotesService) PublishDraftNote

func (s *DraftNotesService) PublishDraftNote(pid any, mergeRequest int64, note int64, options ...RequestOptionFunc) (*Response, error)

func (*DraftNotesService) UpdateDraftNote

func (s *DraftNotesService) UpdateDraftNote(pid any, mergeRequest int64, note int64, opt *UpdateDraftNoteOptions, options ...RequestOptionFunc) (*DraftNote, *Response, error)

type DraftNotesServiceInterface

type DraftNotesServiceInterface interface {
	// 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
	ListDraftNotes(pid any, mergeRequest int64, opt *ListDraftNotesOptions, 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
	GetDraftNote(pid any, mergeRequest int64, note int64, 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
	CreateDraftNote(pid any, mergeRequest int64, opt *CreateDraftNoteOptions, options ...RequestOptionFunc) (*DraftNote, *Response, error)

	// UpdateDraftNote updates a draft note for a merge request.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/draft_notes/#update-a-draft-note
	UpdateDraftNote(pid any, mergeRequest int64, note int64, opt *UpdateDraftNoteOptions, options ...RequestOptionFunc) (*DraftNote, *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
	DeleteDraftNote(pid any, mergeRequest int64, note int64, 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
	PublishDraftNote(pid any, mergeRequest int64, note int64, 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
	PublishAllDraftNotes(pid any, mergeRequest int64, 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 DuoAvailabilityValue

type DuoAvailabilityValue string

DuoAvailabilityValue represents a GitLab Duo availability value.

const (
	DuoAvailabilityDefaultOn  DuoAvailabilityValue = "default_on"
	DuoAvailabilityDefaultOff DuoAvailabilityValue = "default_off"
	DuoAvailabilityNeverOn    DuoAvailabilityValue = "never_on" // Displayed as "Always Off" in the UI
)

type EditAnExistingResourceGroupOptions

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

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

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      *int64  `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

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                 *int64    `url:"files_max_capacity,omitempty" json:"files_max_capacity,omitempty"`
	ReposMaxCapacity                 *int64    `url:"repos_max_capacity,omitempty" json:"repos_max_capacity,omitempty"`
	VerificationMaxCapacity          *int64    `url:"verification_max_capacity,omitempty" json:"verification_max_capacity,omitempty"`
	ContainerRepositoriesMaxCapacity *int64    `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        *[]int64  `url:"selective_sync_namespace_ids,omitempty" json:"selective_sync_namespace_ids,omitempty"`
	MinimumReverificationInterval    *int64    `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/#update-a-geo-site

type EditGroupBadgeOptions

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

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

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"`
	ProjectEvents                         *bool                `url:"project_events,omitempty" json:"project_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"`
	MilestoneEvents                       *bool                `url:"milestone_events,omitempty" json:"milestone_events,omitempty"`
	SubGroupEvents                        *bool                `url:"subgroup_events,omitempty" json:"subgroup_events,omitempty"`
	EmojiEvents                           *bool                `url:"emoji_events,omitempty" json:"emoji_events,omitempty"`
	MemberEvents                          *bool                `url:"member_events,omitempty" json:"member_events,omitempty"`
	VulnerabilityEvents                   *bool                `url:"vulnerability_events,omitempty" json:"vulnerability_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

type EditGroupMemberOptions struct {
	AccessLevel  *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ExpiresAt    *string           `url:"expires_at,omitempty" json:"expires_at,omitempty"`
	MemberRoleID *int64            `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

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

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                *int64  `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

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

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

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

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

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

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"`
	EmojiEvents               *bool                `url:"emoji_events,omitempty" json:"emoji_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"`
	VulnerabilityEvents       *bool                `url:"vulnerability_events,omitempty" json:"vulnerability_events,omitempty"`
	BranchFilterStrategy      *string              `url:"branch_filter_strategy,omitempty" json:"branch_filter_strategy,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 *int64            `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

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"`
	HostKeys              *[]string `url:"host_keys,omitempty" json:"host_keys,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-mirror-in-a-project

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"`
	AutoDuoCodeReviewEnabled                  *bool                                        `url:"auto_duo_code_review_enabled,omitempty" json:"auto_duo_code_review_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                              *int64                                       `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                         *int64                                       `url:"ci_default_git_depth,omitempty" json:"ci_default_git_depth,omitempty"`
	CIDeletePipelinesInSeconds                *int64                                       `url:"ci_delete_pipelines_in_seconds,omitempty" json:"ci_delete_pipelines_in_seconds,omitempty"`
	CIDisplayPipelineVariables                *bool                                        `url:"ci_display_pipeline_variables,omitempty" json:"ci_display_pipeline_variables,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"`
	CIPushRepositoryForJobTokenAllowed        *bool                                        `url:"ci_push_repository_for_job_token_allowed,omitempty" json:"ci_push_repository_for_job_token_allowed,omitempty"`
	CIIdTokenSubClaimComponents               *[]string                                    `url:"ci_id_token_sub_claim_components,omitempty" json:"ci_id_token_sub_claim_components,omitempty"`
	CISeparatedCaches                         *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"`
	MaxArtifactsSize                          *int64                                       `url:"max_artifacts_size,omitempty" json:"max_artifacts_size,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"`
	MergeTrainsSkipTrainAllowed               *bool                                        `url:"merge_trains_skip_train_allowed,omitempty" json:"merge_trains_skip_train_allowed,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                              *int64                                       `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"`
	ResourceGroupDefaultProcessMode           *ResourceGroupProcessMode                    `url:"resource_group_default_process_mode,omitempty" json:"resource_group_default_process_mode,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"`
	MergeRequestTitleRegex                    *string                                      `url:"merge_request_title_regex,omitempty" json:"merge_request_title_regex,omitempty"`
	MergeRequestTitleRegexDescription         *string                                      `url:"merge_request_title_regex_description,omitempty" json:"merge_request_title_regex_description,omitempty"`
	// Deprecated: use Merge Request Approvals API instead
	ApprovalsBeforeMerge *int64 `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

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                *int64  `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

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

type Email struct {
	ID          int64      `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

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

type EmailsOnPushServiceProperties struct {
	Recipients             string `json:"recipients"`
	DisableDiffs           bool   `json:"disable_diffs"`
	SendFromCommitterEmail bool   `json:"send_from_committer_email"`
	BranchesToBeNotified   string `json:"branches_to_be_notified"`

	// Deprecated: to be removed in 2.0 - use EmailsOnPushService.PushEvents instead.
	PushEvents bool `json:"push_events"`
	// Deprecated: to be removed in 2.0 - use EmailsOnPushService.TagPushEvents instead.
	TagPushEvents bool `json:"tag_push_events"`
}

EmailsOnPushServiceProperties represents Emails on Push specific properties.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#emails-on-push

type EmojiEvent

type EmojiEvent struct {
	ObjectKind       string                     `json:"object_kind"`
	EventType        string                     `json:"event_type"`
	User             EventUser                  `json:"user"`
	ProjectID        int64                      `json:"project_id"`
	Project          EmojiEventProject          `json:"project"`
	ObjectAttributes EmojiEventObjectAttributes `json:"object_attributes"`
	Note             *EmojiEventNote            `json:"note,omitempty"`
	Issue            *EmojiEventIssue           `json:"issue,omitempty"`
	MergeRequest     *EmojiEventMergeRequest    `json:"merge_request,omitempty"`
	ProjectSnippet   *EmojiEventSnippet         `json:"project_snippet,omitempty"`
	Commit           *EmojiEventCommit          `json:"commit,omitempty"`
}

EmojiEvent represents an emoji event.

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

type EmojiEventCommit

type EmojiEventCommit struct {
	ID        string            `json:"id"`
	Title     string            `json:"title"`
	Message   string            `json:"message"`
	Timestamp *time.Time        `json:"timestamp"`
	URL       string            `json:"url"`
	Author    EventCommitAuthor `json:"author"`
}

EmojiEventCommit represents a commit in an emoji event.

type EmojiEventIssue

type EmojiEventIssue struct {
	ID                  int64         `json:"id"`
	IID                 int64         `json:"iid"`
	ProjectID           int64         `json:"project_id"`
	AuthorID            int64         `json:"author_id"`
	ClosedAt            *string       `json:"closed_at"`
	Confidential        bool          `json:"confidential"`
	CreatedAt           string        `json:"created_at"`
	Description         string        `json:"description"`
	DiscussionLocked    *bool         `json:"discussion_locked"`
	DueDate             *ISOTime      `json:"due_date"`
	LastEditedAt        *string       `json:"last_edited_at"`
	LastEditedByID      *int64        `json:"last_edited_by_id"`
	MilestoneID         *int64        `json:"milestone_id"`
	MovedToID           *int64        `json:"moved_to_id"`
	DuplicatedToID      *int64        `json:"duplicated_to_id"`
	RelativePosition    int64         `json:"relative_position"`
	StateID             StateID       `json:"state_id"`
	TimeEstimate        int64         `json:"time_estimate"`
	Title               string        `json:"title"`
	UpdatedAt           string        `json:"updated_at"`
	UpdatedByID         *int64        `json:"updated_by_id"`
	Weight              *int64        `json:"weight"`
	HealthStatus        *string       `json:"health_status"`
	URL                 string        `json:"url"`
	TotalTimeSpent      int64         `json:"total_time_spent"`
	TimeChange          int64         `json:"time_change"`
	HumanTotalTimeSpent *string       `json:"human_total_time_spent"`
	HumanTimeChange     *string       `json:"human_time_change"`
	HumanTimeEstimate   *string       `json:"human_time_estimate"`
	AssigneeIDs         []int64       `json:"assignee_ids"`
	AssigneeID          *int64        `json:"assignee_id"`
	Labels              []*EventLabel `json:"labels"`
	State               string        `json:"state"`
	Severity            string        `json:"severity"`
}

type EmojiEventMergeRequest

type EmojiEventMergeRequest struct {
	ID                        int64                       `json:"id"`
	TargetBranch              string                      `json:"target_branch"`
	SourceBranch              string                      `json:"source_branch"`
	SourceProjectID           int64                       `json:"source_project_id"`
	AuthorID                  int64                       `json:"author_id"`
	AssigneeID                int64                       `json:"assignee_id"`
	AssigneeIDs               []int64                     `json:"assignee_ids"`
	ReviewerIDs               []int64                     `json:"reviewer_ids"`
	Title                     string                      `json:"title"`
	CreatedAt                 string                      `json:"created_at"`
	UpdatedAt                 string                      `json:"updated_at"`
	MilestoneID               int64                       `json:"milestone_id"`
	State                     string                      `json:"state"`
	MergeStatus               string                      `json:"merge_status"`
	TargetProjectID           int64                       `json:"target_project_id"`
	IID                       int64                       `json:"iid"`
	Description               string                      `json:"description"`
	Position                  int64                       `json:"position"`
	Labels                    []*EventLabel               `json:"labels"`
	LockedAt                  string                      `json:"locked_at"`
	UpdatedByID               int64                       `json:"updated_by_id"`
	MergeError                string                      `json:"merge_error"`
	MergeParams               *MergeParams                `json:"merge_params"`
	MergeWhenPipelineSucceeds bool                        `json:"merge_when_pipeline_succeeds"`
	MergeUserID               int64                       `json:"merge_user_id"`
	MergeCommitSHA            string                      `json:"merge_commit_sha"`
	DeletedAt                 string                      `json:"deleted_at"`
	InProgressMergeCommitSHA  string                      `json:"in_progress_merge_commit_sha"`
	LockVersion               int64                       `json:"lock_version"`
	ApprovalsBeforeMerge      string                      `json:"approvals_before_merge"`
	RebaseCommitSHA           string                      `json:"rebase_commit_sha"`
	TimeEstimate              int64                       `json:"time_estimate"`
	Squash                    bool                        `json:"squash"`
	LastEditedAt              string                      `json:"last_edited_at"`
	LastEditedByID            int64                       `json:"last_edited_by_id"`
	Source                    *Repository                 `json:"source"`
	Target                    *Repository                 `json:"target"`
	LastCommit                EventMergeRequestLastCommit `json:"last_commit"`
	WorkInProgress            bool                        `json:"work_in_progress"`
	TotalTimeSpent            int64                       `json:"total_time_spent"`
	HeadPipelineID            int64                       `json:"head_pipeline_id"`
	Assignee                  *EventUser                  `json:"assignee"`
	DetailedMergeStatus       string                      `json:"detailed_merge_status"`
	URL                       string                      `json:"url"`
}

EmojiEventMergeRequest represents a merge request in an emoji event.

type EmojiEventNote

type EmojiEventNote struct {
	Attachment       *string       `json:"attachment"`
	AuthorID         int64         `json:"author_id"`
	ChangePosition   *NotePosition `json:"change_position"`
	CommitID         *string       `json:"commit_id"`
	CreatedAt        string        `json:"created_at"`
	DiscussionID     string        `json:"discussion_id"`
	ID               int64         `json:"id"`
	LineCode         *string       `json:"line_code"`
	Note             string        `json:"note"`
	NoteableID       int64         `json:"noteable_id"`
	NoteableType     string        `json:"noteable_type"`
	OriginalPosition *NotePosition `json:"original_position"`
	Position         *NotePosition `json:"position"`
	ProjectID        int64         `json:"project_id"`
	ResolvedAt       *string       `json:"resolved_at"`
	ResolvedByID     *int64        `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      *int64        `json:"updated_by_id"`
	Description      string        `json:"description"`
	URL              string        `json:"url"`
}

type EmojiEventObjectAttributes

type EmojiEventObjectAttributes struct {
	UserID        int64  `json:"user_id"`
	CreatedAt     string `json:"created_at"`
	ID            int64  `json:"id"`
	Name          string `json:"name"`
	AwardableType string `json:"awardable_type"`
	AwardableID   int64  `json:"awardable_id"`
	UpdatedAt     string `json:"updated_at"`
	Action        string `json:"action"`
	AwardedOnURL  string `json:"awarded_on_url"`
}

type EmojiEventProject

type EmojiEventProject struct {
	ID                int64  `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   int64  `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"`
}

EmojiEventProject represents a project in an emoji event.

type EmojiEventSnippet

type EmojiEventSnippet struct {
	ID                 int64  `json:"id"`
	Title              string `json:"title"`
	Content            string `json:"content"`
	AuthorID           int64  `json:"author_id"`
	ProjectID          int64  `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    int64  `json:"visibility_level"`
	Description        string `json:"description"`
	Secret             bool   `json:"secret"`
	RepositoryReadOnly bool   `json:"repository_read_only"`
}

EmojiEventSnippet represents a snippet in an emoji event.

type EnableDisableErrorTrackingOptions

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

type EnableProjectRunnerOptions struct {
	RunnerID int64 `json:"runner_id"`
}

EnableProjectRunnerOptions represents the available EnableProjectRunner() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#assign-a-runner-to-project

type EnabledGitAccessProtocolValue

type EnabledGitAccessProtocolValue string

EnabledGitAccessProtocolValue represents a git access protocol value.

const (
	EnabledGitAccessProtocolSSH  EnabledGitAccessProtocolValue = "ssh"
	EnabledGitAccessProtocolHTTP EnabledGitAccessProtocolValue = "http"
	EnabledGitAccessProtocolAll  EnabledGitAccessProtocolValue = "all"
)

type EnterpriseUsersService

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) DeleteEnterpriseUser

func (s *EnterpriseUsersService) DeleteEnterpriseUser(gid any, uid int64, opt *DeleteEnterpriseUserOptions, options ...RequestOptionFunc) (*Response, error)

DeleteEnterpriseUser deletes an specified enterprise user.

GitLab API docs: https://docs.gitlab.com/api/group_enterprise_users/#delete-an-enterprise-user

func (*EnterpriseUsersService) Disable2FAForEnterpriseUser

func (s *EnterpriseUsersService) Disable2FAForEnterpriseUser(gid any, uid int64, 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

func (s *EnterpriseUsersService) GetEnterpriseUser(gid any, uid int64, 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

func (s *EnterpriseUsersService) ListEnterpriseUsers(gid any, opt *ListEnterpriseUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)

type EnterpriseUsersServiceInterface

type EnterpriseUsersServiceInterface interface {
	// 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
	ListEnterpriseUsers(gid any, opt *ListEnterpriseUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)
	GetEnterpriseUser(gid any, uid int64, options ...RequestOptionFunc) (*User, *Response, error)
	Disable2FAForEnterpriseUser(gid any, uid int64, options ...RequestOptionFunc) (*Response, error)
	DeleteEnterpriseUser(gid any, uid int64, deleteOptions *DeleteEnterpriseUserOptions, options ...RequestOptionFunc) (*Response, error)
}

type Environment

type Environment struct {
	ID                  int64       `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

func (env Environment) String() string

type EnvironmentAccessDescription

type EnvironmentAccessDescription struct {
	ID                     int64            `json:"id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	UserID                 int64            `json:"user_id"`
	GroupID                int64            `json:"group_id"`
	GroupInheritanceType   int64            `json:"group_inheritance_type"`
}

EnvironmentAccessDescription represents the access description for a protected environment.

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

type EnvironmentAccessOptions

type EnvironmentAccessOptions struct {
	AccessLevel          *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	UserID               *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID              *int64            `url:"group_id,omitempty" json:"group_id,omitempty"`
	GroupInheritanceType *int64            `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
}

EnvironmentAccessOptions represents the options for an access description for a protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#protect-a-single-environment

type EnvironmentApprovalRule

type EnvironmentApprovalRule struct {
	ID                     int64            `json:"id"`
	UserID                 int64            `json:"user_id"`
	GroupID                int64            `json:"group_id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	RequiredApprovalCount  int64            `json:"required_approvals"`
	GroupInheritanceType   int64            `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

type EnvironmentApprovalRuleOptions struct {
	UserID                 *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID                *int64            `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  *int64            `url:"required_approvals,omitempty" json:"required_approvals,omitempty"`
	GroupInheritanceType   *int64            `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

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

func (s *EnvironmentsService) CreateEnvironment(pid any, opt *CreateEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)

func (*EnvironmentsService) DeleteEnvironment

func (s *EnvironmentsService) DeleteEnvironment(pid any, environment int64, options ...RequestOptionFunc) (*Response, error)

func (*EnvironmentsService) EditEnvironment

func (s *EnvironmentsService) EditEnvironment(pid any, environment int64, opt *EditEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)

func (*EnvironmentsService) GetEnvironment

func (s *EnvironmentsService) GetEnvironment(pid any, environment int64, options ...RequestOptionFunc) (*Environment, *Response, error)

func (*EnvironmentsService) ListEnvironments

func (s *EnvironmentsService) ListEnvironments(pid any, opts *ListEnvironmentsOptions, options ...RequestOptionFunc) ([]*Environment, *Response, error)

func (*EnvironmentsService) StopEnvironment

func (s *EnvironmentsService) StopEnvironment(pid any, environmentID int64, opt *StopEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)

type EnvironmentsServiceInterface

type EnvironmentsServiceInterface interface {
	// ListEnvironments gets a list of environments from a project, sorted by name
	// alphabetically.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/environments/#list-environments
	ListEnvironments(pid any, opts *ListEnvironmentsOptions, options ...RequestOptionFunc) ([]*Environment, *Response, error)
	GetEnvironment(pid any, environment int64, options ...RequestOptionFunc) (*Environment, *Response, error)
	CreateEnvironment(pid any, opt *CreateEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)
	EditEnvironment(pid any, environment int64, opt *EditEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)
	DeleteEnvironment(pid any, environment int64, options ...RequestOptionFunc) (*Response, error)
	StopEnvironment(pid any, environmentID int64, opt *StopEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error)
}

EnvironmentsServiceInterface defines all the API methods for the EnvironmentsService

type Epic

type Epic struct {
	ID                      int64       `json:"id"`
	IID                     int64       `json:"iid"`
	GroupID                 int64       `json:"group_id"`
	ParentID                int64       `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                 int64       `json:"upvotes"`
	Downvotes               int64       `json:"downvotes"`
	UserNotesCount          int64       `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

func (e Epic) String() string

String gets a string representation of an Epic.

Will be removed in v5 of the API, use Work Items API instead

type EpicAuthor

type EpicAuthor struct {
	ID        int64  `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

type EpicIssueAssignment struct {
	ID    int64  `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

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

func (s *EpicIssuesService) AssignEpicIssue(gid any, epic, issue int64, 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

func (s *EpicIssuesService) ListEpicIssues(gid any, epic int64, 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

func (s *EpicIssuesService) RemoveEpicIssue(gid any, epic, epicIssue int64, 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

func (s *EpicIssuesService) UpdateEpicIssueAssignment(gid any, epic, epicIssue int64, 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

type EpicIssuesServiceInterface interface {
	// Will be removed in v5 of the API, use Work Items API instead
	ListEpicIssues(gid any, epic int64, 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 int64, options ...RequestOptionFunc) (*EpicIssueAssignment, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	RemoveEpicIssue(gid any, epic, epicIssue int64, options ...RequestOptionFunc) (*EpicIssueAssignment, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	UpdateEpicIssueAssignment(gid any, epic, epicIssue int64, 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

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

func (s *EpicsService) CreateEpic(gid any, opt *CreateEpicOptions, options ...RequestOptionFunc) (*Epic, *Response, error)

func (*EpicsService) DeleteEpic

func (s *EpicsService) DeleteEpic(gid any, epic int64, 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

func (s *EpicsService) GetEpic(gid any, epic int64, 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 int64, 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

func (s *EpicsService) ListGroupEpics(gid any, opt *ListGroupEpicsOptions, options ...RequestOptionFunc) ([]*Epic, *Response, error)

func (*EpicsService) UpdateEpic

func (s *EpicsService) UpdateEpic(gid any, epic int64, 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

type EpicsServiceInterface interface {
	// 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
	ListGroupEpics(gid any, opt *ListGroupEpicsOptions, options ...RequestOptionFunc) ([]*Epic, *Response, error)

	// GetEpic gets a single group epic.
	// Will be removed in v5 of the API, use Work Items API instead
	GetEpic(gid any, epic int64, options ...RequestOptionFunc) (*Epic, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	GetEpicLinks(gid any, epic int64, options ...RequestOptionFunc) ([]*Epic, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	//
	// GitLab API docs: https://docs.gitlab.com/api/epics/#new-epic
	CreateEpic(gid any, opt *CreateEpicOptions, 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
	UpdateEpic(gid any, epic int64, opt *UpdateEpicOptions, options ...RequestOptionFunc) (*Epic, *Response, error)
	// Will be removed in v5 of the API, use Work Items API instead
	DeleteEpic(gid any, epic int64, 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

func (*ErrorResponse) HasStatusCode

func (e *ErrorResponse) HasStatusCode(statusCode int) bool

type ErrorTrackingClientKey

type ErrorTrackingClientKey struct {
	ID        int64  `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

func (p ErrorTrackingClientKey) String() string

type ErrorTrackingService

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

func (s *ErrorTrackingService) CreateClientKey(pid any, options ...RequestOptionFunc) (*ErrorTrackingClientKey, *Response, error)

func (*ErrorTrackingService) DeleteClientKey

func (s *ErrorTrackingService) DeleteClientKey(pid any, keyID int64, 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

func (s *ErrorTrackingService) EnableDisableErrorTracking(pid any, opt *EnableDisableErrorTrackingOptions, options ...RequestOptionFunc) (*ErrorTrackingSettings, *Response, error)

func (*ErrorTrackingService) GetErrorTrackingSettings

func (s *ErrorTrackingService) GetErrorTrackingSettings(pid any, options ...RequestOptionFunc) (*ErrorTrackingSettings, *Response, error)

func (*ErrorTrackingService) ListClientKeys

func (s *ErrorTrackingService) ListClientKeys(pid any, opt *ListClientKeysOptions, options ...RequestOptionFunc) ([]*ErrorTrackingClientKey, *Response, error)

type ErrorTrackingServiceInterface

type ErrorTrackingServiceInterface interface {
	// GetErrorTrackingSettings gets error tracking settings.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/error_tracking/#get-error-tracking-settings
	GetErrorTrackingSettings(pid any, 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
	EnableDisableErrorTracking(pid any, opt *EnableDisableErrorTrackingOptions, options ...RequestOptionFunc) (*ErrorTrackingSettings, *Response, error)

	// ListClientKeys lists error tracking project client keys.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/error_tracking/#list-project-client-keys
	ListClientKeys(pid any, opt *ListClientKeysOptions, 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
	CreateClientKey(pid any, options ...RequestOptionFunc) (*ErrorTrackingClientKey, *Response, error)

	// DeleteClientKey removes a client key from the project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/error_tracking/#delete-a-client-key
	DeleteClientKey(pid any, keyID int64, options ...RequestOptionFunc) (*Response, error)
}

ErrorTrackingServiceInterface defines all the API methods for the ErrorTrackingService

type ErrorTrackingSettings

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

func (p ErrorTrackingSettings) String() string

type EventChangesAssignees

type EventChangesAssignees struct {
	Previous []*EventUser `json:"previous"`
	Current  []*EventUser `json:"current"`
}

type EventChangesDescription

type EventChangesDescription struct {
	Previous string `json:"previous"`
	Current  string `json:"current"`
}

type EventChangesLabels

type EventChangesLabels struct {
	Previous []*EventLabel `json:"previous"`
	Current  []*EventLabel `json:"current"`
}

type EventChangesStateID

type EventChangesStateID struct {
	Previous StateID `json:"previous"`
	Current  StateID `json:"current"`
}

type EventChangesTitle

type EventChangesTitle struct {
	Previous string `json:"previous"`
	Current  string `json:"current"`
}

type EventChangesUpdatedAt

type EventChangesUpdatedAt struct {
	Previous string `json:"previous"`
	Current  string `json:"current"`
}

type EventChangesUpdatedByID

type EventChangesUpdatedByID struct {
	Previous int64 `json:"previous"`
	Current  int64 `json:"current"`
}

type EventCommitAuthor

type EventCommitAuthor struct {
	Name  string `json:"name"`
	Email string `json:"email"`
}

type EventEnvironment

type EventEnvironment struct {
	Name           string `json:"name"`
	Action         string `json:"action"`
	DeploymentTier string `json:"deployment_tier"`
}

type EventLabel

type EventLabel struct {
	ID          int64  `json:"id"`
	Title       string `json:"title"`
	Color       string `json:"color"`
	ProjectID   int64  `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     int64  `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 EventMergeRequestLastCommit

type EventMergeRequestLastCommit struct {
	ID        string            `json:"id"`
	Title     string            `json:"title"`
	Message   string            `json:"message"`
	Timestamp *time.Time        `json:"timestamp"`
	URL       string            `json:"url"`
	Author    EventCommitAuthor `json:"author"`
}

type EventSourcePipeline

type EventSourcePipeline struct {
	Project    EventSourcePipelineProject `json:"project"`
	PipelineID int64                      `json:"pipeline_id"`
	JobID      int64                      `json:"job_id"`
}

type EventSourcePipelineProject

type EventSourcePipelineProject struct {
	ID                int64  `json:"id"`
	WebURL            string `json:"web_url"`
	PathWithNamespace string `json:"path_with_namespace"`
}

type EventTargetTypeValue

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

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"
	EventTypeEmoji               EventType = "Emoji Hook"
	EventTypeFeatureFlag         EventType = "Feature Flag Hook"
	EventTypeIssue               EventType = "Issue Hook"
	EventTypeJob                 EventType = "Job Hook"
	EventTypeMember              EventType = "Member Hook"
	EventTypeMergeRequest        EventType = "Merge Request Hook"
	EventTypeMilestone           EventType = "Milestone Hook"
	EventTypeNote                EventType = "Note Hook"
	EventTypePipeline            EventType = "Pipeline Hook"
	EventTypeProject             EventType = "Project 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"
	EventTypeVulnerability       EventType = "Vulnerability Hook"
	EventTypeWikiPage            EventType = "Wiki Page Hook"
)

List of available event types.

func HookEventType

func HookEventType(r *http.Request) EventType

HookEventType returns the event type for the given request.

func WebhookEventType

func WebhookEventType(r *http.Request) EventType

WebhookEventType returns the event type for the given request.

type EventTypeValue

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

type EventUser struct {
	ID        int64  `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 event initiator or a merge assignee.

type EventsService

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

func (s *EventsService) ListCurrentUserContributionEvents(opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error)

func (*EventsService) ListProjectVisibleEvents

func (s *EventsService) ListProjectVisibleEvents(pid any, opt *ListProjectVisibleEventsOptions, options ...RequestOptionFunc) ([]*ProjectEvent, *Response, error)

type EventsServiceInterface

type EventsServiceInterface interface {
	// ListCurrentUserContributionEvents  retrieves all events
	// for the currently authenticated user.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/events/#list-all-events
	ListCurrentUserContributionEvents(opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error)

	// ListProjectVisibleEvents gets the events for the specified project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/events/#list-a-projects-visible-events
	ListProjectVisibleEvents(pid any, opt *ListProjectVisibleEventsOptions, options ...RequestOptionFunc) ([]*ProjectEvent, *Response, error)
}

EventsServiceInterface defines all the API methods for the EventsService

type ExploreSnippetsOptions

type ExploreSnippetsOptions struct {
	ListOptions
}

ExploreSnippetsOptions represents the available ExploreSnippets() options.

GitLab API docs: https://docs.gitlab.com/api/snippets/#list-all-public-snippets

type ExportStatus

type ExportStatus struct {
	ID                int64             `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             ExportStatusLinks `json:"_links"`
}

ExportStatus represents a project export status.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#export-status

func (ExportStatus) String

func (s ExportStatus) String() string
type ExportStatusLinks struct {
	APIURL string `json:"api_url"`
	WebURL string `json:"web_url"`
}

ExportStatusLinks represents the project export status links.

GitLab API docs: https://docs.gitlab.com/api/project_import_export/#export-status

func (ExportStatusLinks) String

func (l ExportStatusLinks) String() string

type ExternalStatusChecksService

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

func (s *ExternalStatusChecksService) CreateExternalStatusCheck(pid any, opt *CreateExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)

func (*ExternalStatusChecksService) CreateProjectExternalStatusCheck

func (s *ExternalStatusChecksService) CreateProjectExternalStatusCheck(pid any, opt *CreateProjectExternalStatusCheckOptions, options ...RequestOptionFunc) (*ProjectStatusCheck, *Response, error)

func (*ExternalStatusChecksService) DeleteExternalStatusCheck

func (s *ExternalStatusChecksService) DeleteExternalStatusCheck(pid any, check int64, options ...RequestOptionFunc) (*Response, error)

DeleteExternalStatusCheck deletes an external status check. Deprecated: to be removed in 1.0; use DeleteProjectExternalStatusCheck instead

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

func (*ExternalStatusChecksService) DeleteProjectExternalStatusCheck

func (s *ExternalStatusChecksService) DeleteProjectExternalStatusCheck(pid any, check int64, opt *DeleteProjectExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)

DeleteProjectExternalStatusCheck deletes an external status check.

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

func (*ExternalStatusChecksService) ListMergeStatusChecks

func (s *ExternalStatusChecksService) ListMergeStatusChecks(pid any, mr int64, 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. Deprecated: to be removed in 1.0; use ListProjectMergeRequestExternalStatusChecks instead

GitLab API docs: https://docs.gitlab.com/api/status_checks/#list-status-checks-for-a-merge-request

func (*ExternalStatusChecksService) ListProjectExternalStatusChecks

func (s *ExternalStatusChecksService) ListProjectExternalStatusChecks(pid any, opt *ListProjectExternalStatusChecksOptions, options ...RequestOptionFunc) ([]*ProjectStatusCheck, *Response, error)

func (*ExternalStatusChecksService) ListProjectMergeRequestExternalStatusChecks

func (s *ExternalStatusChecksService) ListProjectMergeRequestExternalStatusChecks(pid any, mr int64, opt *ListProjectMergeRequestExternalStatusChecksOptions, options ...RequestOptionFunc) ([]*MergeStatusCheck, *Response, error)

ListProjectMergeRequestExternalStatusChecks 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

func (s *ExternalStatusChecksService) ListProjectStatusChecks(pid any, opt *ListOptions, options ...RequestOptionFunc) ([]*ProjectStatusCheck, *Response, error)

func (*ExternalStatusChecksService) RetryFailedExternalStatusCheckForProjectMergeRequest

func (s *ExternalStatusChecksService) RetryFailedExternalStatusCheckForProjectMergeRequest(pid any, mergeRequest int64, externalStatusCheck int64, opt *RetryFailedExternalStatusCheckForProjectMergeRequestOptions, options ...RequestOptionFunc) (*Response, error)

RetryFailedExternalStatusCheckForProjectMergeRequest retries the specified failed external status check.

Gitlab API docs: https://docs.gitlab.com/api/status_checks/#retry-failed-status-check-for-a-merge-request

func (*ExternalStatusChecksService) RetryFailedStatusCheckForAMergeRequest

func (s *ExternalStatusChecksService) RetryFailedStatusCheckForAMergeRequest(pid any, mergeRequest int64, externalStatusCheck int64, options ...RequestOptionFunc) (*Response, error)

RetryFailedStatusCheckForAMergeRequest retries the specified failed external status check. Deprecated: to be removed in 1.0; use RetryFailedExternalStatusCheckForProjectMergeRequest instead

Gitlab API docs: https://docs.gitlab.com/api/status_checks/#retry-failed-status-check-for-a-merge-request

func (*ExternalStatusChecksService) SetExternalStatusCheckStatus

func (s *ExternalStatusChecksService) SetExternalStatusCheckStatus(pid any, mergeRequest int64, opt *SetExternalStatusCheckStatusOptions, options ...RequestOptionFunc) (*Response, error)

SetExternalStatusCheckStatus sets the status of an external status check. Deprecated: to be removed in 1.0; use SetProjectMergeRequestExternalStatusCheckStatus instead

Gitlab API docs: https://docs.gitlab.com/api/status_checks/#set-status-of-an-external-status-check

func (*ExternalStatusChecksService) SetProjectMergeRequestExternalStatusCheckStatus

func (s *ExternalStatusChecksService) SetProjectMergeRequestExternalStatusCheckStatus(pid any, mergeRequest int64, opt *SetProjectMergeRequestExternalStatusCheckStatusOptions, options ...RequestOptionFunc) (*Response, error)

SetProjectMergeRequestExternalStatusCheckStatus 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

func (s *ExternalStatusChecksService) UpdateExternalStatusCheck(pid any, check int64, opt *UpdateExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)

UpdateExternalStatusCheck updates an external status check. Deprecated: to be removed in 1.0; use UpdateProjectExternalStatusCheck instead

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

func (*ExternalStatusChecksService) UpdateProjectExternalStatusCheck

func (s *ExternalStatusChecksService) UpdateProjectExternalStatusCheck(pid any, check int64, opt *UpdateProjectExternalStatusCheckOptions, options ...RequestOptionFunc) (*ProjectStatusCheck, *Response, error)

UpdateProjectExternalStatusCheck updates an external status check.

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

type ExternalStatusChecksServiceInterface

type ExternalStatusChecksServiceInterface interface {
	// CreateExternalStatusCheck creates an external status check.
	// Deprecated: to be removed in 1.0; use CreateProjectExternalStatusCheck instead
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#create-external-status-check-service
	CreateExternalStatusCheck(pid any, opt *CreateExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)

	// DeleteExternalStatusCheck deletes an external status check.
	// Deprecated: to be removed in 1.0; use DeleteProjectExternalStatusCheck instead
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#delete-external-status-check-service
	DeleteExternalStatusCheck(pid any, check int64, options ...RequestOptionFunc) (*Response, error)

	// UpdateExternalStatusCheck updates an external status check.
	// Deprecated: to be removed in 1.0; use UpdateProjectExternalStatusCheck instead
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#update-external-status-check-service
	UpdateExternalStatusCheck(pid any, check int64, opt *UpdateExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)

	// ListMergeStatusChecks lists the external status checks that apply to it
	// and their status for a single merge request.
	// Deprecated: to be removed in 1.0; use ListProjectMergeRequestExternalStatusChecks instead
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#list-status-checks-for-a-merge-request
	ListMergeStatusChecks(pid any, mr int64, opt *ListOptions, options ...RequestOptionFunc) ([]*MergeStatusCheck, *Response, error)

	// ListProjectStatusChecks lists the project external status checks.
	// Deprecated: to be removed in 1.0; use ListProjectExternalStatusChecks instead
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#get-project-external-status-check-services
	ListProjectStatusChecks(pid any, opt *ListOptions, options ...RequestOptionFunc) ([]*ProjectStatusCheck, *Response, error)

	// RetryFailedStatusCheckForAMergeRequest retries the specified failed external status check.
	// Deprecated: to be removed in 1.0; use RetryFailedExternalStatusCheckForProjectMergeRequest instead
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#retry-failed-status-check-for-a-merge-request
	RetryFailedStatusCheckForAMergeRequest(pid any, mergeRequest int64, externalStatusCheck int64, options ...RequestOptionFunc) (*Response, error)

	// SetExternalStatusCheckStatus sets the status of an external status check.
	// Deprecated: to be removed in 1.0; use SetProjectMergeRequestExternalStatusCheckStatus instead
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#set-status-of-an-external-status-check
	SetExternalStatusCheckStatus(pid any, mergeRequest int64, opt *SetExternalStatusCheckStatusOptions, options ...RequestOptionFunc) (*Response, error)

	// ListProjectMergeRequestExternalStatusChecks 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
	ListProjectMergeRequestExternalStatusChecks(pid any, mr int64, opt *ListProjectMergeRequestExternalStatusChecksOptions, options ...RequestOptionFunc) ([]*MergeStatusCheck, *Response, error)

	// ListProjectExternalStatusChecks lists the project external status checks.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#get-project-external-status-check-services
	ListProjectExternalStatusChecks(pid any, opt *ListProjectExternalStatusChecksOptions, options ...RequestOptionFunc) ([]*ProjectStatusCheck, *Response, error)

	// RetryFailedExternalStatusCheckForProjectMergeRequest retries the specified failed external status check.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#retry-failed-status-check-for-a-merge-request
	RetryFailedExternalStatusCheckForProjectMergeRequest(pid any, mergeRequest int64, externalStatusCheck int64, opt *RetryFailedExternalStatusCheckForProjectMergeRequestOptions, options ...RequestOptionFunc) (*Response, error)

	// CreateProjectExternalStatusCheck creates an external status check.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#create-external-status-check-service
	CreateProjectExternalStatusCheck(pid any, opt *CreateProjectExternalStatusCheckOptions, options ...RequestOptionFunc) (*ProjectStatusCheck, *Response, error)

	// UpdateProjectExternalStatusCheck updates an external status check.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#update-external-status-check-service
	UpdateProjectExternalStatusCheck(pid any, check int64, opt *UpdateProjectExternalStatusCheckOptions, options ...RequestOptionFunc) (*ProjectStatusCheck, *Response, error)

	// DeleteProjectExternalStatusCheck deletes an external status check.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/status_checks/#delete-external-status-check-service
	DeleteProjectExternalStatusCheck(pid any, check int64, opt *DeleteProjectExternalStatusCheckOptions, options ...RequestOptionFunc) (*Response, error)

	// SetProjectMergeRequestExternalStatusCheckStatus 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
	SetProjectMergeRequestExternalStatusCheckStatus(pid any, mergeRequest int64, opt *SetProjectMergeRequestExternalStatusCheckStatusOptions, options ...RequestOptionFunc) (*Response, error)
}

ExternalStatusChecksServiceInterface defines all the API methods for the ExternalStatusChecksService

type ExternalWikiService

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

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

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

func (f Feature) String() string

type FeatureDefinition

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

func (fd FeatureDefinition) String() string

type FeatureFlagEvent

type FeatureFlagEvent struct {
	ObjectKind       string                           `json:"object_kind"`
	Project          FeatureFlagEventProject          `json:"project"`
	User             *EventUser                       `json:"user"`
	UserURL          string                           `json:"user_url"`
	ObjectAttributes FeatureFlagEventObjectAttributes `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 FeatureFlagEventObjectAttributes

type FeatureFlagEventObjectAttributes struct {
	ID          int64  `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	Active      bool   `json:"active"`
}

type FeatureFlagEventProject

type FeatureFlagEventProject struct {
	ID                int64   `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"`
	VisibilityLevel   int64   `json:"visibility_level"`
	CIConfigPath      string  `json:"ci_config_path"`
}

type FeatureFlagStrategyOptions

type FeatureFlagStrategyOptions struct {
	ID         *int64                               `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

type FeatureFlagUserList struct {
	Name      string     `url:"name" json:"name"`
	UserXIDs  string     `url:"user_xids" json:"user_xids"`
	ID        int64      `url:"id" json:"id"`
	IID       int64      `url:"iid" json:"iid"`
	ProjectID int64      `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

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

FeatureFlagUserListsService 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

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

func (s *FeatureFlagUserListsService) DeleteFeatureFlagUserList(pid any, iid int64, 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

func (s *FeatureFlagUserListsService) GetFeatureFlagUserList(pid any, iid int64, 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

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

func (s *FeatureFlagUserListsService) UpdateFeatureFlagUserList(pid any, iid int64, 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

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 int64, options ...RequestOptionFunc) (*FeatureFlagUserList, *Response, error)
	UpdateFeatureFlagUserList(pid any, iid int64, opt *UpdateFeatureFlagUserListOptions, options ...RequestOptionFunc) (*FeatureFlagUserList, *Response, error)
	DeleteFeatureFlagUserList(pid any, iid int64, options ...RequestOptionFunc) (*Response, error)
}

type FeaturesService

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

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

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

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

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

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 FetchStats

type FetchStats struct {
	Total int64      `json:"total"`
	Days  []DayStats `json:"days"`
}

type File

type File struct {
	FileName        string `json:"file_name"`
	FilePath        string `json:"file_path"`
	Size            int64  `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

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

type FileBlameRange struct {
	Commit FileBlameRangeCommit `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

func (b FileBlameRange) String() string

type FileBlameRangeCommit

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

FileBlameRangeCommit represents one item of blame information's commit.

GitLab API docs: https://docs.gitlab.com/api/repository_files/#get-file-blame-from-repository

func (FileBlameRangeCommit) String

func (c FileBlameRangeCommit) 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

type Finding struct {
	Confidence          string     `json:"confidence"`
	CreatedAt           *time.Time `json:"created_at"`
	ID                  int64      `json:"id"`
	LocationFingerprint string     `json:"location_fingerprint"`
	MetadataVersion     string     `json:"metadata_version"`
	Name                string     `json:"name"`
	PrimaryIdentifierID int64      `json:"primary_identifier_id"`
	ProjectFingerprint  string     `json:"project_fingerprint"`
	ProjectID           int64      `json:"project_id"`
	RawMetadata         string     `json:"raw_metadata"`
	ReportType          string     `json:"report_type"`
	ScannerID           int64      `json:"scanner_id"`
	Severity            string     `json:"severity"`
	UpdatedAt           *time.Time `json:"updated_at"`
	UUID                string     `json:"uuid"`
	VulnerabilityID     int64      `json:"vulnerability_id"`
}

Finding represents a GitLab project vulnerability finding. Deprecated: use GraphQL Query.vulnerabilities instead

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

type ForkParent

type ForkParent struct {
	ID                int64  `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

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                   *int64           `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

type FreezePeriod struct {
	ID           int64      `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

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

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

func (s *FreezePeriodsService) DeleteFreezePeriod(pid any, freezePeriod int64, 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

func (s *FreezePeriodsService) GetFreezePeriod(pid any, freezePeriod int64, 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

func (s *FreezePeriodsService) ListFreezePeriods(pid any, opt *ListFreezePeriodsOptions, options ...RequestOptionFunc) ([]*FreezePeriod, *Response, error)

ListFreezePeriods gets a list of project freeze periods.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#list-freeze-periods

func (*FreezePeriodsService) UpdateFreezePeriodOptions

func (s *FreezePeriodsService) UpdateFreezePeriodOptions(pid any, freezePeriod int64, 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

type FreezePeriodsServiceInterface interface {
	ListFreezePeriods(pid any, opt *ListFreezePeriodsOptions, options ...RequestOptionFunc) ([]*FreezePeriod, *Response, error)
	GetFreezePeriod(pid any, freezePeriod int64, options ...RequestOptionFunc) (*FreezePeriod, *Response, error)
	CreateFreezePeriodOptions(pid any, opt *CreateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error)
	UpdateFreezePeriodOptions(pid any, freezePeriod int64, opt *UpdateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error)
	DeleteFreezePeriod(pid any, freezePeriod int64, options ...RequestOptionFunc) (*Response, error)
}

FreezePeriodsServiceInterface defines all the API methods for the FreezePeriodsService

type GPGKey

type GPGKey struct {
	ID        int64      `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

type GPGSignature struct {
	KeyID              int64  `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        int64  `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

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

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

type GenericGraphQLErrors struct {
	Errors []struct {
		Message string `json:"message"`
	} `json:"errors"`
}

type GenericPackageSelectValue

type GenericPackageSelectValue string

GenericPackageSelectValue represents a generic package select value.

const (
	SelectPackageFile GenericPackageSelectValue = "package_file"
)

The available generic package select values.

type GenericPackageStatusValue

type GenericPackageStatusValue string

GenericPackageStatusValue represents a generic package status.

const (
	PackageDefault GenericPackageStatusValue = "default"
	PackageHidden  GenericPackageStatusValue = "hidden"
)

The available generic package statuses.

type GenericPackagesFile

type GenericPackagesFile struct {
	ID                     int64                  `json:"id"`
	PackageID              int64                  `json:"package_id"`
	CreatedAt              *time.Time             `json:"created_at"`
	UpdatedAt              *time.Time             `json:"updated_at"`
	Size                   int64                  `json:"size"`
	FileStore              int64                  `json:"file_store"`
	FileMD5                string                 `json:"file_md5"`
	FileSHA1               string                 `json:"file_sha1"`
	FileName               string                 `json:"file_name"`
	File                   GenericPackagesFileURL `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 int64                  `json:"verification_retry_count"`
	VerificationChecksum   string                 `json:"verification_checksum"`
	VerificationState      int64                  `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 GenericPackagesFileURL

type GenericPackagesFileURL struct {
	URL string `json:"url"`
}

GenericPackagesFileURL represents a GitLab generic package file URL.

GitLab API docs: https://docs.gitlab.com/user/packages/generic_packages/#publish-a-single-file

type GenericPackagesService

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

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

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

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

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

type GeoNode struct {
	ID                               int64        `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                 int64        `json:"files_max_capacity"`
	ReposMaxCapacity                 int64        `json:"repos_max_capacity"`
	VerificationMaxCapacity          int64        `json:"verification_max_capacity"`
	SelectiveSyncType                string       `json:"selective_sync_type"`
	SelectiveSyncShards              []string     `json:"selective_sync_shards"`
	SelectiveSyncNamespaceIDs        []int64      `json:"selective_sync_namespace_ids"`
	MinimumReverificationInterval    int64        `json:"minimum_reverification_interval"`
	ContainerRepositoriesMaxCapacity int64        `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

type GeoNodeStatus struct {
	GeoNodeID                                     int64  `json:"geo_node_id"`
	Healthy                                       bool   `json:"healthy"`
	Health                                        string `json:"health"`
	HealthStatus                                  string `json:"health_status"`
	MissingOauthApplication                       bool   `json:"missing_oauth_application"`
	AttachmentsCount                              int64  `json:"attachments_count"`
	AttachmentsSyncedCount                        int64  `json:"attachments_synced_count"`
	AttachmentsFailedCount                        int64  `json:"attachments_failed_count"`
	AttachmentsSyncedMissingOnPrimaryCount        int64  `json:"attachments_synced_missing_on_primary_count"`
	AttachmentsSyncedInPercentage                 string `json:"attachments_synced_in_percentage"`
	DbReplicationLagSeconds                       int64  `json:"db_replication_lag_seconds"`
	LfsObjectsCount                               int64  `json:"lfs_objects_count"`
	LfsObjectsSyncedCount                         int64  `json:"lfs_objects_synced_count"`
	LfsObjectsFailedCount                         int64  `json:"lfs_objects_failed_count"`
	LfsObjectsSyncedMissingOnPrimaryCount         int64  `json:"lfs_objects_synced_missing_on_primary_count"`
	LfsObjectsSyncedInPercentage                  string `json:"lfs_objects_synced_in_percentage"`
	JobArtifactsCount                             int64  `json:"job_artifacts_count"`
	JobArtifactsSyncedCount                       int64  `json:"job_artifacts_synced_count"`
	JobArtifactsFailedCount                       int64  `json:"job_artifacts_failed_count"`
	JobArtifactsSyncedMissingOnPrimaryCount       int64  `json:"job_artifacts_synced_missing_on_primary_count"`
	JobArtifactsSyncedInPercentage                string `json:"job_artifacts_synced_in_percentage"`
	ContainerRepositoriesCount                    int64  `json:"container_repositories_count"`
	ContainerRepositoriesSyncedCount              int64  `json:"container_repositories_synced_count"`
	ContainerRepositoriesFailedCount              int64  `json:"container_repositories_failed_count"`
	ContainerRepositoriesSyncedInPercentage       string `json:"container_repositories_synced_in_percentage"`
	DesignRepositoriesCount                       int64  `json:"design_repositories_count"`
	DesignRepositoriesSyncedCount                 int64  `json:"design_repositories_synced_count"`
	DesignRepositoriesFailedCount                 int64  `json:"design_repositories_failed_count"`
	DesignRepositoriesSyncedInPercentage          string `json:"design_repositories_synced_in_percentage"`
	ProjectsCount                                 int64  `json:"projects_count"`
	RepositoriesCount                             int64  `json:"repositories_count"`
	RepositoriesFailedCount                       int64  `json:"repositories_failed_count"`
	RepositoriesSyncedCount                       int64  `json:"repositories_synced_count"`
	RepositoriesSyncedInPercentage                string `json:"repositories_synced_in_percentage"`
	WikisCount                                    int64  `json:"wikis_count"`
	WikisFailedCount                              int64  `json:"wikis_failed_count"`
	WikisSyncedCount                              int64  `json:"wikis_synced_count"`
	WikisSyncedInPercentage                       string `json:"wikis_synced_in_percentage"`
	ReplicationSlotsCount                         int64  `json:"replication_slots_count"`
	ReplicationSlotsUsedCount                     int64  `json:"replication_slots_used_count"`
	ReplicationSlotsUsedInPercentage              string `json:"replication_slots_used_in_percentage"`
	ReplicationSlotsMaxRetainedWalBytes           int64  `json:"replication_slots_max_retained_wal_bytes"`
	RepositoriesCheckedCount                      int64  `json:"repositories_checked_count"`
	RepositoriesCheckedFailedCount                int64  `json:"repositories_checked_failed_count"`
	RepositoriesCheckedInPercentage               string `json:"repositories_checked_in_percentage"`
	RepositoriesChecksummedCount                  int64  `json:"repositories_checksummed_count"`
	RepositoriesChecksumFailedCount               int64  `json:"repositories_checksum_failed_count"`
	RepositoriesChecksummedInPercentage           string `json:"repositories_checksummed_in_percentage"`
	WikisChecksummedCount                         int64  `json:"wikis_checksummed_count"`
	WikisChecksumFailedCount                      int64  `json:"wikis_checksum_failed_count"`
	WikisChecksummedInPercentage                  string `json:"wikis_checksummed_in_percentage"`
	RepositoriesVerifiedCount                     int64  `json:"repositories_verified_count"`
	RepositoriesVerificationFailedCount           int64  `json:"repositories_verification_failed_count"`
	RepositoriesVerifiedInPercentage              string `json:"repositories_verified_in_percentage"`
	RepositoriesChecksumMismatchCount             int64  `json:"repositories_checksum_mismatch_count"`
	WikisVerifiedCount                            int64  `json:"wikis_verified_count"`
	WikisVerificationFailedCount                  int64  `json:"wikis_verification_failed_count"`
	WikisVerifiedInPercentage                     string `json:"wikis_verified_in_percentage"`
	WikisChecksumMismatchCount                    int64  `json:"wikis_checksum_mismatch_count"`
	RepositoriesRetryingVerificationCount         int64  `json:"repositories_retrying_verification_count"`
	WikisRetryingVerificationCount                int64  `json:"wikis_retrying_verification_count"`
	LastEventID                                   int64  `json:"last_event_id"`
	LastEventTimestamp                            int64  `json:"last_event_timestamp"`
	CursorLastEventID                             int64  `json:"cursor_last_event_id"`
	CursorLastEventTimestamp                      int64  `json:"cursor_last_event_timestamp"`
	LastSuccessfulStatusCheckTimestamp            int64  `json:"last_successful_status_check_timestamp"`
	Version                                       string `json:"version"`
	Revision                                      string `json:"revision"`
	MergeRequestDiffsCount                        int64  `json:"merge_request_diffs_count"`
	MergeRequestDiffsChecksumTotalCount           int64  `json:"merge_request_diffs_checksum_total_count"`
	MergeRequestDiffsChecksummedCount             int64  `json:"merge_request_diffs_checksummed_count"`
	MergeRequestDiffsChecksumFailedCount          int64  `json:"merge_request_diffs_checksum_failed_count"`
	MergeRequestDiffsSyncedCount                  int64  `json:"merge_request_diffs_synced_count"`
	MergeRequestDiffsFailedCount                  int64  `json:"merge_request_diffs_failed_count"`
	MergeRequestDiffsRegistryCount                int64  `json:"merge_request_diffs_registry_count"`
	MergeRequestDiffsVerificationTotalCount       int64  `json:"merge_request_diffs_verification_total_count"`
	MergeRequestDiffsVerifiedCount                int64  `json:"merge_request_diffs_verified_count"`
	MergeRequestDiffsVerificationFailedCount      int64  `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                             int64  `json:"package_files_count"`
	PackageFilesChecksumTotalCount                int64  `json:"package_files_checksum_total_count"`
	PackageFilesChecksummedCount                  int64  `json:"package_files_checksummed_count"`
	PackageFilesChecksumFailedCount               int64  `json:"package_files_checksum_failed_count"`
	PackageFilesSyncedCount                       int64  `json:"package_files_synced_count"`
	PackageFilesFailedCount                       int64  `json:"package_files_failed_count"`
	PackageFilesRegistryCount                     int64  `json:"package_files_registry_count"`
	PackageFilesVerificationTotalCount            int64  `json:"package_files_verification_total_count"`
	PackageFilesVerifiedCount                     int64  `json:"package_files_verified_count"`
	PackageFilesVerificationFailedCount           int64  `json:"package_files_verification_failed_count"`
	PackageFilesSyncedInPercentage                string `json:"package_files_synced_in_percentage"`
	PackageFilesVerifiedInPercentage              string `json:"package_files_verified_in_percentage"`
	PagesDeploymentsCount                         int64  `json:"pages_deployments_count"`
	PagesDeploymentsChecksumTotalCount            int64  `json:"pages_deployments_checksum_total_count"`
	PagesDeploymentsChecksummedCount              int64  `json:"pages_deployments_checksummed_count"`
	PagesDeploymentsChecksumFailedCount           int64  `json:"pages_deployments_checksum_failed_count"`
	PagesDeploymentsSyncedCount                   int64  `json:"pages_deployments_synced_count"`
	PagesDeploymentsFailedCount                   int64  `json:"pages_deployments_failed_count"`
	PagesDeploymentsRegistryCount                 int64  `json:"pages_deployments_registry_count"`
	PagesDeploymentsVerificationTotalCount        int64  `json:"pages_deployments_verification_total_count"`
	PagesDeploymentsVerifiedCount                 int64  `json:"pages_deployments_verified_count"`
	PagesDeploymentsVerificationFailedCount       int64  `json:"pages_deployments_verification_failed_count"`
	PagesDeploymentsSyncedInPercentage            string `json:"pages_deployments_synced_in_percentage"`
	PagesDeploymentsVerifiedInPercentage          string `json:"pages_deployments_verified_in_percentage"`
	TerraformStateVersionsCount                   int64  `json:"terraform_state_versions_count"`
	TerraformStateVersionsChecksumTotalCount      int64  `json:"terraform_state_versions_checksum_total_count"`
	TerraformStateVersionsChecksummedCount        int64  `json:"terraform_state_versions_checksummed_count"`
	TerraformStateVersionsChecksumFailedCount     int64  `json:"terraform_state_versions_checksum_failed_count"`
	TerraformStateVersionsSyncedCount             int64  `json:"terraform_state_versions_synced_count"`
	TerraformStateVersionsFailedCount             int64  `json:"terraform_state_versions_failed_count"`
	TerraformStateVersionsRegistryCount           int64  `json:"terraform_state_versions_registry_count"`
	TerraformStateVersionsVerificationTotalCount  int64  `json:"terraform_state_versions_verification_total_count"`
	TerraformStateVersionsVerifiedCount           int64  `json:"terraform_state_versions_verified_count"`
	TerraformStateVersionsVerificationFailedCount int64  `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                      int64  `json:"snippet_repositories_count"`
	SnippetRepositoriesChecksumTotalCount         int64  `json:"snippet_repositories_checksum_total_count"`
	SnippetRepositoriesChecksummedCount           int64  `json:"snippet_repositories_checksummed_count"`
	SnippetRepositoriesChecksumFailedCount        int64  `json:"snippet_repositories_checksum_failed_count"`
	SnippetRepositoriesSyncedCount                int64  `json:"snippet_repositories_synced_count"`
	SnippetRepositoriesFailedCount                int64  `json:"snippet_repositories_failed_count"`
	SnippetRepositoriesRegistryCount              int64  `json:"snippet_repositories_registry_count"`
	SnippetRepositoriesVerificationTotalCount     int64  `json:"snippet_repositories_verification_total_count"`
	SnippetRepositoriesVerifiedCount              int64  `json:"snippet_repositories_verified_count"`
	SnippetRepositoriesVerificationFailedCount    int64  `json:"snippet_repositories_verification_failed_count"`
	SnippetRepositoriesSyncedInPercentage         string `json:"snippet_repositories_synced_in_percentage"`
	SnippetRepositoriesVerifiedInPercentage       string `json:"snippet_repositories_verified_in_percentage"`
	GroupWikiRepositoriesCount                    int64  `json:"group_wiki_repositories_count"`
	GroupWikiRepositoriesChecksumTotalCount       int64  `json:"group_wiki_repositories_checksum_total_count"`
	GroupWikiRepositoriesChecksummedCount         int64  `json:"group_wiki_repositories_checksummed_count"`
	GroupWikiRepositoriesChecksumFailedCount      int64  `json:"group_wiki_repositories_checksum_failed_count"`
	GroupWikiRepositoriesSyncedCount              int64  `json:"group_wiki_repositories_synced_count"`
	GroupWikiRepositoriesFailedCount              int64  `json:"group_wiki_repositories_failed_count"`
	GroupWikiRepositoriesRegistryCount            int64  `json:"group_wiki_repositories_registry_count"`
	GroupWikiRepositoriesVerificationTotalCount   int64  `json:"group_wiki_repositories_verification_total_count"`
	GroupWikiRepositoriesVerifiedCount            int64  `json:"group_wiki_repositories_verified_count"`
	GroupWikiRepositoriesVerificationFailedCount  int64  `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                        int64  `json:"pipeline_artifacts_count"`
	PipelineArtifactsChecksumTotalCount           int64  `json:"pipeline_artifacts_checksum_total_count"`
	PipelineArtifactsChecksummedCount             int64  `json:"pipeline_artifacts_checksummed_count"`
	PipelineArtifactsChecksumFailedCount          int64  `json:"pipeline_artifacts_checksum_failed_count"`
	PipelineArtifactsSyncedCount                  int64  `json:"pipeline_artifacts_synced_count"`
	PipelineArtifactsFailedCount                  int64  `json:"pipeline_artifacts_failed_count"`
	PipelineArtifactsRegistryCount                int64  `json:"pipeline_artifacts_registry_count"`
	PipelineArtifactsVerificationTotalCount       int64  `json:"pipeline_artifacts_verification_total_count"`
	PipelineArtifactsVerifiedCount                int64  `json:"pipeline_artifacts_verified_count"`
	PipelineArtifactsVerificationFailedCount      int64  `json:"pipeline_artifacts_verification_failed_count"`
	PipelineArtifactsSyncedInPercentage           string `json:"pipeline_artifacts_synced_in_percentage"`
	PipelineArtifactsVerifiedInPercentage         string `json:"pipeline_artifacts_verified_in_percentage"`
	UploadsCount                                  int64  `json:"uploads_count"`
	UploadsSyncedCount                            int64  `json:"uploads_synced_count"`
	UploadsFailedCount                            int64  `json:"uploads_failed_count"`
	UploadsRegistryCount                          int64  `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

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

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

func (s *GeoNodesService) DeleteGeoNode(id int64, 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

func (s *GeoNodesService) EditGeoNode(id int64, 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

func (s *GeoNodesService) GetGeoNode(id int64, 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

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

func (s *GeoNodesService) RepairGeoNode(id int64, 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

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

func (s *GeoNodesService) RetrieveStatusOfGeoNode(id int64, 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

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(int64, ...RequestOptionFunc) (*GeoNode, *Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	EditGeoNode(int64, *UpdateGeoNodesOptions, ...RequestOptionFunc) (*GeoNode, *Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	DeleteGeoNode(int64, ...RequestOptionFunc) (*Response, error)
	// Deprecated: will be removed in v5 of the API, use Geo Sites API instead
	RepairGeoNode(int64, ...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(int64, ...RequestOptionFunc) (*GeoNodeStatus, *Response, error)
}

Deprecated: will be removed in v5 of the API, use Geo Sites API instead

type GeoSite

type GeoSite struct {
	ID                               int64        `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                 int64        `json:"files_max_capacity"`
	ReposMaxCapacity                 int64        `json:"repos_max_capacity"`
	VerificationMaxCapacity          int64        `json:"verification_max_capacity"`
	ContainerRepositoriesMaxCapacity int64        `json:"container_repositories_max_capacity"`
	SelectiveSyncType                string       `json:"selective_sync_type"`
	SelectiveSyncShards              []string     `json:"selective_sync_shards"`
	SelectiveSyncNamespaceIDs        []int64      `json:"selective_sync_namespace_ids"`
	MinimumReverificationInterval    int64        `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

type GeoSiteStatus struct {
	GeoNodeID                                       int64             `json:"geo_node_id"`
	ProjectsCount                                   int64             `json:"projects_count"`
	ContainerRepositoriesReplicationEnabled         bool              `json:"container_repositories_replication_enabled"`
	LFSObjectsCount                                 int64             `json:"lfs_objects_count"`
	LFSObjectsChecksumTotalCount                    int64             `json:"lfs_objects_checksum_total_count"`
	LFSObjectsChecksummedCount                      int64             `json:"lfs_objects_checksummed_count"`
	LFSObjectsChecksumFailedCount                   int64             `json:"lfs_objects_checksum_failed_count"`
	LFSObjectsSyncedCount                           int64             `json:"lfs_objects_synced_count"`
	LFSObjectsFailedCount                           int64             `json:"lfs_objects_failed_count"`
	LFSObjectsRegistryCount                         int64             `json:"lfs_objects_registry_count"`
	LFSObjectsVerificationTotalCount                int64             `json:"lfs_objects_verification_total_count"`
	LFSObjectsVerifiedCount                         int64             `json:"lfs_objects_verified_count"`
	LFSObjectsVerificationFailedCount               int64             `json:"lfs_objects_verification_failed_count"`
	MergeRequestDiffsCount                          int64             `json:"merge_request_diffs_count"`
	MergeRequestDiffsChecksumTotalCount             int64             `json:"merge_request_diffs_checksum_total_count"`
	MergeRequestDiffsChecksummedCount               int64             `json:"merge_request_diffs_checksummed_count"`
	MergeRequestDiffsChecksumFailedCount            int64             `json:"merge_request_diffs_checksum_failed_count"`
	MergeRequestDiffsSyncedCount                    int64             `json:"merge_request_diffs_synced_count"`
	MergeRequestDiffsFailedCount                    int64             `json:"merge_request_diffs_failed_count"`
	MergeRequestDiffsRegistryCount                  int64             `json:"merge_request_diffs_registry_count"`
	MergeRequestDiffsVerificationTotalCount         int64             `json:"merge_request_diffs_verification_total_count"`
	MergeRequestDiffsVerifiedCount                  int64             `json:"merge_request_diffs_verified_count"`
	MergeRequestDiffsVerificationFailedCount        int64             `json:"merge_request_diffs_verification_failed_count"`
	PackageFilesCount                               int64             `json:"package_files_count"`
	PackageFilesChecksumTotalCount                  int64             `json:"package_files_checksum_total_count"`
	PackageFilesChecksummedCount                    int64             `json:"package_files_checksummed_count"`
	PackageFilesChecksumFailedCount                 int64             `json:"package_files_checksum_failed_count"`
	PackageFilesSyncedCount                         int64             `json:"package_files_synced_count"`
	PackageFilesFailedCount                         int64             `json:"package_files_failed_count"`
	PackageFilesRegistryCount                       int64             `json:"package_files_registry_count"`
	PackageFilesVerificationTotalCount              int64             `json:"package_files_verification_total_count"`
	PackageFilesVerifiedCount                       int64             `json:"package_files_verified_count"`
	PackageFilesVerificationFailedCount             int64             `json:"package_files_verification_failed_count"`
	TerraformStateVersionsCount                     int64             `json:"terraform_state_versions_count"`
	TerraformStateVersionsChecksumTotalCount        int64             `json:"terraform_state_versions_checksum_total_count"`
	TerraformStateVersionsChecksummedCount          int64             `json:"terraform_state_versions_checksummed_count"`
	TerraformStateVersionsChecksumFailedCount       int64             `json:"terraform_state_versions_checksum_failed_count"`
	TerraformStateVersionsSyncedCount               int64             `json:"terraform_state_versions_synced_count"`
	TerraformStateVersionsFailedCount               int64             `json:"terraform_state_versions_failed_count"`
	TerraformStateVersionsRegistryCount             int64             `json:"terraform_state_versions_registry_count"`
	TerraformStateVersionsVerificationTotalCount    int64             `json:"terraform_state_versions_verification_total_count"`
	TerraformStateVersionsVerifiedCount             int64             `json:"terraform_state_versions_verified_count"`
	TerraformStateVersionsVerificationFailedCount   int64             `json:"terraform_state_versions_verification_failed_count"`
	SnippetRepositoriesCount                        int64             `json:"snippet_repositories_count"`
	SnippetRepositoriesChecksumTotalCount           int64             `json:"snippet_repositories_checksum_total_count"`
	SnippetRepositoriesChecksummedCount             int64             `json:"snippet_repositories_checksummed_count"`
	SnippetRepositoriesChecksumFailedCount          int64             `json:"snippet_repositories_checksum_failed_count"`
	SnippetRepositoriesSyncedCount                  int64             `json:"snippet_repositories_synced_count"`
	SnippetRepositoriesFailedCount                  int64             `json:"snippet_repositories_failed_count"`
	SnippetRepositoriesRegistryCount                int64             `json:"snippet_repositories_registry_count"`
	SnippetRepositoriesVerificationTotalCount       int64             `json:"snippet_repositories_verification_total_count"`
	SnippetRepositoriesVerifiedCount                int64             `json:"snippet_repositories_verified_count"`
	SnippetRepositoriesVerificationFailedCount      int64             `json:"snippet_repositories_verification_failed_count"`
	GroupWikiRepositoriesCount                      int64             `json:"group_wiki_repositories_count"`
	GroupWikiRepositoriesChecksumTotalCount         int64             `json:"group_wiki_repositories_checksum_total_count"`
	GroupWikiRepositoriesChecksummedCount           int64             `json:"group_wiki_repositories_checksummed_count"`
	GroupWikiRepositoriesChecksumFailedCount        int64             `json:"group_wiki_repositories_checksum_failed_count"`
	GroupWikiRepositoriesSyncedCount                int64             `json:"group_wiki_repositories_synced_count"`
	GroupWikiRepositoriesFailedCount                int64             `json:"group_wiki_repositories_failed_count"`
	GroupWikiRepositoriesRegistryCount              int64             `json:"group_wiki_repositories_registry_count"`
	GrupWikiRepositoriesVerificationTotalCount      int64             `json:"group_wiki_repositories_verification_total_count"`
	GroupWikiRepositoriesVerifiedCount              int64             `json:"group_wiki_repositories_verified_count"`
	GroupWikiRepositoriesVerificationFailedCount    int64             `json:"group_wiki_repositories_verification_failed_count"`
	PipelineArtifactsCount                          int64             `json:"pipeline_artifacts_count"`
	PipelineArtifactsChecksumTotalCount             int64             `json:"pipeline_artifacts_checksum_total_count"`
	PipelineArtifactsChecksummedCount               int64             `json:"pipeline_artifacts_checksummed_count"`
	PipelineArtifactsChecksumFailedCount            int64             `json:"pipeline_artifacts_checksum_failed_count"`
	PipelineArtifactsSyncedCount                    int64             `json:"pipeline_artifacts_synced_count"`
	PipelineArtifactsFailedCount                    int64             `json:"pipeline_artifacts_failed_count"`
	PipelineArtifactsRegistryCount                  int64             `json:"pipeline_artifacts_registry_count"`
	PipelineArtifactsVerificationTotalCount         int64             `json:"pipeline_artifacts_verification_total_count"`
	PipelineArtifactsVerifiedCount                  int64             `json:"pipeline_artifacts_verified_count"`
	PipelineArtifactsVerificationFailedCount        int64             `json:"pipeline_artifacts_verification_failed_count"`
	PagesDeploymentsCount                           int64             `json:"pages_deployments_count"`
	PagesDeploymentsChecksumTotalCount              int64             `json:"pages_deployments_checksum_total_count"`
	PagesDeploymentsChecksummedCount                int64             `json:"pages_deployments_checksummed_count"`
	PagesDeploymentsChecksumFailedCount             int64             `json:"pages_deployments_checksum_failed_count"`
	PagesDeploymentsSyncedCount                     int64             `json:"pages_deployments_synced_count"`
	PagesDeploymentsFailedCount                     int64             `json:"pages_deployments_failed_count"`
	PagesDeploymentsRegistryCount                   int64             `json:"pages_deployments_registry_count"`
	PagesDeploymentsVerificationTotalCount          int64             `json:"pages_deployments_verification_total_count"`
	PagesDeploymentsVerifiedCount                   int64             `json:"pages_deployments_verified_count"`
	PagesDeploymentsVerificationFailedCount         int64             `json:"pages_deployments_verification_failed_count"`
	UploadsCount                                    int64             `json:"uploads_count"`
	UploadsChecksumTotalCount                       int64             `json:"uploads_checksum_total_count"`
	UploadsChecksummedCount                         int64             `json:"uploads_checksummed_count"`
	UploadsChecksumFailedCount                      int64             `json:"uploads_checksum_failed_count"`
	UploadsSyncedCount                              int64             `json:"uploads_synced_count"`
	UploadsFailedCount                              int64             `json:"uploads_failed_count"`
	UploadsRegistryCount                            int64             `json:"uploads_registry_count"`
	UploadsVerificationTotalCount                   int64             `json:"uploads_verification_total_count"`
	UploadsVerifiedCount                            int64             `json:"uploads_verified_count"`
	UploadsVerificationFailedCount                  int64             `json:"uploads_verification_failed_count"`
	JobArtifactsCount                               int64             `json:"job_artifacts_count"`
	JobArtifactsChecksumTotalCount                  int64             `json:"job_artifacts_checksum_total_count"`
	JobArtifactsChecksummedCount                    int64             `json:"job_artifacts_checksummed_count"`
	JobArtifactsChecksumFailedCount                 int64             `json:"job_artifacts_checksum_failed_count"`
	JobArtifactsSyncedCount                         int64             `json:"job_artifacts_synced_count"`
	JobArtifactsFailedCount                         int64             `json:"job_artifacts_failed_count"`
	JobArtifactsRegistryCount                       int64             `json:"job_artifacts_registry_count"`
	JobArtifactsVerificationTotalCount              int64             `json:"job_artifacts_verification_total_count"`
	JobArtifactsVerifiedCount                       int64             `json:"job_artifacts_verified_count"`
	JobArtifactsVerificationFailedCount             int64             `json:"job_artifacts_verification_failed_count"`
	CISecureFilesCount                              int64             `json:"ci_secure_files_count"`
	CISecureFilesChecksumTotalCount                 int64             `json:"ci_secure_files_checksum_total_count"`
	CISecureFilesChecksummedCount                   int64             `json:"ci_secure_files_checksummed_count"`
	CISecureFilesChecksumFailedCount                int64             `json:"ci_secure_files_checksum_failed_count"`
	CISecureFilesSyncedCount                        int64             `json:"ci_secure_files_synced_count"`
	CISecureFilesFailedCount                        int64             `json:"ci_secure_files_failed_count"`
	CISecureFilesRegistryCount                      int64             `json:"ci_secure_files_registry_count"`
	CISecureFilesVerificationTotalCount             int64             `json:"ci_secure_files_verification_total_count"`
	CISecureFilesVerifiedCount                      int64             `json:"ci_secure_files_verified_count"`
	CISecureFilesVerificationFailedCount            int64             `json:"ci_secure_files_verification_failed_count"`
	ContainerRepositoriesCount                      int64             `json:"container_repositories_count"`
	ContainerRepositoriesChecksumTotalCount         int64             `json:"container_repositories_checksum_total_count"`
	ContainerRepositoriesChecksummedCount           int64             `json:"container_repositories_checksummed_count"`
	ContainerRepositoriesChecksumFailedCount        int64             `json:"container_repositories_checksum_failed_count"`
	ContainerRepositoriesSyncedCount                int64             `json:"container_repositories_synced_count"`
	ContainerRepositoriesFailedCount                int64             `json:"container_repositories_failed_count"`
	ContainerRepositoriesRegistryCount              int64             `json:"container_repositories_registry_count"`
	ContainerRepositoriesVerificationTotalCount     int64             `json:"container_repositories_verification_total_count"`
	ContainerRepositoriesVerifiedCount              int64             `json:"container_repositories_verified_count"`
	ContainerRepositoriesVerificationFailedCount    int64             `json:"container_repositories_verification_failed_count"`
	DependencyProxyBlobsCount                       int64             `json:"dependency_proxy_blobs_count"`
	DependencyProxyBlobsChecksumTotalCount          int64             `json:"dependency_proxy_blobs_checksum_total_count"`
	DependencyProxyBlobsChecksummedCount            int64             `json:"dependency_proxy_blobs_checksummed_count"`
	DependencyProxyBlobsChecksumFailedCount         int64             `json:"dependency_proxy_blobs_checksum_failed_count"`
	DependencyProxyBlobsSyncedCount                 int64             `json:"dependency_proxy_blobs_synced_count"`
	DependencyProxyBlobsFailedCount                 int64             `json:"dependency_proxy_blobs_failed_count"`
	DependencyProxyBlobsRegistryCount               int64             `json:"dependency_proxy_blobs_registry_count"`
	DependencyProxyBlobsVerificationTotalCount      int64             `json:"dependency_proxy_blobs_verification_total_count"`
	DependencyProxyBlobsVerifiedCount               int64             `json:"dependency_proxy_blobs_verified_count"`
	DependencyProxyBlobsVerificationFailedCount     int64             `json:"dependency_proxy_blobs_verification_failed_count"`
	DependencyProxyManifestsCount                   int64             `json:"dependency_proxy_manifests_count"`
	DependencyProxyManifestsChecksumTotalCount      int64             `json:"dependency_proxy_manifests_checksum_total_count"`
	DependencyProxyManifestsChecksummedCount        int64             `json:"dependency_proxy_manifests_checksummed_count"`
	DependencyProxyManifestsChecksumFailedCount     int64             `json:"dependency_proxy_manifests_checksum_failed_count"`
	DependencyProxyManifestsSyncedCount             int64             `json:"dependency_proxy_manifests_synced_count"`
	DependencyProxyManifestsFailedCount             int64             `json:"dependency_proxy_manifests_failed_count"`
	DependencyProxyManifestsRegistryCount           int64             `json:"dependency_proxy_manifests_registry_count"`
	DependencyProxyManifestsVerificationTotalCount  int64             `json:"dependency_proxy_manifests_verification_total_count"`
	DependencyProxyManifestsVerifiedCount           int64             `json:"dependency_proxy_manifests_verified_count"`
	DependencyProxyManifestsVerificationFailedCount int64             `json:"dependency_proxy_manifests_verification_failed_count"`
	ProjectWikiRepositoriesCount                    int64             `json:"project_wiki_repositories_count"`
	ProjectWikiRepositoriesChecksumTotalCount       int64             `json:"project_wiki_repositories_checksum_total_count"`
	ProjectWikiRepositoriesChecksummedCount         int64             `json:"project_wiki_repositories_checksummed_count"`
	ProjectWikiRepositoriesChecksumFailedCount      int64             `json:"project_wiki_repositories_checksum_failed_count"`
	ProjectWikiRepositoriesSyncedCount              int64             `json:"project_wiki_repositories_synced_count"`
	ProjectWikiRepositoriesFailedCount              int64             `json:"project_wiki_repositories_failed_count"`
	ProjectWikiRepositoriesRegistryCount            int64             `json:"project_wiki_repositories_registry_count"`
	ProjectWikiRepositoriesVerificationTotalCount   int64             `json:"project_wiki_repositories_verification_total_count"`
	ProjectWikiRepositoriesVerifiedCount            int64             `json:"project_wiki_repositories_verified_count"`
	ProjectWikiRepositoriesVerificationFailedCount  int64             `json:"project_wiki_repositories_verification_failed_count"`
	GitFetchEventCountWeekly                        int64             `json:"git_fetch_event_count_weekly"`
	GitPushEventCountWeekly                         int64             `json:"git_push_event_count_weekly"`
	ProxyRemoteRequestsEventCountWeekly             int64             `json:"proxy_remote_requests_event_count_weekly"`
	ProxyLocalRequestsEventCountWeekly              int64             `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                           int64             `json:"replication_slots_count"`
	ReplicationSlotsUsedCount                       int64             `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                         int64             `json:"db_replication_lag_seconds"`
	ReplicationSlotsMaxRetainedWalBytes             int64             `json:"replication_slots_max_retained_wal_bytes"`
	RepositoriesCheckedCount                        int64             `json:"repositories_checked_count"`
	RepositoriesCheckedFailedCount                  int64             `json:"repositories_checked_failed_count"`
	LastEventID                                     int64             `json:"last_event_id"`
	LastEventTimestamp                              int64             `json:"last_event_timestamp"`
	CursorLastEventID                               int64             `json:"cursor_last_event_id"`
	CursorLastEventTimestamp                        int64             `json:"cursor_last_event_timestamp"`
	LastSuccessfulStatusCheckTimestamp              int64             `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/#list-all-geo-site-statuses

type GeoSiteStatusLink struct {
	Self string `json:"self"`
	Site string `json:"site"`
}

GeoSiteStatusLink represents the links for a GitLab Geo Site status.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#list-all-geo-site-statuses

type GeoSitesService

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

func (s *GeoSitesService) CreateGeoSite(opt *CreateGeoSitesOptions, options ...RequestOptionFunc) (*GeoSite, *Response, error)

func (*GeoSitesService) DeleteGeoSite

func (s *GeoSitesService) DeleteGeoSite(id int64, options ...RequestOptionFunc) (*Response, error)

func (*GeoSitesService) EditGeoSite

func (s *GeoSitesService) EditGeoSite(id int64, opt *EditGeoSiteOptions, options ...RequestOptionFunc) (*GeoSite, *Response, error)

func (*GeoSitesService) GetGeoSite

func (s *GeoSitesService) GetGeoSite(id int64, options ...RequestOptionFunc) (*GeoSite, *Response, error)

func (*GeoSitesService) GetStatusOfGeoSite

func (s *GeoSitesService) GetStatusOfGeoSite(id int64, options ...RequestOptionFunc) (*GeoSiteStatus, *Response, error)

func (*GeoSitesService) ListGeoSites

func (s *GeoSitesService) ListGeoSites(opt *ListGeoSitesOptions, options ...RequestOptionFunc) ([]*GeoSite, *Response, error)

func (*GeoSitesService) ListStatusOfAllGeoSites

func (s *GeoSitesService) ListStatusOfAllGeoSites(opt *ListStatusOfAllGeoSitesOptions, options ...RequestOptionFunc) ([]*GeoSiteStatus, *Response, error)

func (*GeoSitesService) RepairGeoSite

func (s *GeoSitesService) RepairGeoSite(id int64, options ...RequestOptionFunc) (*GeoSite, *Response, error)

type GeoSitesServiceInterface

type GeoSitesServiceInterface interface {
	// CreateGeoSite creates a new Geo Site.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/geo_sites/#create-a-new-geo-site
	CreateGeoSite(*CreateGeoSitesOptions, ...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
	ListGeoSites(*ListGeoSitesOptions, ...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
	GetGeoSite(int64, ...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
	EditGeoSite(int64, *EditGeoSiteOptions, ...RequestOptionFunc) (*GeoSite, *Response, error)
	// DeleteGeoSite removes the Geo site.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/geo_sites/#delete-a-geo-site
	DeleteGeoSite(int64, ...RequestOptionFunc) (*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
	RepairGeoSite(int64, ...RequestOptionFunc) (*GeoSite, *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
	ListStatusOfAllGeoSites(*ListStatusOfAllGeoSitesOptions, ...RequestOptionFunc) ([]*GeoSiteStatus, *Response, error)
	// GetStatusOfGeoSite gets the status of a specific Geo Site.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/geo_sites/#retrieve-status-about-a-specific-geo-site
	GetStatusOfGeoSite(int64, ...RequestOptionFunc) (*GeoSiteStatus, *Response, error)
}

type GetAllImpersonationTokensOptions

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

type GetAvatarOptions struct {
	Email *string `url:"email,omitempty" json:"email,omitempty"`
	Size  *int64  `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

type GetCommitCommentsOptions struct {
	ListOptions
}

GetCommitCommentsOptions represents the available GetCommitComments() options.

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

type GetCommitDiffOptions

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

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

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"`
	PipelineID *int64  `url:"pipeline_id,omitempty" json:"pipeline_id,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

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

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

type GetFileBlameOptions struct {
	Ref        *string `url:"ref,omitempty" json:"ref,omitempty"`
	RangeStart *int64  `url:"range[start],omitempty" json:"range[start],omitempty"`
	RangeEnd   *int64  `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

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

type GetGroupIssuesStatisticsOptions struct {
	Labels           *LabelOptions `url:"labels,omitempty" json:"labels,omitempty"`
	IIDs             *[]int64      `url:"iids[],omitempty" json:"iids,omitempty"`
	Milestone        *string       `url:"milestone,omitempty" json:"milestone,omitempty"`
	Scope            *string       `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID         *int64        `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername   *string       `url:"author_username,omitempty" json:"author_username,omitempty"`
	AssigneeID       *int64        `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

type GetGroupMilestoneBurndownChartEventsOptions struct {
	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

type GetGroupMilestoneIssuesOptions struct {
	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

type GetGroupMilestoneMergeRequestsOptions struct {
	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

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

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

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

type GetIssueBoardListsOptions struct {
	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

type GetIssuesClosedOnMergeOptions struct {
	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

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         *int64        `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername   *string       `url:"author_username,omitempty" json:"author_username,omitempty"`
	AssigneeID       *int64        `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             *[]int64      `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

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

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

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

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

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

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

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

type GetMergeRequestCommitsOptions struct {
	ListOptions
}

GetMergeRequestCommitsOptions represents the available GetMergeRequestCommits() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-single-merge-request-commits

type GetMergeRequestDiffVersionsOptions

type GetMergeRequestDiffVersionsOptions struct {
	ListOptions
}

GetMergeRequestDiffVersionsOptions represents the available GetMergeRequestDiffVersions() options.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#get-merge-request-diff-versions

type GetMergeRequestsOptions

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 struct {
	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

type GetMilestoneMergeRequestsOptions struct {
	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

type GetProjectApprovalRulesListsOptions struct {
	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

type GetProjectIssuesStatisticsOptions struct {
	IIDs             *[]int64      `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         *int64        `url:"author_id,omitempty" json:"author_id,omitempty"`
	AuthorUsername   *string       `url:"author_username,omitempty" json:"author_username,omitempty"`
	AssigneeID       *int64        `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

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

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

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

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

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

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

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

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

type GetUserActivitiesOptions struct {
	ListOptions
	From *ISOTime `url:"from,omitempty" json:"from,omitempty"`
}

GetUserActivitiesOptions represents the options for GetUserActivities

GitLab API docs: https://docs.gitlab.com/api/users/#list-a-users-activity

type GetUserMembershipOptions

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 GetUserOptions

type GetUserOptions struct {
	WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
}

GetUserOptions represents the available GetUser() options.

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

type GetWikiPageOptions

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

type GitHubImport struct {
	ID                    int64  `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

func (s GitHubImport) String() string

type GitIgnoreTemplate

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

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

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

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

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

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

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

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 GoogleChatIntegration

type GoogleChatIntegration struct {
	Integration
	Properties GoogleChatIntegrationProperties `json:"properties"`
}

GoogleChatIntegration represents the Google Chat integration settings.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#google-chat

type GoogleChatIntegrationProperties

type GoogleChatIntegrationProperties struct {
	NotifyOnlyBrokenPipelines           bool   `json:"notify_only_broken_pipelines,omitempty"`
	NotifyOnlyWhenPipelineStatusChanges bool   `json:"notify_only_when_pipeline_status_changes,omitempty"`
	NotifyOnlyDefaultBranch             bool   `json:"notify_only_default_branch,omitempty"`
	BranchesToBeNotified                string `json:"branches_to_be_notified,omitempty"`
	PushEvents                          bool   `json:"push_events,omitempty"`
	IssuesEvents                        bool   `json:"issues_events,omitempty"`
	ConfidentialIssuesEvents            bool   `json:"confidential_issues_events,omitempty"`
	MergeRequestsEvents                 bool   `json:"merge_requests_events,omitempty"`
	TagPushEvents                       bool   `json:"tag_push_events,omitempty"`
	NoteEvents                          bool   `json:"note_events,omitempty"`
	ConfidentialNoteEvents              bool   `json:"confidential_note_events,omitempty"`
	PipelineEvents                      bool   `json:"pipeline_events,omitempty"`
	WikiPageEvents                      bool   `json:"wiki_page_events,omitempty"`
}

GoogleChatIntegrationProperties represents Google Chat specific properties.

type GraphQL

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

func (*GraphQL) Do

func (g *GraphQL) Do(query GraphQLQuery, response any, options ...RequestOptionFunc) (*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(GraphQLQuery{Query: `query { project(fullPath: "gitlab-org/gitlab") { id } }`}, &response, gitlab.WithContext(ctx))

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

type GraphQLInterface

type GraphQLInterface interface {
	Do(query GraphQLQuery, response any, options ...RequestOptionFunc) (*Response, error)
}

type GraphQLQuery

type GraphQLQuery struct {
	Query     string         `json:"query"`
	Variables map[string]any `json:"variables,omitempty"`
}

type GraphQLResponseError

type GraphQLResponseError struct {
	Err    error
	Errors GenericGraphQLErrors
}

func (*GraphQLResponseError) Error

func (e *GraphQLResponseError) Error() string

type Group

type Group struct {
	ID                              int64                      `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"`
	MaxArtifactsSize                int64                      `json:"max_artifacts_size"`
	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           int64                      `json:"file_template_project_id"`
	ParentID                        int64                      `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            int64                      `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       int64                      `json:"shared_runners_minutes_limit"`
	ExtraSharedRunnersMinutesLimit  int64                      `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"`

	OnlyAllowMergeIfPipelineSucceeds          bool `json:"only_allow_merge_if_pipeline_succeeds"`
	AllowMergeOnSkippedPipeline               bool `json:"allow_merge_on_skipped_pipeline"`
	OnlyAllowMergeIfAllDiscussionsAreResolved bool `json:"only_allow_merge_if_all_discussions_are_resolved"`

	// 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 int64 `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

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

type GroupAccessToken resourceAccessToken

GroupAccessToken represents a GitLab group access token.

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

func (GroupAccessToken) String

func (v GroupAccessToken) String() string

type GroupAccessTokensService

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

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

func (s *GroupAccessTokensService) GetGroupAccessToken(gid any, id int64, 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

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

func (s *GroupAccessTokensService) RevokeGroupAccessToken(gid any, id int64, 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

func (s *GroupAccessTokensService) RotateGroupAccessToken(gid any, id int64, 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

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

type GroupAccessTokensServiceInterface interface {
	ListGroupAccessTokens(gid any, opt *ListGroupAccessTokensOptions, options ...RequestOptionFunc) ([]*GroupAccessToken, *Response, error)
	GetGroupAccessToken(gid any, id int64, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)
	CreateGroupAccessToken(gid any, opt *CreateGroupAccessTokenOptions, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)
	RotateGroupAccessToken(gid any, id int64, opt *RotateGroupAccessTokenOptions, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)
	RotateGroupAccessTokenSelf(gid any, opt *RotateGroupAccessTokenOptions, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error)
	RevokeGroupAccessToken(gid any, id int64, options ...RequestOptionFunc) (*Response, error)
}

GroupAccessTokensServiceInterface defines all the API methods for the GroupAccessTokensService

type GroupActivityAnalyticsService

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

func (*GroupActivityAnalyticsService) GetRecentlyCreatedIssuesCount

func (s *GroupActivityAnalyticsService) GetRecentlyCreatedIssuesCount(opt *GetRecentlyCreatedIssuesCountOptions, options ...RequestOptionFunc) (*IssuesCount, *Response, error)

func (*GroupActivityAnalyticsService) GetRecentlyCreatedMergeRequestsCount

type GroupActivityAnalyticsServiceInterface

type GroupActivityAnalyticsServiceInterface interface {
	// 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
	GetRecentlyCreatedIssuesCount(opt *GetRecentlyCreatedIssuesCountOptions, options ...RequestOptionFunc) (*IssuesCount, *Response, error)
	// 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
	GetRecentlyCreatedMergeRequestsCount(opt *GetRecentlyCreatedMergeRequestsCountOptions, options ...RequestOptionFunc) (*MergeRequestsCount, *Response, error)
	// 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
	GetRecentlyAddedMembersCount(opt *GetRecentlyAddedMembersCountOptions, options ...RequestOptionFunc) (*NewMembersCount, *Response, error)
}

type GroupAvatar

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

func (a *GroupAvatar) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

type GroupBadge

type GroupBadge struct {
	ID               int64     `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

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

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

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

func (s *GroupBadgesService) DeleteGroupBadge(gid any, badge int64, 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

func (s *GroupBadgesService) EditGroupBadge(gid any, badge int64, 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

func (s *GroupBadgesService) GetGroupBadge(gid any, badge int64, 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

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

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

type GroupBadgesServiceInterface interface {
	ListGroupBadges(gid any, opt *ListGroupBadgesOptions, options ...RequestOptionFunc) ([]*GroupBadge, *Response, error)
	GetGroupBadge(gid any, badge int64, options ...RequestOptionFunc) (*GroupBadge, *Response, error)
	AddGroupBadge(gid any, opt *AddGroupBadgeOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error)
	EditGroupBadge(gid any, badge int64, opt *EditGroupBadgeOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error)
	DeleteGroupBadge(gid any, badge int64, options ...RequestOptionFunc) (*Response, error)
	PreviewGroupBadge(gid any, opt *GroupBadgePreviewOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error)
}

GroupBadgesServiceInterface defines all the API methods for the GroupBadgesService

type GroupBranchAccessDescription

type GroupBranchAccessDescription struct {
	ID                     int64            `json:"id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	DeployKeyID            int64            `json:"deploy_key_id"`
	UserID                 int64            `json:"user_id"`
	GroupID                int64            `json:"group_id"`
}

GroupBranchAccessDescription represents the access description for a group protected branch.

GitLab API docs: https://docs.gitlab.com/api/group_protected_branches/#list-protected-branches

type GroupBranchPermissionOptions

type GroupBranchPermissionOptions struct {
	ID          *int64            `url:"id,omitempty" json:"id,omitempty"`
	UserID      *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID     *int64            `url:"group_id,omitempty" json:"group_id,omitempty"`
	DeployKeyID *int64            `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"`
}

GroupBranchPermissionOptions represents a branch permission option.

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

type GroupCluster

type GroupCluster struct {
	ID                 int64               `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

func (v GroupCluster) String() string

Deprecated: in GitLab 14.5, to be removed in 19.0

type GroupClustersService

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

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

func (s *GroupClustersService) DeleteCluster(pid any, cluster int64, 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

func (s *GroupClustersService) EditCluster(pid any, cluster int64, 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

func (s *GroupClustersService) GetCluster(pid any, cluster int64, 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

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

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 int64, 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 int64, opt *EditGroupClusterOptions, options ...RequestOptionFunc) (*GroupCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	DeleteCluster(pid any, cluster int64, options ...RequestOptionFunc) (*Response, error)
}

Deprecated: in GitLab 14.5, to be removed in 19.0

type GroupCredentialsService

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

GroupCredentialsService handles communication with the top-level group credentials inventory management endpoints of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/groups/#credentials-inventory-management

func (*GroupCredentialsService) DeleteGroupSSHKey

func (g *GroupCredentialsService) DeleteGroupSSHKey(gid any, keyID int64, options ...RequestOptionFunc) (*Response, error)

func (*GroupCredentialsService) ListGroupPersonalAccessTokens

func (g *GroupCredentialsService) ListGroupPersonalAccessTokens(gid any, opt *ListGroupPersonalAccessTokensOptions, options ...RequestOptionFunc) ([]*GroupPersonalAccessToken, *Response, error)

func (*GroupCredentialsService) ListGroupSSHKeys

func (g *GroupCredentialsService) ListGroupSSHKeys(gid any, opt *ListGroupSSHKeysOptions, options ...RequestOptionFunc) ([]*GroupSSHKey, *Response, error)

func (*GroupCredentialsService) RevokeGroupPersonalAccessToken

func (g *GroupCredentialsService) RevokeGroupPersonalAccessToken(gid any, tokenID int64, options ...RequestOptionFunc) (*Response, error)

type GroupCredentialsServiceInterface

type GroupCredentialsServiceInterface interface {
	// ListGroupPersonalAccessTokens lists all personal access tokens
	// associated with enterprise users in a top-level group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/groups/#list-all-personal-access-tokens-for-a-group
	ListGroupPersonalAccessTokens(gid any, opt *ListGroupPersonalAccessTokensOptions, options ...RequestOptionFunc) ([]*GroupPersonalAccessToken, *Response, error)
	// ListGroupSSHKeys lists all SSH public keys associated with
	// enterprise users in a top-level group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/groups/#list-all-ssh-keys-for-a-group
	ListGroupSSHKeys(gid any, opt *ListGroupSSHKeysOptions, options ...RequestOptionFunc) ([]*GroupSSHKey, *Response, error)
	// RevokeGroupPersonalAccessToken revokes a specified personal access token
	// for an enterprise user.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/groups/#revoke-a-personal-access-token-for-an-enterprise-user
	RevokeGroupPersonalAccessToken(gid any, tokenID int64, options ...RequestOptionFunc) (*Response, error)
	// DeleteGroupSSHKey deletes a specified SSH public key for an
	// enterprise user associated with the top-level group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/groups/#delete-an-ssh-key-for-an-enterprise-user
	DeleteGroupSSHKey(gid any, keyID int64, options ...RequestOptionFunc) (*Response, error)
}

type GroupEnvironmentAccessDescription

type GroupEnvironmentAccessDescription struct {
	ID                     int64            `json:"id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	UserID                 int64            `json:"user_id"`
	GroupID                int64            `json:"group_id"`
	GroupInheritanceType   int64            `json:"group_inheritance_type"`
}

GroupEnvironmentAccessDescription represents the access description for a group-level protected environment.

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

type GroupEnvironmentAccessOptions

type GroupEnvironmentAccessOptions struct {
	AccessLevel          *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	UserID               *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID              *int64            `url:"group_id,omitempty" json:"group_id,omitempty"`
	GroupInheritanceType *int64            `url:"group_inheritance_type,omitempty" json:"group_inheritance_type,omitempty"`
}

GroupEnvironmentAccessOptions represents the options for an access description for a group-level protected environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#protect-a-single-environment

type GroupEnvironmentApprovalRule

type GroupEnvironmentApprovalRule struct {
	ID                     int64            `json:"id"`
	UserID                 int64            `json:"user_id"`
	GroupID                int64            `json:"group_id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
	RequiredApprovalCount  int64            `json:"required_approvals"`
	GroupInheritanceType   int64            `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

type GroupEnvironmentApprovalRuleOptions struct {
	UserID                 *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID                *int64            `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  *int64            `url:"required_approvals,omitempty" json:"required_approvals,omitempty"`
	GroupInheritanceType   *int64            `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

type GroupEpicBoard struct {
	ID     int64           `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

func (b GroupEpicBoard) String() string

type GroupEpicBoardsService

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

func (s *GroupEpicBoardsService) GetGroupEpicBoard(gid any, board int64, 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

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

type GroupEpicBoardsServiceInterface interface {
	ListGroupEpicBoards(gid any, opt *ListGroupEpicBoardsOptions, options ...RequestOptionFunc) ([]*GroupEpicBoard, *Response, error)
	GetGroupEpicBoard(gid any, board int64, options ...RequestOptionFunc) (*GroupEpicBoard, *Response, error)
}

type GroupHook

type GroupHook struct {
	ID                        int64               `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                   int64               `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"`
	ProjectEvents             bool                `json:"project_events"`
	MilestoneEvents           bool                `json:"milestone_events"`
	VulnerabilityEvents       bool                `json:"vulnerability_events"`
}

GroupHook represents a GitLab group hook.

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

type GroupHookTrigger

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 GroupID

type GroupID struct {
	Value any
}

type GroupImportExportService

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

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

ImportFile imports a file.

GitLab API docs: https://docs.gitlab.com/api/group_import_export/#import-a-file

func (*GroupImportExportService) ScheduleExport

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

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

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 *int64  `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

type GroupIssueBoard struct {
	ID        int64         `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

func (b GroupIssueBoard) String() string

type GroupIssueBoardsService

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

func (s *GroupIssueBoardsService) CreateGroupIssueBoard(gid any, opt *CreateGroupIssueBoardOptions, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)

func (*GroupIssueBoardsService) CreateGroupIssueBoardList

func (s *GroupIssueBoardsService) CreateGroupIssueBoardList(gid any, board int64, opt *CreateGroupIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error)

func (*GroupIssueBoardsService) DeleteGroupIssueBoardList

func (s *GroupIssueBoardsService) DeleteGroupIssueBoardList(gid any, board, list int64, options ...RequestOptionFunc) (*Response, error)

func (*GroupIssueBoardsService) DeleteIssueBoard

func (s *GroupIssueBoardsService) DeleteIssueBoard(gid any, board int64, options ...RequestOptionFunc) (*Response, error)

func (*GroupIssueBoardsService) GetGroupIssueBoard

func (s *GroupIssueBoardsService) GetGroupIssueBoard(gid any, board int64, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)

func (*GroupIssueBoardsService) GetGroupIssueBoardList

func (s *GroupIssueBoardsService) GetGroupIssueBoardList(gid any, board, list int64, options ...RequestOptionFunc) (*BoardList, *Response, error)

func (*GroupIssueBoardsService) ListGroupIssueBoardLists

func (s *GroupIssueBoardsService) ListGroupIssueBoardLists(gid any, board int64, opt *ListGroupIssueBoardListsOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)

func (*GroupIssueBoardsService) ListGroupIssueBoards

func (s *GroupIssueBoardsService) ListGroupIssueBoards(gid any, opt *ListGroupIssueBoardsOptions, options ...RequestOptionFunc) ([]*GroupIssueBoard, *Response, error)

func (*GroupIssueBoardsService) UpdateIssueBoard

func (s *GroupIssueBoardsService) UpdateIssueBoard(gid any, board int64, opt *UpdateGroupIssueBoardOptions, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)

func (*GroupIssueBoardsService) UpdateIssueBoardList

func (s *GroupIssueBoardsService) UpdateIssueBoardList(gid any, board, list int64, opt *UpdateGroupIssueBoardListOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)

type GroupIssueBoardsServiceInterface

type GroupIssueBoardsServiceInterface interface {
	// 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
	ListGroupIssueBoards(gid any, opt *ListGroupIssueBoardsOptions, 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
	CreateGroupIssueBoard(gid any, opt *CreateGroupIssueBoardOptions, 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
	GetGroupIssueBoard(gid any, board int64, 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
	UpdateIssueBoard(gid any, board int64, opt *UpdateGroupIssueBoardOptions, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error)
	// DeleteIssueBoard deletes a single issue board of a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_boards/#delete-a-group-issue-board
	DeleteIssueBoard(gid any, board int64, options ...RequestOptionFunc) (*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
	ListGroupIssueBoardLists(gid any, board int64, opt *ListGroupIssueBoardListsOptions, 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
	GetGroupIssueBoardList(gid any, board, list int64, 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
	CreateGroupIssueBoardList(gid any, board int64, opt *CreateGroupIssueBoardListOptions, 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
	UpdateIssueBoardList(gid any, board, list int64, opt *UpdateGroupIssueBoardListOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)
	DeleteGroupIssueBoardList(gid any, board, list int64, options ...RequestOptionFunc) (*Response, error)
}

type GroupIteration

type GroupIteration struct {
	ID          int64      `json:"id"`
	IID         int64      `json:"iid"`
	Sequence    int64      `json:"sequence"`
	GroupID     int64      `json:"group_id"`
	Title       string     `json:"title"`
	Description string     `json:"description"`
	State       int64      `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"`
}

GroupIteration represents a GitLab iteration.

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

func (GroupIteration) String

func (i GroupIteration) String() string

type GroupIterationsService

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

GroupIterationsService handles communication with the iterations related methods of the GitLab API

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

func (*GroupIterationsService) ListGroupIterations

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

type GroupIterationsServiceInterface interface {
	ListGroupIterations(gid any, opt *ListGroupIterationsOptions, options ...RequestOptionFunc) ([]*GroupIteration, *Response, error)
}

type GroupLabel

type GroupLabel Label

GroupLabel represents a GitLab group label.

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

func (GroupLabel) String

func (l GroupLabel) String() string

type GroupLabelsService

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

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

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

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

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

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

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

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

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

type GroupMarkdownUpload = MarkdownUpload

Type aliases for backward compatibility

type GroupMarkdownUploadsService

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

func (s *GroupMarkdownUploadsService) DeleteGroupMarkdownUploadByID(gid any, uploadID int64, options ...RequestOptionFunc) (*Response, error)

func (*GroupMarkdownUploadsService) DeleteGroupMarkdownUploadBySecretAndFilename

func (s *GroupMarkdownUploadsService) DeleteGroupMarkdownUploadBySecretAndFilename(gid any, secret string, filename string, options ...RequestOptionFunc) (*Response, error)

func (*GroupMarkdownUploadsService) DownloadGroupMarkdownUploadByID

func (s *GroupMarkdownUploadsService) DownloadGroupMarkdownUploadByID(gid any, uploadID int64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)

DownloadGroupMarkdownUploadByID downloads a specific upload by ID.

The returned io.ReadCloser must be closed by the caller to avoid leaking the underlying response body.

GitLab API Docs: https://docs.gitlab.com/api/group_markdown_uploads/#download-an-uploaded-file-by-id

func (*GroupMarkdownUploadsService) DownloadGroupMarkdownUploadBySecretAndFilename

func (s *GroupMarkdownUploadsService) DownloadGroupMarkdownUploadBySecretAndFilename(gid any, secret string, filename string, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)

DownloadGroupMarkdownUploadBySecretAndFilename downloads a specific upload by secret and filename.

The returned io.ReadCloser must be closed by the caller to avoid leaking the underlying response body.

GitLab API Docs: https://docs.gitlab.com/api/group_markdown_uploads/#download-an-uploaded-file-by-secret-and-filename

func (*GroupMarkdownUploadsService) ListGroupMarkdownUploads

func (s *GroupMarkdownUploadsService) ListGroupMarkdownUploads(gid any, opt *ListMarkdownUploadsOptions, options ...RequestOptionFunc) ([]*GroupMarkdownUpload, *Response, error)

type GroupMarkdownUploadsServiceInterface

type GroupMarkdownUploadsServiceInterface interface {
	// ListGroupMarkdownUploads gets all markdown uploads for a group.
	//
	// GitLab API Docs:
	// https://docs.gitlab.com/api/group_markdown_uploads/#list-uploads
	ListGroupMarkdownUploads(gid any, opt *ListMarkdownUploadsOptions, options ...RequestOptionFunc) ([]*GroupMarkdownUpload, *Response, error)
	// DownloadGroupMarkdownUploadByID downloads a specific upload by ID.
	//
	// The returned io.ReadCloser must be closed by the caller to avoid
	// leaking the underlying response body.
	//
	// GitLab API Docs:
	// https://docs.gitlab.com/api/group_markdown_uploads/#download-an-uploaded-file-by-id
	DownloadGroupMarkdownUploadByID(gid any, uploadID int64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)
	// DownloadGroupMarkdownUploadBySecretAndFilename downloads a specific upload
	// by secret and filename.
	//
	// The returned io.ReadCloser must be closed by the caller to avoid
	// leaking the underlying response body.
	//
	// GitLab API Docs:
	// https://docs.gitlab.com/api/group_markdown_uploads/#download-an-uploaded-file-by-secret-and-filename
	DownloadGroupMarkdownUploadBySecretAndFilename(gid any, secret string, filename string, options ...RequestOptionFunc) (io.ReadCloser, *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
	DeleteGroupMarkdownUploadByID(gid any, uploadID int64, 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
	DeleteGroupMarkdownUploadBySecretAndFilename(gid any, secret string, filename string, options ...RequestOptionFunc) (*Response, error)
}

type GroupMattermostIntegration

type GroupMattermostIntegration struct {
	Integration
	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"`
	NotifyOnlyDefaultBranch    bool                                  `json:"notify_only_default_branch"`
	Properties                 *GroupMattermostIntegrationProperties `json:"properties"`
}

GroupMattermostIntegration represents a Mattermost integration for a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-notifications

type GroupMattermostIntegrationOptions

type GroupMattermostIntegrationOptions 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"`
	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"`
	DeploymentEvents           *bool   `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
	AlertEvents                *bool   `url:"alert_events,omitempty" json:"alert_events,omitempty"`
	VulnerabilityEvents        *bool   `url:"vulnerability_events,omitempty" json:"vulnerability_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"`
	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"`
	AlertChannel               *string `url:"alert_channel,omitempty" json:"alert_channel,omitempty"`
	VulnerabilityChannel       *string `url:"vulnerability_channel,omitempty" json:"vulnerability_channel,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"`
	NotifyOnlyDefaultBranch    *bool   `url:"notify_only_default_branch,omitempty" json:"notify_only_default_branch,omitempty"`
	UseInheritedSettings       *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

GroupMattermostIntegrationOptions represents the available options for creating or updating a Mattermost integration for a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-notifications

type GroupMattermostIntegrationProperties

type GroupMattermostIntegrationProperties struct {
	WebHook                  string `json:"webhook"`
	Username                 string `json:"username"`
	Channel                  string `json:"channel"`
	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"`
	AlertChannel             string `json:"alert_channel"`
	VulnerabilityChannel     string `json:"vulnerability_channel"`
}

type GroupMattermostSlashCommandsIntegration

type GroupMattermostSlashCommandsIntegration 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"`
	Token     string     `json:"token"`
}

GroupMattermostSlashCommandsIntegration represents a Mattermost slash commands integration for a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-slash-commands

type GroupMattermostSlashCommandsIntegrationOptions

type GroupMattermostSlashCommandsIntegrationOptions struct {
	Token                *string `url:"token,omitempty" json:"token,omitempty"`
	UseInheritedSettings *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

GroupMattermostSlashCommandsIntegrationOptions represents the available options for creating or updating a Mattermost slash commands integration for a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-slash-commands

type GroupMember

type GroupMember struct {
	ID                int64                    `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"`
	CreatedBy         *MemberCreatedBy         `json:"created_by"`
	ExpiresAt         *ISOTime                 `json:"expires_at"`
	AccessLevel       AccessLevelValue         `json:"access_level"`
	Email             string                   `json:"email,omitempty"`
	PublicEmail       string                   `json:"public_email,omitempty"`
	GroupSAMLIdentity *GroupMemberSAMLIdentity `json:"group_saml_identity"`
	MemberRole        *MemberRole              `json:"member_role"`
	IsUsingSeat       bool                     `json:"is_using_seat,omitempty"`
}

GroupMember represents a GitLab group member.

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

type GroupMemberSAMLIdentity

type GroupMemberSAMLIdentity struct {
	ExternUID      string `json:"extern_uid"`
	Provider       string `json:"provider"`
	SAMLProviderID int64  `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

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

func (s *GroupMembersService) AddGroupMember(gid any, opt *AddGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *Response, error)

func (*GroupMembersService) DeleteShareWithGroup

func (s *GroupMembersService) DeleteShareWithGroup(gid any, groupID int64, options ...RequestOptionFunc) (*Response, error)

func (*GroupMembersService) EditGroupMember

func (s *GroupMembersService) EditGroupMember(gid any, user int64, opt *EditGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *Response, error)

func (*GroupMembersService) GetGroupMember

func (s *GroupMembersService) GetGroupMember(gid any, user int64, options ...RequestOptionFunc) (*GroupMember, *Response, error)

func (*GroupMembersService) GetInheritedGroupMember

func (s *GroupMembersService) GetInheritedGroupMember(gid any, user int64, options ...RequestOptionFunc) (*GroupMember, *Response, error)

func (*GroupMembersService) RemoveGroupMember

func (s *GroupMembersService) RemoveGroupMember(gid any, user int64, opt *RemoveGroupMemberOptions, options ...RequestOptionFunc) (*Response, error)

func (*GroupMembersService) ShareWithGroup

func (s *GroupMembersService) ShareWithGroup(gid any, opt *ShareWithGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error)

type GroupMembersServiceInterface

type GroupMembersServiceInterface interface {
	// GetGroupMember gets a member of a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/members/#get-a-member-of-a-group-or-project
	GetGroupMember(gid any, user int64, options ...RequestOptionFunc) (*GroupMember, *Response, error)
	// GetInheritedGroupMember gets 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
	GetInheritedGroupMember(gid any, user int64, 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
	AddGroupMember(gid any, opt *AddGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *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
	ShareWithGroup(gid any, opt *ShareWithGroupOptions, options ...RequestOptionFunc) (*Group, *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
	DeleteShareWithGroup(gid any, groupID int64, options ...RequestOptionFunc) (*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
	EditGroupMember(gid any, user int64, opt *EditGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *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
	RemoveGroupMember(gid any, user int64, opt *RemoveGroupMemberOptions, options ...RequestOptionFunc) (*Response, error)
}

type GroupMilestone

type GroupMilestone struct {
	ID          int64      `json:"id"`
	IID         int64      `json:"iid"`
	GroupID     int64      `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

func (m GroupMilestone) String() string

type GroupMilestonesService

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

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

func (s *GroupMilestonesService) DeleteGroupMilestone(pid any, milestone int64, 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

func (s *GroupMilestonesService) GetGroupMilestone(gid any, milestone int64, 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

func (s *GroupMilestonesService) GetGroupMilestoneBurndownChartEvents(gid any, milestone int64, 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

func (s *GroupMilestonesService) GetGroupMilestoneIssues(gid any, milestone int64, 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

func (s *GroupMilestonesService) GetGroupMilestoneMergeRequests(gid any, milestone int64, 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

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

func (s *GroupMilestonesService) UpdateGroupMilestone(gid any, milestone int64, 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

type GroupMilestonesServiceInterface interface {
	ListGroupMilestones(gid any, opt *ListGroupMilestonesOptions, options ...RequestOptionFunc) ([]*GroupMilestone, *Response, error)
	GetGroupMilestone(gid any, milestone int64, options ...RequestOptionFunc) (*GroupMilestone, *Response, error)
	CreateGroupMilestone(gid any, opt *CreateGroupMilestoneOptions, options ...RequestOptionFunc) (*GroupMilestone, *Response, error)
	UpdateGroupMilestone(gid any, milestone int64, opt *UpdateGroupMilestoneOptions, options ...RequestOptionFunc) (*GroupMilestone, *Response, error)
	DeleteGroupMilestone(pid any, milestone int64, options ...RequestOptionFunc) (*Response, error)
	GetGroupMilestoneIssues(gid any, milestone int64, opt *GetGroupMilestoneIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	GetGroupMilestoneMergeRequests(gid any, milestone int64, opt *GetGroupMilestoneMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	GetGroupMilestoneBurndownChartEvents(gid any, milestone int64, opt *GetGroupMilestoneBurndownChartEventsOptions, options ...RequestOptionFunc) ([]*BurndownChartEvent, *Response, error)
}

type GroupPackage

type GroupPackage struct {
	Package
	ProjectID   int64  `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

func (s GroupPackage) String() string

type GroupPersonalAccessToken

type GroupPersonalAccessToken struct {
	ID          int64      `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      int64      `json:"user_id"`
	LastUsedAt  *time.Time `json:"last_used_at,omitempty"`
	Active      bool       `json:"active"`
	ExpiresAt   *ISOTime   `json:"expires_at"`
}

GroupPersonalAccessToken represents a group enterprise users personal access token.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-all-personal-access-tokens-for-a-group

type GroupProtectedBranch

type GroupProtectedBranch struct {
	ID                        int64                           `json:"id"`
	Name                      string                          `json:"name"`
	PushAccessLevels          []*GroupBranchAccessDescription `json:"push_access_levels"`
	MergeAccessLevels         []*GroupBranchAccessDescription `json:"merge_access_levels"`
	UnprotectAccessLevels     []*GroupBranchAccessDescription `json:"unprotect_access_levels"`
	AllowForcePush            bool                            `json:"allow_force_push"`
	CodeOwnerApprovalRequired bool                            `json:"code_owner_approval_required"`
}

GroupProtectedBranch represents a group protected branch.

GitLab API docs: https://docs.gitlab.com/api/group_protected_branches/#list-protected-branches

type GroupProtectedBranchesService

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

GroupProtectedBranchesService handles communication with the group-level protected branch methods of the GitLab API.

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

func (*GroupProtectedBranchesService) GetProtectedBranch

func (s *GroupProtectedBranchesService) GetProtectedBranch(gid any, branch string, options ...RequestOptionFunc) (*GroupProtectedBranch, *Response, error)

func (*GroupProtectedBranchesService) ListProtectedBranches

func (*GroupProtectedBranchesService) ProtectRepositoryBranches

func (*GroupProtectedBranchesService) UnprotectRepositoryBranches

func (s *GroupProtectedBranchesService) UnprotectRepositoryBranches(gid any, branch string, options ...RequestOptionFunc) (*Response, error)

func (*GroupProtectedBranchesService) UpdateProtectedBranch

type GroupProtectedBranchesServiceInterface

type GroupProtectedBranchesServiceInterface interface {
	// ListProtectedBranches returns a list of protected branches from a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_protected_branches/#list-protected-branches
	ListProtectedBranches(gid any, opt *ListGroupProtectedBranchesOptions, options ...RequestOptionFunc) ([]*GroupProtectedBranch, *Response, error)

	// GetProtectedBranch returns a single group-level protected branch.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_protected_branches/#get-a-single-protected-branch-or-wildcard-protected-branch
	GetProtectedBranch(gid any, branch string, options ...RequestOptionFunc) (*GroupProtectedBranch, *Response, error)

	// ProtectRepositoryBranches protects a single group-level branch.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_protected_branches/#protect-repository-branches
	ProtectRepositoryBranches(gid any, opt *ProtectGroupRepositoryBranchesOptions, options ...RequestOptionFunc) (*GroupProtectedBranch, *Response, error)

	// UpdateProtectedBranch updates a single group-level protected branch.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_protected_branches/#update-a-protected-branch
	UpdateProtectedBranch(gid any, branch string, opt *UpdateGroupProtectedBranchOptions, options ...RequestOptionFunc) (*GroupProtectedBranch, *Response, error)

	// UnprotectRepositoryBranches unprotects the given protected group-level branch.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_protected_branches/#unprotect-repository-branches
	UnprotectRepositoryBranches(gid any, branch string, options ...RequestOptionFunc) (*Response, error)
}

type GroupProtectedEnvironment

type GroupProtectedEnvironment struct {
	Name                  string                               `json:"name"`
	DeployAccessLevels    []*GroupEnvironmentAccessDescription `json:"deploy_access_levels"`
	RequiredApprovalCount int64                                `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

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

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

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

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

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

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

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

type GroupPushRules struct {
	ID                         int64      `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                int64      `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 GroupRelationStatus

type GroupRelationStatus struct {
	Relation     string    `json:"relation"`
	Status       int64     `json:"status"`
	Error        string    `json:"error"`
	UpdatedAt    time.Time `json:"updated_at"`
	Batched      bool      `json:"batched"`
	BatchesCount int64     `json:"batches_count"`
	Batches      []Batch   `json:"batches,omitempty"`
}

type GroupRelationsDownloadOptions

type GroupRelationsDownloadOptions struct {
	Relation    *string `url:"relation,omitempty" json:"relation,omitempty"`
	Batched     *bool   `url:"batched,omitempty" json:"batched,omitempty"`
	BatchNumber *int64  `url:"batch_number,omitempty" json:"batch_number,omitempty"`
}

GroupRelationsDownloadOptions represents the available ExportDownload() options.

GitLab API docs: https://docs.gitlab.com/api/group_relations_export/#download-exported-relations

type GroupRelationsExportService

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

GroupRelationsExportService handles communication with the group relations export related methods of the GitLab API.

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

func (*GroupRelationsExportService) ExportDownload

func (*GroupRelationsExportService) ListExportStatus

func (*GroupRelationsExportService) ScheduleExport

type GroupRelationsExportServiceInterface

type GroupRelationsExportServiceInterface interface {
	// ScheduleExport schedules a new export of group relations.
	//
	// GitLab API docs: https://docs.gitlab.com/api/group_relations_export/#schedule-new-export
	ScheduleExport(gid any, opt *GroupRelationsScheduleExportOptions, options ...RequestOptionFunc) (*Response, error)
	// ListExportStatus gets the status of group relations export.
	//
	// GitLab API docs: https://docs.gitlab.com/api/group_relations_export/#export-status
	ListExportStatus(gid any, opt *ListGroupRelationsStatusOptions, options ...RequestOptionFunc) ([]*GroupRelationStatus, *Response, error)
	// ExportDownload downloads the exported group relations.
	//
	// GitLab API docs: https://docs.gitlab.com/api/group_relations_export/#download-exported-relations
	ExportDownload(gid any, opt *GroupRelationsDownloadOptions, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
}

type GroupRelationsScheduleExportOptions

type GroupRelationsScheduleExportOptions struct {
	Batched *bool `url:"batched,omitempty" json:"batched,omitempty"`
}

GroupRelationsScheduleExportOptions represents the available ScheduleExport() options.

GitLab API docs: https://docs.gitlab.com/api/group_relations_export/#schedule-new-export

type GroupReleasesService

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

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

type GroupReleasesServiceInterface interface {
	ListGroupReleases(gid any, opts *ListGroupReleasesOptions, options ...RequestOptionFunc) ([]*Release, *Response, error)
}

type GroupRepositoryStorageMove

type GroupRepositoryStorageMove struct {
	ID                     int64            `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

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

func (g GroupRepositoryStorageMoveService) GetStorageMove(repositoryStorage int64, 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

func (g GroupRepositoryStorageMoveService) GetStorageMoveForGroup(group int64, repositoryStorage int64, 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

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

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

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

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

type GroupRepositoryStorageMoveServiceInterface interface {
	RetrieveAllStorageMoves(opts RetrieveAllGroupStorageMovesOptions, options ...RequestOptionFunc) ([]*GroupRepositoryStorageMove, *Response, error)
	RetrieveAllStorageMovesForGroup(group int64, opts RetrieveAllGroupStorageMovesOptions, options ...RequestOptionFunc) ([]*GroupRepositoryStorageMove, *Response, error)
	GetStorageMove(repositoryStorage int64, options ...RequestOptionFunc) (*GroupRepositoryStorageMove, *Response, error)
	GetStorageMoveForGroup(group int64, repositoryStorage int64, options ...RequestOptionFunc) (*GroupRepositoryStorageMove, *Response, error)
	ScheduleStorageMoveForGroup(group int64, opts ScheduleStorageMoveForGroupOptions, options ...RequestOptionFunc) (*GroupRepositoryStorageMove, *Response, error)
	ScheduleAllStorageMoves(opts ScheduleAllGroupStorageMovesOptions, options ...RequestOptionFunc) (*Response, error)
}

type GroupResourceAccessTokenEvent

type GroupResourceAccessTokenEvent struct {
	EventName        string                                        `json:"event_name"`
	ObjectKind       string                                        `json:"object_kind"`
	Group            GroupResourceAccessTokenEventGroup            `json:"group"`
	ObjectAttributes GroupResourceAccessTokenEventObjectAttributes `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 GroupResourceAccessTokenEventGroup

type GroupResourceAccessTokenEventGroup struct {
	GroupID   int64  `json:"group_id"`
	GroupName string `json:"group_name"`
	GroupPath string `json:"group_path"`
	FullPath  string `json:"full_path"`
}

GroupResourceAccessTokenEventGroup represents a group in a resource access token event.

type GroupResourceAccessTokenEventObjectAttributes

type GroupResourceAccessTokenEventObjectAttributes struct {
	ID        int64    `json:"id"`
	UserID    int64    `json:"user_id"`
	Name      string   `json:"name"`
	CreatedAt string   `json:"created_at"`
	ExpiresAt *ISOTime `json:"expires_at"`
}

type GroupSCIMIdentity

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

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

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

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

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

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

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

type GroupSSHCertificate struct {
	ID        int64      `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

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

CreateGroupSSHCertificate creates a new SSH certificate in the group.

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

func (*GroupSSHCertificatesService) DeleteGroupSSHCertificate

func (s *GroupSSHCertificatesService) DeleteGroupSSHCertificate(gid any, cert int64, 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

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

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 int64, options ...RequestOptionFunc) (*Response, error)
}

GroupSSHCertificatesServiceInterface defines methods for the GroupSSHCertificatesService.

type GroupSSHKey

type GroupSSHKey struct {
	ID         int64      `json:"id"`
	Title      string     `json:"title"`
	CreatedAt  *time.Time `json:"created_at"`
	ExpiresAt  *time.Time `json:"expires_at"`
	LastUsedAt *time.Time `json:"last_used_at"`
	UsageType  string     `json:"usage_type"`
	UserID     int64      `json:"user_id"`
}

GroupSSHKey represents a group enterprise users public SSH key.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-all-ssh-keys-for-a-group

type GroupSecuritySettings

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

func (s GroupSecuritySettings) String() string

String gets a string representation of the GroupSecuritySettings data.

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

type GroupSecuritySettingsService

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

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

type GroupSecuritySettingsServiceInterface interface {
	UpdateSecretPushProtectionEnabledSetting(gid any, opt UpdateGroupSecuritySettingsOptions, options ...RequestOptionFunc) (*GroupSecuritySettings, *Response, error)
}

type GroupServiceAccount

type GroupServiceAccount struct {
	ID       int64  `json:"id"`
	Name     string `json:"name"`
	UserName string `json:"username"`
	Email    string `json:"email"`
}

GroupServiceAccount represents a GitLab service account user.

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

type GroupSystemEvent

type GroupSystemEvent struct {
	BaseSystemEvent
	Name                 string `json:"name"`
	Path                 string `json:"path"`
	PathWithNamespace    string `json:"full_path"`
	GroupID              int64  `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

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

func (v GroupVariable) String() string

type GroupVariablesService

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

func (s *GroupVariablesService) CreateVariable(gid any, opt *CreateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)

func (*GroupVariablesService) GetVariable

func (s *GroupVariablesService) GetVariable(gid any, key string, opt *GetGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)

func (*GroupVariablesService) ListVariables

func (s *GroupVariablesService) ListVariables(gid any, opt *ListGroupVariablesOptions, options ...RequestOptionFunc) ([]*GroupVariable, *Response, error)

func (*GroupVariablesService) RemoveVariable

func (s *GroupVariablesService) RemoveVariable(gid any, key string, opt *RemoveGroupVariableOptions, options ...RequestOptionFunc) (*Response, error)

func (*GroupVariablesService) UpdateVariable

func (s *GroupVariablesService) UpdateVariable(gid any, key string, opt *UpdateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)

type GroupVariablesServiceInterface

type GroupVariablesServiceInterface interface {
	// ListVariables gets a list of all variables for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_level_variables/#list-group-variables
	ListVariables(gid any, opt *ListGroupVariablesOptions, options ...RequestOptionFunc) ([]*GroupVariable, *Response, error)
	// GetVariable gets a variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_level_variables/#show-variable-details
	GetVariable(gid any, key string, opt *GetGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)
	// CreateVariable creates a new group variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_level_variables/#create-variable
	CreateVariable(gid any, opt *CreateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)
	// UpdateVariable updates an existing group variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_level_variables/#update-variable
	UpdateVariable(gid any, key string, opt *UpdateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error)
	// RemoveVariable removes a group's variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_level_variables/#remove-variable
	RemoveVariable(gid any, key string, opt *RemoveGroupVariableOptions, options ...RequestOptionFunc) (*Response, error)
}

GroupVariablesServiceInterface defines methods for the GroupVariablesService.

type GroupWiki

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

func (w GroupWiki) String() string

type GroupWikisService

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

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

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

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

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

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

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

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

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.

When `default_branch_protection_defaults` are defined with an `avatar` value, only one value for `allowed_to_push` and `allowed_to_merge` will be used as the GitLab API only accepts one value for those attributes even when multiples are provided on the request. The API will take the highest permission level. For instance, if 'developer' and 'maintainer' are provided, the API will take 'maintainer'.

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

func (*GroupsService) CreateServiceAccount

func (s *GroupsService) CreateServiceAccount(gid any, opt *CreateServiceAccountOptions, options ...RequestOptionFunc) (*GroupServiceAccount, *Response, error)

CreateServiceAccount 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/service_accounts/#create-a-group-service-account

func (*GroupsService) CreateServiceAccountPersonalAccessToken

func (s *GroupsService) CreateServiceAccountPersonalAccessToken(gid any, serviceAccount int64, 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/service_accounts/#create-a-personal-access-token-for-a-group-service-account

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

func (s *GroupsService) DeleteGroupCustomHeader(gid any, hook int64, 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

func (s *GroupsService) DeleteGroupHook(gid any, hook int64, 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

func (s *GroupsService) DeleteGroupHookURLVariable(gid any, hook int64, 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

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

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

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

func (s *GroupsService) DeleteServiceAccount(gid any, serviceAccount int64, 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/service_accounts/#delete-a-group-service-account

func (*GroupsService) DownloadAvatar

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

func (s *GroupsService) EditGroupHook(gid any, hook int64, 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

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

func (s *GroupsService) GetGroupHook(gid any, hook int64, 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

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

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

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

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

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

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

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

func (s *GroupsService) ListMembershipsForBillableGroupMember(gid any, user int64, 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

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) ListServiceAccountPersonalAccessTokens

func (s *GroupsService) ListServiceAccountPersonalAccessTokens(gid any, serviceAccount int64, opt *ListServiceAccountPersonalAccessTokensOptions, options ...RequestOptionFunc) ([]*PersonalAccessToken, *Response, error)

ListServiceAccountPersonalAccessTokens gets a list of personal access tokens for a service account user for a group.

GitLab API docs: https://docs.gitlab.com/api/service_accounts/#list-all-personal-access-tokens-for-a-group-service-account

func (*GroupsService) ListServiceAccounts

func (s *GroupsService) ListServiceAccounts(gid any, opt *ListServiceAccountsOptions, options ...RequestOptionFunc) ([]*GroupServiceAccount, *Response, error)

ListServiceAccounts gets a list of service accounts.

GitLab API docs: https://docs.gitlab.com/api/service_accounts/#list-all-group-service-accounts

func (*GroupsService) ListSubGroups

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

func (s *GroupsService) RemoveBillableGroupMember(gid any, user int64, 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

func (s *GroupsService) ResendGroupHookEvent(gid any, hook int64, hookEventID int64, 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

func (s *GroupsService) RestoreGroup(gid any, options ...RequestOptionFunc) (*Group, *Response, error)

RestoreGroup restores a previously deleted group

GitLab API docs: https://docs.gitlab.com/api/groups/#restore-a-group-marked-for-deletion

func (*GroupsService) RevokeServiceAccountPersonalAccessToken

func (s *GroupsService) RevokeServiceAccountPersonalAccessToken(gid any, serviceAccount, token int64, options ...RequestOptionFunc) (*Response, error)

RevokeServiceAccountPersonalAccessToken revokes a personal access token for an existing service account user in a given top-level group.

GitLab API docs: https://docs.gitlab.com/api/service_accounts/#revoke-a-personal-access-token-for-a-group-service-account

func (*GroupsService) RotateServiceAccountPersonalAccessToken

func (s *GroupsService) RotateServiceAccountPersonalAccessToken(gid any, serviceAccount, token int64, 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/service_accounts/#rotate-a-personal-access-token-for-a-group-service-account

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

func (s *GroupsService) SetGroupCustomHeader(gid any, hook int64, 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

func (s *GroupsService) SetGroupHookURLVariable(gid any, hook int64, 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

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

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

func (s *GroupsService) TriggerTestGroupHook(pid any, hook int64, 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

func (s *GroupsService) UnshareGroupFromGroup(gid any, groupID int64, 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

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.

When `default_branch_protection_defaults` are defined with an `avatar` value, only one value for `allowed_to_push` and `allowed_to_merge` will be used as the GitLab API only accepts one value for those attributes even when multiples are provided on the request. The API will take the highest permission level. For instance, if 'developer' and 'maintainer' are provided, the API will take 'maintainer'.

GitLab API docs: https://docs.gitlab.com/api/groups/#update-group-attributes

func (*GroupsService) UpdateServiceAccount

func (s *GroupsService) UpdateServiceAccount(gid any, serviceAccount int64, opt *UpdateServiceAccountOptions, options ...RequestOptionFunc) (*GroupServiceAccount, *Response, error)

UpdateServiceAccount updates 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/service_accounts/#update-a-group-service-account

func (*GroupsService) UploadAvatar

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

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 int64, 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 int64, options ...RequestOptionFunc) (*GroupHook, *Response, error)
	ResendGroupHookEvent(gid any, hook int64, hookEventID int64, options ...RequestOptionFunc) (*Response, error)
	AddGroupHook(gid any, opt *AddGroupHookOptions, options ...RequestOptionFunc) (*GroupHook, *Response, error)
	EditGroupHook(gid any, hook int64, opt *EditGroupHookOptions, options ...RequestOptionFunc) (*GroupHook, *Response, error)
	DeleteGroupHook(gid any, hook int64, options ...RequestOptionFunc) (*Response, error)
	TriggerTestGroupHook(pid any, hook int64, trigger GroupHookTrigger, options ...RequestOptionFunc) (*Response, error)
	SetGroupCustomHeader(gid any, hook int64, key string, opt *SetHookCustomHeaderOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteGroupCustomHeader(gid any, hook int64, key string, options ...RequestOptionFunc) (*Response, error)
	SetGroupHookURLVariable(gid any, hook int64, key string, opt *SetHookURLVariableOptions, options ...RequestOptionFunc) (*Response, error)
	DeleteGroupHookURLVariable(gid any, hook int64, 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)
	UpdateServiceAccount(gid any, serviceAccount int64, opt *UpdateServiceAccountOptions, options ...RequestOptionFunc) (*GroupServiceAccount, *Response, error)
	DeleteServiceAccount(gid any, serviceAccount int64, opt *DeleteServiceAccountOptions, options ...RequestOptionFunc) (*Response, error)
	ListServiceAccountPersonalAccessTokens(gid any, serviceAccount int64, opt *ListServiceAccountPersonalAccessTokensOptions, options ...RequestOptionFunc) ([]*PersonalAccessToken, *Response, error)
	CreateServiceAccountPersonalAccessToken(gid any, serviceAccount int64, opt *CreateServiceAccountPersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RevokeServiceAccountPersonalAccessToken(gid any, serviceAccount, token int64, options ...RequestOptionFunc) (*Response, error)
	RotateServiceAccountPersonalAccessToken(gid any, serviceAccount, token int64, 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 int64, opt *ListMembershipsForBillableGroupMemberOptions, options ...RequestOptionFunc) ([]*BillableUserMembership, *Response, error)
	RemoveBillableGroupMember(gid any, user int64, options ...RequestOptionFunc) (*Response, error)
}

type HarborIntegration

type HarborIntegration struct {
	Integration
	Properties HarborIntegrationProperties `json:"properties"`
}

HarborIntegration represents the Harbor integration settings. It embeds the generic Integration struct and adds Harbor-specific properties.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#get-harbor-settings

type HarborIntegrationProperties

type HarborIntegrationProperties struct {
	URL         string `json:"url"`
	ProjectName string `json:"project_name"`
	Username    string `json:"username"`
}

HarborIntegrationProperties represents Harbor specific properties returned by the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#get-harbor-settings

type HarborService

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

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                     int64      `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 GitLab system hook.

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

func (Hook) String

func (h Hook) String() string

type HookCustomHeader

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  int64  `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 HookURLVariable

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

HookURLVariable represents a project or group hook URL variable

type HostKey added in v2.12.0

type HostKey struct {
	FingerprintSHA256 string `json:"fingerprint_sha256"`
}

type ISOTime

type ISOTime time.Time

ISOTime represents an ISO 8601 formatted date.

func ParseISOTime

func ParseISOTime(s string) (ISOTime, error)

ParseISOTime parses an ISO 8601 formatted date.

func (*ISOTime) EncodeValues

func (t *ISOTime) EncodeValues(key string, v *url.Values) error

EncodeValues implements the query.Encoder interface.

func (ISOTime) MarshalJSON

func (t ISOTime) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (ISOTime) String

func (t ISOTime) String() string

String implements the Stringer interface.

func (*ISOTime) UnmarshalJSON

func (t *ISOTime) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type ImpersonationToken

type ImpersonationToken struct {
	ID         int64      `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

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

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

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

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 ImportRepositoryFromGitHubOptionalStagesOptions

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

type ImportRepositoryFromGitHubOptions

type ImportRepositoryFromGitHubOptions struct {
	PersonalAccessToken *string                                         `url:"personal_access_token,omitempty" json:"personal_access_token,omitempty"`
	RepoID              *int64                                          `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      ImportRepositoryFromGitHubOptionalStagesOptions `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

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

func (s *ImportService) CancelGitHubProjectImport(opt *CancelGitHubProjectImportOptions, options ...RequestOptionFunc) (*CancelledGitHubImport, *Response, error)

CancelGitHubProjectImport cancels an import of a repository from GitHub.

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

func (*ImportService) ImportGitHubGistsIntoGitLabSnippets

func (s *ImportService) ImportGitHubGistsIntoGitLabSnippets(opt *ImportGitHubGistsIntoGitLabSnippetsOptions, options ...RequestOptionFunc) (*Response, error)

ImportGitHubGistsIntoGitLabSnippets imports 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

func (s *ImportService) ImportRepositoryFromBitbucketCloud(opt *ImportRepositoryFromBitbucketCloudOptions, options ...RequestOptionFunc) (*BitbucketCloudImport, *Response, error)

ImportRepositoryFromBitbucketCloud imports a repository from Bitbucket Cloud.

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

func (*ImportService) ImportRepositoryFromBitbucketServer

func (s *ImportService) ImportRepositoryFromBitbucketServer(opt *ImportRepositoryFromBitbucketServerOptions, options ...RequestOptionFunc) (*BitbucketServerImport, *Response, error)

ImportRepositoryFromBitbucketServer imports a repository from Bitbucket Server.

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

func (*ImportService) ImportRepositoryFromGitHub

func (s *ImportService) ImportRepositoryFromGitHub(opt *ImportRepositoryFromGitHubOptions, options ...RequestOptionFunc) (*GitHubImport, *Response, error)

ImportRepositoryFromGitHub imports a repository from GitHub.

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

type ImportServiceInterface

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

type ImportStatus struct {
	ID                int64      `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

func (s ImportStatus) String() string

type Include

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

type InstanceCluster struct {
	ID                 int64               `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

func (v InstanceCluster) String() string

Deprecated: in GitLab 14.5, to be removed in 19.0

type InstanceClustersService

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

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

func (s *InstanceClustersService) DeleteCluster(cluster int64, 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

func (s *InstanceClustersService) EditCluster(cluster int64, 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

func (s *InstanceClustersService) GetCluster(cluster int64, 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

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

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 int64, 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 int64, opt *EditClusterOptions, options ...RequestOptionFunc) (*InstanceCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	DeleteCluster(cluster int64, options ...RequestOptionFunc) (*Response, error)
}

Deprecated: in GitLab 14.5, to be removed in 19.0

type InstanceDeployKey

type InstanceDeployKey struct {
	ID                         int64               `json:"id"`
	Title                      string              `json:"title"`
	CreatedAt                  *time.Time          `json:"created_at"`
	ExpiresAt                  *time.Time          `json:"expires_at"`
	Key                        string              `json:"key"`
	Fingerprint                string              `json:"fingerprint"`
	FingerprintSHA256          string              `json:"fingerprint_sha256"`
	ProjectsWithWriteAccess    []*DeployKeyProject `json:"projects_with_write_access"`
	ProjectsWithReadonlyAccess []*DeployKeyProject `json:"projects_with_readonly_access"`
}

InstanceDeployKey represents a GitLab deploy key with the associated projects it has write access to.

func (InstanceDeployKey) String

func (k InstanceDeployKey) String() string

type InstanceVariable

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

func (v InstanceVariable) String() string

type InstanceVariablesService

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

func (*InstanceVariablesService) GetVariable

func (s *InstanceVariablesService) GetVariable(key string, options ...RequestOptionFunc) (*InstanceVariable, *Response, error)

func (*InstanceVariablesService) ListVariables

func (*InstanceVariablesService) RemoveVariable

func (s *InstanceVariablesService) RemoveVariable(key string, options ...RequestOptionFunc) (*Response, error)

func (*InstanceVariablesService) UpdateVariable

type InstanceVariablesServiceInterface

type InstanceVariablesServiceInterface interface {
	// 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
	ListVariables(opt *ListInstanceVariablesOptions, 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
	GetVariable(key string, options ...RequestOptionFunc) (*InstanceVariable, *Response, error)
	// CreateVariable creates a new instance level CI variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/instance_level_ci_variables/#create-instance-variable
	CreateVariable(opt *CreateInstanceVariableOptions, options ...RequestOptionFunc) (*InstanceVariable, *Response, error)
	// UpdateVariable updates an existing instance level CI variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/instance_level_ci_variables/#update-instance-variable
	UpdateVariable(key string, opt *UpdateInstanceVariableOptions, options ...RequestOptionFunc) (*InstanceVariable, *Response, error)
	// RemoveVariable removes an instance level CI variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/instance_level_ci_variables/#remove-instance-variable
	RemoveVariable(key string, options ...RequestOptionFunc) (*Response, error)
}

type Integration

type Integration struct {
	ID                             int64      `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"`
}

Integration represents a GitLab group or project integration.

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

type IntegrationsService

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

IntegrationsService handles communication with the group integrations related methods of the GitLab API.

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

func (*IntegrationsService) DeleteGroupMattermostIntegration

func (s *IntegrationsService) DeleteGroupMattermostIntegration(gid any, options ...RequestOptionFunc) (*Response, error)

DeleteGroupMattermostIntegration removes the Mattermost integration from a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-notifications

func (*IntegrationsService) DeleteGroupMattermostSlashCommandsIntegration

func (s *IntegrationsService) DeleteGroupMattermostSlashCommandsIntegration(gid any, options ...RequestOptionFunc) (*Response, error)

DeleteGroupMattermostSlashCommandsIntegration removes the Mattermost slash commands integration from a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-slash-commands

func (*IntegrationsService) DisableGroupHarbor

func (s *IntegrationsService) DisableGroupHarbor(gid any, options ...RequestOptionFunc) (*Response, error)

func (*IntegrationsService) DisableGroupJira

func (s *IntegrationsService) DisableGroupJira(gid any, options ...RequestOptionFunc) (*Response, error)

func (*IntegrationsService) DisableGroupMicrosoftTeamsNotifications

func (s *IntegrationsService) DisableGroupMicrosoftTeamsNotifications(gid any, options ...RequestOptionFunc) (*Response, error)

func (*IntegrationsService) DisableGroupSlack

func (s *IntegrationsService) DisableGroupSlack(gid any, options ...RequestOptionFunc) (*Response, error)

func (*IntegrationsService) DisableGroupWebexTeams

func (s *IntegrationsService) DisableGroupWebexTeams(gid any, options ...RequestOptionFunc) (*Response, error)

func (*IntegrationsService) DisableProjectGoogleChat

func (s *IntegrationsService) DisableProjectGoogleChat(pid any, options ...RequestOptionFunc) (*Response, error)

func (*IntegrationsService) GetGroupDiscordSettings

func (s *IntegrationsService) GetGroupDiscordSettings(gid any, options ...RequestOptionFunc) (*DiscordIntegration, *Response, error)

func (*IntegrationsService) GetGroupGoogleChatSettings

func (s *IntegrationsService) GetGroupGoogleChatSettings(gid any, options ...RequestOptionFunc) (*GoogleChatIntegration, *Response, error)

func (*IntegrationsService) GetGroupHarborSettings

func (s *IntegrationsService) GetGroupHarborSettings(gid any, options ...RequestOptionFunc) (*HarborIntegration, *Response, error)

func (*IntegrationsService) GetGroupJiraSettings

func (s *IntegrationsService) GetGroupJiraSettings(gid any, options ...RequestOptionFunc) (*JiraIntegration, *Response, error)

func (*IntegrationsService) GetGroupMatrixSettings

func (s *IntegrationsService) GetGroupMatrixSettings(gid any, options ...RequestOptionFunc) (*MatrixIntegration, *Response, error)

func (*IntegrationsService) GetGroupMattermostIntegration

func (s *IntegrationsService) GetGroupMattermostIntegration(gid any, options ...RequestOptionFunc) (*GroupMattermostIntegration, *Response, error)

GetGroupMattermostIntegration retrieves the Mattermost integration for a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-notifications

func (*IntegrationsService) GetGroupMattermostSettings

func (s *IntegrationsService) GetGroupMattermostSettings(gid any, options ...RequestOptionFunc) (*MattermostIntegration, *Response, error)

func (*IntegrationsService) GetGroupMattermostSlashCommandsIntegration

func (s *IntegrationsService) GetGroupMattermostSlashCommandsIntegration(gid any, options ...RequestOptionFunc) (*GroupMattermostSlashCommandsIntegration, *Response, error)

GetGroupMattermostSlashCommandsIntegration retrieves the Mattermost slash commands integration for a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-slash-commands

func (*IntegrationsService) GetGroupMicrosoftTeamsNotifications

func (s *IntegrationsService) GetGroupMicrosoftTeamsNotifications(gid any, options ...RequestOptionFunc) (*MicrosoftTeamsIntegration, *Response, error)

func (*IntegrationsService) GetGroupSlackSettings

func (s *IntegrationsService) GetGroupSlackSettings(gid any, options ...RequestOptionFunc) (*SlackIntegration, *Response, error)

func (*IntegrationsService) GetGroupTelegramSettings

func (s *IntegrationsService) GetGroupTelegramSettings(gid any, options ...RequestOptionFunc) (*TelegramIntegration, *Response, error)

func (*IntegrationsService) GetGroupWebexTeamsSettings

func (s *IntegrationsService) GetGroupWebexTeamsSettings(gid any, options ...RequestOptionFunc) (*WebexTeamsIntegration, *Response, error)

func (*IntegrationsService) GetProjectGoogleChatSettings

func (s *IntegrationsService) GetProjectGoogleChatSettings(pid any, options ...RequestOptionFunc) (*GoogleChatIntegration, *Response, error)

func (*IntegrationsService) ListActiveGroupIntegrations

func (s *IntegrationsService) ListActiveGroupIntegrations(gid any, opt *ListActiveIntegrationsOptions, options ...RequestOptionFunc) ([]*Integration, *Response, error)

func (*IntegrationsService) SetGroupMattermostIntegration

func (s *IntegrationsService) SetGroupMattermostIntegration(gid any, opt *GroupMattermostIntegrationOptions, options ...RequestOptionFunc) (*GroupMattermostIntegration, *Response, error)

SetGroupMattermostIntegration creates or updates the Mattermost integration for a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-notifications

func (*IntegrationsService) SetGroupMattermostSlashCommandsIntegration

SetGroupMattermostSlashCommandsIntegration creates or updates the Mattermost slash commands integration for a group.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-slash-commands

func (*IntegrationsService) SetGroupMicrosoftTeamsNotifications

func (s *IntegrationsService) SetGroupMicrosoftTeamsNotifications(gid any, opt *SetMicrosoftTeamsNotificationsOptions, options ...RequestOptionFunc) (*MicrosoftTeamsIntegration, *Response, error)

func (*IntegrationsService) SetGroupSlackSettings

func (s *IntegrationsService) SetGroupSlackSettings(gid any, opt *SetGroupSlackOptions, options ...RequestOptionFunc) (*SlackIntegration, *Response, error)

func (*IntegrationsService) SetGroupWebexTeamsSettings

func (s *IntegrationsService) SetGroupWebexTeamsSettings(gid any, opt *SetGroupWebexTeamsOptions, options ...RequestOptionFunc) (*WebexTeamsIntegration, *Response, error)

func (*IntegrationsService) SetProjectGoogleChatSettings

func (s *IntegrationsService) SetProjectGoogleChatSettings(pid any, opt *SetProjectGoogleChatOptions, options ...RequestOptionFunc) (*GoogleChatIntegration, *Response, error)

func (*IntegrationsService) SetUpGroupHarbor

func (s *IntegrationsService) SetUpGroupHarbor(gid any, opt *SetUpHarborOptions, options ...RequestOptionFunc) (*HarborIntegration, *Response, error)

func (*IntegrationsService) SetUpGroupJira

func (s *IntegrationsService) SetUpGroupJira(gid any, opt *SetUpJiraOptions, options ...RequestOptionFunc) (*JiraIntegration, *Response, error)

type IntegrationsServiceInterface

type IntegrationsServiceInterface interface {
	// ListActiveGroupIntegrations gets a list of all active group integrations.
	// The vulnerability_events field is only available for GitLab Enterprise Edition.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#list-all-active-integrations
	ListActiveGroupIntegrations(gid any, opt *ListActiveIntegrationsOptions, options ...RequestOptionFunc) ([]*Integration, *Response, error)

	// SetUpGroupHarbor sets up the Harbor integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#set-up-harbor
	SetUpGroupHarbor(gid any, opt *SetUpHarborOptions, options ...RequestOptionFunc) (*HarborIntegration, *Response, error)

	// DisableGroupHarbor disables the Harbor integration for a group.
	// Integration settings are reset.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#disable-harbor
	DisableGroupHarbor(gid any, options ...RequestOptionFunc) (*Response, error)

	// GetGroupHarborSettings gets the Harbor integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#get-harbor-settings
	GetGroupHarborSettings(gid any, options ...RequestOptionFunc) (*HarborIntegration, *Response, error)

	// SetGroupMicrosoftTeamsNotifications sets up Microsoft Teams notifications for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#set-up-microsoft-teams-notifications
	SetGroupMicrosoftTeamsNotifications(gid any, opt *SetMicrosoftTeamsNotificationsOptions, options ...RequestOptionFunc) (*MicrosoftTeamsIntegration, *Response, error)

	// DisableGroupMicrosoftTeamsNotifications disables Microsoft Teams notifications
	// for a group. Integration settings are reset.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#disable-microsoft-teams-notifications
	DisableGroupMicrosoftTeamsNotifications(gid any, options ...RequestOptionFunc) (*Response, error)

	// GetGroupMicrosoftTeamsNotifications gets the Microsoft Teams notifications for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#get-microsoft-teams-notifications-settings
	GetGroupMicrosoftTeamsNotifications(gid any, options ...RequestOptionFunc) (*MicrosoftTeamsIntegration, *Response, error)

	// SetUpGroupJira sets up the Jira integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#set-up-jira
	SetUpGroupJira(gid any, opt *SetUpJiraOptions, options ...RequestOptionFunc) (*JiraIntegration, *Response, error)

	// DisableGroupJira disables the Jira integration for a group.
	// Integration settings are reset.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#disable-jira
	DisableGroupJira(gid any, options ...RequestOptionFunc) (*Response, error)

	// GetGroupJiraSettings gets the Jira integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#get-jira-settings
	GetGroupJiraSettings(gid any, options ...RequestOptionFunc) (*JiraIntegration, *Response, error)

	// GetGroupSlackSettings gets the Slack integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#get-slack-settings
	GetGroupSlackSettings(gid any, options ...RequestOptionFunc) (*SlackIntegration, *Response, error)

	// SetGroupSlackSettings sets up the Slack integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#set-up-slack
	SetGroupSlackSettings(gid any, opt *SetGroupSlackOptions, options ...RequestOptionFunc) (*SlackIntegration, *Response, error)

	// DisableGroupSlack disables the Slack integration for a group.
	// Integration settings are reset.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#disable-slack
	DisableGroupSlack(gid any, options ...RequestOptionFunc) (*Response, error)

	// GetGroupDiscordSettings gets the Discord integration settings for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#discord
	GetGroupDiscordSettings(gid any, options ...RequestOptionFunc) (*DiscordIntegration, *Response, error)

	// GetGroupTelegramSettings gets the Telegram integration settings for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#telegram
	GetGroupTelegramSettings(gid any, options ...RequestOptionFunc) (*TelegramIntegration, *Response, error)

	// GetGroupMattermostSettings gets the Mattermost integration settings for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#mattermost-notifications
	GetGroupMattermostSettings(gid any, options ...RequestOptionFunc) (*MattermostIntegration, *Response, error)

	// GetGroupMatrixSettings gets the Matrix integration settings for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#matrix-notifications
	GetGroupMatrixSettings(gid any, options ...RequestOptionFunc) (*MatrixIntegration, *Response, error)

	// GetGroupGoogleChatSettings gets the Google Chat integration settings for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#google-chat
	GetGroupGoogleChatSettings(gid any, options ...RequestOptionFunc) (*GoogleChatIntegration, *Response, error)

	// SetProjectGoogleChatSettings sets up the Google Chat integration for a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/integrations.html#set-up-google-chat
	SetProjectGoogleChatSettings(pid any, opt *SetProjectGoogleChatOptions, options ...RequestOptionFunc) (*GoogleChatIntegration, *Response, error)

	// DisableProjectGoogleChat disables the Google Chat integration for a project.
	// Integration settings are reset.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/integrations.html#disable-google-chat
	DisableProjectGoogleChat(pid any, options ...RequestOptionFunc) (*Response, error)

	// GetProjectGoogleChatSettings gets the Google Chat integration settings for a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/integrations.html#get-google-chat-settings
	GetProjectGoogleChatSettings(pid any, options ...RequestOptionFunc) (*GoogleChatIntegration, *Response, error)

	// GetGroupMattermostIntegration retrieves the Mattermost integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#mattermost-notifications
	GetGroupMattermostIntegration(gid any, options ...RequestOptionFunc) (*GroupMattermostIntegration, *Response, error)

	// SetGroupMattermostIntegration creates or updates the Mattermost integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#mattermost-notifications
	SetGroupMattermostIntegration(gid any, opt *GroupMattermostIntegrationOptions, options ...RequestOptionFunc) (*GroupMattermostIntegration, *Response, error)

	// DeleteGroupMattermostIntegration removes the Mattermost integration from a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#mattermost-notifications
	DeleteGroupMattermostIntegration(gid any, options ...RequestOptionFunc) (*Response, error)

	// GetGroupMattermostSlashCommandsIntegration retrieves the Mattermost slash commands integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#mattermost-slash-commands
	GetGroupMattermostSlashCommandsIntegration(gid any, options ...RequestOptionFunc) (*GroupMattermostSlashCommandsIntegration, *Response, error)

	// SetGroupMattermostSlashCommandsIntegration creates or updates the Mattermost slash commands integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#mattermost-slash-commands
	SetGroupMattermostSlashCommandsIntegration(gid any, opt *GroupMattermostSlashCommandsIntegrationOptions, options ...RequestOptionFunc) (*GroupMattermostSlashCommandsIntegration, *Response, error)

	// DeleteGroupMattermostSlashCommandsIntegration removes the Mattermost slash commands integration from a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#mattermost-slash-commands
	DeleteGroupMattermostSlashCommandsIntegration(gid any, options ...RequestOptionFunc) (*Response, error)

	// GetGroupWebexTeamsSettings gets the Webex Teams integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#get-webex-teams-settings
	GetGroupWebexTeamsSettings(gid any, options ...RequestOptionFunc) (*WebexTeamsIntegration, *Response, error)

	// SetGroupWebexTeamsSettings sets up the Webex Teams integration for a group.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#set-up-webex-teams
	SetGroupWebexTeamsSettings(gid any, opt *SetGroupWebexTeamsOptions, options ...RequestOptionFunc) (*WebexTeamsIntegration, *Response, error)

	// DisableGroupWebexTeams disables the Webex Teams integration for a group.
	// Integration settings are reset.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/group_integrations/#disable-webex-teams
	DisableGroupWebexTeams(gid any, options ...RequestOptionFunc) (*Response, error)
}

type Interceptor

type Interceptor func(next http.RoundTripper) http.RoundTripper

Interceptor is used to build a *http.Client request pipeline,

It receives the next RoundTripper in the chain and returns a new one that will be used for the request.

This next RoundTripper might or might not be the actual transporter, which actually does the request call, but it is safe to assume that calling the next will result in the expected HTTP call.

Example:

// Simple logger interceptor.
logger := func(next http.RoundTripper) http.RoundTripper {
    return roundtripperFunc(func(req *http.Request) (*http.Response, error) {
        fmt.Printf("Request: %s %s\n", req.Method, req.URL)
        resp, err := next.RoundTrip(req)
        if err == nil {
            fmt.Printf("Response status: %d\n", resp.StatusCode)
        }
        return resp, err
    })
}

The Interceptor type lets you add such middlewares to a client by chaining them.

type InvitesOptions

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

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

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

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

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

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

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

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                   int64                  `json:"id"`
	IID                  int64                  `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            int64                  `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            int64                  `json:"moved_to_id"`
	Labels               Labels                 `json:"labels"`
	LabelDetails         []*LabelDetails        `json:"label_details"`
	Upvotes              int64                  `json:"upvotes"`
	Downvotes            int64                  `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               int64                  `json:"weight"`
	DiscussionLocked     bool                   `json:"discussion_locked"`
	IssueType            *string                `json:"issue_type,omitempty"`
	Subscribed           bool                   `json:"subscribed"`
	UserNotesCount       int64                  `json:"user_notes_count"`
	Links                *IssueLinks            `json:"_links"`
	IssueLinkID          int64                  `json:"issue_link_id"`
	MergeRequestCount    int64                  `json:"merge_requests_count"`
	EpicIssueID          int64                  `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

func (i *Issue) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type IssueAssignee

type IssueAssignee struct {
	ID        int64  `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

type IssueAuthor struct {
	ID        int64  `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

type IssueBoard struct {
	ID              int64           `json:"id"`
	Name            string          `json:"name"`
	Project         *Project        `json:"project"`
	Milestone       *Milestone      `json:"milestone"`
	Assignee        *BasicUser      `json:"assignee"`
	Lists           []*BoardList    `json:"lists"`
	Weight          int64           `json:"weight"`
	Labels          []*LabelDetails `json:"labels"`
	HideBacklogList bool            `json:"hide_backlog_list"`
	HideClosedList  bool            `json:"hide_closed_list"`
}

IssueBoard represents a GitLab issue board.

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

func (IssueBoard) String

func (b IssueBoard) String() string

type IssueBoardsService

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

func (s *IssueBoardsService) CreateIssueBoard(pid any, opt *CreateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error)

func (*IssueBoardsService) CreateIssueBoardList

func (s *IssueBoardsService) CreateIssueBoardList(pid any, board int64, opt *CreateIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error)

func (*IssueBoardsService) DeleteIssueBoard

func (s *IssueBoardsService) DeleteIssueBoard(pid any, board int64, options ...RequestOptionFunc) (*Response, error)

func (*IssueBoardsService) DeleteIssueBoardList

func (s *IssueBoardsService) DeleteIssueBoardList(pid any, board, list int64, options ...RequestOptionFunc) (*Response, error)

func (*IssueBoardsService) GetIssueBoard

func (s *IssueBoardsService) GetIssueBoard(pid any, board int64, options ...RequestOptionFunc) (*IssueBoard, *Response, error)

func (*IssueBoardsService) GetIssueBoardList

func (s *IssueBoardsService) GetIssueBoardList(pid any, board, list int64, options ...RequestOptionFunc) (*BoardList, *Response, error)

func (*IssueBoardsService) GetIssueBoardLists

func (s *IssueBoardsService) GetIssueBoardLists(pid any, board int64, opt *GetIssueBoardListsOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error)

func (*IssueBoardsService) ListIssueBoards

func (s *IssueBoardsService) ListIssueBoards(pid any, opt *ListIssueBoardsOptions, options ...RequestOptionFunc) ([]*IssueBoard, *Response, error)

func (*IssueBoardsService) UpdateIssueBoard

func (s *IssueBoardsService) UpdateIssueBoard(pid any, board int64, opt *UpdateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error)

func (*IssueBoardsService) UpdateIssueBoardList

func (s *IssueBoardsService) UpdateIssueBoardList(pid any, board, list int64, opt *UpdateIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error)

type IssueBoardsServiceInterface

type IssueBoardsServiceInterface interface {
	// CreateIssueBoard creates a new issue board.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/boards/#create-an-issue-board
	// CreateIssueBoard creates a new issue board.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/boards/#create-an-issue-board
	CreateIssueBoard(pid any, opt *CreateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error)

	// UpdateIssueBoard update an issue board.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/boards/#update-an-issue-board
	UpdateIssueBoard(pid any, board int64, opt *UpdateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error)

	// DeleteIssueBoard deletes an issue board.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/boards/#delete-an-issue-board
	DeleteIssueBoard(pid any, board int64, options ...RequestOptionFunc) (*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
	ListIssueBoards(pid any, opt *ListIssueBoardsOptions, 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
	GetIssueBoard(pid any, board int64, options ...RequestOptionFunc) (*IssueBoard, *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
	GetIssueBoardLists(pid any, board int64, opt *GetIssueBoardListsOptions, 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
	GetIssueBoardList(pid any, board, list int64, 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
	CreateIssueBoardList(pid any, board int64, opt *CreateIssueBoardListOptions, 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
	UpdateIssueBoardList(pid any, board, list int64, opt *UpdateIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *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
	DeleteIssueBoardList(pid any, board, list int64, options ...RequestOptionFunc) (*Response, error)
}

type IssueCloser

type IssueCloser struct {
	ID        int64  `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

type IssueCommentEvent struct {
	ObjectKind       string                            `json:"object_kind"`
	EventType        string                            `json:"event_type"`
	User             *User                             `json:"user"`
	ProjectID        int64                             `json:"project_id"`
	Project          IssueCommentEventProject          `json:"project"`
	Repository       *Repository                       `json:"repository"`
	ObjectAttributes IssueCommentEventObjectAttributes `json:"object_attributes"`
	Issue            IssueCommentEventIssue            `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 IssueCommentEventIssue

type IssueCommentEventIssue struct {
	ID                  int64         `json:"id"`
	IID                 int64         `json:"iid"`
	ProjectID           int64         `json:"project_id"`
	MilestoneID         int64         `json:"milestone_id"`
	AuthorID            int64         `json:"author_id"`
	Position            int64         `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      int64         `json:"last_edited_by_id"`
	UpdatedAt           string        `json:"updated_at"`
	UpdatedByID         int64         `json:"updated_by_id"`
	CreatedAt           string        `json:"created_at"`
	ClosedAt            string        `json:"closed_at"`
	DueDate             *ISOTime      `json:"due_date"`
	URL                 string        `json:"url"`
	TimeEstimate        int64         `json:"time_estimate"`
	Confidential        bool          `json:"confidential"`
	TotalTimeSpent      int64         `json:"total_time_spent"`
	HumanTotalTimeSpent string        `json:"human_total_time_spent"`
	HumanTimeEstimate   string        `json:"human_time_estimate"`
	AssigneeIDs         []int64       `json:"assignee_ids"`
	AssigneeID          int64         `json:"assignee_id"`
}

type IssueCommentEventObjectAttributes

type IssueCommentEventObjectAttributes struct {
	ID           int64              `json:"id"`
	Note         string             `json:"note"`
	NoteableType string             `json:"noteable_type"`
	AuthorID     int64              `json:"author_id"`
	CreatedAt    string             `json:"created_at"`
	UpdatedAt    string             `json:"updated_at"`
	ProjectID    int64              `json:"project_id"`
	Attachment   string             `json:"attachment"`
	LineCode     string             `json:"line_code"`
	CommitID     string             `json:"commit_id"`
	DiscussionID string             `json:"discussion_id"`
	NoteableID   int64              `json:"noteable_id"`
	System       bool               `json:"system"`
	StDiff       []*Diff            `json:"st_diff"`
	Description  string             `json:"description"`
	Action       CommentEventAction `json:"action"`
	URL          string             `json:"url"`
}

type IssueCommentEventProject

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

type IssueEvent

type IssueEvent struct {
	ObjectKind       string                     `json:"object_kind"`
	EventType        string                     `json:"event_type"`
	User             *EventUser                 `json:"user"`
	Project          IssueEventProject          `json:"project"`
	Repository       *Repository                `json:"repository"`
	ObjectAttributes IssueEventObjectAttributes `json:"object_attributes"`
	Assignee         *EventUser                 `json:"assignee"`
	Assignees        *[]EventUser               `json:"assignees"`
	Labels           []*EventLabel              `json:"labels"`
	Changes          IssueEventChanges          `json:"changes"`
}

IssueEvent represents a issue event.

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

type IssueEventChanges

type IssueEventChanges struct {
	Assignees      EventChangesAssignees           `json:"assignees"`
	Description    EventChangesDescription         `json:"description"`
	Labels         EventChangesLabels              `json:"labels"`
	Title          EventChangesTitle               `json:"title"`
	ClosedAt       IssueEventChangesClosedAt       `json:"closed_at"`
	StateID        EventChangesStateID             `json:"state_id"`
	UpdatedAt      EventChangesUpdatedAt           `json:"updated_at"`
	UpdatedByID    EventChangesUpdatedByID         `json:"updated_by_id"`
	TotalTimeSpent IssueEventChangesTotalTimeSpent `json:"total_time_spent"`
}

type IssueEventChangesClosedAt

type IssueEventChangesClosedAt struct {
	Previous string `json:"previous"`
	Current  string `json:"current"`
}

type IssueEventChangesTotalTimeSpent

type IssueEventChangesTotalTimeSpent struct {
	Previous int64 `json:"previous"`
	Current  int64 `json:"current"`
}

type IssueEventObjectAttributes

type IssueEventObjectAttributes struct {
	ID                  int64                                      `json:"id"`
	Title               string                                     `json:"title"`
	AssigneeIDs         []int64                                    `json:"assignee_ids"`
	AssigneeID          int64                                      `json:"assignee_id"`
	AuthorID            int64                                      `json:"author_id"`
	ProjectID           int64                                      `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         int64                                      `json:"updated_by_id"`
	LastEditedAt        string                                     `json:"last_edited_at"`
	LastEditedByID      int64                                      `json:"last_edited_by_id"`
	RelativePosition    int64                                      `json:"relative_position"`
	BranchName          string                                     `json:"branch_name"`
	Description         string                                     `json:"description"`
	MilestoneID         int64                                      `json:"milestone_id"`
	StateID             StateID                                    `json:"state_id"`
	Confidential        bool                                       `json:"confidential"`
	DiscussionLocked    bool                                       `json:"discussion_locked"`
	DueDate             *ISOTime                                   `json:"due_date"`
	MovedToID           int64                                      `json:"moved_to_id"`
	DuplicatedToID      int64                                      `json:"duplicated_to_id"`
	TimeEstimate        int64                                      `json:"time_estimate"`
	TotalTimeSpent      int64                                      `json:"total_time_spent"`
	TimeChange          int64                                      `json:"time_change"`
	HumanTotalTimeSpent string                                     `json:"human_total_time_spent"`
	HumanTimeEstimate   string                                     `json:"human_time_estimate"`
	HumanTimeChange     string                                     `json:"human_time_change"`
	Weight              int64                                      `json:"weight"`
	IID                 int64                                      `json:"iid"`
	URL                 string                                     `json:"url"`
	State               string                                     `json:"state"`
	Action              string                                     `json:"action"`
	Severity            string                                     `json:"severity"`
	EscalationStatus    string                                     `json:"escalation_status"`
	EscalationPolicy    IssueEventObjectAttributesEscalationPolicy `json:"escalation_policy"`
	Labels              []*EventLabel                              `json:"labels"`
}

type IssueEventObjectAttributesEscalationPolicy

type IssueEventObjectAttributesEscalationPolicy struct {
	ID   int64  `json:"id"`
	Name string `json:"name"`
}

type IssueEventProject

type IssueEventProject struct {
	ID                int64           `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"`
}
type IssueLink struct {
	ID          int64  `json:"id"`
	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

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 int64, 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 int64, 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 int64, 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

func (s *IssueLinksService) ListIssueRelations(pid any, issue int64, 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

type IssueLinksServiceInterface interface {
	ListIssueRelations(pid any, issue int64, options ...RequestOptionFunc) ([]*IssueRelation, *Response, error)
	GetIssueLink(pid any, issue, issueLink int64, options ...RequestOptionFunc) (*IssueLink, *Response, error)
	CreateIssueLink(pid any, issue int64, opt *CreateIssueLinkOptions, options ...RequestOptionFunc) (*IssueLink, *Response, error)
	DeleteIssueLink(pid any, issue, issueLink int64, options ...RequestOptionFunc) (*IssueLink, *Response, error)
}

type IssueReferences

type IssueReferences struct {
	Short    string `json:"short"`
	Relative string `json:"relative"`
	Full     string `json:"full"`
}

IssueReferences represents references of the issue.

type IssueRelation

type IssueRelation struct {
	ID             int64            `json:"id"`
	IID            int64            `json:"iid"`
	State          string           `json:"state"`
	Description    string           `json:"description"`
	Confidential   bool             `json:"confidential"`
	Author         *IssueAuthor     `json:"author"`
	Milestone      *Milestone       `json:"milestone"`
	ProjectID      int64            `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         int64            `json:"weight"`
	UserNotesCount int64            `json:"user_notes_count"`
	IssueLinkID    int64            `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

type IssuesCount struct {
	IssuesCount int64 `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

func (s *IssuesService) AddSpentTime(pid any, issue int64, 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

func (s *IssuesService) CreateTodo(pid any, issue int64, 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 int64, 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 int64, 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

func (s *IssuesService) GetIssueByID(issue int64, options ...RequestOptionFunc) (*Issue, *Response, error)

GetIssueByID gets a single issue.

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

func (*IssuesService) GetParticipants

func (s *IssuesService) GetParticipants(pid any, issue int64, 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

func (s *IssuesService) GetTimeSpent(pid any, issue int64, 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

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

func (s *IssuesService) ListMergeRequestsClosingIssue(pid any, issue int64, 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

func (s *IssuesService) ListMergeRequestsRelatedToIssue(pid any, issue int64, 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

func (s *IssuesService) MoveIssue(pid any, issue int64, 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

func (s *IssuesService) ReorderIssue(pid any, issue int64, 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

func (s *IssuesService) ResetSpentTime(pid any, issue int64, 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

func (s *IssuesService) ResetTimeEstimate(pid any, issue int64, 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

func (s *IssuesService) SetTimeEstimate(pid any, issue int64, 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

func (s *IssuesService) SubscribeToIssue(pid any, issue int64, 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

func (s *IssuesService) UnsubscribeFromIssue(pid any, issue int64, 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 int64, 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

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 int64, options ...RequestOptionFunc) (*Issue, *Response, error)
	GetIssue(pid any, issue int64, options ...RequestOptionFunc) (*Issue, *Response, error)
	CreateIssue(pid any, opt *CreateIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)
	UpdateIssue(pid any, issue int64, opt *UpdateIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)
	DeleteIssue(pid any, issue int64, options ...RequestOptionFunc) (*Response, error)
	ReorderIssue(pid any, issue int64, opt *ReorderIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)
	MoveIssue(pid any, issue int64, opt *MoveIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error)
	SubscribeToIssue(pid any, issue int64, options ...RequestOptionFunc) (*Issue, *Response, error)
	UnsubscribeFromIssue(pid any, issue int64, options ...RequestOptionFunc) (*Issue, *Response, error)
	CreateTodo(pid any, issue int64, options ...RequestOptionFunc) (*Todo, *Response, error)
	ListMergeRequestsClosingIssue(pid any, issue int64, opt *ListMergeRequestsClosingIssueOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	ListMergeRequestsRelatedToIssue(pid any, issue int64, opt *ListMergeRequestsRelatedToIssueOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
	SetTimeEstimate(pid any, issue int64, opt *SetTimeEstimateOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	ResetTimeEstimate(pid any, issue int64, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	AddSpentTime(pid any, issue int64, opt *AddSpentTimeOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	ResetSpentTime(pid any, issue int64, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	GetTimeSpent(pid any, issue int64, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	GetParticipants(pid any, issue int64, options ...RequestOptionFunc) ([]*BasicUser, *Response, error)
}

type IssuesStatistics

type IssuesStatistics struct {
	Statistics IssuesStatisticsStatistics `json:"statistics"`
}

IssuesStatistics represents a GitLab issues statistic.

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

func (IssuesStatistics) String

func (n IssuesStatistics) String() string

type IssuesStatisticsCounts

type IssuesStatisticsCounts struct {
	All    int64 `json:"all"`
	Closed int64 `json:"closed"`
	Opened int64 `json:"opened"`
}

IssuesStatisticsCounts represents a GitLab issues statistic counts.

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

type IssuesStatisticsService

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

func (s *IssuesStatisticsService) GetGroupIssuesStatistics(gid any, opt *GetGroupIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error)

func (*IssuesStatisticsService) GetIssuesStatistics

func (*IssuesStatisticsService) GetProjectIssuesStatistics

func (s *IssuesStatisticsService) GetProjectIssuesStatistics(pid any, opt *GetProjectIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error)

type IssuesStatisticsServiceInterface

type IssuesStatisticsServiceInterface interface {
	// 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
	GetIssuesStatistics(opt *GetIssuesStatisticsOptions, 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
	GetGroupIssuesStatistics(gid any, opt *GetGroupIssuesStatisticsOptions, 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
	GetProjectIssuesStatistics(pid any, opt *GetProjectIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error)
}

type IssuesStatisticsStatistics

type IssuesStatisticsStatistics struct {
	Counts IssuesStatisticsCounts `json:"counts"`
}

IssuesStatisticsStatistics represents a GitLab issues statistic statistics.

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

type Iteration

type Iteration struct {
	ID          int64      `json:"id"`
	IID         int64      `json:"iid"`
	Sequence    int64      `json:"sequence"`
	GroupID     int64      `json:"group_id"`
	Title       string     `json:"title"`
	Description string     `json:"description"`
	State       int64      `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

type IterationEvent struct {
	ID           int64      `json:"id"`
	User         *BasicUser `json:"user"`
	CreatedAt    *time.Time `json:"created_at"`
	ResourceType string     `json:"resource_type"`
	ResourceID   int64      `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

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

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 JiraIntegration

type JiraIntegration struct {
	Integration
	Properties JiraIntegrationProperties `json:"properties"`
}

JiraIntegration represents the Jira integration settings. It embeds the generic Integration struct and adds Jira-specific properties.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#get-jira-settings

type JiraIntegrationProperties

type JiraIntegrationProperties struct {
	URL                   string   `json:"url"`
	APIURL                *string  `json:"api_url"`
	JiraAuthType          int64    `json:"jira_auth_type"`
	Username              string   `json:"username"`
	JiraIssueRegex        *string  `json:"jira_issue_regex"`
	JiraIssuePrefix       *string  `json:"jira_issue_prefix"`
	JiraIssueTransitionID *string  `json:"jira_issue_transition_id"`
	IssuesEnabled         bool     `json:"issues_enabled"`
	ProjectKeys           []string `json:"project_keys"`
}

JiraIntegrationProperties represents Jira specific properties returned by the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#get-jira-settings

type JiraService

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

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                 int64    `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

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

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                int64            `json:"id"`
	Name              string           `json:"name"`
	Pipeline          JobPipeline      `json:"pipeline"`
	Ref               string           `json:"ref"`
	Artifacts         []JobArtifact    `json:"artifacts"`
	ArtifactsFile     JobArtifactsFile `json:"artifacts_file"`
	Runner            JobRunner        `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 JobArtifact

type JobArtifact struct {
	FileType   string `json:"file_type"`
	Filename   string `json:"filename"`
	Size       int64  `json:"size"`
	FileFormat string `json:"file_format"`
}

JobArtifact represents a ci build artifact.

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

type JobArtifactsFile

type JobArtifactsFile struct {
	Filename string `json:"filename"`
	Size     int64  `json:"size"`
}

JobArtifactsFile represents a ci build artifacts file.

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

type JobEvent

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             int64               `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        int64               `json:"retries_count"`
	PipelineID          int64               `json:"pipeline_id"`
	ProjectID           int64               `json:"project_id"`
	ProjectName         string              `json:"project_name"`
	User                *EventUser          `json:"user"`
	Commit              JobEventCommit      `json:"commit"`
	Repository          *Repository         `json:"repository"`
	Runner              JobEventRunner      `json:"runner"`
	Environment         EventEnvironment    `json:"environment"`
	SourcePipeline      EventSourcePipeline `json:"source_pipeline"`
}

JobEvent represents a job event.

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

type JobEventCommit

type JobEventCommit struct {
	ID          int64  `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    int64  `json:"duration"`
	StartedAt   string `json:"started_at"`
	FinishedAt  string `json:"finished_at"`
}

type JobEventRunner

type JobEventRunner struct {
	ID          int64    `json:"id"`
	Active      bool     `json:"active"`
	RunnerType  string   `json:"runner_type"`
	IsShared    bool     `json:"is_shared"`
	Description string   `json:"description"`
	Tags        []string `json:"tags"`
}

type JobPipeline

type JobPipeline struct {
	ID        int64  `json:"id"`
	ProjectID int64  `json:"project_id"`
	Ref       string `json:"ref"`
	Sha       string `json:"sha"`
	Status    string `json:"status"`
}

JobPipeline represents a ci build pipeline.

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

type JobRunner

type JobRunner struct {
	ID          int64  `json:"id"`
	Description string `json:"description"`
	Active      bool   `json:"active"`
	IsShared    bool   `json:"is_shared"`
	Name        string `json:"name"`
}

JobRunner represents a ci build runner.

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

type JobStats

type JobStats struct {
	Jobs JobStatsJobs `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 JobStatsJobs

type JobStatsJobs struct {
	Processed int64 `json:"processed"`
	Failed    int64 `json:"failed"`
	Enqueued  int64 `json:"enqueued"`
}

JobStatsJobs represents the GitLab sidekiq job stats jobs.

GitLab API docs: https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-job-statistics

type JobTokenAccessSettings

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

type JobTokenAllowlistItem struct {
	SourceProjectID int64 `json:"source_project_id"`
	TargetGroupID   int64 `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 JobTokenAuthSource

type JobTokenAuthSource struct {
	Token string
}

JobTokenAuthSource used as an AuthSource for CI Job Tokens

func (JobTokenAuthSource) Header

func (JobTokenAuthSource) Init

type JobTokenInboundAllowItem

type JobTokenInboundAllowItem struct {
	SourceProjectID int64 `json:"source_project_id"`
	TargetProjectID int64 `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

type JobTokenInboundAllowOptions struct {
	TargetProjectID *int64 `url:"target_project_id,omitempty" json:"target_project_id,omitempty"`
}

JobTokenInboundAllowOptions 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

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

func (j *JobTokenScopeService) AddGroupToJobTokenAllowlist(pid any, opt *AddGroupToJobTokenAllowlistOptions, options ...RequestOptionFunc) (*JobTokenAllowlistItem, *Response, error)

AddGroupToJobTokenAllowlist 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

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

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

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

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

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

func (j *JobTokenScopeService) RemoveGroupFromJobTokenAllowlist(pid any, targetGroup int64, options ...RequestOptionFunc) (*Response, error)

RemoveGroupFromJobTokenAllowlist 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

func (j *JobTokenScopeService) RemoveProjectFromJobScopeAllowList(pid any, targetProject int64, 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

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 int64, 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 int64, options ...RequestOptionFunc) (*Response, error)
}

type JobVariableOptions

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

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

func (s *JobsService) CancelJob(pid any, jobID int64, options ...RequestOptionFunc) (*Job, *Response, error)

func (*JobsService) DeleteArtifacts

func (s *JobsService) DeleteArtifacts(pid any, jobID int64, options ...RequestOptionFunc) (*Response, error)

func (*JobsService) DeleteProjectArtifacts

func (s *JobsService) DeleteProjectArtifacts(pid any, options ...RequestOptionFunc) (*Response, error)

func (*JobsService) DownloadArtifactsFile

func (s *JobsService) DownloadArtifactsFile(pid any, refName string, opt *DownloadArtifactsFileOptions, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

func (*JobsService) DownloadSingleArtifactsFile

func (s *JobsService) DownloadSingleArtifactsFile(pid any, jobID int64, artifactPath string, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

func (*JobsService) DownloadSingleArtifactsFileByTagOrBranch

func (s *JobsService) DownloadSingleArtifactsFileByTagOrBranch(pid any, refName string, artifactPath string, opt *DownloadArtifactsFileOptions, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

func (*JobsService) EraseJob

func (s *JobsService) EraseJob(pid any, jobID int64, options ...RequestOptionFunc) (*Job, *Response, error)

func (*JobsService) GetJob

func (s *JobsService) GetJob(pid any, jobID int64, options ...RequestOptionFunc) (*Job, *Response, error)

func (*JobsService) GetJobArtifacts

func (s *JobsService) GetJobArtifacts(pid any, jobID int64, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

func (*JobsService) GetJobTokensJob

func (s *JobsService) GetJobTokensJob(opts *GetJobTokensJobOptions, options ...RequestOptionFunc) (*Job, *Response, error)

func (*JobsService) GetTraceFile

func (s *JobsService) GetTraceFile(pid any, jobID int64, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

func (*JobsService) KeepArtifacts

func (s *JobsService) KeepArtifacts(pid any, jobID int64, options ...RequestOptionFunc) (*Job, *Response, error)

func (*JobsService) ListPipelineBridges

func (s *JobsService) ListPipelineBridges(pid any, pipelineID int64, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Bridge, *Response, error)

func (*JobsService) ListPipelineJobs

func (s *JobsService) ListPipelineJobs(pid any, pipelineID int64, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)

func (*JobsService) ListProjectJobs

func (s *JobsService) ListProjectJobs(pid any, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)

func (*JobsService) PlayJob

func (s *JobsService) PlayJob(pid any, jobID int64, opt *PlayJobOptions, options ...RequestOptionFunc) (*Job, *Response, error)

func (*JobsService) RetryJob

func (s *JobsService) RetryJob(pid any, jobID int64, options ...RequestOptionFunc) (*Job, *Response, error)

type JobsServiceInterface

type JobsServiceInterface interface {
	// 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
	ListProjectJobs(pid any, 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
	ListPipelineJobs(pid any, pipelineID int64, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Job, *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
	ListPipelineBridges(pid any, pipelineID int64, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Bridge, *Response, error)
	// GetJobTokensJob retrieves the job that generated a job token.
	//
	// GitLab API docs: https://docs.gitlab.com/api/jobs/#get-job-tokens-job
	GetJobTokensJob(opts *GetJobTokensJobOptions, 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
	GetJob(pid any, jobID int64, options ...RequestOptionFunc) (*Job, *Response, error)
	// GetJobArtifacts gets jobs artifacts of a project
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/job_artifacts/#get-job-artifacts
	GetJobArtifacts(pid any, jobID int64, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	// DownloadArtifactsFile downloads 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
	DownloadArtifactsFile(pid any, refName string, opt *DownloadArtifactsFileOptions, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	// DownloadSingleArtifactsFile downloads 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
	DownloadSingleArtifactsFile(pid any, jobID int64, artifactPath string, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	// DownloadSingleArtifactsFileByTagOrBranch downloads a single file from
	// a job's artifacts in the latest successful pipeline using the reference name.
	// 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
	DownloadSingleArtifactsFileByTagOrBranch(pid any, refName string, artifactPath string, opt *DownloadArtifactsFileOptions, 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
	GetTraceFile(pid any, jobID int64, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	// CancelJob cancels a single job of a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/jobs/#cancel-a-job
	CancelJob(pid any, jobID int64, 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
	RetryJob(pid any, jobID int64, 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
	EraseJob(pid any, jobID int64, 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
	KeepArtifacts(pid any, jobID int64, 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
	PlayJob(pid any, jobID int64, opt *PlayJobOptions, options ...RequestOptionFunc) (*Job, *Response, error)
	// DeleteArtifacts deletes artifacts of a job
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/job_artifacts/#delete-job-artifacts
	DeleteArtifacts(pid any, jobID int64, options ...RequestOptionFunc) (*Response, error)
	// DeleteProjectArtifacts deletes artifacts eligible for deletion in a project
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/job_artifacts/#delete-job-artifacts
	DeleteProjectArtifacts(pid any, options ...RequestOptionFunc) (*Response, error)
}

type Key

type Key struct {
	ID        int64      `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

type KeySystemEvent struct {
	BaseSystemEvent
	ID       int64  `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

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

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

func (s *KeysService) GetKeyWithUser(key int64, 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

type KeysServiceInterface interface {
	GetKeyWithUser(key int64, 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                     int64           `json:"id"`
	Name                   string          `json:"name"`
	Color                  string          `json:"color"`
	TextColor              string          `json:"text_color"`
	Description            string          `json:"description"`
	OpenIssuesCount        int64           `json:"open_issues_count"`
	ClosedIssuesCount      int64           `json:"closed_issues_count"`
	OpenMergeRequestsCount int64           `json:"open_merge_requests_count"`
	Subscribed             bool            `json:"subscribed"`
	Priority               Nullable[int64] `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

func (l *Label) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type LabelDetails

type LabelDetails struct {
	ID              int64  `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

type LabelEvent struct {
	ID           int64           `json:"id"`
	Action       string          `json:"action"`
	CreatedAt    *time.Time      `json:"created_at"`
	ResourceType string          `json:"resource_type"`
	ResourceID   int64           `json:"resource_id"`
	User         BasicUser       `json:"user"`
	Label        LabelEventLabel `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 LabelEventLabel

type LabelEventLabel struct {
	ID          int64  `json:"id"`
	Name        string `json:"name"`
	Color       string `json:"color"`
	TextColor   string `json:"text_color"`
	Description string `json:"description"`
}

LabelEventLabel represents a resource label event label.

GitLab API docs: https://docs.gitlab.com/api/resource_label_events/#get-single-issue-label-event

type LabelID

type LabelID struct {
	Value any
}

type LabelOptions

type LabelOptions []string

LabelOptions is a custom type with specific marshaling characteristics.

func (*LabelOptions) EncodeValues

func (l *LabelOptions) EncodeValues(key string, v *url.Values) error

EncodeValues implements the query.EncodeValues interface.

func (*LabelOptions) MarshalJSON

func (l *LabelOptions) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (*LabelOptions) UnmarshalJSON

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

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

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

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

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 new 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

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

type LastPipeline struct {
	ID     int64  `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

type License struct {
	ID               int64           `json:"id"`
	Plan             string          `json:"plan"`
	CreatedAt        *time.Time      `json:"created_at"`
	StartsAt         *ISOTime        `json:"starts_at"`
	ExpiresAt        *ISOTime        `json:"expires_at"`
	HistoricalMax    int64           `json:"historical_max"`
	MaximumUserCount int64           `json:"maximum_user_count"`
	Expired          bool            `json:"expired"`
	Overage          int64           `json:"overage"`
	UserLimit        int64           `json:"user_limit"`
	ActiveUsers      int64           `json:"active_users"`
	Licensee         LicenseLicensee `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 LicenseAddOns `json:"add_ons"`
}

License represents a GitLab license.

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

func (License) String

func (l License) String() string

type LicenseAddOns

type LicenseAddOns struct {
	GitLabAuditorUser int64 `json:"GitLab_Auditor_User"`
	GitLabDeployBoard int64 `json:"GitLab_DeployBoard"`
	GitLabFileLocks   int64 `json:"GitLab_FileLocks"`
	GitLabGeo         int64 `json:"GitLab_Geo"`
	GitLabServiceDesk int64 `json:"GitLab_ServiceDesk"`
}

LicenseAddOns represents a GitLab license add ons.

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

func (LicenseAddOns) String

func (a LicenseAddOns) String() string

type LicenseLicensee

type LicenseLicensee struct {
	Name    string `json:"Name"`
	Company string `json:"Company"`
	Email   string `json:"Email"`
}

LicenseLicensee represents a GitLab license licensee.

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

func (LicenseLicensee) String

func (l LicenseLicensee) String() string

type LicenseService

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

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

func (s *LicenseService) DeleteLicense(licenseID int64, options ...RequestOptionFunc) (*Response, error)

DeleteLicense deletes an existing license.

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

func (*LicenseService) GetLicense

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

type LicenseServiceInterface interface {
	GetLicense(options ...RequestOptionFunc) (*License, *Response, error)
	AddLicense(opt *AddLicenseOptions, options ...RequestOptionFunc) (*License, *Response, error)
	DeleteLicense(licenseID int64, options ...RequestOptionFunc) (*Response, error)
}

type LicenseTemplate

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

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

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

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

type LicenseTemplatesServiceInterface interface {
	ListLicenseTemplates(opt *ListLicenseTemplatesOptions, options ...RequestOptionFunc) ([]*LicenseTemplate, *Response, error)
	GetLicenseTemplate(template string, opt *GetLicenseTemplateOptions, options ...RequestOptionFunc) (*LicenseTemplate, *Response, error)
}

type LinePosition

type LinePosition struct {
	LineCode string `json:"line_code"`
	Type     string `json:"type"`
	OldLine  int64  `json:"old_line"`
	NewLine  int64  `json:"new_line"`
}

LinePosition represents a position in a line range.

type LinePositionOptions

type LinePositionOptions struct {
	LineCode *string `url:"line_code,omitempty" json:"line_code,omitempty"`
	Type     *string `url:"type,omitempty" json:"type,omitempty"`
	OldLine  *int64  `url:"old_line,omitempty" json:"old_line,omitempty"`
	NewLine  *int64  `url:"new_line,omitempty" json:"new_line,omitempty"`
}

LinePositionOptions represents the line position option of a discussion.

type LineRange

type LineRange struct {
	StartRange *LinePosition `json:"start"`
	EndRange   *LinePosition `json:"end"`
}

LineRange represents the range of a note.

type LineRangeOptions

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

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 LinkedWorkItem

type LinkedWorkItem struct {
	WorkItemIID

	// LinkType is the type of relationship between the work items.
	// Possible values: blocks, is_blocked_by, relates_to
	LinkType string
}

LinkedWorkItem represents a linked work item with its relationship type.

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

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

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

type ListAccessRequestsOptions struct {
	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 ListActiveIntegrationsOptions

type ListActiveIntegrationsOptions struct {
	ListOptions
}

ListActiveIntegrationsOptions represents the available ListActiveIntegrations() options.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#list-all-active-integrations

type ListAgentTokensOptions

type ListAgentTokensOptions struct {
	ListOptions
}

ListAgentTokensOptions represents the available ListAgentTokens() options.

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

type ListAgentsOptions

type ListAgentsOptions struct {
	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

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

type ListApplicationsOptions struct {
	ListOptions
}

ListApplicationsOptions represents the available ListApplications() options.

type ListAuditEventsOptions

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

type ListAwardEmojiOptions struct {
	ListOptions
}

ListAwardEmojiOptions represents the available options for listing emoji for each resource

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

type ListBillableGroupMembersOptions

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

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

type ListBroadcastMessagesOptions struct {
	ListOptions
}

ListBroadcastMessagesOptions represents the available ListBroadcastMessages() options.

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

type ListCIYMLTemplatesOptions

type ListCIYMLTemplatesOptions struct {
	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

type ListClientKeysOptions struct {
	ListOptions
}

ListClientKeysOptions represents the available ListClientKeys() options.

GitLab API docs: https://docs.gitlab.com/api/error_tracking/#list-project-client-keys

type ListCommitDiscussionsOptions

type ListCommitDiscussionsOptions struct {
	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

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"`
	Scope      *string               `url:"scope,omitempty" json:"scope,omitempty"`
}

ListContributionEventsOptions represents the options for GetUserContributionEvents

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

type ListContributorsOptions

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

type ListDescendantGroupsOptions ListGroupsOptions

ListDescendantGroupsOptions represents the available ListDescendantGroups() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-descendant-groups

type ListDockerfileTemplatesOptions

type ListDockerfileTemplatesOptions struct {
	ListOptions
}

ListDockerfileTemplatesOptions represents the available ListAllTemplates() options.

GitLab API docs: https://docs.gitlab.com/api/templates/dockerfiles/#list-dockerfile-templates

type ListDraftNotesOptions

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

type ListEmailsForUserOptions struct {
	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

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

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

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

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

type ListFreezePeriodsOptions struct {
	ListOptions
}

ListFreezePeriodsOptions represents the available ListFreezePeriodsOptions() options.

GitLab API docs: https://docs.gitlab.com/api/freeze_periods/#list-freeze-periods

type ListGeoNodesOptions

type ListGeoNodesOptions struct {
	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

type ListGeoSitesOptions struct {
	ListOptions
}

ListGeoSitesOptions represents the available ListGeoSites() options.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#list-all-geo-sites

type ListGroupAccessTokensOptions

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"`
	ExpiresAfter   *ISOTime          `url:"expires_after,omitempty" json:"expires_after,omitempty"`
	ExpiresBefore  *ISOTime          `url:"expires_before,omitempty" json:"expires_before,omitempty"`
	Sort           *AccessTokenSort  `url:"sort,omitempty" json:"sort,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

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

type ListGroupDeployTokensOptions struct {
	ListOptions
}

ListGroupDeployTokensOptions represents the available ListGroupDeployTokens() options.

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

type ListGroupEpicBoardsOptions

type ListGroupEpicBoardsOptions struct {
	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

type ListGroupEpicDiscussionsOptions struct {
	ListOptions
}

ListGroupEpicDiscussionsOptions represents the available ListEpicDiscussions() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-group-epic-discussion-items

type ListGroupEpicsOptions

type ListGroupEpicsOptions struct {
	ListOptions
	AuthorID                *int64        `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

type ListGroupHooksOptions struct {
	ListOptions
}

ListGroupHooksOptions represents the available ListGroupHooks() options.

GitLab API docs: https://docs.gitlab.com/api/group_webhooks/#list-group-hooks

type ListGroupIssueBoardListsOptions

type ListGroupIssueBoardListsOptions struct {
	ListOptions
}

ListGroupIssueBoardListsOptions represents the available ListGroupIssueBoardLists() options.

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

type ListGroupIssueBoardsOptions

type ListGroupIssueBoardsOptions struct {
	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

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              *[]int64      `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          *int64        `url:"author_id,omitempty" json:"author_id,omitempty"`
	NotAuthorID       *int64        `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 int64 in the documentation, however, the field
	// must be able to accept Assignee IDs and the words 'None' and 'Any'.  Use
	// *AssigneeIDValue instead of *int64.
	AssigneeID          *AssigneeIDValue `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	NotAssigneeID       *int64           `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         *int64           `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

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

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"`
	IncludeDescendantGroups *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

type ListGroupMembersOptions struct {
	ListOptions
	Query        *string  `url:"query,omitempty" json:"query,omitempty"`
	UserIDs      *[]int64 `url:"user_ids[],omitempty" json:"user_ids,omitempty"`
	ShowSeatInfo *bool    `url:"show_seat_info,omitempty" json:"show_seat_info,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

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               *int64            `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

type ListGroupMilestonesOptions struct {
	ListOptions
	IIDs               *[]int64 `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

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 ListGroupPersonalAccessTokensOptions

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

ListGroupPersonalAccessTokensOptions represents the available ListGroupPersonalAccessTokens() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-all-personal-access-tokens-for-a-group

type ListGroupProjectsOptions

type ListGroupProjectsOptions struct {
	ListOptions
	Active                   *bool             `url:"active,omitempty" json:"active,omitempty"`
	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 ListGroupProjects() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-projects

type ListGroupProtectedBranchesOptions

type ListGroupProtectedBranchesOptions struct {
	ListOptions
	Search *string `url:"search,omitempty" json:"search,omitempty"`
}

ListGroupProtectedBranchesOptions represents the available ListProtectedBranches() options.

GitLab API docs: https://docs.gitlab.com/api/group_protected_branches/#list-protected-branches

type ListGroupProtectedEnvironmentsOptions

type ListGroupProtectedEnvironmentsOptions struct {
	ListOptions
}

ListGroupProtectedEnvironmentsOptions represents the available ListGroupProtectedEnvironments() options.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#list-group-level-protected-environments

type ListGroupRegistryRepositoriesOptions

type ListGroupRegistryRepositoriesOptions struct {
	ListOptions
}

ListGroupRegistryRepositoriesOptions represents the available ListGroupRegistryRepositories() options.

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

type ListGroupRelationsStatusOptions

type ListGroupRelationsStatusOptions struct {
	ListOptions

	Relation *string `url:"relation,omitempty" json:"relation,omitempty"`
}

ListGroupRelationsStatusOptions represents the available ListExportStatus() options.

GitLab API docs: https://docs.gitlab.com/api/group_relations_export/#export-status

type ListGroupReleasesOptions

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 ListGroupSSHKeysOptions

type ListGroupSSHKeysOptions struct {
	ListOptions
	CreatedAfter  *ISOTime `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore *ISOTime `url:"created_before,omitempty" json:"created_before,omitempty"`
	ExpiresBefore *ISOTime `url:"expires_before,omitempty" json:"expires_before,omitempty"`
	ExpiresAfter  *ISOTime `url:"expires_after,omitempty" json:"expires_after,omitempty"`
}

ListGroupSSHKeysOptions represents the available ListGroupSSHKeys() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-all-ssh-keys-for-a-group

type ListGroupSharedProjectsOptions

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

type ListGroupVariablesOptions struct {
	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

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           *[]int64          `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"`
	Visibility           *VisibilityValue  `url:"visibility,omitempty" json:"visibility,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"`
	MarkedForDeletionOn  *ISOTime          `url:"marked_for_deletion_on,omitempty" json:"marked_for_deletion_on,omitempty"`
	Active               *bool             `url:"active,omitempty" json:"active,omitempty"`
	Archived             *bool             `url:"archived,omitempty" json:"archived,omitempty"`
}

ListGroupsOptions represents the available ListGroups() options.

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

type ListGroupsRunnersOptions

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

type ListInstanceDeployKeysOptions struct {
	ListOptions
	Public *bool `url:"public,omitempty" json:"public,omitempty"`
}

ListInstanceDeployKeysOptions represents the available ListAllDeployKeys() options.

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

type ListInstanceVariablesOptions

type ListInstanceVariablesOptions struct {
	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

type ListIssueBoardsOptions struct {
	ListOptions
}

ListIssueBoardsOptions represents the available ListIssueBoards() options.

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

type ListIssueDiscussionsOptions

type ListIssueDiscussionsOptions struct {
	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            *int64           `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         *[]int64         `url:"not[author_id],omitempty" json:"not[author_id],omitempty"`
	AssigneeID          *AssigneeIDValue `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	NotAssigneeID       *[]int64         `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                *[]int64         `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         *int64           `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

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

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

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

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

ListLabelsOptions represents the available ListLabels() options.

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

type ListLicenseTemplatesOptions

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

type ListMarkdownUploadsOptions struct {
	ListOptions
}

type ListMembershipsForBillableGroupMemberOptions

type ListMembershipsForBillableGroupMemberOptions struct {
	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

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

type ListMergeRequestDiscussionsOptions struct {
	ListOptions
}

ListMergeRequestDiscussionsOptions represents the available ListMergeRequestDiscussions() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-merge-request-discussion-items

type ListMergeRequestNotesOptions

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

type ListMergeRequestsClosingIssueOptions struct {
	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               *int64            `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

type ListMergeRequestsRelatedToIssueOptions struct {
	ListOptions
}

ListMergeRequestsRelatedToIssueOptions represents the available ListMergeRequestsRelatedToIssue() options.

GitLab API docs: https://docs.gitlab.com/api/issues/#list-merge-requests-related-to-issue

type ListMergeTrainsOptions

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.

GitLab API docs: https://docs.gitlab.com/api/merge_trains/#list-merge-trains-for-a-project

type ListMetricImagesOptions

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

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             *[]int64 `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 int64 `url:"per_page,omitempty" json:"per_page,omitempty"`
	// For offset-based paginated result sets, page of results to retrieve.
	Page int64 `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

type ListPackageFilesOptions struct {
	ListOptions
}

ListPackageFilesOptions represents the available ListPackageFiles() options.

GitLab API docs: https://docs.gitlab.com/api/packages/#list-package-files

type ListPackageProtectionRulesOptions

type ListPackageProtectionRulesOptions struct {
	ListOptions
}

ListPackageProtectionRulesOptions represents the available ListPackageProtectionRules() options.

GitLab API docs: https://docs.gitlab.com/api/project_packages_protection_rules/#list-package-protection-rules

type ListPagesDomainsOptions

type ListPagesDomainsOptions struct {
	ListOptions
}

ListPagesDomainsOptions represents the available ListPagesDomains() options.

GitLab API docs: https://docs.gitlab.com/api/pages_domains/#list-pages-domains

type ListPendingInvitationsOptions

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

type ListPersonalAccessTokensOptions struct {
	ListOptions
	CreatedAfter   *ISOTime `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore  *ISOTime `url:"created_before,omitempty" json:"created_before,omitempty"`
	ExpiresAfter   *ISOTime `url:"expires_after,omitempty" json:"expires_after,omitempty"`
	ExpiresBefore  *ISOTime `url:"expires_before,omitempty" json:"expires_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"`
	Sort           *string  `url:"sort,omitempty" json:"sort,omitempty"`
	State          *string  `url:"state,omitempty" json:"state,omitempty"`
	UserID         *int64   `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

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

type ListPipelineTriggersOptions struct {
	ListOptions
}

ListPipelineTriggersOptions represents the available ListPipelineTriggers() options.

GitLab API docs: https://docs.gitlab.com/api/pipeline_triggers/#list-project-trigger-tokens

type ListPipelinesTriggeredByScheduleOptions

type ListPipelinesTriggeredByScheduleOptions struct {
	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

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

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

type ListProjectDependenciesOptions struct {
	ListOptions
	PackageManager []*DependencyPackageManagerValue `url:"package_manager,comma,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

type ListProjectDeployKeysOptions struct {
	ListOptions
}

ListProjectDeployKeysOptions represents the available ListProjectDeployKeys() options.

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

type ListProjectDeployTokensOptions

type ListProjectDeployTokensOptions struct {
	ListOptions
}

ListProjectDeployTokensOptions represents the available ListProjectDeployTokens() options.

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

type ListProjectDeploymentsOptions

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 ListProjectExternalStatusChecksOptions

type ListProjectExternalStatusChecksOptions struct {
	ListOptions
}

ListProjectExternalStatusChecksOptions represents the available ListProjectExternalStatusChecks() options.

GitLab API docs: https://docs.gitlab.com/api/status_checks/#get-project-external-status-check-services

type ListProjectFeatureFlagOptions

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

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"`
	SharedVisibleOnly    *bool             `url:"shared_visible_only,omitempty" json:"shared_visible_only,omitempty"`
	SkipGroups           *[]int64          `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 struct {
	ListOptions
}

ListProjectHooksOptions represents the available ListProjectHooks() options.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#list-webhooks-for-a-project

type ListProjectInvitedGroupOptions

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

ListProjectInvitedGroupOptions 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              *[]int64      `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          *int64        `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       *int64        `url:"not[author_id],omitempty" json:"not[author_id],omitempty"`

	// AssigneeID is defined as an int in the documentation, however, the field
	// must be able to accept Assignee IDs and the words 'None' and 'Any'.  Use
	// *AssigneeIDValue instead of *int.
	AssigneeID          *AssigneeIDValue `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	NotAssigneeID       *int64           `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         *int64           `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

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      *[]int64 `url:"user_ids[],omitempty" json:"user_ids,omitempty"`
	ShowSeatInfo *bool    `url:"show_seat_info,omitempty" json:"show_seat_info,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 ListProjectMergeRequestExternalStatusChecksOptions

type ListProjectMergeRequestExternalStatusChecksOptions struct {
	ListOptions
}

ListProjectMergeRequestExternalStatusChecksOptions represents the available ListProjectMergeRequestExternalStatusChecks() options.

GitLab API docs: https://docs.gitlab.com/api/status_checks/#list-status-checks-for-a-merge-request

type ListProjectMergeRequestsOptions

type ListProjectMergeRequestsOptions struct {
	ListOptions
	IIDs                   *[]int64          `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"`
	Environment            *string           `url:"environment,omitempty" json:"environment,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"`
	DeployedBefore         *time.Time        `url:"deployed_before,omitempty" json:"deployed_before,omitempty"`
	DeployedAfter          *time.Time        `url:"deployed_after,omitempty" json:"deployed_after,omitempty"`
	Scope                  *string           `url:"scope,omitempty" json:"scope,omitempty"`
	AuthorID               *int64            `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

type ListProjectMirrorOptions struct {
	ListOptions
}

ListProjectMirrorOptions represents the available ListProjectMirror() options.

type ListProjectPackagesOptions

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

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"`
	CreatedAfter  *time.Time       `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore *time.Time       `url:"created_before,omitempty" json:"created_before,omitempty"`
}

ListProjectPipelinesOptions represents the available ListProjectPipelines() options.

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

type ListProjectRegistryRepositoriesOptions

type ListProjectRegistryRepositoriesOptions struct {
	ListOptions

	Tags      *bool `url:"tags,omitempty" json:"tags,omitempty"`
	TagsCount *bool `url:"tags_count,omitempty" json:"tags_count,omitempty"`
}

ListProjectRegistryRepositoriesOptions represents the available ListProjectRegistryRepositories() options.

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

type ListProjectRunnersOptions

type ListProjectRunnersOptions ListRunnersOptions

ListProjectRunnersOptions represents the available ListProjectRunners() options.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-projects-runners

type ListProjectSecureFilesOptions

type ListProjectSecureFilesOptions struct {
	ListOptions
}

ListProjectSecureFilesOptions represents the available ListProjectSecureFiles() options.

GitLab API docs: https://docs.gitlab.com/api/secure_files/#list-project-secure-files

type ListProjectSnippetsOptions

type ListProjectSnippetsOptions struct {
	ListOptions
}

ListProjectSnippetsOptions represents the available ListSnippets() options.

GitLab API docs: https://docs.gitlab.com/api/project_snippets/#list-snippets

type ListProjectStarrersOptions

type ListProjectStarrersOptions struct {
	ListOptions
	Search *string `url:"search,omitempty" json:"search,omitempty"`
}

ListProjectStarrersOptions represents the available ListProjectStarrers() options.

GitLab API docs: https://docs.gitlab.com/api/project_starring/#list-users-who-starred-a-project

type ListProjectTemplatesOptions

type ListProjectTemplatesOptions struct {
	ListOptions
	ID   *int64  `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

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

type ListProjectVariablesOptions struct {
	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

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-all-visible-events-for-a-project

type ListProjectVulnerabilitiesOptions

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
	Active                   *bool             `url:"active,omitempty" json:"active,omitempty"`
	Archived                 *bool             `url:"archived,omitempty" json:"archived,omitempty"`
	IDAfter                  *int64            `url:"id_after,omitempty" json:"id_after,omitempty"`
	IDBefore                 *int64            `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

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

type ListProtectedEnvironmentsOptions struct {
	ListOptions
}

ListProtectedEnvironmentsOptions represents the available ListProtectedEnvironments() options.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#list-protected-environments

type ListProtectedTagsOptions

type ListProtectedTagsOptions struct {
	ListOptions
}

ListProtectedTagsOptions represents the available ListProtectedTags() options.

GitLab API docs: https://docs.gitlab.com/api/protected_tags/#list-protected-tags

type ListProvisionedUsersOptions

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 ListRegistryRepositoryTagsOptions

type ListRegistryRepositoryTagsOptions struct {
	ListOptions
}

ListRegistryRepositoryTagsOptions represents the available ListRegistryRepositoryTags() options.

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

type ListRelatedIssuesOptions

type ListRelatedIssuesOptions struct {
	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

type ListReleaseLinksOptions struct {
	ListOptions
}

ListReleaseLinksOptions represents ListReleaseLinks() options.

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

type ListReleasesOptions

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 ListRunnerControllerTokensOptions

type ListRunnerControllerTokensOptions struct {
	ListOptions
}

ListRunnerControllerTokensOptions represents the available ListRunnerControllerTokens() options.

GitLab API docs: https://docs.gitlab.com/api/runner_controller_tokens/#list-all-runner-controller-tokens

type ListRunnerControllersOptions

type ListRunnerControllersOptions struct {
	ListOptions
}

ListRunnerControllersOptions represents the available ListRunnerControllers() options.

GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#list-all-runner-controllers

type ListRunnerJobsOptions

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

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

type ListSSHKeysForUserOptions struct {
	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

type ListSSHKeysOptions struct {
	ListOptions
}

ListSSHKeysOptions represents the available ListSSHKeys options.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-ssh-keys

type ListServiceAccountPersonalAccessTokensOptions

type ListServiceAccountPersonalAccessTokensOptions struct {
	ListOptions
	CreatedAfter   *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
	CreatedBefore  *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
	ExpiresAfter   *ISOTime   `url:"expires_after,omitempty" json:"expires_after,omitempty"`
	ExpiresBefore  *ISOTime   `url:"expires_before,omitempty" json:"expires_before,omitempty"`
	LastUsedAfter  *time.Time `url:"last_used_after,omitempty" json:"last_used_after,omitempty"`
	LastUsedBefore *time.Time `url:"last_used_before,omitempty" json:"last_used_before,omitempty"`
	Revoked        *bool      `url:"revoked,omitempty" json:"revoked,omitempty"`
	UserID         *int64     `url:"user_id,omitempty" json:"user_id,omitempty"`
	Search         *string    `url:"search,omitempty" json:"search,omitempty"`
	Sort           *string    `url:"sort,omitempty" json:"sort,omitempty"`
	State          *string    `url:"state,omitempty" json:"state,omitempty"`
}

ListServiceAccountPersonalAccessTokensOptions represents the available ListServiceAccountPersonalAccessTokens() options.

GitLab API docs: https://docs.gitlab.com/api/service_accounts/#list-all-personal-access-tokens-for-a-group-service-account

type ListServiceAccountsOptions

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/service_accounts/#list-all-group-service-accounts

type ListSnippetDiscussionsOptions

type ListSnippetDiscussionsOptions struct {
	ListOptions
}

ListSnippetDiscussionsOptions represents the available ListSnippetDiscussions() options.

GitLab API docs: https://docs.gitlab.com/api/discussions/#list-project-snippet-discussion-items

type ListSnippetNotesOptions

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 struct {
	ListOptions
}

ListSnippetsOptions represents the available ListSnippets() options.

GitLab API docs: https://docs.gitlab.com/api/snippets/#list-all-snippets-for-current-user

type ListStateEventsOptions

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

type ListStatusOfAllGeoSitesOptions struct {
	ListOptions
}

ListStatusOfAllGeoSitesOptions represents the available ListStatusOfAllGeoSites() options.

GitLab API docs: https://docs.gitlab.com/api/geo_sites/#list-all-geo-site-statuses

type ListSubGroupsOptions

type ListSubGroupsOptions ListGroupsOptions

ListSubGroupsOptions represents the available ListSubGroups() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#list-subgroups

type ListTagsOptions

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

type ListTemplatesOptions struct {
	ListOptions
}

ListTemplatesOptions represents the available ListAllTemplates() options.

GitLab API docs: https://docs.gitlab.com/api/templates/gitignores/#get-all-gitignore-templates

type ListTodosOptions

type ListTodosOptions struct {
	ListOptions
	Action    *TodoAction `url:"action,omitempty" json:"action,omitempty"`
	AuthorID  *int64      `url:"author_id,omitempty" json:"author_id,omitempty"`
	ProjectID *int64      `url:"project_id,omitempty" json:"project_id,omitempty"`
	GroupID   *int64      `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

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 ListUserProjectDeployKeysOptions

type ListUserProjectDeployKeysOptions struct {
	ListOptions
}

ListUserProjectDeployKeysOptions represents the available ListUserProjectDeployKeys() options.

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

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"`
	PublicEmail     *string `url:"public_email,omitempty" json:"public_email,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-all-users

type ListWeightEventsOptions

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

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 ListWorkItemsOptions

type ListWorkItemsOptions struct {
	AssigneeUsernames    []string
	AssigneeWildcardID   *string
	AuthorUsername       *string
	Confidential         *bool
	CRMContactID         *string
	CRMOrganizationID    *string
	HealthStatusFilter   *string
	IDs                  []string
	IIDs                 []string
	IncludeAncestors     *bool
	IncludeDescendants   *bool
	IterationCadenceID   []string
	IterationID          []string
	IterationWildcardID  *string
	LabelName            []string
	MilestoneTitle       []string
	MilestoneWildcardID  *string
	MyReactionEmoji      *string
	ParentIDs            []string
	ReleaseTag           []string
	ReleaseTagWildcardID *string
	State                *string
	Subscribed           *string
	Types                []string
	Weight               *string
	WeightWildcardID     *string

	// Time filters
	ClosedAfter   *time.Time
	ClosedBefore  *time.Time
	CreatedAfter  *time.Time
	CreatedBefore *time.Time
	DueAfter      *time.Time
	DueBefore     *time.Time
	UpdatedAfter  *time.Time
	UpdatedBefore *time.Time

	// Sorting
	Sort *string

	// Search
	Search *string
	In     []string

	// Pagination
	After  *string
	Before *string
	First  *int64
	Last   *int64
}

ListWorkItemsOptions represents the available ListWorkItems() options.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#namespaceworkitems

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

type ManagementProject

type ManagementProject struct {
	ID                int64      `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

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

type Markdown struct {
	HTML string `json:"html"`
}

Markdown represents a markdown document.

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

type MarkdownService

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

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

type MarkdownServiceInterface interface {
	Render(opt *RenderOptions, options ...RequestOptionFunc) (*Markdown, *Response, error)
}

type MarkdownUpload

type MarkdownUpload struct {
	ID         int64      `json:"id"`
	Size       int64      `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

func (m MarkdownUpload) String() 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

type MarkdownUploadedFile struct {
	ID       int64  `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 MatrixIntegration

type MatrixIntegration struct {
	Integration
	Properties MatrixIntegrationProperties `json:"properties"`
}

MatrixIntegration represents the Matrix integration settings.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#matrix-notifications

type MatrixIntegrationProperties

type MatrixIntegrationProperties struct {
	Hostname                  string `json:"hostname,omitempty"`
	Room                      string `json:"room,omitempty"`
	NotifyOnlyBrokenPipelines bool   `json:"notify_only_broken_pipelines,omitempty"`
	BranchesToBeNotified      string `json:"branches_to_be_notified,omitempty"`
}

MatrixIntegrationProperties represents Matrix specific properties.

type MatrixService

type MatrixService struct {
	Service
	Properties *MatrixServiceProperties `json:"properties"`
}

MatrixService represents Matrix service settings.

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

type MatrixServiceProperties

type MatrixServiceProperties struct {
	Hostname                  string    `json:"hostname"`
	Token                     string    `json:"token"`
	Room                      string    `json:"room"`
	NotifyOnlyBrokenPipelines BoolValue `json:"notify_only_broken_pipelines"`
	BranchesToBeNotified      string    `json:"branches_to_be_notified"`
	UseInheritedSettings      BoolValue `json:"use_inherited_settings"`
}

MatrixServiceProperties represents Matrix specific properties.

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

type MattermostIntegration

type MattermostIntegration struct {
	Integration
	Properties MattermostIntegrationProperties `json:"properties"`
}

MattermostIntegration represents the Mattermost integration settings.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#mattermost-notifications

type MattermostIntegrationProperties

type MattermostIntegrationProperties struct {
	Username                   string `json:"username,omitempty"`
	Channel                    string `json:"channel,omitempty"`
	NotifyOnlyBrokenPipelines  bool   `json:"notify_only_broken_pipelines,omitempty"`
	BranchesToBeNotified       string `json:"branches_to_be_notified,omitempty"`
	LabelsToBeNotified         string `json:"labels_to_be_notified,omitempty"`
	LabelsToBeNotifiedBehavior string `json:"labels_to_be_notified_behavior,omitempty"`
	PushChannel                string `json:"push_channel,omitempty"`
	IssueChannel               string `json:"issue_channel,omitempty"`
	ConfidentialIssueChannel   string `json:"confidential_issue_channel,omitempty"`
	MergeRequestChannel        string `json:"merge_request_channel,omitempty"`
	NoteChannel                string `json:"note_channel,omitempty"`
	ConfidentialNoteChannel    string `json:"confidential_note_channel,omitempty"`
	TagPushChannel             string `json:"tag_push_channel,omitempty"`
	PipelineChannel            string `json:"pipeline_channel,omitempty"`
	WikiPageChannel            string `json:"wiki_page_channel,omitempty"`
	DeploymentChannel          string `json:"deployment_channel,omitempty"`
	IncidentChannel            string `json:"incident_channel,omitempty"`
}

MattermostIntegrationProperties represents Mattermost specific properties.

type MattermostService

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

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

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

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 MemberCreatedBy

type MemberCreatedBy struct {
	ID        int64  `json:"id"`
	Username  string `json:"username"`
	Name      string `json:"name"`
	State     string `json:"state"`
	AvatarURL string `json:"avatar_url"`
	WebURL    string `json:"web_url"`
}

type MemberEvent

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      int64      `json:"group_id"`
	UserUsername string     `json:"user_username"`
	UserName     string     `json:"user_name"`
	UserEmail    string     `json:"user_email"`
	UserID       int64      `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

type MemberRole struct {
	ID                         int64            `json:"id"`
	Name                       string           `json:"name"`
	Description                string           `json:"description,omitempty"`
	GroupID                    int64            `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

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

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

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

func (s *MemberRolesService) DeleteInstanceMemberRole(memberRoleID int64, 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

func (s *MemberRolesService) DeleteMemberRole(gid any, memberRole int64, 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

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

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

type MemberRolesServiceInterface interface {
	ListInstanceMemberRoles(options ...RequestOptionFunc) ([]*MemberRole, *Response, error)
	CreateInstanceMemberRole(opt *CreateMemberRoleOptions, options ...RequestOptionFunc) (*MemberRole, *Response, error)
	DeleteInstanceMemberRole(memberRoleID int64, 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 int64, options ...RequestOptionFunc) (*Response, error)
}

type MergeBaseOptions

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

type MergeCommentEvent struct {
	ObjectKind       string                            `json:"object_kind"`
	EventType        string                            `json:"event_type"`
	User             *EventUser                        `json:"user"`
	ProjectID        int64                             `json:"project_id"`
	Project          MergeCommentEventProject          `json:"project"`
	ObjectAttributes MergeCommentEventObjectAttributes `json:"object_attributes"`
	Repository       *Repository                       `json:"repository"`
	MergeRequest     MergeCommentEventMergeRequest     `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 MergeCommentEventMergeRequest

type MergeCommentEventMergeRequest struct {
	ID                        int64                       `json:"id"`
	TargetBranch              string                      `json:"target_branch"`
	SourceBranch              string                      `json:"source_branch"`
	SourceProjectID           int64                       `json:"source_project_id"`
	AuthorID                  int64                       `json:"author_id"`
	AssigneeID                int64                       `json:"assignee_id"`
	AssigneeIDs               []int64                     `json:"assignee_ids"`
	ReviewerIDs               []int64                     `json:"reviewer_ids"`
	Title                     string                      `json:"title"`
	CreatedAt                 string                      `json:"created_at"`
	UpdatedAt                 string                      `json:"updated_at"`
	MilestoneID               int64                       `json:"milestone_id"`
	State                     string                      `json:"state"`
	MergeStatus               string                      `json:"merge_status"`
	TargetProjectID           int64                       `json:"target_project_id"`
	IID                       int64                       `json:"iid"`
	Description               string                      `json:"description"`
	Position                  int64                       `json:"position"`
	Labels                    []*EventLabel               `json:"labels"`
	LockedAt                  string                      `json:"locked_at"`
	UpdatedByID               int64                       `json:"updated_by_id"`
	MergeError                string                      `json:"merge_error"`
	MergeParams               *MergeParams                `json:"merge_params"`
	MergeWhenPipelineSucceeds bool                        `json:"merge_when_pipeline_succeeds"`
	MergeUserID               int64                       `json:"merge_user_id"`
	MergeCommitSHA            string                      `json:"merge_commit_sha"`
	DeletedAt                 string                      `json:"deleted_at"`
	InProgressMergeCommitSHA  string                      `json:"in_progress_merge_commit_sha"`
	LockVersion               int64                       `json:"lock_version"`
	ApprovalsBeforeMerge      string                      `json:"approvals_before_merge"`
	RebaseCommitSHA           string                      `json:"rebase_commit_sha"`
	TimeEstimate              int64                       `json:"time_estimate"`
	Squash                    bool                        `json:"squash"`
	LastEditedAt              string                      `json:"last_edited_at"`
	LastEditedByID            int64                       `json:"last_edited_by_id"`
	Source                    *Repository                 `json:"source"`
	Target                    *Repository                 `json:"target"`
	LastCommit                EventMergeRequestLastCommit `json:"last_commit"`
	WorkInProgress            bool                        `json:"work_in_progress"`
	TotalTimeSpent            int64                       `json:"total_time_spent"`
	HeadPipelineID            int64                       `json:"head_pipeline_id"`
	Assignee                  *EventUser                  `json:"assignee"`
	DetailedMergeStatus       string                      `json:"detailed_merge_status"`
	URL                       string                      `json:"url"`
}

type MergeCommentEventObjectAttributes

type MergeCommentEventObjectAttributes struct {
	Attachment       string             `json:"attachment"`
	AuthorID         int64              `json:"author_id"`
	ChangePosition   *NotePosition      `json:"change_position"`
	CommitID         string             `json:"commit_id"`
	CreatedAt        string             `json:"created_at"`
	DiscussionID     string             `json:"discussion_id"`
	ID               int64              `json:"id"`
	LineCode         string             `json:"line_code"`
	Note             string             `json:"note"`
	NoteableID       int64              `json:"noteable_id"`
	NoteableType     string             `json:"noteable_type"`
	OriginalPosition *NotePosition      `json:"original_position"`
	Position         *NotePosition      `json:"position"`
	ProjectID        int64              `json:"project_id"`
	ResolvedAt       string             `json:"resolved_at"`
	ResolvedByID     int64              `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      int64              `json:"updated_by_id"`
	Description      string             `json:"description"`
	Action           CommentEventAction `json:"action"`
	URL              string             `json:"url"`
}

type MergeCommentEventProject

type MergeCommentEventProject struct {
	ID                int64           `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"`
}

type MergeEvent

type MergeEvent struct {
	ObjectKind       string                     `json:"object_kind"`
	EventType        string                     `json:"event_type"`
	User             *EventUser                 `json:"user"`
	Project          MergeEventProject          `json:"project"`
	ObjectAttributes MergeEventObjectAttributes `json:"object_attributes"`
	Repository       *Repository                `json:"repository"`
	Labels           []*EventLabel              `json:"labels"`
	Changes          MergeEventChanges          `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 MergeEventChanges

type MergeEventChanges struct {
	Assignees       EventChangesAssignees            `json:"assignees"`
	Reviewers       MergeEventChangesReviewers       `json:"reviewers"`
	Description     EventChangesDescription          `json:"description"`
	Draft           MergeEventChangesDraft           `json:"draft"`
	Labels          EventChangesLabels               `json:"labels"`
	LastEditedAt    MergeEventChangesLastEditedAt    `json:"last_edited_at"`
	LastEditedByID  MergeEventChangesLastEditedByID  `json:"last_edited_by_id"`
	MergeStatus     MergeEventChangesMergeStatus     `json:"merge_status"`
	MilestoneID     MergeEventChangesMilestoneID     `json:"milestone_id"`
	SourceBranch    MergeEventChangesSourceBranch    `json:"source_branch"`
	SourceProjectID MergeEventChangesSourceProjectID `json:"source_project_id"`
	StateID         EventChangesStateID              `json:"state_id"`
	TargetBranch    MergeEventChangesTargetBranch    `json:"target_branch"`
	TargetProjectID MergeEventChangesTargetProjectID `json:"target_project_id"`
	Title           EventChangesTitle                `json:"title"`
	UpdatedAt       EventChangesUpdatedAt            `json:"updated_at"`
	UpdatedByID     EventChangesUpdatedByID          `json:"updated_by_id"`
}

type MergeEventChangesDraft

type MergeEventChangesDraft struct {
	Previous bool `json:"previous"`
	Current  bool `json:"current"`
}

type MergeEventChangesLastEditedAt

type MergeEventChangesLastEditedAt struct {
	Previous string `json:"previous"`
	Current  string `json:"current"`
}

type MergeEventChangesLastEditedByID

type MergeEventChangesLastEditedByID struct {
	Previous int64 `json:"previous"`
	Current  int64 `json:"current"`
}

type MergeEventChangesMergeStatus

type MergeEventChangesMergeStatus struct {
	Previous string `json:"previous"`
	Current  string `json:"current"`
}

type MergeEventChangesMilestoneID

type MergeEventChangesMilestoneID struct {
	Previous int64 `json:"previous"`
	Current  int64 `json:"current"`
}

type MergeEventChangesReviewers

type MergeEventChangesReviewers struct {
	Previous []*EventUser `json:"previous"`
	Current  []*EventUser `json:"current"`
}

type MergeEventChangesSourceBranch

type MergeEventChangesSourceBranch struct {
	Previous string `json:"previous"`
	Current  string `json:"current"`
}

type MergeEventChangesSourceProjectID

type MergeEventChangesSourceProjectID struct {
	Previous int64 `json:"previous"`
	Current  int64 `json:"current"`
}

type MergeEventChangesTargetBranch

type MergeEventChangesTargetBranch struct {
	Previous string `json:"previous"`
	Current  string `json:"current"`
}

type MergeEventChangesTargetProjectID

type MergeEventChangesTargetProjectID struct {
	Previous int64 `json:"previous"`
	Current  int64 `json:"current"`
}

type MergeEventObjectAttributes

type MergeEventObjectAttributes struct {
	ID                          int64                       `json:"id"`
	TargetBranch                string                      `json:"target_branch"`
	SourceBranch                string                      `json:"source_branch"`
	SourceProjectID             int64                       `json:"source_project_id"`
	AuthorID                    int64                       `json:"author_id"`
	AssigneeID                  int64                       `json:"assignee_id"`
	AssigneeIDs                 []int64                     `json:"assignee_ids"`
	ReviewerIDs                 []int64                     `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              int64                       `json:"last_edited_by_id"`
	MilestoneID                 int64                       `json:"milestone_id"`
	StateID                     StateID                     `json:"state_id"`
	State                       string                      `json:"state"`
	MergeStatus                 string                      `json:"merge_status"`
	TargetProjectID             int64                       `json:"target_project_id"`
	IID                         int64                       `json:"iid"`
	Description                 string                      `json:"description"`
	Position                    int64                       `json:"position"`
	LockedAt                    string                      `json:"locked_at"`
	UpdatedByID                 int64                       `json:"updated_by_id"`
	MergeError                  string                      `json:"merge_error"`
	MergeParams                 *MergeParams                `json:"merge_params"`
	MergeWhenBuildSucceeds      bool                        `json:"merge_when_build_succeeds"`
	MergeUserID                 int64                       `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                 int64                       `json:"lock_version"`
	TimeEstimate                int64                       `json:"time_estimate"`
	Source                      *Repository                 `json:"source"`
	Target                      *Repository                 `json:"target"`
	HeadPipelineID              *int64                      `json:"head_pipeline_id"`
	LastCommit                  EventMergeRequestLastCommit `json:"last_commit"`
	BlockingDiscussionsResolved bool                        `json:"blocking_discussions_resolved"`
	WorkInProgress              bool                        `json:"work_in_progress"`
	Draft                       bool                        `json:"draft"`
	TotalTimeSpent              int64                       `json:"total_time_spent"`
	TimeChange                  int64                       `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"`
	System                      bool                        `json:"system"`
	SystemAction                string                      `json:"system_action"`
}

type MergeEventProject

type MergeEventProject struct {
	ID                int64           `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"`
}

type MergeMethodValue

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

type MergeParams struct {
	ForceRemoveSourceBranch bool `json:"force_remove_source_branch"`
}

MergeParams represents the merge params.

func (*MergeParams) UnmarshalJSON

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                        MergeRequestUser     `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                    MergeRequestDiffRefs `json:"diff_refs"`
	RebaseInProgress            bool                 `json:"rebase_in_progress"`
	DivergedCommitsCount        int64                `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

func (m *MergeRequest) UnmarshalJSON(data []byte) error

type MergeRequestApprovalRule

type MergeRequestApprovalRule struct {
	ID                   int64                `json:"id"`
	Name                 string               `json:"name"`
	RuleType             string               `json:"rule_type"`
	ReportType           string               `json:"report_type"`
	EligibleApprovers    []*BasicUser         `json:"eligible_approvers"`
	ApprovalsRequired    int64                `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

func (s MergeRequestApprovalRule) String() string

String is a stringify for MergeRequestApprovalRule

type MergeRequestApprovalSetting

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

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

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

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

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

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

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

type MergeRequestApprovalSettingsServiceInterface interface {
	GetGroupMergeRequestApprovalSettings(gid any, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)
	UpdateGroupMergeRequestApprovalSettings(gid any, opt *UpdateGroupMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)
	GetProjectMergeRequestApprovalSettings(pid any, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)
	UpdateProjectMergeRequestApprovalSettings(pid any, opt *UpdateProjectMergeRequestApprovalSettingsOptions, options ...RequestOptionFunc) (*MergeRequestApprovalSettings, *Response, error)
}

type MergeRequestApprovalState

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

type MergeRequestApprovals struct {
	ID                             int64                        `json:"id"`
	IID                            int64                        `json:"iid"`
	ProjectID                      int64                        `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           int64                        `json:"approvals_before_merge"`
	ApprovalsRequired              int64                        `json:"approvals_required"`
	ApprovalsLeft                  int64                        `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

func (m MergeRequestApprovals) String() string

type MergeRequestApprovalsService

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

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

func (s *MergeRequestApprovalsService) ChangeApprovalConfiguration(pid any, mergeRequest int64, opt *ChangeMergeRequestApprovalConfigurationOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)

ChangeApprovalConfiguration updates the approval configuration of a merge request.

Deprecated: in GitLab 16.0

func (*MergeRequestApprovalsService) CreateApprovalRule

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

func (s *MergeRequestApprovalsService) DeleteApprovalRule(pid any, mergeRequest int64, approvalRule int64, 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

func (s *MergeRequestApprovalsService) GetApprovalRules(pid any, mergeRequest int64, 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

func (s *MergeRequestApprovalsService) GetApprovalState(pid any, mergeRequest int64, 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

func (s *MergeRequestApprovalsService) GetConfiguration(pid any, mr int64, 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

func (s *MergeRequestApprovalsService) ResetApprovalsOfMergeRequest(pid any, mr int64, 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

func (s *MergeRequestApprovalsService) UnapproveMergeRequest(pid any, mr int64, 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

func (s *MergeRequestApprovalsService) UpdateApprovalRule(pid any, mergeRequest int64, approvalRule int64, 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

type MergeRequestApprovalsServiceInterface interface {
	ApproveMergeRequest(pid any, mr int64, opt *ApproveMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error)
	UnapproveMergeRequest(pid any, mr int64, options ...RequestOptionFunc) (*Response, error)
	ResetApprovalsOfMergeRequest(pid any, mr int64, options ...RequestOptionFunc) (*Response, error)
	GetConfiguration(pid any, mr int64, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error)
	ChangeApprovalConfiguration(pid any, mergeRequest int64, opt *ChangeMergeRequestApprovalConfigurationOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	GetApprovalRules(pid any, mergeRequest int64, options ...RequestOptionFunc) ([]*MergeRequestApprovalRule, *Response, error)
	GetApprovalState(pid any, mergeRequest int64, options ...RequestOptionFunc) (*MergeRequestApprovalState, *Response, error)
	CreateApprovalRule(pid any, mergeRequest int64, opt *CreateMergeRequestApprovalRuleOptions, options ...RequestOptionFunc) (*MergeRequestApprovalRule, *Response, error)
	UpdateApprovalRule(pid any, mergeRequest int64, approvalRule int64, opt *UpdateMergeRequestApprovalRuleOptions, options ...RequestOptionFunc) (*MergeRequestApprovalRule, *Response, error)
	DeleteApprovalRule(pid any, mergeRequest int64, approvalRule int64, options ...RequestOptionFunc) (*Response, error)
}

type MergeRequestApproverGroup

type MergeRequestApproverGroup struct {
	Group MergeRequestApproverNestedGroup `json:"group"`
}

MergeRequestApproverGroup represents GitLab project level merge request approver group.

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

type MergeRequestApproverNestedGroup

type MergeRequestApproverNestedGroup struct {
	ID                   int64  `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"`
}

type MergeRequestApproverUser

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 MergeRequestContextCommitsService

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

MergeRequestContextCommitsService handles communication with the merge request context commits related methods of the GitLab API.

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

func (*MergeRequestContextCommitsService) CreateMergeRequestContextCommits

func (s *MergeRequestContextCommitsService) CreateMergeRequestContextCommits(pid any, mergeRequest int64, opt *CreateMergeRequestContextCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)

func (*MergeRequestContextCommitsService) DeleteMergeRequestContextCommits

func (s *MergeRequestContextCommitsService) DeleteMergeRequestContextCommits(pid any, mergeRequest int64, opt *DeleteMergeRequestContextCommitsOptions, options ...RequestOptionFunc) (*Response, error)

func (*MergeRequestContextCommitsService) ListMergeRequestContextCommits

func (s *MergeRequestContextCommitsService) ListMergeRequestContextCommits(pid any, mergeRequest int64, options ...RequestOptionFunc) ([]*Commit, *Response, error)

type MergeRequestContextCommitsServiceInterface

type MergeRequestContextCommitsServiceInterface interface {
	// ListMergeRequestContextCommits gets a list of merge request context commits.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/merge_request_context_commits/#list-mr-context-commits
	ListMergeRequestContextCommits(pid any, mergeRequest int64, options ...RequestOptionFunc) ([]*Commit, *Response, error)
	// CreateMergeRequestContextCommits creates a list of merge request context
	// commits.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/merge_request_context_commits/#create-mr-context-commits
	CreateMergeRequestContextCommits(pid any, mergeRequest int64, opt *CreateMergeRequestContextCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)
	// DeleteMergeRequestContextCommits deletes a list of merge request context
	// commits.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/merge_request_context_commits/#delete-mr-context-commits
	DeleteMergeRequestContextCommits(pid any, mergeRequest int64, opt *DeleteMergeRequestContextCommitsOptions, options ...RequestOptionFunc) (*Response, error)
}

MergeRequestContextCommitsServiceInterface handles communication with the merge request context commits related methods of the GitLab API.

type MergeRequestDependency

type MergeRequestDependency struct {
	ID                   int64                `json:"id"`
	BlockingMergeRequest BlockingMergeRequest `json:"blocking_merge_request"`
	ProjectID            int64                `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

func (m MergeRequestDependency) String() string

type MergeRequestDiff

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"`
	GeneratedFile bool   `json:"generated_file"`
	Collapsed     bool   `json:"collapsed"`
	TooLarge      bool   `json:"too_large"`
}

MergeRequestDiff represents GitLab merge request diff.

GitLab API docs: https://docs.gitlab.com/api/merge_requests/#list-merge-request-diffs

type MergeRequestDiffRefs

type MergeRequestDiffRefs struct {
	BaseSha  string `json:"base_sha"`
	HeadSha  string `json:"head_sha"`
	StartSha string `json:"start_sha"`
}

MergeRequestDiffRefs represents a GitLab merge request diff refs.

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

func (MergeRequestDiffRefs) String

func (d MergeRequestDiffRefs) String() string

type MergeRequestDiffVersion

type MergeRequestDiffVersion struct {
	ID             int64      `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 int64      `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

func (m MergeRequestDiffVersion) String() string

type MergeRequestReviewer

type MergeRequestReviewer struct {
	User      *BasicUser `json:"user"`
	State     string     `json:"state"`
	CreatedAt *time.Time `json:"created_at"`
}

MergeRequestReviewer represents a reviewer entry returned by the reviewers API. Matches the JSON shape used in tests: {"user": {...}, "state": "...", "created_at": "..."} Placed here because it's used by MergeRequestsService.GetMergeRequestReviewers and tests/mock.

type MergeRequestUser

type MergeRequestUser struct {
	CanMerge bool `json:"can_merge"`
}

MergeRequestUser represents a GitLab merge request user.

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

func (MergeRequestUser) String

func (u MergeRequestUser) String() string

type MergeRequestsCount

type MergeRequestsCount struct {
	MergeRequestsCount int64 `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 int64, 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

func (s *MergeRequestsService) AddSpentTime(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) CancelMergeWhenPipelineSucceeds(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) CreateMergeRequestDependency(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) CreateMergeRequestPipeline(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) CreateTodo(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) DeleteMergeRequest(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) DeleteMergeRequestDependency(pid any, mergeRequest int64, blockingMergeRequest int64, 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

func (s *MergeRequestsService) GetIssuesClosedOnMerge(pid any, mergeRequest int64, 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 int64, 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

func (s *MergeRequestsService) GetMergeRequestApprovals(pid any, mergeRequest int64, 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 int64, 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

func (s *MergeRequestsService) GetMergeRequestCommits(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) GetMergeRequestDependencies(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) GetMergeRequestDiffVersions(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) GetMergeRequestParticipants(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) GetMergeRequestReviewers(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) GetSingleMergeRequestDiffVersion(pid any, mergeRequest, version int64, 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

func (s *MergeRequestsService) GetTimeSpent(pid any, mergeRequest int64, 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

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

func (s *MergeRequestsService) ListMergeRequestDiffs(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) ListMergeRequestPipelines(pid any, mergeRequest int64, 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

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

func (s *MergeRequestsService) ListRelatedIssues(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) RebaseMergeRequest(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) ResetSpentTime(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) ResetTimeEstimate(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) SetTimeEstimate(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) ShowMergeRequestRawDiffs(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) SubscribeToMergeRequest(pid any, mergeRequest int64, 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

func (s *MergeRequestsService) UnsubscribeFromMergeRequest(pid any, mergeRequest int64, 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 int64, 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

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 int64, opt *GetMergeRequestsOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	GetMergeRequestApprovals(pid any, mergeRequest int64, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error)
	GetMergeRequestCommits(pid any, mergeRequest int64, opt *GetMergeRequestCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error)
	GetMergeRequestChanges(pid any, mergeRequest int64, opt *GetMergeRequestChangesOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	ListMergeRequestDiffs(pid any, mergeRequest int64, opt *ListMergeRequestDiffsOptions, options ...RequestOptionFunc) ([]*MergeRequestDiff, *Response, error)
	ShowMergeRequestRawDiffs(pid any, mergeRequest int64, opt *ShowMergeRequestRawDiffsOptions, options ...RequestOptionFunc) ([]byte, *Response, error)
	GetMergeRequestParticipants(pid any, mergeRequest int64, options ...RequestOptionFunc) ([]*BasicUser, *Response, error)
	GetMergeRequestReviewers(pid any, mergeRequest int64, options ...RequestOptionFunc) ([]*MergeRequestReviewer, *Response, error)
	ListMergeRequestPipelines(pid any, mergeRequest int64, options ...RequestOptionFunc) ([]*PipelineInfo, *Response, error)
	CreateMergeRequestPipeline(pid any, mergeRequest int64, options ...RequestOptionFunc) (*PipelineInfo, *Response, error)
	GetIssuesClosedOnMerge(pid any, mergeRequest int64, opt *GetIssuesClosedOnMergeOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	ListRelatedIssues(pid any, mergeRequest int64, opt *ListRelatedIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)
	CreateMergeRequest(pid any, opt *CreateMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	UpdateMergeRequest(pid any, mergeRequest int64, opt *UpdateMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	DeleteMergeRequest(pid any, mergeRequest int64, options ...RequestOptionFunc) (*Response, error)
	AcceptMergeRequest(pid any, mergeRequest int64, opt *AcceptMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	CancelMergeWhenPipelineSucceeds(pid any, mergeRequest int64, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	RebaseMergeRequest(pid any, mergeRequest int64, opt *RebaseMergeRequestOptions, options ...RequestOptionFunc) (*Response, error)
	GetMergeRequestDiffVersions(pid any, mergeRequest int64, opt *GetMergeRequestDiffVersionsOptions, options ...RequestOptionFunc) ([]*MergeRequestDiffVersion, *Response, error)
	GetSingleMergeRequestDiffVersion(pid any, mergeRequest, version int64, opt *GetSingleMergeRequestDiffVersionOptions, options ...RequestOptionFunc) (*MergeRequestDiffVersion, *Response, error)
	SubscribeToMergeRequest(pid any, mergeRequest int64, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	UnsubscribeFromMergeRequest(pid any, mergeRequest int64, options ...RequestOptionFunc) (*MergeRequest, *Response, error)
	CreateTodo(pid any, mergeRequest int64, options ...RequestOptionFunc) (*Todo, *Response, error)
	SetTimeEstimate(pid any, mergeRequest int64, opt *SetTimeEstimateOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	ResetTimeEstimate(pid any, mergeRequest int64, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	AddSpentTime(pid any, mergeRequest int64, opt *AddSpentTimeOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	ResetSpentTime(pid any, mergeRequest int64, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	GetTimeSpent(pid any, mergeRequest int64, options ...RequestOptionFunc) (*TimeStats, *Response, error)
	CreateMergeRequestDependency(pid any, mergeRequest int64, opts CreateMergeRequestDependencyOptions, options ...RequestOptionFunc) (*MergeRequestDependency, *Response, error)
	DeleteMergeRequestDependency(pid any, mergeRequest int64, blockingMergeRequest int64, options ...RequestOptionFunc) (*Response, error)
	GetMergeRequestDependencies(pid any, mergeRequest int64, options ...RequestOptionFunc) ([]MergeRequestDependency, *Response, error)
}

type MergeStatusCheck

type MergeStatusCheck struct {
	ID          int64  `json:"id"`
	Name        string `json:"name"`
	ExternalURL string `json:"external_url"`
	Status      string `json:"status"`
}

type MergeTrain

type MergeTrain struct {
	ID           int64                   `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     int64                   `json:"duration"`
}

MergeTrain represents a GitLab merge train.

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

type MergeTrainMergeRequest

type MergeTrainMergeRequest struct {
	ID          int64      `json:"id"`
	IID         int64      `json:"iid"`
	ProjectID   int64      `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

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

func (s *MergeTrainsService) AddMergeRequestToMergeTrain(pid any, mergeRequest int64, 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

func (s *MergeTrainsService) GetMergeRequestOnAMergeTrain(pid any, mergeRequest int64, 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

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

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

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 int64, options ...RequestOptionFunc) (*MergeTrain, *Response, error)
	AddMergeRequestToMergeTrain(pid any, mergeRequest int64, opts *AddMergeRequestToMergeTrainOptions, options ...RequestOptionFunc) ([]*MergeTrain, *Response, error)
}

type Metadata

type Metadata struct {
	Version    string      `json:"version"`
	Revision   string      `json:"revision"`
	KAS        MetadataKAS `json:"kas"`
	Enterprise bool        `json:"enterprise"`
}

Metadata represents a GitLab instance version.

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

func (Metadata) String

func (s Metadata) String() string

type MetadataKAS

type MetadataKAS struct {
	Enabled             bool   `json:"enabled"`
	ExternalURL         string `json:"externalUrl"`
	ExternalK8SProxyURL string `json:"externalK8sProxyUrl"`
	Version             string `json:"version"`
}

MetadataKAS represents a GitLab instance version metadata KAS.

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

func (MetadataKAS) String

func (k MetadataKAS) String() string

type MetadataService

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

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

type MetadataServiceInterface interface {
	GetMetadata(options ...RequestOptionFunc) (*Metadata, *Response, error)
}

type MetricImage

type MetricImage struct {
	ID        int64      `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 MicrosoftTeamsIntegration

type MicrosoftTeamsIntegration struct {
	Integration
	Properties MicrosoftTeamsIntegrationProperties `json:"properties"`
}

MicrosoftTeamsIntegration represents the Microsoft Teams integration settings. It embeds the generic Integration struct and adds Microsoft Teams-specific properties.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#get-microsoft-teams-notifications-settings

type MicrosoftTeamsIntegrationProperties

type MicrosoftTeamsIntegrationProperties struct {
	NotifyOnlyBrokenPipelines bool   `json:"notify_only_broken_pipelines"`
	BranchesToBeNotified      string `json:"branches_to_be_notified"`
}

MicrosoftTeamsIntegrationProperties represents Microsoft Teams specific properties returned by the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#get-microsoft-teams-notifications-settings

type MicrosoftTeamsService

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

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          int64      `json:"id"`
	IID         int64      `json:"iid"`
	GroupID     int64      `json:"group_id"`
	ProjectID   int64      `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

type MilestoneEvent struct {
	ID           int64      `json:"id"`
	User         *BasicUser `json:"user"`
	CreatedAt    *time.Time `json:"created_at"`
	ResourceType string     `json:"resource_type"`
	ResourceID   int64      `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 MilestoneEventGroup

type MilestoneEventGroup struct {
	GroupID   int64  `json:"group_id"`
	GroupName string `json:"group_name"`
	GroupPath string `json:"group_path"`
	FullPath  string `json:"full_path"`
}

MilestoneEventGroup represents a group in a milestone event.

type MilestoneEventObjectAttributes

type MilestoneEventObjectAttributes struct {
	ID          int64    `json:"id"`
	IID         int64    `json:"iid"`
	Title       string   `json:"title"`
	Description string   `json:"description"`
	State       string   `json:"state"`
	CreatedAt   string   `json:"created_at"`
	UpdatedAt   string   `json:"updated_at"`
	DueDate     *ISOTime `json:"due_date"`
	StartDate   *ISOTime `json:"start_date"`
	GroupID     *int64   `json:"group_id"`
	ProjectID   int64    `json:"project_id"`
}

type MilestoneEventProject

type MilestoneEventProject struct {
	ID                int64  `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   int64  `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"`
}

MilestoneEventProject represents a project in a milestone event.

type MilestoneWebhookEvent

type MilestoneWebhookEvent struct {
	ObjectKind       string                         `json:"object_kind"`
	EventType        string                         `json:"event_type"`
	Project          MilestoneEventProject          `json:"project"`
	Group            *MilestoneEventGroup           `json:"group,omitempty"`
	ObjectAttributes MilestoneEventObjectAttributes `json:"object_attributes"`
	Action           string                         `json:"action"`
}

MilestoneWebhookEvent represents a milestone webhook event.

GitLab API docs: https://docs.gitlab.com/user/project/integrations/webhook_events/#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)

func (*MilestonesService) DeleteMilestone

func (s *MilestonesService) DeleteMilestone(pid any, milestone int64, options ...RequestOptionFunc) (*Response, error)

func (*MilestonesService) GetMilestone

func (s *MilestonesService) GetMilestone(pid any, milestone int64, options ...RequestOptionFunc) (*Milestone, *Response, error)

func (*MilestonesService) GetMilestoneIssues

func (s *MilestonesService) GetMilestoneIssues(pid any, milestone int64, opt *GetMilestoneIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error)

func (*MilestonesService) GetMilestoneMergeRequests

func (s *MilestonesService) GetMilestoneMergeRequests(pid any, milestone int64, opt *GetMilestoneMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)

func (*MilestonesService) ListMilestones

func (s *MilestonesService) ListMilestones(pid any, opt *ListMilestonesOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)

func (*MilestonesService) UpdateMilestone

func (s *MilestonesService) UpdateMilestone(pid any, milestone int64, opt *UpdateMilestoneOptions, options ...RequestOptionFunc) (*Milestone, *Response, error)

type MilestonesServiceInterface

type MilestonesServiceInterface interface {
	// ListMilestones returns a list of project milestones.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/milestones/#list-project-milestones
	ListMilestones(pid any, opt *ListMilestonesOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error)
	// GetMilestone gets a single project milestone.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/milestones/#get-single-milestone
	GetMilestone(pid any, milestone int64, options ...RequestOptionFunc) (*Milestone, *Response, error)
	// CreateMilestone creates a new project milestone.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/milestones/#create-new-milestone
	CreateMilestone(pid any, opt *CreateMilestoneOptions, options ...RequestOptionFunc) (*Milestone, *Response, error)
	// UpdateMilestone updates an existing project milestone.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/milestones/#edit-milestone
	UpdateMilestone(pid any, milestone int64, opt *UpdateMilestoneOptions, options ...RequestOptionFunc) (*Milestone, *Response, error)
	// DeleteMilestone deletes a specified project milestone.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/milestones/#delete-project-milestone
	DeleteMilestone(pid any, milestone int64, options ...RequestOptionFunc) (*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
	GetMilestoneIssues(pid any, milestone int64, opt *GetMilestoneIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *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
	GetMilestoneMergeRequests(pid any, milestone int64, opt *GetMilestoneMergeRequestsOptions, options ...RequestOptionFunc) ([]*BasicMergeRequest, *Response, error)
}

type ModelRegistryService

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

ModelRegistryService handles communication with the model registry related methods of the GitLab API.

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

func (*ModelRegistryService) DownloadMachineLearningModelPackage

func (s *ModelRegistryService) DownloadMachineLearningModelPackage(pid, modelVersionID any, path string, filename string, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

DownloadMachineLearningModelPackage downloads a machine learning model package file.

GitLab API docs: https://docs.gitlab.com/api/model_registry/#download-a-model-package-file

type ModelRegistryServiceInterface

type ModelRegistryServiceInterface interface {
	DownloadMachineLearningModelPackage(pid, modelVersionID any, path string, filename string, options ...RequestOptionFunc) (*bytes.Reader, *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       *int64      `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             *int64      `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"`
	ViewDiffsFileByFile *bool       `url:"view_diffs_file_by_file,omitempty" json:"view_diffs_file_by_file,omitempty"`
}

ModifyUserOptions represents the available ModifyUser() options.

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

type MoveIssueOptions

type MoveIssueOptions struct {
	ToProjectID *int64 `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                          int64    `json:"id"`
	Name                        string   `json:"name"`
	Path                        string   `json:"path"`
	Kind                        string   `json:"kind"`
	FullPath                    string   `json:"full_path"`
	ParentID                    int64    `json:"parent_id"`
	AvatarURL                   *string  `json:"avatar_url"`
	WebURL                      string   `json:"web_url"`
	MembersCountWithDescendants int64    `json:"members_count_with_descendants"`
	BillableMembersCount        int64    `json:"billable_members_count"`
	Plan                        string   `json:"plan"`
	TrialEndsOn                 *ISOTime `json:"trial_ends_on"`
	Trial                       bool     `json:"trial"`
	MaxSeatsUsed                *int64   `json:"max_seats_used"`
	SeatsInUse                  *int64   `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

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

type NamespaceExistsOptions struct {
	ParentID *int64 `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

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

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

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

type NewMembersCount struct {
	NewMembersCount int64 `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 NoEscape

type NoEscape struct {
	Value string
}

type Note

type Note struct {
	ID           int64          `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   int64          `json:"noteable_id"`
	NoteableType string         `json:"noteable_type"`
	ProjectID    int64          `json:"project_id"`
	NoteableIID  int64          `json:"noteable_iid"`
	Resolvable   bool           `json:"resolvable"`
	Resolved     bool           `json:"resolved"`
	ResolvedAt   *time.Time     `json:"resolved_at"`
	ResolvedBy   NoteResolvedBy `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

type NoteAuthor struct {
	ID        int64  `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

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      int64      `json:"new_line,omitempty"`
	OldPath      string     `json:"old_path,omitempty"`
	OldLine      int64      `json:"old_line,omitempty"`
	LineRange    *LineRange `json:"line_range,omitempty"`
}

NotePosition represents the position attributes of a note.

type NoteResolvedBy

type NoteResolvedBy struct {
	ID        int64  `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"`
}

NoteResolvedBy represents the resolver of a GitLab note.

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

type NoteTypeValue

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

func (s *NotesService) CreateEpicNote(gid any, epic int64, 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 int64, 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 int64, 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 int64, 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

func (s *NotesService) DeleteEpicNote(gid any, epic, note int64, 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

func (s *NotesService) DeleteIssueNote(pid any, issue, note int64, 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

func (s *NotesService) DeleteMergeRequestNote(pid any, mergeRequest, note int64, 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

func (s *NotesService) DeleteSnippetNote(pid any, snippet, note int64, 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

func (s *NotesService) GetEpicNote(gid any, epic, note int64, 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 int64, 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 int64, 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 int64, 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

func (s *NotesService) ListEpicNotes(gid any, epic int64, 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 int64, 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 int64, 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 int64, 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

func (s *NotesService) UpdateEpicNote(gid any, epic, note int64, 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 int64, 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 int64, 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 int64, 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

type NotesServiceInterface interface {
	ListIssueNotes(pid any, issue int64, opt *ListIssueNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)
	GetIssueNote(pid any, issue, note int64, options ...RequestOptionFunc) (*Note, *Response, error)
	CreateIssueNote(pid any, issue int64, opt *CreateIssueNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateIssueNote(pid any, issue, note int64, opt *UpdateIssueNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteIssueNote(pid any, issue, note int64, options ...RequestOptionFunc) (*Response, error)
	ListSnippetNotes(pid any, snippet int64, opt *ListSnippetNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)
	GetSnippetNote(pid any, snippet, note int64, options ...RequestOptionFunc) (*Note, *Response, error)
	CreateSnippetNote(pid any, snippet int64, opt *CreateSnippetNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateSnippetNote(pid any, snippet, note int64, opt *UpdateSnippetNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteSnippetNote(pid any, snippet, note int64, options ...RequestOptionFunc) (*Response, error)
	ListMergeRequestNotes(pid any, mergeRequest int64, opt *ListMergeRequestNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)
	GetMergeRequestNote(pid any, mergeRequest, note int64, options ...RequestOptionFunc) (*Note, *Response, error)
	CreateMergeRequestNote(pid any, mergeRequest int64, opt *CreateMergeRequestNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateMergeRequestNote(pid any, mergeRequest, note int64, opt *UpdateMergeRequestNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteMergeRequestNote(pid any, mergeRequest, note int64, options ...RequestOptionFunc) (*Response, error)
	ListEpicNotes(gid any, epic int64, opt *ListEpicNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error)
	GetEpicNote(gid any, epic, note int64, options ...RequestOptionFunc) (*Note, *Response, error)
	CreateEpicNote(gid any, epic int64, opt *CreateEpicNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	UpdateEpicNote(gid any, epic, note int64, opt *UpdateEpicNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error)
	DeleteEpicNote(gid any, epic, note int64, options ...RequestOptionFunc) (*Response, error)
}

type NotificationEvents

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

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

func (l NotificationLevelValue) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (NotificationLevelValue) String

func (l NotificationLevelValue) String() string

String implements the fmt.Stringer interface.

func (*NotificationLevelValue) UnmarshalJSON

func (l *NotificationLevelValue) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

type NotificationSettings

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

func (ns NotificationSettings) String() string

type NotificationSettingsOptions

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

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

func (s *NotificationSettingsService) GetGlobalSettings(options ...RequestOptionFunc) (*NotificationSettings, *Response, error)

func (*NotificationSettingsService) GetSettingsForGroup

func (s *NotificationSettingsService) GetSettingsForGroup(gid any, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)

func (*NotificationSettingsService) GetSettingsForProject

func (s *NotificationSettingsService) GetSettingsForProject(pid any, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)

func (*NotificationSettingsService) UpdateGlobalSettings

func (*NotificationSettingsService) UpdateSettingsForGroup

func (*NotificationSettingsService) UpdateSettingsForProject

func (s *NotificationSettingsService) UpdateSettingsForProject(pid any, opt *NotificationSettingsOptions, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)

type NotificationSettingsServiceInterface

type NotificationSettingsServiceInterface interface {
	// GetGlobalSettings returns current notification settings and email address.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/notification_settings/#global-notification-settings
	GetGlobalSettings(options ...RequestOptionFunc) (*NotificationSettings, *Response, error)
	// UpdateGlobalSettings updates current notification settings and email address.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/notification_settings/#update-global-notification-settings
	UpdateGlobalSettings(opt *NotificationSettingsOptions, 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
	GetSettingsForGroup(gid 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
	GetSettingsForProject(pid any, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)
	// UpdateSettingsForGroup updates current group notification settings.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/notification_settings/#update-groupproject-level-notification-settings
	UpdateSettingsForGroup(gid 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
	UpdateSettingsForProject(pid any, opt *NotificationSettingsOptions, options ...RequestOptionFunc) (*NotificationSettings, *Response, error)
}

type Nullable

type Nullable[T any] map[bool]T

Nullable is a generic type, which implements a field that can be one of three states:

- field is not set in the request - field is explicitly set to `null` in the request - field is explicitly set to a valid value in the request

Nullable is intended to be used with JSON marshaling and unmarshaling.

Internal implementation details:

- map[true]T means a value was provided - map[false]T means an explicit null was provided - nil or zero map means the field was not provided

If the field is expected to be optional, add the `omitempty` JSON tags. Do NOT use `*Nullable`!

Adapted from https://github.com/golang/go/issues/64515#issuecomment-1841057182

func NewNullNullable

func NewNullNullable[T any]() Nullable[T]

NewNullNullable is a convenience helper to allow constructing a `Nullable` with an explicit `null`, for instance to construct a field inside a struct, without introducing an intermediate variable

func NewNullableWithValue

func NewNullableWithValue[T any](t T) Nullable[T]

NewNullableWithValue is a convenience helper to allow constructing a `Nullable` with a given value, for instance to construct a field inside a struct, without introducing an intermediate variable

func (Nullable[T]) Get

func (t Nullable[T]) Get() (T, error)

Get retrieves the underlying value, if present, and returns an error if the value was not present

func (Nullable[T]) IsNull

func (t Nullable[T]) IsNull() bool

IsNull indicate whether the field was sent, and had a value of `null`

func (Nullable[T]) IsSpecified

func (t Nullable[T]) IsSpecified() bool

IsSpecified indicates whether the field was sent

func (Nullable[T]) MarshalJSON

func (t Nullable[T]) MarshalJSON() ([]byte, error)

func (Nullable[T]) MustGet

func (t Nullable[T]) MustGet() T

MustGet retrieves the underlying value, if present, and panics if the value was not present

func (*Nullable[T]) Set

func (t *Nullable[T]) Set(value T)

Set sets the underlying value to a given value

func (*Nullable[T]) SetNull

func (t *Nullable[T]) SetNull()

SetNull indicate that the field was sent, and had a value of `null`

func (*Nullable[T]) SetUnspecified

func (t *Nullable[T]) SetUnspecified()

SetUnspecified indicate whether the field was sent

func (*Nullable[T]) UnmarshalJSON

func (t *Nullable[T]) UnmarshalJSON(data []byte) error

type OAuthTokenSource

type OAuthTokenSource struct {
	TokenSource oauth2.TokenSource
}

OAuthTokenSource wraps an oauth2.TokenSource to implement the AuthSource interface.

func (OAuthTokenSource) Header

func (OAuthTokenSource) Init

type Package

type Package struct {
	ID               int64         `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

func (s Package) String() string

type PackageFile

type PackageFile struct {
	ID         int64       `json:"id"`
	PackageID  int64       `json:"package_id"`
	CreatedAt  *time.Time  `json:"created_at"`
	FileName   string      `json:"file_name"`
	Size       int64       `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

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

func (s PackageLinks) String() string

type PackageProtectionRule

type PackageProtectionRule struct {
	ID                          int64  `json:"id"`
	ProjectID                   int64  `json:"project_id"`
	PackageNamePattern          string `json:"package_name_pattern"`
	PackageType                 string `json:"package_type"`
	MinimumAccessLevelForDelete string `json:"minimum_access_level_for_delete"`
	MinimumAccessLevelForPush   string `json:"minimum_access_level_for_push"`
}

PackageProtectionRule represents a GitLab package protection rule.

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

type PackageTag

type PackageTag struct {
	ID        int64      `json:"id"`
	PackageID int64      `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

func (s PackageTag) String() string

type PackagesService

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

func (s *PackagesService) DeletePackageFile(pid any, pkg, file int64, 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

func (s *PackagesService) DeleteProjectPackage(pid any, pkg int64, 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

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

func (s *PackagesService) ListPackageFiles(pid any, pkg int64, 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

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

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 int64, opt *ListPackageFilesOptions, options ...RequestOptionFunc) ([]*PackageFile, *Response, error)
	DeleteProjectPackage(pid any, pkg int64, options ...RequestOptionFunc) (*Response, error)
	DeletePackageFile(pid any, pkg, file int64, options ...RequestOptionFunc) (*Response, error)
}

type PageInfo

type PageInfo struct {
	EndCursor       string `json:"endCursor"`       // Cursor of the last item in this page (pass to "after" for next page)
	HasNextPage     bool   `json:"hasNextPage"`     // True if more items exist after this page
	StartCursor     string `json:"startCursor"`     // Cursor of the first item in this page (pass to "before" for previous page)
	HasPreviousPage bool   `json:"hasPreviousPage"` // True if items exist before this page
}

PageInfo contains cursor-based pagination metadata for GraphQL connections following the Relay cursor pagination specification. Use EndCursor and HasNextPage for forward pagination (most common), or StartCursor and HasPreviousPage for backward pagination.

Cursors are opaque strings that should not be parsed or constructed manually - always use the cursors returned by the API.

Note: GraphQL cursor pagination differs from GitLab's REST API keyset pagination. In REST, the pagination link points to the first item of the next page. In GraphQL, EndCursor points to the last item of the current page - you pass this to the "after" parameter to fetch items after it (essentially an off-by-one difference in semantics).

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#pageinfo

type Pages

type Pages struct {
	URL                   string             `json:"url"`
	IsUniqueDomainEnabled bool               `json:"is_unique_domain_enabled"`
	ForceHTTPS            bool               `json:"force_https"`
	Deployments           []*PagesDeployment `json:"deployments"`
	PrimaryDomain         string             `json:"primary_domain"`
}

Pages represents the Pages of a project.

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

type PagesDeployment

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

type PagesDomain struct {
	Domain           string                 `json:"domain"`
	AutoSslEnabled   bool                   `json:"auto_ssl_enabled"`
	URL              string                 `json:"url"`
	ProjectID        int64                  `json:"project_id"`
	Verified         bool                   `json:"verified"`
	VerificationCode string                 `json:"verification_code"`
	EnabledUntil     *time.Time             `json:"enabled_until"`
	Certificate      PagesDomainCertificate `json:"certificate"`
}

PagesDomain represents a pages domain.

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

type PagesDomainCertificate

type PagesDomainCertificate struct {
	Subject         string     `json:"subject"`
	Expired         bool       `json:"expired"`
	Expiration      *time.Time `json:"expiration"`
	Certificate     string     `json:"certificate"`
	CertificateText string     `json:"certificate_text"`
}

PagesDomainCertificate represents a pages domain certificate.

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

type PagesDomainsService

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

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

func (s *PagesDomainsService) DeletePagesDomain(pid any, domain string, options ...RequestOptionFunc) (*Response, error)

DeletePagesDomain deletes an existing project pages domain.

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

func (*PagesDomainsService) GetPagesDomain

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

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

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

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

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

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

func (s *PagesService) GetPages(gid any, options ...RequestOptionFunc) (*Pages, *Response, error)

func (*PagesService) UnpublishPages

func (s *PagesService) UnpublishPages(gid any, options ...RequestOptionFunc) (*Response, error)

func (*PagesService) UpdatePages

func (s *PagesService) UpdatePages(pid any, opt UpdatePagesOptions, options ...RequestOptionFunc) (*Pages, *Response, error)

type PagesServiceInterface

type PagesServiceInterface interface {
	// UnpublishPages unpublishes pages. The user must have admin privileges.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/pages/#unpublish-pages
	UnpublishPages(gid any, options ...RequestOptionFunc) (*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
	GetPages(gid any, 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
	UpdatePages(pid any, opt UpdatePagesOptions, options ...RequestOptionFunc) (*Pages, *Response, error)
}

type PaginationOptionFunc

type PaginationOptionFunc = RequestOptionFunc

type PasswordCredentialsAuthSource

type PasswordCredentialsAuthSource struct {
	Username string
	Password string

	AuthSource
}

PasswordCredentialsAuthSource implements the AuthSource interface for the OAuth 2.0 resource owner password credentials flow.

func (*PasswordCredentialsAuthSource) Init

func (as *PasswordCredentialsAuthSource) Init(ctx context.Context, client *Client) error

type PatchProjectJobTokenAccessSettingsOptions

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 Pather

type Pather interface {
	// contains filtered or unexported methods
}

type PendingInvite

type PendingInvite struct {
	ID            int64            `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

type PersonalAccessToken struct {
	ID          int64      `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      int64      `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

func (p PersonalAccessToken) String() string

type PersonalAccessTokensService

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

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

func (s *PersonalAccessTokensService) GetSinglePersonalAccessTokenByID(token int64, 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

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) RevokePersonalAccessTokenByID

func (s *PersonalAccessTokensService) RevokePersonalAccessTokenByID(token int64, 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

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

RotatePersonalAccessToken is a backwards-compat shim for RotatePersonalAccessTokenByID.

func (*PersonalAccessTokensService) RotatePersonalAccessTokenByID

func (s *PersonalAccessTokensService) RotatePersonalAccessTokenByID(token int64, 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

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

type PersonalAccessTokensServiceInterface interface {
	ListPersonalAccessTokens(opt *ListPersonalAccessTokensOptions, options ...RequestOptionFunc) ([]*PersonalAccessToken, *Response, error)
	GetSinglePersonalAccessTokenByID(token int64, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	GetSinglePersonalAccessToken(options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RotatePersonalAccessToken(token int64, opt *RotatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RotatePersonalAccessTokenByID(token int64, opt *RotatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RotatePersonalAccessTokenSelf(opt *RotatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	RevokePersonalAccessTokenByID(token int64, options ...RequestOptionFunc) (*Response, error)
	RevokePersonalAccessTokenSelf(options ...RequestOptionFunc) (*Response, error)
}

type Pipeline

type Pipeline struct {
	ID             int64           `json:"id"`
	IID            int64           `json:"iid"`
	ProjectID      int64           `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       int64           `json:"duration"`
	QueuedDuration int64           `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

func (p Pipeline) String() string

type PipelineEvent

type PipelineEvent struct {
	ObjectKind       string                        `json:"object_kind"`
	ObjectAttributes PipelineEventObjectAttributes `json:"object_attributes"`
	MergeRequest     PipelineEventMergeRequest     `json:"merge_request"`
	User             *EventUser                    `json:"user"`
	Project          PipelineEventProject          `json:"project"`
	Commit           PipelineEventCommit           `json:"commit"`
	SourcePipeline   EventSourcePipeline           `json:"source_pipeline"`
	Builds           []PipelineEventBuild          `json:"builds"`
}

PipelineEvent represents a pipeline event.

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

type PipelineEventBuild

type PipelineEventBuild struct {
	ID             int64                           `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         PipelineEventBuildRunner        `json:"runner"`
	ArtifactsFile  PipelineEventBuildArtifactsFile `json:"artifacts_file"`
	Environment    EventEnvironment                `json:"environment"`
}

type PipelineEventBuildArtifactsFile

type PipelineEventBuildArtifactsFile struct {
	Filename string `json:"filename"`
	Size     int64  `json:"size"`
}

type PipelineEventBuildRunner

type PipelineEventBuildRunner struct {
	ID          int64    `json:"id"`
	Description string   `json:"description"`
	Active      bool     `json:"active"`
	IsShared    bool     `json:"is_shared"`
	RunnerType  string   `json:"runner_type"`
	Tags        []string `json:"tags"`
}

type PipelineEventCommit

type PipelineEventCommit struct {
	ID        string            `json:"id"`
	Message   string            `json:"message"`
	Title     string            `json:"title"`
	Timestamp *time.Time        `json:"timestamp"`
	URL       string            `json:"url"`
	Author    EventCommitAuthor `json:"author"`
}

type PipelineEventMergeRequest

type PipelineEventMergeRequest struct {
	ID                  int64  `json:"id"`
	IID                 int64  `json:"iid"`
	Title               string `json:"title"`
	SourceBranch        string `json:"source_branch"`
	SourceProjectID     int64  `json:"source_project_id"`
	TargetBranch        string `json:"target_branch"`
	TargetProjectID     int64  `json:"target_project_id"`
	State               string `json:"state"`
	MergeRequestStatus  string `json:"merge_status"`
	DetailedMergeStatus string `json:"detailed_merge_status"`
	URL                 string `json:"url"`
}

type PipelineEventObjectAttributes

type PipelineEventObjectAttributes struct {
	ID             int64                                   `json:"id"`
	IID            int64                                   `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       int64                                   `json:"duration"`
	QueuedDuration int64                                   `json:"queued_duration"`
	URL            string                                  `json:"url"`
	Variables      []PipelineEventObjectAttributesVariable `json:"variables"`
}

type PipelineEventObjectAttributesVariable

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

type PipelineEventProject

type PipelineEventProject struct {
	ID                int64           `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"`
}

type PipelineInfo

type PipelineInfo struct {
	ID        int64      `json:"id"`
	IID       int64      `json:"iid"`
	ProjectID int64      `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

func (p PipelineInfo) String() string

type PipelineInput

type PipelineInput struct {
	Name    string `json:"name"`
	Value   any    `json:"value"`
	Destroy *bool  `json:"destroy,omitempty"`
}

PipelineInput represents a pipeline input.

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

type PipelineInputValue

type PipelineInputValue[T PipelineInputValueType] struct {
	Value T
}

PipelineInputValue wraps a pipeline input value with compile-time type safety. Use NewPipelineInputValue() to create instances of this type.

func NewPipelineInputValue

func NewPipelineInputValue[T PipelineInputValueType](value T) PipelineInputValue[T]

NewPipelineInputValue wraps a value for use in pipeline inputs. Similar to Ptr(), this ensures type safety at compile time. Supported types: string, integers, floats, bool, []string

func (PipelineInputValue[T]) MarshalJSON

func (v PipelineInputValue[T]) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

type PipelineInputValueInterface

type PipelineInputValueInterface interface {
	// contains filtered or unexported methods
}

PipelineInputValueInterface is implemented by PipelineInputValue[T] for supported pipeline input types. Use NewPipelineInputValue() to create instances - do not implement this interface directly.

See PipelineInputsOption for supported types and usage examples.

type PipelineInputValueType

type PipelineInputValueType interface {
	~string | constraintInteger | constraintFloat | ~bool | []string
}

PipelineInputValueType is a type constraint for valid pipeline input value types. This constraint ensures only supported GitLab pipeline input types can be used.

type PipelineInputsOption

type PipelineInputsOption map[string]PipelineInputValueInterface

PipelineInputsOption represents pipeline input parameters with type-safe values. Each value must be wrapped using NewPipelineInputValue() to ensure compile-time type safety.

Supported value types:

  • string
  • integers (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64)
  • floats (float32, float64)
  • bool
  • []string

Example:

inputs := PipelineInputsOption{
    "environment": NewPipelineInputValue("production"),
    "replicas":    NewPipelineInputValue(3),
    "debug":       NewPipelineInputValue(false),
    "regions":     NewPipelineInputValue([]string{"us-east", "eu-west"}),
}

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

type PipelineSchedule

type PipelineSchedule struct {
	ID           int64               `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

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

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

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

func (s *PipelineSchedulesService) CreatePipelineScheduleVariable(pid any, schedule int64, 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

func (s *PipelineSchedulesService) DeletePipelineSchedule(pid any, schedule int64, 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

func (s *PipelineSchedulesService) DeletePipelineScheduleVariable(pid any, schedule int64, 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

func (s *PipelineSchedulesService) EditPipelineSchedule(pid any, schedule int64, 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

func (s *PipelineSchedulesService) EditPipelineScheduleVariable(pid any, schedule int64, 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

func (s *PipelineSchedulesService) GetPipelineSchedule(pid any, schedule int64, 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

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

func (s *PipelineSchedulesService) ListPipelinesTriggeredBySchedule(pid any, schedule int64, 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

func (s *PipelineSchedulesService) RunPipelineSchedule(pid any, schedule int64, 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

func (s *PipelineSchedulesService) TakeOwnershipOfPipelineSchedule(pid any, schedule int64, 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

type PipelineSchedulesServiceInterface interface {
	ListPipelineSchedules(pid any, opt *ListPipelineSchedulesOptions, options ...RequestOptionFunc) ([]*PipelineSchedule, *Response, error)
	GetPipelineSchedule(pid any, schedule int64, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)
	ListPipelinesTriggeredBySchedule(pid any, schedule int64, opt *ListPipelinesTriggeredByScheduleOptions, options ...RequestOptionFunc) ([]*Pipeline, *Response, error)
	CreatePipelineSchedule(pid any, opt *CreatePipelineScheduleOptions, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)
	EditPipelineSchedule(pid any, schedule int64, opt *EditPipelineScheduleOptions, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)
	TakeOwnershipOfPipelineSchedule(pid any, schedule int64, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error)
	DeletePipelineSchedule(pid any, schedule int64, options ...RequestOptionFunc) (*Response, error)
	RunPipelineSchedule(pid any, schedule int64, options ...RequestOptionFunc) (*Response, error)
	CreatePipelineScheduleVariable(pid any, schedule int64, opt *CreatePipelineScheduleVariableOptions, options ...RequestOptionFunc) (*PipelineVariable, *Response, error)
	EditPipelineScheduleVariable(pid any, schedule int64, key string, opt *EditPipelineScheduleVariableOptions, options ...RequestOptionFunc) (*PipelineVariable, *Response, error)
	DeletePipelineScheduleVariable(pid any, schedule int64, key string, options ...RequestOptionFunc) (*PipelineVariable, *Response, error)
}

type PipelineSource

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

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

type PipelineTestReport struct {
	TotalTime    float64               `json:"total_time"`
	TotalCount   int64                 `json:"total_count"`
	SuccessCount int64                 `json:"success_count"`
	FailedCount  int64                 `json:"failed_count"`
	SkippedCount int64                 `json:"skipped_count"`
	ErrorCount   int64                 `json:"error_count"`
	TestSuites   []*PipelineTestSuites `json:"test_suites"`
}

PipelineTestReport contains a detailed report of a test run.

func (PipelineTestReport) String

func (p PipelineTestReport) String() string

type PipelineTestReportSummary

type PipelineTestReportSummary struct {
	Total      PipelineTotalSummary       `json:"total"`
	TestSuites []PipelineTestSuiteSummary `json:"test_suites"`
}

PipelineTestReportSummary contains a summary report of a test run

type PipelineTestSuiteSummary

type PipelineTestSuiteSummary struct {
	Name         string  `json:"name"`
	TotalTime    float64 `json:"total_time"`
	TotalCount   int64   `json:"total_count"`
	SuccessCount int64   `json:"success_count"`
	FailedCount  int64   `json:"failed_count"`
	SkippedCount int64   `json:"skipped_count"`
	ErrorCount   int64   `json:"error_count"`
	BuildIDs     []int64 `json:"build_ids"`
	SuiteError   *string `json:"suite_error"`
}

PipelineTestSuiteSummary contains a test suite summary of a test run

type PipelineTestSuites

type PipelineTestSuites struct {
	Name         string               `json:"name"`
	TotalTime    float64              `json:"total_time"`
	TotalCount   int64                `json:"total_count"`
	SuccessCount int64                `json:"success_count"`
	FailedCount  int64                `json:"failed_count"`
	SkippedCount int64                `json:"skipped_count"`
	ErrorCount   int64                `json:"error_count"`
	TestCases    []*PipelineTestCases `json:"test_cases"`
}

PipelineTestSuites contains test suites results.

type PipelineTotalSummary

type PipelineTotalSummary struct {
	// Documentation examples only show whole numbers, but the test specs for GitLab show decimals, so `float64` is the better attribute here.
	Time       float64 `json:"time"`
	Count      int64   `json:"count"`
	Success    int64   `json:"success"`
	Failed     int64   `json:"failed"`
	Skipped    int64   `json:"skipped"`
	Error      int64   `json:"error"`
	SuiteError *string `json:"suite_error"`
}

PipelineTotalSummary contains a total summary of a test run

type PipelineTrigger

type PipelineTrigger struct {
	ID          int64      `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

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

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

func (s *PipelineTriggersService) DeletePipelineTrigger(pid any, trigger int64, 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

func (s *PipelineTriggersService) EditPipelineTrigger(pid any, trigger int64, 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

func (s *PipelineTriggersService) GetPipelineTrigger(pid any, trigger int64, 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

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

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

type PipelineTriggersServiceInterface interface {
	ListPipelineTriggers(pid any, opt *ListPipelineTriggersOptions, options ...RequestOptionFunc) ([]*PipelineTrigger, *Response, error)
	GetPipelineTrigger(pid any, trigger int64, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error)
	AddPipelineTrigger(pid any, opt *AddPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error)
	EditPipelineTrigger(pid any, trigger int64, opt *EditPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error)
	DeletePipelineTrigger(pid any, trigger int64, options ...RequestOptionFunc) (*Response, error)
	RunPipelineTrigger(pid any, opt *RunPipelineTriggerOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)
}

type PipelineVariable

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

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

PipelineVariableOptions represents a pipeline variable option.

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

type PipelinesEmailProperties

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

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

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

func (s *PipelinesService) CancelPipelineBuild(pid any, pipeline int64, 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

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

func (s *PipelinesService) DeletePipeline(pid any, pipeline int64, options ...RequestOptionFunc) (*Response, error)

DeletePipeline deletes an existing pipeline.

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

func (*PipelinesService) GetLatestPipeline

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

func (s *PipelinesService) GetPipeline(pid any, pipeline int64, 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

func (s *PipelinesService) GetPipelineTestReport(pid any, pipeline int64, 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) GetPipelineTestReportSummary

func (s *PipelinesService) GetPipelineTestReportSummary(pid any, pipeline int64, options ...RequestOptionFunc) (*PipelineTestReportSummary, *Response, error)

GetPipelineTestReportSummary gets the test report summary of a single project pipeline.

GitLab API docs: https://docs.gitlab.com/api/pipelines/#get-a-test-report-summary-for-a-pipeline

func (*PipelinesService) GetPipelineVariables

func (s *PipelinesService) GetPipelineVariables(pid any, pipeline int64, 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

func (s *PipelinesService) ListProjectPipelines(pid any, opt *ListProjectPipelinesOptions, options ...RequestOptionFunc) ([]*PipelineInfo, *Response, error)

ListProjectPipelines gets a list of project pipelines.

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

func (*PipelinesService) RetryPipelineBuild

func (s *PipelinesService) RetryPipelineBuild(pid any, pipeline int64, 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

func (s *PipelinesService) UpdatePipelineMetadata(pid any, pipeline int64, 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

type PipelinesServiceInterface interface {
	ListProjectPipelines(pid any, opt *ListProjectPipelinesOptions, options ...RequestOptionFunc) ([]*PipelineInfo, *Response, error)
	GetPipeline(pid any, pipeline int64, options ...RequestOptionFunc) (*Pipeline, *Response, error)
	GetPipelineVariables(pid any, pipeline int64, options ...RequestOptionFunc) ([]*PipelineVariable, *Response, error)
	GetPipelineTestReport(pid any, pipeline int64, options ...RequestOptionFunc) (*PipelineTestReport, *Response, error)
	GetPipelineTestReportSummary(pid any, pipeline int64, options ...RequestOptionFunc) (*PipelineTestReportSummary, *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 int64, options ...RequestOptionFunc) (*Pipeline, *Response, error)
	CancelPipelineBuild(pid any, pipeline int64, options ...RequestOptionFunc) (*Pipeline, *Response, error)
	DeletePipeline(pid any, pipeline int64, options ...RequestOptionFunc) (*Response, error)
	UpdatePipelineMetadata(pid any, pipeline int64, opt *UpdatePipelineMetadataOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error)
}

type PlanLimit

type PlanLimit struct {
	ConanMaxFileSize           int64 `json:"conan_max_file_size,omitempty"`
	GenericPackagesMaxFileSize int64 `json:"generic_packages_max_file_size,omitempty"`
	HelmMaxFileSize            int64 `json:"helm_max_file_size,omitempty"`
	MavenMaxFileSize           int64 `json:"maven_max_file_size,omitempty"`
	NPMMaxFileSize             int64 `json:"npm_max_file_size,omitempty"`
	NugetMaxFileSize           int64 `json:"nuget_max_file_size,omitempty"`
	PyPiMaxFileSize            int64 `json:"pypi_max_file_size,omitempty"`
	TerraformModuleMaxFileSize int64 `json:"terraform_module_max_file_size,omitempty"`
}

PlanLimit represents a GitLab pipeline.

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

type PlanLimitsService

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

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

func (s *PlanLimitsService) GetCurrentPlanLimits(opt *GetCurrentPlanLimitsOptions, options ...RequestOptionFunc) (*PlanLimit, *Response, error)

GetCurrentPlanLimits lists 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

type PlanLimitsServiceInterface interface {
	GetCurrentPlanLimits(opt *GetCurrentPlanLimitsOptions, options ...RequestOptionFunc) (*PlanLimit, *Response, error)
	ChangePlanLimits(opt *ChangePlanLimitOptions, options ...RequestOptionFunc) (*PlanLimit, *Response, error)
}

type PlatformKubernetes

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

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

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      *int64            `url:"new_line,omitempty" json:"new_line,omitempty"`
	OldLine      *int64            `url:"old_line,omitempty" json:"old_line,omitempty"`
	LineRange    *LineRangeOptions `url:"line_range,omitempty" json:"line_range,omitempty"`
	Width        *int64            `url:"width,omitempty" json:"width,omitempty"`
	Height       *int64            `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     *int64  `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

type ProcessMetrics struct {
	Processes []ProcessMetricsProcess `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 ProcessMetricsProcess

type ProcessMetricsProcess struct {
	Hostname    string     `json:"hostname"`
	Pid         int64      `json:"pid"`
	Tag         string     `json:"tag"`
	StartedAt   *time.Time `json:"started_at"`
	Queues      []string   `json:"queues"`
	Labels      []string   `json:"labels"`
	Concurrency int64      `json:"concurrency"`
	Busy        int64      `json:"busy"`
}

ProcessMetricsProcess represents the GitLab sidekiq process metrics process.

GitLab API docs: https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-process-metrics

type Project

type Project struct {
	ID                                        int64                                       `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                           int64                                       `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                                 int64                                       `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"`
	ResourceGroupDefaultProcessMode           ResourceGroupProcessMode                    `json:"resource_group_default_process_mode"`
	RunnerTokenExpirationInterval             int64                                       `json:"runner_token_expiration_interval"`
	ForksCount                                int64                                       `json:"forks_count"`
	StarCount                                 int64                                       `json:"star_count"`
	RunnersToken                              string                                      `json:"runners_token"`
	CIDisplayPipelineVariables                bool                                        `json:"ci_display_pipeline_variables"`
	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"`
	MaxArtifactsSize                          int64                                       `json:"max_artifacts_size"`
	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                              int64                                       `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                          []ProjectSharedWithGroup                    `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                         int64                                       `json:"ci_default_git_depth"`
	CIDeletePipelinesInSeconds                int64                                       `json:"ci_delete_pipelines_in_seconds,omitempty"`
	CIForwardDeploymentEnabled                bool                                        `json:"ci_forward_deployment_enabled"`
	CIForwardDeploymentRollbackAllowed        bool                                        `json:"ci_forward_deployment_rollback_allowed"`
	CIPushRepositoryForJobTokenAllowed        bool                                        `json:"ci_push_repository_for_job_token_allowed"`
	CIIdTokenSubClaimComponents               []string                                    `json:"ci_id_token_sub_claim_components"`
	CISeparatedCaches                         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                              int64                                       `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"`
	MergeTrainsSkipTrainAllowed               bool                                        `json:"merge_trains_skip_train_allowed"`
	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"`
	AutoDuoCodeReviewEnabled                  bool                                        `json:"auto_duo_code_review_enabled"`
	MergeRequestTitleRegex                    string                                      `json:"merge_request_title_regex"`
	MergeRequestTitleRegexDescription         string                                      `json:"merge_request_title_regex_description"`
	// 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 int64 `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

type ProjectAccessToken resourceAccessToken

ProjectAccessToken represents a GitLab project access token.

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

func (ProjectAccessToken) String

func (v ProjectAccessToken) String() string

type ProjectAccessTokensService

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

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

func (s *ProjectAccessTokensService) GetProjectAccessToken(pid any, id int64, 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

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

func (s *ProjectAccessTokensService) RevokeProjectAccessToken(pid any, id int64, 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

func (s *ProjectAccessTokensService) RotateProjectAccessToken(pid any, id int64, 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

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

type ProjectAccessTokensServiceInterface interface {
	ListProjectAccessTokens(pid any, opt *ListProjectAccessTokensOptions, options ...RequestOptionFunc) ([]*ProjectAccessToken, *Response, error)
	GetProjectAccessToken(pid any, id int64, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)
	CreateProjectAccessToken(pid any, opt *CreateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)
	RotateProjectAccessToken(pid any, id int64, opt *RotateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)
	RotateProjectAccessTokenSelf(pid any, opt *RotateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error)
	RevokeProjectAccessToken(pid any, id int64, options ...RequestOptionFunc) (*Response, error)
}

type ProjectAlias

type ProjectAlias struct {
	ID        int64  `json:"id"`
	ProjectID int64  `json:"project_id"`
	Name      string `json:"name"`
}

ProjectAlias represents a GitLab project alias.

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

type ProjectAliasesService

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

ProjectAliasesService handles communication with the project aliases related methods of the GitLab API.

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

func (*ProjectAliasesService) CreateProjectAlias

func (s *ProjectAliasesService) CreateProjectAlias(opt *CreateProjectAliasOptions, options ...RequestOptionFunc) (*ProjectAlias, *Response, error)

CreateProjectAlias creates a new project alias.

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

func (*ProjectAliasesService) DeleteProjectAlias

func (s *ProjectAliasesService) DeleteProjectAlias(name string, options ...RequestOptionFunc) (*Response, error)

DeleteProjectAlias deletes a project alias.

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

func (*ProjectAliasesService) GetProjectAlias

func (s *ProjectAliasesService) GetProjectAlias(name string, options ...RequestOptionFunc) (*ProjectAlias, *Response, error)

GetProjectAlias gets details of a project alias.

GitLab API docs: https://docs.gitlab.com/api/project_aliases/#get-project-alias-details

func (*ProjectAliasesService) ListProjectAliases

func (s *ProjectAliasesService) ListProjectAliases(options ...RequestOptionFunc) ([]*ProjectAlias, *Response, error)

ListProjectAliases gets a list of all project aliases.

GitLab API docs: https://docs.gitlab.com/api/project_aliases/#list-all-project-aliases

type ProjectAliasesServiceInterface

type ProjectAliasesServiceInterface interface {
	ListProjectAliases(options ...RequestOptionFunc) ([]*ProjectAlias, *Response, error)
	GetProjectAlias(name string, options ...RequestOptionFunc) (*ProjectAlias, *Response, error)
	CreateProjectAlias(opt *CreateProjectAliasOptions, options ...RequestOptionFunc) (*ProjectAlias, *Response, error)
	DeleteProjectAlias(name string, options ...RequestOptionFunc) (*Response, error)
}

type ProjectApprovalRule

type ProjectApprovalRule struct {
	ID                            int64              `json:"id"`
	Name                          string             `json:"name"`
	RuleType                      string             `json:"rule_type"`
	ReportType                    string             `json:"report_type"`
	EligibleApprovers             []*BasicUser       `json:"eligible_approvers"`
	ApprovalsRequired             int64              `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

func (s ProjectApprovalRule) String() string

type ProjectApprovals

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"`
	RequireReauthenticationToApprove          bool                         `json:"require_reauthentication_to_approve,omitempty"`

	SelectiveCodeOwnerRemovals bool `json:"selective_code_owner_removals,omitempty"`

	// Deprecated: use Merge Request Approvals API instead
	ApprovalsBeforeMerge int64 `json:"approvals_before_merge"`
	// Deprecated: use RequireReauthenticationToApprove instead
	RequirePasswordToApprove bool `json:"require_password_to_approve"`
}

ProjectApprovals represents GitLab project level merge request approvals.

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

type ProjectAvatar

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

func (a *ProjectAvatar) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

type ProjectBadge

type ProjectBadge struct {
	ID               int64  `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

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

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

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

func (s *ProjectBadgesService) DeleteProjectBadge(pid any, badge int64, 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

func (s *ProjectBadgesService) EditProjectBadge(pid any, badge int64, 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

func (s *ProjectBadgesService) GetProjectBadge(pid any, badge int64, 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

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

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

type ProjectBadgesServiceInterface interface {
	ListProjectBadges(pid any, opt *ListProjectBadgesOptions, options ...RequestOptionFunc) ([]*ProjectBadge, *Response, error)
	GetProjectBadge(pid any, badge int64, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)
	AddProjectBadge(pid any, opt *AddProjectBadgeOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)
	EditProjectBadge(pid any, badge int64, opt *EditProjectBadgeOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)
	DeleteProjectBadge(pid any, badge int64, options ...RequestOptionFunc) (*Response, error)
	PreviewProjectBadge(pid any, opt *ProjectBadgePreviewOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error)
}

type ProjectCluster

type ProjectCluster struct {
	ID                 int64               `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

func (v ProjectCluster) String() string

Deprecated: in GitLab 14.5, to be removed in 19.0

type ProjectClustersService

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

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

func (s *ProjectClustersService) DeleteCluster(pid any, cluster int64, 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

func (s *ProjectClustersService) EditCluster(pid any, cluster int64, 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

func (s *ProjectClustersService) GetCluster(pid any, cluster int64, 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

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

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 int64, 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 int64, opt *EditClusterOptions, options ...RequestOptionFunc) (*ProjectCluster, *Response, error)
	// Deprecated: in GitLab 14.5, to be removed in 19.0
	DeleteCluster(pid any, cluster int64, options ...RequestOptionFunc) (*Response, error)
}

Deprecated: in GitLab 14.5, to be removed in 19.0

type ProjectCreationLevelValue

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"
	AdministratorProjectCreation ProjectCreationLevelValue = "administrator"
)

List of available project creation levels.

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

type ProjectDeployKey

type ProjectDeployKey struct {
	ID                int64      `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

func (k ProjectDeployKey) String() string

type ProjectEvent

type ProjectEvent struct {
	ID             int64                `json:"id"`
	Title          string               `json:"title"`
	ProjectID      int64                `json:"project_id"`
	ActionName     string               `json:"action_name"`
	TargetID       int64                `json:"target_id"`
	TargetIID      int64                `json:"target_iid"`
	TargetType     string               `json:"target_type"`
	AuthorID       int64                `json:"author_id"`
	TargetTitle    string               `json:"target_title"`
	CreatedAt      string               `json:"created_at"`
	Author         BasicUser            `json:"author"`
	AuthorUsername string               `json:"author_username"`
	Data           ProjectEventData     `json:"data"`
	Note           ProjectEventNote     `json:"note"`
	PushData       ProjectEventPushData `json:"push_data"`
}

ProjectEvent represents a GitLab project event.

GitLab API docs: https://docs.gitlab.com/api/events/#list-all-visible-events-for-a-project

func (ProjectEvent) String

func (s ProjectEvent) String() string

type ProjectEventData

type ProjectEventData struct {
	Before            string      `json:"before"`
	After             string      `json:"after"`
	Ref               string      `json:"ref"`
	UserID            int64       `json:"user_id"`
	UserName          string      `json:"user_name"`
	Repository        *Repository `json:"repository"`
	Commits           []*Commit   `json:"commits"`
	TotalCommitsCount int64       `json:"total_commits_count"`
}

ProjectEventData represents the GitLab project event data.

GitLab API docs: https://docs.gitlab.com/api/events/#list-all-visible-events-for-a-project

func (ProjectEventData) String

func (d ProjectEventData) String() string

type ProjectEventNote

type ProjectEventNote struct {
	ID           int64                  `json:"id"`
	Body         string                 `json:"body"`
	Attachment   string                 `json:"attachment"`
	Author       ProjectEventNoteAuthor `json:"author"`
	CreatedAt    *time.Time             `json:"created_at"`
	System       bool                   `json:"system"`
	NoteableID   int64                  `json:"noteable_id"`
	NoteableType string                 `json:"noteable_type"`
	NoteableIID  int64                  `json:"noteable_iid"`
}

ProjectEventNote represents a GitLab project event note.

GitLab API docs: https://docs.gitlab.com/api/events/#list-all-visible-events-for-a-project

func (ProjectEventNote) String

func (n ProjectEventNote) String() string

type ProjectEventNoteAuthor

type ProjectEventNoteAuthor struct {
	ID        int64  `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"`
}

ProjectEventNoteAuthor represents a GitLab project event note author.

GitLab API docs: https://docs.gitlab.com/api/events/#list-all-visible-events-for-a-project

func (ProjectEventNoteAuthor) String

func (a ProjectEventNoteAuthor) String() string

type ProjectEventOwner

type ProjectEventOwner struct {
	Name  string `json:"name"`
	Email string `json:"email"`
}

type ProjectEventPushData

type ProjectEventPushData struct {
	CommitCount int64  `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"`
}

ProjectEventPushData represents a GitLab project event push data.

GitLab API docs: https://docs.gitlab.com/api/events/#list-all-visible-events-for-a-project

func (ProjectEventPushData) String

func (d ProjectEventPushData) String() string

type ProjectFeatureFlag

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

func (i ProjectFeatureFlag) String() string

type ProjectFeatureFlagScope

type ProjectFeatureFlagScope struct {
	ID               int64  `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

type ProjectFeatureFlagScopeOptions struct {
	ID               *int64  `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

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

func (s *ProjectFeatureFlagService) CreateProjectFeatureFlag(pid any, opt *CreateProjectFeatureFlagOptions, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)

func (*ProjectFeatureFlagService) DeleteProjectFeatureFlag

func (s *ProjectFeatureFlagService) DeleteProjectFeatureFlag(pid any, name string, options ...RequestOptionFunc) (*Response, error)

func (*ProjectFeatureFlagService) GetProjectFeatureFlag

func (s *ProjectFeatureFlagService) GetProjectFeatureFlag(pid any, name string, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)

func (*ProjectFeatureFlagService) ListProjectFeatureFlags

func (s *ProjectFeatureFlagService) ListProjectFeatureFlags(pid any, opt *ListProjectFeatureFlagOptions, options ...RequestOptionFunc) ([]*ProjectFeatureFlag, *Response, error)

func (*ProjectFeatureFlagService) UpdateProjectFeatureFlag

func (s *ProjectFeatureFlagService) UpdateProjectFeatureFlag(pid any, name string, opt *UpdateProjectFeatureFlagOptions, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)

type ProjectFeatureFlagServiceInterface

type ProjectFeatureFlagServiceInterface interface {
	// 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
	ListProjectFeatureFlags(pid any, opt *ListProjectFeatureFlagOptions, 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
	GetProjectFeatureFlag(pid any, name string, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)
	// CreateProjectFeatureFlag creates a feature flag.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/feature_flags/#create-a-feature-flag
	CreateProjectFeatureFlag(pid any, opt *CreateProjectFeatureFlagOptions, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)
	// UpdateProjectFeatureFlag updates a feature flag.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/feature_flags/#update-a-feature-flag
	UpdateProjectFeatureFlag(pid any, name string, opt *UpdateProjectFeatureFlagOptions, options ...RequestOptionFunc) (*ProjectFeatureFlag, *Response, error)
	// DeleteProjectFeatureFlag deletes a feature flag.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/feature_flags/#delete-a-feature-flag
	DeleteProjectFeatureFlag(pid any, name string, options ...RequestOptionFunc) (*Response, error)
}

type ProjectFeatureFlagStrategy

type ProjectFeatureFlagStrategy struct {
	ID         int64                                `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

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                  int64      `json:"id"`
	ForkedToProjectID   int64      `json:"forked_to_project_id"`
	ForkedFromProjectID int64      `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

type ProjectGroup struct {
	ID        int64  `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                        int64               `json:"id"`
	URL                       string              `json:"url"`
	Name                      string              `json:"name"`
	Description               string              `json:"description"`
	ProjectID                 int64               `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"`
	ConfidentialNoteEvents    bool                `json:"confidential_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"`
	MilestoneEvents           bool                `json:"milestone_events"`
	FeatureFlagEvents         bool                `json:"feature_flag_events"`
	EmojiEvents               bool                `json:"emoji_events"`
	EnableSSLVerification     bool                `json:"enable_ssl_verification"`
	RepositoryUpdateEvents    bool                `json:"repository_update_events"`
	AlertStatus               string              `json:"alert_status"`
	DisabledUntil             *time.Time          `json:"disabled_until"`
	URLVariables              []HookURLVariable   `json:"url_variables"`
	CreatedAt                 *time.Time          `json:"created_at"`
	ResourceAccessTokenEvents bool                `json:"resource_access_token_events"`
	CustomWebhookTemplate     string              `json:"custom_webhook_template"`
	CustomHeaders             []*HookCustomHeader `json:"custom_headers"`
	VulnerabilityEvents       bool                `json:"vulnerability_events"`
	BranchFilterStrategy      string              `json:"branch_filter_strategy"`
}

ProjectHook represents a project hook.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#list-webhooks-for-a-project

type ProjectHookEvent

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 ProjectID

type ProjectID struct {
	Value any
}

type ProjectImportExportService

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

func (s *ProjectImportExportService) ExportDownload(pid any, options ...RequestOptionFunc) ([]byte, *Response, error)

func (*ProjectImportExportService) ExportStatus

func (s *ProjectImportExportService) ExportStatus(pid any, options ...RequestOptionFunc) (*ExportStatus, *Response, error)

func (*ProjectImportExportService) ImportFromFile

func (s *ProjectImportExportService) ImportFromFile(archive io.Reader, opt *ImportFileOptions, options ...RequestOptionFunc) (*ImportStatus, *Response, error)

func (*ProjectImportExportService) ImportStatus

func (s *ProjectImportExportService) ImportStatus(pid any, options ...RequestOptionFunc) (*ImportStatus, *Response, error)

func (*ProjectImportExportService) ScheduleExport

func (s *ProjectImportExportService) ScheduleExport(pid any, opt *ScheduleExportOptions, options ...RequestOptionFunc) (*Response, error)

type ProjectImportExportServiceInterface

type ProjectImportExportServiceInterface interface {
	// ScheduleExport schedules a project export.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_import_export/#schedule-an-export
	ScheduleExport(pid any, opt *ScheduleExportOptions, options ...RequestOptionFunc) (*Response, error)
	// ExportStatus gets the status of export.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_import_export/#export-status
	ExportStatus(pid any, options ...RequestOptionFunc) (*ExportStatus, *Response, error)
	// ExportDownload downloads the finished export.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_import_export/#export-download
	ExportDownload(pid any, options ...RequestOptionFunc) ([]byte, *Response, error)
	// ImportFromFile imports a project from an archive file.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_import_export/#import-a-file
	ImportFromFile(archive io.Reader, opt *ImportFileOptions, options ...RequestOptionFunc) (*ImportStatus, *Response, error)
	// ImportStatus gets the status of an import.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_import_export/#import-status
	ImportStatus(pid any, options ...RequestOptionFunc) (*ImportStatus, *Response, error)
}

type ProjectIteration

type ProjectIteration struct {
	ID          int64      `json:"id"`
	IID         int64      `json:"iid"`
	Sequence    int64      `json:"sequence"`
	GroupID     int64      `json:"group_id"`
	Title       string     `json:"title"`
	Description string     `json:"description"`
	State       int64      `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

func (i ProjectIteration) String() string

type ProjectIterationsService

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

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

type ProjectIterationsServiceInterface interface {
	ListProjectIterations(pid any, opt *ListProjectIterationsOptions, options ...RequestOptionFunc) ([]*ProjectIteration, *Response, error)
}

type ProjectLanguages

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

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

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

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

type ProjectMarkdownUpload = MarkdownUpload

Type aliases for backward compatibility

type ProjectMarkdownUploadedFile

type ProjectMarkdownUploadedFile = MarkdownUploadedFile

Type aliases for backward compatibility

type ProjectMarkdownUploadsService

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

ProjectMarkdownUploadsService 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

func (s *ProjectMarkdownUploadsService) DeleteProjectMarkdownUploadByID(pid any, uploadID int64, options ...RequestOptionFunc) (*Response, error)

func (*ProjectMarkdownUploadsService) DeleteProjectMarkdownUploadBySecretAndFilename

func (s *ProjectMarkdownUploadsService) DeleteProjectMarkdownUploadBySecretAndFilename(pid any, secret string, filename string, options ...RequestOptionFunc) (*Response, error)

func (*ProjectMarkdownUploadsService) DownloadProjectMarkdownUploadByID

func (s *ProjectMarkdownUploadsService) DownloadProjectMarkdownUploadByID(pid any, uploadID int64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)

DownloadProjectMarkdownUploadByID downloads a specific upload by ID.

The returned io.ReadCloser must be closed by the caller to avoid leaking the underlying response body.

GitLab API Docs: https://docs.gitlab.com/api/project_markdown_uploads/#download-an-uploaded-file-by-id

func (*ProjectMarkdownUploadsService) DownloadProjectMarkdownUploadBySecretAndFilename

func (s *ProjectMarkdownUploadsService) DownloadProjectMarkdownUploadBySecretAndFilename(pid any, secret string, filename string, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)

DownloadProjectMarkdownUploadBySecretAndFilename downloads a specific upload by secret and filename.

The returned io.ReadCloser must be closed by the caller to avoid leaking the underlying response body.

GitLab API Docs: https://docs.gitlab.com/api/project_markdown_uploads/#download-an-uploaded-file-by-secret-and-filename

func (*ProjectMarkdownUploadsService) ListProjectMarkdownUploads

func (s *ProjectMarkdownUploadsService) ListProjectMarkdownUploads(pid any, options ...RequestOptionFunc) ([]*ProjectMarkdownUpload, *Response, error)

func (*ProjectMarkdownUploadsService) UploadProjectMarkdown

func (s *ProjectMarkdownUploadsService) UploadProjectMarkdown(pid any, content io.Reader, filename string, options ...RequestOptionFunc) (*ProjectMarkdownUploadedFile, *Response, error)

type ProjectMarkdownUploadsServiceInterface

type ProjectMarkdownUploadsServiceInterface interface {
	// UploadProjectMarkdown uploads a markdown file to a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_markdown_uploads/#upload-a-file
	UploadProjectMarkdown(pid any, content io.Reader, filename string, options ...RequestOptionFunc) (*ProjectMarkdownUploadedFile, *Response, error)
	// ListProjectMarkdownUploads gets all markdown uploads for a project.
	//
	// GitLab API Docs:
	// https://docs.gitlab.com/api/project_markdown_uploads/#list-uploads
	ListProjectMarkdownUploads(pid any, options ...RequestOptionFunc) ([]*ProjectMarkdownUpload, *Response, error)
	// DownloadProjectMarkdownUploadByID downloads a specific upload by ID.
	//
	// The returned io.ReadCloser must be closed by the caller to avoid
	// leaking the underlying response body.
	//
	// GitLab API Docs:
	// https://docs.gitlab.com/api/project_markdown_uploads/#download-an-uploaded-file-by-id
	DownloadProjectMarkdownUploadByID(pid any, uploadID int64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)
	// DownloadProjectMarkdownUploadBySecretAndFilename downloads a specific upload
	// by secret and filename.
	//
	// The returned io.ReadCloser must be closed by the caller to avoid
	// leaking the underlying response body.
	//
	// GitLab API Docs:
	// https://docs.gitlab.com/api/project_markdown_uploads/#download-an-uploaded-file-by-secret-and-filename
	DownloadProjectMarkdownUploadBySecretAndFilename(pid any, secret string, filename string, options ...RequestOptionFunc) (io.ReadCloser, *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
	DeleteProjectMarkdownUploadByID(pid any, uploadID int64, 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
	DeleteProjectMarkdownUploadBySecretAndFilename(pid any, secret string, filename string, options ...RequestOptionFunc) (*Response, error)
}

type ProjectMember

type ProjectMember struct {
	ID          int64            `json:"id"`
	Username    string           `json:"username"`
	Email       string           `json:"email"`
	Name        string           `json:"name"`
	State       string           `json:"state"`
	CreatedAt   *time.Time       `json:"created_at"`
	CreatedBy   *MemberCreatedBy `json:"created_by"`
	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"`
	IsUsingSeat bool             `json:"is_using_seat,omitempty"`
}

ProjectMember represents a project member.

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

type ProjectMembersService

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

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

func (s *ProjectMembersService) DeleteProjectMember(pid any, user int64, 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

func (s *ProjectMembersService) EditProjectMember(pid any, user int64, 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

func (s *ProjectMembersService) GetInheritedProjectMember(pid any, user int64, 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

func (s *ProjectMembersService) GetProjectMember(pid any, user int64, 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

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

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

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 int64, options ...RequestOptionFunc) (*ProjectMember, *Response, error)
	GetInheritedProjectMember(pid any, user int64, options ...RequestOptionFunc) (*ProjectMember, *Response, error)
	AddProjectMember(pid any, opt *AddProjectMemberOptions, options ...RequestOptionFunc) (*ProjectMember, *Response, error)
	EditProjectMember(pid any, user int64, opt *EditProjectMemberOptions, options ...RequestOptionFunc) (*ProjectMember, *Response, error)
	DeleteProjectMember(pid any, user int64, options ...RequestOptionFunc) (*Response, error)
}

type ProjectMirror

type ProjectMirror struct {
	Enabled                bool       `json:"enabled"`
	ID                     int64      `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"`
	HostKeys               *[]HostKey `json:"host_keys,omitempty"`
}

ProjectMirror represents a project mirror configuration.

GitLAb API docs: https://docs.gitlab.com/api/remote_mirrors/

type ProjectMirrorPublicKey

type ProjectMirrorPublicKey struct {
	PublicKey string `json:"public_key"`
}

type ProjectMirrorService

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

func (s *ProjectMirrorService) AddProjectMirror(pid any, opt *AddProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)

func (*ProjectMirrorService) DeleteProjectMirror

func (s *ProjectMirrorService) DeleteProjectMirror(pid any, mirror int64, options ...RequestOptionFunc) (*Response, error)

func (*ProjectMirrorService) EditProjectMirror

func (s *ProjectMirrorService) EditProjectMirror(pid any, mirror int64, opt *EditProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)

func (*ProjectMirrorService) ForcePushMirrorUpdate

func (s *ProjectMirrorService) ForcePushMirrorUpdate(pid any, mirror int64, options ...RequestOptionFunc) (*Response, error)

func (*ProjectMirrorService) GetProjectMirror

func (s *ProjectMirrorService) GetProjectMirror(pid any, mirror int64, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)

func (*ProjectMirrorService) GetProjectMirrorPublicKey

func (s *ProjectMirrorService) GetProjectMirrorPublicKey(pid any, mirror int64, options ...RequestOptionFunc) (*ProjectMirrorPublicKey, *Response, error)

func (*ProjectMirrorService) ListProjectMirror

func (s *ProjectMirrorService) ListProjectMirror(pid any, opt *ListProjectMirrorOptions, options ...RequestOptionFunc) ([]*ProjectMirror, *Response, error)

type ProjectMirrorServiceInterface

type ProjectMirrorServiceInterface interface {
	// 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
	ListProjectMirror(pid any, opt *ListProjectMirrorOptions, 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
	GetProjectMirror(pid any, mirror int64, options ...RequestOptionFunc) (*ProjectMirror, *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
	GetProjectMirrorPublicKey(pid any, mirror int64, options ...RequestOptionFunc) (*ProjectMirrorPublicKey, *Response, error)
	// AddProjectMirror creates a new mirror on the project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/remote_mirrors/#create-a-push-mirror
	AddProjectMirror(pid any, opt *AddProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)
	// EditProjectMirror updates a remote mirror's attributes.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/remote_mirrors/#update-a-remote-mirrors-attributes
	EditProjectMirror(pid any, mirror int64, opt *EditProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error)
	// DeleteProjectMirror deletes a project mirror.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/remote_mirrors/#delete-a-remote-mirror
	DeleteProjectMirror(pid any, mirror int64, options ...RequestOptionFunc) (*Response, error)
	// ForcePushMirrorUpdate triggers a manual update for a project mirror.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/remote_mirrors/#force-push-mirror-update
	ForcePushMirrorUpdate(pid any, mirror int64, options ...RequestOptionFunc) (*Response, error)
}

type ProjectNamespace

type ProjectNamespace struct {
	ID        int64  `json:"id"`
	Name      string `json:"name"`
	Path      string `json:"path"`
	Kind      string `json:"kind"`
	FullPath  string `json:"full_path"`
	ParentID  int64  `json:"parent_id"`
	AvatarURL string `json:"avatar_url"`
	WebURL    string `json:"web_url"`
}

ProjectNamespace represents a project namespace.

type ProjectNamespaceLintOptions

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

type ProjectPullMirrorDetails struct {
	ID                               int64      `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"`
	Enabled                          bool       `json:"enabled"`
	MirrorTriggerBuilds              bool       `json:"mirror_trigger_builds"`
	OnlyMirrorProtectedBranches      bool       `json:"only_mirror_protected_branches"`
	MirrorOverwritesDivergedBranches bool       `json:"mirror_overwrites_diverged_branches"`
	MirrorBranchRegex                string     `json:"mirror_branch_regex"`
}

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

type ProjectPushRules struct {
	ID                         int64      `json:"id"`
	ProjectID                  int64      `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                int64      `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 ProjectRepositoryStorage

type ProjectRepositoryStorage struct {
	ProjectID         int64      `json:"project_id"`
	DiskPath          string     `json:"disk_path"`
	CreatedAt         *time.Time `json:"created_at"`
	RepositoryStorage string     `json:"repository_storage"`
}

ProjectRepositoryStorage represents the repository storage information for a project.

GitLab API docs: https://docs.gitlab.com/api/projects/#get-the-path-to-repository-storage

type ProjectRepositoryStorageMove

type ProjectRepositoryStorageMove struct {
	ID                     int64              `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

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

func (p ProjectRepositoryStorageMoveService) GetStorageMove(repositoryStorage int64, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error)

func (ProjectRepositoryStorageMoveService) GetStorageMoveForProject

func (p ProjectRepositoryStorageMoveService) GetStorageMoveForProject(project int64, repositoryStorage int64, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error)

func (ProjectRepositoryStorageMoveService) RetrieveAllStorageMoves

func (ProjectRepositoryStorageMoveService) RetrieveAllStorageMovesForProject

func (ProjectRepositoryStorageMoveService) ScheduleAllStorageMoves

func (ProjectRepositoryStorageMoveService) ScheduleStorageMoveForProject

type ProjectRepositoryStorageMoveServiceInterface

type ProjectRepositoryStorageMoveServiceInterface interface {
	// 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
	RetrieveAllStorageMoves(opts RetrieveAllProjectStorageMovesOptions, options ...RequestOptionFunc) ([]*ProjectRepositoryStorageMove, *Response, error)
	// 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
	RetrieveAllStorageMovesForProject(project int64, opts RetrieveAllProjectStorageMovesOptions, 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
	GetStorageMove(repositoryStorage int64, 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
	GetStorageMoveForProject(project int64, repositoryStorage int64, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error)
	// 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
	ScheduleStorageMoveForProject(project int64, opts ScheduleStorageMoveForProjectOptions, options ...RequestOptionFunc) (*ProjectRepositoryStorageMove, *Response, error)
	// 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
	ScheduleAllStorageMoves(opts ScheduleAllProjectStorageMovesOptions, options ...RequestOptionFunc) (*Response, error)
}

type ProjectResourceAccessTokenEvent

type ProjectResourceAccessTokenEvent struct {
	EventName        string                                          `json:"event_name"`
	ObjectKind       string                                          `json:"object_kind"`
	Project          ProjectResourceAccessTokenEventProject          `json:"project"`
	ObjectAttributes ProjectResourceAccessTokenEventObjectAttributes `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 ProjectResourceAccessTokenEventObjectAttributes

type ProjectResourceAccessTokenEventObjectAttributes struct {
	ID        int64    `json:"id"`
	UserID    int64    `json:"user_id"`
	Name      string   `json:"name"`
	CreatedAt string   `json:"created_at"`
	ExpiresAt *ISOTime `json:"expires_at"`
}

type ProjectResourceAccessTokenEventProject

type ProjectResourceAccessTokenEventProject struct {
	ID                int64  `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   int64  `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"`
}

type ProjectSecuritySettings

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

func (s ProjectSecuritySettings) String() string

String gets a string representation of the ProjectSecuritySettings data.

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

type ProjectSecuritySettingsService

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

func (s *ProjectSecuritySettingsService) ListProjectSecuritySettings(pid any, options ...RequestOptionFunc) (*ProjectSecuritySettings, *Response, error)

func (*ProjectSecuritySettingsService) UpdateSecretPushProtectionEnabledSetting

func (s *ProjectSecuritySettingsService) UpdateSecretPushProtectionEnabledSetting(pid any, opt UpdateProjectSecuritySettingsOptions, options ...RequestOptionFunc) (*ProjectSecuritySettings, *Response, error)

type ProjectSecuritySettingsServiceInterface

type ProjectSecuritySettingsServiceInterface interface {
	// ListProjectSecuritySettings lists all of a project's security settings.
	//
	// GitLab API Docs:
	// https://docs.gitlab.com/api/project_security_settings/#list-project-security-settings
	ListProjectSecuritySettings(pid any, options ...RequestOptionFunc) (*ProjectSecuritySettings, *Response, error)
	// UpdateSecretPushProtectionEnabledSetting updates the secret_push_protection_enabled
	// setting for a project to the provided value.
	//
	// GitLab API Docs:
	// https://docs.gitlab.com/api/project_security_settings/#update-secret_push_protection_enabled-setting
	UpdateSecretPushProtectionEnabledSetting(pid any, opt UpdateProjectSecuritySettingsOptions, options ...RequestOptionFunc) (*ProjectSecuritySettings, *Response, error)
}

type ProjectSharedWithGroup

type ProjectSharedWithGroup struct {
	GroupID          int64    `json:"group_id"`
	GroupName        string   `json:"group_name"`
	GroupFullPath    string   `json:"group_full_path"`
	GroupAccessLevel int64    `json:"group_access_level"`
	ExpiresAt        *ISOTime `json:"expires_at"`
}

ProjectSharedWithGroup represents a GitLab project shared group.

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

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 int64, 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 int64, 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 int64, 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 int64, 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

type ProjectSnippetsServiceInterface interface {
	ListSnippets(pid any, opt *ListProjectSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)
	GetSnippet(pid any, snippet int64, options ...RequestOptionFunc) (*Snippet, *Response, error)
	CreateSnippet(pid any, opt *CreateProjectSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)
	UpdateSnippet(pid any, snippet int64, opt *UpdateProjectSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)
	DeleteSnippet(pid any, snippet int64, options ...RequestOptionFunc) (*Response, error)
	SnippetContent(pid any, snippet int64, options ...RequestOptionFunc) ([]byte, *Response, error)
}

type ProjectStarrer

type ProjectStarrer struct {
	StarredSince time.Time   `json:"starred_since"`
	User         ProjectUser `json:"user"`
}

ProjectStarrer represents a user who starred a project.

GitLab API docs: https://docs.gitlab.com/api/project_starring/#list-users-who-starred-a-project

type ProjectStatistics

type ProjectStatistics struct {
	Fetches FetchStats `json:"fetches"`
}

ProjectStatistics represents the Project Statistics.

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

type ProjectStatisticsService

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

ProjectStatisticsService handles communication with the project statistics related methods of the GitLab API.

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

func (*ProjectStatisticsService) Last30DaysStatistics

func (s *ProjectStatisticsService) Last30DaysStatistics(pid any, options ...RequestOptionFunc) (*ProjectStatistics, *Response, error)

type ProjectStatisticsServiceInterface

type ProjectStatisticsServiceInterface interface {
	// Last30DaysStatistics gets the project statistics for the last 30 days.
	//
	// GitLab API docs: https://docs.gitlab.com/api/project_statistics/#get-the-statistics-of-the-last-30-days
	Last30DaysStatistics(pid any, options ...RequestOptionFunc) (*ProjectStatistics, *Response, error)
}

type ProjectStatusCheck

type ProjectStatusCheck struct {
	ID                int64                        `json:"id"`
	Name              string                       `json:"name"`
	ProjectID         int64                        `json:"project_id"`
	ExternalURL       string                       `json:"external_url"`
	HMAC              bool                         `json:"hmac"`
	ProtectedBranches []StatusCheckProtectedBranch `json:"protected_branches"`
}

type ProjectSystemEvent

type ProjectSystemEvent struct {
	BaseSystemEvent
	Name                 string `json:"name"`
	Path                 string `json:"path"`
	PathWithNamespace    string `json:"path_with_namespace"`
	ProjectID            int64  `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

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

func (s ProjectTemplate) String() string

type ProjectTemplatesService

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

func (s *ProjectTemplatesService) GetProjectTemplate(pid any, templateType string, templateName string, options ...RequestOptionFunc) (*ProjectTemplate, *Response, error)

func (*ProjectTemplatesService) ListTemplates

func (s *ProjectTemplatesService) ListTemplates(pid any, templateType string, opt *ListProjectTemplatesOptions, options ...RequestOptionFunc) ([]*ProjectTemplate, *Response, error)

type ProjectTemplatesServiceInterface

type ProjectTemplatesServiceInterface interface {
	// ListTemplates gets a list of project templates.
	//
	// GitLab API docs: https://docs.gitlab.com/api/project_templates/#get-all-templates-of-a-particular-type
	ListTemplates(pid any, templateType string, opt *ListProjectTemplatesOptions, 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
	GetProjectTemplate(pid any, templateType string, templateName string, options ...RequestOptionFunc) (*ProjectTemplate, *Response, error)
}

type ProjectUser

type ProjectUser struct {
	ID        int64  `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

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

func (v ProjectVariable) String() string

type ProjectVariablesService

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

func (*ProjectVariablesService) GetVariable

func (*ProjectVariablesService) ListVariables

func (*ProjectVariablesService) RemoveVariable

func (s *ProjectVariablesService) RemoveVariable(pid any, key string, opt *RemoveProjectVariableOptions, options ...RequestOptionFunc) (*Response, error)

func (*ProjectVariablesService) UpdateVariable

type ProjectVariablesServiceInterface

type ProjectVariablesServiceInterface interface {
	// ListVariables gets a list of all variables in a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_level_variables/#list-project-variables
	ListVariables(pid any, opt *ListProjectVariablesOptions, options ...RequestOptionFunc) ([]*ProjectVariable, *Response, error)
	// GetVariable gets a variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_level_variables/#get-a-single-variable
	GetVariable(pid any, key string, opt *GetProjectVariableOptions, options ...RequestOptionFunc) (*ProjectVariable, *Response, error)
	// CreateVariable creates a new project variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_level_variables/#create-a-variable
	CreateVariable(pid any, opt *CreateProjectVariableOptions, options ...RequestOptionFunc) (*ProjectVariable, *Response, error)
	// UpdateVariable updates a project's variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_level_variables/#update-a-variable
	UpdateVariable(pid any, key string, opt *UpdateProjectVariableOptions, options ...RequestOptionFunc) (*ProjectVariable, *Response, error)
	// RemoveVariable removes a project's variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_level_variables/#delete-a-variable
	RemoveVariable(pid any, key string, opt *RemoveProjectVariableOptions, options ...RequestOptionFunc) (*Response, error)
}

type ProjectVulnerabilitiesService

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

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

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

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

type ProjectVulnerability struct {
	AuthorID                int64      `json:"author_id"`
	Confidence              string     `json:"confidence"`
	CreatedAt               *time.Time `json:"created_at"`
	Description             string     `json:"description"`
	DismissedAt             *time.Time `json:"dismissed_at"`
	DismissedByID           int64      `json:"dismissed_by_id"`
	DueDate                 *time.Time `json:"due_date"`
	Finding                 *Finding   `json:"finding"`
	ID                      int64      `json:"id"`
	LastEditedAt            *time.Time `json:"last_edited_at"`
	LastEditedByID          int64      `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            int64      `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             int64      `json:"updated_by_id"`
}

ProjectVulnerability represents a GitLab project vulnerability. Deprecated: use GraphQL Query.vulnerabilities instead

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

type ProjectWebhookEvent

type ProjectWebhookEvent struct {
	EventName            string              `json:"event_name"`
	CreatedAt            string              `json:"created_at"`
	UpdatedAt            string              `json:"updated_at"`
	Name                 string              `json:"name"`
	Path                 string              `json:"path"`
	PathWithNamespace    string              `json:"path_with_namespace"`
	ProjectID            int64               `json:"project_id"`
	ProjectNamespaceID   int64               `json:"project_namespace_id"`
	Owners               []ProjectEventOwner `json:"owners"`
	ProjectVisibility    string              `json:"project_visibility"`
	OldPathWithNamespace string              `json:"old_path_with_namespace,omitempty"`
}

ProjectWebhookEvent represents a project webhook event for group webhooks.

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

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)

func (*ProjectsService) AddProjectPushRule

func (s *ProjectsService) AddProjectPushRule(pid any, opt *AddProjectPushRuleOptions, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error)

func (*ProjectsService) ArchiveProject

func (s *ProjectsService) ArchiveProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) ChangeApprovalConfiguration

func (s *ProjectsService) ChangeApprovalConfiguration(pid any, opt *ChangeApprovalConfigurationOptions, options ...RequestOptionFunc) (*ProjectApprovals, *Response, error)

func (*ProjectsService) ConfigureProjectPullMirror

func (s *ProjectsService) ConfigureProjectPullMirror(pid any, opt *ConfigureProjectPullMirrorOptions, options ...RequestOptionFunc) (*ProjectPullMirrorDetails, *Response, error)

func (*ProjectsService) CreateProject

func (s *ProjectsService) CreateProject(opt *CreateProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) CreateProjectApprovalRule

func (s *ProjectsService) CreateProjectApprovalRule(pid any, opt *CreateProjectLevelRuleOptions, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)

func (*ProjectsService) CreateProjectForUser

func (s *ProjectsService) CreateProjectForUser(user int64, opt *CreateProjectForUserOptions, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) CreateProjectForkRelation

func (s *ProjectsService) CreateProjectForkRelation(pid any, fork int64, options ...RequestOptionFunc) (*ProjectForkRelation, *Response, error)

func (*ProjectsService) CreateTargetBranchRule added in v2.8.0

func (s *ProjectsService) CreateTargetBranchRule(pid int64, opt *CreateTargetBranchRuleOptions, options ...RequestOptionFunc) (*TargetBranchRule, *Response, error)

CreateTargetBranchRule creates a new target branch rule for a project.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#mutationprojecttargetbranchrulecreate

func (*ProjectsService) DeleteProject

func (s *ProjectsService) DeleteProject(pid any, opt *DeleteProjectOptions, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) DeleteProjectApprovalRule

func (s *ProjectsService) DeleteProjectApprovalRule(pid any, approvalRule int64, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) DeleteProjectCustomHeader

func (s *ProjectsService) DeleteProjectCustomHeader(pid any, hook int64, key string, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) DeleteProjectForkRelation

func (s *ProjectsService) DeleteProjectForkRelation(pid any, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) DeleteProjectHook

func (s *ProjectsService) DeleteProjectHook(pid any, hook int64, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) DeleteProjectPushRule

func (s *ProjectsService) DeleteProjectPushRule(pid any, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) DeleteProjectWebhookURLVariable

func (s *ProjectsService) DeleteProjectWebhookURLVariable(pid any, hook int64, key string, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) DeleteSharedProjectFromGroup

func (s *ProjectsService) DeleteSharedProjectFromGroup(pid any, groupID int64, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) DeleteTargetBranchRule added in v2.8.0

func (s *ProjectsService) DeleteTargetBranchRule(id int64, options ...RequestOptionFunc) (*Response, error)

DeleteTargetBranchRule deletes a target branch rule.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#mutationprojecttargetbranchruledestroy

func (*ProjectsService) DownloadAvatar

func (s *ProjectsService) DownloadAvatar(pid any, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)

func (*ProjectsService) EditProject

func (s *ProjectsService) EditProject(pid any, opt *EditProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) EditProjectHook

func (s *ProjectsService) EditProjectHook(pid any, hook int64, opt *EditProjectHookOptions, options ...RequestOptionFunc) (*ProjectHook, *Response, error)

func (*ProjectsService) EditProjectPushRule

func (s *ProjectsService) EditProjectPushRule(pid any, opt *EditProjectPushRuleOptions, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error)

func (*ProjectsService) ForkProject

func (s *ProjectsService) ForkProject(pid any, opt *ForkProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) GetApprovalConfiguration

func (s *ProjectsService) GetApprovalConfiguration(pid any, options ...RequestOptionFunc) (*ProjectApprovals, *Response, error)

func (*ProjectsService) GetProject

func (s *ProjectsService) GetProject(pid any, opt *GetProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) GetProjectApprovalRule

func (s *ProjectsService) GetProjectApprovalRule(pid any, ruleID int64, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)

func (*ProjectsService) GetProjectApprovalRules

func (s *ProjectsService) GetProjectApprovalRules(pid any, opt *GetProjectApprovalRulesListsOptions, options ...RequestOptionFunc) ([]*ProjectApprovalRule, *Response, error)

func (*ProjectsService) GetProjectHook

func (s *ProjectsService) GetProjectHook(pid any, hook int64, options ...RequestOptionFunc) (*ProjectHook, *Response, error)

func (*ProjectsService) GetProjectLanguages

func (s *ProjectsService) GetProjectLanguages(pid any, options ...RequestOptionFunc) (*ProjectLanguages, *Response, error)

func (*ProjectsService) GetProjectPullMirrorDetails

func (s *ProjectsService) GetProjectPullMirrorDetails(pid any, options ...RequestOptionFunc) (*ProjectPullMirrorDetails, *Response, error)

func (*ProjectsService) GetProjectPushRules

func (s *ProjectsService) GetProjectPushRules(pid any, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error)

func (*ProjectsService) GetRepositoryStorage

func (s *ProjectsService) GetRepositoryStorage(pid any, options ...RequestOptionFunc) (*ProjectRepositoryStorage, *Response, error)

func (*ProjectsService) ListProjectForks

func (s *ProjectsService) ListProjectForks(pid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

func (*ProjectsService) ListProjectHooks

func (s *ProjectsService) ListProjectHooks(pid any, opt *ListProjectHooksOptions, options ...RequestOptionFunc) ([]*ProjectHook, *Response, error)

func (*ProjectsService) ListProjectStarrers

func (s *ProjectsService) ListProjectStarrers(pid any, opts *ListProjectStarrersOptions, options ...RequestOptionFunc) ([]*ProjectStarrer, *Response, error)

func (*ProjectsService) ListProjectTargetBranchRules added in v2.8.0

func (s *ProjectsService) ListProjectTargetBranchRules(projectFullPath string, options ...RequestOptionFunc) ([]TargetBranchRule, *Response, error)

ListProjectTargetBranchRules returns the target branch rules for a project. projectFullPath must be the full namespace/project path string, as the GitLab GraphQL project(fullPath:) field does not accept numeric IDs.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#projecttargetbranchruleconnection

func (*ProjectsService) ListProjects

func (s *ProjectsService) ListProjects(opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

func (*ProjectsService) ListProjectsGroups

func (s *ProjectsService) ListProjectsGroups(pid any, opt *ListProjectGroupOptions, options ...RequestOptionFunc) ([]*ProjectGroup, *Response, error)

func (*ProjectsService) ListProjectsInvitedGroups

func (s *ProjectsService) ListProjectsInvitedGroups(pid any, opt *ListProjectInvitedGroupOptions, options ...RequestOptionFunc) ([]*ProjectGroup, *Response, error)

func (*ProjectsService) ListProjectsUsers

func (s *ProjectsService) ListProjectsUsers(pid any, opt *ListProjectUserOptions, options ...RequestOptionFunc) ([]*ProjectUser, *Response, error)

func (*ProjectsService) ListUserContributedProjects

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.

uid can be either a user ID (int) or a username (string). If a username is provided with a leading "@" (e.g., "@johndoe"), it will be trimmed.

GitLab API docs: https://docs.gitlab.com/api/projects/#list-projects-a-user-has-contributed-to

func (*ProjectsService) ListUserProjects

func (s *ProjectsService) ListUserProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

func (*ProjectsService) ListUserStarredProjects

func (s *ProjectsService) ListUserStarredProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)

func (*ProjectsService) RestoreProject

func (s *ProjectsService) RestoreProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) SetProjectCustomHeader

func (s *ProjectsService) SetProjectCustomHeader(pid any, hook int64, key string, opt *SetHookCustomHeaderOptions, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) SetProjectWebhookURLVariable

func (s *ProjectsService) SetProjectWebhookURLVariable(pid any, hook int64, key string, opt *SetProjectWebhookURLVariableOptions, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) ShareProjectWithGroup

func (s *ProjectsService) ShareProjectWithGroup(pid any, opt *ShareWithGroupOptions, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) StarProject

func (s *ProjectsService) StarProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) StartHousekeepingProject

func (s *ProjectsService) StartHousekeepingProject(pid any, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) StartMirroringProject

func (s *ProjectsService) StartMirroringProject(pid any, options ...RequestOptionFunc) (*Response, error)

func (*ProjectsService) TransferProject

func (s *ProjectsService) TransferProject(pid any, opt *TransferProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) TriggerTestProjectHook

func (s *ProjectsService) TriggerTestProjectHook(pid any, hook int64, 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)

func (*ProjectsService) UnstarProject

func (s *ProjectsService) UnstarProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)

func (*ProjectsService) UpdateProjectApprovalRule

func (s *ProjectsService) UpdateProjectApprovalRule(pid any, approvalRule int64, opt *UpdateProjectLevelRuleOptions, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)

func (*ProjectsService) UploadAvatar

func (s *ProjectsService) UploadAvatar(pid any, avatar io.Reader, filename string, options ...RequestOptionFunc) (*Project, *Response, error)

type ProjectsServiceInterface

type ProjectsServiceInterface interface {
	// ListProjects gets a list of projects accessible by the authenticated user.
	//
	// GitLab API docs: https://docs.gitlab.com/api/projects/#list-all-projects
	ListProjects(opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	// ListUserProjects gets a list of projects for the given user.
	//
	// uid can be either a user ID (int) or a username (string). If a username
	// is provided with a leading "@" (e.g., "@johndoe"), it will be trimmed.
	// GitLab API docs:
	// https://docs.gitlab.com/api/projects/#list-a-users-projects
	ListUserProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	// ListUserContributedProjects gets a list of visible projects a given user
	// has contributed to.
	//
	// uid can be either a user ID (int) or a username (string). If a username
	// is provided with a leading "@" (e.g., "@johndoe"), it will be trimmed.
	// GitLab API docs:
	// https://docs.gitlab.com/api/projects/#list-projects-a-user-has-contributed-to
	ListUserContributedProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	// ListUserStarredProjects gets a list of projects starred by the given user.
	//
	// uid can be either a user ID (int) or a username (string). If a username
	// is provided with a leading "@" (e.g., "@johndoe"), it will be trimmed.
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_starring/#list-projects-starred-by-a-user
	ListUserStarredProjects(uid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error)
	// ListProjectsUsers gets a list of users for the given project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/projects/#list-users
	ListProjectsUsers(pid any, opt *ListProjectUserOptions, options ...RequestOptionFunc) ([]*ProjectUser, *Response, error)
	// ListProjectsGroups gets a list of groups for the given project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/projects/#list-groups
	ListProjectsGroups(pid any, opt *ListProjectGroupOptions, options ...RequestOptionFunc) ([]*ProjectGroup, *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
	GetProjectLanguages(pid any, options ...RequestOptionFunc) (*ProjectLanguages, *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
	GetProject(pid any, opt *GetProjectOptions, 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
	CreateProject(opt *CreateProjectOptions, 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
	CreateProjectForUser(user int64, opt *CreateProjectForUserOptions, options ...RequestOptionFunc) (*Project, *Response, error)
	// EditProject updates an existing project.
	//
	// GitLab API docs: https://docs.gitlab.com/api/projects/#edit-a-project
	EditProject(pid any, opt *EditProjectOptions, 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
	ForkProject(pid any, opt *ForkProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error)
	// StarProject stars a given project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_starring/#star-a-project
	StarProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)
	// ListProjectsInvitedGroups lists invited groups of a project
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/projects/#list-a-projects-invited-groups
	ListProjectsInvitedGroups(pid any, opt *ListProjectInvitedGroupOptions, options ...RequestOptionFunc) ([]*ProjectGroup, *Response, error)
	// UnstarProject unstars a given project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_starring/#unstar-a-project
	UnstarProject(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
	ArchiveProject(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
	UnarchiveProject(pid any, options ...RequestOptionFunc) (*Project, *Response, error)
	// RestoreProject restores a project that is marked for deletion.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/projects/#restore-a-project-marked-for-deletion
	RestoreProject(pid any, options ...RequestOptionFunc) (*Project, *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
	DeleteProject(pid any, opt *DeleteProjectOptions, 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
	ShareProjectWithGroup(pid any, opt *ShareWithGroupOptions, 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
	DeleteSharedProjectFromGroup(pid any, groupID int64, options ...RequestOptionFunc) (*Response, error)
	// ListProjectHooks gets a list of project hooks.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_webhooks/#list-webhooks-for-a-project
	ListProjectHooks(pid any, opt *ListProjectHooksOptions, 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
	GetProjectHook(pid any, hook int64, 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
	AddProjectHook(pid any, opt *AddProjectHookOptions, 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
	EditProjectHook(pid any, hook int64, opt *EditProjectHookOptions, options ...RequestOptionFunc) (*ProjectHook, *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
	DeleteProjectHook(pid any, hook int64, 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
	TriggerTestProjectHook(pid any, hook int64, event ProjectHookEvent, 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
	SetProjectCustomHeader(pid any, hook int64, key string, opt *SetHookCustomHeaderOptions, 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
	DeleteProjectCustomHeader(pid any, hook int64, key string, options ...RequestOptionFunc) (*Response, error)
	// SetProjectWebhookURLVariable creates or updates a project webhook URL variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_webhooks/#set-a-url-variable
	SetProjectWebhookURLVariable(pid any, hook int64, key string, opt *SetProjectWebhookURLVariableOptions, options ...RequestOptionFunc) (*Response, error)
	// DeleteProjectWebhookURLVariable deletes a project webhook URL variable.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_webhooks/#delete-a-url-variable
	DeleteProjectWebhookURLVariable(pid any, hook int64, key string, options ...RequestOptionFunc) (*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
	CreateProjectForkRelation(pid any, fork int64, options ...RequestOptionFunc) (*ProjectForkRelation, *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
	DeleteProjectForkRelation(pid any, options ...RequestOptionFunc) (*Response, error)
	// UploadAvatar uploads an avatar.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/projects/#upload-a-project-avatar
	UploadAvatar(pid any, avatar io.Reader, filename string, options ...RequestOptionFunc) (*Project, *Response, error)
	// DownloadAvatar downloads an avatar.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/projects/#download-a-project-avatar
	DownloadAvatar(pid any, options ...RequestOptionFunc) (*bytes.Reader, *Response, error)
	// ListProjectForks gets a list of project forks.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_forks/#list-forks-of-a-project
	ListProjectForks(pid any, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *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
	GetProjectPushRules(pid any, 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
	AddProjectPushRule(pid any, opt *AddProjectPushRuleOptions, 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
	EditProjectPushRule(pid any, opt *EditProjectPushRuleOptions, options ...RequestOptionFunc) (*ProjectPushRules, *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
	DeleteProjectPushRule(pid any, options ...RequestOptionFunc) (*Response, error)
	// GetApprovalConfiguration get the approval configuration for a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/merge_request_approvals/#project-approval-rules
	GetApprovalConfiguration(pid any, 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
	ChangeApprovalConfiguration(pid any, opt *ChangeApprovalConfigurationOptions, options ...RequestOptionFunc) (*ProjectApprovals, *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
	GetProjectApprovalRules(pid any, opt *GetProjectApprovalRulesListsOptions, 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
	GetProjectApprovalRule(pid any, ruleID int64, 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
	CreateProjectApprovalRule(pid any, opt *CreateProjectLevelRuleOptions, 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
	UpdateProjectApprovalRule(pid any, approvalRule int64, opt *UpdateProjectLevelRuleOptions, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error)
	// DeleteProjectApprovalRule deletes a project-level approval rule.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/merge_request_approvals/#delete-project-approval-rule
	DeleteProjectApprovalRule(pid any, approvalRule int64, options ...RequestOptionFunc) (*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
	GetProjectPullMirrorDetails(pid any, 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
	ConfigureProjectPullMirror(pid any, opt *ConfigureProjectPullMirrorOptions, options ...RequestOptionFunc) (*ProjectPullMirrorDetails, *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
	StartMirroringProject(pid any, options ...RequestOptionFunc) (*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
	TransferProject(pid any, opt *TransferProjectOptions, options ...RequestOptionFunc) (*Project, *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
	StartHousekeepingProject(pid any, options ...RequestOptionFunc) (*Response, error)
	// GetRepositoryStorage Get the path to repository storage.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/projects/#get-the-path-to-repository-storage
	GetRepositoryStorage(pid any, options ...RequestOptionFunc) (*ProjectRepositoryStorage, *Response, error)
	// ListProjectStarrers gets users who starred a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_starring/#list-users-who-starred-a-project
	ListProjectStarrers(pid any, opts *ListProjectStarrersOptions, options ...RequestOptionFunc) ([]*ProjectStarrer, *Response, error)
	// ListProjectTargetBranchRules returns the target branch rules for a
	// project. projectFullPath must be the full namespace/project path
	// string, as the GitLab GraphQL project(fullPath:) field does not
	// accept numeric IDs.
	//
	// GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#projecttargetbranchruleconnection
	ListProjectTargetBranchRules(projectFullPath string, options ...RequestOptionFunc) ([]TargetBranchRule, *Response, error)
	// CreateTargetBranchRule creates a new target branch rule for a project.
	//
	// GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#mutationprojecttargetbranchrulecreate
	CreateTargetBranchRule(pid int64, opt *CreateTargetBranchRuleOptions, options ...RequestOptionFunc) (*TargetBranchRule, *Response, error)
	// DeleteTargetBranchRule deletes a target branch rule.
	//
	// GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#mutationprojecttargetbranchruledestroy
	DeleteTargetBranchRule(id int64, options ...RequestOptionFunc) (*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

type ProtectGroupEnvironmentOptions struct {
	Name                  *string                                 `url:"name,omitempty" json:"name,omitempty"`
	DeployAccessLevels    *[]*GroupEnvironmentAccessOptions       `url:"deploy_access_levels,omitempty" json:"deploy_access_levels,omitempty"`
	RequiredApprovalCount *int64                                  `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 ProtectGroupRepositoryBranchesOptions

type ProtectGroupRepositoryBranchesOptions 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             *[]*GroupBranchPermissionOptions `url:"allowed_to_push,omitempty" json:"allowed_to_push,omitempty"`
	AllowedToMerge            *[]*GroupBranchPermissionOptions `url:"allowed_to_merge,omitempty" json:"allowed_to_merge,omitempty"`
	AllowedToUnprotect        *[]*GroupBranchPermissionOptions `url:"allowed_to_unprotect,omitempty" json:"allowed_to_unprotect,omitempty"`
	CodeOwnerApprovalRequired *bool                            `url:"code_owner_approval_required,omitempty" json:"code_owner_approval_required,omitempty"`
}

ProtectGroupRepositoryBranchesOptions represents the available ProtectRepositoryBranches() options.

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

type ProtectRepositoryBranchesOptions

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

type ProtectRepositoryEnvironmentsOptions struct {
	Name                  *string                            `url:"name,omitempty" json:"name,omitempty"`
	DeployAccessLevels    *[]*EnvironmentAccessOptions       `url:"deploy_access_levels,omitempty" json:"deploy_access_levels,omitempty"`
	RequiredApprovalCount *int64                             `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

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

type ProtectedBranch struct {
	ID                        int64                      `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

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

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

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

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

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

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

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

type ProtectedEnvironment struct {
	Name                  string                          `json:"name"`
	DeployAccessLevels    []*EnvironmentAccessDescription `json:"deploy_access_levels"`
	RequiredApprovalCount int64                           `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

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

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

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

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

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

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

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 ProtectedPackagesService

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

ProtectedPackagesService handles communication with the protected packages related methods of the GitLab API.

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

func (*ProtectedPackagesService) CreatePackageProtectionRules

func (s *ProtectedPackagesService) CreatePackageProtectionRules(pid any, opt *CreatePackageProtectionRulesOptions, options ...RequestOptionFunc) (*PackageProtectionRule, *Response, error)

func (*ProtectedPackagesService) DeletePackageProtectionRules

func (s *ProtectedPackagesService) DeletePackageProtectionRules(pid any, packageProtectionRule int64, options ...RequestOptionFunc) (*Response, error)

func (*ProtectedPackagesService) ListPackageProtectionRules

func (s *ProtectedPackagesService) ListPackageProtectionRules(pid any, opts *ListPackageProtectionRulesOptions, options ...RequestOptionFunc) ([]*PackageProtectionRule, *Response, error)

func (*ProtectedPackagesService) UpdatePackageProtectionRules

func (s *ProtectedPackagesService) UpdatePackageProtectionRules(pid any, packageProtectionRule int64, opt *UpdatePackageProtectionRulesOptions, options ...RequestOptionFunc) (*PackageProtectionRule, *Response, error)

type ProtectedPackagesServiceInterface

type ProtectedPackagesServiceInterface interface {
	// ListPackageProtectionRules gets a list of project package protection rules.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_packages_protection_rules/#list-package-protection-rules
	ListPackageProtectionRules(pid any, opt *ListPackageProtectionRulesOptions, options ...RequestOptionFunc) ([]*PackageProtectionRule, *Response, error)
	// CreatePackageProtectionRules creates a new package protection rules.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_packages_protection_rules/#create-a-package-protection-rule
	CreatePackageProtectionRules(pid any, opt *CreatePackageProtectionRulesOptions, options ...RequestOptionFunc) (*PackageProtectionRule, *Response, error)
	// UpdatePackageProtectionRules updates an existing package protection rule.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_packages_protection_rules/#update-a-package-protection-rule
	UpdatePackageProtectionRules(pid any, packageProtectionRule int64, opt *UpdatePackageProtectionRulesOptions, options ...RequestOptionFunc) (*PackageProtectionRule, *Response, error)
	// DeletePackageProtectionRules deletes an existing package protection rules.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/project_packages_protection_rules/#delete-a-package-protection-rule
	DeletePackageProtectionRules(pid any, packageProtectionRule int64, options ...RequestOptionFunc) (*Response, error)
}

type ProtectedTag

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

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

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

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

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

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

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

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

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

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"`
	RefProtected      bool               `json:"ref_protected"`
	CheckoutSHA       string             `json:"checkout_sha"`
	UserID            int64              `json:"user_id"`
	UserName          string             `json:"user_name"`
	UserUsername      string             `json:"user_username"`
	UserEmail         string             `json:"user_email"`
	UserAvatar        string             `json:"user_avatar"`
	ProjectID         int64              `json:"project_id"`
	Project           PushEventProject   `json:"project"`
	Repository        *Repository        `json:"repository"`
	Commits           []*PushEventCommit `json:"commits"`
	TotalCommitsCount int64              `json:"total_commits_count"`
}

PushEvent represents a push event.

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

type PushEventCommit

type PushEventCommit struct {
	ID        string            `json:"id"`
	Message   string            `json:"message"`
	Title     string            `json:"title"`
	Timestamp *time.Time        `json:"timestamp"`
	URL       string            `json:"url"`
	Author    EventCommitAuthor `json:"author"`
	Added     []string          `json:"added"`
	Modified  []string          `json:"modified"`
	Removed   []string          `json:"removed"`
}

type PushEventProject

type PushEventProject struct {
	ID                int64           `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"`
}

type PushSystemEvent

type PushSystemEvent struct {
	BaseSystemEvent
	Before            string                  `json:"before"`
	After             string                  `json:"after"`
	Ref               string                  `json:"ref"`
	CheckoutSHA       string                  `json:"checkout_sha"`
	UserID            int64                   `json:"user_id"`
	UserName          string                  `json:"user_name"`
	UserUsername      string                  `json:"user_username"`
	UserEmail         string                  `json:"user_email"`
	UserAvatar        string                  `json:"user_avatar"`
	ProjectID         int64                   `json:"project_id"`
	Project           PushSystemEventProject  `json:"project"`
	Commits           []PushSystemEventCommit `json:"commits"`
	TotalCommitsCount int64                   `json:"total_commits_count"`
}

PushSystemEvent represents a push system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#push-events

type PushSystemEventCommit

type PushSystemEventCommit struct {
	ID        string                      `json:"id"`
	Message   string                      `json:"message"`
	Timestamp time.Time                   `json:"timestamp"`
	URL       string                      `json:"url"`
	Author    PushSystemEventCommitAuthor `json:"author"`
}

PushSystemEventCommit represents a push system event's commit.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#push-events

type PushSystemEventCommitAuthor

type PushSystemEventCommitAuthor struct {
	Name  string `json:"name"`
	Email string `json:"email"`
}

PushSystemEventCommitAuthor represents a push system event's commit author.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#push-events

type PushSystemEventProject

type PushSystemEventProject 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   int64  `json:"visibility_level"`
	PathWithNamespace string `json:"path_with_namespace"`
	DefaultBranch     string `json:"default_branch"`
	Homepage          string `json:"homepage"`
	URL               string `json:"url"`
}

PushSystemEventProject represents a push system event's project.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#push-events

type QueueMetrics

type QueueMetrics struct {
	Queues map[string]QueueMetricsQueue `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 QueueMetricsQueue

type QueueMetricsQueue struct {
	Backlog int64 `json:"backlog"`
	Latency int64 `json:"latency"`
}

QueueMetricsQueue represents the GitLab sidekiq queue metrics queue.

GitLab API docs: https://docs.gitlab.com/api/sidekiq_metrics/#get-the-current-queue-metrics

type RateLimiter

type RateLimiter interface {
	Wait(context.Context) error
}

RateLimiter describes the interface that all (custom) rate limiters must implement.

type RebaseMergeRequestOptions

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

type RecentFailures struct {
	Count      int64  `json:"count"`
	BaseBranch string `json:"base_branch"`
}

RecentFailures contains failures count for the project's default branch.

type RedmineService

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

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

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

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

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  *int64                        `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

type RegistryRepository struct {
	ID                     int64                    `json:"id"`
	Name                   string                   `json:"name"`
	Path                   string                   `json:"path"`
	ProjectID              int64                    `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              int64                    `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

func (s RegistryRepository) String() string

type RegistryRepositoryTag

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     int64      `json:"total_size"`
}

RegistryRepositoryTag represents a GitLab registry image tag.

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

func (RegistryRepositoryTag) String

func (s RegistryRepositoryTag) String() string

type Release

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          BasicUser           `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          ReleaseAssets       `json:"assets"`
	Evidences       []*ReleaseEvidence  `json:"evidences"`
	Links           ReleaseLinks        `json:"_links"`
}

Release represents a project release.

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

type ReleaseAssetLinkOptions

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 ReleaseAssets

type ReleaseAssets struct {
	Count            int64                 `json:"count"`
	Sources          []ReleaseAssetsSource `json:"sources"`
	Links            []*ReleaseLink        `json:"links"`
	EvidenceFilePath string                `json:"evidence_file_path"`
}

ReleaseAssets represents a project release assets.

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

type ReleaseAssetsOptions

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 ReleaseAssetsSource

type ReleaseAssetsSource struct {
	Format string `json:"format"`
	URL    string `json:"url"`
}

ReleaseAssetsSource represents a project release assets source.

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

type ReleaseEvent

type ReleaseEvent struct {
	ID          int64               `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     ReleaseEventProject `json:"project"`
	URL         string              `json:"url"`
	Action      string              `json:"action"`
	Assets      ReleaseEventAssets  `json:"assets"`
	Commit      ReleaseEventCommit  `json:"commit"`
}

ReleaseEvent represents a release event

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

type ReleaseEventAssets

type ReleaseEventAssets struct {
	Count   int64                      `json:"count"`
	Links   []ReleaseEventAssetsLink   `json:"links"`
	Sources []ReleaseEventAssetsSource `json:"sources"`
}
type ReleaseEventAssetsLink struct {
	ID       int64  `json:"id"`
	External bool   `json:"external"`
	LinkType string `json:"link_type"`
	Name     string `json:"name"`
	URL      string `json:"url"`
}

type ReleaseEventAssetsSource

type ReleaseEventAssetsSource struct {
	Format string `json:"format"`
	URL    string `json:"url"`
}

type ReleaseEventCommit

type ReleaseEventCommit 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    EventCommitAuthor `json:"author"`
}

type ReleaseEventProject

type ReleaseEventProject struct {
	ID                int64   `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   int64   `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"`
}

type ReleaseEvidence

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             int64         `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 ReleaseLinks 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"`
}

ReleaseLinks represents a project release links.

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

type ReleaseLinksService

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 int64, 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 int64, 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 int64, 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

type ReleaseLinksServiceInterface interface {
	ListReleaseLinks(pid any, tagName string, opt *ListReleaseLinksOptions, options ...RequestOptionFunc) ([]*ReleaseLink, *Response, error)
	GetReleaseLink(pid any, tagName string, link int64, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)
	CreateReleaseLink(pid any, tagName string, opt *CreateReleaseLinkOptions, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)
	UpdateReleaseLink(pid any, tagName string, link int64, opt *UpdateReleaseLinkOptions, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)
	DeleteReleaseLink(pid any, tagName string, link int64, options ...RequestOptionFunc) (*ReleaseLink, *Response, error)
}

type ReleaseMilestone

type ReleaseMilestone struct {
	ID          int64                       `json:"id"`
	IID         int64                       `json:"iid"`
	ProjectID   int64                       `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

type ReleaseMilestoneIssueStats struct {
	Total  int64 `json:"total"`
	Closed int64 `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

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

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

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

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

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

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

func (s *ReleasesService) ListReleases(pid any, opt *ListReleasesOptions, options ...RequestOptionFunc) ([]*Release, *Response, error)

ListReleases gets a paginated list of releases accessible by the authenticated user.

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

func (*ReleasesService) UpdateRelease

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

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

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

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

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

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

type ReorderIssueOptions struct {
	MoveAfterID  *int64 `url:"move_after_id,omitempty" json:"move_after_id,omitempty"`
	MoveBeforeID *int64 `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

func (s *RepositoriesService) AddChangelog(pid any, opt *AddChangelogOptions, options ...RequestOptionFunc) (*Response, error)

func (*RepositoriesService) Archive

func (s *RepositoriesService) Archive(pid any, opt *ArchiveOptions, options ...RequestOptionFunc) ([]byte, *Response, error)

func (*RepositoriesService) Blob

func (s *RepositoriesService) Blob(pid any, sha string, options ...RequestOptionFunc) ([]byte, *Response, error)

func (*RepositoriesService) Compare

func (s *RepositoriesService) Compare(pid any, opt *CompareOptions, options ...RequestOptionFunc) (*Compare, *Response, error)

func (*RepositoriesService) Contributors

func (s *RepositoriesService) Contributors(pid any, opt *ListContributorsOptions, options ...RequestOptionFunc) ([]*Contributor, *Response, error)

func (*RepositoriesService) GenerateChangelogData

func (s *RepositoriesService) GenerateChangelogData(pid any, opt GenerateChangelogDataOptions, options ...RequestOptionFunc) (*ChangelogData, *Response, error)

func (*RepositoriesService) ListTree

func (s *RepositoriesService) ListTree(pid any, opt *ListTreeOptions, options ...RequestOptionFunc) ([]*TreeNode, *Response, error)

func (*RepositoriesService) MergeBase

func (s *RepositoriesService) MergeBase(pid any, opt *MergeBaseOptions, options ...RequestOptionFunc) (*Commit, *Response, error)

func (*RepositoriesService) RawBlobContent

func (s *RepositoriesService) RawBlobContent(pid any, sha string, options ...RequestOptionFunc) ([]byte, *Response, error)

func (*RepositoriesService) StreamArchive

func (s *RepositoriesService) StreamArchive(pid any, w io.Writer, opt *ArchiveOptions, options ...RequestOptionFunc) (*Response, error)

type RepositoriesServiceInterface

type RepositoriesServiceInterface interface {
	// ListTree gets a list of repository files and directories in a project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/repositories/#list-repository-tree
	ListTree(pid any, opt *ListTreeOptions, options ...RequestOptionFunc) ([]*TreeNode, *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
	Blob(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
	RawBlobContent(pid any, sha string, options ...RequestOptionFunc) ([]byte, *Response, error)
	// Archive gets an archive of the repository.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/repositories/#get-file-archive
	Archive(pid any, opt *ArchiveOptions, options ...RequestOptionFunc) ([]byte, *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
	StreamArchive(pid any, w io.Writer, opt *ArchiveOptions, options ...RequestOptionFunc) (*Response, error)
	// Compare compares branches, tags or commits.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/repositories/#compare-branches-tags-or-commits
	Compare(pid any, opt *CompareOptions, options ...RequestOptionFunc) (*Compare, *Response, error)
	// Contributors gets the repository contributors list.
	//
	// GitLab API docs: https://docs.gitlab.com/api/repositories/#contributors
	Contributors(pid any, opt *ListContributorsOptions, options ...RequestOptionFunc) ([]*Contributor, *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
	MergeBase(pid any, opt *MergeBaseOptions, options ...RequestOptionFunc) (*Commit, *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
	AddChangelog(pid any, opt *AddChangelogOptions, options ...RequestOptionFunc) (*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
	GenerateChangelogData(pid any, opt GenerateChangelogDataOptions, options ...RequestOptionFunc) (*ChangelogData, *Response, error)
}

type Repository

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

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

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

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

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

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

type RepositoryGroup struct {
	ID     int64  `json:"id"`
	Name   string `json:"name"`
	WebURL string `json:"web_url"`
}

type RepositoryProject

type RepositoryProject struct {
	ID                int64      `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

type RepositorySnippet struct {
	ID            int64           `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     int64           `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

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

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

type RepositorySubmodulesServiceInterface interface {
	UpdateSubmodule(pid any, submodule string, opt *UpdateSubmoduleOptions, options ...RequestOptionFunc) (*SubmoduleCommit, *Response, error)
}

type RepositoryUpdateSystemEvent

type RepositoryUpdateSystemEvent struct {
	BaseSystemEvent
	UserID     int64                               `json:"user_id"`
	UserName   string                              `json:"user_name"`
	UserEmail  string                              `json:"user_email"`
	UserAvatar string                              `json:"user_avatar"`
	ProjectID  int64                               `json:"project_id"`
	Project    RepositoryUpdateSystemEventProject  `json:"project"`
	Changes    []RepositoryUpdateSystemEventChange `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 RepositoryUpdateSystemEventChange

type RepositoryUpdateSystemEventChange struct {
	Before string `json:"before"`
	After  string `json:"after"`
	Ref    string `json:"ref"`
}

RepositoryUpdateSystemEventChange represents a repository updated system event's change.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#repository-update-events

type RepositoryUpdateSystemEventProject

type RepositoryUpdateSystemEventProject struct {
	ID                int64  `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   int64  `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"`
}

RepositoryUpdateSystemEventProject represents a repository updated system event's project.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#repository-update-events

type RequestLevelAuthStrategy added in v2.13.0

type RequestLevelAuthStrategy struct {
	DefaultAuthStrategy AuthTokenStrategy
}

RequestLevelAuthStrategy defines an authentication strategy where tokens that are provided using functions such as `WithToken` will override any tokens provided in the client constructor. The "DefaultAuthStrategy" parameter can be used to define what token should be used if no token is provided on a given request. It will default to `AllHeadersAuthStrategy`

func (RequestLevelAuthStrategy) ApplyAuthHeader added in v2.13.0

func (a RequestLevelAuthStrategy) ApplyAuthHeader(authSource AuthSource, req *retryablehttp.Request) error

type RequestOptionFunc

type RequestOptionFunc func(*retryablehttp.Request) error

RequestOptionFunc can be passed to all API requests to customize the API request.

func WithContext

func WithContext(ctx context.Context) RequestOptionFunc

WithContext runs the request with the provided context

func WithHeader

func WithHeader(name, value string) RequestOptionFunc

WithHeader takes a header name and value and appends it to the request headers.

func WithHeaders

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

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 WithNext

func WithNext(resp *Response) (RequestOptionFunc, bool)

WithNext returns a RequestOptionFunc that configures the next page of a paginated request based on pagination metadata from a previous response. It automatically detects and handles all three pagination styles used by GitLab's APIs:

  • GraphQL cursor pagination: Uses PageInfo.EndCursor with the "after" variable
  • REST keyset pagination: Extracts parameters from the "next" link header
  • REST offset pagination: Uses the NextPage number with "page" parameter

If multiple pagination styles are present in the response, keyset/cursor pagination is preferred over offset pagination for better performance and consistency.

The boolean return value indicates whether more pages are available, similar to the comma-ok idiom used for map accesses. When false, the returned RequestOptionFunc is nil.

Example
ctx := context.Background()

client, err := NewClient("yourtokengoeshere")
if err != nil {
	log.Fatal(err)
}

var (
	projectName = "example/example"
	opts        = ListProjectMergeRequestsOptions{
		AuthorUsername: Ptr("me"),
	}
	page RequestOptionFunc
)

for {
	mrs, resp, err := client.MergeRequests.ListProjectMergeRequests(projectName, &opts, WithContext(ctx), page)
	if err != nil {
		log.Fatal(err)
	}

	// Process mrs...
	_ = mrs

	next, ok := WithNext(resp)
	if !ok {
		// No more pages, break the loop
		break
	}

	page = next
}

func WithOffsetPaginationParameters

func WithOffsetPaginationParameters(page int64) 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

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

func WithSudo(uid any) RequestOptionFunc

WithSudo takes either a username or user ID and sets the Sudo request header.

func WithToken

func WithToken(authType AuthType, token string) RequestOptionFunc

WithToken takes a token which is then used when making this one request.

type ResolveMergeRequestDiscussionOptions

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

type ResourceGroup struct {
	ID          int64      `json:"id"`
	Key         string     `json:"key"`
	ProcessMode string     `json:"process_mode"`
	CreatedAt   *time.Time `json:"created_at"`
	UpdatedAt   *time.Time `json:"updated_at"`
}

ResourceGroup represents a GitLab Project Resource Group.

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

func (ResourceGroup) String

func (rg ResourceGroup) String() string

String gets a string representation of a ResourceGroup

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

type ResourceGroupProcessMode

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"
	NewestReadyFirst ResourceGroupProcessMode = "newest_ready_first"
)

List of available resource group process modes.

GitLab API docs: https://docs.gitlab.com/ci/resource_groups/#process-modes

type ResourceGroupService

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

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

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

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

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

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

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

func (s *ResourceIterationEventsService) GetIssueIterationEvent(pid any, issue int64, event int64, 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

func (s *ResourceIterationEventsService) ListIssueIterationEvents(pid any, issue int64, 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

type ResourceIterationEventsServiceInterface interface {
	ListIssueIterationEvents(pid any, issue int64, opt *ListIterationEventsOptions, options ...RequestOptionFunc) ([]*IterationEvent, *Response, error)
	GetIssueIterationEvent(pid any, issue int64, event int64, options ...RequestOptionFunc) (*IterationEvent, *Response, error)
}

type ResourceLabelEventsService

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

func (s *ResourceLabelEventsService) GetGroupEpicLabelEvent(gid any, epic int64, event int64, 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

func (s *ResourceLabelEventsService) GetIssueLabelEvent(pid any, issue int64, event int64, 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

func (s *ResourceLabelEventsService) GetMergeRequestLabelEvent(pid any, request int64, event int64, 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

func (s *ResourceLabelEventsService) ListGroupEpicLabelEvents(gid any, epic int64, 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

func (s *ResourceLabelEventsService) ListIssueLabelEvents(pid any, issue int64, 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

func (s *ResourceLabelEventsService) ListMergeRequestsLabelEvents(pid any, request int64, 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

type ResourceLabelEventsServiceInterface interface {
	ListIssueLabelEvents(pid any, issue int64, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error)
	GetIssueLabelEvent(pid any, issue int64, event int64, options ...RequestOptionFunc) (*LabelEvent, *Response, error)
	ListMergeRequestsLabelEvents(pid any, request int64, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error)
	GetMergeRequestLabelEvent(pid any, request int64, event int64, options ...RequestOptionFunc) (*LabelEvent, *Response, error)

	// Will be removed in v5, use Work Items API instead
	ListGroupEpicLabelEvents(gid any, epic int64, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error)
	// Will be removed in v5, use Work Items API instead
	GetGroupEpicLabelEvent(gid any, epic int64, event int64, options ...RequestOptionFunc) (*LabelEvent, *Response, error)
}

type ResourceMilestoneEventsService

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

func (s *ResourceMilestoneEventsService) GetIssueMilestoneEvent(pid any, issue int64, event int64, 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

func (s *ResourceMilestoneEventsService) GetMergeRequestMilestoneEvent(pid any, request int64, event int64, 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

func (s *ResourceMilestoneEventsService) ListIssueMilestoneEvents(pid any, issue int64, 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

func (s *ResourceMilestoneEventsService) ListMergeMilestoneEvents(pid any, request int64, 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

type ResourceMilestoneEventsServiceInterface interface {
	ListIssueMilestoneEvents(pid any, issue int64, opt *ListMilestoneEventsOptions, options ...RequestOptionFunc) ([]*MilestoneEvent, *Response, error)
	GetIssueMilestoneEvent(pid any, issue int64, event int64, options ...RequestOptionFunc) (*MilestoneEvent, *Response, error)
	ListMergeMilestoneEvents(pid any, request int64, opt *ListMilestoneEventsOptions, options ...RequestOptionFunc) ([]*MilestoneEvent, *Response, error)
	GetMergeRequestMilestoneEvent(pid any, request int64, event int64, options ...RequestOptionFunc) (*MilestoneEvent, *Response, error)
}

type ResourceStateEventsService

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

func (s *ResourceStateEventsService) GetIssueStateEvent(pid any, issue int64, event int64, 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

func (s *ResourceStateEventsService) GetMergeRequestStateEvent(pid any, request int64, event int64, 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

func (s *ResourceStateEventsService) ListIssueStateEvents(pid any, issue int64, 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

func (s *ResourceStateEventsService) ListMergeStateEvents(pid any, request int64, 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

type ResourceStateEventsServiceInterface interface {
	ListIssueStateEvents(pid any, issue int64, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error)
	GetIssueStateEvent(pid any, issue int64, event int64, options ...RequestOptionFunc) (*StateEvent, *Response, error)
	ListMergeStateEvents(pid any, request int64, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error)
	GetMergeRequestStateEvent(pid any, request int64, event int64, options ...RequestOptionFunc) (*StateEvent, *Response, error)
}

type ResourceType

type ResourceType string

ResourceType represents the type of resource (project or group)

const (
	ProjectResource ResourceType = "projects"
	GroupResource   ResourceType = "groups"
)

type ResourceWeightEventsService

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

func (s *ResourceWeightEventsService) ListIssueWeightEvents(pid any, issue int64, 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

type ResourceWeightEventsServiceInterface interface {
	ListIssueWeightEvents(pid any, issue int64, opt *ListWeightEventsOptions, options ...RequestOptionFunc) ([]*WeightEvent, *Response, error)
}

type Response

type Response struct {
	*http.Response

	// Fields used for offset-based pagination.
	TotalItems   int64
	TotalPages   int64
	ItemsPerPage int64
	CurrentPage  int64
	NextPage     int64
	PreviousPage int64

	// Fields used for keyset-based pagination.
	PreviousLink string
	NextLink     string
	FirstLink    string
	LastLink     string

	// GraphQL pagination.
	PageInfo *PageInfo
}

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

type RetrieveAllGroupStorageMovesOptions struct {
	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

type RetrieveAllProjectStorageMovesOptions struct {
	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

type RetrieveAllSnippetStorageMovesOptions struct {
	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 RetryFailedExternalStatusCheckForProjectMergeRequestOptions

type RetryFailedExternalStatusCheckForProjectMergeRequestOptions struct{}

RetryFailedExternalStatusCheckForProjectMergeRequestOptions represents the available RetryFailedExternalStatusCheckForProjectMergeRequest() options.

GitLab API docs: https://docs.gitlab.com/api/status_checks/#retry-failed-status-check-for-a-merge-request

type RevertCommitOptions

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

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

ReviewerIDValue represents a reviewer ID value within GitLab.

func ReviewerID

func ReviewerID(v any) *ReviewerIDValue

ReviewerID is a helper routine that creates a new ReviewerIDValue.

func (*ReviewerIDValue) EncodeValues

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

EncodeValues implements the query.Encoder interface.

func (ReviewerIDValue) MarshalJSON

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

MarshalJSON implements the json.Marshaler interface.

func (*ReviewerIDValue) UnmarshalJSON

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

UnmarshalJSON implements the json.Unmarshaler interface.

type RotateGroupAccessTokenOptions

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

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

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

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/service_accounts/#rotate-a-personal-access-token-for-a-group-service-account

type RunPipelineTriggerOptions

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"`

	// Inputs contains pipeline input parameters.
	// See PipelineInputsOption for supported types and usage.
	Inputs PipelineInputsOption `url:"inputs,omitempty" json:"inputs,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

type Runner struct {
	ID             int64      `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

type RunnerAuthenticationToken struct {
	Token          *string    `url:"token" json:"token"`
	TokenExpiresAt *time.Time `url:"token_expires_at" json:"token_expires_at"`
}

type RunnerController

type RunnerController struct {
	ID          int64                      `json:"id"`
	Description string                     `json:"description"`
	State       RunnerControllerStateValue `json:"state"`
	CreatedAt   *time.Time                 `json:"created_at"`
	UpdatedAt   *time.Time                 `json:"updated_at"`
}

RunnerController represents a GitLab runner controller.

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

type RunnerControllerDetails added in v2.4.0

type RunnerControllerDetails struct {
	RunnerController
	Connected bool `json:"connected"`
}

RunnerControllerDetails represents a GitLab runner controller with additional detail fields only available when fetching a single runner controller.

GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#retrieve-a-single-runner-controller

type RunnerControllerInstanceLevelScoping

type RunnerControllerInstanceLevelScoping struct {
	CreatedAt *time.Time `json:"created_at"`
	UpdatedAt *time.Time `json:"updated_at"`
}

RunnerControllerInstanceLevelScoping represents an instance-level scoping for a GitLab runner controller.

GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#runner-controller-scopes

type RunnerControllerRunnerLevelScoping

type RunnerControllerRunnerLevelScoping struct {
	RunnerID  int64      `json:"runner_id"`
	CreatedAt *time.Time `json:"created_at"`
	UpdatedAt *time.Time `json:"updated_at"`
}

RunnerControllerRunnerLevelScoping represents a runner-level scoping for a GitLab runner controller.

GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#runner-controller-scopes

type RunnerControllerScopes

type RunnerControllerScopes struct {
	InstanceLevelScopings []*RunnerControllerInstanceLevelScoping `json:"instance_level_scopings"`
	RunnerLevelScopings   []*RunnerControllerRunnerLevelScoping   `json:"runner_level_scopings"`
}

RunnerControllerScopes represents all scopes configured for a GitLab runner controller.

GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#runner-controller-scopes

type RunnerControllerScopesService

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

RunnerControllerScopesService handles communication with the runner controller scopes related methods of the GitLab API. This is an admin-only endpoint.

Note: This API is experimental and may change or be removed in future versions.

GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#runner-controller-scopes

func (*RunnerControllerScopesService) AddRunnerControllerInstanceScope

func (s *RunnerControllerScopesService) AddRunnerControllerInstanceScope(rid int64, options ...RequestOptionFunc) (*RunnerControllerInstanceLevelScoping, *Response, error)

func (*RunnerControllerScopesService) AddRunnerControllerRunnerScope

func (s *RunnerControllerScopesService) AddRunnerControllerRunnerScope(rid, runnerID int64, options ...RequestOptionFunc) (*RunnerControllerRunnerLevelScoping, *Response, error)

func (*RunnerControllerScopesService) ListRunnerControllerScopes

func (s *RunnerControllerScopesService) ListRunnerControllerScopes(rid int64, options ...RequestOptionFunc) (*RunnerControllerScopes, *Response, error)

func (*RunnerControllerScopesService) RemoveRunnerControllerInstanceScope

func (s *RunnerControllerScopesService) RemoveRunnerControllerInstanceScope(rid int64, options ...RequestOptionFunc) (*Response, error)

func (*RunnerControllerScopesService) RemoveRunnerControllerRunnerScope

func (s *RunnerControllerScopesService) RemoveRunnerControllerRunnerScope(rid, runnerID int64, options ...RequestOptionFunc) (*Response, error)

type RunnerControllerScopesServiceInterface

type RunnerControllerScopesServiceInterface interface {
	// ListRunnerControllerScopes lists all scopes for a specific runner
	// controller. This is an admin-only endpoint.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runner_controllers/#list-all-scopes-for-a-runner-controller
	ListRunnerControllerScopes(rid int64, options ...RequestOptionFunc) (*RunnerControllerScopes, *Response, error)
	// AddRunnerControllerInstanceScope adds an instance-level scope to a
	// runner controller. This is an admin-only endpoint.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runner_controllers/#add-instance-level-scope
	AddRunnerControllerInstanceScope(rid int64, options ...RequestOptionFunc) (*RunnerControllerInstanceLevelScoping, *Response, error)
	// RemoveRunnerControllerInstanceScope removes an instance-level scope
	// from a runner controller. This is an admin-only endpoint.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runner_controllers/#remove-instance-level-scope
	RemoveRunnerControllerInstanceScope(rid int64, options ...RequestOptionFunc) (*Response, error)
	// AddRunnerControllerRunnerScope adds a runner scope to a runner
	// controller. This is an admin-only endpoint. The runner must be an
	// instance-level runner.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runner_controllers/#add-runner-scope
	AddRunnerControllerRunnerScope(rid, runnerID int64, options ...RequestOptionFunc) (*RunnerControllerRunnerLevelScoping, *Response, error)
	// RemoveRunnerControllerRunnerScope removes a runner scope from a runner
	// controller. This is an admin-only endpoint.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runner_controllers/#remove-runner-scope
	RemoveRunnerControllerRunnerScope(rid, runnerID int64, options ...RequestOptionFunc) (*Response, error)
}

RunnerControllerScopesServiceInterface handles communication with the runner controller scopes related methods of the GitLab API. This is an admin-only endpoint.

Note: This API is experimental and may change or be removed in future versions.

GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#runner-controller-scopes

type RunnerControllerStateValue

type RunnerControllerStateValue string

RunnerControllerStateValue represents the state of a runner controller.

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

const (
	RunnerControllerStateDisabled RunnerControllerStateValue = "disabled"
	RunnerControllerStateEnabled  RunnerControllerStateValue = "enabled"
	RunnerControllerStateDryRun   RunnerControllerStateValue = "dry_run"
)

These constants represent all valid runner controller states.

type RunnerControllerToken

type RunnerControllerToken struct {
	ID                 int64      `json:"id"`
	RunnerControllerID int64      `json:"runner_controller_id"`
	Description        string     `json:"description"`
	LastUsedAt         *time.Time `json:"last_used_at"`
	Token              string     `json:"token,omitempty"`
	CreatedAt          *time.Time `json:"created_at"`
	UpdatedAt          *time.Time `json:"updated_at"`
}

RunnerControllerToken represents a GitLab runner controller token.

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

type RunnerControllerTokensService

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

RunnerControllerTokensService handles communication with the runner controller token related methods of the GitLab API. This is an admin-only endpoint.

Note: This API is experimental and may change or be removed in future versions.

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

func (*RunnerControllerTokensService) CreateRunnerControllerToken

func (*RunnerControllerTokensService) GetRunnerControllerToken

func (s *RunnerControllerTokensService) GetRunnerControllerToken(rid int64, tokenID int64, options ...RequestOptionFunc) (*RunnerControllerToken, *Response, error)

func (*RunnerControllerTokensService) ListRunnerControllerTokens

func (*RunnerControllerTokensService) RevokeRunnerControllerToken

func (s *RunnerControllerTokensService) RevokeRunnerControllerToken(rid int64, tokenID int64, options ...RequestOptionFunc) (*Response, error)

func (*RunnerControllerTokensService) RotateRunnerControllerToken

func (s *RunnerControllerTokensService) RotateRunnerControllerToken(rid int64, tokenID int64, options ...RequestOptionFunc) (*RunnerControllerToken, *Response, error)

type RunnerControllerTokensServiceInterface

type RunnerControllerTokensServiceInterface interface {
	// ListRunnerControllerTokens lists all runner controller tokens. This is an
	// admin-only endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controller_tokens/#list-all-runner-controller-tokens
	ListRunnerControllerTokens(rid int64, opt *ListRunnerControllerTokensOptions, options ...RequestOptionFunc) ([]*RunnerControllerToken, *Response, error)
	// GetRunnerControllerToken retrieves a single runner controller token. This
	// is an admin-only endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controller_tokens/#retrieve-a-single-runner-controller-token
	GetRunnerControllerToken(rid int64, tokenID int64, options ...RequestOptionFunc) (*RunnerControllerToken, *Response, error)
	// CreateRunnerControllerToken creates a new runner controller token. This is
	// an admin-only endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controller_tokens/#create-a-runner-controller-token
	CreateRunnerControllerToken(rid int64, opt *CreateRunnerControllerTokenOptions, options ...RequestOptionFunc) (*RunnerControllerToken, *Response, error)
	// RotateRunnerControllerToken rotates an existing runner controller token.
	// This is an admin-only endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controller_tokens/#rotate-a-runner-controller-token
	RotateRunnerControllerToken(rid int64, tokenID int64, options ...RequestOptionFunc) (*RunnerControllerToken, *Response, error)
	// RevokeRunnerControllerToken revokes a runner controller token. This is an
	// admin-only endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controller_tokens/#revoke-a-runner-controller-token
	RevokeRunnerControllerToken(rid int64, tokenID int64, options ...RequestOptionFunc) (*Response, error)
}

RunnerControllerTokensServiceInterface handles communication with the runner controller token related methods of the GitLab API. This is an admin-only endpoint.

Note: This API is experimental and may change or be removed in future versions.

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

type RunnerControllersService

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

RunnerControllersService handles communication with the runner controller related methods of the GitLab API. This is an admin-only endpoint.

Note: This API is experimental and may change or be removed in future versions.

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

func (*RunnerControllersService) CreateRunnerController

func (*RunnerControllersService) DeleteRunnerController

func (s *RunnerControllersService) DeleteRunnerController(rid int64, options ...RequestOptionFunc) (*Response, error)

func (*RunnerControllersService) GetRunnerController

func (s *RunnerControllersService) GetRunnerController(rid int64, options ...RequestOptionFunc) (*RunnerControllerDetails, *Response, error)

func (*RunnerControllersService) ListRunnerControllers

func (*RunnerControllersService) UpdateRunnerController

func (s *RunnerControllersService) UpdateRunnerController(rid int64, opt *UpdateRunnerControllerOptions, options ...RequestOptionFunc) (*RunnerController, *Response, error)

type RunnerControllersServiceInterface

type RunnerControllersServiceInterface interface {
	// ListRunnerControllers gets a list of runner controllers. This is an
	// admin-only endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#list-all-runner-controllers
	ListRunnerControllers(opt *ListRunnerControllersOptions, options ...RequestOptionFunc) ([]*RunnerController, *Response, error)
	// GetRunnerController retrieves a single runner controller. This is an
	// admin-only endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#retrieve-a-single-runner-controller
	GetRunnerController(rid int64, options ...RequestOptionFunc) (*RunnerControllerDetails, *Response, error)
	// CreateRunnerController registers a new runner controller. This is an
	// admin-only endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#register-a-runner-controller
	CreateRunnerController(opt *CreateRunnerControllerOptions, options ...RequestOptionFunc) (*RunnerController, *Response, error)
	// UpdateRunnerController updates a runner controller. This is an admin-only
	// endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#update-a-runner-controller
	UpdateRunnerController(rid int64, opt *UpdateRunnerControllerOptions, options ...RequestOptionFunc) (*RunnerController, *Response, error)
	// DeleteRunnerController deletes a runner controller. This is an admin-only
	// endpoint.
	//
	// GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#delete-a-runner-controller
	DeleteRunnerController(rid int64, options ...RequestOptionFunc) (*Response, error)
}

RunnerControllersServiceInterface handles communication with the runner controller related methods of the GitLab API. This is an admin-only endpoint.

Note: This API is experimental and may change or be removed in future versions.

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

type RunnerDetails

type RunnerDetails struct {
	Paused          bool                   `json:"paused"`
	Description     string                 `json:"description"`
	ID              int64                  `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        []RunnerDetailsProject `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  int64                  `json:"maximum_timeout"`
	Groups          []RunnerDetailsGroup   `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 RunnerDetailsGroup

type RunnerDetailsGroup struct {
	ID     int64  `json:"id"`
	Name   string `json:"name"`
	WebURL string `json:"web_url"`
}

RunnerDetailsGroup represents the GitLab CI runner details group.

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

type RunnerDetailsProject

type RunnerDetailsProject struct {
	ID                int64  `json:"id"`
	Name              string `json:"name"`
	NameWithNamespace string `json:"name_with_namespace"`
	Path              string `json:"path"`
	PathWithNamespace string `json:"path_with_namespace"`
}

RunnerDetailsProject represents the GitLab CI runner details project.

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

type RunnerID

type RunnerID struct {
	Value any
}

type RunnerManager added in v2.3.0

type RunnerManager struct {
	ID           int64      `json:"id"`
	SystemID     string     `json:"system_id"`
	Version      string     `json:"version"`
	Revision     string     `json:"revision"`
	Platform     string     `json:"platform"`
	Architecture string     `json:"architecture"`
	CreatedAt    *time.Time `json:"created_at"`
	ContactedAt  *time.Time `json:"contacted_at"`
	IPAddress    string     `json:"ip_address"`
	Status       string     `json:"status"`
}

RunnerManager represents a GitLab CI runner manager.

GitLab API docs: https://docs.gitlab.com/api/runners/#list-all-runners-managers

type RunnerRegistrationToken

type RunnerRegistrationToken struct {
	Token          *string    `url:"token" json:"token"`
	TokenExpiresAt *time.Time `url:"token_expires_at" json:"token_expires_at"`
}

type RunnersService

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

func (s *RunnersService) DeleteRegisteredRunner(opt *DeleteRegisteredRunnerOptions, options ...RequestOptionFunc) (*Response, error)

func (*RunnersService) DeleteRegisteredRunnerByID

func (s *RunnersService) DeleteRegisteredRunnerByID(rid int64, options ...RequestOptionFunc) (*Response, error)

func (*RunnersService) DisableProjectRunner

func (s *RunnersService) DisableProjectRunner(pid any, runner int64, options ...RequestOptionFunc) (*Response, error)

func (*RunnersService) EnableProjectRunner

func (s *RunnersService) EnableProjectRunner(pid any, opt *EnableProjectRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error)

func (*RunnersService) GetRunnerDetails

func (s *RunnersService) GetRunnerDetails(rid any, options ...RequestOptionFunc) (*RunnerDetails, *Response, error)

func (*RunnersService) ListAllRunners

func (s *RunnersService) ListAllRunners(opt *ListRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)

func (*RunnersService) ListGroupsRunners

func (s *RunnersService) ListGroupsRunners(gid any, opt *ListGroupsRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)

func (*RunnersService) ListProjectRunners

func (s *RunnersService) ListProjectRunners(pid any, opt *ListProjectRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)

func (*RunnersService) ListRunnerJobs

func (s *RunnersService) ListRunnerJobs(rid any, opt *ListRunnerJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)

func (*RunnersService) ListRunnerManagers added in v2.3.0

func (s *RunnersService) ListRunnerManagers(rid any, options ...RequestOptionFunc) ([]*RunnerManager, *Response, error)

func (*RunnersService) ListRunners

func (s *RunnersService) ListRunners(opt *ListRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)

func (*RunnersService) RegisterNewRunner

func (s *RunnersService) RegisterNewRunner(opt *RegisterNewRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error)

func (*RunnersService) RemoveRunner

func (s *RunnersService) RemoveRunner(rid any, options ...RequestOptionFunc) (*Response, error)

func (*RunnersService) ResetGroupRunnerRegistrationToken

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

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

func (s *RunnersService) ResetProjectRunnerRegistrationToken(pid any, options ...RequestOptionFunc) (*RunnerRegistrationToken, *Response, error)

ResetProjectRunnerRegistrationToken resets a project'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

func (s *RunnersService) ResetRunnerAuthenticationToken(rid int64, options ...RequestOptionFunc) (*RunnerAuthenticationToken, *Response, error)

func (*RunnersService) UpdateRunnerDetails

func (s *RunnersService) UpdateRunnerDetails(rid any, opt *UpdateRunnerDetailsOptions, options ...RequestOptionFunc) (*RunnerDetails, *Response, error)

func (*RunnersService) VerifyRegisteredRunner

func (s *RunnersService) VerifyRegisteredRunner(opt *VerifyRegisteredRunnerOptions, options ...RequestOptionFunc) (*Response, error)

type RunnersServiceInterface

type RunnersServiceInterface interface {
	// ListRunners gets a list of runners accessible by the authenticated user.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runners/#list-owned-runners
	ListRunners(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
	ListAllRunners(opt *ListRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error)
	// GetRunnerDetails returns details for given runner.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runners/#get-runners-details
	GetRunnerDetails(rid any, options ...RequestOptionFunc) (*RunnerDetails, *Response, error)
	// UpdateRunnerDetails updates details for a given runner.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runners/#update-runners-details
	UpdateRunnerDetails(rid any, opt *UpdateRunnerDetailsOptions, options ...RequestOptionFunc) (*RunnerDetails, *Response, error)
	// RemoveRunner removes a runner.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runners/#delete-a-runner
	RemoveRunner(rid any, options ...RequestOptionFunc) (*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
	ListRunnerJobs(rid any, opt *ListRunnerJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error)
	// ListRunnerManagers lists all the managers of a runner.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runners/#list-all-runners-managers
	ListRunnerManagers(rid any, options ...RequestOptionFunc) ([]*RunnerManager, *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
	ListProjectRunners(pid any, opt *ListProjectRunnersOptions, 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
	EnableProjectRunner(pid any, opt *EnableProjectRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error)
	// DisableProjectRunner disables a specific runner from project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runners/#unassign-a-runner-from-project
	DisableProjectRunner(pid any, runner int64, options ...RequestOptionFunc) (*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
	ListGroupsRunners(gid any, opt *ListGroupsRunnersOptions, 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
	RegisterNewRunner(opt *RegisterNewRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error)
	// DeleteRegisteredRunner deletes a Runner by Token.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runners/#delete-a-runner-by-authentication-token
	DeleteRegisteredRunner(opt *DeleteRegisteredRunnerOptions, options ...RequestOptionFunc) (*Response, error)
	// DeleteRegisteredRunnerByID deletes a runner by ID.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/runners/#delete-a-runner-by-id
	DeleteRegisteredRunnerByID(rid int64, 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
	VerifyRegisteredRunner(opt *VerifyRegisteredRunnerOptions, options ...RequestOptionFunc) (*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
	ResetRunnerAuthenticationToken(rid int64, 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 int64            `json:"member_role_id,omitempty"`
	Provider     string           `json:"provider,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        int64      `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

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

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

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

type ScheduleExportOptions struct {
	Description *string                     `url:"description,omitempty" json:"description,omitempty"`
	Upload      ScheduleExportUploadOptions `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 ScheduleExportUploadOptions

type ScheduleExportUploadOptions struct {
	URL        *string `url:"url,omitempty" json:"url,omitempty"`
	HTTPMethod *string `url:"http_method,omitempty" json:"http_method,omitempty"`
}

type ScheduleStorageMoveForGroupOptions

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

type SecureFile struct {
	ID                int64               `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

func (f SecureFile) String() string

String gets a string representation of a SecureFile.

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

type SecureFileIssuer

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

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

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

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

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

func (s SecureFilesService) DownloadSecureFile(pid any, id int64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)

DownloadSecureFile downloads the contents of a project's secure file.

The returned io.ReadCloser must be closed by the caller to avoid leaking the underlying response body.

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

func (SecureFilesService) ListProjectSecureFiles

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

func (s SecureFilesService) RemoveSecureFile(pid any, id int64, 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

func (s SecureFilesService) ShowSecureFileDetails(pid any, id int64, 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

type SecureFilesServiceInterface interface {
	ListProjectSecureFiles(pid any, opt *ListProjectSecureFilesOptions, options ...RequestOptionFunc) ([]*SecureFile, *Response, error)
	ShowSecureFileDetails(pid any, id int64, options ...RequestOptionFunc) (*SecureFile, *Response, error)
	CreateSecureFile(pid any, content io.Reader, opt *CreateSecureFileOptions, options ...RequestOptionFunc) (*SecureFile, *Response, error)
	// DownloadSecureFile downloads the contents of a project's secure file.
	//
	// The returned io.ReadCloser must be closed by the caller to avoid
	// leaking the underlying response body.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/secure_files/#download-secure-file
	DownloadSecureFile(pid any, id int64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)
	RemoveSecureFile(pid any, id int64, options ...RequestOptionFunc) (*Response, error)
}

type Service

type Service = Integration

Service represents a GitLab service.

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

type ServiceAccount

type ServiceAccount struct {
	ID       int64  `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

type ServicePingData struct {
	RecordedAt *time.Time        `json:"recorded_at"`
	License    map[string]string `json:"license"`
	Counts     map[string]int64  `json:"counts"`
}

ServicePingData represents a service ping data response.

type ServicePingNonSQLMetrics

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       int64             `json:"active_user_count"`
	Edition               string            `json:"edition"`
	LicenseMD5            string            `json:"license_md5"`
	LicenseSHA256         string            `json:"license_sha256"`
	LicenseID             string            `json:"license_id"`
	HistoricalMaxUsers    int64             `json:"historical_max_users"`
	Licensee              map[string]string `json:"licensee"`
	LicenseUserCount      int64             `json:"license_user_count"`
	LicenseStartsAt       string            `json:"license_starts_at"`
	LicenseExpiresAt      string            `json:"license_expires_at"`
	LicensePlan           string            `json:"license_plan"`
	LicenseAddOns         map[string]int64  `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

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    int64             `json:"historical_max_users"`
	Licensee              map[string]string `json:"licensee"`
	LicenseUserCount      int64             `json:"license_user_count"`
	LicenseStartsAt       string            `json:"license_starts_at"`
	LicenseExpiresAt      string            `json:"license_expires_at"`
	LicensePlan           string            `json:"license_plan"`
	LicenseAddOns         map[string]int64  `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

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

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

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

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

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

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

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

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

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) DeleteMatrixService

func (s *ServicesService) DeleteMatrixService(pid any, options ...RequestOptionFunc) (*Response, error)

DeleteMatrixService deletes Matrix service for project.

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

func (*ServicesService) DeleteMattermostService

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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) GetMatrixService

func (s *ServicesService) GetMatrixService(pid any, options ...RequestOptionFunc) (*MatrixService, *Response, error)

GetMatrixService gets Matrix service settings for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#get-matrix-notifications-settings

func (*ServicesService) GetMattermostService

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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) SetMatrixService

func (s *ServicesService) SetMatrixService(pid any, opt *SetMatrixServiceOptions, options ...RequestOptionFunc) (*MatrixService, *Response, error)

SetMatrixService sets Matrix service for a project.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-matrix-notifications

func (*ServicesService) SetMattermostService

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

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

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

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

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

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

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

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

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

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)
	GetMatrixService(pid any, options ...RequestOptionFunc) (*MatrixService, *Response, error)
	SetMatrixService(pid any, opt *SetMatrixServiceOptions, options ...RequestOptionFunc) (*MatrixService, *Response, error)
	DeleteMatrixService(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  *int64          `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

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

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"`
	DataDogCIVisibility  *bool   `url:"datadog_ci_visibility,omitempty" json:"datadog_ci_visibility,omitempty"`
	UseInheritedSettings *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

SetDataDogServiceOptions represents the available SetDataDogService() options.

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

type SetDiscordServiceOptions

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

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

type SetExternalStatusCheckStatusOptions struct {
	SHA                   *string `url:"sha,omitempty" json:"sha,omitempty"`
	ExternalStatusCheckID *int64  `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. Deprecated: to be removed in 1.0; use SetProjectMergeRequestExternalStatusCheckStatusOptions instead

GitLab API docs: https://docs.gitlab.com/api/status_checks/#set-status-of-an-external-status-check

type SetExternalWikiServiceOptions

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

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

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 SetGroupSlackOptions

type SetGroupSlackOptions 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"`
	NotifyOnlyWhenPipelineStatusChanges *bool   `url:"notify_only_when_pipeline_status_changes,omitempty" json:"notify_only_when_pipeline_status_changes,omitempty"`
	BranchesToBeNotified                *string `url:"branches_to_be_notified,omitempty" json:"branches_to_be_notified,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"`
	AlertEvents                         *bool   `url:"alert_events,omitempty" json:"alert_events,omitempty"`
	CommitEvents                        *bool   `url:"commit_events,omitempty" json:"commit_events,omitempty"`
	PushChannel                         *string `url:"push_channel,omitempty" json:"push_channel,omitempty"`
	PushEvents                          *bool   `url:"push_events,omitempty" json:"push_events,omitempty"`
	IssueChannel                        *string `url:"issue_channel,omitempty" json:"issue_channel,omitempty"`
	IssuesEvents                        *bool   `url:"issues_events,omitempty" json:"issues_events,omitempty"`
	JobEvents                           *bool   `url:"job_events,omitempty" json:"job_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"`
	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"`
	ConfidentialNoteChannel             *string `url:"confidential_note_channel,omitempty" json:"confidential_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"`
	TagPushEvents                       *bool   `url:"tag_push_events,omitempty" json:"tag_push_events,omitempty"`
	PipelineChannel                     *string `url:"pipeline_channel,omitempty" json:"pipeline_channel,omitempty"`
	PipelineEvents                      *bool   `url:"pipeline_events,omitempty" json:"pipeline_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"`
	DeploymentChannel                   *string `url:"deployment_channel,omitempty" json:"deployment_channel,omitempty"`
	DeploymentEvents                    *bool   `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
	IncidentChannel                     *string `url:"incident_channel,omitempty" json:"incident_channel,omitempty"`
	IncidentEvents                      *bool   `url:"incident_events,omitempty" json:"incident_events,omitempty"`
	AlertChannel                        *string `url:"alert_channel,omitempty" json:"alert_channel,omitempty"`
	GroupMentionChannel                 *string `url:"group_mention_channel,omitempty" json:"group_mention_channel,omitempty"`
	GroupConfidentialMentionChannel     *string `url:"group_confidential_mention_channel,omitempty" json:"group_confidential_mention_channel,omitempty"`
	UseInheritedSettings                *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

SetGroupSlackOptions represents the available SetGroupSlackSettings() options.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#set-up-slack-notifications

type SetGroupWebexTeamsOptions

type SetGroupWebexTeamsOptions struct {
	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"`
}

SetGroupWebexTeamsOptions represents the available SetGroupWebexTeamsSettings() options.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#set-up-webex-teams

type SetHarborServiceOptions

type SetHarborServiceOptions = SetUpHarborOptions

SetHarborServiceOptions represents the available SetHarborService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-harbor

type SetHookCustomHeaderOptions

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

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

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

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                 *int64    `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 SetMatrixServiceOptions

type SetMatrixServiceOptions struct {
	Hostname                  *string `url:"hostname,omitempty" json:"hostname,omitempty"`
	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"`
	UseInheritedSettings      *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

SetMatrixServiceOptions represents the available SetMatrixService() options.

GitLab API docs: https://docs.gitlab.com/api/project_integrations/#set-up-matrix-notifications

type SetMattermostServiceOptions

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

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 SetMicrosoftTeamsNotificationsOptions

type SetMicrosoftTeamsNotificationsOptions struct {
	Targets                   *string `url:"targets,omitempty" json:"targets,omitempty"`
	Webhook                   *string `url:"webhook,omitempty" json:"webhook,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"`
	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"`
	UseInheritedSettings      *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

SetMicrosoftTeamsNotificationsOptions represents the available SetMicrosoftTeamsNotifications() options.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#set-up-microsoft-teams-notifications

type SetMicrosoftTeamsServiceOptions

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

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 SetProjectGoogleChatOptions

type SetProjectGoogleChatOptions struct {
	Webhook                             *string `url:"webhook,omitempty" json:"webhook,omitempty"`
	NotifyOnlyBrokenPipelines           *bool   `url:"notify_only_broken_pipelines,omitempty" json:"notify_only_broken_pipelines,omitempty"`
	NotifyOnlyWhenPipelineStatusChanges *bool   `url:"notify_only_when_pipeline_status_changes,omitempty" json:"notify_only_when_pipeline_status_changes,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"`
	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"`
	UseInheritedSettings                *bool   `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

SetProjectGoogleChatOptions represents the available SetProjectGoogleChatSettings() options.

GitLab API docs: https://docs.gitlab.com/api/integrations.html#set-up-google-chat

type SetProjectMergeRequestExternalStatusCheckStatusOptions

type SetProjectMergeRequestExternalStatusCheckStatusOptions struct {
	SHA                   *string `url:"sha,omitempty" json:"sha,omitempty"`
	ExternalStatusCheckID *int64  `url:"external_status_check_id,omitempty" json:"external_status_check_id,omitempty"`
	Status                *string `url:"status,omitempty" json:"status,omitempty"`
}

SetProjectMergeRequestExternalStatusCheckStatusOptions represents the available SetProjectMergeRequestExternalStatusCheckStatus() options.

GitLab API docs: https://docs.gitlab.com/api/status_checks/#set-status-of-an-external-status-check

type SetProjectWebhookURLVariableOptions

type SetProjectWebhookURLVariableOptions struct {
	Value *string `json:"value,omitempty"`
}

SetProjectWebhookURLVariableOptions represents the available SetProjectWebhookURLVariable() options.

GitLab API docs: https://docs.gitlab.com/api/project_webhooks/#set-a-url-variable

type SetRedmineServiceOptions

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

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

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

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

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 SetUpHarborOptions

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

SetUpHarborOptions represents the available SetUpGroupHarbor() options.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#set-up-harbor

type SetUpJiraOptions

type SetUpJiraOptions 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                 *int64    `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,omitempty" json:"project_keys,omitempty"`
	UseInheritedSettings         *bool     `url:"use_inherited_settings,omitempty" json:"use_inherited_settings,omitempty"`
}

SetUpJiraOptions represents the available SetUpJira() options.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#set-up-jira

type SetYouTrackServiceOptions

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                                                    int64                     `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"`
	AnonymousSearchesAllowed                              bool                      `json:"anonymous_searches_allowed"`
	ArchiveBuildsInHumanReadable                          string                    `json:"archive_builds_in_human_readable"`
	ASCIIDocMaxIncludes                                   int64                     `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                                     int64                     `json:"autocomplete_users"`
	AutocompleteUsersUnauthenticated                      int64                     `json:"autocomplete_users_unauthenticated"`
	AutoDevOpsDomain                                      string                    `json:"auto_devops_domain"`
	AutoDevOpsEnabled                                     bool                      `json:"auto_devops_enabled"`
	AutomaticPurchasedStorageAllocation                   bool                      `json:"automatic_purchased_storage_allocation"`
	BulkImportConcurrentPipelineBatchLimit                int64                     `json:"bulk_import_concurrent_pipeline_batch_limit"`
	BulkImportEnabled                                     bool                      `json:"bulk_import_enabled"`
	BulkImportMaxDownloadFileSize                         int64                     `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                                         int64                     `json:"ci_max_includes"`
	CIMaxTotalYAMLSizeBytes                               int64                     `json:"ci_max_total_yaml_size_bytes"`
	CIPartitionsSizeLimit                                 int64                     `json:"ci_partitions_size_limit"`
	CommitEmailHostname                                   string                    `json:"commit_email_hostname"`
	ConcurrentBitbucketImportJobsLimit                    int64                     `json:"concurrent_bitbucket_import_jobs_limit"`
	ConcurrentBitbucketServerImportJobsLimit              int64                     `json:"concurrent_bitbucket_server_import_jobs_limit"`
	ConcurrentGitHubImportJobsLimit                       int64                     `json:"concurrent_github_import_jobs_limit"`
	ContainerExpirationPoliciesEnableHistoricEntries      bool                      `json:"container_expiration_policies_enable_historic_entries"`
	ContainerRegistryCleanupTagsServiceMaxListSize        int64                     `json:"container_registry_cleanup_tags_service_max_list_size"`
	ContainerRegistryDeleteTagsServiceTimeout             int64                     `json:"container_registry_delete_tags_service_timeout"`
	ContainerRegistryExpirationPoliciesCaching            bool                      `json:"container_registry_expiration_policies_caching"`
	ContainerRegistryExpirationPoliciesWorkerCapacity     int64                     `json:"container_registry_expiration_policies_worker_capacity"`
	ContainerRegistryImportCreatedBefore                  *time.Time                `json:"container_registry_import_created_before"`
	ContainerRegistryImportMaxRetries                     int64                     `json:"container_registry_import_max_retries"`
	ContainerRegistryImportMaxStepDuration                int64                     `json:"container_registry_import_max_step_duration"`
	ContainerRegistryImportMaxTagsCount                   int64                     `json:"container_registry_import_max_tags_count"`
	ContainerRegistryImportStartMaxRetries                int64                     `json:"container_registry_import_start_max_retries"`
	ContainerRegistryImportTargetPlan                     string                    `json:"container_registry_import_target_plan"`
	ContainerRegistryTokenExpireDelay                     int64                     `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                                     int64                     `json:"dsa_key_restriction"`
	DeactivateDormantUsers                                bool                      `json:"deactivate_dormant_users"`
	DeactivateDormantUsersPeriod                          int64                     `json:"deactivate_dormant_users_period"`
	DecompressArchiveFileTimeout                          int64                     `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                                int64                     `json:"default_project_creation"`
	DefaultProjectDeletionProtection                      bool                      `json:"default_project_deletion_protection"`
	DefaultProjectVisibility                              VisibilityValue           `json:"default_project_visibility"`
	DefaultProjectsLimit                                  int64                     `json:"default_projects_limit"`
	DefaultSnippetVisibility                              VisibilityValue           `json:"default_snippet_visibility"`
	DefaultSyntaxHighlightingTheme                        int64                     `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                               int64                     `json:"deletion_adjourned_period"`
	DiagramsnetEnabled                                    bool                      `json:"diagramsnet_enabled"`
	DiagramsnetURL                                        string                    `json:"diagramsnet_url"`
	DiffMaxFiles                                          int64                     `json:"diff_max_files"`
	DiffMaxLines                                          int64                     `json:"diff_max_lines"`
	DiffMaxPatchBytes                                     int64                     `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       int64                     `json:"downstream_pipeline_trigger_limit_per_project_user_sha"`
	DuoFeaturesEnabled                                    bool                      `json:"duo_features_enabled"`
	ECDSAKeyRestriction                                   int64                     `json:"ecdsa_key_restriction"`
	ECDSASKKeyRestriction                                 int64                     `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                                 int64                     `json:"ed25519_key_restriction"`
	Ed25519SKKeyRestriction                               int64                     `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                     int64                     `json:"elasticsearch_client_request_timeout"`
	ElasticsearchIndexedFieldLengthLimit                  int64                     `json:"elasticsearch_indexed_field_length_limit"`
	ElasticsearchIndexedFileSizeLimitKB                   int64                     `json:"elasticsearch_indexed_file_size_limit_kb"`
	ElasticsearchIndexing                                 bool                      `json:"elasticsearch_indexing"`
	ElasticsearchLimitIndexing                            bool                      `json:"elasticsearch_limit_indexing"`
	ElasticsearchMaxBulkConcurrency                       int64                     `json:"elasticsearch_max_bulk_concurrency"`
	ElasticsearchMaxBulkSizeMB                            int64                     `json:"elasticsearch_max_bulk_size_mb"`
	ElasticsearchMaxCodeIndexingConcurrency               int64                     `json:"elasticsearch_max_code_indexing_concurrency"`
	ElasticsearchNamespaceIDs                             []int64                   `json:"elasticsearch_namespace_ids"`
	ElasticsearchPassword                                 string                    `json:"elasticsearch_password"`
	ElasticsearchPauseIndexing                            bool                      `json:"elasticsearch_pause_indexing"`
	ElasticsearchProjectIDs                               []int64                   `json:"elasticsearch_project_ids"`
	ElasticsearchReplicas                                 int64                     `json:"elasticsearch_replicas"`
	ElasticsearchRequeueWorkers                           bool                      `json:"elasticsearch_requeue_workers"`
	ElasticsearchRetryOnFailure                           int64                     `json:"elasticsearch_retry_on_failure"`
	ElasticsearchSearch                                   bool                      `json:"elasticsearch_search"`
	ElasticsearchShards                                   int64                     `json:"elasticsearch_shards"`
	ElasticsearchURL                                      []string                  `json:"elasticsearch_url"`
	ElasticsearchUsername                                 string                    `json:"elasticsearch_username"`
	ElasticsearchWorkerNumberOfShards                     int64                     `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              int64                     `json:"external_pipeline_validation_service_timeout"`
	ExternalPipelineValidationServiceToken                string                    `json:"external_pipeline_validation_service_token"`
	ExternalPipelineValidationServiceURL                  string                    `json:"external_pipeline_validation_service_url"`
	FailedLoginAttemptsUnlockPeriodInMinutes              int64                     `json:"failed_login_attempts_unlock_period_in_minutes"`
	FileTemplateProjectID                                 int64                     `json:"file_template_project_id"`
	FirstDayOfWeek                                        int64                     `json:"first_day_of_week"`
	FlocEnabled                                           bool                      `json:"floc_enabled"`
	GeoNodeAllowedIPs                                     string                    `json:"geo_node_allowed_ips"`
	GeoStatusTimeout                                      int64                     `json:"geo_status_timeout"`
	GitRateLimitUsersAlertlist                            []int64                   `json:"git_rate_limit_users_alertlist"`
	GitTwoFactorSessionExpiry                             int64                     `json:"git_two_factor_session_expiry"`
	GitalyTimeoutDefault                                  int64                     `json:"gitaly_timeout_default"`
	GitalyTimeoutFast                                     int64                     `json:"gitaly_timeout_fast"`
	GitalyTimeoutMedium                                   int64                     `json:"gitaly_timeout_medium"`
	GitlabDedicatedInstance                               bool                      `json:"gitlab_dedicated_instance"`
	GitlabEnvironmentToolkitInstance                      bool                      `json:"gitlab_environment_toolkit_instance"`
	GitlabShellOperationLimit                             int64                     `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                              int64                     `json:"group_download_export_limit"`
	GroupExportLimit                                      int64                     `json:"group_export_limit"`
	GroupImportLimit                                      int64                     `json:"group_import_limit"`
	GroupOwnersCanManageDefaultBranchProtection           bool                      `json:"group_owners_can_manage_default_branch_protection"`
	GroupRunnerTokenExpirationInterval                    int64                     `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                  int64                     `json:"housekeeping_optimize_repository_period"`
	ImportSources                                         []string                  `json:"import_sources"`
	InactiveProjectsDeleteAfterMonths                     int64                     `json:"inactive_projects_delete_after_months"`
	InactiveProjectsMinSizeMB                             int64                     `json:"inactive_projects_min_size_mb"`
	InactiveProjectsSendWarningEmailAfterMonths           int64                     `json:"inactive_projects_send_warning_email_after_months"`
	InactiveResourceAccessTokensDeleteAfterDays           int64                     `json:"inactive_resource_access_tokens_delete_after_days"`
	IncludeOptionalMetricsInServicePing                   bool                      `json:"include_optional_metrics_in_service_ping"`
	InProductMarketingEmailsEnabled                       bool                      `json:"in_product_marketing_emails_enabled"`
	InvisibleCaptchaEnabled                               bool                      `json:"invisible_captcha_enabled"`
	IssuesCreateLimit                                     int64                     `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                                  int64                     `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                                      int64                     `json:"max_artifacts_size"`
	MaxAttachmentSize                                     int64                     `json:"max_attachment_size"`
	MaxDecompressedArchiveSize                            int64                     `json:"max_decompressed_archive_size"`
	MaxExportSize                                         int64                     `json:"max_export_size"`
	MaxImportRemoteFileSize                               int64                     `json:"max_import_remote_file_size"`
	MaxImportSize                                         int64                     `json:"max_import_size"`
	MaxLoginAttempts                                      int64                     `json:"max_login_attempts"`
	MaxNumberOfRepositoryDownloads                        int64                     `json:"max_number_of_repository_downloads"`
	MaxNumberOfRepositoryDownloadsWithinTimePeriod        int64                     `json:"max_number_of_repository_downloads_within_time_period"`
	MaxPagesSize                                          int64                     `json:"max_pages_size"`
	MaxPersonalAccessTokenLifetime                        int64                     `json:"max_personal_access_token_lifetime"`
	MaxSSHKeyLifetime                                     int64                     `json:"max_ssh_key_lifetime"`
	MaxTerraformStateSizeBytes                            int64                     `json:"max_terraform_state_size_bytes"`
	MaxYAMLDepth                                          int64                     `json:"max_yaml_depth"`
	MaxYAMLSizeBytes                                      int64                     `json:"max_yaml_size_bytes"`
	MetricsMethodCallThreshold                            int64                     `json:"metrics_method_call_threshold"`
	MinimumPasswordLength                                 int64                     `json:"minimum_password_length"`
	MirrorAvailable                                       bool                      `json:"mirror_available"`
	MirrorCapacityThreshold                               int64                     `json:"mirror_capacity_threshold"`
	MirrorMaxCapacity                                     int64                     `json:"mirror_max_capacity"`
	MirrorMaxDelay                                        int64                     `json:"mirror_max_delay"`
	NPMPackageRequestsForwarding                          bool                      `json:"npm_package_requests_forwarding"`
	NotesCreateLimit                                      int64                     `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                              []int64                   `json:"package_metadata_purl_types"`
	PackageRegistryAllowAnyoneToPullOption                bool                      `json:"package_registry_allow_anyone_to_pull_option"`
	PackageRegistryCleanupPoliciesWorkerCapacity          int64                     `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                        int64                     `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                            int64                     `json:"project_download_export_limit"`
	ProjectExportEnabled                                  bool                      `json:"project_export_enabled"`
	ProjectExportLimit                                    int64                     `json:"project_export_limit"`
	ProjectImportLimit                                    int64                     `json:"project_import_limit"`
	ProjectJobsAPIRateLimit                               int64                     `json:"project_jobs_api_rate_limit"`
	ProjectRunnerTokenExpirationInterval                  int64                     `json:"project_runner_token_expiration_interval"`
	ProjectsAPIRateLimitUnauthenticated                   int64                     `json:"projects_api_rate_limit_unauthenticated"`
	PrometheusMetricsEnabled                              bool                      `json:"prometheus_metrics_enabled"`
	ProtectedCIVariables                                  bool                      `json:"protected_ci_variables"`
	PseudonymizerEnabled                                  bool                      `json:"pseudonymizer_enabled"`
	PushEventActivitiesLimit                              int64                     `json:"push_event_activities_limit"`
	PushEventHooksLimit                                   int64                     `json:"push_event_hooks_limit"`
	PyPIPackageRequestsForwarding                         bool                      `json:"pypi_package_requests_forwarding"`
	RSAKeyRestriction                                     int64                     `json:"rsa_key_restriction"`
	RateLimitingResponseText                              string                    `json:"rate_limiting_response_text"`
	RawBlobRequestLimit                                   int64                     `json:"raw_blob_request_limit"`
	RecaptchaEnabled                                      bool                      `json:"recaptcha_enabled"`
	RecaptchaPrivateKey                                   string                    `json:"recaptcha_private_key"`
	RecaptchaSiteKey                                      string                    `json:"recaptcha_site_key"`
	ReceiveMaxInputSize                                   int64                     `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                                   int64                     `json:"repository_size_limit"`
	RepositoryStorages                                    []string                  `json:"repository_storages"`
	RepositoryStoragesWeighted                            map[string]int64          `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                         int64                     `json:"runner_token_expiration_interval"`
	SearchRateLimit                                       int64                     `json:"search_rate_limit"`
	SearchRateLimitUnauthenticated                        int64                     `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                         int64                     `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                                    int64                     `json:"session_expire_delay"`
	SessionExpireFromInit                                 bool                      `json:"session_expire_from_init"`
	SharedRunnersEnabled                                  bool                      `json:"shared_runners_enabled"`
	SharedRunnersMinutes                                  int64                     `json:"shared_runners_minutes"`
	SharedRunnersText                                     string                    `json:"shared_runners_text"`
	SidekiqJobLimiterCompressionThresholdBytes            int64                     `json:"sidekiq_job_limiter_compression_threshold_bytes"`
	SidekiqJobLimiterLimitBytes                           int64                     `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                                      int64                     `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                                int64                     `json:"terminal_max_session_time"`
	Terms                                                 string                    `json:"terms"`
	ThrottleAuthenticatedAPIEnabled                       bool                      `json:"throttle_authenticated_api_enabled"`
	ThrottleAuthenticatedAPIPeriodInSeconds               int64                     `json:"throttle_authenticated_api_period_in_seconds"`
	ThrottleAuthenticatedAPIRequestsPerPeriod             int64                     `json:"throttle_authenticated_api_requests_per_period"`
	ThrottleAuthenticatedDeprecatedAPIEnabled             bool                      `json:"throttle_authenticated_deprecated_api_enabled"`
	ThrottleAuthenticatedDeprecatedAPIPeriodInSeconds     int64                     `json:"throttle_authenticated_deprecated_api_period_in_seconds"`
	ThrottleAuthenticatedDeprecatedAPIRequestsPerPeriod   int64                     `json:"throttle_authenticated_deprecated_api_requests_per_period"`
	ThrottleAuthenticatedFilesAPIEnabled                  bool                      `json:"throttle_authenticated_files_api_enabled"`
	ThrottleAuthenticatedFilesAPIPeriodInSeconds          int64                     `json:"throttle_authenticated_files_api_period_in_seconds"`
	ThrottleAuthenticatedFilesAPIRequestsPerPeriod        int64                     `json:"throttle_authenticated_files_api_requests_per_period"`
	ThrottleAuthenticatedGitLFSEnabled                    bool                      `json:"throttle_authenticated_git_lfs_enabled"`
	ThrottleAuthenticatedGitLFSPeriodInSeconds            int64                     `json:"throttle_authenticated_git_lfs_period_in_seconds"`
	ThrottleAuthenticatedGitLFSRequestsPerPeriod          int64                     `json:"throttle_authenticated_git_lfs_requests_per_period"`
	ThrottleAuthenticatedPackagesAPIEnabled               bool                      `json:"throttle_authenticated_packages_api_enabled"`
	ThrottleAuthenticatedPackagesAPIPeriodInSeconds       int64                     `json:"throttle_authenticated_packages_api_period_in_seconds"`
	ThrottleAuthenticatedPackagesAPIRequestsPerPeriod     int64                     `json:"throttle_authenticated_packages_api_requests_per_period"`
	ThrottleAuthenticatedWebEnabled                       bool                      `json:"throttle_authenticated_web_enabled"`
	ThrottleAuthenticatedWebPeriodInSeconds               int64                     `json:"throttle_authenticated_web_period_in_seconds"`
	ThrottleAuthenticatedWebRequestsPerPeriod             int64                     `json:"throttle_authenticated_web_requests_per_period"`
	ThrottleIncidentManagementNotificationEnabled         bool                      `json:"throttle_incident_management_notification_enabled"`
	ThrottleIncidentManagementNotificationPerPeriod       int64                     `json:"throttle_incident_management_notification_per_period"`
	ThrottleIncidentManagementNotificationPeriodInSeconds int64                     `json:"throttle_incident_management_notification_period_in_seconds"`
	ThrottleProtectedPathsEnabled                         bool                      `json:"throttle_protected_paths_enabled"`
	ThrottleProtectedPathsPeriodInSeconds                 int64                     `json:"throttle_protected_paths_period_in_seconds"`
	ThrottleProtectedPathsRequestsPerPeriod               int64                     `json:"throttle_protected_paths_requests_per_period"`
	ThrottleUnauthenticatedAPIEnabled                     bool                      `json:"throttle_unauthenticated_api_enabled"`
	ThrottleUnauthenticatedAPIPeriodInSeconds             int64                     `json:"throttle_unauthenticated_api_period_in_seconds"`
	ThrottleUnauthenticatedAPIRequestsPerPeriod           int64                     `json:"throttle_unauthenticated_api_requests_per_period"`
	ThrottleUnauthenticatedDeprecatedAPIEnabled           bool                      `json:"throttle_unauthenticated_deprecated_api_enabled"`
	ThrottleUnauthenticatedDeprecatedAPIPeriodInSeconds   int64                     `json:"throttle_unauthenticated_deprecated_api_period_in_seconds"`
	ThrottleUnauthenticatedDeprecatedAPIRequestsPerPeriod int64                     `json:"throttle_unauthenticated_deprecated_api_requests_per_period"`
	ThrottleUnauthenticatedFilesAPIEnabled                bool                      `json:"throttle_unauthenticated_files_api_enabled"`
	ThrottleUnauthenticatedFilesAPIPeriodInSeconds        int64                     `json:"throttle_unauthenticated_files_api_period_in_seconds"`
	ThrottleUnauthenticatedFilesAPIRequestsPerPeriod      int64                     `json:"throttle_unauthenticated_files_api_requests_per_period"`
	ThrottleUnauthenticatedGitLFSEnabled                  bool                      `json:"throttle_unauthenticated_git_lfs_enabled"`
	ThrottleUnauthenticatedGitLFSPeriodInSeconds          int64                     `json:"throttle_unauthenticated_git_lfs_period_in_seconds"`
	ThrottleUnauthenticatedGitLFSRequestsPerPeriod        int64                     `json:"throttle_unauthenticated_git_lfs_requests_per_period"`
	ThrottleUnauthenticatedPackagesAPIEnabled             bool                      `json:"throttle_unauthenticated_packages_api_enabled"`
	ThrottleUnauthenticatedPackagesAPIPeriodInSeconds     int64                     `json:"throttle_unauthenticated_packages_api_period_in_seconds"`
	ThrottleUnauthenticatedPackagesAPIRequestsPerPeriod   int64                     `json:"throttle_unauthenticated_packages_api_requests_per_period"`
	ThrottleUnauthenticatedWebEnabled                     bool                      `json:"throttle_unauthenticated_web_enabled"`
	ThrottleUnauthenticatedWebPeriodInSeconds             int64                     `json:"throttle_unauthenticated_web_period_in_seconds"`
	ThrottleUnauthenticatedWebRequestsPerPeriod           int64                     `json:"throttle_unauthenticated_web_requests_per_period"`
	TimeTrackingLimitToHours                              bool                      `json:"time_tracking_limit_to_hours"`
	TwoFactorGracePeriod                                  int64                     `json:"two_factor_grace_period"`
	UnconfirmedUsersDeleteAfterDays                       int64                     `json:"unconfirmed_users_delete_after_days"`
	UniqueIPsLimitEnabled                                 bool                      `json:"unique_ips_limit_enabled"`
	UniqueIPsLimitPerUser                                 int64                     `json:"unique_ips_limit_per_user"`
	UniqueIPsLimitTimeWindow                              int64                     `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                                     int64                     `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                               int64                     `json:"wiki_page_max_content_bytes"`
	LockMembershipsToSAML                                 bool                      `json:"lock_memberships_to_saml"`

	// Deprecated: Use DefaultBranchProtectionDefaults instead.
	DefaultBranchProtection int64 `json:"default_branch_protection"`
	// Deprecated: Cannot be set through the API, always true
	HousekeepingBitmapsEnabled bool `json:"housekeeping_bitmaps_enabled"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingFullRepackPeriod int64 `json:"housekeeping_full_repack_period"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingGcPeriod int64 `json:"housekeeping_gc_period"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingIncrementalRepackPeriod int64 `json:"housekeeping_incremental_repack_period"`
	// Deprecated: use PerformanceBarAllowedGroupPath instead
	PerformanceBarAllowedGroupID int64 `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 int64 `json:"throttle_unauthenticated_period_in_seconds"`
	// Deprecated: Use ThrottleUnauthenticatedWebRequestsPerPeriod or ThrottleUnauthenticatedAPIRequestsPerPeriod instead. (Deprecated in GitLab 14.3)
	ThrottleUnauthenticatedRequestsPerPeriod int64 `json:"throttle_unauthenticated_requests_per_period"`
	// Deprecated: Replaced by SearchRateLimit in GitLab 14.9 (removed in 15.0).
	UserEmailLookupLimit int64 `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

func (s *Settings) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface. 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

type SettingsServiceInterface interface {
	GetSettings(options ...RequestOptionFunc) (*Settings, *Response, error)
	UpdateSettings(opt *UpdateSettingsOptions, options ...RequestOptionFunc) (*Settings, *Response, error)
}

type ShareGroupWithGroupOptions

type ShareGroupWithGroupOptions struct {
	GroupID      *int64            `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 *int64            `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

type ShareWithGroupOptions struct {
	ExpiresAt   *string           `url:"expires_at" json:"expires_at"`
	GroupAccess *AccessLevelValue `url:"group_access" json:"group_access"`
	GroupID     *int64            `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

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

type SharedWithGroup struct {
	GroupID          int64    `json:"group_id"`
	GroupName        string   `json:"group_name"`
	GroupFullPath    string   `json:"group_full_path"`
	GroupAccessLevel int64    `json:"group_access_level"`
	ExpiresAt        *ISOTime `json:"expires_at"`
	MemberRoleID     int64    `json:"member_role_id"`
}

SharedWithGroup represents a GitLab group shared with a group.

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

type ShowMergeRequestRawDiffsOptions

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

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

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

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

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

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

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

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

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 SlackIntegration

type SlackIntegration struct {
	Integration
	Properties SlackIntegrationProperties `json:"properties"`
}

SlackIntegration represents the Slack integration settings. It embeds the generic Integration struct and adds Slack-specific properties.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#get-slack-settings

type SlackIntegrationProperties

type SlackIntegrationProperties struct {
	Username                        string `json:"username"`
	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"`
	AlertChannel                    string `json:"alert_channel"`
	GroupMentionChannel             string `json:"group_mention_channel"`
	GroupConfidentialMentionChannel string `json:"group_confidential_mention_channel"`
}

SlackIntegrationProperties represents Slack specific properties returned by the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#get-slack-settings

type SlackService

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

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

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

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                int64         `json:"id"`
	Title             string        `json:"title"`
	FileName          string        `json:"file_name"`
	Description       string        `json:"description"`
	Visibility        string        `json:"visibility"`
	Author            SnippetAuthor `json:"author"`
	UpdatedAt         *time.Time    `json:"updated_at"`
	CreatedAt         *time.Time    `json:"created_at"`
	ProjectID         int64         `json:"project_id"`
	WebURL            string        `json:"web_url"`
	RawURL            string        `json:"raw_url"`
	Files             []SnippetFile `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 SnippetAuthor

type SnippetAuthor struct {
	ID        int64      `json:"id"`
	Username  string     `json:"username"`
	Email     string     `json:"email"`
	Name      string     `json:"name"`
	State     string     `json:"state"`
	CreatedAt *time.Time `json:"created_at"`
}

SnippetAuthor represents a GitLab snippet author.

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

func (SnippetAuthor) String

func (a SnippetAuthor) String() string

type SnippetCommentEvent

type SnippetCommentEvent struct {
	ObjectKind       string                              `json:"object_kind"`
	EventType        string                              `json:"event_type"`
	User             *EventUser                          `json:"user"`
	ProjectID        int64                               `json:"project_id"`
	Project          SnippetCommentEventProject          `json:"project"`
	Repository       *Repository                         `json:"repository"`
	ObjectAttributes SnippetCommentEventObjectAttributes `json:"object_attributes"`
	Snippet          *SnippetCommentEventSnippet         `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 SnippetCommentEventObjectAttributes

type SnippetCommentEventObjectAttributes struct {
	ID           int64              `json:"id"`
	Note         string             `json:"note"`
	NoteableType string             `json:"noteable_type"`
	AuthorID     int64              `json:"author_id"`
	CreatedAt    string             `json:"created_at"`
	UpdatedAt    string             `json:"updated_at"`
	ProjectID    int64              `json:"project_id"`
	Attachment   string             `json:"attachment"`
	LineCode     string             `json:"line_code"`
	CommitID     string             `json:"commit_id"`
	NoteableID   int64              `json:"noteable_id"`
	System       bool               `json:"system"`
	StDiff       *Diff              `json:"st_diff"`
	Description  string             `json:"description"`
	Action       CommentEventAction `json:"action"`
	URL          string             `json:"url"`
}

type SnippetCommentEventProject

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

type SnippetCommentEventSnippet

type SnippetCommentEventSnippet struct {
	ID                 int64  `json:"id"`
	Title              string `json:"title"`
	Content            string `json:"content"`
	AuthorID           int64  `json:"author_id"`
	ProjectID          int64  `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    int64  `json:"visibility_level"`
	Description        string `json:"description"`
	Secret             bool   `json:"secret"`
	RepositoryReadOnly bool   `json:"repository_read_only"`
}

type SnippetFile

type SnippetFile struct {
	Path   string `json:"path"`
	RawURL string `json:"raw_url"`
}

SnippetFile represents a GitLab snippet file.

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

func (SnippetFile) String

func (f SnippetFile) String() string

type SnippetRepositoryStorageMove

type SnippetRepositoryStorageMove struct {
	ID                     int64              `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

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

func (s SnippetRepositoryStorageMoveService) GetStorageMove(repositoryStorage int64, 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

func (s SnippetRepositoryStorageMoveService) GetStorageMoveForSnippet(snippet int64, repositoryStorage int64, 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

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

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

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

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

type SnippetRepositoryStorageMoveServiceInterface interface {
	RetrieveAllStorageMoves(opts RetrieveAllSnippetStorageMovesOptions, options ...RequestOptionFunc) ([]*SnippetRepositoryStorageMove, *Response, error)
	RetrieveAllStorageMovesForSnippet(snippet int64, opts RetrieveAllSnippetStorageMovesOptions, options ...RequestOptionFunc) ([]*SnippetRepositoryStorageMove, *Response, error)
	GetStorageMove(repositoryStorage int64, options ...RequestOptionFunc) (*SnippetRepositoryStorageMove, *Response, error)
	GetStorageMoveForSnippet(snippet int64, repositoryStorage int64, options ...RequestOptionFunc) (*SnippetRepositoryStorageMove, *Response, error)
	ScheduleStorageMoveForSnippet(snippet int64, opts ScheduleStorageMoveForSnippetOptions, options ...RequestOptionFunc) (*SnippetRepositoryStorageMove, *Response, error)
	ScheduleAllStorageMoves(opts ScheduleAllSnippetStorageMovesOptions, options ...RequestOptionFunc) (*Response, error)
}

type SnippetsService

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

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

func (s *SnippetsService) DeleteSnippet(snippet int64, 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

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

func (s *SnippetsService) GetSnippet(snippet int64, 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

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

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

func (s *SnippetsService) SnippetContent(snippet int64, 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

func (s *SnippetsService) SnippetFileContent(snippet int64, 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

func (s *SnippetsService) UpdateSnippet(snippet int64, 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

type SnippetsServiceInterface interface {
	ListSnippets(opt *ListSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)
	GetSnippet(snippet int64, options ...RequestOptionFunc) (*Snippet, *Response, error)
	SnippetContent(snippet int64, options ...RequestOptionFunc) ([]byte, *Response, error)
	SnippetFileContent(snippet int64, ref, filename string, options ...RequestOptionFunc) ([]byte, *Response, error)
	CreateSnippet(opt *CreateSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)
	UpdateSnippet(snippet int64, opt *UpdateSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error)
	DeleteSnippet(snippet int64, options ...RequestOptionFunc) (*Response, error)
	ExploreSnippets(opt *ExploreSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)
	ListAllSnippets(opt *ListAllSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error)
}

type SquashOptionValue

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

type StateEvent struct {
	ID           int64          `json:"id"`
	User         *BasicUser     `json:"user"`
	CreatedAt    *time.Time     `json:"created_at"`
	ResourceType string         `json:"resource_type"`
	ResourceID   int64          `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

type StateID int64

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

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

type StatusCheckProtectedBranch struct {
	ID                        int64      `json:"id"`
	ProjectID                 int64      `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

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

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

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        int64      `json:"group_id"`
	ParentGroupID  int64      `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

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

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)

func (*SystemHooksService) DeleteHook

func (s *SystemHooksService) DeleteHook(hook int64, options ...RequestOptionFunc) (*Response, error)

func (*SystemHooksService) GetHook

func (s *SystemHooksService) GetHook(hook int64, options ...RequestOptionFunc) (*Hook, *Response, error)

func (*SystemHooksService) ListHooks

func (s *SystemHooksService) ListHooks(options ...RequestOptionFunc) ([]*Hook, *Response, error)

func (*SystemHooksService) TestHook

func (s *SystemHooksService) TestHook(hook int64, options ...RequestOptionFunc) (*HookEvent, *Response, error)

type SystemHooksServiceInterface

type SystemHooksServiceInterface interface {
	// ListHooks gets a list of system hooks.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/system_hooks/#list-system-hooks
	ListHooks(options ...RequestOptionFunc) ([]*Hook, *Response, error)
	// GetHook gets a single system hook.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/system_hooks/#get-system-hook
	GetHook(hook int64, options ...RequestOptionFunc) (*Hook, *Response, error)
	// AddHook adds a new system hook.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/system_hooks/#add-new-system-hook
	AddHook(opt *AddHookOptions, options ...RequestOptionFunc) (*Hook, *Response, error)
	// TestHook tests a system hook.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/system_hooks/#test-system-hook
	TestHook(hook int64, options ...RequestOptionFunc) (*HookEvent, *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
	DeleteHook(hook int64, 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"`
	CreatedAt *time.Time   `json:"created_at"`
}

Tag represents a GitLab tag.

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

func (Tag) String

func (t Tag) String() string

type TagAccessDescription

type TagAccessDescription struct {
	ID                     int64            `json:"id"`
	UserID                 int64            `json:"user_id"`
	GroupID                int64            `json:"group_id"`
	DeployKeyID            int64            `json:"deploy_key_id"`
	AccessLevel            AccessLevelValue `json:"access_level"`
	AccessLevelDescription string           `json:"access_level_description"`
}

TagAccessDescription represents the access description for a protected tag.

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

type TagEvent

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            int64             `json:"user_id"`
	UserName          string            `json:"user_name"`
	UserUsername      string            `json:"user_username"`
	UserAvatar        string            `json:"user_avatar"`
	UserEmail         string            `json:"user_email"`
	ProjectID         int64             `json:"project_id"`
	Message           string            `json:"message"`
	Project           TagEventProject   `json:"project"`
	Repository        *Repository       `json:"repository"`
	Commits           []*TagEventCommit `json:"commits"`
	TotalCommitsCount int64             `json:"total_commits_count"`
}

TagEvent represents a tag event.

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

type TagEventCommit

type TagEventCommit struct {
	ID        string            `json:"id"`
	Message   string            `json:"message"`
	Title     string            `json:"title"`
	Timestamp *time.Time        `json:"timestamp"`
	URL       string            `json:"url"`
	Author    EventCommitAuthor `json:"author"`
	Added     []string          `json:"added"`
	Modified  []string          `json:"modified"`
	Removed   []string          `json:"removed"`
}

type TagEventProject

type TagEventProject struct {
	ID                int64           `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"`
}

type TagPushSystemEvent

type TagPushSystemEvent struct {
	BaseSystemEvent
	Before            string                     `json:"before"`
	After             string                     `json:"after"`
	Ref               string                     `json:"ref"`
	CheckoutSHA       string                     `json:"checkout_sha"`
	UserID            int64                      `json:"user_id"`
	UserName          string                     `json:"user_name"`
	UserUsername      string                     `json:"user_username"`
	UserEmail         string                     `json:"user_email"`
	UserAvatar        string                     `json:"user_avatar"`
	ProjectID         int64                      `json:"project_id"`
	Project           TagPushSystemEventProject  `json:"project"`
	Commits           []TagPushSystemEventCommit `json:"commits"`
	TotalCommitsCount int64                      `json:"total_commits_count"`
}

TagPushSystemEvent represents a tag push system event.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#tag-events

type TagPushSystemEventCommit

type TagPushSystemEventCommit struct {
	ID        string                         `json:"id"`
	Message   string                         `json:"message"`
	Timestamp time.Time                      `json:"timestamp"`
	URL       string                         `json:"url"`
	Author    TagPushSystemEventCommitAuthor `json:"author"`
}

TagPushSystemEventCommit represents a tag push system event's commit.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#tag-events

type TagPushSystemEventCommitAuthor

type TagPushSystemEventCommitAuthor struct {
	Name  string `json:"name"`
	Email string `json:"email"`
}

TagPushSystemEventCommitAuthor represents a tag push system event's commit author.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#tag-events

type TagPushSystemEventProject

type TagPushSystemEventProject 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   int64  `json:"visibility_level"`
	PathWithNamespace string `json:"path_with_namespace"`
	DefaultBranch     string `json:"default_branch"`
	Homepage          string `json:"homepage"`
	URL               string `json:"url"`
}

TagPushSystemEventProject represents a tag push system event's project.

GitLab API docs: https://docs.gitlab.com/administration/system_hooks/#tag-events

type TagsPermissionOptions

type TagsPermissionOptions struct {
	UserID      *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID     *int64            `url:"group_id,omitempty" json:"group_id,omitempty"`
	DeployKeyID *int64            `url:"deploy_key_id,omitempty" json:"deploy_key_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

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

func (s *TagsService) CreateTag(pid any, opt *CreateTagOptions, options ...RequestOptionFunc) (*Tag, *Response, error)

func (*TagsService) DeleteTag

func (s *TagsService) DeleteTag(pid any, tag string, options ...RequestOptionFunc) (*Response, error)

func (*TagsService) GetTag

func (s *TagsService) GetTag(pid any, tag string, options ...RequestOptionFunc) (*Tag, *Response, error)

func (*TagsService) GetTagSignature

func (s *TagsService) GetTagSignature(pid any, tag string, options ...RequestOptionFunc) (*X509Signature, *Response, error)

func (*TagsService) ListTags

func (s *TagsService) ListTags(pid any, opt *ListTagsOptions, options ...RequestOptionFunc) ([]*Tag, *Response, error)

type TagsServiceInterface

type TagsServiceInterface interface {
	// 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
	ListTags(pid any, opt *ListTagsOptions, 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
	GetTag(pid any, tag string, options ...RequestOptionFunc) (*Tag, *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
	GetTagSignature(pid any, tag string, options ...RequestOptionFunc) (*X509Signature, *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
	CreateTag(pid any, opt *CreateTagOptions, options ...RequestOptionFunc) (*Tag, *Response, error)
	// DeleteTag deletes a tag of a repository with given name.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/tags/#delete-a-tag
	DeleteTag(pid any, tag string, options ...RequestOptionFunc) (*Response, error)
}

type TargetBranchRule added in v2.8.0

type TargetBranchRule struct {
	ID           int64     `json:"id"`
	Name         string    `json:"name"`
	TargetBranch string    `json:"targetBranch"`
	CreatedAt    time.Time `json:"createdAt"`
}

TargetBranchRule represents a single target branch rule on a project.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#projecttargetbranchrule

type TasksCompletionStatus

type TasksCompletionStatus struct {
	Count          int64 `json:"count"`
	CompletedCount int64 `json:"completed_count"`
}

TasksCompletionStatus represents tasks of the issue/merge request.

type TelegramIntegration

type TelegramIntegration struct {
	Integration
	Properties TelegramIntegrationProperties `json:"properties"`
}

TelegramIntegration represents the Telegram integration settings.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#telegram

type TelegramIntegrationProperties

type TelegramIntegrationProperties struct {
	Hostname                  string `json:"hostname,omitempty"`
	Room                      string `json:"room,omitempty"`
	Thread                    string `json:"thread,omitempty"`
	NotifyOnlyBrokenPipelines bool   `json:"notify_only_broken_pipelines,omitempty"`
	BranchesToBeNotified      string `json:"branches_to_be_notified,omitempty"`
}

TelegramIntegrationProperties represents Telegram specific properties.

type TelegramService

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

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 TerraformState

type TerraformState struct {
	Name          string                `json:"name"`
	LatestVersion TerraformStateVersion `json:"latestVersion"`
	CreatedAt     time.Time             `json:"createdAt"`
	UpdatedAt     time.Time             `json:"updatedAt"`
	DeletedAt     time.Time             `json:"deletedAt"`
	LockedAt      time.Time             `json:"lockedAt"`
}

TerraformState represents a Terraform state.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#terraformstate

type TerraformStateVersion

type TerraformStateVersion struct {
	Serial       uint64    `json:"serial"`
	DownloadPath string    `json:"downloadPath"`
	CreatedAt    time.Time `json:"createdAt"`
	UpdatedAt    time.Time `json:"updatedAt"`
}

TerraformStateVersion represents a Terraform state version.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#terraformstateversion

type TerraformStatesService

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

TerraformStatesService handles communication with the GitLab-managed Terraform state API

GitLab API docs: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/

func (*TerraformStatesService) Delete

func (s *TerraformStatesService) Delete(pid any, name string, options ...RequestOptionFunc) (*Response, error)

Delete deletes a single Terraform state

GitLab API docs: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/

func (*TerraformStatesService) DeleteVersion

func (s *TerraformStatesService) DeleteVersion(pid any, name string, serial uint64, options ...RequestOptionFunc) (*Response, error)

DeleteVersion deletes a single Terraform state version

GitLab API docs: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/

func (*TerraformStatesService) Download

func (s *TerraformStatesService) Download(pid any, name string, serial uint64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)

Download downloads a specific version of a Terraform state file.

The returned io.ReadCloser must be closed by the caller to avoid leaking the underlying response body.

GitLab API docs: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/

func (*TerraformStatesService) DownloadLatest

func (s *TerraformStatesService) DownloadLatest(pid any, name string, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)

DownloadLatest downloads the latest version of a Terraform state file.

The returned io.ReadCloser must be closed by the caller to avoid leaking the underlying response body.

GitLab API docs: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/

func (*TerraformStatesService) Get

func (s *TerraformStatesService) Get(projectFullPath string, name string, options ...RequestOptionFunc) (*TerraformState, *Response, error)

Get returns a single Terraform state

func (*TerraformStatesService) List

func (s *TerraformStatesService) List(projectFullPath string, options ...RequestOptionFunc) ([]TerraformState, *Response, error)

List returns all Terraform states

func (*TerraformStatesService) Lock

func (s *TerraformStatesService) Lock(pid any, name string, options ...RequestOptionFunc) (*Response, error)

Lock locks a single Terraform state

GitLab API docs: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/

func (*TerraformStatesService) Unlock

func (s *TerraformStatesService) Unlock(pid any, name string, options ...RequestOptionFunc) (*Response, error)

Unlock unlocks a single Terraform state

GitLab API docs: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/

type TerraformStatesServiceInterface

type TerraformStatesServiceInterface interface {
	List(projectFullPath string, options ...RequestOptionFunc) ([]TerraformState, *Response, error)
	Get(projectFullPath string, name string, options ...RequestOptionFunc) (*TerraformState, *Response, error)
	// Download downloads a specific version of a Terraform state file.
	//
	// The returned io.ReadCloser must be closed by the caller to avoid
	// leaking the underlying response body.
	//
	// GitLab API docs: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/
	Download(pid any, name string, serial uint64, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)
	// DownloadLatest downloads the latest version of a Terraform state file.
	//
	// The returned io.ReadCloser must be closed by the caller to avoid
	// leaking the underlying response body.
	//
	// GitLab API docs: https://docs.gitlab.com/user/infrastructure/iac/terraform_state/
	DownloadLatest(pid any, name string, options ...RequestOptionFunc) (io.ReadCloser, *Response, error)
	Delete(pid any, name string, options ...RequestOptionFunc) (*Response, error)
	DeleteVersion(pid any, name string, serial uint64, options ...RequestOptionFunc) (*Response, error)
	Lock(pid any, name string, options ...RequestOptionFunc) (*Response, error)
	Unlock(pid any, name string, options ...RequestOptionFunc) (*Response, error)
}

type TimeStats

type TimeStats struct {
	HumanTimeEstimate   string `json:"human_time_estimate"`
	HumanTotalTimeSpent string `json:"human_total_time_spent"`
	TimeEstimate        int64  `json:"time_estimate"`
	TotalTimeSpent      int64  `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

func (t TimeStats) String() string

type Todo

type Todo struct {
	ID         int64          `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

func (t Todo) String() string

type TodoAction

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

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            int64                  `json:"downvotes"`
	ID                   any                    `json:"id"`
	IID                  int64                  `json:"iid"`
	Labels               []string               `json:"labels"`
	Milestone            *Milestone             `json:"milestone"`
	ProjectID            int64                  `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              int64                  `json:"upvotes"`
	UserNotesCount       int64                  `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    int64       `json:"moved_to_id"`
	TimeStats    *TimeStats  `json:"time_stats"`
	Weight       int64       `json:"weight"`

	// Only available for type MergeRequest
	MergedAt                  *time.Time   `json:"merged_at"`
	ApprovalsBeforeMerge      int64        `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           int64        `json:"source_project_id"`
	Squash                    bool         `json:"squash"`
	TargetBranch              string       `json:"target_branch"`
	TargetProjectID           int64        `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

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

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

func (s *TodosService) ListTodos(opt *ListTodosOptions, options ...RequestOptionFunc) ([]*Todo, *Response, error)

func (*TodosService) MarkAllTodosAsDone

func (s *TodosService) MarkAllTodosAsDone(options ...RequestOptionFunc) (*Response, error)

func (*TodosService) MarkTodoAsDone

func (s *TodosService) MarkTodoAsDone(id int64, options ...RequestOptionFunc) (*Response, error)

type TodosServiceInterface

type TodosServiceInterface interface {
	// 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
	ListTodos(opt *ListTodosOptions, options ...RequestOptionFunc) ([]*Todo, *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
	MarkTodoAsDone(id int64, 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
	MarkAllTodosAsDone(options ...RequestOptionFunc) (*Response, error)
}

type Topic

type Topic struct {
	ID                 int64  `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

func (t Topic) String() string

type TopicAvatar

type TopicAvatar struct {
	Filename string
	Image    io.Reader
}

TopicAvatar represents a GitLab topic avatar.

func (*TopicAvatar) MarshalJSON

func (a *TopicAvatar) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

type TopicsService

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

func (s *TopicsService) CreateTopic(opt *CreateTopicOptions, options ...RequestOptionFunc) (*Topic, *Response, error)

func (*TopicsService) DeleteTopic

func (s *TopicsService) DeleteTopic(topic int64, options ...RequestOptionFunc) (*Response, error)

func (*TopicsService) GetTopic

func (s *TopicsService) GetTopic(topic int64, options ...RequestOptionFunc) (*Topic, *Response, error)

func (*TopicsService) ListTopics

func (s *TopicsService) ListTopics(opt *ListTopicsOptions, options ...RequestOptionFunc) ([]*Topic, *Response, error)

func (*TopicsService) UpdateTopic

func (s *TopicsService) UpdateTopic(topic int64, opt *UpdateTopicOptions, options ...RequestOptionFunc) (*Topic, *Response, error)

type TopicsServiceInterface

type TopicsServiceInterface interface {
	// 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
	ListTopics(opt *ListTopicsOptions, options ...RequestOptionFunc) ([]*Topic, *Response, error)
	// GetTopic gets a project topic by ID.
	//
	// GitLab API docs: https://docs.gitlab.com/api/topics/#get-a-topic
	GetTopic(topic int64, options ...RequestOptionFunc) (*Topic, *Response, error)
	// CreateTopic creates a new project topic.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/topics/#create-a-project-topic
	CreateTopic(opt *CreateTopicOptions, 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
	UpdateTopic(topic int64, opt *UpdateTopicOptions, options ...RequestOptionFunc) (*Topic, *Response, error)
	// DeleteTopic deletes a project topic. Only available to administrators.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/topics/#delete-a-project-topic
	DeleteTopic(topic int64, options ...RequestOptionFunc) (*Response, error)
}

type TrackEventOptions

type TrackEventOptions struct {
	Event                string            `json:"event" url:"event"`
	SendToSnowplow       *bool             `json:"send_to_snowplow,omitempty" url:"send_to_snowplow,omitempty"`
	NamespaceID          *int64            `json:"namespace_id,omitempty" url:"namespace_id,omitempty"`
	ProjectID            *int64            `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

type TrackEventsOptions struct {
	Events []TrackEventOptions `json:"events" url:"events"`
}

TrackEventsOptions represents the available options for tracking multiple events.

type TransferProjectOptions

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

type TransferSubGroupOptions struct {
	GroupID *int64 `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 URLValidationError

type URLValidationError struct {
	URL  string
	Err  error
	Hint string
}

URLValidationError wraps URL parsing errors with helpful context

func (*URLValidationError) Error

func (e *URLValidationError) Error() string

type Unauthenticated

type Unauthenticated struct{}

Unauthenticated is an authentication source for unauthenticated clients

func (Unauthenticated) Header

func (Unauthenticated) Init

type UpdateAdminCompliancePolicySettingsOptions

type UpdateAdminCompliancePolicySettingsOptions struct {
	CSPNamespaceID *int64 `url:"csp_namespace_id,omitempty" json:"csp_namespace_id,omitempty"`
}

UpdateAdminCompliancePolicySettingsOptions represents the available UpdateCompliancePolicySettings() options.

GitLab API docs: https://docs.gitlab.com/api/compliance_policy_settings/#update-security-policy-settings

type UpdateBroadcastMessageOptions

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

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

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

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

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: GitLab API docs: https://docs.gitlab.com/api/draft_notes/#create-a-draft-note

type UpdateEnvironmentAccessOptions

type UpdateEnvironmentAccessOptions struct {
	AccessLevel          *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ID                   *int64            `url:"id,omitempty" json:"id,omitempty"`
	UserID               *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID              *int64            `url:"group_id,omitempty" json:"group_id,omitempty"`
	GroupInheritanceType *int64            `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 description for a protected environment.

GitLab API docs: https://docs.gitlab.com/api/protected_environments/#update-a-protected-environment

type UpdateEnvironmentApprovalRuleOptions

type UpdateEnvironmentApprovalRuleOptions struct {
	ID                     *int64            `url:"id,omitempty" json:"id,omitempty"`
	UserID                 *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID                *int64            `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  *int64            `url:"required_approvals,omitempty" json:"required_approvals,omitempty"`
	GroupInheritanceType   *int64            `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

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 UpdateEpicIssueAssignmentOptions

type UpdateEpicIssueAssignmentOptions struct {
	*ListOptions
	MoveBeforeID *int64 `url:"move_before_id,omitempty" json:"move_before_id,omitempty"`
	MoveAfterID  *int64 `url:"move_after_id,omitempty" json:"move_after_id,omitempty"`
}

type UpdateEpicNoteOptions

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

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         *int64        `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

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

UpdateExternalStatusCheckOptions represents the available UpdateExternalStatusCheck() options. Deprecated: to be removed in 1.0; use UpdateProjectExternalStatusCheckOptions instead

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

type UpdateFeatureFlagUserListOptions

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

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

type UpdateGeoNodesOptions struct {
	ID                               *int64    `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                 *int64    `url:"files_max_capacity,omitempty" json:"files_max_capacity,omitempty"`
	ReposMaxCapacity                 *int64    `url:"repos_max_capacity,omitempty" json:"repos_max_capacity,omitempty"`
	VerificationMaxCapacity          *int64    `url:"verification_max_capacity,omitempty" json:"verification_max_capacity,omitempty"`
	ContainerRepositoriesMaxCapacity *int64    `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        *[]int64  `url:"selective_sync_namespace_ids,omitempty" json:"selective_sync_namespace_ids,omitempty"`
	MinimumReverificationInterval    *int64    `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

type UpdateGroupEnvironmentAccessOptions struct {
	AccessLevel          *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
	ID                   *int64            `url:"id,omitempty" json:"id,omitempty"`
	UserID               *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID              *int64            `url:"group_id,omitempty" json:"group_id,omitempty"`
	GroupInheritanceType *int64            `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 description for a group-level protected environment.

GitLab API docs: https://docs.gitlab.com/api/group_protected_environments/#update-a-protected-environment

type UpdateGroupEnvironmentApprovalRuleOptions

type UpdateGroupEnvironmentApprovalRuleOptions struct {
	ID                     *int64            `url:"id,omitempty" json:"id,omitempty"`
	UserID                 *int64            `url:"user_id,omitempty" json:"user_id,omitempty"`
	GroupID                *int64            `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  *int64            `url:"required_approvals,omitempty" json:"required_approvals,omitempty"`
	GroupInheritanceType   *int64            `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

type UpdateGroupIssueBoardListOptions struct {
	Position *int64 `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

type UpdateGroupIssueBoardOptions struct {
	Name        *string       `url:"name,omitempty" json:"name,omitempty"`
	AssigneeID  *int64        `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	MilestoneID *int64        `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	Labels      *LabelOptions `url:"labels,omitempty" json:"labels,omitempty"`
	Weight      *int64        `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

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    Nullable[int64] `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 UpdateGroupMergeRequestApprovalSettingsOptions

type UpdateGroupMergeRequestApprovalSettingsOptions 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"`
	RequireReauthenticationToApprove            *bool `url:"require_reauthentication_to_approve,omitempty" json:"require_reauthentication_to_approve,omitempty"`
}

UpdateGroupMergeRequestApprovalSettingsOptions represents the available UpdateGroupRequestApprovalSettings() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approval_settings/#update-group-mr-approval-settings

type UpdateGroupMilestoneOptions

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

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                 *int64                                  `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"`
	MaxArtifactsSize                     *int64                                  `url:"max_artifacts_size,omitempty" json:"max_artifacts_size,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                *int64                                  `url:"file_template_project_id,omitempty" json:"file_template_project_id,omitempty"`
	SharedRunnersMinutesLimit            *int64                                  `url:"shared_runners_minutes_limit,omitempty" json:"shared_runners_minutes_limit,omitempty"`
	ExtraSharedRunnersMinutesLimit       *int64                                  `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"`

	OnlyAllowMergeIfPipelineSucceeds          *bool `url:"only_allow_merge_if_pipeline_succeeds,omitempty" json:"only_allow_merge_if_pipeline_succeeds,omitempty"`
	AllowMergeOnSkippedPipeline               *bool `url:"allow_merge_on_skipped_pipeline,omitempty" json:"allow_merge_on_skipped_pipeline,omitempty"`
	OnlyAllowMergeIfAllDiscussionsAreResolved *bool `` /* 130-byte string literal not displayed */

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

	// Deprecated: Use DefaultBranchProtectionDefaults instead
	DefaultBranchProtection         *int64                         `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`
	EnabledGitAccessProtocol        *EnabledGitAccessProtocolValue `url:"enabled_git_access_protocol,omitempty" json:"enabled_git_access_protocol,omitempty"`
	StepUpAuthRequiredOAuthProvider *string                        `url:"step_up_auth_required_oauth_provider,omitempty" json:"step_up_auth_required_oauth_provider,omitempty"`
	// The following fields are Premium and Ultimate only.
	UniqueProjectDownloadLimit                  *int64    `url:"unique_project_download_limit,omitempty" json:"unique_project_download_limit,omitempty"`
	UniqueProjectDownloadLimitIntervalInSeconds *int64    `` /* 132-byte string literal not displayed */
	UniqueProjectDownloadLimitAllowlist         *[]string `url:"unique_project_download_limit_allowlist,omitempty" json:"unique_project_download_limit_allowlist,omitempty"`
	UniqueProjectDownloadLimitAlertlist         *[]int64  `url:"unique_project_download_limit_alertlist,omitempty" json:"unique_project_download_limit_alertlist,omitempty"`
	AutoBanUserOnExcessiveProjectsDownload      *bool     `url:"auto_ban_user_on_excessive_projects_download,omitempty" json:"auto_ban_user_on_excessive_projects_download,omitempty"`

	DuoAvailability                *DuoAvailabilityValue `url:"duo_availability,omitempty" json:"duo_availability,omitempty"`
	ExperimentFeaturesEnabled      *bool                 `url:"experiment_features_enabled,omitempty" json:"experiment_features_enabled,omitempty"`
	MathRenderingLimitsEnabled     *bool                 `url:"math_rendering_limits_enabled,omitempty" json:"math_rendering_limits_enabled,omitempty"`
	LockMathRenderingLimitsEnabled *bool                 `url:"lock_math_rendering_limits_enabled,omitempty" json:"lock_math_rendering_limits_enabled,omitempty"`
	DuoFeaturesEnabled             *bool                 `url:"duo_features_enabled,omitempty" json:"duo_features_enabled,omitempty"`
	LockDuoFeaturesEnabled         *bool                 `url:"lock_duo_features_enabled,omitempty" json:"lock_duo_features_enabled,omitempty"`

	WebBasedCommitSigningEnabled *bool `url:"web_based_commit_signing_enabled,omitempty" json:"web_based_commit_signing_enabled,omitempty"`
	AllowPersonalSnippets        *bool `url:"allow_personal_snippets,omitempty" json:"allow_personal_snippets,omitempty"`
}

UpdateGroupOptions represents the available UpdateGroup() options.

GitLab API docs: https://docs.gitlab.com/api/groups/#update-group-attributes

type UpdateGroupProtectedBranchOptions

type UpdateGroupProtectedBranchOptions 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             *[]*GroupBranchPermissionOptions `url:"allowed_to_push,omitempty" json:"allowed_to_push,omitempty"`
	AllowedToMerge            *[]*GroupBranchPermissionOptions `url:"allowed_to_merge,omitempty" json:"allowed_to_merge,omitempty"`
	AllowedToUnprotect        *[]*GroupBranchPermissionOptions `url:"allowed_to_unprotect,omitempty" json:"allowed_to_unprotect,omitempty"`
}

UpdateGroupProtectedBranchOptions represents the available UpdateProtectedBranch() options.

GitLab API docs: https://docs.gitlab.com/api/group_protected_branches/#update-a-protected-branch

type UpdateGroupProtectedEnvironmentOptions

type UpdateGroupProtectedEnvironmentOptions struct {
	Name                  *string                                       `url:"name,omitempty" json:"name,omitempty"`
	DeployAccessLevels    *[]*UpdateGroupEnvironmentAccessOptions       `url:"deploy_access_levels,omitempty" json:"deploy_access_levels,omitempty"`
	RequiredApprovalCount *int64                                        `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

type UpdateGroupSecuritySettingsOptions struct {
	SecretPushProtectionEnabled *bool    `url:"secret_push_protection_enabled,omitempty" json:"secret_push_protection_enabled,omitempty"`
	ProjectsToExclude           *[]int64 `url:"projects_to_exclude,omitempty" json:"projects_to_exclude,omitempty"`
}

UpdateGroupSecuritySettingsOptions 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

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

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

type UpdateIssueBoardListOptions struct {
	Position *int64 `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

type UpdateIssueBoardOptions struct {
	Name            *string       `url:"name,omitempty" json:"name,omitempty"`
	AssigneeID      *int64        `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	MilestoneID     *int64        `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
	Labels          *LabelOptions `url:"labels,omitempty" json:"labels,omitempty"`
	Weight          *int64        `url:"weight,omitempty" json:"weight,omitempty"`
	HideBacklogList *bool         `url:"hide_backlog_list,omitempty" json:"hide_backlog_list,omitempty"`
	HideClosedList  *bool         `url:"hide_closed_list,omitempty" json:"hide_closed_list,omitempty"`
}

UpdateIssueBoardOptions represents the available UpdateIssueBoard() options.

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

type UpdateIssueDiscussionNoteOptions

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"`
	// AssigneeID is a CE-only attribute. For EE, use AssigneeIDs instead.
	AssigneeID *int64 `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	// AssigneeIDs is a EE-only attribute. For CE, use AssigneeID instead.
	AssigneeIDs      *[]int64      `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
	MilestoneID      *int64        `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           *int64        `url:"epic_id,omitempty" json:"epic_id,omitempty"`
	Weight           *int64        `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

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    Nullable[int64] `url:"priority,omitempty" json:"priority,omitempty"`
	Archived    *bool           `url:"archived,omitempty" json:"archived,omitempty"`
}

UpdateLabelOptions represents the available UpdateLabel() options.

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

type UpdateMergeRequestApprovalRuleOptions

type UpdateMergeRequestApprovalRuleOptions struct {
	Name              *string  `url:"name,omitempty" json:"name,omitempty"`
	ApprovalsRequired *int64   `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
	UserIDs           *[]int64 `url:"user_ids,omitempty" json:"user_ids,omitempty"`
	GroupIDs          *[]int64 `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 UpdateMergeRequestDiscussionNoteOptions

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         *int64        `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
	AssigneeIDs        *[]int64      `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
	ReviewerIDs        *[]int64      `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        *int64        `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

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 UpdatePackageProtectionRulesOptions

type UpdatePackageProtectionRulesOptions struct {
	PackageNamePattern          *string                             `url:"package_name_pattern" json:"package_name_pattern"`
	PackageType                 *string                             `url:"package_type" json:"package_type"`
	MinimumAccessLevelForDelete Nullable[ProtectionRuleAccessLevel] `url:"minimum_access_level_for_delete,omitempty" json:"minimum_access_level_for_delete,omitempty"`
	MinimumAccessLevelForPush   Nullable[ProtectionRuleAccessLevel] `url:"minimum_access_level_for_push,omitempty" json:"minimum_access_level_for_push,omitempty"`
}

UpdatePackageProtectionRulesOptions represents the available UpdatePackageProtectionRules() options.

GitLab API docs: https://docs.gitlab.com/api/project_packages_protection_rules/#update-a-package-protection-rule

type UpdatePagesDomainOptions

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

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"`
	PagesPrimaryDomain       *string `url:"pages_primary_domain,omitempty" json:"pages_primary_domain,omitempty"`
}

UpdatePagesOptions represents the available UpdatePages() options.

GitLab API docs: https://docs.gitlab.com/api/pages/#update-pages-settings-for-a-project

type UpdatePipelineMetadataOptions

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

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 UpdateProjectExternalStatusCheckOptions

type UpdateProjectExternalStatusCheckOptions struct {
	Name               *string  `url:"name,omitempty" json:"name,omitempty"`
	ExternalURL        *string  `url:"external_url,omitempty" json:"external_url,omitempty"`
	SharedSecret       *string  `url:"shared_secret,omitempty" json:"shared_secret,omitempty"`
	ProtectedBranchIDs *[]int64 `url:"protected_branch_ids,omitempty" json:"protected_branch_ids,omitempty"`
}

UpdateProjectExternalStatusCheckOptions represents the available UpdateProjectExternalStatusCheck() options.

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

type UpdateProjectFeatureFlagOptions

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

type UpdateProjectLevelRuleOptions struct {
	Name                          *string   `url:"name,omitempty" json:"name,omitempty"`
	ApprovalsRequired             *int64    `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
	UserIDs                       *[]int64  `url:"user_ids,omitempty" json:"user_ids,omitempty"`
	GroupIDs                      *[]int64  `url:"group_ids,omitempty" json:"group_ids,omitempty"`
	ProtectedBranchIDs            *[]int64  `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 UpdateProjectMergeRequestApprovalSettingsOptions

type UpdateProjectMergeRequestApprovalSettingsOptions 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"`
	RequireReauthenticationToApprove            *bool `url:"require_reauthentication_to_approve,omitempty" json:"require_reauthentication_to_approve,omitempty"`
	SelectiveCodeOwnerRemovals                  *bool `url:"selective_code_owner_removals,omitempty" json:"selective_code_owner_removals,omitempty"`
}

UpdateProjectMergeRequestApprovalSettingsOptions represents the available UpdateProjectMergeRequestApprovalSettings() options.

GitLab API docs: https://docs.gitlab.com/api/merge_request_approval_settings/#update-project-mr-approval-settings

type UpdateProjectSecuritySettingsOptions

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

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

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

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

type UpdateProtectedEnvironmentsOptions struct {
	Name                  *string                                  `url:"name,omitempty" json:"name,omitempty"`
	DeployAccessLevels    *[]*UpdateEnvironmentAccessOptions       `url:"deploy_access_levels,omitempty" json:"deploy_access_levels,omitempty"`
	RequiredApprovalCount *int64                                   `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

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

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 UpdateRunnerControllerOptions

type UpdateRunnerControllerOptions struct {
	Description *string                     `url:"description,omitempty" json:"description,omitempty"`
	State       *RunnerControllerStateValue `url:"state,omitempty" json:"state,omitempty"`
}

UpdateRunnerControllerOptions represents the available UpdateRunnerController() options.

GitLab API docs: https://docs.gitlab.com/api/runner_controllers/#update-a-runner-controller

type UpdateRunnerDetailsOptions

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  *int64    `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

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 UpdateServiceAccountOptions

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

UpdateServiceAccountOptions represents the available UpdateServiceAccount() options.

GitLab API docs: https://docs.gitlab.com/api/service_accounts/#update-a-group-service-account

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"`
	AnonymousSearchesAllowed                              *bool                                   `url:"anonymous_searches_allowed,omitempty" json:"anonymous_searches_allowed,omitempty"`
	ArchiveBuildsInHumanReadable                          *string                                 `url:"archive_builds_in_human_readable,omitempty" json:"archive_builds_in_human_readable,omitempty"`
	ASCIIDocMaxIncludes                                   *int64                                  `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                                     *int64                                  `url:"autocomplete_users,omitempty" json:"autocomplete_users,omitempty"`
	AutocompleteUsersUnauthenticated                      *int64                                  `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                *int64                                  `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                         *int64                                  `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"`
	CanCreateOrganization                                 *bool                                   `url:"can_create_organization,omitempty" json:"can_create_organization,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                                         *int64                                  `url:"ci_max_includes,omitempty" json:"ci_max_includes,omitempty"`
	CIMaxTotalYAMLSizeBytes                               *int64                                  `url:"ci_max_total_yaml_size_bytes,omitempty" json:"ci_max_total_yaml_size_bytes,omitempty"`
	CIPartitionsSizeLimit                                 *int64                                  `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                    *int64                                  `url:"concurrent_bitbucket_import_jobs_limit,omitempty" json:"concurrent_bitbucket_import_jobs_limit,omitempty"`
	ConcurrentBitbucketServerImportJobsLimit              *int64                                  `url:"concurrent_bitbucket_server_import_jobs_limit,omitempty" json:"concurrent_bitbucket_server_import_jobs_limit,omitempty"`
	ConcurrentGitHubImportJobsLimit                       *int64                                  `url:"concurrent_github_import_jobs_limit,omitempty" json:"concurrent_github_import_jobs_limit,omitempty"`
	ContainerExpirationPoliciesEnableHistoricEntries      *bool                                   `` /* 140-byte string literal not displayed */
	ContainerRegistryCleanupTagsServiceMaxListSize        *int64                                  `` /* 140-byte string literal not displayed */
	ContainerRegistryDeleteTagsServiceTimeout             *int64                                  `` /* 126-byte string literal not displayed */
	ContainerRegistryExpirationPoliciesCaching            *bool                                   `` /* 126-byte string literal not displayed */
	ContainerRegistryExpirationPoliciesWorkerCapacity     *int64                                  `` /* 142-byte string literal not displayed */
	ContainerRegistryImportCreatedBefore                  *time.Time                              `url:"container_registry_import_created_before,omitempty" json:"container_registry_import_created_before,omitempty"`
	ContainerRegistryImportMaxRetries                     *int64                                  `url:"container_registry_import_max_retries,omitempty" json:"container_registry_import_max_retries,omitempty"`
	ContainerRegistryImportMaxStepDuration                *int64                                  `url:"container_registry_import_max_step_duration,omitempty" json:"container_registry_import_max_step_duration,omitempty"`
	ContainerRegistryImportMaxTagsCount                   *int64                                  `url:"container_registry_import_max_tags_count,omitempty" json:"container_registry_import_max_tags_count,omitempty"`
	ContainerRegistryImportStartMaxRetries                *int64                                  `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                     *int64                                  `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                                     *int64                                  `url:"dsa_key_restriction,omitempty" json:"dsa_key_restriction,omitempty"`
	DeactivateDormantUsers                                *bool                                   `url:"deactivate_dormant_users,omitempty" json:"deactivate_dormant_users,omitempty"`
	DeactivateDormantUsersPeriod                          *int64                                  `url:"deactivate_dormant_users_period,omitempty" json:"deactivate_dormant_users_period,omitempty"`
	DecompressArchiveFileTimeout                          *int64                                  `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                                *int64                                  `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                                  *int64                                  `url:"default_projects_limit,omitempty" json:"default_projects_limit,omitempty"`
	DefaultSnippetVisibility                              *VisibilityValue                        `url:"default_snippet_visibility,omitempty" json:"default_snippet_visibility,omitempty"`
	DefaultSyntaxHighlightingTheme                        *int64                                  `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                               *int64                                  `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                                          *int64                                  `url:"diff_max_files,omitempty" json:"diff_max_files,omitempty"`
	DiffMaxLines                                          *int64                                  `url:"diff_max_lines,omitempty" json:"diff_max_lines,omitempty"`
	DiffMaxPatchBytes                                     *int64                                  `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       *int64                                  `` /* 142-byte string literal not displayed */
	DuoFeaturesEnabled                                    *bool                                   `url:"duo_features_enabled,omitempty" json:"duo_features_enabled,omitempty"`
	ECDSAKeyRestriction                                   *int64                                  `url:"ecdsa_key_restriction,omitempty" json:"ecdsa_key_restriction,omitempty"`
	ECDSASKKeyRestriction                                 *int64                                  `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                                 *int64                                  `url:"ed25519_key_restriction,omitempty" json:"ed25519_key_restriction,omitempty"`
	Ed25519SKKeyRestriction                               *int64                                  `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                  *int64                                  `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                   *int64                                  `url:"elasticsearch_analyzers_smartcn_search,omitempty" json:"elasticsearch_analyzers_smartcn_search,omitempty"`
	ElasticsearchClientRequestTimeout                     *int64                                  `url:"elasticsearch_client_request_timeout,omitempty" json:"elasticsearch_client_request_timeout,omitempty"`
	ElasticsearchIndexedFieldLengthLimit                  *int64                                  `url:"elasticsearch_indexed_field_length_limit,omitempty" json:"elasticsearch_indexed_field_length_limit,omitempty"`
	ElasticsearchIndexedFileSizeLimitKB                   *int64                                  `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                       *int64                                  `url:"elasticsearch_max_bulk_concurrency,omitempty" json:"elasticsearch_max_bulk_concurrency,omitempty"`
	ElasticsearchMaxBulkSizeMB                            *int64                                  `url:"elasticsearch_max_bulk_size_mb,omitempty" json:"elasticsearch_max_bulk_size_mb,omitempty"`
	ElasticsearchMaxCodeIndexingConcurrency               *int64                                  `url:"elasticsearch_max_code_indexing_concurrency,omitempty" json:"elasticsearch_max_code_indexing_concurrency,omitempty"`
	ElasticsearchNamespaceIDs                             *[]int64                                `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                               *[]int64                                `url:"elasticsearch_project_ids,omitempty" json:"elasticsearch_project_ids,omitempty"`
	ElasticsearchReplicas                                 *int64                                  `url:"elasticsearch_replicas,omitempty" json:"elasticsearch_replicas,omitempty"`
	ElasticsearchRequeueWorkers                           *bool                                   `url:"elasticsearch_requeue_workers,omitempty" json:"elasticsearch_requeue_workers,omitempty"`
	ElasticsearchRetryOnFailure                           *int64                                  `url:"elasticsearch_retry_on_failure,omitempty" json:"elasticsearch_retry_on_failure,omitempty"`
	ElasticsearchSearch                                   *bool                                   `url:"elasticsearch_search,omitempty" json:"elasticsearch_search,omitempty"`
	ElasticsearchShards                                   *int64                                  `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                     *int64                                  `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              *int64                                  `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              *int64                                  `` /* 126-byte string literal not displayed */
	FileTemplateProjectID                                 *int64                                  `url:"file_template_project_id,omitempty" json:"file_template_project_id,omitempty"`
	FirstDayOfWeek                                        *int64                                  `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                                      *int64                                  `url:"geo_status_timeout,omitempty" json:"geo_status_timeout,omitempty"`
	GitRateLimitUsersAlertlist                            *[]int64                                `url:"git_rate_limit_users_alertlist,omitempty" json:"git_rate_limit_users_alertlist,omitempty"`
	GitTwoFactorSessionExpiry                             *int64                                  `url:"git_two_factor_session_expiry,omitempty" json:"git_two_factor_session_expiry,omitempty"`
	GitalyTimeoutDefault                                  *int64                                  `url:"gitaly_timeout_default,omitempty" json:"gitaly_timeout_default,omitempty"`
	GitalyTimeoutFast                                     *int64                                  `url:"gitaly_timeout_fast,omitempty" json:"gitaly_timeout_fast,omitempty"`
	GitalyTimeoutMedium                                   *int64                                  `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                             *int64                                  `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                              *int64                                  `url:"group_download_export_limit,omitempty" json:"group_download_export_limit,omitempty"`
	GroupExportLimit                                      *int64                                  `url:"group_export_limit,omitempty" json:"group_export_limit,omitempty"`
	GroupImportLimit                                      *int64                                  `url:"group_import_limit,omitempty" json:"group_import_limit,omitempty"`
	GroupOwnersCanManageDefaultBranchProtection           *bool                                   `` /* 132-byte string literal not displayed */
	GroupRunnerTokenExpirationInterval                    *int64                                  `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                  *int64                                  `url:"housekeeping_optimize_repository_period,omitempty" json:"housekeeping_optimize_repository_period,omitempty"`
	ImportSources                                         *[]string                               `url:"import_sources,omitempty" json:"import_sources,omitempty"`
	InactiveProjectsDeleteAfterMonths                     *int64                                  `url:"inactive_projects_delete_after_months,omitempty" json:"inactive_projects_delete_after_months,omitempty"`
	InactiveProjectsMinSizeMB                             *int64                                  `url:"inactive_projects_min_size_mb,omitempty" json:"inactive_projects_min_size_mb,omitempty"`
	InactiveProjectsSendWarningEmailAfterMonths           *int64                                  `` /* 132-byte string literal not displayed */
	InactiveResourceAccessTokensDeleteAfterDays           *int64                                  `` /* 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                                     *int64                                  `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                                  *int64                                  `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                                      *int64                                  `url:"max_artifacts_size,omitempty" json:"max_artifacts_size,omitempty"`
	MaxAttachmentSize                                     *int64                                  `url:"max_attachment_size,omitempty" json:"max_attachment_size,omitempty"`
	MaxDecompressedArchiveSize                            *int64                                  `url:"max_decompressed_archive_size,omitempty" json:"max_decompressed_archive_size,omitempty"`
	MaxExportSize                                         *int64                                  `url:"max_export_size,omitempty" json:"max_export_size,omitempty"`
	MaxImportRemoteFileSize                               *int64                                  `url:"max_import_remote_file_size,omitempty" json:"max_import_remote_file_size,omitempty"`
	MaxImportSize                                         *int64                                  `url:"max_import_size,omitempty" json:"max_import_size,omitempty"`
	MaxLoginAttempts                                      *int64                                  `url:"max_login_attempts,omitempty" json:"max_login_attempts,omitempty"`
	MaxNumberOfRepositoryDownloads                        *int64                                  `url:"max_number_of_repository_downloads,omitempty" json:"max_number_of_repository_downloads,omitempty"`
	MaxNumberOfRepositoryDownloadsWithinTimePeriod        *int64                                  `` /* 140-byte string literal not displayed */
	MaxPagesSize                                          *int64                                  `url:"max_pages_size,omitempty" json:"max_pages_size,omitempty"`
	MaxPersonalAccessTokenLifetime                        *int64                                  `url:"max_personal_access_token_lifetime,omitempty" json:"max_personal_access_token_lifetime,omitempty"`
	MaxSSHKeyLifetime                                     *int64                                  `url:"max_ssh_key_lifetime,omitempty" json:"max_ssh_key_lifetime,omitempty"`
	MaxTerraformStateSizeBytes                            *int64                                  `url:"max_terraform_state_size_bytes,omitempty" json:"max_terraform_state_size_bytes,omitempty"`
	MaxYAMLDepth                                          *int64                                  `url:"max_yaml_depth,omitempty" json:"max_yaml_depth,omitempty"`
	MaxYAMLSizeBytes                                      *int64                                  `url:"max_yaml_size_bytes,omitempty" json:"max_yaml_size_bytes,omitempty"`
	MetricsMethodCallThreshold                            *int64                                  `url:"metrics_method_call_threshold,omitempty" json:"metrics_method_call_threshold,omitempty"`
	MinimumPasswordLength                                 *int64                                  `url:"minimum_password_length,omitempty" json:"minimum_password_length,omitempty"`
	MirrorAvailable                                       *bool                                   `url:"mirror_available,omitempty" json:"mirror_available,omitempty"`
	MirrorCapacityThreshold                               *int64                                  `url:"mirror_capacity_threshold,omitempty" json:"mirror_capacity_threshold,omitempty"`
	MirrorMaxCapacity                                     *int64                                  `url:"mirror_max_capacity,omitempty" json:"mirror_max_capacity,omitempty"`
	MirrorMaxDelay                                        *int64                                  `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                                      *int64                                  `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                              *[]int64                                `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          *int64                                  `` /* 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                        *int64                                  `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                            *int64                                  `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                                    *int64                                  `url:"project_export_limit,omitempty" json:"project_export_limit,omitempty"`
	ProjectImportLimit                                    *int64                                  `url:"project_import_limit,omitempty" json:"project_import_limit,omitempty"`
	ProjectJobsAPIRateLimit                               *int64                                  `url:"project_jobs_api_rate_limit,omitempty" json:"project_jobs_api_rate_limit,omitempty"`
	ProjectRunnerTokenExpirationInterval                  *int64                                  `url:"project_runner_token_expiration_interval,omitempty" json:"project_runner_token_expiration_interval,omitempty"`
	ProjectsAPIRateLimitUnauthenticated                   *int64                                  `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                              *int64                                  `url:"push_event_activities_limit,omitempty" json:"push_event_activities_limit,omitempty"`
	PushEventHooksLimit                                   *int64                                  `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                                     *int64                                  `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                                   *int64                                  `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                                   *int64                                  `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                                   *int64                                  `url:"repository_size_limit,omitempty" json:"repository_size_limit,omitempty"`
	RepositoryStorages                                    *[]string                               `url:"repository_storages,omitempty" json:"repository_storages,omitempty"`
	RepositoryStoragesWeighted                            *map[string]int64                       `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                         *int64                                  `url:"runner_token_expiration_interval,omitempty" json:"runner_token_expiration_interval,omitempty"`
	SearchRateLimit                                       *int64                                  `url:"search_rate_limit,omitempty" json:"search_rate_limit,omitempty"`
	SearchRateLimitUnauthenticated                        *int64                                  `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                         *int64                                  `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                                         *bool                                   `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                                    *int64                                  `url:"session_expire_delay,omitempty" json:"session_expire_delay,omitempty"`
	SessionExpireFromInit                                 *bool                                   `url:"session_expire_from_init,omitempty" json:"session_expire_from_init,omitempty"`
	SharedRunnersEnabled                                  *bool                                   `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
	SharedRunnersMinutes                                  *int64                                  `url:"shared_runners_minutes,omitempty" json:"shared_runners_minutes,omitempty"`
	SharedRunnersText                                     *string                                 `url:"shared_runners_text,omitempty" json:"shared_runners_text,omitempty"`
	SidekiqJobLimiterCompressionThresholdBytes            *int64                                  `` /* 128-byte string literal not displayed */
	SidekiqJobLimiterLimitBytes                           *int64                                  `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                                      *int64                                  `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                                *int64                                  `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               *int64                                  `url:"throttle_authenticated_api_period_in_seconds,omitempty" json:"throttle_authenticated_api_period_in_seconds,omitempty"`
	ThrottleAuthenticatedAPIRequestsPerPeriod             *int64                                  `` /* 126-byte string literal not displayed */
	ThrottleAuthenticatedDeprecatedAPIEnabled             *bool                                   `url:"throttle_authenticated_deprecated_api_enabled,omitempty" json:"throttle_authenticated_deprecated_api_enabled,omitempty"`
	ThrottleAuthenticatedDeprecatedAPIPeriodInSeconds     *int64                                  `` /* 144-byte string literal not displayed */
	ThrottleAuthenticatedDeprecatedAPIRequestsPerPeriod   *int64                                  `` /* 148-byte string literal not displayed */
	ThrottleAuthenticatedFilesAPIEnabled                  *bool                                   `url:"throttle_authenticated_files_api_enabled,omitempty" json:"throttle_authenticated_files_api_enabled,omitempty"`
	ThrottleAuthenticatedFilesAPIPeriodInSeconds          *int64                                  `` /* 134-byte string literal not displayed */
	ThrottleAuthenticatedFilesAPIRequestsPerPeriod        *int64                                  `` /* 138-byte string literal not displayed */
	ThrottleAuthenticatedGitLFSEnabled                    *bool                                   `url:"throttle_authenticated_git_lfs_enabled,omitempty" json:"throttle_authenticated_git_lfs_enabled,omitempty"`
	ThrottleAuthenticatedGitLFSPeriodInSeconds            *int64                                  `` /* 130-byte string literal not displayed */
	ThrottleAuthenticatedGitLFSRequestsPerPeriod          *int64                                  `` /* 134-byte string literal not displayed */
	ThrottleAuthenticatedPackagesAPIEnabled               *bool                                   `url:"throttle_authenticated_packages_api_enabled,omitempty" json:"throttle_authenticated_packages_api_enabled,omitempty"`
	ThrottleAuthenticatedPackagesAPIPeriodInSeconds       *int64                                  `` /* 140-byte string literal not displayed */
	ThrottleAuthenticatedPackagesAPIRequestsPerPeriod     *int64                                  `` /* 144-byte string literal not displayed */
	ThrottleAuthenticatedWebEnabled                       *bool                                   `url:"throttle_authenticated_web_enabled,omitempty" json:"throttle_authenticated_web_enabled,omitempty"`
	ThrottleAuthenticatedWebPeriodInSeconds               *int64                                  `url:"throttle_authenticated_web_period_in_seconds,omitempty" json:"throttle_authenticated_web_period_in_seconds,omitempty"`
	ThrottleAuthenticatedWebRequestsPerPeriod             *int64                                  `` /* 126-byte string literal not displayed */
	ThrottleIncidentManagementNotificationEnabled         *bool                                   `` /* 132-byte string literal not displayed */
	ThrottleIncidentManagementNotificationPerPeriod       *int64                                  `` /* 138-byte string literal not displayed */
	ThrottleIncidentManagementNotificationPeriodInSeconds *int64                                  `` /* 152-byte string literal not displayed */
	ThrottleProtectedPathsEnabled                         *bool                                   `url:"throttle_protected_paths_enabled,omitempty" json:"throttle_protected_paths_enabled,omitempty"`
	ThrottleProtectedPathsPeriodInSeconds                 *int64                                  `url:"throttle_protected_paths_period_in_seconds,omitempty" json:"throttle_protected_paths_period_in_seconds,omitempty"`
	ThrottleProtectedPathsRequestsPerPeriod               *int64                                  `url:"throttle_protected_paths_requests_per_period,omitempty" json:"throttle_protected_paths_requests_per_period,omitempty"`
	ThrottleUnauthenticatedAPIEnabled                     *bool                                   `url:"throttle_unauthenticated_api_enabled,omitempty" json:"throttle_unauthenticated_api_enabled,omitempty"`
	ThrottleUnauthenticatedAPIPeriodInSeconds             *int64                                  `` /* 126-byte string literal not displayed */
	ThrottleUnauthenticatedAPIRequestsPerPeriod           *int64                                  `` /* 130-byte string literal not displayed */
	ThrottleUnauthenticatedDeprecatedAPIEnabled           *bool                                   `` /* 128-byte string literal not displayed */
	ThrottleUnauthenticatedDeprecatedAPIPeriodInSeconds   *int64                                  `` /* 148-byte string literal not displayed */
	ThrottleUnauthenticatedDeprecatedAPIRequestsPerPeriod *int64                                  `` /* 152-byte string literal not displayed */
	ThrottleUnauthenticatedFilesAPIEnabled                *bool                                   `url:"throttle_unauthenticated_files_api_enabled,omitempty" json:"throttle_unauthenticated_files_api_enabled,omitempty"`
	ThrottleUnauthenticatedFilesAPIPeriodInSeconds        *int64                                  `` /* 138-byte string literal not displayed */
	ThrottleUnauthenticatedFilesAPIRequestsPerPeriod      *int64                                  `` /* 142-byte string literal not displayed */
	ThrottleUnauthenticatedGitLFSEnabled                  *bool                                   `url:"throttle_unauthenticated_git_lfs_enabled,omitempty" json:"throttle_unauthenticated_git_lfs_enabled,omitempty"`
	ThrottleUnauthenticatedGitLFSPeriodInSeconds          *int64                                  `` /* 134-byte string literal not displayed */
	ThrottleUnauthenticatedGitLFSRequestsPerPeriod        *int64                                  `` /* 138-byte string literal not displayed */
	ThrottleUnauthenticatedPackagesAPIEnabled             *bool                                   `url:"throttle_unauthenticated_packages_api_enabled,omitempty" json:"throttle_unauthenticated_packages_api_enabled,omitempty"`
	ThrottleUnauthenticatedPackagesAPIPeriodInSeconds     *int64                                  `` /* 144-byte string literal not displayed */
	ThrottleUnauthenticatedPackagesAPIRequestsPerPeriod   *int64                                  `` /* 148-byte string literal not displayed */
	ThrottleUnauthenticatedWebEnabled                     *bool                                   `url:"throttle_unauthenticated_web_enabled,omitempty" json:"throttle_unauthenticated_web_enabled,omitempty"`
	ThrottleUnauthenticatedWebPeriodInSeconds             *int64                                  `` /* 126-byte string literal not displayed */
	ThrottleUnauthenticatedWebRequestsPerPeriod           *int64                                  `` /* 130-byte string literal not displayed */
	TimeTrackingLimitToHours                              *bool                                   `url:"time_tracking_limit_to_hours,omitempty" json:"time_tracking_limit_to_hours,omitempty"`
	TwoFactorGracePeriod                                  *int64                                  `url:"two_factor_grace_period,omitempty" json:"two_factor_grace_period,omitempty"`
	UnconfirmedUsersDeleteAfterDays                       *int64                                  `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                                 *int64                                  `url:"unique_ips_limit_per_user,omitempty" json:"unique_ips_limit_per_user,omitempty"`
	UniqueIPsLimitTimeWindow                              *int64                                  `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                                  *int64                                  `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                                     *int64                                  `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                               *int64                                  `url:"wiki_page_max_content_bytes,omitempty" json:"wiki_page_max_content_bytes,omitempty"`
	LockMembershipsToSAML                                 *bool                                   `url:"lock_memberships_to_saml,omitempty" json:"lock_memberships_to_saml,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 *int64 `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 *int64 `url:"housekeeping_full_repack_period,omitempty" json:"housekeeping_full_repack_period,omitempty"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingGcPeriod *int64 `url:"housekeeping_gc_period,omitempty" json:"housekeeping_gc_period,omitempty"`
	// Deprecated: use HousekeepingOptimizeRepositoryPeriod instead
	HousekeepingIncrementalRepackPeriod *int64 `url:"housekeeping_incremental_repack_period,omitempty" json:"housekeeping_incremental_repack_period,omitempty"`
	// Deprecated: use PerformanceBarAllowedGroupPath instead
	PerformanceBarAllowedGroupID *int64 `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 *int64 `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 *int64 `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

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

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

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

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 UpdateWorkItemOptions added in v2.5.0

type UpdateWorkItemOptions struct {
	// Title of the work item.
	Title *string

	// State event for the work item. Possible values: CLOSE, REOPEN
	StateEvent *WorkItemStateEvent

	// Description of the work item.
	Description *string

	// Global IDs of assignees. An empty (non-nil) slice can be used to remove all assignees.
	AssigneeIDs []int64

	// Global ID of the milestone to assign to the work item.
	MilestoneID *int64

	// CRM contact IDs to set. An empty (non-nil) slice can be used to remove all contacts.
	CRMContactIDs []int64

	// Global ID of the parent work item.
	ParentID *int64

	// Global IDs of labels to be added to the work item.
	AddLabelIDs []int64

	// Global IDs of labels to be removed from the work item.
	RemoveLabelIDs []int64

	// Start date for the work item.
	StartDate *ISOTime

	// Due date for the work item.
	DueDate *ISOTime

	// Weight of the work item.
	Weight *int64

	// Health status to be assigned to the work item. Possible values: onTrack, needsAttention, atRisk
	HealthStatus *string

	// Global ID of the iteration to assign to the work item.
	IterationID *int64

	// Color of the work item, represented as a hex code or named color. Example: "#fefefe"
	Color *string

	// Global ID of the work item status.
	Status *WorkItemStatusID
}

UpdateWorkItemOptions represents the available UpdateWorkItem() options.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#mutationworkitemupdate

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

type UploadMetricImageOptions

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

type UploadType string

UploadType represents the available upload types.

const (
	UploadAvatar UploadType = "avatar"
	UploadFile   UploadType = "file"
)

The available upload types.

type UploadWikiAttachmentOptions

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

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

func (s *UsageDataService) GetMetricDefinitionsAsYAML(options ...RequestOptionFunc) (io.ReadCloser, *Response, error)

GetMetricDefinitionsAsYAML gets all metric definitions as a single YAML file.

The returned io.ReadCloser must be closed by the caller to avoid leaking the underlying response body.

GitLab API docs: https://docs.gitlab.com/api/usage_data/#export-metric-definitions-as-a-single-yaml-file

func (*UsageDataService) GetNonSQLMetrics

func (s *UsageDataService) GetNonSQLMetrics(options ...RequestOptionFunc) (*ServicePingNonSQLMetrics, *Response, error)

func (*UsageDataService) GetQueries

func (s *UsageDataService) GetQueries(options ...RequestOptionFunc) (*ServicePingQueries, *Response, error)

func (*UsageDataService) GetServicePing

func (s *UsageDataService) GetServicePing(options ...RequestOptionFunc) (*ServicePingData, *Response, error)

func (*UsageDataService) TrackEvent

func (s *UsageDataService) TrackEvent(opt *TrackEventOptions, options ...RequestOptionFunc) (*Response, error)

func (*UsageDataService) TrackEvents

func (s *UsageDataService) TrackEvents(opt *TrackEventsOptions, options ...RequestOptionFunc) (*Response, error)

type UsageDataServiceInterface

type UsageDataServiceInterface interface {
	// GetServicePing gets the current service ping data.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/usage_data/#export-service-ping-data
	GetServicePing(options ...RequestOptionFunc) (*ServicePingData, *Response, error)
	// GetMetricDefinitionsAsYAML gets all metric definitions as a single YAML file.
	//
	// The returned io.ReadCloser must be closed by the caller to avoid
	// leaking the underlying response body.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/usage_data/#export-metric-definitions-as-a-single-yaml-file
	GetMetricDefinitionsAsYAML(options ...RequestOptionFunc) (io.ReadCloser, *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
	GetQueries(options ...RequestOptionFunc) (*ServicePingQueries, *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
	GetNonSQLMetrics(options ...RequestOptionFunc) (*ServicePingNonSQLMetrics, *Response, error)
	// TrackEvent tracks an internal GitLab event.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/usage_data/#events-tracking-api
	TrackEvent(opt *TrackEventOptions, options ...RequestOptionFunc) (*Response, error)
	// TrackEvents tracks multiple internal GitLab events.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/usage_data/#events-tracking-api
	TrackEvents(opt *TrackEventsOptions, options ...RequestOptionFunc) (*Response, error)
}

type User

type User struct {
	ID                             int64              `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                        int64              `json:"theme_id"`
	LastActivityOn                 *ISOTime           `json:"last_activity_on"`
	ColorSchemeID                  int64              `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"`
	CanCreateOrganization          bool               `json:"can_create_organization"`
	ProjectsLimit                  int64              `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      int64              `json:"shared_runners_minutes_limit"`
	ExtraSharedRunnersMinutesLimit int64              `json:"extra_shared_runners_minutes_limit"`
	UsingLicenseSeat               bool               `json:"using_license_seat"`
	CustomAttributes               []*CustomAttribute `json:"custom_attributes"`
	NamespaceID                    int64              `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

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

type UserAssociationsCount struct {
	GroupsCount        int64 `json:"groups_count"`
	ProjectsCount      int64 `json:"projects_count"`
	IssuesCount        int64 `json:"issues_count"`
	MergeRequestsCount int64 `json:"merge_requests_count"`
}

UserAssociationsCount represents the user associations count.

GitLab API docs: https://docs.gitlab.com/api/users/#retrieve-a-count-of-a-users-projects-groups-issues-and-merge-requests

type UserAvatar

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

func (a *UserAvatar) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

type UserGroupSystemEvent

type UserGroupSystemEvent struct {
	BaseSystemEvent
	ID          int64  `json:"user_id"`
	Name        string `json:"user_name"`
	Username    string `json:"user_username"`
	Email       string `json:"user_email"`
	GroupID     int64  `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 UserID

type UserID struct {
	Value any
}

UserID represents a user identifier for API paths. It accepts either a numeric user ID or a username string. If a username is provided with a leading "@" character (e.g., "@johndoe"), the "@" will be trimmed.

type UserIDValue

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

type UserMembership struct {
	SourceID    int64            `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

type UserRunner struct {
	ID             int64      `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

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/#retrieve-your-user-status

type UserStatusOptions

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

type UserSystemEvent struct {
	BaseSystemEvent
	ID          int64  `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

type UserTeamSystemEvent struct {
	BaseSystemEvent
	ID                       int64  `json:"user_id"`
	Name                     string `json:"user_name"`
	Username                 string `json:"user_username"`
	Email                    string `json:"user_email"`
	ProjectID                int64  `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

func (s *UsersService) ActivateUser(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) AddEmail

func (s *UsersService) AddEmail(opt *AddEmailOptions, options ...RequestOptionFunc) (*Email, *Response, error)

func (*UsersService) AddEmailForUser

func (s *UsersService) AddEmailForUser(user int64, opt *AddEmailOptions, options ...RequestOptionFunc) (*Email, *Response, error)

func (*UsersService) AddGPGKey

func (s *UsersService) AddGPGKey(opt *AddGPGKeyOptions, options ...RequestOptionFunc) (*GPGKey, *Response, error)

func (*UsersService) AddGPGKeyForUser

func (s *UsersService) AddGPGKeyForUser(user int64, opt *AddGPGKeyOptions, options ...RequestOptionFunc) (*GPGKey, *Response, error)

func (*UsersService) AddSSHKey

func (s *UsersService) AddSSHKey(opt *AddSSHKeyOptions, options ...RequestOptionFunc) (*SSHKey, *Response, error)

func (*UsersService) AddSSHKeyForUser

func (s *UsersService) AddSSHKeyForUser(user int64, opt *AddSSHKeyOptions, options ...RequestOptionFunc) (*SSHKey, *Response, error)

func (*UsersService) ApproveUser

func (s *UsersService) ApproveUser(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) BanUser

func (s *UsersService) BanUser(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) BlockUser

func (s *UsersService) BlockUser(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) CreateImpersonationToken

func (s *UsersService) CreateImpersonationToken(user int64, opt *CreateImpersonationTokenOptions, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error)

func (*UsersService) CreatePersonalAccessToken

func (s *UsersService) CreatePersonalAccessToken(user int64, opt *CreatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

func (*UsersService) CreatePersonalAccessTokenForCurrentUser

func (s *UsersService) CreatePersonalAccessTokenForCurrentUser(opt *CreatePersonalAccessTokenForCurrentUserOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)

func (*UsersService) CreateServiceAccountUser

func (s *UsersService) CreateServiceAccountUser(opts *CreateServiceAccountUserOptions, options ...RequestOptionFunc) (*User, *Response, error)

func (*UsersService) CreateUser

func (s *UsersService) CreateUser(opt *CreateUserOptions, options ...RequestOptionFunc) (*User, *Response, error)

func (*UsersService) CreateUserRunner

func (s *UsersService) CreateUserRunner(opts *CreateUserRunnerOptions, options ...RequestOptionFunc) (*UserRunner, *Response, error)

func (*UsersService) CurrentUser

func (s *UsersService) CurrentUser(options ...RequestOptionFunc) (*User, *Response, error)

func (*UsersService) CurrentUserStatus

func (s *UsersService) CurrentUserStatus(options ...RequestOptionFunc) (*UserStatus, *Response, error)

func (*UsersService) DeactivateUser

func (s *UsersService) DeactivateUser(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) DeleteEmail

func (s *UsersService) DeleteEmail(email int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) DeleteEmailForUser

func (s *UsersService) DeleteEmailForUser(user, email int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) DeleteGPGKey

func (s *UsersService) DeleteGPGKey(key int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) DeleteGPGKeyForUser

func (s *UsersService) DeleteGPGKeyForUser(user, key int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) DeleteSSHKey

func (s *UsersService) DeleteSSHKey(key int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) DeleteSSHKeyForUser

func (s *UsersService) DeleteSSHKeyForUser(user, key int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) DeleteUser

func (s *UsersService) DeleteUser(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) DeleteUserIdentity

func (s *UsersService) DeleteUserIdentity(user int64, provider string, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) DisableTwoFactor

func (s *UsersService) DisableTwoFactor(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) GetAllImpersonationTokens

func (s *UsersService) GetAllImpersonationTokens(user int64, opt *GetAllImpersonationTokensOptions, options ...RequestOptionFunc) ([]*ImpersonationToken, *Response, error)

func (*UsersService) GetEmail

func (s *UsersService) GetEmail(email int64, options ...RequestOptionFunc) (*Email, *Response, error)

func (*UsersService) GetGPGKey

func (s *UsersService) GetGPGKey(key int64, options ...RequestOptionFunc) (*GPGKey, *Response, error)

func (*UsersService) GetGPGKeyForUser

func (s *UsersService) GetGPGKeyForUser(user, key int64, options ...RequestOptionFunc) (*GPGKey, *Response, error)

func (*UsersService) GetImpersonationToken

func (s *UsersService) GetImpersonationToken(user, token int64, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error)

func (*UsersService) GetSSHKey

func (s *UsersService) GetSSHKey(key int64, options ...RequestOptionFunc) (*SSHKey, *Response, error)

func (*UsersService) GetSSHKeyForUser

func (s *UsersService) GetSSHKeyForUser(user int64, key int64, options ...RequestOptionFunc) (*SSHKey, *Response, error)

func (*UsersService) GetUser

func (s *UsersService) GetUser(user int64, opt *GetUserOptions, options ...RequestOptionFunc) (*User, *Response, error)

func (*UsersService) GetUserActivities

func (s *UsersService) GetUserActivities(opt *GetUserActivitiesOptions, options ...RequestOptionFunc) ([]*UserActivity, *Response, error)

func (*UsersService) GetUserAssociationsCount

func (s *UsersService) GetUserAssociationsCount(user int64, 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

func (s *UsersService) GetUserMemberships(user int64, opt *GetUserMembershipOptions, options ...RequestOptionFunc) ([]*UserMembership, *Response, error)

func (*UsersService) GetUserStatus

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). If a username is provided with a leading "@" (e.g., "@johndoe"), it will be trimmed.

GitLab API docs: https://docs.gitlab.com/api/users/#get-the-status-of-a-user

func (*UsersService) ListEmails

func (s *UsersService) ListEmails(options ...RequestOptionFunc) ([]*Email, *Response, error)

func (*UsersService) ListEmailsForUser

func (s *UsersService) ListEmailsForUser(user int64, opt *ListEmailsForUserOptions, options ...RequestOptionFunc) ([]*Email, *Response, error)

func (*UsersService) ListGPGKeys

func (s *UsersService) ListGPGKeys(options ...RequestOptionFunc) ([]*GPGKey, *Response, error)

func (*UsersService) ListGPGKeysForUser

func (s *UsersService) ListGPGKeysForUser(user int64, options ...RequestOptionFunc) ([]*GPGKey, *Response, error)

func (*UsersService) ListSSHKeys

func (s *UsersService) ListSSHKeys(opt *ListSSHKeysOptions, options ...RequestOptionFunc) ([]*SSHKey, *Response, error)

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.

uid can be either a user ID (int) or a username (string). If a username is provided with a leading "@" (e.g., "@johndoe"), it will be trimmed.

GitLab API docs: https://docs.gitlab.com/api/user_keys/#list-all-ssh-keys-for-a-user

func (*UsersService) ListServiceAccounts

func (s *UsersService) ListServiceAccounts(opt *ListServiceAccountsOptions, options ...RequestOptionFunc) ([]*ServiceAccount, *Response, error)

func (*UsersService) ListUserContributionEvents

func (s *UsersService) ListUserContributionEvents(uid any, opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error)

func (*UsersService) ListUsers

func (s *UsersService) ListUsers(opt *ListUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)

func (*UsersService) ModifyUser

func (s *UsersService) ModifyUser(user int64, opt *ModifyUserOptions, options ...RequestOptionFunc) (*User, *Response, error)

func (*UsersService) RejectUser

func (s *UsersService) RejectUser(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) RevokeImpersonationToken

func (s *UsersService) RevokeImpersonationToken(user, token int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) SetUserStatus

func (s *UsersService) SetUserStatus(opt *UserStatusOptions, options ...RequestOptionFunc) (*UserStatus, *Response, error)

func (*UsersService) UnbanUser

func (s *UsersService) UnbanUser(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) UnblockUser

func (s *UsersService) UnblockUser(user int64, options ...RequestOptionFunc) (*Response, error)

func (*UsersService) UploadAvatar

func (s *UsersService) UploadAvatar(avatar io.Reader, filename string, options ...RequestOptionFunc) (*User, *Response, error)

type UsersServiceInterface

type UsersServiceInterface interface {
	// ListUsers gets a list of users.
	//
	// GitLab API docs: https://docs.gitlab.com/api/users/#list-users
	ListUsers(opt *ListUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error)
	// GetUser gets a single user.
	//
	// GitLab API docs: https://docs.gitlab.com/api/users/#get-a-single-user
	GetUser(user int64, opt *GetUserOptions, 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
	CreateUser(opt *CreateUserOptions, 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
	ModifyUser(user int64, opt *ModifyUserOptions, options ...RequestOptionFunc) (*User, *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
	DeleteUser(user int64, options ...RequestOptionFunc) (*Response, error)
	// CurrentUser gets currently authenticated user.
	//
	// GitLab API docs: https://docs.gitlab.com/api/users/#get-the-current-user
	CurrentUser(options ...RequestOptionFunc) (*User, *Response, error)
	// CurrentUserStatus retrieves the user status
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/users/#get-your-user-status
	CurrentUserStatus(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
	GetUserStatus(uid any, options ...RequestOptionFunc) (*UserStatus, *Response, error)
	// SetUserStatus sets the user's status
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/users/#set-your-user-status
	SetUserStatus(opt *UserStatusOptions, options ...RequestOptionFunc) (*UserStatus, *Response, error)
	// GetUserAssociationsCount gets a list of a specified user's associations.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/users/#get-a-count-of-a-users-projects-groups-issues-and-merge-requests
	GetUserAssociationsCount(user int64, options ...RequestOptionFunc) (*UserAssociationsCount, *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
	ListSSHKeys(opt *ListSSHKeysOptions, options ...RequestOptionFunc) ([]*SSHKey, *Response, error)
	// ListSSHKeysForUser gets a list of a specified user's SSH keys.
	//
	// uid can be either a user ID (int) or a username (string). If a username
	// is provided with a leading "@" (e.g., "@johndoe"), it will be trimmed.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/user_keys/#list-all-ssh-keys-for-a-user
	ListSSHKeysForUser(uid any, opt *ListSSHKeysForUserOptions, options ...RequestOptionFunc) ([]*SSHKey, *Response, error)
	// GetSSHKey gets a single key.
	//
	// GitLab API docs: https://docs.gitlab.com/api/user_keys/#get-an-ssh-key
	GetSSHKey(key int64, 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
	GetSSHKeyForUser(user int64, key int64, 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
	AddSSHKey(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
	AddSSHKeyForUser(user int64, opt *AddSSHKeyOptions, options ...RequestOptionFunc) (*SSHKey, *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
	DeleteSSHKey(key int64, 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
	DeleteSSHKeyForUser(user, key int64, options ...RequestOptionFunc) (*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
	ListGPGKeys(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
	GetGPGKey(key int64, 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
	AddGPGKey(opt *AddGPGKeyOptions, options ...RequestOptionFunc) (*GPGKey, *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
	DeleteGPGKey(key int64, options ...RequestOptionFunc) (*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
	ListGPGKeysForUser(user int64, 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
	GetGPGKeyForUser(user, key int64, 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
	AddGPGKeyForUser(user int64, opt *AddGPGKeyOptions, options ...RequestOptionFunc) (*GPGKey, *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
	DeleteGPGKeyForUser(user, key int64, options ...RequestOptionFunc) (*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
	ListEmails(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
	ListEmailsForUser(user int64, opt *ListEmailsForUserOptions, 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
	GetEmail(email int64, 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
	AddEmail(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
	AddEmailForUser(user int64, opt *AddEmailOptions, options ...RequestOptionFunc) (*Email, *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
	DeleteEmail(email int64, 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
	DeleteEmailForUser(user, email int64, options ...RequestOptionFunc) (*Response, 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
	BlockUser(user int64, options ...RequestOptionFunc) (*Response, 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
	UnblockUser(user int64, options ...RequestOptionFunc) (*Response, error)
	// BanUser bans the specified user. Available only for admin.
	//
	// GitLab API docs: https://docs.gitlab.com/api/user_moderation/#ban-a-user
	BanUser(user int64, options ...RequestOptionFunc) (*Response, error)
	// UnbanUser unbans the specified user. Available only for admin.
	//
	// GitLab API docs: https://docs.gitlab.com/api/user_moderation/#unban-a-user
	UnbanUser(user int64, options ...RequestOptionFunc) (*Response, error)
	// DeactivateUser deactivate the specified user. Available only for admin.
	//
	// GitLab API docs: https://docs.gitlab.com/api/user_moderation/#deactivate-a-user
	DeactivateUser(user int64, options ...RequestOptionFunc) (*Response, error)
	// ActivateUser activate the specified user. Available only for admin.
	//
	// GitLab API docs: https://docs.gitlab.com/api/user_moderation/#reactivate-a-user
	ActivateUser(user int64, options ...RequestOptionFunc) (*Response, 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
	ApproveUser(user int64, options ...RequestOptionFunc) (*Response, 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
	RejectUser(user int64, options ...RequestOptionFunc) (*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
	GetAllImpersonationTokens(user int64, opt *GetAllImpersonationTokensOptions, 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
	GetImpersonationToken(user, token int64, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error)
	// CreateImpersonationToken creates an impersonation token.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/user_tokens/#create-an-impersonation-token
	CreateImpersonationToken(user int64, opt *CreateImpersonationTokenOptions, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error)
	// RevokeImpersonationToken revokes an impersonation token.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/user_tokens/#revoke-an-impersonation-token
	RevokeImpersonationToken(user, token int64, options ...RequestOptionFunc) (*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
	CreatePersonalAccessToken(user int64, opt *CreatePersonalAccessTokenOptions, 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
	CreatePersonalAccessTokenForCurrentUser(opt *CreatePersonalAccessTokenForCurrentUserOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error)
	// GetUserActivities retrieves user activities (admin only)
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/users/#list-a-users-activity
	GetUserActivities(opt *GetUserActivitiesOptions, options ...RequestOptionFunc) ([]*UserActivity, *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
	GetUserMemberships(user int64, opt *GetUserMembershipOptions, options ...RequestOptionFunc) ([]*UserMembership, *Response, 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
	DisableTwoFactor(user int64, options ...RequestOptionFunc) (*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
	CreateUserRunner(opts *CreateUserRunnerOptions, options ...RequestOptionFunc) (*UserRunner, *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
	CreateServiceAccountUser(opts *CreateServiceAccountUserOptions, options ...RequestOptionFunc) (*User, *Response, error)
	// ListServiceAccounts lists all service accounts.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/user_service_accounts/#list-all-service-account-users
	ListServiceAccounts(opt *ListServiceAccountsOptions, options ...RequestOptionFunc) ([]*ServiceAccount, *Response, error)
	// UploadAvatar uploads an avatar to the current user.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/users/#upload-an-avatar-for-yourself
	UploadAvatar(avatar io.Reader, filename string, options ...RequestOptionFunc) (*User, *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
	DeleteUserIdentity(user int64, provider string, options ...RequestOptionFunc) (*Response, error)

	// events.go
	ListUserContributionEvents(uid any, opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error)
}

type ValidateService

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

func (s *ValidateService) ProjectLint(pid any, opt *ProjectLintOptions, options ...RequestOptionFunc) (*ProjectLintResult, *Response, error)

func (*ValidateService) ProjectNamespaceLint

func (s *ValidateService) ProjectNamespaceLint(pid any, opt *ProjectNamespaceLintOptions, options ...RequestOptionFunc) (*ProjectLintResult, *Response, error)

type ValidateServiceInterface

type ValidateServiceInterface interface {
	// ProjectNamespaceLint validates .gitlab-ci.yml content by project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/lint/#validate-sample-cicd-configuration
	ProjectNamespaceLint(pid any, opt *ProjectNamespaceLintOptions, 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
	ProjectLint(pid any, opt *ProjectLintOptions, options ...RequestOptionFunc) (*ProjectLintResult, *Response, error)
}

type VariableFilter

type VariableFilter struct {
	EnvironmentScope string `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
}

VariableFilter filters available for project variable related functions

type VariableTypeValue

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

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

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

func (s Version) String() string

type VersionService

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

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

type VersionServiceInterface interface {
	GetVersion(options ...RequestOptionFunc) (*Version, *Response, error)
}

type VisibilityValue

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 VulnerabilityEvent

type VulnerabilityEvent struct {
	ObjectKind       string                             `json:"object_kind"`
	ObjectAttributes VulnerabilityEventObjectAttributes `json:"object_attributes"`
}

VulnerabilityEvent represents a vulnerability event.

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

type VulnerabilityEventCVSS

type VulnerabilityEventCVSS struct {
	Vector string `json:"vector"`
	Vendor string `json:"vendor"`
}

type VulnerabilityEventIdentifier

type VulnerabilityEventIdentifier struct {
	Name         string `json:"name"`
	ExternalID   string `json:"external_id"`
	ExternalType string `json:"external_type"`
	URL          string `json:"url"`
}

type VulnerabilityEventIssue

type VulnerabilityEventIssue struct {
	Title     string `json:"title"`
	URL       string `json:"url"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

type VulnerabilityEventLocation

type VulnerabilityEventLocation struct {
	File       string                               `json:"file"`
	Dependency VulnerabilityEventLocationDependency `json:"dependency"`
}

type VulnerabilityEventLocationDependency

type VulnerabilityEventLocationDependency struct {
	Package VulnerabilityEventLocationDependencyPackage `json:"package"`
	Version string                                      `json:"version"`
}

type VulnerabilityEventLocationDependencyPackage

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

type VulnerabilityEventObjectAttributes

type VulnerabilityEventObjectAttributes struct {
	ID                      int64                          `json:"id"`
	URL                     string                         `json:"url"`
	Title                   string                         `json:"title"`
	State                   string                         `json:"state"`
	ProjectID               int64                          `json:"project_id"`
	Location                VulnerabilityEventLocation     `json:"location"`
	CVSS                    []VulnerabilityEventCVSS       `json:"cvss"`
	Severity                string                         `json:"severity"`
	SeverityOverridden      bool                           `json:"severity_overridden"`
	Identifiers             []VulnerabilityEventIdentifier `json:"identifiers"`
	Issues                  []VulnerabilityEventIssue      `json:"issues"`
	ReportType              string                         `json:"report_type"`
	Confidence              string                         `json:"confidence"`
	ConfidenceOverridden    bool                           `json:"confidence_overridden"`
	ConfirmedAt             string                         `json:"confirmed_at"`
	ConfirmedByID           int64                          `json:"confirmed_by_id"`
	DismissedAt             string                         `json:"dismissed_at"`
	DismissedByID           int64                          `json:"dismissed_by_id"`
	ResolvedAt              string                         `json:"resolved_at"`
	ResolvedByID            int64                          `json:"resolved_by_id"`
	AutoResolved            bool                           `json:"auto_resolved"`
	ResolvedOnDefaultBranch bool                           `json:"resolved_on_default_branch"`
	CreatedAt               string                         `json:"created_at"`
	UpdatedAt               string                         `json:"updated_at"`
}

type WebexTeamsIntegration

type WebexTeamsIntegration struct {
	Integration
	Properties WebexTeamsIntegrationProperties `json:"properties"`
}

WebexTeamsIntegration represents the WebexTeams integration settings.

GitLab API docs: https://docs.gitlab.com/api/group_integrations/#get-webex-teams-settings

type WebexTeamsIntegrationProperties

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

WebexTeamsIntegrationProperties represents WebexTeams specific properties

type WeightEvent

type WeightEvent struct {
	ID           int64          `json:"id"`
	User         *BasicUser     `json:"user"`
	CreatedAt    *time.Time     `json:"created_at"`
	ResourceType string         `json:"resource_type"`
	ResourceID   int64          `json:"resource_id"`
	State        EventTypeValue `json:"state"`
	IssueID      int64          `json:"issue_id"`
	Weight       int64          `json:"weight"`
}

WeightEvent represents a resource weight event.

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

type Wiki

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

func (w Wiki) String() string

type WikiAttachment

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

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

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

type WikiPageEvent struct {
	ObjectKind       string                        `json:"object_kind"`
	User             *EventUser                    `json:"user"`
	Project          WikiPageEventProject          `json:"project"`
	Wiki             WikiPageEventWiki             `json:"wiki"`
	ObjectAttributes WikiPageEventObjectAttributes `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 WikiPageEventObjectAttributes

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

type WikiPageEventProject

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

type WikiPageEventWiki

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

type WikisService

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

func (s *WikisService) CreateWikiPage(pid any, opt *CreateWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)

func (*WikisService) DeleteWikiPage

func (s *WikisService) DeleteWikiPage(pid any, slug string, options ...RequestOptionFunc) (*Response, error)

func (*WikisService) EditWikiPage

func (s *WikisService) EditWikiPage(pid any, slug string, opt *EditWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)

func (*WikisService) GetWikiPage

func (s *WikisService) GetWikiPage(pid any, slug string, opt *GetWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)

func (*WikisService) ListWikis

func (s *WikisService) ListWikis(pid any, opt *ListWikisOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)

func (*WikisService) UploadWikiAttachment

func (s *WikisService) UploadWikiAttachment(pid any, content io.Reader, filename string, opt *UploadWikiAttachmentOptions, options ...RequestOptionFunc) (*WikiAttachment, *Response, error)

type WikisServiceInterface

type WikisServiceInterface interface {
	// 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-all-wiki-pages
	ListWikis(pid any, opt *ListWikisOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error)
	// GetWikiPage gets a wiki page for a given project.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/wikis/#retrieve-a-wiki-page
	GetWikiPage(pid any, slug string, opt *GetWikiPageOptions, 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-wiki-page
	CreateWikiPage(pid any, opt *CreateWikiPageOptions, 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/#update-a-wiki-page
	EditWikiPage(pid any, slug string, opt *EditWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error)
	// DeleteWikiPage deletes a wiki page with a given slug.
	//
	// GitLab API docs:
	// https://docs.gitlab.com/api/wikis/#delete-a-wiki-page
	DeleteWikiPage(pid any, slug string, options ...RequestOptionFunc) (*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
	UploadWikiAttachment(pid any, content io.Reader, filename string, opt *UploadWikiAttachmentOptions, options ...RequestOptionFunc) (*WikiAttachment, *Response, error)
}

type WorkItem

type WorkItem struct {
	ID          int64
	IID         int64
	Type        string
	State       string
	Status      *string
	Title       string
	Description string
	CreatedAt   *time.Time
	UpdatedAt   *time.Time
	ClosedAt    *time.Time
	WebURL      string
	Author      *BasicUser
	Assignees   []*BasicUser

	Color        *string
	Confidential bool
	DueDate      *ISOTime
	HealthStatus *string
	IterationID  *int64
	Labels       []LabelDetails
	LinkedItems  []LinkedWorkItem
	MilestoneID  *int64
	Parent       *WorkItemIID
	StartDate    *ISOTime
	Weight       *int64
}

WorkItem represents a GitLab work item.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#workitem

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

func (WorkItem) GID

func (wi WorkItem) GID() string

type WorkItemIID

type WorkItemIID struct {
	NamespacePath string
	IID           int64
}

WorkItemIID identifies a work item by its namespace path and internal ID.

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

type WorkItemStateEvent added in v2.5.0

type WorkItemStateEvent string

WorkItemStateEvent represents a state change event for a work item.

const (
	WorkItemStateEventClose  WorkItemStateEvent = "CLOSE"
	WorkItemStateEventReopen WorkItemStateEvent = "REOPEN"
)

type WorkItemStatusID added in v2.5.0

type WorkItemStatusID string

WorkItemStatusID represents the global ID of a work item status.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#workitemsstatus

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

const (
	WorkItemStatusToDo       WorkItemStatusID = `gid://gitlab/WorkItems::Statuses::SystemDefined::Status/1`
	WorkItemStatusInProgress WorkItemStatusID = `gid://gitlab/WorkItems::Statuses::SystemDefined::Status/2`
	WorkItemStatusDone       WorkItemStatusID = `gid://gitlab/WorkItems::Statuses::SystemDefined::Status/3`
	WorkItemStatusWontDo     WorkItemStatusID = `gid://gitlab/WorkItems::Statuses::SystemDefined::Status/4`
	WorkItemStatusDuplicate  WorkItemStatusID = `gid://gitlab/WorkItems::Statuses::SystemDefined::Status/5`
)

WorkItemStatusID constants for the system-defined work item statuses.

type WorkItemTypeID

type WorkItemTypeID string

WorkItemTypeID represents the global ID of a work item type.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#workitemtype

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

const (
	WorkItemTypeIssue       WorkItemTypeID = `gid://gitlab/WorkItems::Type/1`
	WorkItemTypeIncident    WorkItemTypeID = `gid://gitlab/WorkItems::Type/2`
	WorkItemTypeTestCase    WorkItemTypeID = `gid://gitlab/WorkItems::Type/3`
	WorkItemTypeRequirement WorkItemTypeID = `gid://gitlab/WorkItems::Type/4`
	WorkItemTypeTask        WorkItemTypeID = `gid://gitlab/WorkItems::Type/5`
	WorkItemTypeObjective   WorkItemTypeID = `gid://gitlab/WorkItems::Type/6`
	WorkItemTypeKeyResult   WorkItemTypeID = `gid://gitlab/WorkItems::Type/7`
	WorkItemTypeEpic        WorkItemTypeID = `gid://gitlab/WorkItems::Type/8`
	WorkItemTypeTicket      WorkItemTypeID = `gid://gitlab/WorkItems::Type/9`
)

WorkItemTypeID constants for the system-defined work item types.

type WorkItemsService

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

WorkItemsService handles communication with the work item related methods of the GitLab API.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#workitem

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

func (*WorkItemsService) CreateWorkItem

func (s *WorkItemsService) CreateWorkItem(fullPath string, workItemTypeID WorkItemTypeID, opt *CreateWorkItemOptions, options ...RequestOptionFunc) (*WorkItem, *Response, error)

CreateWorkItem creates a new work item.

fullPath is the full path to either a group or project. workItemTypeID is the GraphQL ID of the work item type. opt contains the options for creating the work item.

GitLab API docs: https://docs.gitlab.com/ee/api/graphql/reference/#workitemcreateinput

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

func (*WorkItemsService) DeleteWorkItem added in v2.7.0

func (s *WorkItemsService) DeleteWorkItem(fullPath string, iid int64, options ...RequestOptionFunc) (*Response, error)

DeleteWorkItem deletes a single work item.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#mutationworkitemdelete

func (*WorkItemsService) GetWorkItem

func (s *WorkItemsService) GetWorkItem(fullPath string, iid int64, options ...RequestOptionFunc) (*WorkItem, *Response, error)

GetWorkItem gets a single work item.

fullPath is the full path to either a group or project. iid is the internal ID of the work item.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#namespaceworkitem

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

func (*WorkItemsService) ListWorkItems

func (s *WorkItemsService) ListWorkItems(fullPath string, opt *ListWorkItemsOptions, options ...RequestOptionFunc) ([]*WorkItem, *Response, error)

ListWorkItems lists workitems in a given namespace (group or project).

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#namespaceworkitems

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

func (*WorkItemsService) UpdateWorkItem added in v2.5.0

func (s *WorkItemsService) UpdateWorkItem(fullPath string, iid int64, opt *UpdateWorkItemOptions, options ...RequestOptionFunc) (*WorkItem, *Response, error)

UpdateWorkItem updates a work item by fullPath and iid.

GitLab API docs: https://docs.gitlab.com/api/graphql/reference/#mutationworkitemupdate

Experimental: The Work Items API is a work in progress and may introduce breaking changes even between minor versions.

type WorkItemsServiceInterface

type WorkItemsServiceInterface interface {
	CreateWorkItem(fullPath string, workItemTypeID WorkItemTypeID, opt *CreateWorkItemOptions, options ...RequestOptionFunc) (*WorkItem, *Response, error)
	GetWorkItem(fullPath string, iid int64, options ...RequestOptionFunc) (*WorkItem, *Response, error)
	ListWorkItems(fullPath string, opt *ListWorkItemsOptions, options ...RequestOptionFunc) ([]*WorkItem, *Response, error)
	UpdateWorkItem(fullPath string, iid int64, opt *UpdateWorkItemOptions, options ...RequestOptionFunc) (*WorkItem, *Response, error)
	DeleteWorkItem(fullPath string, iid int64, options ...RequestOptionFunc) (*Response, error)
}

type X509Certificate

type X509Certificate struct {
	ID                   int64      `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

type X509Issuer struct {
	ID                   int64  `json:"id"`
	Subject              string `json:"subject"`
	SubjectKeyIdentifier string `json:"subject_key_identifier"`
	CrlURL               string `json:"crl_url"`
}

type X509Signature

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

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

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 config provides functionality around an experimental GitLab config file to handle GitLab instance setups, including where to find them and how to authenticate with them.
Package config provides functionality around an experimental GitLab config file to handle GitLab instance setups, including where to find them and how to authenticate with them.
examples command
Package gitlaboauth2 provides OAuth2 configuration utilities for GitLab API clients.
Package gitlaboauth2 provides OAuth2 configuration utilities for GitLab API clients.
Package testing provides test utilities for the GitLab API client
Package testing provides test utilities for the GitLab API client

Jump to

Keyboard shortcuts

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