summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/xanzy
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2021-06-10 16:44:25 +0200
committerGitHub <noreply@github.com>2021-06-10 16:44:25 +0200
commit86e2789960439ca786c6e7a74f85f076c223d148 (patch)
treec63064d4258bcf2bb7a2e5e60acc0a5d5c8216da /vendor/github.com/xanzy
parentf088dc4ea14ae6304c2e06fca06ffa2f7bc273f3 (diff)
downloadgitea-86e2789960439ca786c6e7a74f85f076c223d148.tar.gz
gitea-86e2789960439ca786c6e7a74f85f076c223d148.zip
Vendor Update (#16121)
* update github.com/PuerkitoBio/goquery * update github.com/alecthomas/chroma * update github.com/blevesearch/bleve/v2 * update github.com/caddyserver/certmagic * update github.com/go-enry/go-enry/v2 * update github.com/go-git/go-billy/v5 * update github.com/go-git/go-git/v5 * update github.com/go-redis/redis/v8 * update github.com/go-testfixtures/testfixtures/v3 * update github.com/jaytaylor/html2text * update github.com/json-iterator/go * update github.com/klauspost/compress * update github.com/markbates/goth * update github.com/mattn/go-isatty * update github.com/mholt/archiver/v3 * update github.com/microcosm-cc/bluemonday * update github.com/minio/minio-go/v7 * update github.com/prometheus/client_golang * update github.com/unrolled/render * update github.com/xanzy/go-gitlab * update github.com/yuin/goldmark * update github.com/yuin/goldmark-highlighting Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'vendor/github.com/xanzy')
-rw-r--r--vendor/github.com/xanzy/go-gitlab/client_options.go16
-rw-r--r--vendor/github.com/xanzy/go-gitlab/commits.go2
-rw-r--r--vendor/github.com/xanzy/go-gitlab/gitlab.go4
-rw-r--r--vendor/github.com/xanzy/go-gitlab/go.mod4
-rw-r--r--vendor/github.com/xanzy/go-gitlab/go.sum16
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_import_export.go180
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_variables.go31
-rw-r--r--vendor/github.com/xanzy/go-gitlab/issues.go27
-rw-r--r--vendor/github.com/xanzy/go-gitlab/jobs.go28
-rw-r--r--vendor/github.com/xanzy/go-gitlab/merge_requests.go1
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_access_tokens.go2
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_managed_licenses.go188
-rw-r--r--vendor/github.com/xanzy/go-gitlab/projects.go196
-rw-r--r--vendor/github.com/xanzy/go-gitlab/protected_branches.go4
-rw-r--r--vendor/github.com/xanzy/go-gitlab/releaselinks.go22
-rw-r--r--vendor/github.com/xanzy/go-gitlab/releases.go7
-rw-r--r--vendor/github.com/xanzy/go-gitlab/services.go106
-rw-r--r--vendor/github.com/xanzy/go-gitlab/types.go201
-rw-r--r--vendor/github.com/xanzy/go-gitlab/users.go13
19 files changed, 861 insertions, 187 deletions
diff --git a/vendor/github.com/xanzy/go-gitlab/client_options.go b/vendor/github.com/xanzy/go-gitlab/client_options.go
index b09ae07817..9f740460a0 100644
--- a/vendor/github.com/xanzy/go-gitlab/client_options.go
+++ b/vendor/github.com/xanzy/go-gitlab/client_options.go
@@ -40,6 +40,14 @@ func WithCustomBackoff(backoff retryablehttp.Backoff) ClientOptionFunc {
}
}
+// WithCustomLogger can be used to configure a custom retryablehttp leveled logger
+func WithCustomLeveledLogger(leveledLogger retryablehttp.LeveledLogger) ClientOptionFunc {
+ return func(c *Client) error {
+ c.client.Logger = leveledLogger
+ return nil
+ }
+}
+
// WithCustomLimiter injects a custom rate limiter to the client.
func WithCustomLimiter(limiter RateLimiter) ClientOptionFunc {
return func(c *Client) error {
@@ -50,6 +58,14 @@ func WithCustomLimiter(limiter RateLimiter) ClientOptionFunc {
}
}
+// WithCustomLogger can be used to configure a custom retryablehttp logger
+func WithCustomLogger(logger retryablehttp.Logger) ClientOptionFunc {
+ return func(c *Client) error {
+ c.client.Logger = logger
+ return nil
+ }
+}
+
// WithCustomRetry can be used to configure a custom retry policy.
func WithCustomRetry(checkRetry retryablehttp.CheckRetry) ClientOptionFunc {
return func(c *Client) error {
diff --git a/vendor/github.com/xanzy/go-gitlab/commits.go b/vendor/github.com/xanzy/go-gitlab/commits.go
index 504d5c5d32..acc0998705 100644
--- a/vendor/github.com/xanzy/go-gitlab/commits.go
+++ b/vendor/github.com/xanzy/go-gitlab/commits.go
@@ -185,7 +185,7 @@ type CreateCommitOptions struct {
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,omitempty" json:"actions,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"`
diff --git a/vendor/github.com/xanzy/go-gitlab/gitlab.go b/vendor/github.com/xanzy/go-gitlab/gitlab.go
index 265aaf200f..feed61088f 100644
--- a/vendor/github.com/xanzy/go-gitlab/gitlab.go
+++ b/vendor/github.com/xanzy/go-gitlab/gitlab.go
@@ -122,6 +122,7 @@ type Client struct {
GitIgnoreTemplates *GitIgnoreTemplatesService
GroupBadges *GroupBadgesService
GroupCluster *GroupClustersService
+ GroupImportExport *GroupImportExportService
GroupIssueBoards *GroupIssueBoardsService
GroupLabels *GroupLabelsService
GroupMembers *GroupMembersService
@@ -140,6 +141,7 @@ type Client struct {
Labels *LabelsService
License *LicenseService
LicenseTemplates *LicenseTemplatesService
+ ManagedLicenses *ManagedLicensesService
MergeRequestApprovals *MergeRequestApprovalsService
MergeRequests *MergeRequestsService
Milestones *MilestonesService
@@ -293,6 +295,7 @@ func newClient(options ...ClientOptionFunc) (*Client, error) {
c.GitIgnoreTemplates = &GitIgnoreTemplatesService{client: c}
c.GroupBadges = &GroupBadgesService{client: c}
c.GroupCluster = &GroupClustersService{client: c}
+ c.GroupImportExport = &GroupImportExportService{client: c}
c.GroupIssueBoards = &GroupIssueBoardsService{client: c}
c.GroupLabels = &GroupLabelsService{client: c}
c.GroupMembers = &GroupMembersService{client: c}
@@ -311,6 +314,7 @@ func newClient(options ...ClientOptionFunc) (*Client, error) {
c.Labels = &LabelsService{client: c}
c.License = &LicenseService{client: c}
c.LicenseTemplates = &LicenseTemplatesService{client: c}
+ c.ManagedLicenses = &ManagedLicensesService{client: c}
c.MergeRequestApprovals = &MergeRequestApprovalsService{client: c}
c.MergeRequests = &MergeRequestsService{client: c, timeStats: timeStats}
c.Milestones = &MilestonesService{client: c}
diff --git a/vendor/github.com/xanzy/go-gitlab/go.mod b/vendor/github.com/xanzy/go-gitlab/go.mod
index eb13bcef72..e363c27377 100644
--- a/vendor/github.com/xanzy/go-gitlab/go.mod
+++ b/vendor/github.com/xanzy/go-gitlab/go.mod
@@ -5,9 +5,9 @@ require (
github.com/hashicorp/go-cleanhttp v0.5.1
github.com/hashicorp/go-retryablehttp v0.6.8
github.com/stretchr/testify v1.4.0
- golang.org/x/net v0.0.0-20181108082009-03003ca0c849 // indirect
+ golang.org/x/net v0.0.0-20201021035429-f5854403a974 // indirect
golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288
- golang.org/x/sync v0.0.0-20181108010431-42b317875d0f // indirect
+ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 // indirect
golang.org/x/time v0.0.0-20191024005414-555d28b269f0
google.golang.org/appengine v1.3.0 // indirect
)
diff --git a/vendor/github.com/xanzy/go-gitlab/go.sum b/vendor/github.com/xanzy/go-gitlab/go.sum
index 74ea228e91..671236d704 100644
--- a/vendor/github.com/xanzy/go-gitlab/go.sum
+++ b/vendor/github.com/xanzy/go-gitlab/go.sum
@@ -17,16 +17,24 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181108082009-03003ca0c849 h1:FSqE2GGG7wzsYUsWiQ8MZrvEd1EOyU3NCF0AW3Wtltg=
-golang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288 h1:JIqe8uIcRBHXDQVvZtHwp80ai3Lw3IJAeJEs55Dc1W0=
golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
google.golang.org/appengine v1.3.0 h1:FBSsiFRMz3LBeXIomRnVzrQwSDj4ibvcRexLG0LZGQk=
google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
diff --git a/vendor/github.com/xanzy/go-gitlab/group_import_export.go b/vendor/github.com/xanzy/go-gitlab/group_import_export.go
new file mode 100644
index 0000000000..c578805833
--- /dev/null
+++ b/vendor/github.com/xanzy/go-gitlab/group_import_export.go
@@ -0,0 +1,180 @@
+//
+// Copyright 2021, Sander van Harmelen
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+package gitlab
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "mime/multipart"
+ "net/http"
+ "os"
+ "path/filepath"
+ "strconv"
+)
+
+// GroupImportExportService handles communication with the group import export
+// related methods of the GitLab API.
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/group_import_export.html
+type GroupImportExportService struct {
+ client *Client
+}
+
+// ScheduleExport starts a new group export.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/group_import_export.html#schedule-new-export
+func (s *GroupImportExportService) ScheduleExport(gid interface{}, options ...RequestOptionFunc) (*Response, error) {
+ group, err := parseID(gid)
+ if err != nil {
+ return nil, err
+ }
+ u := fmt.Sprintf("groups/%s/export", pathEscape(group))
+
+ req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
+ if err != nil {
+ return nil, err
+ }
+
+ return s.client.Do(req, nil)
+}
+
+// ExportDownload downloads the finished export.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/group_import_export.html#export-download
+func (s *GroupImportExportService) ExportDownload(gid interface{}, options ...RequestOptionFunc) (*bytes.Reader, *Response, error) {
+ group, err := parseID(gid)
+ if err != nil {
+ return nil, nil, err
+ }
+ u := fmt.Sprintf("groups/%s/export/download", pathEscape(group))
+
+ req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ exportDownload := new(bytes.Buffer)
+ resp, err := s.client.Do(req, exportDownload)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return bytes.NewReader(exportDownload.Bytes()), resp, err
+}
+
+// GroupImportFileOptions represents the available ImportFile() options.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/group_import_export.html#import-a-file
+type GroupImportFileOptions struct {
+ Name *string `url:"name,omitempty" json:"name,omitempty"`
+ Path *string `url:"path,omitempty" json:"path,omitempty"`
+ File *string `url:"file,omitempty" json:"file,omitempty"`
+ ParentID *int `url:"parent_id,omitempty" json:"parent_id,omitempty"`
+}
+
+// ImportFile imports a file.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/group_import_export.html#import-a-file
+func (s *GroupImportExportService) ImportFile(opt *GroupImportFileOptions, options ...RequestOptionFunc) (*Response, error) {
+ // First check if we got all required options.
+ if opt.Name == nil || *opt.Name == "" {
+ return nil, fmt.Errorf("Missing required option: Name")
+ }
+ if opt.Path == nil || *opt.Path == "" {
+ return nil, fmt.Errorf("Missing required option: Path")
+ }
+ if opt.File == nil || *opt.File == "" {
+ return nil, fmt.Errorf("Missing required option: File")
+ }
+
+ f, err := os.Open(*opt.File)
+ if err != nil {
+ return nil, err
+ }
+ defer f.Close()
+
+ b := &bytes.Buffer{}
+ w := multipart.NewWriter(b)
+
+ _, filename := filepath.Split(*opt.File)
+ fw, err := w.CreateFormFile("file", filename)
+ if err != nil {
+ return nil, err
+ }
+
+ _, err = io.Copy(fw, f)
+ if err != nil {
+ return nil, err
+ }
+
+ // Populate the additional fields.
+ fw, err = w.CreateFormField("name")
+ if err != nil {
+ return nil, err
+ }
+
+ _, err = fw.Write([]byte(*opt.Name))
+ if err != nil {
+ return nil, err
+ }
+
+ fw, err = w.CreateFormField("path")
+ if err != nil {
+ return nil, err
+ }
+
+ _, err = fw.Write([]byte(*opt.Path))
+ if err != nil {
+ return nil, err
+ }
+
+ if opt.ParentID != nil {
+ fw, err = w.CreateFormField("parent_id")
+ if err != nil {
+ return nil, err
+ }
+
+ _, err = fw.Write([]byte(strconv.Itoa(*opt.ParentID)))
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ if err = w.Close(); err != nil {
+ return nil, err
+ }
+
+ req, err := s.client.NewRequest(http.MethodPost, "groups/import", nil, options)
+ if err != nil {
+ return nil, err
+ }
+
+ // Set the buffer as the request body.
+ if err = req.SetBody(b); err != nil {
+ return nil, err
+ }
+
+ // Overwrite the default content type.
+ req.Header.Set("Content-Type", w.FormDataContentType())
+
+ return s.client.Do(req, nil)
+}
diff --git a/vendor/github.com/xanzy/go-gitlab/group_variables.go b/vendor/github.com/xanzy/go-gitlab/group_variables.go
index bcc7b4928b..4cf9714813 100644
--- a/vendor/github.com/xanzy/go-gitlab/group_variables.go
+++ b/vendor/github.com/xanzy/go-gitlab/group_variables.go
@@ -36,11 +36,12 @@ type GroupVariablesService struct {
// GitLab API docs:
// https://docs.gitlab.com/ee/api/group_level_variables.html
type GroupVariable struct {
- Key string `json:"key"`
- Value string `json:"value"`
- VariableType VariableTypeValue `json:"variable_type"`
- Protected bool `json:"protected"`
- Masked bool `json:"masked"`
+ Key string `json:"key"`
+ Value string `json:"value"`
+ VariableType VariableTypeValue `json:"variable_type"`
+ Protected bool `json:"protected"`
+ Masked bool `json:"masked"`
+ EnvironmentScope string `json:"environment_scope"`
}
func (v GroupVariable) String() string {
@@ -110,11 +111,12 @@ func (s *GroupVariablesService) GetVariable(gid interface{}, key string, options
// GitLab API docs:
// https://docs.gitlab.com/ee/api/group_level_variables.html#create-variable
type CreateGroupVariableOptions 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"`
- Protected *bool `url:"protected,omitempty" json:"protected,omitempty"`
- Masked *bool `url:"masked,omitempty" json:"masked,omitempty"`
+ 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"`
+ Protected *bool `url:"protected,omitempty" json:"protected,omitempty"`
+ Masked *bool `url:"masked,omitempty" json:"masked,omitempty"`
+ EnvironmentScope *string `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
}
// CreateVariable creates a new group variable.
@@ -148,10 +150,11 @@ func (s *GroupVariablesService) CreateVariable(gid interface{}, opt *CreateGroup
// GitLab API docs:
// https://docs.gitlab.com/ee/api/group_level_variables.html#update-variable
type UpdateGroupVariableOptions struct {
- Value *string `url:"value,omitempty" json:"value,omitempty"`
- VariableType *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
- Protected *bool `url:"protected,omitempty" json:"protected,omitempty"`
- Masked *bool `url:"masked,omitempty" json:"masked,omitempty"`
+ Value *string `url:"value,omitempty" json:"value,omitempty"`
+ VariableType *VariableTypeValue `url:"variable_type,omitempty" json:"variable_type,omitempty"`
+ Protected *bool `url:"protected,omitempty" json:"protected,omitempty"`
+ Masked *bool `url:"masked,omitempty" json:"masked,omitempty"`
+ EnvironmentScope *string `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
}
// UpdateVariable updates the position of an existing
diff --git a/vendor/github.com/xanzy/go-gitlab/issues.go b/vendor/github.com/xanzy/go-gitlab/issues.go
index e01544a4fb..397e8c20bf 100644
--- a/vendor/github.com/xanzy/go-gitlab/issues.go
+++ b/vendor/github.com/xanzy/go-gitlab/issues.go
@@ -580,6 +580,33 @@ func (s *IssuesService) UnsubscribeFromIssue(pid interface{}, issue int, options
return i, resp, err
}
+// 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/ee/api/issues.html#create-a-to-do-item
+func (s *IssuesService) CreateTodo(pid interface{}, issue int, options ...RequestOptionFunc) (*Todo, *Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, nil, err
+ }
+ u := fmt.Sprintf("projects/%s/issues/%d/todo", pathEscape(project), issue)
+
+ req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ t := new(Todo)
+ resp, err := s.client.Do(req, t)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return t, resp, err
+}
+
// ListMergeRequestsClosingIssueOptions represents the available
// ListMergeRequestsClosingIssue() options.
//
diff --git a/vendor/github.com/xanzy/go-gitlab/jobs.go b/vendor/github.com/xanzy/go-gitlab/jobs.go
index 410e5a6f10..2d3c110fa4 100644
--- a/vendor/github.com/xanzy/go-gitlab/jobs.go
+++ b/vendor/github.com/xanzy/go-gitlab/jobs.go
@@ -103,7 +103,8 @@ type Bridge struct {
// ListJobsOptions are options for two list apis
type ListJobsOptions struct {
ListOptions
- Scope []BuildStateValue `url:"scope[],omitempty" json:"scope,omitempty"`
+ Scope []BuildStateValue `url:"scope[],omitempty" json:"scope,omitempty"`
+ IncludeRetried bool `url:"include_retried,omitempty" json:"include_retried,omitempty"`
}
// ListProjectJobs gets a list of jobs in a project.
@@ -186,6 +187,31 @@ func (s *JobsService) ListPipelineBridges(pid interface{}, pipelineID int, opts
return bridges, resp, err
}
+// GetJobTokensJobOptions represents the available GetJobTokensJob() options.
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/jobs.html#get-job-tokens-job
+type GetJobTokensJobOptions struct {
+ JobToken *string `url:"job_token,omitempty" json:"job_token,omitempty"`
+}
+
+// GetJobTokensJob retrieves the job that generated a job token.
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/jobs.html#get-job-tokens-job
+func (s *JobsService) GetJobTokensJob(opts *GetJobTokensJobOptions, options ...RequestOptionFunc) (*Job, *Response, error) {
+ req, err := s.client.NewRequest(http.MethodGet, "job", opts, options)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ job := new(Job)
+ resp, err := s.client.Do(req, job)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return job, resp, err
+}
+
// GetJob gets a single job of a project.
//
// GitLab API docs:
diff --git a/vendor/github.com/xanzy/go-gitlab/merge_requests.go b/vendor/github.com/xanzy/go-gitlab/merge_requests.go
index 9b9b2361b3..3ec2a7e717 100644
--- a/vendor/github.com/xanzy/go-gitlab/merge_requests.go
+++ b/vendor/github.com/xanzy/go-gitlab/merge_requests.go
@@ -100,6 +100,7 @@ type MergeRequest struct {
RebaseInProgress bool `json:"rebase_in_progress"`
ApprovalsBeforeMerge int `json:"approvals_before_merge"`
Reference string `json:"reference"`
+ FirstContribution bool `json:"first_contribution"`
TaskCompletionStatus struct {
Count int `json:"count"`
CompletedCount int `json:"completed_count"`
diff --git a/vendor/github.com/xanzy/go-gitlab/project_access_tokens.go b/vendor/github.com/xanzy/go-gitlab/project_access_tokens.go
index 9bca815d54..ea545870d8 100644
--- a/vendor/github.com/xanzy/go-gitlab/project_access_tokens.go
+++ b/vendor/github.com/xanzy/go-gitlab/project_access_tokens.go
@@ -118,7 +118,7 @@ func (s *ProjectAccessTokensService) CreateProjectAccessToken(pid interface{}, o
return pat, resp, err
}
-// RemoveProjectAccessToken deletes a Project Access Token.
+// DeleteProjectAccessToken deletes a Project Access Token.
//
// GitLab API docs:
// https://docs.gitlab.com/ee/api/resource_access_tokens.html#revoke-a-project-access-token
diff --git a/vendor/github.com/xanzy/go-gitlab/project_managed_licenses.go b/vendor/github.com/xanzy/go-gitlab/project_managed_licenses.go
new file mode 100644
index 0000000000..186bdef57e
--- /dev/null
+++ b/vendor/github.com/xanzy/go-gitlab/project_managed_licenses.go
@@ -0,0 +1,188 @@
+//
+// Copyright 2021, Andrea Perizzato
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+package gitlab
+
+import (
+ "fmt"
+ "net/http"
+)
+
+// ManagedLicensesService handles communication with the managed licenses
+// methods of the GitLab API.
+//
+// GitLab API docs: https://docs.gitlab.com/ee/api/managed_licenses.html
+type ManagedLicensesService struct {
+ client *Client
+}
+
+// ManagedLicense represents a managed license.
+//
+// GitLab API docs: https://docs.gitlab.com/ee/api/managed_licenses.html
+type ManagedLicense struct {
+ ID int `json:"id"`
+ Name string `json:"name"`
+ ApprovalStatus LicenseApprovalStatusValue `json:"approval_status"`
+}
+
+// ListManagedLicenses returns a list of managed licenses from a project.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ee/api/managed_licenses.html#list-managed-licenses
+func (s *ManagedLicensesService) ListManagedLicenses(pid interface{}, options ...RequestOptionFunc) ([]*ManagedLicense, *Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, nil, err
+ }
+ u := fmt.Sprintf("projects/%s/managed_licenses", pathEscape(project))
+
+ req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ var mls []*ManagedLicense
+ resp, err := s.client.Do(req, &mls)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return mls, resp, err
+}
+
+// GetManagedLicense returns an existing managed license.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ee/api/managed_licenses.html#show-an-existing-managed-license
+func (s *ManagedLicensesService) GetManagedLicense(pid, mlid interface{}, options ...RequestOptionFunc) (*ManagedLicense, *Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, nil, err
+ }
+ license, err := parseID(mlid)
+ if err != nil {
+ return nil, nil, err
+ }
+ u := fmt.Sprintf("projects/%s/managed_licenses/%s", pathEscape(project), pathEscape(license))
+
+ req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ ml := new(ManagedLicense)
+ resp, err := s.client.Do(req, ml)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return ml, resp, err
+}
+
+// AddManagedLicenseOptions represents the available AddManagedLicense() options.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ee/api/managed_licenses.html#create-a-new-managed-license
+type AddManagedLicenseOptions struct {
+ Name *string `url:"name,omitempty" json:"name,omitempty"`
+ ApprovalStatus *LicenseApprovalStatusValue `url:"approval_status,omitempty" json:"approval_status,omitempty"`
+}
+
+// AddManagedLicense adds a managed license to a project.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ee/api/managed_licenses.html#create-a-new-managed-license
+func (s *ManagedLicensesService) AddManagedLicense(pid interface{}, opt *AddManagedLicenseOptions, options ...RequestOptionFunc) (*ManagedLicense, *Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, nil, err
+ }
+ u := fmt.Sprintf("projects/%s/managed_licenses", pathEscape(project))
+
+ req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ ml := new(ManagedLicense)
+ resp, err := s.client.Do(req, ml)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return ml, resp, err
+}
+
+// DeleteManagedLicense deletes a managed license with a given ID.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ee/api/managed_licenses.html#delete-a-managed-license
+func (s *ManagedLicensesService) DeleteManagedLicense(pid, mlid interface{}, options ...RequestOptionFunc) (*Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, err
+ }
+ license, err := parseID(mlid)
+ if err != nil {
+ return nil, err
+ }
+ u := fmt.Sprintf("projects/%s/managed_licenses/%s", pathEscape(project), pathEscape(license))
+
+ req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
+ if err != nil {
+ return nil, err
+ }
+
+ return s.client.Do(req, nil)
+}
+
+// EditManagedLicenceOptions represents the available EditManagedLicense() options.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ee/api/managed_licenses.html#edit-an-existing-managed-license
+type EditManagedLicenceOptions struct {
+ ApprovalStatus *LicenseApprovalStatusValue `url:"approval_status,omitempty" json:"approval_status,omitempty"`
+}
+
+// EditManagedLicense updates an existing managed license with a new approval
+// status.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ee/api/managed_licenses.html#edit-an-existing-managed-license
+func (s *ManagedLicensesService) EditManagedLicense(pid, mlid interface{}, opt *EditManagedLicenceOptions, options ...RequestOptionFunc) (*ManagedLicense, *Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, nil, err
+ }
+ license, err := parseID(mlid)
+ if err != nil {
+ return nil, nil, err
+ }
+ u := fmt.Sprintf("projects/%s/managed_licenses/%s", pathEscape(project), pathEscape(license))
+
+ req, err := s.client.NewRequest(http.MethodPatch, u, opt, options)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ ml := new(ManagedLicense)
+ resp, err := s.client.Do(req, ml)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return ml, resp, err
+}
diff --git a/vendor/github.com/xanzy/go-gitlab/projects.go b/vendor/github.com/xanzy/go-gitlab/projects.go
index fb58eefbcf..c58907cee9 100644
--- a/vendor/github.com/xanzy/go-gitlab/projects.go
+++ b/vendor/github.com/xanzy/go-gitlab/projects.go
@@ -75,6 +75,8 @@ type Project struct {
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"`
ForksCount int `json:"forks_count"`
StarCount int `json:"star_count"`
@@ -113,13 +115,15 @@ type Project struct {
GroupName string `json:"group_name"`
GroupAccessLevel int `json:"group_access_level"`
} `json:"shared_with_groups"`
- Statistics *ProjectStatistics `json:"statistics"`
- Links *Links `json:"_links,omitempty"`
- CIConfigPath string `json:"ci_config_path"`
- CIDefaultGitDepth int `json:"ci_default_git_depth"`
- CustomAttributes []*CustomAttribute `json:"custom_attributes"`
- ComplianceFrameworks []string `json:"compliance_frameworks"`
- BuildCoverageRegex string `json:"build_coverage_regex"`
+ Statistics *ProjectStatistics `json:"statistics"`
+ Links *Links `json:"_links,omitempty"`
+ CIConfigPath string `json:"ci_config_path"`
+ CIDefaultGitDepth int `json:"ci_default_git_depth"`
+ 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"`
}
// ContainerExpirationPolicy represents the container expiration policy.
@@ -133,6 +137,73 @@ type ContainerExpirationPolicy struct {
NextRunAt *time.Time `json:"next_run_at"`
}
+// ForkParent represents the parent project when this is a fork.
+type ForkParent struct {
+ HTTPURLToRepo string `json:"http_url_to_repo"`
+ ID int `json:"id"`
+ Name string `json:"name"`
+ NameWithNamespace string `json:"name_with_namespace"`
+ Path string `json:"path"`
+ PathWithNamespace string `json:"path_with_namespace"`
+ WebURL string `json:"web_url"`
+}
+
+// GroupAccess represents group access.
+type GroupAccess struct {
+ AccessLevel AccessLevelValue `json:"access_level"`
+ NotificationLevel NotificationLevelValue `json:"notification_level"`
+}
+
+// Links represents a project web links for self, issues, merge_requests,
+// repo_branches, labels, events, members.
+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"`
+}
+
+// Permissions represents permissions.
+type Permissions struct {
+ ProjectAccess *ProjectAccess `json:"project_access"`
+ GroupAccess *GroupAccess `json:"group_access"`
+}
+
+// ProjectAccess represents project access.
+type ProjectAccess struct {
+ AccessLevel AccessLevelValue `json:"access_level"`
+ NotificationLevel NotificationLevelValue `json:"notification_level"`
+}
+
+// ProjectLicense represent the license for a project.
+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"`
+}
+
+// ProjectNamespace represents a project namespace.
+type ProjectNamespace struct {
+ ID int `json:"id"`
+ Name string `json:"name"`
+ Path string `json:"path"`
+ Kind string `json:"kind"`
+ FullPath string `json:"full_path"`
+ AvatarURL string `json:"avatar_url"`
+ WebURL string `json:"web_url"`
+}
+
+// ProjectStatistics represents a statistics record for a project.
+type ProjectStatistics struct {
+ StorageStatistics
+ CommitCount int `json:"commit_count"`
+}
+
// Repository represents a repository.
type Repository struct {
Name string `json:"name"`
@@ -151,17 +222,6 @@ type Repository struct {
HTTPURL string `json:"http_url"`
}
-// ProjectNamespace represents a project namespace.
-type ProjectNamespace struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Path string `json:"path"`
- Kind string `json:"kind"`
- FullPath string `json:"full_path"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
-}
-
// StorageStatistics represents a statistics record for a group or project.
type StorageStatistics struct {
StorageSize int64 `json:"storage_size"`
@@ -170,53 +230,6 @@ type StorageStatistics struct {
JobArtifactsSize int64 `json:"job_artifacts_size"`
}
-// ProjectStatistics represents a statistics record for a project.
-type ProjectStatistics struct {
- StorageStatistics
- CommitCount int `json:"commit_count"`
-}
-
-// Permissions represents permissions.
-type Permissions struct {
- ProjectAccess *ProjectAccess `json:"project_access"`
- GroupAccess *GroupAccess `json:"group_access"`
-}
-
-// ProjectAccess represents project access.
-type ProjectAccess struct {
- AccessLevel AccessLevelValue `json:"access_level"`
- NotificationLevel NotificationLevelValue `json:"notification_level"`
-}
-
-// GroupAccess represents group access.
-type GroupAccess struct {
- AccessLevel AccessLevelValue `json:"access_level"`
- NotificationLevel NotificationLevelValue `json:"notification_level"`
-}
-
-// ForkParent represents the parent project when this is a fork.
-type ForkParent struct {
- HTTPURLToRepo string `json:"http_url_to_repo"`
- ID int `json:"id"`
- Name string `json:"name"`
- NameWithNamespace string `json:"name_with_namespace"`
- Path string `json:"path"`
- PathWithNamespace string `json:"path_with_namespace"`
- WebURL string `json:"web_url"`
-}
-
-// Links represents a project web links for self, issues, merge_requests,
-// repo_branches, labels, events, members.
-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"`
-}
-
func (s Project) String() string {
return Stringify(s)
}
@@ -356,6 +369,53 @@ func (s *ProjectsService) ListProjectsUsers(pid interface{}, opt *ListProjectUse
return p, resp, err
}
+// ProjectGroup represents a GitLab project group.
+type ProjectGroup struct {
+ ID int `json:"id"`
+ Name string `json:"name"`
+ AvatarURL string `json:"avatar_url"`
+ WebURL string `json:"web_url"`
+ FullName string `json:"full_name"`
+ FullPath string `json:"full_path"`
+}
+
+// ListProjectGroupOptions represents the available ListProjectsGroups() options.
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#list-a-projects-groups
+type ListProjectGroupOptions struct {
+ ListOptions
+ Search *string `url:"search,omitempty" json:"search,omitempty"`
+ SkipGroups []int `url:"skip_groups,omitempty" json:"skip_groups,omitempty"`
+ WithShared *bool `url:"with_shared,omitempty" json:"with_shared,omitempty"`
+ SharedMinAccessLevel *AccessLevelValue `url:"shared_min_access_level,omitempty" json:"shared_min_access_level,omitempty"`
+ SharedVisiableOnly *bool `url:"shared_visible_only,omitempty" json:"shared_visible_only,omitempty"`
+}
+
+// ListProjectsGroups gets a list of groups for the given project.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/projects.html#list-a-projects-groups
+func (s *ProjectsService) ListProjectsGroups(pid interface{}, opt *ListProjectGroupOptions, options ...RequestOptionFunc) ([]*ProjectGroup, *Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, nil, err
+ }
+ u := fmt.Sprintf("projects/%s/groups", pathEscape(project))
+
+ req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ var p []*ProjectGroup
+ resp, err := s.client.Do(req, &p)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return p, resp, err
+}
+
// ProjectLanguages is a map of strings because the response is arbitrary
//
// Gitlab API docs: https://docs.gitlab.com/ce/api/projects.html#languages
@@ -537,6 +597,8 @@ type CreateProjectOptions struct {
ServiceDeskEnabled *bool `url:"service_desk_enabled,omitempty" json:"service_desk_enabled,omitempty"`
AutocloseReferencedIssues *bool `url:"autoclose_referenced_issues,omitempty" json:"autoclose_referenced_issues,omitempty"`
SuggestionCommitMessage *string `url:"suggestion_commit_message,omitempty" json:"suggestion_commit_message,omitempty"`
+ IssuesTemplate *string `url:"issues_template,omitempty" json:"issues_template,omitempty"`
+ MergeRequestsTemplate *string `url:"merge_requests_template,omitempty" json:"merge_requests_template,omitempty"`
// Deprecated members
IssuesEnabled *bool `url:"issues_enabled,omitempty" json:"issues_enabled,omitempty"`
@@ -675,6 +737,8 @@ type EditProjectOptions struct {
ServiceDeskEnabled *bool `url:"service_desk_enabled,omitempty" json:"service_desk_enabled,omitempty"`
AutocloseReferencedIssues *bool `url:"autoclose_referenced_issues,omitempty" json:"autoclose_referenced_issues,omitempty"`
SuggestionCommitMessage *string `url:"suggestion_commit_message,omitempty" json:"suggestion_commit_message,omitempty"`
+ IssuesTemplate *string `url:"issues_template,omitempty" json:"issues_template,omitempty"`
+ MergeRequestsTemplate *string `url:"merge_requests_template,omitempty" json:"merge_requests_template,omitempty"`
// Deprecated members
IssuesEnabled *bool `url:"issues_enabled,omitempty" json:"issues_enabled,omitempty"`
@@ -1431,6 +1495,7 @@ type ProjectApprovals struct {
DisableOverridingApproversPerMergeRequest bool `json:"disable_overriding_approvers_per_merge_request"`
MergeRequestsAuthorApproval bool `json:"merge_requests_author_approval"`
MergeRequestsDisableCommittersApproval bool `json:"merge_requests_disable_committers_approval"`
+ RequirePasswordToApprove bool `json:"require_password_to_approve"`
}
// GetApprovalConfiguration get the approval configuration for a project.
@@ -1469,6 +1534,7 @@ type ChangeApprovalConfigurationOptions struct {
DisableOverridingApproversPerMergeRequest *bool `url:"disable_overriding_approvers_per_merge_request,omitempty" json:"disable_overriding_approvers_per_merge_request,omitempty"`
MergeRequestsAuthorApproval *bool `url:"merge_requests_author_approval,omitempty" json:"merge_requests_author_approval,omitempty"`
MergeRequestsDisableCommittersApproval *bool `url:"merge_requests_disable_committers_approval,omitempty" json:"merge_requests_disable_committers_approval,omitempty"`
+ RequirePasswordToApprove *bool `url:"require_password_to_approve,omitempty" json:"require_password_to_approve,omitempty"`
}
// ChangeApprovalConfiguration updates the approval configuration for a project.
diff --git a/vendor/github.com/xanzy/go-gitlab/protected_branches.go b/vendor/github.com/xanzy/go-gitlab/protected_branches.go
index bcc0369dbd..af3e7f2111 100644
--- a/vendor/github.com/xanzy/go-gitlab/protected_branches.go
+++ b/vendor/github.com/xanzy/go-gitlab/protected_branches.go
@@ -41,6 +41,7 @@ type ProtectedBranch struct {
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"`
}
@@ -123,6 +124,7 @@ type ProtectRepositoryBranchesOptions struct {
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"`
@@ -194,7 +196,7 @@ type RequireCodeOwnerApprovalsOptions struct {
CodeOwnerApprovalRequired *bool `url:"code_owner_approval_required,omitempty" json:"code_owner_approval_required,omitempty"`
}
-// RequireCodeOwnerApprovals updates the code owner approval.
+// RequireCodeOwnerApprovals updates the code owner approval option.
//
// Gitlab API docs:
// https://docs.gitlab.com/ee/api/protected_branches.html#require-code-owner-approvals-for-a-single-branch
diff --git a/vendor/github.com/xanzy/go-gitlab/releaselinks.go b/vendor/github.com/xanzy/go-gitlab/releaselinks.go
index 4ea1af8f31..7d56ff5bf3 100644
--- a/vendor/github.com/xanzy/go-gitlab/releaselinks.go
+++ b/vendor/github.com/xanzy/go-gitlab/releaselinks.go
@@ -33,10 +33,12 @@ type ReleaseLinksService struct {
//
// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html
type ReleaseLink struct {
- ID int `json:"id"`
- Name string `json:"name"`
- URL string `json:"url"`
- External bool `json:"external"`
+ ID int `json:"id"`
+ Name string `json:"name"`
+ URL string `json:"url"`
+ DirectAssetURL string `json:"direct_asset_url"`
+ External bool `json:"external"`
+ LinkType LinkTypeValue `json:"link_type"`
}
// ListReleaseLinksOptions represents ListReleaseLinks() options.
@@ -99,8 +101,10 @@ func (s *ReleaseLinksService) GetReleaseLink(pid interface{}, tagName string, li
//
// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html#create-a-link
type CreateReleaseLinkOptions struct {
- Name *string `url:"name" json:"name"`
- URL *string `url:"url" json:"url"`
+ Name *string `url:"name,omitempty" json:"name,omitempty"`
+ URL *string `url:"url,omitempty" json:"url,omitempty"`
+ FilePath *string `url:"filepath,omitempty" json:"filepath,omitempty"`
+ LinkType *LinkTypeValue `url:"link_type,omitempty" json:"link_type,omitempty"`
}
// CreateReleaseLink creates a link.
@@ -133,8 +137,10 @@ func (s *ReleaseLinksService) CreateReleaseLink(pid interface{}, tagName string,
//
// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html#update-a-link
type UpdateReleaseLinkOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- URL *string `url:"url,omitempty" json:"url,omitempty"`
+ Name *string `url:"name,omitempty" json:"name,omitempty"`
+ URL *string `url:"url,omitempty" json:"url,omitempty"`
+ FilePath *string `url:"filepath,omitempty" json:"filepath,omitempty"`
+ LinkType *LinkTypeValue `url:"link_type,omitempty" json:"link_type,omitempty"`
}
// UpdateReleaseLink updates an asset link.
diff --git a/vendor/github.com/xanzy/go-gitlab/releases.go b/vendor/github.com/xanzy/go-gitlab/releases.go
index e4d16524ef..bb91ab47a8 100644
--- a/vendor/github.com/xanzy/go-gitlab/releases.go
+++ b/vendor/github.com/xanzy/go-gitlab/releases.go
@@ -37,9 +37,10 @@ type ReleasesService struct {
type Release struct {
TagName string `json:"tag_name"`
Name string `json:"name"`
- Description string `json:"description,omitempty"`
- DescriptionHTML string `json:"description_html,omitempty"`
- CreatedAt *time.Time `json:"created_at,omitempty"`
+ Description string `json:"description"`
+ DescriptionHTML string `json:"description_html"`
+ CreatedAt *time.Time `json:"created_at"`
+ ReleasedAt *time.Time `json:"released_at"`
Author struct {
ID int `json:"id"`
Name string `json:"name"`
diff --git a/vendor/github.com/xanzy/go-gitlab/services.go b/vendor/github.com/xanzy/go-gitlab/services.go
index ecfed70135..973a30cb8d 100644
--- a/vendor/github.com/xanzy/go-gitlab/services.go
+++ b/vendor/github.com/xanzy/go-gitlab/services.go
@@ -596,10 +596,13 @@ func (s *ServicesService) GetJenkinsCIService(pid interface{}, options ...Reques
// GitLab API docs:
// https://docs.gitlab.com/ee/api/services.html#jenkins-ci
type SetJenkinsCIServiceOptions struct {
- URL *string `url:"jenkins_url,omitempty" json:"jenkins_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"`
+ URL *string `url:"jenkins_url,omitempty" json:"jenkins_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"`
+ 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"`
}
// SetJenkinsCIService sets Jenkins service for a project
@@ -1327,3 +1330,98 @@ func (s *ServicesService) DeleteSlackService(pid interface{}, options ...Request
return s.client.Do(req, nil)
}
+
+// YouTrackService represents YouTrack service settings.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/services.html#youtrack
+type YouTrackService struct {
+ Service
+ Properties *YouTrackServiceProperties `json:"properties"`
+}
+
+// YouTrackServiceProperties represents YouTrack specific properties.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/services.html#youtrack
+type YouTrackServiceProperties struct {
+ IssuesURL string `json:"issues_url"`
+ ProjectURL string `json:"project_url"`
+ Description string `json:"description"`
+ PushEvents bool `json:"push_events"`
+}
+
+// GetYouTrackService gets YouTrack service settings for a project.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/services.html#get-youtrack-service-settings
+func (s *ServicesService) GetYouTrackService(pid interface{}, options ...RequestOptionFunc) (*YouTrackService, *Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, nil, err
+ }
+ u := fmt.Sprintf("projects/%s/services/youtrack", pathEscape(project))
+
+ req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ svc := new(YouTrackService)
+ resp, err := s.client.Do(req, svc)
+ if err != nil {
+ return nil, resp, err
+ }
+
+ return svc, resp, err
+}
+
+// SetYouTrackServiceOptions represents the available SetYouTrackService()
+// options.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/services.html#createedit-youtrack-service
+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"`
+}
+
+// SetYouTrackService sets YouTrack service for a project
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/services.html#createedit-youtrack-service
+func (s *ServicesService) SetYouTrackService(pid interface{}, opt *SetYouTrackServiceOptions, options ...RequestOptionFunc) (*Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, err
+ }
+ u := fmt.Sprintf("projects/%s/services/youtrack", pathEscape(project))
+
+ req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
+ if err != nil {
+ return nil, err
+ }
+
+ return s.client.Do(req, nil)
+}
+
+// DeleteYouTrackService deletes YouTrack service settings for a project.
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ce/api/services.html#delete-youtrack-service
+func (s *ServicesService) DeleteYouTrackService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
+ project, err := parseID(pid)
+ if err != nil {
+ return nil, err
+ }
+ u := fmt.Sprintf("projects/%s/services/youtrack", pathEscape(project))
+
+ req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
+ if err != nil {
+ return nil, err
+ }
+
+ return s.client.Do(req, nil)
+}
diff --git a/vendor/github.com/xanzy/go-gitlab/types.go b/vendor/github.com/xanzy/go-gitlab/types.go
index a893def051..805cd5b914 100644
--- a/vendor/github.com/xanzy/go-gitlab/types.go
+++ b/vendor/github.com/xanzy/go-gitlab/types.go
@@ -121,6 +121,42 @@ func DeploymentStatus(v DeploymentStatusValue) *DeploymentStatusValue {
return p
}
+// EventTypeValue represents actions type for contribution events
+type EventTypeValue string
+
+// List of available action type
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/events.html#action-types
+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"
+)
+
+// EventTargetTypeValue represents actions type value for contribution events
+type EventTargetTypeValue string
+
+// List of available action type
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/events.html#target-types
+const (
+ IssueEventTargetType EventTargetTypeValue = "issue"
+ MilestoneEventTargetType EventTargetTypeValue = "milestone"
+ MergeRequestEventTargetType EventTargetTypeValue = "merge_request"
+ NoteEventTargetType EventTargetTypeValue = "note"
+ ProjectEventTargetType EventTargetTypeValue = "project"
+ SnippetEventTargetType EventTargetTypeValue = "snippet"
+ UserEventTargetType EventTargetTypeValue = "user"
+)
+
// FileActionValue represents the available actions that can be performed on a file.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions
@@ -191,6 +227,69 @@ func (t ISOTime) String() string {
return time.Time(t).Format(iso8601)
}
+// LinkTypeValue represents a release link type.
+type LinkTypeValue string
+
+// List of available release link types
+//
+// GitLab API docs:
+// https://docs.gitlab.com/ee/api/releases/links.html#create-a-link
+const (
+ ImageLinkType LinkTypeValue = "image"
+ OtherLinkType LinkTypeValue = "other"
+ PackageLinkType LinkTypeValue = "package"
+ RunbookLinkType LinkTypeValue = "runbook"
+)
+
+// LinkType is a helper routine that allocates a new LinkType value
+// to store v and returns a pointer to it.
+func LinkType(v LinkTypeValue) *LinkTypeValue {
+ p := new(LinkTypeValue)
+ *p = v
+ return p
+}
+
+// LicenseApprovalStatusValue describe the approval statuses of a license.
+//
+// GitLab API docs: https://docs.gitlab.com/ee/api/managed_licenses.html
+type LicenseApprovalStatusValue string
+
+// List of available license approval statuses.
+const (
+ LicenseApproved LicenseApprovalStatusValue = "approved"
+ LicenseBlacklisted LicenseApprovalStatusValue = "blacklisted"
+)
+
+// LicenseApprovalStatus is a helper routine that allocates a new license
+// approval status value to store v and returns a pointer to it.
+func LicenseApprovalStatus(v LicenseApprovalStatusValue) *LicenseApprovalStatusValue {
+ p := new(LicenseApprovalStatusValue)
+ *p = v
+ return p
+}
+
+// MergeMethodValue represents a project merge type within GitLab.
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#project-merge-method
+type MergeMethodValue string
+
+// List of available merge type
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#project-merge-method
+const (
+ NoFastForwardMerge MergeMethodValue = "merge"
+ FastForwardMerge MergeMethodValue = "ff"
+ RebaseMerge MergeMethodValue = "rebase_merge"
+)
+
+// MergeMethod is a helper routine that allocates a new MergeMethod
+// to sotre v and returns a pointer to it.
+func MergeMethod(v MergeMethodValue) *MergeMethodValue {
+ p := new(MergeMethodValue)
+ *p = v
+ return p
+}
+
// NotificationLevelValue represents a notification level.
type NotificationLevelValue int
@@ -261,28 +360,6 @@ func NotificationLevel(v NotificationLevelValue) *NotificationLevelValue {
return p
}
-// VisibilityValue represents a visibility level within GitLab.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-type VisibilityValue string
-
-// List of available visibility levels.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-const (
- PrivateVisibility VisibilityValue = "private"
- InternalVisibility VisibilityValue = "internal"
- PublicVisibility VisibilityValue = "public"
-)
-
-// Visibility is a helper routine that allocates a new VisibilityValue
-// to store v and returns a pointer to it.
-func Visibility(v VisibilityValue) *VisibilityValue {
- p := new(VisibilityValue)
- *p = v
- return p
-}
-
// ProjectCreationLevelValue represents a project creation level within GitLab.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/
@@ -347,6 +424,28 @@ func VariableType(v VariableTypeValue) *VariableTypeValue {
return p
}
+// VisibilityValue represents a visibility level within GitLab.
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/
+type VisibilityValue string
+
+// List of available visibility levels.
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/
+const (
+ PrivateVisibility VisibilityValue = "private"
+ InternalVisibility VisibilityValue = "internal"
+ PublicVisibility VisibilityValue = "public"
+)
+
+// Visibility is a helper routine that allocates a new VisibilityValue
+// to store v and returns a pointer to it.
+func Visibility(v VisibilityValue) *VisibilityValue {
+ p := new(VisibilityValue)
+ *p = v
+ return p
+}
+
// WikiFormatValue represents the available wiki formats.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/wikis.html
@@ -368,64 +467,6 @@ func WikiFormat(v WikiFormatValue) *WikiFormatValue {
return p
}
-// MergeMethodValue represents a project merge type within GitLab.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#project-merge-method
-type MergeMethodValue string
-
-// List of available merge type
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#project-merge-method
-const (
- NoFastForwardMerge MergeMethodValue = "merge"
- FastForwardMerge MergeMethodValue = "ff"
- RebaseMerge MergeMethodValue = "rebase_merge"
-)
-
-// MergeMethod is a helper routine that allocates a new MergeMethod
-// to sotre v and returns a pointer to it.
-func MergeMethod(v MergeMethodValue) *MergeMethodValue {
- p := new(MergeMethodValue)
- *p = v
- return p
-}
-
-// EventTypeValue represents actions type for contribution events
-type EventTypeValue string
-
-// List of available action type
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/events.html#action-types
-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"
-)
-
-// EventTargetTypeValue represents actions type value for contribution events
-type EventTargetTypeValue string
-
-// List of available action type
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/events.html#target-types
-const (
- IssueEventTargetType EventTargetTypeValue = "issue"
- MilestoneEventTargetType EventTargetTypeValue = "milestone"
- MergeRequestEventTargetType EventTargetTypeValue = "merge_request"
- NoteEventTargetType EventTargetTypeValue = "note"
- ProjectEventTargetType EventTargetTypeValue = "project"
- SnippetEventTargetType EventTargetTypeValue = "snippet"
- UserEventTargetType EventTargetTypeValue = "user"
-)
-
// Bool is a helper routine that allocates a new bool value
// to store v and returns a pointer to it.
func Bool(v bool) *bool {
diff --git a/vendor/github.com/xanzy/go-gitlab/users.go b/vendor/github.com/xanzy/go-gitlab/users.go
index 965a0ed13b..d43e802e19 100644
--- a/vendor/github.com/xanzy/go-gitlab/users.go
+++ b/vendor/github.com/xanzy/go-gitlab/users.go
@@ -143,13 +143,20 @@ func (s *UsersService) ListUsers(opt *ListUsersOptions, options ...RequestOption
return usr, resp, err
}
+// GetUsersOptions represents the available GetUser() options.
+//
+// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#single-user
+type GetUsersOptions struct {
+ WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
+}
+
// GetUser gets a single user.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#single-user
-func (s *UsersService) GetUser(user int, options ...RequestOptionFunc) (*User, *Response, error) {
+func (s *UsersService) GetUser(user int, opt GetUsersOptions, options ...RequestOptionFunc) (*User, *Response, error) {
u := fmt.Sprintf("users/%d", user)
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
+ req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
if err != nil {
return nil, nil, err
}
@@ -838,7 +845,7 @@ type PersonalAccessToken struct {
Revoked bool `json:"revoked"`
CreatedAt *time.Time `json:"created_at"`
Scopes []string `json:"scopes"`
- UserID string `json:"user_id"`
+ UserID int `json:"user_id"`
Active bool `json:"active"`
ExpiresAt *ISOTime `json:"expires_at"`
Token string `json:"token"`