summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/xanzy
diff options
context:
space:
mode:
authortechknowlogick <techknowlogick@gitea.io>2022-01-14 18:16:05 -0500
committerGitHub <noreply@github.com>2022-01-14 18:16:05 -0500
commit84145e45c50130922fae9055535ab5ea0378e1d4 (patch)
treefce077a5ae462840bb876ace79aca42abab29ed7 /vendor/github.com/xanzy
parent2b16ca7c773de278ba01f122dc6f9f43d7534c52 (diff)
downloadgitea-84145e45c50130922fae9055535ab5ea0378e1d4.tar.gz
gitea-84145e45c50130922fae9055535ab5ea0378e1d4.zip
Remove golang vendored directory (#18277)
* rm go vendor * fix drone yaml * add to gitignore
Diffstat (limited to 'vendor/github.com/xanzy')
-rw-r--r--vendor/github.com/xanzy/go-gitlab/.gitignore28
-rw-r--r--vendor/github.com/xanzy/go-gitlab/.golangci.yml59
-rw-r--r--vendor/github.com/xanzy/go-gitlab/LICENSE201
-rw-r--r--vendor/github.com/xanzy/go-gitlab/README.md193
-rw-r--r--vendor/github.com/xanzy/go-gitlab/access_requests.go253
-rw-r--r--vendor/github.com/xanzy/go-gitlab/applications.go106
-rw-r--r--vendor/github.com/xanzy/go-gitlab/audit_events.go158
-rw-r--r--vendor/github.com/xanzy/go-gitlab/avatar.go64
-rw-r--r--vendor/github.com/xanzy/go-gitlab/award_emojis.go468
-rw-r--r--vendor/github.com/xanzy/go-gitlab/boards.go345
-rw-r--r--vendor/github.com/xanzy/go-gitlab/branches.go245
-rw-r--r--vendor/github.com/xanzy/go-gitlab/broadcast_messages.go173
-rw-r--r--vendor/github.com/xanzy/go-gitlab/ci_yml_templates.go86
-rw-r--r--vendor/github.com/xanzy/go-gitlab/client_options.go92
-rw-r--r--vendor/github.com/xanzy/go-gitlab/commits.go591
-rw-r--r--vendor/github.com/xanzy/go-gitlab/container_registry.go247
-rw-r--r--vendor/github.com/xanzy/go-gitlab/custom_attributes.go188
-rw-r--r--vendor/github.com/xanzy/go-gitlab/deploy_keys.go235
-rw-r--r--vendor/github.com/xanzy/go-gitlab/deploy_tokens.go238
-rw-r--r--vendor/github.com/xanzy/go-gitlab/deployments.go203
-rw-r--r--vendor/github.com/xanzy/go-gitlab/discussions.go1113
-rw-r--r--vendor/github.com/xanzy/go-gitlab/environments.go218
-rw-r--r--vendor/github.com/xanzy/go-gitlab/epic_issues.go152
-rw-r--r--vendor/github.com/xanzy/go-gitlab/epics.go263
-rw-r--r--vendor/github.com/xanzy/go-gitlab/event_parsing.go255
-rw-r--r--vendor/github.com/xanzy/go-gitlab/event_systemhook_types.go149
-rw-r--r--vendor/github.com/xanzy/go-gitlab/event_webhook_types.go941
-rw-r--r--vendor/github.com/xanzy/go-gitlab/events.go148
-rw-r--r--vendor/github.com/xanzy/go-gitlab/feature_flags.go96
-rw-r--r--vendor/github.com/xanzy/go-gitlab/freeze_periods.go194
-rw-r--r--vendor/github.com/xanzy/go-gitlab/gitignore_templates.go85
-rw-r--r--vendor/github.com/xanzy/go-gitlab/gitlab.go813
-rw-r--r--vendor/github.com/xanzy/go-gitlab/go.mod15
-rw-r--r--vendor/github.com/xanzy/go-gitlab/go.sum43
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_badges.go230
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_boards.go352
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_clusters.go215
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_hooks.go206
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_import_export.go180
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_labels.go242
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_members.go347
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_milestones.go296
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_variables.go203
-rw-r--r--vendor/github.com/xanzy/go-gitlab/group_wikis.go194
-rw-r--r--vendor/github.com/xanzy/go-gitlab/groups.go772
-rw-r--r--vendor/github.com/xanzy/go-gitlab/instance_clusters.go153
-rw-r--r--vendor/github.com/xanzy/go-gitlab/instance_variables.go180
-rw-r--r--vendor/github.com/xanzy/go-gitlab/invites.go175
-rw-r--r--vendor/github.com/xanzy/go-gitlab/issue_links.go130
-rw-r--r--vendor/github.com/xanzy/go-gitlab/issues.go745
-rw-r--r--vendor/github.com/xanzy/go-gitlab/issues_statistics.go187
-rw-r--r--vendor/github.com/xanzy/go-gitlab/jobs.go509
-rw-r--r--vendor/github.com/xanzy/go-gitlab/keys.go66
-rw-r--r--vendor/github.com/xanzy/go-gitlab/labels.go307
-rw-r--r--vendor/github.com/xanzy/go-gitlab/license.go112
-rw-r--r--vendor/github.com/xanzy/go-gitlab/license_templates.go109
-rw-r--r--vendor/github.com/xanzy/go-gitlab/merge_request_approvals.go409
-rw-r--r--vendor/github.com/xanzy/go-gitlab/merge_requests.go924
-rw-r--r--vendor/github.com/xanzy/go-gitlab/milestones.go270
-rw-r--r--vendor/github.com/xanzy/go-gitlab/namespaces.go123
-rw-r--r--vendor/github.com/xanzy/go-gitlab/notes.go691
-rw-r--r--vendor/github.com/xanzy/go-gitlab/notifications.go230
-rw-r--r--vendor/github.com/xanzy/go-gitlab/packages.go168
-rw-r--r--vendor/github.com/xanzy/go-gitlab/pages_domains.go213
-rw-r--r--vendor/github.com/xanzy/go-gitlab/pipeline_schedules.go347
-rw-r--r--vendor/github.com/xanzy/go-gitlab/pipeline_triggers.go248
-rw-r--r--vendor/github.com/xanzy/go-gitlab/pipelines.go359
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_access_tokens.go138
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_badges.go224
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_clusters.go236
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_import_export.go213
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_managed_licenses.go188
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_members.go235
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_mirror.go148
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_snippets.go207
-rw-r--r--vendor/github.com/xanzy/go-gitlab/project_variables.go202
-rw-r--r--vendor/github.com/xanzy/go-gitlab/projects.go1785
-rw-r--r--vendor/github.com/xanzy/go-gitlab/protected_branches.go216
-rw-r--r--vendor/github.com/xanzy/go-gitlab/protected_environments.go176
-rw-r--r--vendor/github.com/xanzy/go-gitlab/protected_tags.go162
-rw-r--r--vendor/github.com/xanzy/go-gitlab/releaselinks.go199
-rw-r--r--vendor/github.com/xanzy/go-gitlab/releases.go234
-rw-r--r--vendor/github.com/xanzy/go-gitlab/repositories.go332
-rw-r--r--vendor/github.com/xanzy/go-gitlab/repository_files.go378
-rw-r--r--vendor/github.com/xanzy/go-gitlab/request_options.go46
-rw-r--r--vendor/github.com/xanzy/go-gitlab/resource_label_events.go220
-rw-r--r--vendor/github.com/xanzy/go-gitlab/resource_state_events.go154
-rw-r--r--vendor/github.com/xanzy/go-gitlab/runners.go482
-rw-r--r--vendor/github.com/xanzy/go-gitlab/search.go358
-rw-r--r--vendor/github.com/xanzy/go-gitlab/services.go1427
-rw-r--r--vendor/github.com/xanzy/go-gitlab/settings.go414
-rw-r--r--vendor/github.com/xanzy/go-gitlab/sidekiq_metrics.go157
-rw-r--r--vendor/github.com/xanzy/go-gitlab/snippets.go231
-rw-r--r--vendor/github.com/xanzy/go-gitlab/strings.go94
-rw-r--r--vendor/github.com/xanzy/go-gitlab/system_hooks.go150
-rw-r--r--vendor/github.com/xanzy/go-gitlab/tags.go245
-rw-r--r--vendor/github.com/xanzy/go-gitlab/time_stats.go179
-rw-r--r--vendor/github.com/xanzy/go-gitlab/todos.go162
-rw-r--r--vendor/github.com/xanzy/go-gitlab/types.go583
-rw-r--r--vendor/github.com/xanzy/go-gitlab/users.go1040
-rw-r--r--vendor/github.com/xanzy/go-gitlab/validate.go140
-rw-r--r--vendor/github.com/xanzy/go-gitlab/version.go58
-rw-r--r--vendor/github.com/xanzy/go-gitlab/wikis.go194
-rw-r--r--vendor/github.com/xanzy/ssh-agent/.gitignore24
-rw-r--r--vendor/github.com/xanzy/ssh-agent/LICENSE202
-rw-r--r--vendor/github.com/xanzy/ssh-agent/README.md23
-rw-r--r--vendor/github.com/xanzy/ssh-agent/go.mod6
-rw-r--r--vendor/github.com/xanzy/ssh-agent/go.sum16
-rw-r--r--vendor/github.com/xanzy/ssh-agent/pageant_windows.go143
-rw-r--r--vendor/github.com/xanzy/ssh-agent/sshagent.go49
-rw-r--r--vendor/github.com/xanzy/ssh-agent/sshagent_windows.go103
111 files changed, 0 insertions, 30723 deletions
diff --git a/vendor/github.com/xanzy/go-gitlab/.gitignore b/vendor/github.com/xanzy/go-gitlab/.gitignore
deleted file mode 100644
index 19b0dcfbd4..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/.gitignore
+++ /dev/null
@@ -1,28 +0,0 @@
-# Compiled Object files, Static and Dynamic libs (Shared Objects)
-*.o
-*.a
-*.so
-
-# Folders
-_obj
-_test
-
-# Architecture specific extensions/prefixes
-*.[568vq]
-[568vq].out
-
-*.cgo1.go
-*.cgo2.c
-_cgo_defun.c
-_cgo_gotypes.go
-_cgo_export.*
-
-_testmain.go
-
-*.exe
-*.test
-*.prof
-
-# IDE specific files and folders
-.idea
-*.iml
diff --git a/vendor/github.com/xanzy/go-gitlab/.golangci.yml b/vendor/github.com/xanzy/go-gitlab/.golangci.yml
deleted file mode 100644
index 2d4daeb22e..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/.golangci.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# This file contains all available configuration options
-# with their default values.
-
-# Options for analysis running
-run:
- concurrency: 4
- timeout: 10m
- issues-exit-code: 1
- # Include test files or not, default is true
- tests: true
-
-# Output configuration options
-output:
- format: line-number
-
-# All available settings of specific linters
-linters-settings:
- misspell:
- locale: US
- ignore-words:
- - noteable
- unused:
- # Treat code as a program (not a library) and report unused exported identifiers
- check-exported: false
-
-linters:
- enable:
- - asciicheck
- - deadcode
- - dogsled
- - errorlint
- - exportloopref
- - goconst
- - golint
- - gosimple
- - govet
- - ineffassign
- - megacheck
- - misspell
- - nakedret
- - nolintlint
- - staticcheck
- - structcheck
- - typecheck
- - unconvert
- - unused
- - varcheck
- - whitespace
- disable:
- - errcheck
- disable-all: false
- fast: false
-
-issues:
- # Maximum issues count per one linter (set to 0 to disable)
- max-issues-per-linter: 0
-
- # Maximum count of issues with the same text (set to 0 to disable)
- max-same-issues: 0
diff --git a/vendor/github.com/xanzy/go-gitlab/LICENSE b/vendor/github.com/xanzy/go-gitlab/LICENSE
deleted file mode 100644
index 8dada3edaf..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- 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.
diff --git a/vendor/github.com/xanzy/go-gitlab/README.md b/vendor/github.com/xanzy/go-gitlab/README.md
deleted file mode 100644
index 3c8e401c3c..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/README.md
+++ /dev/null
@@ -1,193 +0,0 @@
-# go-gitlab
-
-A GitLab API client enabling Go programs to interact with GitLab in a simple and uniform way
-
-[![Build Status](https://github.com/xanzy/go-gitlab/workflows/Lint%20and%20Test/badge.svg)](https://github.com/xanzy/go-gitlab/actions?workflow=Lint%20and%20Test)
-[![Sourcegraph](https://sourcegraph.com/github.com/xanzy/go-gitlab/-/badge.svg)](https://sourcegraph.com/github.com/xanzy/go-gitlab?badge)
-[![GoDoc](https://godoc.org/github.com/xanzy/go-gitlab?status.svg)](https://godoc.org/github.com/xanzy/go-gitlab)
-[![Go Report Card](https://goreportcard.com/badge/github.com/xanzy/go-gitlab)](https://goreportcard.com/report/github.com/xanzy/go-gitlab)
-
-## NOTE
-
-Release v0.6.0 (released on 25-08-2017) no longer supports the older V3 Gitlab API. If
-you need V3 support, please use the `f-api-v3` branch. This release contains some backwards
-incompatible changes that were needed to fully support the V4 Gitlab API.
-
-## Coverage
-
-This API client package covers most of the existing Gitlab API calls and is updated regularly
-to add new and/or missing endpoints. Currently the following services are supported:
-
-- [x] Applications
-- [x] Award Emojis
-- [x] Branches
-- [x] Broadcast Messages
-- [x] Commits
-- [x] Container Registry
-- [x] Custom Attributes
-- [x] Deploy Keys
-- [x] Deployments
-- [ ] Discussions (threaded comments)
-- [x] Environments
-- [ ] Epic Issues
-- [ ] Epics
-- [x] Events
-- [x] Feature Flags
-- [ ] Geo Nodes
-- [x] GitLab CI Config Templates
-- [x] Gitignores Templates
-- [x] Group Access Requests
-- [x] Group Issue Boards
-- [x] Group Members
-- [x] Group Milestones
-- [x] Group Wikis
-- [x] Group-Level Variables
-- [x] Groups
-- [x] Instance Clusters
-- [x] Invites
-- [x] Issue Boards
-- [x] Issues
-- [x] Jobs
-- [x] Keys
-- [x] Labels
-- [x] License
-- [x] Merge Request Approvals
-- [x] Merge Requests
-- [x] Namespaces
-- [x] Notes (comments)
-- [x] Notification Settings
-- [x] Open Source License Templates
-- [x] Pages Domains
-- [x] Personal Access Tokens
-- [x] Pipeline Schedules
-- [x] Pipeline Triggers
-- [x] Pipelines
-- [x] Project Access Requests
-- [x] Project Badges
-- [x] Project Clusters
-- [x] Project Import/export
-- [x] Project Members
-- [x] Project Milestones
-- [x] Project Snippets
-- [x] Project-Level Variables
-- [x] Projects (including setting Webhooks)
-- [x] Protected Branches
-- [x] Protected Environments
-- [x] Protected Tags
-- [x] Repositories
-- [x] Repository Files
-- [x] Runners
-- [x] Search
-- [x] Services
-- [x] Settings
-- [x] Sidekiq Metrics
-- [x] System Hooks
-- [x] Tags
-- [x] Todos
-- [x] Users
-- [x] Validate CI Configuration
-- [x] Version
-- [x] Wikis
-
-## Usage
-
-```go
-import "github.com/xanzy/go-gitlab"
-```
-
-Construct a new GitLab client, then use the various services on the client to
-access different parts of the GitLab API. For example, to list all
-users:
-
-```go
-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:
-
-```go
-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":
-
-```go
-git := gitlab.NewClient("yourtokengoeshere")
-opt := &ListProjectsOptions{Search: gitlab.String("svanharmelen")}
-projects, _, err := git.Projects.ListProjects(opt)
-```
-
-### Examples
-
-The [examples](https://github.com/xanzy/go-gitlab/tree/master/examples) directory
-contains a couple for clear examples, of which one is partially listed here as well:
-
-```go
-package main
-
-import (
- "log"
-
- "github.com/xanzy/go-gitlab"
-)
-
-func main() {
- git, err := gitlab.NewClient("yourtokengoeshere")
- if err != nil {
- log.Fatalf("Failed to create client: %v", err)
- }
-
- // Create new project
- p := &gitlab.CreateProjectOptions{
- Name: gitlab.String("My Project"),
- Description: gitlab.String("Just a test project to play with"),
- MergeRequestsEnabled: gitlab.Bool(true),
- SnippetsEnabled: gitlab.Bool(true),
- Visibility: gitlab.Visibility(gitlab.PublicVisibility),
- }
- project, _, err := git.Projects.CreateProject(p)
- if err != nil {
- log.Fatal(err)
- }
-
- // Add a new snippet
- s := &gitlab.CreateProjectSnippetOptions{
- Title: gitlab.String("Dummy Snippet"),
- FileName: gitlab.String("snippet.go"),
- Content: gitlab.String("package main...."),
- Visibility: gitlab.Visibility(gitlab.PublicVisibility),
- }
- _, _, err = git.ProjectSnippets.CreateSnippet(project.ID, s)
- if err != nil {
- log.Fatal(err)
- }
-}
-```
-
-For complete usage of go-gitlab, see the full [package docs](https://godoc.org/github.com/xanzy/go-gitlab).
-
-## ToDo
-
-- The biggest thing this package still needs is tests :disappointed:
-
-## Issues
-
-- If you have an issue: report it on the [issue tracker](https://github.com/xanzy/go-gitlab/issues)
-
-## Author
-
-Sander van Harmelen (<sander@vanharmelen.nl>)
-
-## License
-
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
diff --git a/vendor/github.com/xanzy/go-gitlab/access_requests.go b/vendor/github.com/xanzy/go-gitlab/access_requests.go
deleted file mode 100644
index ebd6d8485d..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/access_requests.go
+++ /dev/null
@@ -1,253 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// AccessRequest represents a access request for a group or project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html
-type AccessRequest struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Name string `json:"name"`
- State string `json:"state"`
- CreatedAt *time.Time `json:"created_at"`
- RequestedAt *time.Time `json:"requested_at"`
- AccessLevel AccessLevelValue `json:"access_level"`
-}
-
-// AccessRequestsService handles communication with the project/group
-// access requests related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/access_requests.html
-type AccessRequestsService struct {
- client *Client
-}
-
-// ListAccessRequestsOptions represents the available
-// ListProjectAccessRequests() or ListGroupAccessRequests() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#list-access-requests-for-a-group-or-project
-type ListAccessRequestsOptions ListOptions
-
-// ListProjectAccessRequests gets a list of access requests
-// viewable by the authenticated user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#list-access-requests-for-a-group-or-project
-func (s *AccessRequestsService) ListProjectAccessRequests(pid interface{}, opt *ListAccessRequestsOptions, options ...RequestOptionFunc) ([]*AccessRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/access_requests", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ars []*AccessRequest
- resp, err := s.client.Do(req, &ars)
- if err != nil {
- return nil, resp, err
- }
-
- return ars, resp, err
-}
-
-// ListGroupAccessRequests gets a list of access requests
-// viewable by the authenticated user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#list-access-requests-for-a-group-or-project
-func (s *AccessRequestsService) ListGroupAccessRequests(gid interface{}, opt *ListAccessRequestsOptions, options ...RequestOptionFunc) ([]*AccessRequest, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/access_requests", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ars []*AccessRequest
- resp, err := s.client.Do(req, &ars)
- if err != nil {
- return nil, resp, err
- }
-
- return ars, resp, err
-}
-
-// RequestProjectAccess requests access for the authenticated user
-// to a group or project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#request-access-to-a-group-or-project
-func (s *AccessRequestsService) RequestProjectAccess(pid interface{}, options ...RequestOptionFunc) (*AccessRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/access_requests", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ar := new(AccessRequest)
- resp, err := s.client.Do(req, ar)
- if err != nil {
- return nil, resp, err
- }
-
- return ar, resp, err
-}
-
-// RequestGroupAccess requests access for the authenticated user
-// to a group or project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#request-access-to-a-group-or-project
-func (s *AccessRequestsService) RequestGroupAccess(gid interface{}, options ...RequestOptionFunc) (*AccessRequest, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/access_requests", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ar := new(AccessRequest)
- resp, err := s.client.Do(req, ar)
- if err != nil {
- return nil, resp, err
- }
-
- return ar, resp, err
-}
-
-// ApproveAccessRequestOptions represents the available
-// ApproveProjectAccessRequest() and ApproveGroupAccessRequest() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#approve-an-access-request
-type ApproveAccessRequestOptions struct {
- AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
-}
-
-// ApproveProjectAccessRequest approves an access request for the given user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#approve-an-access-request
-func (s *AccessRequestsService) ApproveProjectAccessRequest(pid interface{}, user int, opt *ApproveAccessRequestOptions, options ...RequestOptionFunc) (*AccessRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/access_requests/%d/approve", pathEscape(project), user)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ar := new(AccessRequest)
- resp, err := s.client.Do(req, ar)
- if err != nil {
- return nil, resp, err
- }
-
- return ar, resp, err
-}
-
-// ApproveGroupAccessRequest approves an access request for the given user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#approve-an-access-request
-func (s *AccessRequestsService) ApproveGroupAccessRequest(gid interface{}, user int, opt *ApproveAccessRequestOptions, options ...RequestOptionFunc) (*AccessRequest, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/access_requests/%d/approve", pathEscape(group), user)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ar := new(AccessRequest)
- resp, err := s.client.Do(req, ar)
- if err != nil {
- return nil, resp, err
- }
-
- return ar, resp, err
-}
-
-// DenyProjectAccessRequest denies an access request for the given user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#deny-an-access-request
-func (s *AccessRequestsService) DenyProjectAccessRequest(pid interface{}, user int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/access_requests/%d", pathEscape(project), user)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DenyGroupAccessRequest denies an access request for the given user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/access_requests.html#deny-an-access-request
-func (s *AccessRequestsService) DenyGroupAccessRequest(gid interface{}, user int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/access_requests/%d", pathEscape(group), user)
-
- 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/applications.go b/vendor/github.com/xanzy/go-gitlab/applications.go
deleted file mode 100644
index 52a75e7df0..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/applications.go
+++ /dev/null
@@ -1,106 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// ApplicationsService handles communication with administrables applications
-// of the Gitlab API.
-//
-// Gitlab API docs : https://docs.gitlab.com/ee/api/applications.html
-type ApplicationsService struct {
- client *Client
-}
-
-// Application represents a GitLab application
-type Application struct {
- ID int `json:"id"`
- ApplicationID string `json:"application_id"`
- ApplicationName string `json:"application_name"`
- Secret string `json:"secret"`
- CallbackURL string `json:"callback_url"`
- Confidential bool `json:"confidential"`
-}
-
-// CreateApplicationOptions represents the available CreateApplication() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/applications.html#create-an-application
-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"`
-}
-
-// CreateApplication creates a new application owned by the authenticated user.
-//
-// Gitlab API docs : https://docs.gitlab.com/ce/api/applications.html#create-an-application
-func (s *ApplicationsService) CreateApplication(opt *CreateApplicationOptions, options ...RequestOptionFunc) (*Application, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "applications", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- a := new(Application)
- resp, err := s.client.Do(req, a)
- if err != nil {
- return nil, resp, err
- }
-
- return a, resp, err
-}
-
-// ListApplicationsOptions represents the available
-// ListApplications() options.
-type ListApplicationsOptions ListOptions
-
-// ListApplications get a list of administrables applications by the authenticated user
-//
-// Gitlab API docs : https://docs.gitlab.com/ce/api/applications.html#list-all-applications
-func (s *ApplicationsService) ListApplications(opt *ListApplicationsOptions, options ...RequestOptionFunc) ([]*Application, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "applications", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var as []*Application
- resp, err := s.client.Do(req, &as)
- if err != nil {
- return nil, resp, err
- }
-
- return as, resp, err
-}
-
-// DeleteApplication removes a specific application.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/applications.html#delete-an-application
-func (s *ApplicationsService) DeleteApplication(application int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("applications/%d", application)
-
- 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/audit_events.go b/vendor/github.com/xanzy/go-gitlab/audit_events.go
deleted file mode 100644
index f2ca08532c..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/audit_events.go
+++ /dev/null
@@ -1,158 +0,0 @@
-package gitlab
-
-import (
- "fmt"
- "net/http"
- "time"
-)
-
-// AuditEvent represents an audit event for a group or project.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html
-type AuditEvent struct {
- ID int `json:"id"`
- AuthorID int `json:"author_id"`
- EntityID int `json:"entity_id"`
- EntityType string `json:"entity_type"`
- Details AuditEventDetails `json:"details"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-// AuditEventDetails represents the details portion of an audit event for
-// a group or project. The exact fields that are returned for an audit event
-// depend on the action being recorded.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html
-type AuditEventDetails struct {
- With string `json:"with"`
- Add string `json:"add"`
- As string `json:"as"`
- Change string `json:"change"`
- From string `json:"from"`
- To string `json:"to"`
- Remove string `json:"remove"`
- CustomMessage string `json:"custom_message"`
- AuthorName string `json:"author_name"`
- TargetID interface{} `json:"target_id"`
- TargetType string `json:"target_type"`
- TargetDetails string `json:"target_details"`
- IPAddress string `json:"ip_address"`
- EntityPath string `json:"entity_path"`
-}
-
-// AuditEventsService handles communication with the project/group audit
-// event related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html
-type AuditEventsService struct {
- client *Client
-}
-
-// ListAuditEventsOptions represents the available ListProjectAuditEvents()
-// or ListGroupAuditEvents() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html
-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"`
-}
-
-// ListGroupAuditEvents gets a list of audit events for the specified group
-// viewable by the authenticated user.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html
-func (s *AuditEventsService) ListGroupAuditEvents(gid interface{}, opt *ListAuditEventsOptions, options ...RequestOptionFunc) ([]*AuditEvent, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/audit_events", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var aes []*AuditEvent
- resp, err := s.client.Do(req, &aes)
- if err != nil {
- return nil, resp, err
- }
-
- return aes, resp, err
-}
-
-// GetGroupAuditEvent gets a specific group audit event.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html
-func (s *AuditEventsService) GetGroupAuditEvent(gid interface{}, event int, options ...RequestOptionFunc) (*AuditEvent, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/audit_events/%d", pathEscape(group), event)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ae := new(AuditEvent)
- resp, err := s.client.Do(req, ae)
- if err != nil {
- return nil, resp, err
- }
-
- return ae, resp, err
-}
-
-// ListProjectAuditEvents gets a list of audit events for the specified project
-// viewable by the authenticated user.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/audit_events.html
-func (s *AuditEventsService) ListProjectAuditEvents(pid interface{}, opt *ListAuditEventsOptions, options ...RequestOptionFunc) ([]*AuditEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/audit_events", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var aes []*AuditEvent
- resp, err := s.client.Do(req, &aes)
- if err != nil {
- return nil, resp, err
- }
-
- return aes, resp, err
-}
-
-// GetProjectAuditEvent gets a specific project audit event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/audit_events.html
-func (s *AuditEventsService) GetProjectAuditEvent(pid interface{}, event int, options ...RequestOptionFunc) (*AuditEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/audit_events/%d", pathEscape(project), event)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ae := new(AuditEvent)
- resp, err := s.client.Do(req, ae)
- if err != nil {
- return nil, resp, err
- }
-
- return ae, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/avatar.go b/vendor/github.com/xanzy/go-gitlab/avatar.go
deleted file mode 100644
index 1a7b923f3d..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/avatar.go
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// Copyright 2021, Pavel Kostohrys
-//
-// 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 (
- "net/http"
-)
-
-// AvatarRequestsService handles communication with the avatar related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/avatar.html
-type AvatarRequestsService struct {
- client *Client
-}
-
-// Avatar represents a GitLab avatar.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/avatar.html
-type Avatar struct {
- AvatarURL string `json:"avatar_url"`
-}
-
-// GetAvatarOptions represents the available GetAvatar() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/avatar.html#get-a-single-avatar-url
-type GetAvatarOptions struct {
- Email *string `url:"email,omitempty" json:"email,omitempty"`
- Size *int `url:"size,omitempty" json:"size,omitempty"`
-}
-
-// GetAvatar gets the avatar URL for a user with the given email address.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/avatar.html#get-a-single-avatar-url
-func (s *AvatarRequestsService) GetAvatar(opt *GetAvatarOptions, options ...RequestOptionFunc) (*Avatar, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "avatar", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- avatar := new(Avatar)
- response, err := s.client.Do(req, avatar)
- if err != nil {
- return nil, response, err
- }
-
- return avatar, response, nil
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/award_emojis.go b/vendor/github.com/xanzy/go-gitlab/award_emojis.go
deleted file mode 100644
index ffa675a2e2..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/award_emojis.go
+++ /dev/null
@@ -1,468 +0,0 @@
-//
-// Copyright 2021, Arkbriar
-//
-// 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"
- "time"
-)
-
-// AwardEmojiService handles communication with the emoji awards related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html
-type AwardEmojiService struct {
- client *Client
-}
-
-// AwardEmoji represents a GitLab Award Emoji.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/award_emoji.html
-type AwardEmoji struct {
- ID int `json:"id"`
- Name string `json:"name"`
- User struct {
- Name string `json:"name"`
- Username string `json:"username"`
- ID int `json:"id"`
- State string `json:"state"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- } `json:"user"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
- AwardableID int `json:"awardable_id"`
- AwardableType string `json:"awardable_type"`
-}
-
-const (
- awardMergeRequest = "merge_requests"
- awardIssue = "issues"
- awardSnippets = "snippets"
-)
-
-// ListAwardEmojiOptions represents the available options for listing emoji
-// for each resources
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html
-type ListAwardEmojiOptions ListOptions
-
-// ListMergeRequestAwardEmoji gets a list of all award emoji on the merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji
-func (s *AwardEmojiService) ListMergeRequestAwardEmoji(pid interface{}, mergeRequestIID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
- return s.listAwardEmoji(pid, awardMergeRequest, mergeRequestIID, opt, options...)
-}
-
-// ListIssueAwardEmoji gets a list of all award emoji on the issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji
-func (s *AwardEmojiService) ListIssueAwardEmoji(pid interface{}, issueIID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
- return s.listAwardEmoji(pid, awardIssue, issueIID, opt, options...)
-}
-
-// ListSnippetAwardEmoji gets a list of all award emoji on the snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji
-func (s *AwardEmojiService) ListSnippetAwardEmoji(pid interface{}, snippetID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
- return s.listAwardEmoji(pid, awardSnippets, snippetID, opt, options...)
-}
-
-func (s *AwardEmojiService) listAwardEmoji(pid interface{}, resource string, resourceID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/award_emoji",
- pathEscape(project),
- resource,
- resourceID,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var as []*AwardEmoji
- resp, err := s.client.Do(req, &as)
- if err != nil {
- return nil, resp, err
- }
-
- return as, resp, err
-}
-
-// GetMergeRequestAwardEmoji get an award emoji from merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji
-func (s *AwardEmojiService) GetMergeRequestAwardEmoji(pid interface{}, mergeRequestIID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.getAwardEmoji(pid, awardMergeRequest, mergeRequestIID, awardID, options...)
-}
-
-// GetIssueAwardEmoji get an award emoji from issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji
-func (s *AwardEmojiService) GetIssueAwardEmoji(pid interface{}, issueIID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.getAwardEmoji(pid, awardIssue, issueIID, awardID, options...)
-}
-
-// GetSnippetAwardEmoji get an award emoji from snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#list-an-awardable-39-s-award-emoji
-func (s *AwardEmojiService) GetSnippetAwardEmoji(pid interface{}, snippetID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.getAwardEmoji(pid, awardSnippets, snippetID, awardID, options...)
-}
-
-func (s *AwardEmojiService) getAwardEmoji(pid interface{}, resource string, resourceID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/award_emoji/%d",
- pathEscape(project),
- resource,
- resourceID,
- awardID,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- a := new(AwardEmoji)
- resp, err := s.client.Do(req, &a)
- if err != nil {
- return nil, resp, err
- }
-
- return a, resp, err
-}
-
-// CreateAwardEmojiOptions represents the available options for awarding emoji
-// for a resource
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji
-type CreateAwardEmojiOptions struct {
- Name string `json:"name"`
-}
-
-// CreateMergeRequestAwardEmoji get an award emoji from merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji
-func (s *AwardEmojiService) CreateMergeRequestAwardEmoji(pid interface{}, mergeRequestIID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.createAwardEmoji(pid, awardMergeRequest, mergeRequestIID, opt, options...)
-}
-
-// CreateIssueAwardEmoji get an award emoji from issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji
-func (s *AwardEmojiService) CreateIssueAwardEmoji(pid interface{}, issueIID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.createAwardEmoji(pid, awardIssue, issueIID, opt, options...)
-}
-
-// CreateSnippetAwardEmoji get an award emoji from snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji
-func (s *AwardEmojiService) CreateSnippetAwardEmoji(pid interface{}, snippetID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.createAwardEmoji(pid, awardSnippets, snippetID, opt, options...)
-}
-
-func (s *AwardEmojiService) createAwardEmoji(pid interface{}, resource string, resourceID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/award_emoji",
- pathEscape(project),
- resource,
- resourceID,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- a := new(AwardEmoji)
- resp, err := s.client.Do(req, &a)
- if err != nil {
- return nil, resp, err
- }
-
- return a, resp, err
-}
-
-// DeleteIssueAwardEmoji delete award emoji on an issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji-on-a-note
-func (s *AwardEmojiService) DeleteIssueAwardEmoji(pid interface{}, issueIID, awardID int, options ...RequestOptionFunc) (*Response, error) {
- return s.deleteAwardEmoji(pid, awardMergeRequest, issueIID, awardID, options...)
-}
-
-// DeleteMergeRequestAwardEmoji delete award emoji on a merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji-on-a-note
-func (s *AwardEmojiService) DeleteMergeRequestAwardEmoji(pid interface{}, mergeRequestIID, awardID int, options ...RequestOptionFunc) (*Response, error) {
- return s.deleteAwardEmoji(pid, awardMergeRequest, mergeRequestIID, awardID, options...)
-}
-
-// DeleteSnippetAwardEmoji delete award emoji on a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji-on-a-note
-func (s *AwardEmojiService) DeleteSnippetAwardEmoji(pid interface{}, snippetID, awardID int, options ...RequestOptionFunc) (*Response, error) {
- return s.deleteAwardEmoji(pid, awardMergeRequest, snippetID, awardID, options...)
-}
-
-// DeleteAwardEmoji Delete an award emoji on the specified resource.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#delete-an-award-emoji
-func (s *AwardEmojiService) deleteAwardEmoji(pid interface{}, resource string, resourceID, awardID int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/award_emoji/%d", pathEscape(project), resource,
- resourceID, awardID)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
- return s.client.Do(req, nil)
-}
-
-// ListIssuesAwardEmojiOnNote gets a list of all award emoji on a note from the
-// issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) ListIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
- return s.listAwardEmojiOnNote(pid, awardIssue, issueID, noteID, opt, options...)
-}
-
-// ListMergeRequestAwardEmojiOnNote gets a list of all award emoji on a note
-// from the merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) ListMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
- return s.listAwardEmojiOnNote(pid, awardMergeRequest, mergeRequestIID, noteID, opt, options...)
-}
-
-// ListSnippetAwardEmojiOnNote gets a list of all award emoji on a note from the
-// snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) ListSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
- return s.listAwardEmojiOnNote(pid, awardSnippets, snippetIID, noteID, opt, options...)
-}
-
-func (s *AwardEmojiService) listAwardEmojiOnNote(pid interface{}, resources string, ressourceID, noteID int, opt *ListAwardEmojiOptions, options ...RequestOptionFunc) ([]*AwardEmoji, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/notes/%d/award_emoji", pathEscape(project), resources,
- ressourceID, noteID)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var as []*AwardEmoji
- resp, err := s.client.Do(req, &as)
- if err != nil {
- return nil, resp, err
- }
-
- return as, resp, err
-}
-
-// GetIssuesAwardEmojiOnNote gets an award emoji on a note from an issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) GetIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.getSingleNoteAwardEmoji(pid, awardIssue, issueID, noteID, awardID, options...)
-}
-
-// GetMergeRequestAwardEmojiOnNote gets an award emoji on a note from a
-// merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) GetMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.getSingleNoteAwardEmoji(pid, awardMergeRequest, mergeRequestIID, noteID, awardID,
- options...)
-}
-
-// GetSnippetAwardEmojiOnNote gets an award emoji on a note from a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) GetSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.getSingleNoteAwardEmoji(pid, awardSnippets, snippetIID, noteID, awardID, options...)
-}
-
-func (s *AwardEmojiService) getSingleNoteAwardEmoji(pid interface{}, ressource string, resourceID, noteID, awardID int, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/notes/%d/award_emoji/%d",
- pathEscape(project),
- ressource,
- resourceID,
- noteID,
- awardID,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- a := new(AwardEmoji)
- resp, err := s.client.Do(req, &a)
- if err != nil {
- return nil, resp, err
- }
-
- return a, resp, err
-}
-
-// CreateIssuesAwardEmojiOnNote gets an award emoji on a note from an issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) CreateIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.createAwardEmojiOnNote(pid, awardIssue, issueID, noteID, opt, options...)
-}
-
-// CreateMergeRequestAwardEmojiOnNote gets an award emoji on a note from a
-// merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) CreateMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.createAwardEmojiOnNote(pid, awardMergeRequest, mergeRequestIID, noteID, opt, options...)
-}
-
-// CreateSnippetAwardEmojiOnNote gets an award emoji on a note from a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) CreateSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- return s.createAwardEmojiOnNote(pid, awardSnippets, snippetIID, noteID, opt, options...)
-}
-
-// CreateAwardEmojiOnNote award emoji on a note.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-a-new-emoji-on-a-note
-func (s *AwardEmojiService) createAwardEmojiOnNote(pid interface{}, resource string, resourceID, noteID int, opt *CreateAwardEmojiOptions, options ...RequestOptionFunc) (*AwardEmoji, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/notes/%d/award_emoji",
- pathEscape(project),
- resource,
- resourceID,
- noteID,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- a := new(AwardEmoji)
- resp, err := s.client.Do(req, &a)
- if err != nil {
- return nil, resp, err
- }
-
- return a, resp, err
-}
-
-// DeleteIssuesAwardEmojiOnNote deletes an award emoji on a note from an issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) DeleteIssuesAwardEmojiOnNote(pid interface{}, issueID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error) {
- return s.deleteAwardEmojiOnNote(pid, awardIssue, issueID, noteID, awardID, options...)
-}
-
-// DeleteMergeRequestAwardEmojiOnNote deletes an award emoji on a note from a
-// merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) DeleteMergeRequestAwardEmojiOnNote(pid interface{}, mergeRequestIID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error) {
- return s.deleteAwardEmojiOnNote(pid, awardMergeRequest, mergeRequestIID, noteID, awardID,
- options...)
-}
-
-// DeleteSnippetAwardEmojiOnNote deletes an award emoji on a note from a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/award_emoji.html#award-emoji-on-notes
-func (s *AwardEmojiService) DeleteSnippetAwardEmojiOnNote(pid interface{}, snippetIID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error) {
- return s.deleteAwardEmojiOnNote(pid, awardSnippets, snippetIID, noteID, awardID, options...)
-}
-
-func (s *AwardEmojiService) deleteAwardEmojiOnNote(pid interface{}, resource string, resourceID, noteID, awardID int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/notes/%d/award_emoji/%d",
- pathEscape(project),
- resource,
- resourceID,
- noteID,
- awardID,
- )
-
- 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/boards.go b/vendor/github.com/xanzy/go-gitlab/boards.go
deleted file mode 100644
index ef850234f1..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/boards.go
+++ /dev/null
@@ -1,345 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// IssueBoardsService handles communication with the issue board related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html
-type IssueBoardsService struct {
- client *Client
-}
-
-// IssueBoard represents a GitLab issue board.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html
-type IssueBoard struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Project *Project `json:"project"`
- Milestone *Milestone `json:"milestone"`
- Lists []*BoardList `json:"lists"`
-}
-
-func (b IssueBoard) String() string {
- return Stringify(b)
-}
-
-// BoardList represents a GitLab board list.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html
-type BoardList struct {
- ID int `json:"id"`
- Label *Label `json:"label"`
- Position int `json:"position"`
-}
-
-func (b BoardList) String() string {
- return Stringify(b)
-}
-
-// CreateIssueBoardOptions represents the available CreateIssueBoard() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/boards.html#create-a-board-starter
-type CreateIssueBoardOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
-}
-
-// CreateIssueBoard creates a new issue board.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/boards.html#create-a-board-starter
-func (s *IssueBoardsService) CreateIssueBoard(pid interface{}, opt *CreateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/boards", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- board := new(IssueBoard)
- resp, err := s.client.Do(req, board)
- if err != nil {
- return nil, resp, err
- }
-
- return board, resp, err
-}
-
-// UpdateIssueBoardOptions represents the available UpdateIssueBoard() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/boards.html#update-a-board-starter
-type UpdateIssueBoardOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- MilestoneID *int `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
- Labels Labels `url:"labels,omitempty" json:"labels,omitempty"`
- Weight *int `url:"weight,omitempty" json:"weight,omitempty"`
-}
-
-// UpdateIssueBoard update an issue board.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/boards.html#create-a-board-starter
-func (s *IssueBoardsService) UpdateIssueBoard(pid interface{}, board int, opt *UpdateIssueBoardOptions, options ...RequestOptionFunc) (*IssueBoard, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/boards/%d", pathEscape(project), board)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- is := new(IssueBoard)
- resp, err := s.client.Do(req, is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
-
-// DeleteIssueBoard deletes an issue board.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/boards.html#delete-a-board-starter
-func (s *IssueBoardsService) DeleteIssueBoard(pid interface{}, board int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/boards/%d", pathEscape(project), board)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListIssueBoardsOptions represents the available ListIssueBoards() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#project-board
-type ListIssueBoardsOptions ListOptions
-
-// ListIssueBoards gets a list of all issue boards in a project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#project-board
-func (s *IssueBoardsService) ListIssueBoards(pid interface{}, opt *ListIssueBoardsOptions, options ...RequestOptionFunc) ([]*IssueBoard, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/boards", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var is []*IssueBoard
- resp, err := s.client.Do(req, &is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
-
-// GetIssueBoard gets a single issue board of a project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#single-board
-func (s *IssueBoardsService) GetIssueBoard(pid interface{}, board int, options ...RequestOptionFunc) (*IssueBoard, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/boards/%d", pathEscape(project), board)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ib := new(IssueBoard)
- resp, err := s.client.Do(req, ib)
- if err != nil {
- return nil, resp, err
- }
-
- return ib, resp, err
-}
-
-// GetIssueBoardListsOptions represents the available GetIssueBoardLists() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#list-board-lists
-type GetIssueBoardListsOptions ListOptions
-
-// GetIssueBoardLists gets a list of the issue board's lists. Does not include
-// backlog and closed lists.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#list-board-lists
-func (s *IssueBoardsService) GetIssueBoardLists(pid interface{}, board int, opt *GetIssueBoardListsOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/boards/%d/lists", pathEscape(project), board)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var bl []*BoardList
- resp, err := s.client.Do(req, &bl)
- if err != nil {
- return nil, resp, err
- }
-
- return bl, resp, err
-}
-
-// GetIssueBoardList gets a single issue board list.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#single-board-list
-func (s *IssueBoardsService) GetIssueBoardList(pid interface{}, board, list int, options ...RequestOptionFunc) (*BoardList, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/boards/%d/lists/%d",
- pathEscape(project),
- board,
- list,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- bl := new(BoardList)
- resp, err := s.client.Do(req, bl)
- if err != nil {
- return nil, resp, err
- }
-
- return bl, resp, err
-}
-
-// CreateIssueBoardListOptions represents the available CreateIssueBoardList()
-// options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#new-board-list
-type CreateIssueBoardListOptions struct {
- LabelID *int `url:"label_id" json:"label_id"`
-}
-
-// CreateIssueBoardList creates a new issue board list.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#new-board-list
-func (s *IssueBoardsService) CreateIssueBoardList(pid interface{}, board int, opt *CreateIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/boards/%d/lists", pathEscape(project), board)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- bl := new(BoardList)
- resp, err := s.client.Do(req, bl)
- if err != nil {
- return nil, resp, err
- }
-
- return bl, resp, err
-}
-
-// UpdateIssueBoardListOptions represents the available UpdateIssueBoardList()
-// options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#edit-board-list
-type UpdateIssueBoardListOptions struct {
- Position *int `url:"position" json:"position"`
-}
-
-// UpdateIssueBoardList updates the position of an existing issue board list.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/boards.html#edit-board-list
-func (s *IssueBoardsService) UpdateIssueBoardList(pid interface{}, board, list int, opt *UpdateIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/boards/%d/lists/%d",
- pathEscape(project),
- board,
- list,
- )
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- bl := new(BoardList)
- resp, err := s.client.Do(req, bl)
- if err != nil {
- return nil, resp, err
- }
-
- return bl, resp, err
-}
-
-// DeleteIssueBoardList soft deletes an issue board list. Only for admins and
-// project owners.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/boards.html#delete-a-board-list
-func (s *IssueBoardsService) DeleteIssueBoardList(pid interface{}, board, list int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/boards/%d/lists/%d",
- pathEscape(project),
- board,
- list,
- )
-
- 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/branches.go b/vendor/github.com/xanzy/go-gitlab/branches.go
deleted file mode 100644
index 71285620e1..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/branches.go
+++ /dev/null
@@ -1,245 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "net/url"
-)
-
-// BranchesService handles communication with the branch related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/branches.html
-type BranchesService struct {
- client *Client
-}
-
-// Branch represents a GitLab branch.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/branches.html
-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"`
-}
-
-func (b Branch) String() string {
- return Stringify(b)
-}
-
-// ListBranchesOptions represents the available ListBranches() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#list-repository-branches
-type ListBranchesOptions struct {
- ListOptions
- Search *string `url:"search,omitempty" json:"search,omitempty"`
-}
-
-// ListBranches gets a list of repository branches from a project, sorted by
-// name alphabetically.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#list-repository-branches
-func (s *BranchesService) ListBranches(pid interface{}, opts *ListBranchesOptions, options ...RequestOptionFunc) ([]*Branch, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/branches", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- var b []*Branch
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b, resp, err
-}
-
-// GetBranch gets a single project repository branch.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#get-single-repository-branch
-func (s *BranchesService) GetBranch(pid interface{}, branch string, options ...RequestOptionFunc) (*Branch, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/branches/%s", pathEscape(project), url.PathEscape(branch))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- b := new(Branch)
- resp, err := s.client.Do(req, b)
- if err != nil {
- return nil, resp, err
- }
-
- return b, resp, err
-}
-
-// ProtectBranchOptions represents the available ProtectBranch() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#protect-repository-branch
-type ProtectBranchOptions struct {
- DevelopersCanPush *bool `url:"developers_can_push,omitempty" json:"developers_can_push,omitempty"`
- DevelopersCanMerge *bool `url:"developers_can_merge,omitempty" json:"developers_can_merge,omitempty"`
-}
-
-// ProtectBranch protects a single project repository branch. This is an
-// idempotent function, protecting an already protected repository branch
-// still returns a 200 OK status code.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#protect-repository-branch
-func (s *BranchesService) ProtectBranch(pid interface{}, branch string, opts *ProtectBranchOptions, options ...RequestOptionFunc) (*Branch, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/branches/%s/protect", pathEscape(project), url.PathEscape(branch))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- b := new(Branch)
- resp, err := s.client.Do(req, b)
- if err != nil {
- return nil, resp, err
- }
-
- return b, resp, err
-}
-
-// UnprotectBranch unprotects a single project repository branch. This is an
-// idempotent function, unprotecting an already unprotected repository branch
-// still returns a 200 OK status code.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#unprotect-repository-branch
-func (s *BranchesService) UnprotectBranch(pid interface{}, branch string, options ...RequestOptionFunc) (*Branch, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/branches/%s/unprotect", pathEscape(project), url.PathEscape(branch))
-
- req, err := s.client.NewRequest(http.MethodPut, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- b := new(Branch)
- resp, err := s.client.Do(req, b)
- if err != nil {
- return nil, resp, err
- }
-
- return b, resp, err
-}
-
-// CreateBranchOptions represents the available CreateBranch() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#create-repository-branch
-type CreateBranchOptions struct {
- Branch *string `url:"branch,omitempty" json:"branch,omitempty"`
- Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
-}
-
-// CreateBranch creates branch from commit SHA or existing branch.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#create-repository-branch
-func (s *BranchesService) CreateBranch(pid interface{}, opt *CreateBranchOptions, options ...RequestOptionFunc) (*Branch, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/branches", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- b := new(Branch)
- resp, err := s.client.Do(req, b)
- if err != nil {
- return nil, resp, err
- }
-
- return b, resp, err
-}
-
-// DeleteBranch deletes an existing branch.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#delete-repository-branch
-func (s *BranchesService) DeleteBranch(pid interface{}, branch string, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/branches/%s", pathEscape(project), url.PathEscape(branch))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteMergedBranches deletes all branches that are merged into the project's default branch.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/branches.html#delete-merged-branches
-func (s *BranchesService) DeleteMergedBranches(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/merged_branches", 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/broadcast_messages.go b/vendor/github.com/xanzy/go-gitlab/broadcast_messages.go
deleted file mode 100644
index 3271843c33..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/broadcast_messages.go
+++ /dev/null
@@ -1,173 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// BroadcastMessagesService handles communication with the broadcast
-// messages methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/broadcast_messages.html
-type BroadcastMessagesService struct {
- client *Client
-}
-
-// BroadcastMessage represents a GitLab issue board.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/broadcast_messages.html#get-all-broadcast-messages
-type BroadcastMessage struct {
- Message string `json:"message"`
- StartsAt *time.Time `json:"starts_at"`
- EndsAt *time.Time `json:"ends_at"`
- Color string `json:"color"`
- Font string `json:"font"`
- ID int `json:"id"`
- Active bool `json:"active"`
-}
-
-// ListBroadcastMessagesOptions represents the available ListBroadcastMessages()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/broadcast_messages.html#get-all-broadcast-messages
-type ListBroadcastMessagesOptions ListOptions
-
-// ListBroadcastMessages gets a list of all broadcasted messages.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/broadcast_messages.html#get-all-broadcast-messages
-func (s *BroadcastMessagesService) ListBroadcastMessages(opt *ListBroadcastMessagesOptions, options ...RequestOptionFunc) ([]*BroadcastMessage, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "broadcast_messages", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var bs []*BroadcastMessage
- resp, err := s.client.Do(req, &bs)
- if err != nil {
- return nil, resp, err
- }
-
- return bs, resp, err
-}
-
-// GetBroadcastMessage gets a single broadcast message.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/broadcast_messages.html#get-a-specific-broadcast-message
-func (s *BroadcastMessagesService) GetBroadcastMessage(broadcast int, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error) {
- u := fmt.Sprintf("broadcast_messages/%d", broadcast)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- b := new(BroadcastMessage)
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b, resp, err
-}
-
-// CreateBroadcastMessageOptions represents the available CreateBroadcastMessage()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/broadcast_messages.html#create-a-broadcast-message
-type CreateBroadcastMessageOptions struct {
- Message *string `url:"message" json:"message"`
- StartsAt *time.Time `url:"starts_at,omitempty" json:"starts_at,omitempty"`
- EndsAt *time.Time `url:"ends_at,omitempty" json:"ends_at,omitempty"`
- Color *string `url:"color,omitempty" json:"color,omitempty"`
- Font *string `url:"font,omitempty" json:"font,omitempty"`
-}
-
-// CreateBroadcastMessage creates a message to broadcast.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/broadcast_messages.html#create-a-broadcast-message
-func (s *BroadcastMessagesService) CreateBroadcastMessage(opt *CreateBroadcastMessageOptions, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "broadcast_messages", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- b := new(BroadcastMessage)
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b, resp, err
-}
-
-// UpdateBroadcastMessageOptions represents the available CreateBroadcastMessage()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/broadcast_messages.html#update-a-broadcast-message
-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"`
- Color *string `url:"color,omitempty" json:"color,omitempty"`
- Font *string `url:"font,omitempty" json:"font,omitempty"`
-}
-
-// UpdateBroadcastMessage update a broadcasted message.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/broadcast_messages.html#update-a-broadcast-message
-func (s *BroadcastMessagesService) UpdateBroadcastMessage(broadcast int, opt *UpdateBroadcastMessageOptions, options ...RequestOptionFunc) (*BroadcastMessage, *Response, error) {
- u := fmt.Sprintf("broadcast_messages/%d", broadcast)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- b := new(BroadcastMessage)
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b, resp, err
-}
-
-// DeleteBroadcastMessage deletes a broadcasted message.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/broadcast_messages.html#delete-a-broadcast-message
-func (s *BroadcastMessagesService) DeleteBroadcastMessage(broadcast int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("broadcast_messages/%d", broadcast)
-
- 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/ci_yml_templates.go b/vendor/github.com/xanzy/go-gitlab/ci_yml_templates.go
deleted file mode 100644
index da447c1baa..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/ci_yml_templates.go
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// CIYMLTemplatesService handles communication with the gitlab
-// CI YML templates related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html
-type CIYMLTemplatesService struct {
- client *Client
-}
-
-// CIYMLTemplate represents a GitLab CI YML template.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html
-type CIYMLTemplate struct {
- Name string `json:"name"`
- Content string `json:"content"`
-}
-
-// ListCIYMLTemplatesOptions represents the available ListAllTemplates() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/gitignores.html#list-gitignore-templates
-type ListCIYMLTemplatesOptions ListOptions
-
-// ListAllTemplates get all GitLab CI YML templates.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html#list-gitlab-ci-yml-templates
-func (s *CIYMLTemplatesService) ListAllTemplates(opt *ListCIYMLTemplatesOptions, options ...RequestOptionFunc) ([]*CIYMLTemplate, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "templates/gitlab_ci_ymls", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var cts []*CIYMLTemplate
- resp, err := s.client.Do(req, &cts)
- if err != nil {
- return nil, resp, err
- }
-
- return cts, resp, err
-}
-
-// GetTemplate get a single GitLab CI YML template.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html#single-gitlab-ci-yml-template
-func (s *CIYMLTemplatesService) GetTemplate(key string, options ...RequestOptionFunc) (*CIYMLTemplate, *Response, error) {
- u := fmt.Sprintf("templates/gitlab_ci_ymls/%s", pathEscape(key))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ct := new(CIYMLTemplate)
- resp, err := s.client.Do(req, ct)
- if err != nil {
- return nil, resp, err
- }
-
- return ct, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/client_options.go b/vendor/github.com/xanzy/go-gitlab/client_options.go
deleted file mode 100644
index f1d39adabe..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/client_options.go
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// 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 (
- "net/http"
-
- retryablehttp "github.com/hashicorp/go-retryablehttp"
-)
-
-// ClientOptionFunc can be used to customize a new GitLab API client.
-type ClientOptionFunc func(*Client) error
-
-// WithBaseURL sets the base URL for API requests to a custom endpoint.
-func WithBaseURL(urlStr string) ClientOptionFunc {
- return func(c *Client) error {
- return c.setBaseURL(urlStr)
- }
-}
-
-// WithCustomBackoff can be used to configure a custom backoff policy.
-func WithCustomBackoff(backoff retryablehttp.Backoff) ClientOptionFunc {
- return func(c *Client) error {
- c.client.Backoff = backoff
- return nil
- }
-}
-
-// WithCustomLeveledLogger 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 {
- c.configureLimiterOnce.Do(func() {
- c.limiter = limiter
- })
- return nil
- }
-}
-
-// 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 {
- c.client.CheckRetry = checkRetry
- return nil
- }
-}
-
-// WithHTTPClient can be used to configure a custom HTTP client.
-func WithHTTPClient(httpClient *http.Client) ClientOptionFunc {
- return func(c *Client) error {
- c.client.HTTPClient = httpClient
- return nil
- }
-}
-
-// WithoutRetries disables the default retry logic.
-func WithoutRetries() ClientOptionFunc {
- return func(c *Client) error {
- c.disableRetries = true
- return nil
- }
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/commits.go b/vendor/github.com/xanzy/go-gitlab/commits.go
deleted file mode 100644
index acc0998705..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/commits.go
+++ /dev/null
@@ -1,591 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "net/url"
- "time"
-)
-
-// CommitsService handles communication with the commit related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html
-type CommitsService struct {
- client *Client
-}
-
-// Commit represents a GitLab commit.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html
-type Commit struct {
- ID string `json:"id"`
- ShortID string `json:"short_id"`
- Title string `json:"title"`
- AuthorName string `json:"author_name"`
- AuthorEmail string `json:"author_email"`
- AuthoredDate *time.Time `json:"authored_date"`
- CommitterName string `json:"committer_name"`
- CommitterEmail string `json:"committer_email"`
- CommittedDate *time.Time `json:"committed_date"`
- CreatedAt *time.Time `json:"created_at"`
- Message string `json:"message"`
- ParentIDs []string `json:"parent_ids"`
- Stats *CommitStats `json:"stats"`
- Status *BuildStateValue `json:"status"`
- LastPipeline *PipelineInfo `json:"last_pipeline"`
- ProjectID int `json:"project_id"`
- WebURL string `json:"web_url"`
-}
-
-// CommitStats represents the number of added and deleted files in a commit.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html
-type CommitStats struct {
- Additions int `json:"additions"`
- Deletions int `json:"deletions"`
- Total int `json:"total"`
-}
-
-func (c Commit) String() string {
- return Stringify(c)
-}
-
-// ListCommitsOptions represents the available ListCommits() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#list-repository-commits
-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"`
- 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"`
-}
-
-// ListCommits gets a list of repository commits in a project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#list-commits
-func (s *CommitsService) ListCommits(pid interface{}, opt *ListCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var c []*Commit
- resp, err := s.client.Do(req, &c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// CommitRef represents the reference of branches/tags in a commit.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#get-references-a-commit-is-pushed-to
-type CommitRef struct {
- Type string `json:"type"`
- Name string `json:"name"`
-}
-
-// GetCommitRefsOptions represents the available GetCommitRefs() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#get-references-a-commit-is-pushed-to
-type GetCommitRefsOptions struct {
- ListOptions
- Type *string `url:"type,omitempty" json:"type,omitempty"`
-}
-
-// GetCommitRefs gets all references (from branches or tags) a commit is pushed to
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#get-references-a-commit-is-pushed-to
-func (s *CommitsService) GetCommitRefs(pid interface{}, sha string, opt *GetCommitRefsOptions, options ...RequestOptionFunc) ([]*CommitRef, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/refs", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var cs []*CommitRef
- resp, err := s.client.Do(req, &cs)
- if err != nil {
- return nil, resp, err
- }
-
- return cs, resp, err
-}
-
-// GetCommit gets a specific commit identified by the commit hash or name of a
-// branch or tag.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-a-single-commit
-func (s *CommitsService) GetCommit(pid interface{}, sha string, options ...RequestOptionFunc) (*Commit, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- if sha == "" {
- return nil, nil, fmt.Errorf("SHA must be a non-empty string")
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- c := new(Commit)
- resp, err := s.client.Do(req, c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// CreateCommitOptions represents the available options for a new commit.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions
-type 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"`
-}
-
-// CommitActionOptions represents the available options for a new single
-// file action.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions
-type 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"`
-}
-
-// CreateCommit creates a commit with multiple files and actions.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions
-func (s *CommitsService) CreateCommit(pid interface{}, opt *CreateCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- c := new(Commit)
- resp, err := s.client.Do(req, &c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// Diff represents a GitLab diff.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html
-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"`
-}
-
-func (d Diff) String() string {
- return Stringify(d)
-}
-
-// GetCommitDiffOptions represents the available GetCommitDiff() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#get-the-diff-of-a-commit
-type GetCommitDiffOptions ListOptions
-
-// GetCommitDiff gets the diff of a commit in a project..
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#get-the-diff-of-a-commit
-func (s *CommitsService) GetCommitDiff(pid interface{}, sha string, opt *GetCommitDiffOptions, options ...RequestOptionFunc) ([]*Diff, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/diff", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var d []*Diff
- resp, err := s.client.Do(req, &d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// CommitComment represents a GitLab commit comment.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html
-type CommitComment struct {
- Note string `json:"note"`
- Path string `json:"path"`
- Line int `json:"line"`
- LineType string `json:"line_type"`
- Author Author `json:"author"`
-}
-
-// Author represents a GitLab commit author
-type Author struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Email string `json:"email"`
- Name string `json:"name"`
- State string `json:"state"`
- Blocked bool `json:"blocked"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-func (c CommitComment) String() string {
- return Stringify(c)
-}
-
-// GetCommitCommentsOptions represents the available GetCommitComments() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#get-the-comments-of-a-commit
-type GetCommitCommentsOptions ListOptions
-
-// GetCommitComments gets the comments of a commit in a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#get-the-comments-of-a-commit
-func (s *CommitsService) GetCommitComments(pid interface{}, sha string, opt *GetCommitCommentsOptions, options ...RequestOptionFunc) ([]*CommitComment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/comments", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var c []*CommitComment
- resp, err := s.client.Do(req, &c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// PostCommitCommentOptions represents the available PostCommitComment()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#post-comment-to-commit
-type PostCommitCommentOptions struct {
- Note *string `url:"note,omitempty" json:"note,omitempty"`
- Path *string `url:"path" json:"path"`
- Line *int `url:"line" json:"line"`
- LineType *string `url:"line_type" json:"line_type"`
-}
-
-// PostCommitComment adds a comment to a commit. Optionally you can post
-// comments on a specific line of a commit. Therefor both path, line_new and
-// line_old are required.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#post-comment-to-commit
-func (s *CommitsService) PostCommitComment(pid interface{}, sha string, opt *PostCommitCommentOptions, options ...RequestOptionFunc) (*CommitComment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/comments", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- c := new(CommitComment)
- resp, err := s.client.Do(req, c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// GetCommitStatusesOptions represents the available GetCommitStatuses() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-the-status-of-a-commit
-type GetCommitStatusesOptions struct {
- ListOptions
- Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
- Stage *string `url:"stage,omitempty" json:"stage,omitempty"`
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- All *bool `url:"all,omitempty" json:"all,omitempty"`
-}
-
-// CommitStatus represents a GitLab commit status.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-the-status-of-a-commit
-type CommitStatus struct {
- ID int `json:"id"`
- SHA string `json:"sha"`
- Ref string `json:"ref"`
- Status string `json:"status"`
- CreatedAt *time.Time `json:"created_at"`
- StartedAt *time.Time `json:"started_at"`
- FinishedAt *time.Time `json:"finished_at"`
- Name string `json:"name"`
- AllowFailure bool `json:"allow_failure"`
- Author Author `json:"author"`
- Description string `json:"description"`
- TargetURL string `json:"target_url"`
-}
-
-// GetCommitStatuses gets the statuses of a commit in a project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#get-the-status-of-a-commit
-func (s *CommitsService) GetCommitStatuses(pid interface{}, sha string, opt *GetCommitStatusesOptions, options ...RequestOptionFunc) ([]*CommitStatus, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/statuses", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var cs []*CommitStatus
- resp, err := s.client.Do(req, &cs)
- if err != nil {
- return nil, resp, err
- }
-
- return cs, resp, err
-}
-
-// SetCommitStatusOptions represents the available SetCommitStatus() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#post-the-status-to-commit
-type SetCommitStatusOptions struct {
- State BuildStateValue `url:"state" json:"state"`
- Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- Context *string `url:"context,omitempty" json:"context,omitempty"`
- TargetURL *string `url:"target_url,omitempty" json:"target_url,omitempty"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- Coverage *float64 `url:"coverage,omitempty" json:"coverage,omitempty"`
- PipelineID *int `url:"pipeline_id,omitempty" json:"pipeline_id,omitempty"`
-}
-
-// SetCommitStatus sets the status of a commit in a project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#post-the-status-to-commit
-func (s *CommitsService) SetCommitStatus(pid interface{}, sha string, opt *SetCommitStatusOptions, options ...RequestOptionFunc) (*CommitStatus, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/statuses/%s", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- cs := new(CommitStatus)
- resp, err := s.client.Do(req, &cs)
- if err != nil {
- return nil, resp, err
- }
-
- return cs, resp, err
-}
-
-// GetMergeRequestsByCommit gets merge request associated with a commit.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/commits.html#list-merge-requests-associated-with-a-commit
-func (s *CommitsService) GetMergeRequestsByCommit(pid interface{}, sha string, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/merge_requests", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var mrs []*MergeRequest
- resp, err := s.client.Do(req, &mrs)
- if err != nil {
- return nil, resp, err
- }
-
- return mrs, resp, err
-}
-
-// CherryPickCommitOptions represents the available CherryPickCommit() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#cherry-pick-a-commit
-type CherryPickCommitOptions struct {
- Branch *string `url:"branch,omitempty" json:"branch,omitempty"`
-}
-
-// CherryPickCommit cherry picks a commit to a given branch.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/commits.html#cherry-pick-a-commit
-func (s *CommitsService) CherryPickCommit(pid interface{}, sha string, opt *CherryPickCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/cherry_pick", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- c := new(Commit)
- resp, err := s.client.Do(req, &c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// RevertCommitOptions represents the available RevertCommit() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/commits.html#revert-a-commit
-type RevertCommitOptions struct {
- Branch *string `url:"branch,omitempty" json:"branch,omitempty"`
-}
-
-// RevertCommit reverts a commit in a given branch.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/commits.html#revert-a-commit
-func (s *CommitsService) RevertCommit(pid interface{}, sha string, opt *RevertCommitOptions, options ...RequestOptionFunc) (*Commit, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/revert", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- c := new(Commit)
- resp, err := s.client.Do(req, &c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// GPGSignature represents a Gitlab commit's GPG Signature.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/commits.html#get-gpg-signature-of-a-commit
-type GPGSignature struct {
- KeyID int `json:"gpg_key_id"`
- KeyPrimaryKeyID string `json:"gpg_key_primary_keyid"`
- KeyUserName string `json:"gpg_key_user_name"`
- KeyUserEmail string `json:"gpg_key_user_email"`
- VerificationStatus string `json:"verification_status"`
- KeySubkeyID int `json:"gpg_key_subkey_id"`
-}
-
-// GetGPGSiganature gets a GPG signature of a commit.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/commits.html#get-gpg-signature-of-a-commit
-func (s *CommitsService) GetGPGSiganature(pid interface{}, sha string, options ...RequestOptionFunc) (*GPGSignature, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/signature", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- sig := new(GPGSignature)
- resp, err := s.client.Do(req, &sig)
- if err != nil {
- return nil, resp, err
- }
-
- return sig, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/container_registry.go b/vendor/github.com/xanzy/go-gitlab/container_registry.go
deleted file mode 100644
index dd2b5b3f2e..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/container_registry.go
+++ /dev/null
@@ -1,247 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// ContainerRegistryService handles communication with the container registry
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html
-type ContainerRegistryService struct {
- client *Client
-}
-
-// RegistryRepository represents a GitLab content registry repository.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html
-type RegistryRepository struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Path string `json:"path"`
- Location string `json:"location"`
- CreatedAt *time.Time `json:"created_at"`
- CleanupPolicyStartedAt *time.Time `json:"cleanup_policy_started_at"`
- TagsCount int `json:"tags_count"`
- Tags []*RegistryRepositoryTag `json:"tags"`
-}
-
-func (s RegistryRepository) String() string {
- return Stringify(s)
-}
-
-// RegistryRepositoryTag represents a GitLab registry image tag.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/container_registry.html
-type RegistryRepositoryTag struct {
- Name string `json:"name"`
- Path string `json:"path"`
- Location string `json:"location"`
- Revision string `json:"revision"`
- ShortRevision string `json:"short_revision"`
- Digest string `json:"digest"`
- CreatedAt *time.Time `json:"created_at"`
- TotalSize int `json:"total_size"`
-}
-
-func (s RegistryRepositoryTag) String() string {
- return Stringify(s)
-}
-
-// ListRegistryRepositoriesOptions represents the available
-// ListRegistryRepositories() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/container_registry.html#list-registry-repositories
-type ListRegistryRepositoriesOptions struct {
- ListOptions
- Tags *bool `url:"tags,omitempty" json:"tags,omitempty"`
- TagsCount *bool `url:"tags_count,omitempty" json:"tags_count,omitempty"`
-}
-
-// ListRegistryRepositories gets a list of registry repositories in a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/container_registry.html#list-registry-repositories
-func (s *ContainerRegistryService) ListRegistryRepositories(pid interface{}, opt *ListRegistryRepositoriesOptions, options ...RequestOptionFunc) ([]*RegistryRepository, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/registry/repositories", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var repos []*RegistryRepository
- resp, err := s.client.Do(req, &repos)
- if err != nil {
- return nil, resp, err
- }
-
- return repos, resp, err
-}
-
-// DeleteRegistryRepository deletes a repository in a registry.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/container_registry.html#delete-registry-repository
-func (s *ContainerRegistryService) DeleteRegistryRepository(pid interface{}, repository int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/registry/repositories/%d", pathEscape(project), repository)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListRegistryRepositoryTagsOptions represents the available
-// ListRegistryRepositoryTags() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/container_registry.html#list-repository-tags
-type ListRegistryRepositoryTagsOptions ListOptions
-
-// ListRegistryRepositoryTags gets a list of tags for given registry repository.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/container_registry.html#list-repository-tags
-func (s *ContainerRegistryService) ListRegistryRepositoryTags(pid interface{}, repository int, opt *ListRegistryRepositoryTagsOptions, options ...RequestOptionFunc) ([]*RegistryRepositoryTag, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/registry/repositories/%d/tags",
- pathEscape(project),
- repository,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var tags []*RegistryRepositoryTag
- resp, err := s.client.Do(req, &tags)
- if err != nil {
- return nil, resp, err
- }
-
- return tags, resp, err
-}
-
-// GetRegistryRepositoryTagDetail get details of a registry repository tag
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/container_registry.html#get-details-of-a-repository-tag
-func (s *ContainerRegistryService) GetRegistryRepositoryTagDetail(pid interface{}, repository int, tagName string, options ...RequestOptionFunc) (*RegistryRepositoryTag, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/registry/repositories/%d/tags/%s",
- pathEscape(project),
- repository,
- tagName,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- tag := new(RegistryRepositoryTag)
- resp, err := s.client.Do(req, &tag)
- if err != nil {
- return nil, resp, err
- }
-
- return tag, resp, err
-}
-
-// DeleteRegistryRepositoryTag deletes a registry repository tag.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/container_registry.html#delete-a-repository-tag
-func (s *ContainerRegistryService) DeleteRegistryRepositoryTag(pid interface{}, repository int, tagName string, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/registry/repositories/%d/tags/%s",
- pathEscape(project),
- repository,
- tagName,
- )
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteRegistryRepositoryTagsOptions represents the available
-// DeleteRegistryRepositoryTags() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/container_registry.html#delete-repository-tags-in-bulk
-type DeleteRegistryRepositoryTagsOptions struct {
- NameRegexpDelete *string `url:"name_regex_delete,omitempty" json:"name_regex_delete,omitempty"`
- NameRegexpKeep *string `url:"name_regex_keep,omitempty" json:"name_regex_keep,omitempty"`
- KeepN *int `url:"keep_n,omitempty" json:"keep_n,omitempty"`
- OlderThan *string `url:"older_than,omitempty" json:"older_than,omitempty"`
-
- // Deprecated members
- NameRegexp *string `url:"name_regex,omitempty" json:"name_regex,omitempty"`
-}
-
-// DeleteRegistryRepositoryTags deletes repository tags in bulk based on
-// given criteria.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/container_registry.html#delete-repository-tags-in-bulk
-func (s *ContainerRegistryService) DeleteRegistryRepositoryTags(pid interface{}, repository int, opt *DeleteRegistryRepositoryTagsOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/registry/repositories/%d/tags",
- pathEscape(project),
- repository,
- )
-
- req, err := s.client.NewRequest(http.MethodDelete, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/custom_attributes.go b/vendor/github.com/xanzy/go-gitlab/custom_attributes.go
deleted file mode 100644
index 7408c55ae4..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/custom_attributes.go
+++ /dev/null
@@ -1,188 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// CustomAttributesService handles communication with the group, project and
-// user custom attributes related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/custom_attributes.html
-type CustomAttributesService struct {
- client *Client
-}
-
-// CustomAttribute struct is used to unmarshal response to api calls.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/custom_attributes.html
-type CustomAttribute struct {
- Key string `json:"key"`
- Value string `json:"value"`
-}
-
-// ListCustomUserAttributes lists the custom attributes of the specified user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#list-custom-attributes
-func (s *CustomAttributesService) ListCustomUserAttributes(user int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error) {
- return s.listCustomAttributes("users", user, options...)
-}
-
-// ListCustomGroupAttributes lists the custom attributes of the specified group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#list-custom-attributes
-func (s *CustomAttributesService) ListCustomGroupAttributes(group int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error) {
- return s.listCustomAttributes("groups", group, options...)
-}
-
-// ListCustomProjectAttributes lists the custom attributes of the specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#list-custom-attributes
-func (s *CustomAttributesService) ListCustomProjectAttributes(project int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error) {
- return s.listCustomAttributes("projects", project, options...)
-}
-
-func (s *CustomAttributesService) listCustomAttributes(resource string, id int, options ...RequestOptionFunc) ([]*CustomAttribute, *Response, error) {
- u := fmt.Sprintf("%s/%d/custom_attributes", resource, id)
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var cas []*CustomAttribute
- resp, err := s.client.Do(req, &cas)
- if err != nil {
- return nil, resp, err
- }
- return cas, resp, err
-}
-
-// GetCustomUserAttribute returns the user attribute with a speciifc key.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#single-custom-attribute
-func (s *CustomAttributesService) GetCustomUserAttribute(user int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error) {
- return s.getCustomAttribute("users", user, key, options...)
-}
-
-// GetCustomGroupAttribute returns the group attribute with a speciifc key.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#single-custom-attribute
-func (s *CustomAttributesService) GetCustomGroupAttribute(group int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error) {
- return s.getCustomAttribute("groups", group, key, options...)
-}
-
-// GetCustomProjectAttribute returns the project attribute with a speciifc key.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#single-custom-attribute
-func (s *CustomAttributesService) GetCustomProjectAttribute(project int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error) {
- return s.getCustomAttribute("projects", project, key, options...)
-}
-
-func (s *CustomAttributesService) getCustomAttribute(resource string, id int, key string, options ...RequestOptionFunc) (*CustomAttribute, *Response, error) {
- u := fmt.Sprintf("%s/%d/custom_attributes/%s", resource, id, key)
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ca *CustomAttribute
- resp, err := s.client.Do(req, &ca)
- if err != nil {
- return nil, resp, err
- }
- return ca, resp, err
-}
-
-// SetCustomUserAttribute sets the custom attributes of the specified user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#set-custom-attribute
-func (s *CustomAttributesService) SetCustomUserAttribute(user int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error) {
- return s.setCustomAttribute("users", user, c, options...)
-}
-
-// SetCustomGroupAttribute sets the custom attributes of the specified group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#set-custom-attribute
-func (s *CustomAttributesService) SetCustomGroupAttribute(group int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error) {
- return s.setCustomAttribute("groups", group, c, options...)
-}
-
-// SetCustomProjectAttribute sets the custom attributes of the specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#set-custom-attribute
-func (s *CustomAttributesService) SetCustomProjectAttribute(project int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error) {
- return s.setCustomAttribute("projects", project, c, options...)
-}
-
-func (s *CustomAttributesService) setCustomAttribute(resource string, id int, c CustomAttribute, options ...RequestOptionFunc) (*CustomAttribute, *Response, error) {
- u := fmt.Sprintf("%s/%d/custom_attributes/%s", resource, id, c.Key)
- req, err := s.client.NewRequest(http.MethodPut, u, c, options)
- if err != nil {
- return nil, nil, err
- }
-
- ca := new(CustomAttribute)
- resp, err := s.client.Do(req, ca)
- if err != nil {
- return nil, resp, err
- }
- return ca, resp, err
-}
-
-// DeleteCustomUserAttribute removes the custom attribute of the specified user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#delete-custom-attribute
-func (s *CustomAttributesService) DeleteCustomUserAttribute(user int, key string, options ...RequestOptionFunc) (*Response, error) {
- return s.deleteCustomAttribute("users", user, key, options...)
-}
-
-// DeleteCustomGroupAttribute removes the custom attribute of the specified group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#delete-custom-attribute
-func (s *CustomAttributesService) DeleteCustomGroupAttribute(group int, key string, options ...RequestOptionFunc) (*Response, error) {
- return s.deleteCustomAttribute("groups", group, key, options...)
-}
-
-// DeleteCustomProjectAttribute removes the custom attribute of the specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/custom_attributes.html#delete-custom-attribute
-func (s *CustomAttributesService) DeleteCustomProjectAttribute(project int, key string, options ...RequestOptionFunc) (*Response, error) {
- return s.deleteCustomAttribute("projects", project, key, options...)
-}
-
-func (s *CustomAttributesService) deleteCustomAttribute(resource string, id int, key string, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("%s/%d/custom_attributes/%s", resource, id, key)
- 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/deploy_keys.go b/vendor/github.com/xanzy/go-gitlab/deploy_keys.go
deleted file mode 100644
index e44e65d41c..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/deploy_keys.go
+++ /dev/null
@@ -1,235 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// DeployKeysService handles communication with the keys related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/deploy_keys.html
-type DeployKeysService struct {
- client *Client
-}
-
-// DeployKey represents a GitLab deploy key.
-type DeployKey struct {
- ID int `json:"id"`
- Title string `json:"title"`
- Key string `json:"key"`
- CanPush *bool `json:"can_push"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-func (k DeployKey) String() string {
- return Stringify(k)
-}
-
-// ListAllDeployKeys gets a list of all deploy keys
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#list-all-deploy-keys
-func (s *DeployKeysService) ListAllDeployKeys(options ...RequestOptionFunc) ([]*DeployKey, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "deploy_keys", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ks []*DeployKey
- resp, err := s.client.Do(req, &ks)
- if err != nil {
- return nil, resp, err
- }
-
- return ks, resp, err
-}
-
-// ListProjectDeployKeysOptions represents the available ListProjectDeployKeys()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#list-project-deploy-keys
-type ListProjectDeployKeysOptions ListOptions
-
-// ListProjectDeployKeys gets a list of a project's deploy keys
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#list-project-deploy-keys
-func (s *DeployKeysService) ListProjectDeployKeys(pid interface{}, opt *ListProjectDeployKeysOptions, options ...RequestOptionFunc) ([]*DeployKey, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deploy_keys", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ks []*DeployKey
- resp, err := s.client.Do(req, &ks)
- if err != nil {
- return nil, resp, err
- }
-
- return ks, resp, err
-}
-
-// GetDeployKey gets a single deploy key.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#single-deploy-key
-func (s *DeployKeysService) GetDeployKey(pid interface{}, deployKey int, options ...RequestOptionFunc) (*DeployKey, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deploy_keys/%d", pathEscape(project), deployKey)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- k := new(DeployKey)
- resp, err := s.client.Do(req, k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
-
-// AddDeployKeyOptions represents the available ADDDeployKey() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#add-deploy-key
-type AddDeployKeyOptions struct {
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- Key *string `url:"key,omitempty" json:"key,omitempty"`
- CanPush *bool `url:"can_push,omitempty" json:"can_push,omitempty"`
-}
-
-// AddDeployKey creates a new deploy key for a project. If deploy key already
-// exists in another project - it will be joined to project but only if
-// original one was is accessible by same user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#add-deploy-key
-func (s *DeployKeysService) AddDeployKey(pid interface{}, opt *AddDeployKeyOptions, options ...RequestOptionFunc) (*DeployKey, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deploy_keys", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- k := new(DeployKey)
- resp, err := s.client.Do(req, k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
-
-// DeleteDeployKey deletes a deploy key from a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#delete-deploy-key
-func (s *DeployKeysService) DeleteDeployKey(pid interface{}, deployKey int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/deploy_keys/%d", pathEscape(project), deployKey)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// EnableDeployKey enables a deploy key.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#enable-deploy-key
-func (s *DeployKeysService) EnableDeployKey(pid interface{}, deployKey int, options ...RequestOptionFunc) (*DeployKey, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deploy_keys/%d/enable", pathEscape(project), deployKey)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- k := new(DeployKey)
- resp, err := s.client.Do(req, k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
-
-// UpdateDeployKeyOptions represents the available UpdateDeployKey() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#update-deploy-key
-type UpdateDeployKeyOptions struct {
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- CanPush *bool `url:"can_push,omitempty" json:"can_push,omitempty"`
-}
-
-// UpdateDeployKey updates a deploy key for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_keys.html#update-deploy-key
-func (s *DeployKeysService) UpdateDeployKey(pid interface{}, deployKey int, opt *UpdateDeployKeyOptions, options ...RequestOptionFunc) (*DeployKey, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deploy_keys/%d", pathEscape(project), deployKey)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- k := new(DeployKey)
- resp, err := s.client.Do(req, k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/deploy_tokens.go b/vendor/github.com/xanzy/go-gitlab/deploy_tokens.go
deleted file mode 100644
index 2082f96c6c..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/deploy_tokens.go
+++ /dev/null
@@ -1,238 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// DeployTokensService handles communication with the deploy tokens related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/deploy_tokens.html
-type DeployTokensService struct {
- client *Client
-}
-
-// DeployToken represents a GitLab deploy token.
-type DeployToken struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Username string `json:"username"`
- ExpiresAt *time.Time `json:"expires_at"`
- Token string `json:"token,omitempty"`
- Scopes []string `json:"scopes"`
-}
-
-func (k DeployToken) String() string {
- return Stringify(k)
-}
-
-// ListAllDeployTokens gets a list of all deploy tokens.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#list-all-deploy-tokens
-func (s *DeployTokensService) ListAllDeployTokens(options ...RequestOptionFunc) ([]*DeployToken, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "deploy_tokens", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ts []*DeployToken
- resp, err := s.client.Do(req, &ts)
- if err != nil {
- return nil, resp, err
- }
-
- return ts, resp, err
-}
-
-// ListProjectDeployTokensOptions represents the available ListProjectDeployTokens()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#list-project-deploy-tokens
-type ListProjectDeployTokensOptions ListOptions
-
-// ListProjectDeployTokens gets a list of a project's deploy tokens.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#list-project-deploy-tokens
-func (s *DeployTokensService) ListProjectDeployTokens(pid interface{}, opt *ListProjectDeployTokensOptions, options ...RequestOptionFunc) ([]*DeployToken, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deploy_tokens", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ts []*DeployToken
- resp, err := s.client.Do(req, &ts)
- if err != nil {
- return nil, resp, err
- }
-
- return ts, resp, err
-}
-
-// CreateProjectDeployTokenOptions represents the available CreateProjectDeployToken() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#create-a-project-deploy-token
-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"`
-}
-
-// CreateProjectDeployToken creates a new deploy token for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#create-a-project-deploy-token
-func (s *DeployTokensService) CreateProjectDeployToken(pid interface{}, opt *CreateProjectDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deploy_tokens", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(DeployToken)
- resp, err := s.client.Do(req, t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// DeleteProjectDeployToken removes a deploy token from the project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#delete-a-project-deploy-token
-func (s *DeployTokensService) DeleteProjectDeployToken(pid interface{}, deployToken int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/deploy_tokens/%d", pathEscape(project), deployToken)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListGroupDeployTokensOptions represents the available ListGroupDeployTokens()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#list-group-deploy-deploy-tokens
-type ListGroupDeployTokensOptions ListOptions
-
-// ListGroupDeployTokens gets a list of a group’s deploy tokens.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#list-project-deploy-tokens
-func (s *DeployTokensService) ListGroupDeployTokens(gid interface{}, opt *ListGroupDeployTokensOptions, options ...RequestOptionFunc) ([]*DeployToken, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/deploy_tokens", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ts []*DeployToken
- resp, err := s.client.Do(req, &ts)
- if err != nil {
- return nil, resp, err
- }
-
- return ts, resp, err
-}
-
-// CreateGroupDeployTokenOptions represents the available CreateGroupDeployToken() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#create-a-group-deploy-token
-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"`
-}
-
-// CreateGroupDeployToken creates a new deploy token for a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#create-a-group-deploy-token
-func (s *DeployTokensService) CreateGroupDeployToken(gid interface{}, opt *CreateGroupDeployTokenOptions, options ...RequestOptionFunc) (*DeployToken, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/deploy_tokens", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(DeployToken)
- resp, err := s.client.Do(req, t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// DeleteGroupDeployToken removes a deploy token from the group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deploy_tokens.html#delete-a-group-deploy-token
-func (s *DeployTokensService) DeleteGroupDeployToken(gid interface{}, deployToken int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/deploy_tokens/%d", pathEscape(group), deployToken)
-
- 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/deployments.go b/vendor/github.com/xanzy/go-gitlab/deployments.go
deleted file mode 100644
index d6b8bbd8eb..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/deployments.go
+++ /dev/null
@@ -1,203 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// DeploymentsService handles communication with the deployment related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/deployments.html
-type DeploymentsService struct {
- client *Client
-}
-
-// Deployment represents the Gitlab deployment
-type Deployment struct {
- ID int `json:"id"`
- IID int `json:"iid"`
- Ref string `json:"ref"`
- SHA string `json:"sha"`
- Status string `json:"status"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
- User *ProjectUser `json:"user"`
- Environment *Environment `json:"environment"`
- Deployable struct {
- ID int `json:"id"`
- Status string `json:"status"`
- Stage string `json:"stage"`
- Name string `json:"name"`
- Ref string `json:"ref"`
- Tag bool `json:"tag"`
- Coverage float64 `json:"coverage"`
- CreatedAt *time.Time `json:"created_at"`
- StartedAt *time.Time `json:"started_at"`
- FinishedAt *time.Time `json:"finished_at"`
- Duration float64 `json:"duration"`
- User *User `json:"user"`
- Commit *Commit `json:"commit"`
- Pipeline struct {
- ID int `json:"id"`
- SHA string `json:"sha"`
- Ref string `json:"ref"`
- Status string `json:"status"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
- } `json:"pipeline"`
- Runner *Runner `json:"runner"`
- } `json:"deployable"`
-}
-
-// ListProjectDeploymentsOptions represents the available ListProjectDeployments() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/deployments.html#list-project-deployments
-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"`
-}
-
-// ListProjectDeployments gets a list of deployments in a project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/deployments.html#list-project-deployments
-func (s *DeploymentsService) ListProjectDeployments(pid interface{}, opts *ListProjectDeploymentsOptions, options ...RequestOptionFunc) ([]*Deployment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deployments", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ds []*Deployment
- resp, err := s.client.Do(req, &ds)
- if err != nil {
- return nil, resp, err
- }
-
- return ds, resp, err
-}
-
-// GetProjectDeployment get a deployment for a project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/deployments.html#get-a-specific-deployment
-func (s *DeploymentsService) GetProjectDeployment(pid interface{}, deployment int, options ...RequestOptionFunc) (*Deployment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deployments/%d", pathEscape(project), deployment)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Deployment)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// CreateProjectDeploymentOptions represents the available
-// CreateProjectDeployment() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/deployments.html#create-a-deployment
-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"`
-}
-
-// CreateProjectDeployment creates a project deployment.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/deployments.html#create-a-deployment
-func (s *DeploymentsService) CreateProjectDeployment(pid interface{}, opt *CreateProjectDeploymentOptions, options ...RequestOptionFunc) (*Deployment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deployments", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Deployment)
- resp, err := s.client.Do(req, &d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// UpdateProjectDeploymentOptions represents the available
-// UpdateProjectDeployment() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/deployments.html#updating-a-deployment
-type UpdateProjectDeploymentOptions struct {
- Status *DeploymentStatusValue `url:"status,omitempty" json:"status,omitempty"`
-}
-
-// UpdateProjectDeployment updates a project deployment.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/deployments.html#updating-a-deployment
-func (s *DeploymentsService) UpdateProjectDeployment(pid interface{}, deployment int, opt *UpdateProjectDeploymentOptions, options ...RequestOptionFunc) (*Deployment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/deployments/%d", pathEscape(project), deployment)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Deployment)
- resp, err := s.client.Do(req, &d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/discussions.go b/vendor/github.com/xanzy/go-gitlab/discussions.go
deleted file mode 100644
index 04b5f8d598..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/discussions.go
+++ /dev/null
@@ -1,1113 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// DiscussionsService handles communication with the discussions related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/discussions.html
-type DiscussionsService struct {
- client *Client
-}
-
-// Discussion represents a GitLab discussion.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/discussions.html
-type Discussion struct {
- ID string `json:"id"`
- IndividualNote bool `json:"individual_note"`
- Notes []*Note `json:"notes"`
-}
-
-func (d Discussion) String() string {
- return Stringify(d)
-}
-
-// ListIssueDiscussionsOptions represents the available ListIssueDiscussions()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-project-issue-discussion-items
-type ListIssueDiscussionsOptions ListOptions
-
-// ListIssueDiscussions gets a list of all discussions for a single
-// issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-project-issue-discussion-items
-func (s *DiscussionsService) ListIssueDiscussions(pid interface{}, issue int, opt *ListIssueDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/discussions", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ds []*Discussion
- resp, err := s.client.Do(req, &ds)
- if err != nil {
- return nil, resp, err
- }
-
- return ds, resp, err
-}
-
-// GetIssueDiscussion returns a single discussion for a specific project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#get-single-issue-discussion-item
-func (s *DiscussionsService) GetIssueDiscussion(pid interface{}, issue int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/discussions/%s",
- pathEscape(project),
- issue,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// CreateIssueDiscussionOptions represents the available CreateIssueDiscussion()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#create-new-issue-thread
-type CreateIssueDiscussionOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// CreateIssueDiscussion creates a new discussion to a single project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#create-new-issue-thread
-func (s *DiscussionsService) CreateIssueDiscussion(pid interface{}, issue int, opt *CreateIssueDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/discussions", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// AddIssueDiscussionNoteOptions represents the available AddIssueDiscussionNote()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-issue-thread
-type AddIssueDiscussionNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// AddIssueDiscussionNote creates a new discussion to a single project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-issue-thread
-func (s *DiscussionsService) AddIssueDiscussionNote(pid interface{}, issue int, discussion string, opt *AddIssueDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/discussions/%s/notes",
- pathEscape(project),
- issue,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// UpdateIssueDiscussionNoteOptions represents the available
-// UpdateIssueDiscussion() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-existing-issue-thread-note
-type UpdateIssueDiscussionNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// UpdateIssueDiscussionNote modifies existing discussion of an issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-existing-issue-thread-note
-func (s *DiscussionsService) UpdateIssueDiscussionNote(pid interface{}, issue int, discussion string, note int, opt *UpdateIssueDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/discussions/%s/notes/%d",
- pathEscape(project),
- issue,
- discussion,
- note,
- )
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// DeleteIssueDiscussionNote deletes an existing discussion of an issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#delete-an-issue-thread-note
-func (s *DiscussionsService) DeleteIssueDiscussionNote(pid interface{}, issue int, discussion string, note int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/discussions/%s/notes/%d",
- pathEscape(project),
- issue,
- discussion,
- note,
- )
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListSnippetDiscussionsOptions represents the available ListSnippetDiscussions()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-project-snippet-discussion-items
-type ListSnippetDiscussionsOptions ListOptions
-
-// ListSnippetDiscussions gets a list of all discussions for a single
-// snippet. Snippet discussions are comments users can post to a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-project-snippet-discussion-items
-func (s *DiscussionsService) ListSnippetDiscussions(pid interface{}, snippet int, opt *ListSnippetDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/discussions", pathEscape(project), snippet)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ds []*Discussion
- resp, err := s.client.Do(req, &ds)
- if err != nil {
- return nil, resp, err
- }
-
- return ds, resp, err
-}
-
-// GetSnippetDiscussion returns a single discussion for a given snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#get-single-snippet-discussion-item
-func (s *DiscussionsService) GetSnippetDiscussion(pid interface{}, snippet int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/discussions/%s",
- pathEscape(project),
- snippet,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// CreateSnippetDiscussionOptions represents the available
-// CreateSnippetDiscussion() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#create-new-snippet-thread
-type CreateSnippetDiscussionOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// CreateSnippetDiscussion creates a new discussion for a single snippet.
-// Snippet discussions are comments users can post to a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#create-new-snippet-thread
-func (s *DiscussionsService) CreateSnippetDiscussion(pid interface{}, snippet int, opt *CreateSnippetDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/discussions", pathEscape(project), snippet)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// AddSnippetDiscussionNoteOptions represents the available
-// AddSnippetDiscussionNote() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-snippet-thread
-type AddSnippetDiscussionNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// AddSnippetDiscussionNote creates a new discussion to a single project
-// snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-snippet-thread
-func (s *DiscussionsService) AddSnippetDiscussionNote(pid interface{}, snippet int, discussion string, opt *AddSnippetDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/discussions/%s/notes",
- pathEscape(project),
- snippet,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// UpdateSnippetDiscussionNoteOptions represents the available
-// UpdateSnippetDiscussion() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-existing-snippet-thread-note
-type UpdateSnippetDiscussionNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// UpdateSnippetDiscussionNote modifies existing discussion of a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-existing-snippet-thread-note
-func (s *DiscussionsService) UpdateSnippetDiscussionNote(pid interface{}, snippet int, discussion string, note int, opt *UpdateSnippetDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/discussions/%s/notes/%d",
- pathEscape(project),
- snippet,
- discussion,
- note,
- )
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// DeleteSnippetDiscussionNote deletes an existing discussion of a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#delete-a-snippet-thread-note
-func (s *DiscussionsService) DeleteSnippetDiscussionNote(pid interface{}, snippet int, discussion string, note int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/discussions/%s/notes/%d",
- pathEscape(project),
- snippet,
- discussion,
- note,
- )
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListGroupEpicDiscussionsOptions represents the available
-// ListEpicDiscussions() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-group-epic-discussion-items
-type ListGroupEpicDiscussionsOptions ListOptions
-
-// ListGroupEpicDiscussions gets a list of all discussions for a single
-// epic. Epic discussions are comments users can post to a epic.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-group-epic-discussion-items
-func (s *DiscussionsService) ListGroupEpicDiscussions(gid interface{}, epic int, opt *ListGroupEpicDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/discussions",
- pathEscape(group),
- epic,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ds []*Discussion
- resp, err := s.client.Do(req, &ds)
- if err != nil {
- return nil, resp, err
- }
-
- return ds, resp, err
-}
-
-// GetEpicDiscussion returns a single discussion for a given epic.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#get-single-epic-discussion-item
-func (s *DiscussionsService) GetEpicDiscussion(gid interface{}, epic int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/discussions/%s",
- pathEscape(group),
- epic,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// CreateEpicDiscussionOptions represents the available CreateEpicDiscussion()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-epic-thread
-type CreateEpicDiscussionOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// CreateEpicDiscussion creates a new discussion for a single epic. Epic
-// discussions are comments users can post to a epic.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-epic-thread
-func (s *DiscussionsService) CreateEpicDiscussion(gid interface{}, epic int, opt *CreateEpicDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/discussions",
- pathEscape(group),
- epic,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// AddEpicDiscussionNoteOptions represents the available
-// AddEpicDiscussionNote() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-epic-thread
-type AddEpicDiscussionNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// AddEpicDiscussionNote creates a new discussion to a single project epic.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-epic-thread
-func (s *DiscussionsService) AddEpicDiscussionNote(gid interface{}, epic int, discussion string, opt *AddEpicDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/discussions/%s/notes",
- pathEscape(group),
- epic,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// UpdateEpicDiscussionNoteOptions represents the available UpdateEpicDiscussion()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-existing-epic-thread-note
-type UpdateEpicDiscussionNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// UpdateEpicDiscussionNote modifies existing discussion of a epic.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-existing-epic-thread-note
-func (s *DiscussionsService) UpdateEpicDiscussionNote(gid interface{}, epic int, discussion string, note int, opt *UpdateEpicDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/discussions/%s/notes/%d",
- pathEscape(group),
- epic,
- discussion,
- note,
- )
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// DeleteEpicDiscussionNote deletes an existing discussion of a epic.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#delete-an-epic-thread-note
-func (s *DiscussionsService) DeleteEpicDiscussionNote(gid interface{}, epic int, discussion string, note int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/discussions/%s/notes/%d",
- pathEscape(group),
- epic,
- discussion,
- note,
- )
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListMergeRequestDiscussionsOptions represents the available
-// ListMergeRequestDiscussions() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-project-merge-request-discussion-items
-type ListMergeRequestDiscussionsOptions ListOptions
-
-// ListMergeRequestDiscussions gets a list of all discussions for a single
-// merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-project-merge-request-discussion-items
-func (s *DiscussionsService) ListMergeRequestDiscussions(pid interface{}, mergeRequest int, opt *ListMergeRequestDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/discussions",
- pathEscape(project),
- mergeRequest,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ds []*Discussion
- resp, err := s.client.Do(req, &ds)
- if err != nil {
- return nil, resp, err
- }
-
- return ds, resp, err
-}
-
-// GetMergeRequestDiscussion returns a single discussion for a given merge
-// request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#get-single-merge-request-discussion-item
-func (s *DiscussionsService) GetMergeRequestDiscussion(pid interface{}, mergeRequest int, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/discussions/%s",
- pathEscape(project),
- mergeRequest,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// CreateMergeRequestDiscussionOptions represents the available
-// CreateMergeRequestDiscussion() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#create-new-merge-request-thread
-type CreateMergeRequestDiscussionOptions 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"`
-}
-
-// CreateMergeRequestDiscussion creates a new discussion for a single merge
-// request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#create-new-merge-request-thread
-func (s *DiscussionsService) CreateMergeRequestDiscussion(pid interface{}, mergeRequest int, opt *CreateMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/discussions",
- pathEscape(project),
- mergeRequest,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// ResolveMergeRequestDiscussionOptions represents the available
-// ResolveMergeRequestDiscussion() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#resolve-a-merge-request-thread
-type ResolveMergeRequestDiscussionOptions struct {
- Resolved *bool `url:"resolved,omitempty" json:"resolved,omitempty"`
-}
-
-// ResolveMergeRequestDiscussion resolves/unresolves whole discussion of a merge
-// request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#resolve-a-merge-request-thread
-func (s *DiscussionsService) ResolveMergeRequestDiscussion(pid interface{}, mergeRequest int, discussion string, opt *ResolveMergeRequestDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/discussions/%s",
- pathEscape(project),
- mergeRequest,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// AddMergeRequestDiscussionNoteOptions represents the available
-// AddMergeRequestDiscussionNote() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-merge-request-discussion
-type AddMergeRequestDiscussionNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// AddMergeRequestDiscussionNote creates a new discussion to a single project
-// merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-merge-request-discussion
-func (s *DiscussionsService) AddMergeRequestDiscussionNote(pid interface{}, mergeRequest int, discussion string, opt *AddMergeRequestDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/discussions/%s/notes",
- pathEscape(project),
- mergeRequest,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// UpdateMergeRequestDiscussionNoteOptions represents the available
-// UpdateMergeRequestDiscussion() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-existing-merge-request-discussion-note
-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"`
-}
-
-// UpdateMergeRequestDiscussionNote modifies existing discussion of a merge
-// request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-existing-merge-request-discussion-note
-func (s *DiscussionsService) UpdateMergeRequestDiscussionNote(pid interface{}, mergeRequest int, discussion string, note int, opt *UpdateMergeRequestDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/discussions/%s/notes/%d",
- pathEscape(project),
- mergeRequest,
- discussion,
- note,
- )
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// DeleteMergeRequestDiscussionNote deletes an existing discussion of a merge
-// request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#delete-a-merge-request-discussion-note
-func (s *DiscussionsService) DeleteMergeRequestDiscussionNote(pid interface{}, mergeRequest int, discussion string, note int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/discussions/%s/notes/%d",
- pathEscape(project),
- mergeRequest,
- discussion,
- note,
- )
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListCommitDiscussionsOptions represents the available
-// ListCommitDiscussions() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-project-commit-discussion-items
-type ListCommitDiscussionsOptions ListOptions
-
-// ListCommitDiscussions gets a list of all discussions for a single
-// commit.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#list-project-commit-discussion-items
-func (s *DiscussionsService) ListCommitDiscussions(pid interface{}, commit string, opt *ListCommitDiscussionsOptions, options ...RequestOptionFunc) ([]*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/discussions",
- pathEscape(project),
- commit,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ds []*Discussion
- resp, err := s.client.Do(req, &ds)
- if err != nil {
- return nil, resp, err
- }
-
- return ds, resp, err
-}
-
-// GetCommitDiscussion returns a single discussion for a specific project
-// commit.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#get-single-commit-discussion-item
-func (s *DiscussionsService) GetCommitDiscussion(pid interface{}, commit string, discussion string, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/discussions/%s",
- pathEscape(project),
- commit,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// CreateCommitDiscussionOptions represents the available
-// CreateCommitDiscussion() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#create-new-commit-thread
-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"`
-}
-
-// CreateCommitDiscussion creates a new discussion to a single project commit.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#create-new-commit-thread
-func (s *DiscussionsService) CreateCommitDiscussion(pid interface{}, commit string, opt *CreateCommitDiscussionOptions, options ...RequestOptionFunc) (*Discussion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/discussions",
- pathEscape(project),
- commit,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- d := new(Discussion)
- resp, err := s.client.Do(req, d)
- if err != nil {
- return nil, resp, err
- }
-
- return d, resp, err
-}
-
-// AddCommitDiscussionNoteOptions represents the available
-// AddCommitDiscussionNote() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-commit-thread
-type AddCommitDiscussionNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// AddCommitDiscussionNote creates a new discussion to a single project commit.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#add-note-to-existing-commit-thread
-func (s *DiscussionsService) AddCommitDiscussionNote(pid interface{}, commit string, discussion string, opt *AddCommitDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/discussions/%s/notes",
- pathEscape(project),
- commit,
- discussion,
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// UpdateCommitDiscussionNoteOptions represents the available
-// UpdateCommitDiscussion() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-an-existing-commit-thread-note
-type UpdateCommitDiscussionNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// UpdateCommitDiscussionNote modifies existing discussion of an commit.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#modify-an-existing-commit-thread-note
-func (s *DiscussionsService) UpdateCommitDiscussionNote(pid interface{}, commit string, discussion string, note int, opt *UpdateCommitDiscussionNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/discussions/%s/notes/%d",
- pathEscape(project),
- commit,
- discussion,
- note,
- )
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// DeleteCommitDiscussionNote deletes an existing discussion of an commit.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/discussions.html#delete-a-commit-thread-note
-func (s *DiscussionsService) DeleteCommitDiscussionNote(pid interface{}, commit string, discussion string, note int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/commits/%s/discussions/%s/notes/%d",
- pathEscape(project),
- commit,
- discussion,
- note,
- )
-
- 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/environments.go b/vendor/github.com/xanzy/go-gitlab/environments.go
deleted file mode 100644
index c5d66db65f..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/environments.go
+++ /dev/null
@@ -1,218 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// EnvironmentsService handles communication with the environment related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/environments.html
-type EnvironmentsService struct {
- client *Client
-}
-
-// Environment represents a GitLab environment.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/environments.html
-type Environment struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Slug string `json:"slug"`
- State string `json:"state"`
- ExternalURL string `json:"external_url"`
- Project *Project `json:"project"`
- LastDeployment *Deployment `json:"last_deployment"`
-}
-
-func (env Environment) String() string {
- return Stringify(env)
-}
-
-// ListEnvironmentsOptions represents the available ListEnvironments() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/environments.html#list-environments
-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"`
-}
-
-// ListEnvironments gets a list of environments from a project, sorted by name
-// alphabetically.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/environments.html#list-environments
-func (s *EnvironmentsService) ListEnvironments(pid interface{}, opts *ListEnvironmentsOptions, options ...RequestOptionFunc) ([]*Environment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/environments", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- var envs []*Environment
- resp, err := s.client.Do(req, &envs)
- if err != nil {
- return nil, resp, err
- }
-
- return envs, resp, err
-}
-
-// GetEnvironment gets a specific environment from a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/environments.html#get-a-specific-environment
-func (s *EnvironmentsService) GetEnvironment(pid interface{}, environment int, options ...RequestOptionFunc) (*Environment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/environments/%d", pathEscape(project), environment)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- env := new(Environment)
- resp, err := s.client.Do(req, env)
- if err != nil {
- return nil, resp, err
- }
-
- return env, resp, err
-}
-
-// CreateEnvironmentOptions represents the available CreateEnvironment() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/environments.html#create-a-new-environment
-type CreateEnvironmentOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- ExternalURL *string `url:"external_url,omitempty" json:"external_url,omitempty"`
-}
-
-// CreateEnvironment adds an environment to a project. This is an idempotent
-// method and can be called multiple times with the same parameters. Createing
-// an environment that is already a environment does not affect the
-// existing environmentship.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/environments.html#create-a-new-environment
-func (s *EnvironmentsService) CreateEnvironment(pid interface{}, opt *CreateEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/environments", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- env := new(Environment)
- resp, err := s.client.Do(req, env)
- if err != nil {
- return nil, resp, err
- }
-
- return env, resp, err
-}
-
-// EditEnvironmentOptions represents the available EditEnvironment() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/environments.html#edit-an-existing-environment
-type EditEnvironmentOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- ExternalURL *string `url:"external_url,omitempty" json:"external_url,omitempty"`
-}
-
-// EditEnvironment updates a project team environment to a specified access level..
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/environments.html#edit-an-existing-environment
-func (s *EnvironmentsService) EditEnvironment(pid interface{}, environment int, opt *EditEnvironmentOptions, options ...RequestOptionFunc) (*Environment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/environments/%d", pathEscape(project), environment)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- env := new(Environment)
- resp, err := s.client.Do(req, env)
- if err != nil {
- return nil, resp, err
- }
-
- return env, resp, err
-}
-
-// DeleteEnvironment removes an environment from a project team.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/environments.html#remove-a-environment-from-a-group-or-project
-func (s *EnvironmentsService) DeleteEnvironment(pid interface{}, environment int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/environments/%d", pathEscape(project), environment)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// StopEnvironment stop an environment from a project team.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/environments.html#stop-an-environment
-func (s *EnvironmentsService) StopEnvironment(pid interface{}, environmentID int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/environments/%d/stop", pathEscape(project), environmentID)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/epic_issues.go b/vendor/github.com/xanzy/go-gitlab/epic_issues.go
deleted file mode 100644
index a3489add84..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/epic_issues.go
+++ /dev/null
@@ -1,152 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// EpicIssuesService handles communication with the epic issue related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epic_issues.html
-type EpicIssuesService struct {
- client *Client
-}
-
-// EpicIssueAssignment contains both the epic and issue objects returned from
-// Gitlab with the assignment ID.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epic_issues.html
-type EpicIssueAssignment struct {
- ID int `json:"id"`
- Epic *Epic `json:"epic"`
- Issue *Issue `json:"issue"`
-}
-
-// ListEpicIssues get a list of epic issues.
-//
-// Gitlab API docs:
-// https://docs.gitlab.com/ee/api/epic_issues.html#list-issues-for-an-epic
-func (s *EpicIssuesService) ListEpicIssues(gid interface{}, epic int, opt *ListOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/issues", pathEscape(group), epic)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var is []*Issue
- resp, err := s.client.Do(req, &is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
-
-// AssignEpicIssue assigns an existing issue to an epic.
-//
-// Gitlab API Docs:
-// https://docs.gitlab.com/ee/api/epic_issues.html#assign-an-issue-to-the-epic
-func (s *EpicIssuesService) AssignEpicIssue(gid interface{}, epic, issue int, options ...RequestOptionFunc) (*EpicIssueAssignment, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/issues/%d", pathEscape(group), epic, issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- a := new(EpicIssueAssignment)
- resp, err := s.client.Do(req, a)
- if err != nil {
- return nil, resp, err
- }
-
- return a, resp, err
-}
-
-// RemoveEpicIssue removes an issue from an epic.
-//
-// Gitlab API Docs:
-// https://docs.gitlab.com/ee/api/epic_issues.html#remove-an-issue-from-the-epic
-func (s *EpicIssuesService) RemoveEpicIssue(gid interface{}, epic, epicIssue int, options ...RequestOptionFunc) (*EpicIssueAssignment, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/issues/%d", pathEscape(group), epic, epicIssue)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- a := new(EpicIssueAssignment)
- resp, err := s.client.Do(req, a)
- if err != nil {
- return nil, resp, err
- }
-
- return a, resp, err
-}
-
-// UpdateEpicIsssueAssignmentOptions describes the UpdateEpicIssueAssignment()
-// options.
-//
-// Gitlab API Docs:
-// https://docs.gitlab.com/ee/api/epic_issues.html#update-epic---issue-association
-type UpdateEpicIsssueAssignmentOptions struct {
- *ListOptions
- MoveBeforeID *int `url:"move_before_id,omitempty" json:"move_before_id,omitempty"`
- MoveAfterID *int `url:"move_after_id,omitempty" json:"move_after_id,omitempty"`
-}
-
-// UpdateEpicIssueAssignment moves an issue before or after another issue in an
-// epic issue list.
-//
-// Gitlab API Docs:
-// https://docs.gitlab.com/ee/api/epic_issues.html#update-epic---issue-association
-func (s *EpicIssuesService) UpdateEpicIssueAssignment(gid interface{}, epic, epicIssue int, opt *UpdateEpicIsssueAssignmentOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/issues/%d", pathEscape(group), epic, epicIssue)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var is []*Issue
- resp, err := s.client.Do(req, &is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/epics.go b/vendor/github.com/xanzy/go-gitlab/epics.go
deleted file mode 100644
index 15002a11dc..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/epics.go
+++ /dev/null
@@ -1,263 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// EpicsService handles communication with the epic related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html
-type EpicsService struct {
- client *Client
-}
-
-// EpicAuthor represents a author of the epic.
-type EpicAuthor struct {
- ID int `json:"id"`
- State string `json:"state"`
- WebURL string `json:"web_url"`
- Name string `json:"name"`
- AvatarURL string `json:"avatar_url"`
- Username string `json:"username"`
-}
-
-// Epic represents a GitLab epic.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html
-type Epic struct {
- ID int `json:"id"`
- IID int `json:"iid"`
- GroupID int `json:"group_id"`
- ParentID int `json:"parent_id"`
- Title string `json:"title"`
- Description string `json:"description"`
- State string `json:"state"`
- 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"`
- Labels []string `json:"labels"`
- Upvotes int `json:"upvotes"`
- Downvotes int `json:"downvotes"`
- UserNotesCount int `json:"user_notes_count"`
- URL string `json:"url"`
-}
-
-func (e Epic) String() string {
- return Stringify(e)
-}
-
-// ListGroupEpicsOptions represents the available ListGroupEpics() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html#list-epics-for-a-group
-type ListGroupEpicsOptions struct {
- ListOptions
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- Labels Labels `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"`
-}
-
-// ListGroupEpics gets a list of group epics. This function accepts pagination
-// parameters page and per_page to return the list of group epics.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html#list-epics-for-a-group
-func (s *EpicsService) ListGroupEpics(gid interface{}, opt *ListGroupEpicsOptions, options ...RequestOptionFunc) ([]*Epic, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var es []*Epic
- resp, err := s.client.Do(req, &es)
- if err != nil {
- return nil, resp, err
- }
-
- return es, resp, err
-}
-
-// GetEpic gets a single group epic.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html#single-epic
-func (s *EpicsService) GetEpic(gid interface{}, epic int, options ...RequestOptionFunc) (*Epic, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d", pathEscape(group), epic)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- e := new(Epic)
- resp, err := s.client.Do(req, e)
- if err != nil {
- return nil, resp, err
- }
-
- return e, resp, err
-}
-
-// GetEpicLinks gets all child epics of an epic.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epic_links.html
-func (s *EpicsService) GetEpicLinks(gid interface{}, epic int, options ...RequestOptionFunc) ([]*Epic, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/epics", pathEscape(group), epic)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var e []*Epic
- resp, err := s.client.Do(req, &e)
- if err != nil {
- return nil, resp, err
- }
-
- return e, resp, err
-}
-
-// CreateEpicOptions represents the available CreateEpic() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html#new-epic
-type CreateEpicOptions struct {
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- Labels Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- StartDateIsFixed *bool `url:"start_date_is_fixed,omitempty" json:"start_date_is_fixed,omitempty"`
- StartDateFixed *ISOTime `url:"start_date_fixed,omitempty" json:"start_date_fixed,omitempty"`
- DueDateIsFixed *bool `url:"due_date_is_fixed,omitempty" json:"due_date_is_fixed,omitempty"`
- DueDateFixed *ISOTime `url:"due_date_fixed,omitempty" json:"due_date_fixed,omitempty"`
-}
-
-// CreateEpic creates a new group epic.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html#new-epic
-func (s *EpicsService) CreateEpic(gid interface{}, opt *CreateEpicOptions, options ...RequestOptionFunc) (*Epic, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- e := new(Epic)
- resp, err := s.client.Do(req, e)
- if err != nil {
- return nil, resp, err
- }
-
- return e, resp, err
-}
-
-// UpdateEpicOptions represents the available UpdateEpic() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html#update-epic
-type UpdateEpicOptions struct {
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- Labels Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- StartDateIsFixed *bool `url:"start_date_is_fixed,omitempty" json:"start_date_is_fixed,omitempty"`
- StartDateFixed *ISOTime `url:"start_date_fixed,omitempty" json:"start_date_fixed,omitempty"`
- DueDateIsFixed *bool `url:"due_date_is_fixed,omitempty" json:"due_date_is_fixed,omitempty"`
- DueDateFixed *ISOTime `url:"due_date_fixed,omitempty" json:"due_date_fixed,omitempty"`
- StateEvent *string `url:"state_event,omitempty" json:"state_event,omitempty"`
-}
-
-// UpdateEpic updates an existing group epic. This function is also used
-// to mark an epic as closed.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html#update-epic
-func (s *EpicsService) UpdateEpic(gid interface{}, epic int, opt *UpdateEpicOptions, options ...RequestOptionFunc) (*Epic, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d", pathEscape(group), epic)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- e := new(Epic)
- resp, err := s.client.Do(req, e)
- if err != nil {
- return nil, resp, err
- }
-
- return e, resp, err
-}
-
-// DeleteEpic deletes a single group epic.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/epics.html#delete-epic
-func (s *EpicsService) DeleteEpic(gid interface{}, epic int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d", pathEscape(group), epic)
-
- 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/event_parsing.go b/vendor/github.com/xanzy/go-gitlab/event_parsing.go
deleted file mode 100644
index 3c03ed1690..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/event_parsing.go
+++ /dev/null
@@ -1,255 +0,0 @@
-//
-// 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 (
- "encoding/json"
- "fmt"
- "net/http"
-)
-
-// EventType represents a Gitlab event type.
-type EventType string
-
-// List of available event types.
-const (
- EventTypeBuild EventType = "Build Hook"
- EventTypeDeployment EventType = "Deployment Hook"
- EventTypeIssue EventType = "Issue Hook"
- EventConfidentialIssue EventType = "Confidential Issue Hook"
- EventTypeJob EventType = "Job Hook"
- EventTypeMergeRequest EventType = "Merge Request Hook"
- EventTypeNote EventType = "Note Hook"
- EventConfidentialNote EventType = "Confidential Note Hook"
- EventTypePipeline EventType = "Pipeline Hook"
- EventTypePush EventType = "Push Hook"
- EventTypeRelease EventType = "Release Hook"
- EventTypeSystemHook EventType = "System Hook"
- EventTypeTagPush EventType = "Tag Push Hook"
- EventTypeWikiPage EventType = "Wiki Page Hook"
-)
-
-const (
- noteableTypeCommit = "Commit"
- noteableTypeMergeRequest = "MergeRequest"
- noteableTypeIssue = "Issue"
- noteableTypeSnippet = "Snippet"
-)
-
-type noteEvent struct {
- ObjectKind string `json:"object_kind"`
- ObjectAttributes struct {
- NoteableType string `json:"noteable_type"`
- } `json:"object_attributes"`
-}
-
-const eventTypeHeader = "X-Gitlab-Event"
-
-// HookEventType returns the event type for the given request.
-func HookEventType(r *http.Request) EventType {
- return EventType(r.Header.Get(eventTypeHeader))
-}
-
-// ParseHook tries to parse both web- and system hooks.
-//
-// Example usage:
-//
-// func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
-// payload, err := ioutil.ReadAll(r.Body)
-// if err != nil { ... }
-// event, err := gitlab.ParseHook(gitlab.HookEventType(r), payload)
-// if err != nil { ... }
-// switch event := event.(type) {
-// case *gitlab.PushEvent:
-// processPushEvent(event)
-// case *gitlab.MergeEvent:
-// processMergeEvent(event)
-// ...
-// }
-// }
-//
-func ParseHook(eventType EventType, payload []byte) (event interface{}, err error) {
- switch eventType {
- case EventTypeSystemHook:
- return ParseSystemhook(payload)
- default:
- return ParseWebhook(eventType, payload)
- }
-}
-
-// ParseSystemhook parses the event payload. For recognized event types, a
-// value of the corresponding struct type will be returned. An error will be
-// returned for unrecognized event types.
-//
-// Example usage:
-//
-// func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
-// payload, err := ioutil.ReadAll(r.Body)
-// if err != nil { ... }
-// event, err := gitlab.ParseSystemhook(payload)
-// if err != nil { ... }
-// switch event := event.(type) {
-// case *gitlab.PushSystemEvent:
-// processPushSystemEvent(event)
-// case *gitlab.MergeSystemEvent:
-// processMergeSystemEvent(event)
-// ...
-// }
-// }
-//
-func ParseSystemhook(payload []byte) (event interface{}, err error) {
- e := &systemHookEvent{}
- err = json.Unmarshal(payload, e)
- if err != nil {
- return nil, err
- }
-
- switch e.EventName {
- case "push":
- event = &PushSystemEvent{}
- case "tag_push":
- event = &TagPushSystemEvent{}
- case "repository_update":
- event = &RepositoryUpdateSystemEvent{}
- case
- "project_create",
- "project_update",
- "project_destroy",
- "project_transfer",
- "project_rename":
- event = &ProjectSystemEvent{}
- case
- "group_create",
- "group_destroy",
- "group_rename":
- event = &GroupSystemEvent{}
- case
- "key_create",
- "key_destroy":
- event = &KeySystemEvent{}
- case
- "user_create",
- "user_destroy",
- "user_rename":
- event = &UserSystemEvent{}
- case
- "user_add_to_group",
- "user_remove_from_group",
- "user_update_for_group":
- event = &UserGroupSystemEvent{}
- case
- "user_add_to_team",
- "user_remove_from_team",
- "user_update_for_team":
- event = &UserTeamSystemEvent{}
- default:
- switch e.ObjectKind {
- case string(MergeRequestEventTargetType):
- event = &MergeEvent{}
- default:
- return nil, fmt.Errorf("unexpected system hook type %s", e.EventName)
- }
- }
-
- if err := json.Unmarshal(payload, event); err != nil {
- return nil, err
- }
-
- return event, nil
-}
-
-// WebhookEventType returns the event type for the given request.
-func WebhookEventType(r *http.Request) EventType {
- return EventType(r.Header.Get(eventTypeHeader))
-}
-
-// ParseWebhook parses the event payload. For recognized event types, a
-// value of the corresponding struct type will be returned. An error will
-// be returned for unrecognized event types.
-//
-// Example usage:
-//
-// func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
-// payload, err := ioutil.ReadAll(r.Body)
-// if err != nil { ... }
-// event, err := gitlab.ParseWebhook(gitlab.HookEventType(r), payload)
-// if err != nil { ... }
-// switch event := event.(type) {
-// case *gitlab.PushEvent:
-// processPushEvent(event)
-// case *gitlab.MergeEvent:
-// processMergeEvent(event)
-// ...
-// }
-// }
-//
-func ParseWebhook(eventType EventType, payload []byte) (event interface{}, err error) {
- switch eventType {
- case EventTypeBuild:
- event = &BuildEvent{}
- case EventTypeDeployment:
- event = &DeploymentEvent{}
- case EventTypeIssue, EventConfidentialIssue:
- event = &IssueEvent{}
- case EventTypeJob:
- event = &JobEvent{}
- case EventTypeMergeRequest:
- event = &MergeEvent{}
- case EventTypePipeline:
- event = &PipelineEvent{}
- case EventTypePush:
- event = &PushEvent{}
- case EventTypeRelease:
- event = &ReleaseEvent{}
- case EventTypeTagPush:
- event = &TagEvent{}
- case EventTypeWikiPage:
- event = &WikiPageEvent{}
- case EventTypeNote, EventConfidentialNote:
- note := &noteEvent{}
- err := json.Unmarshal(payload, note)
- if err != nil {
- return nil, err
- }
-
- if note.ObjectKind != string(NoteEventTargetType) {
- return nil, fmt.Errorf("unexpected object kind %s", note.ObjectKind)
- }
-
- switch note.ObjectAttributes.NoteableType {
- case noteableTypeCommit:
- event = &CommitCommentEvent{}
- case noteableTypeMergeRequest:
- event = &MergeCommentEvent{}
- case noteableTypeIssue:
- event = &IssueCommentEvent{}
- case noteableTypeSnippet:
- event = &SnippetCommentEvent{}
- default:
- return nil, fmt.Errorf("unexpected noteable type %s", note.ObjectAttributes.NoteableType)
- }
-
- default:
- return nil, fmt.Errorf("unexpected event type: %s", eventType)
- }
-
- if err := json.Unmarshal(payload, event); err != nil {
- return nil, err
- }
-
- return event, nil
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/event_systemhook_types.go b/vendor/github.com/xanzy/go-gitlab/event_systemhook_types.go
deleted file mode 100644
index fd99bc5e37..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/event_systemhook_types.go
+++ /dev/null
@@ -1,149 +0,0 @@
-//
-// 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
-
-// systemHookEvent is used to pre-process events to determine the
-// system hook event type.
-type systemHookEvent struct {
- BaseSystemEvent
- ObjectKind string `json:"object_kind"`
-}
-
-// BaseSystemEvent contains system hook's common properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type BaseSystemEvent struct {
- EventName string `json:"event_name"`
- CreatedAt string `json:"created_at"`
- UpdatedAt string `json:"updated_at"`
-}
-
-// ProjectSystemEvent represents a project system event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type ProjectSystemEvent struct {
- BaseSystemEvent
- Name string `json:"name"`
- Path string `json:"path"`
- PathWithNamespace string `json:"path_with_namespace"`
- ProjectID int `json:"project_id"`
- OwnerName string `json:"owner_name"`
- OwnerEmail string `json:"owner_email"`
- ProjectVisibility string `json:"project_visibility"`
- OldPathWithNamespace string `json:"old_path_with_namespace,omitempty"`
-}
-
-// GroupSystemEvent represents a group system event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type GroupSystemEvent struct {
- BaseSystemEvent
- Name string `json:"name"`
- Path string `json:"path"`
- PathWithNamespace string `json:"full_path"`
- GroupID int `json:"group_id"`
- OwnerName string `json:"owner_name"`
- OwnerEmail string `json:"owner_email"`
- ProjectVisibility string `json:"project_visibility"`
- OldPath string `json:"old_path,omitempty"`
- OldPathWithNamespace string `json:"old_full_path,omitempty"`
-}
-
-// KeySystemEvent represents a key system event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type KeySystemEvent struct {
- BaseSystemEvent
- ID int `json:"id"`
- Username string `json:"username"`
- Key string `json:"key"`
-}
-
-// UserSystemEvent represents a user system event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type UserSystemEvent struct {
- BaseSystemEvent
- ID int `json:"user_id"`
- Name string `json:"name"`
- Username string `json:"username"`
- OldUsername string `json:"old_username,omitempty"`
- Email string `json:"email"`
-}
-
-// UserGroupSystemEvent represents a user group system event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type UserGroupSystemEvent struct {
- BaseSystemEvent
- ID int `json:"user_id"`
- Name string `json:"user_name"`
- Username string `json:"user_username"`
- Email string `json:"user_email"`
- GroupID int `json:"group_id"`
- GroupName string `json:"group_name"`
- GroupPath string `json:"group_path"`
- GroupAccess string `json:"group_access"`
-}
-
-// UserTeamSystemEvent represents a user team system event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type UserTeamSystemEvent struct {
- BaseSystemEvent
- ID int `json:"user_id"`
- Name string `json:"user_name"`
- Username string `json:"user_username"`
- Email string `json:"user_email"`
- ProjectID int `json:"project_id"`
- ProjectName string `json:"project_name"`
- ProjectPath string `json:"project_path"`
- ProjectPathWithNamespace string `json:"project_path_with_namespace"`
- ProjectVisibility string `json:"project_visibility"`
- AccessLevel string `json:"access_level"`
-}
-
-// PushSystemEvent represents a push system event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type PushSystemEvent struct {
- BaseSystemEvent
-}
-
-// TagPushSystemEvent represents a tag push system event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type TagPushSystemEvent struct {
- BaseSystemEvent
-}
-
-// RepositoryUpdateSystemEvent represents a repository updated system event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/system_hooks/system_hooks.html
-type RepositoryUpdateSystemEvent struct {
- BaseSystemEvent
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/event_webhook_types.go b/vendor/github.com/xanzy/go-gitlab/event_webhook_types.go
deleted file mode 100644
index 4ccb36fe21..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/event_webhook_types.go
+++ /dev/null
@@ -1,941 +0,0 @@
-//
-// 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 (
- "encoding/json"
- "fmt"
- "strconv"
- "time"
-)
-
-//BuildEvent represents a build event
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#build-events
-type BuildEvent struct {
- ObjectKind string `json:"object_kind"`
- Ref string `json:"ref"`
- Tag bool `json:"tag"`
- BeforeSHA string `json:"before_sha"`
- SHA string `json:"sha"`
- BuildID int `json:"build_id"`
- BuildName string `json:"build_name"`
- BuildStage string `json:"build_stage"`
- BuildStatus string `json:"build_status"`
- BuildStartedAt string `json:"build_started_at"`
- BuildFinishedAt string `json:"build_finished_at"`
- BuildDuration float64 `json:"build_duration"`
- BuildAllowFailure bool `json:"build_allow_failure"`
- ProjectID int `json:"project_id"`
- ProjectName string `json:"project_name"`
- User *EventUser `json:"user"`
- Commit struct {
- ID int `json:"id"`
- SHA string `json:"sha"`
- Message string `json:"message"`
- AuthorName string `json:"author_name"`
- AuthorEmail string `json:"author_email"`
- Status string `json:"status"`
- Duration int `json:"duration"`
- StartedAt string `json:"started_at"`
- FinishedAt string `json:"finished_at"`
- } `json:"commit"`
- Repository *Repository `json:"repository"`
-}
-
-// CommitCommentEvent represents a comment on a commit event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#comment-on-commit
-type CommitCommentEvent struct {
- ObjectKind string `json:"object_kind"`
- User *User `json:"user"`
- ProjectID int `json:"project_id"`
- Project struct {
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- Repository *Repository `json:"repository"`
- ObjectAttributes struct {
- ID int `json:"id"`
- Note string `json:"note"`
- NoteableType string `json:"noteable_type"`
- AuthorID int `json:"author_id"`
- CreatedAt string `json:"created_at"`
- UpdatedAt string `json:"updated_at"`
- ProjectID int `json:"project_id"`
- Attachment string `json:"attachment"`
- LineCode string `json:"line_code"`
- CommitID string `json:"commit_id"`
- NoteableID int `json:"noteable_id"`
- System bool `json:"system"`
- StDiff struct {
- Diff string `json:"diff"`
- NewPath string `json:"new_path"`
- OldPath string `json:"old_path"`
- AMode string `json:"a_mode"`
- BMode string `json:"b_mode"`
- NewFile bool `json:"new_file"`
- RenamedFile bool `json:"renamed_file"`
- DeletedFile bool `json:"deleted_file"`
- } `json:"st_diff"`
- } `json:"object_attributes"`
- Commit *struct {
- ID string `json:"id"`
- Message string `json:"message"`
- Timestamp *time.Time `json:"timestamp"`
- URL string `json:"url"`
- Author struct {
- Name string `json:"name"`
- Email string `json:"email"`
- } `json:"author"`
- } `json:"commit"`
-}
-
-// DeploymentEvent represents a deployment event
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#deployment-events
-type DeploymentEvent struct {
- ObjectKind string `json:"object_kind"`
- Status string `json:"status"`
- DeployableID int `json:"deployable_id"`
- DeployableURL string `json:"deployable_url"`
- Environment string `json:"environment"`
- Project struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Description string `json:"description"`
- WebURL string `json:"web_url"`
- AvatarURL *string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- VisibilityLevel int `json:"visibility_level"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- CIConfigPath string `json:"ci_config_path"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- } `json:"project"`
- ShortSHA string `json:"short_sha"`
- User *EventUser `json:"user"`
- UserURL string `json:"user_url"`
- CommitURL string `json:"commit_url"`
- CommitTitle string `json:"commit_title"`
-}
-
-// IssueCommentEvent represents a comment on an issue event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#comment-on-issue
-type IssueCommentEvent struct {
- ObjectKind string `json:"object_kind"`
- User *User `json:"user"`
- ProjectID int `json:"project_id"`
- Project struct {
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- Repository *Repository `json:"repository"`
- ObjectAttributes struct {
- ID int `json:"id"`
- Note string `json:"note"`
- NoteableType string `json:"noteable_type"`
- AuthorID int `json:"author_id"`
- CreatedAt string `json:"created_at"`
- UpdatedAt string `json:"updated_at"`
- ProjectID int `json:"project_id"`
- Attachment string `json:"attachment"`
- LineCode string `json:"line_code"`
- CommitID string `json:"commit_id"`
- NoteableID int `json:"noteable_id"`
- System bool `json:"system"`
- StDiff []*Diff `json:"st_diff"`
- URL string `json:"url"`
- } `json:"object_attributes"`
- Issue struct {
- ID int `json:"id"`
- IID int `json:"iid"`
- ProjectID int `json:"project_id"`
- MilestoneID int `json:"milestone_id"`
- AuthorID int `json:"author_id"`
- Description string `json:"description"`
- State string `json:"state"`
- Title string `json:"title"`
- Labels []Label `json:"labels"`
- LastEditedAt string `json:"last_edit_at"`
- LastEditedByID int `json:"last_edited_by_id"`
- UpdatedAt string `json:"updated_at"`
- UpdatedByID int `json:"updated_by_id"`
- CreatedAt string `json:"created_at"`
- ClosedAt string `json:"closed_at"`
- DueDate *ISOTime `json:"due_date"`
- URL string `json:"url"`
- TimeEstimate int `json:"time_estimate"`
- Confidential bool `json:"confidential"`
- TotalTimeSpent int `json:"total_time_spent"`
- HumanTotalTimeSpent string `json:"human_total_time_spent"`
- HumanTimeEstimate string `json:"human_time_estimate"`
- AssigneeIDs []int `json:"assignee_ids"`
- AssigneeID int `json:"assignee_id"`
- } `json:"issue"`
-}
-
-// IssueEvent represents a issue event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#issues-events
-type IssueEvent struct {
- ObjectKind string `json:"object_kind"`
- User *EventUser `json:"user"`
- Project struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- Repository *Repository `json:"repository"`
- ObjectAttributes struct {
- ID int `json:"id"`
- Title string `json:"title"`
- AssigneeID int `json:"assignee_id"`
- AuthorID int `json:"author_id"`
- ProjectID int `json:"project_id"`
- CreatedAt string `json:"created_at"` // Should be *time.Time (see Gitlab issue #21468)
- UpdatedAt string `json:"updated_at"` // Should be *time.Time (see Gitlab issue #21468)
- Position int `json:"position"`
- BranchName string `json:"branch_name"`
- Description string `json:"description"`
- MilestoneID int `json:"milestone_id"`
- State string `json:"state"`
- IID int `json:"iid"`
- URL string `json:"url"`
- Action string `json:"action"`
- } `json:"object_attributes"`
- Assignee *EventUser `json:"assignee"`
- Assignees *[]EventUser `json:"assignees"`
- Labels []Label `json:"labels"`
- Changes struct {
- Description struct {
- Previous string `json:"previous"`
- Current string `json:"current"`
- } `json:"description"`
- Labels struct {
- Previous []Label `json:"previous"`
- Current []Label `json:"current"`
- } `json:"labels"`
- Title struct {
- Previous string `json:"previous"`
- Current string `json:"current"`
- } `json:"title"`
- UpdatedByID struct {
- Previous int `json:"previous"`
- Current int `json:"current"`
- } `json:"updated_by_id"`
- TotalTimeSpent struct {
- Previous int `json:"previous"`
- Current int `json:"current"`
- } `json:"total_time_spent"`
- } `json:"changes"`
-}
-
-// JobEvent represents a job event.
-//
-// GitLab API docs:
-// TODO: link to docs instead of src once they are published.
-// https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/data_builder/build.rb
-type JobEvent struct {
- ObjectKind string `json:"object_kind"`
- Ref string `json:"ref"`
- Tag bool `json:"tag"`
- BeforeSHA string `json:"before_sha"`
- SHA string `json:"sha"`
- BuildID int `json:"build_id"`
- BuildName string `json:"build_name"`
- BuildStage string `json:"build_stage"`
- BuildStatus string `json:"build_status"`
- BuildStartedAt string `json:"build_started_at"`
- BuildFinishedAt string `json:"build_finished_at"`
- BuildDuration float64 `json:"build_duration"`
- BuildAllowFailure bool `json:"build_allow_failure"`
- BuildFailureReason string `json:"build_failure_reason"`
- PipelineID int `json:"pipeline_id"`
- ProjectID int `json:"project_id"`
- ProjectName string `json:"project_name"`
- User *EventUser `json:"user"`
- Commit struct {
- ID int `json:"id"`
- SHA string `json:"sha"`
- Message string `json:"message"`
- AuthorName string `json:"author_name"`
- AuthorEmail string `json:"author_email"`
- AuthorURL string `json:"author_url"`
- Status string `json:"status"`
- Duration int `json:"duration"`
- StartedAt string `json:"started_at"`
- FinishedAt string `json:"finished_at"`
- } `json:"commit"`
- Repository *Repository `json:"repository"`
- Runner struct {
- ID int `json:"id"`
- Active bool `json:"active"`
- Shared bool `json:"is_shared"`
- Description string `json:"description"`
- } `json:"runner"`
-}
-
-// MergeCommentEvent represents a comment on a merge event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#comment-on-merge-request
-type MergeCommentEvent struct {
- ObjectKind string `json:"object_kind"`
- User *EventUser `json:"user"`
- ProjectID int `json:"project_id"`
- Project struct {
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- ObjectAttributes struct {
- Attachment string `json:"attachment"`
- AuthorID int `json:"author_id"`
- ChangePosition *NotePosition `json:"change_position"`
- CommitID string `json:"commit_id"`
- CreatedAt string `json:"created_at"`
- DiscussionID string `json:"discussion_id"`
- ID int `json:"id"`
- LineCode string `json:"line_code"`
- Note string `json:"note"`
- NoteableID int `json:"noteable_id"`
- NoteableType string `json:"noteable_type"`
- OriginalPosition *NotePosition `json:"original_position"`
- Position *NotePosition `json:"position"`
- ProjectID int `json:"project_id"`
- ResolvedAt string `json:"resolved_at"`
- ResolvedByID int `json:"resolved_by_id"`
- ResolvedByPush bool `json:"resolved_by_push"`
- StDiff *Diff `json:"st_diff"`
- System bool `json:"system"`
- Type string `json:"type"`
- UpdatedAt string `json:"updated_at"`
- UpdatedByID string `json:"updated_by_id"`
- Description string `json:"description"`
- URL string `json:"url"`
- } `json:"object_attributes"`
- Repository *Repository `json:"repository"`
- MergeRequest struct {
- ID int `json:"id"`
- TargetBranch string `json:"target_branch"`
- SourceBranch string `json:"source_branch"`
- SourceProjectID int `json:"source_project_id"`
- AuthorID int `json:"author_id"`
- AssigneeID int `json:"assignee_id"`
- AssigneeIDs []int `json:"assignee_ids"`
- Title string `json:"title"`
- CreatedAt string `json:"created_at"`
- UpdatedAt string `json:"updated_at"`
- MilestoneID int `json:"milestone_id"`
- State string `json:"state"`
- MergeStatus string `json:"merge_status"`
- TargetProjectID int `json:"target_project_id"`
- IID int `json:"iid"`
- Description string `json:"description"`
- Position int `json:"position"`
- LockedAt string `json:"locked_at"`
- UpdatedByID int `json:"updated_by_id"`
- MergeError string `json:"merge_error"`
- MergeParams *MergeParams `json:"merge_params"`
- MergeWhenPipelineSucceeds bool `json:"merge_when_pipeline_succeeds"`
- MergeUserID int `json:"merge_user_id"`
- MergeCommitSHA string `json:"merge_commit_sha"`
- DeletedAt string `json:"deleted_at"`
- InProgressMergeCommitSHA string `json:"in_progress_merge_commit_sha"`
- LockVersion int `json:"lock_version"`
- ApprovalsBeforeMerge string `json:"approvals_before_merge"`
- RebaseCommitSHA string `json:"rebase_commit_sha"`
- TimeEstimate int `json:"time_estimate"`
- Squash bool `json:"squash"`
- LastEditedAt string `json:"last_edited_at"`
- LastEditedByID int `json:"last_edited_by_id"`
- Source *Repository `json:"source"`
- Target *Repository `json:"target"`
- LastCommit struct {
- ID string `json:"id"`
- Message string `json:"message"`
- Timestamp *time.Time `json:"timestamp"`
- URL string `json:"url"`
- Author struct {
- Name string `json:"name"`
- Email string `json:"email"`
- } `json:"author"`
- } `json:"last_commit"`
- WorkInProgress bool `json:"work_in_progress"`
- TotalTimeSpent int `json:"total_time_spent"`
- HeadPipelineID int `json:"head_pipeline_id"`
- } `json:"merge_request"`
-}
-
-// MergeEvent represents a merge event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#merge-request-events
-type MergeEvent struct {
- ObjectKind string `json:"object_kind"`
- User *EventUser `json:"user"`
- Project struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- ObjectAttributes struct {
- ID int `json:"id"`
- TargetBranch string `json:"target_branch"`
- SourceBranch string `json:"source_branch"`
- SourceProjectID int `json:"source_project_id"`
- AuthorID int `json:"author_id"`
- AssigneeID int `json:"assignee_id"`
- AssigneeIDs []int `json:"assignee_ids"`
- 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"`
- MilestoneID int `json:"milestone_id"`
- State string `json:"state"`
- MergeStatus string `json:"merge_status"`
- TargetProjectID int `json:"target_project_id"`
- IID int `json:"iid"`
- Description string `json:"description"`
- Position int `json:"position"`
- LockedAt string `json:"locked_at"`
- UpdatedByID int `json:"updated_by_id"`
- MergeError string `json:"merge_error"`
- MergeParams *MergeParams `json:"merge_params"`
- MergeWhenBuildSucceeds bool `json:"merge_when_build_succeeds"`
- MergeUserID int `json:"merge_user_id"`
- MergeCommitSHA string `json:"merge_commit_sha"`
- DeletedAt string `json:"deleted_at"`
- ApprovalsBeforeMerge string `json:"approvals_before_merge"`
- RebaseCommitSHA string `json:"rebase_commit_sha"`
- InProgressMergeCommitSHA string `json:"in_progress_merge_commit_sha"`
- LockVersion int `json:"lock_version"`
- TimeEstimate int `json:"time_estimate"`
- Source *Repository `json:"source"`
- Target *Repository `json:"target"`
- LastCommit struct {
- ID string `json:"id"`
- Message string `json:"message"`
- Timestamp *time.Time `json:"timestamp"`
- URL string `json:"url"`
- Author struct {
- Name string `json:"name"`
- Email string `json:"email"`
- } `json:"author"`
- } `json:"last_commit"`
- WorkInProgress bool `json:"work_in_progress"`
- URL string `json:"url"`
- Action string `json:"action"`
- OldRev string `json:"oldrev"`
- Assignee *EventUser `json:"assignee"`
- } `json:"object_attributes"`
- Repository *Repository `json:"repository"`
- Assignee *EventUser `json:"assignee"`
- Assignees []*EventUser `json:"assignees"`
- Labels []*Label `json:"labels"`
- Changes struct {
- Assignees struct {
- Previous []*EventUser `json:"previous"`
- Current []*EventUser `json:"current"`
- } `json:"assignees"`
- Description struct {
- Previous string `json:"previous"`
- Current string `json:"current"`
- } `json:"description"`
- Labels struct {
- Previous []*Label `json:"previous"`
- Current []*Label `json:"current"`
- } `json:"labels"`
- SourceBranch struct {
- Previous string `json:"previous"`
- Current string `json:"current"`
- } `json:"source_branch"`
- SourceProjectID struct {
- Previous int `json:"previous"`
- Current int `json:"current"`
- } `json:"source_project_id"`
- StateID struct {
- Previous int `json:"previous"`
- Current int `json:"current"`
- } `json:"state_id"`
- TargetBranch struct {
- Previous string `json:"previous"`
- Current string `json:"current"`
- } `json:"target_branch"`
- TargetProjectID struct {
- Previous int `json:"previous"`
- Current int `json:"current"`
- } `json:"target_project_id"`
- Title struct {
- Previous string `json:"previous"`
- Current string `json:"current"`
- } `json:"title"`
- UpdatedByID struct {
- Previous int `json:"previous"`
- Current int `json:"current"`
- } `json:"updated_by_id"`
- MilestoneID struct {
- Previous int `json:"previous"`
- Current int `json:"current"`
- } `json:"milestone_id"`
- } `json:"changes"`
-}
-
-// EventUser represents a user record in an event and is used as an even initiator or a merge assignee.
-type EventUser struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Username string `json:"username"`
- AvatarURL string `json:"avatar_url"`
- Email string `json:"email"`
-}
-
-// MergeParams represents the merge params.
-type MergeParams struct {
- ForceRemoveSourceBranch bool `json:"force_remove_source_branch"`
-}
-
-// UnmarshalJSON decodes the merge parameters
-//
-// This allows support of ForceRemoveSourceBranch for both type bool (>11.9) and string (<11.9)
-func (p *MergeParams) UnmarshalJSON(b []byte) error {
- type Alias MergeParams
- raw := struct {
- *Alias
- ForceRemoveSourceBranch interface{} `json:"force_remove_source_branch"`
- }{
- Alias: (*Alias)(p),
- }
-
- err := json.Unmarshal(b, &raw)
- if err != nil {
- return err
- }
-
- switch v := raw.ForceRemoveSourceBranch.(type) {
- case nil:
- // No action needed.
- case bool:
- p.ForceRemoveSourceBranch = v
- case string:
- p.ForceRemoveSourceBranch, err = strconv.ParseBool(v)
- if err != nil {
- return err
- }
- default:
- return fmt.Errorf("failed to unmarshal ForceRemoveSourceBranch of type: %T", v)
- }
-
- return nil
-}
-
-// PipelineEvent represents a pipeline event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#pipeline-events
-type PipelineEvent struct {
- ObjectKind string `json:"object_kind"`
- ObjectAttributes struct {
- ID int `json:"id"`
- 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"`
- Stages []string `json:"stages"`
- CreatedAt string `json:"created_at"`
- FinishedAt string `json:"finished_at"`
- Duration int `json:"duration"`
- } `json:"object_attributes"`
- MergeRequest struct {
- ID int `json:"id"`
- IID int `json:"iid"`
- Title string `json:"title"`
- SourceBranch string `json:"source_branch"`
- SourceProjectID int `json:"source_project_id"`
- TargetBranch string `json:"target_branch"`
- TargetProjectID int `json:"target_project_id"`
- State string `json:"state"`
- MergeRequestStatus string `json:"merge_status"`
- URL string `json:"url"`
- } `json:"merge_request"`
- User *EventUser `json:"user"`
- Project struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- Commit struct {
- ID string `json:"id"`
- Message string `json:"message"`
- Timestamp *time.Time `json:"timestamp"`
- URL string `json:"url"`
- Author struct {
- Name string `json:"name"`
- Email string `json:"email"`
- } `json:"author"`
- } `json:"commit"`
- Builds []struct {
- ID int `json:"id"`
- Stage string `json:"stage"`
- Name string `json:"name"`
- Status string `json:"status"`
- CreatedAt string `json:"created_at"`
- StartedAt string `json:"started_at"`
- FinishedAt string `json:"finished_at"`
- When string `json:"when"`
- Manual bool `json:"manual"`
- User *EventUser `json:"user"`
- Runner struct {
- ID int `json:"id"`
- Description string `json:"description"`
- Active bool `json:"active"`
- IsShared bool `json:"is_shared"`
- } `json:"runner"`
- ArtifactsFile struct {
- Filename string `json:"filename"`
- Size int `json:"size"`
- } `json:"artifacts_file"`
- } `json:"builds"`
-}
-
-// PushEvent represents a push event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#push-events
-type PushEvent struct {
- ObjectKind string `json:"object_kind"`
- Before string `json:"before"`
- After string `json:"after"`
- Ref string `json:"ref"`
- CheckoutSHA string `json:"checkout_sha"`
- UserID int `json:"user_id"`
- UserName string `json:"user_name"`
- UserUsername string `json:"user_username"`
- UserEmail string `json:"user_email"`
- UserAvatar string `json:"user_avatar"`
- ProjectID int `json:"project_id"`
- Project struct {
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- Repository *Repository `json:"repository"`
- Commits []*struct {
- ID string `json:"id"`
- Message string `json:"message"`
- Timestamp *time.Time `json:"timestamp"`
- URL string `json:"url"`
- Author struct {
- Name string `json:"name"`
- Email string `json:"email"`
- } `json:"author"`
- Added []string `json:"added"`
- Modified []string `json:"modified"`
- Removed []string `json:"removed"`
- } `json:"commits"`
- TotalCommitsCount int `json:"total_commits_count"`
-}
-
-// ReleaseEvent represents a release event
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#release-events
-type ReleaseEvent struct {
- ID int `json:"id"`
- CreatedAt string `json:"created_at"` // Should be *time.Time (see Gitlab issue #21468)
- Description string `json:"description"`
- Name string `json:"name"`
- Tag string `json:"tag"`
- ReleasedAt string `json:"released_at"` // Should be *time.Time (see Gitlab issue #21468)
- ObjectKind string `json:"object_kind"`
- Project struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Description string `json:"description"`
- WebURL string `json:"web_url"`
- AvatarURL *string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- VisibilityLevel int `json:"visibility_level"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- CIConfigPath string `json:"ci_config_path"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- } `json:"project"`
- URL string `json:"url"`
- Action string `json:"action"`
- Assets struct {
- Count int `json:"count"`
- Links []struct {
- ID int `json:"id"`
- External bool `json:"external"`
- LinkType string `json:"link_type"`
- Name string `json:"name"`
- URL string `json:"url"`
- } `json:"links"`
- Sources []struct {
- Format string `json:"format"`
- URL string `json:"url"`
- } `json:"sources"`
- } `json:"assets"`
- Commit struct {
- ID string `json:"id"`
- Message string `json:"message"`
- Title string `json:"title"`
- Timestamp string `json:"timestamp"` // Should be *time.Time (see Gitlab issue #21468)
- URL string `json:"url"`
- Author struct {
- Name string `json:"name"`
- Email string `json:"email"`
- } `json:"author"`
- } `json:"commit"`
-}
-
-// SnippetCommentEvent represents a comment on a snippet event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#comment-on-code-snippet
-type SnippetCommentEvent struct {
- ObjectKind string `json:"object_kind"`
- User *EventUser `json:"user"`
- ProjectID int `json:"project_id"`
- Project struct {
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- Repository *Repository `json:"repository"`
- ObjectAttributes struct {
- ID int `json:"id"`
- Note string `json:"note"`
- NoteableType string `json:"noteable_type"`
- AuthorID int `json:"author_id"`
- CreatedAt string `json:"created_at"`
- UpdatedAt string `json:"updated_at"`
- ProjectID int `json:"project_id"`
- Attachment string `json:"attachment"`
- LineCode string `json:"line_code"`
- CommitID string `json:"commit_id"`
- NoteableID int `json:"noteable_id"`
- System bool `json:"system"`
- StDiff *Diff `json:"st_diff"`
- URL string `json:"url"`
- } `json:"object_attributes"`
- Snippet *Snippet `json:"snippet"`
-}
-
-// TagEvent represents a tag event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#tag-events
-type TagEvent struct {
- ObjectKind string `json:"object_kind"`
- Before string `json:"before"`
- After string `json:"after"`
- Ref string `json:"ref"`
- CheckoutSHA string `json:"checkout_sha"`
- UserID int `json:"user_id"`
- UserName string `json:"user_name"`
- UserAvatar string `json:"user_avatar"`
- UserEmail string `json:"user_email"`
- ProjectID int `json:"project_id"`
- Message string `json:"message"`
- Project struct {
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- Repository *Repository `json:"repository"`
- Commits []*struct {
- ID string `json:"id"`
- Message string `json:"message"`
- Timestamp *time.Time `json:"timestamp"`
- URL string `json:"url"`
- Author struct {
- Name string `json:"name"`
- Email string `json:"email"`
- } `json:"author"`
- Added []string `json:"added"`
- Modified []string `json:"modified"`
- Removed []string `json:"removed"`
- } `json:"commits"`
- TotalCommitsCount int `json:"total_commits_count"`
-}
-
-// WikiPageEvent represents a wiki page event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#wiki-page-events
-type WikiPageEvent struct {
- ObjectKind string `json:"object_kind"`
- User *EventUser `json:"user"`
- Project struct {
- Name string `json:"name"`
- Description string `json:"description"`
- AvatarURL string `json:"avatar_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- Namespace string `json:"namespace"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- Homepage string `json:"homepage"`
- URL string `json:"url"`
- SSHURL string `json:"ssh_url"`
- HTTPURL string `json:"http_url"`
- WebURL string `json:"web_url"`
- Visibility VisibilityValue `json:"visibility"`
- } `json:"project"`
- Wiki struct {
- WebURL string `json:"web_url"`
- GitSSHURL string `json:"git_ssh_url"`
- GitHTTPURL string `json:"git_http_url"`
- PathWithNamespace string `json:"path_with_namespace"`
- DefaultBranch string `json:"default_branch"`
- } `json:"wiki"`
- ObjectAttributes struct {
- Title string `json:"title"`
- Content string `json:"content"`
- Format string `json:"format"`
- Message string `json:"message"`
- Slug string `json:"slug"`
- URL string `json:"url"`
- Action string `json:"action"`
- } `json:"object_attributes"`
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/events.go b/vendor/github.com/xanzy/go-gitlab/events.go
deleted file mode 100644
index 8fec14c4e8..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/events.go
+++ /dev/null
@@ -1,148 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// EventsService handles communication with the event related methods of
-// the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/events.html
-type EventsService struct {
- client *Client
-}
-
-// ContributionEvent represents a user's contribution
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/events.html#get-user-contribution-events
-type ContributionEvent struct {
- ID int `json:"id"`
- Title string `json:"title"`
- ProjectID int `json:"project_id"`
- ActionName string `json:"action_name"`
- TargetID int `json:"target_id"`
- TargetIID int `json:"target_iid"`
- TargetType string `json:"target_type"`
- AuthorID int `json:"author_id"`
- TargetTitle string `json:"target_title"`
- CreatedAt *time.Time `json:"created_at"`
- PushData struct {
- CommitCount int `json:"commit_count"`
- Action string `json:"action"`
- RefType string `json:"ref_type"`
- CommitFrom string `json:"commit_from"`
- CommitTo string `json:"commit_to"`
- Ref string `json:"ref"`
- CommitTitle string `json:"commit_title"`
- } `json:"push_data"`
- Note *Note `json:"note"`
- Author struct {
- Name string `json:"name"`
- Username string `json:"username"`
- ID int `json:"id"`
- State string `json:"state"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- } `json:"author"`
- AuthorUsername string `json:"author_username"`
-}
-
-// ListContributionEventsOptions represents the options for GetUserContributionEvents
-//
-// GitLap API docs:
-// https://docs.gitlab.com/ce/api/events.html#get-user-contribution-events
-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"`
-}
-
-// ListUserContributionEvents retrieves user contribution events
-// for the specified user, sorted from newest to oldest.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/events.html#get-user-contribution-events
-func (s *UsersService) ListUserContributionEvents(uid interface{}, opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error) {
- user, err := parseID(uid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("users/%s/events", user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var cs []*ContributionEvent
- resp, err := s.client.Do(req, &cs)
- if err != nil {
- return nil, resp, err
- }
-
- return cs, resp, err
-}
-
-// ListCurrentUserContributionEvents gets a list currently authenticated user's events
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/events.html#list-currently-authenticated-user-39-s-events
-func (s *EventsService) ListCurrentUserContributionEvents(opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "events", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var cs []*ContributionEvent
- resp, err := s.client.Do(req, &cs)
- if err != nil {
- return nil, resp, err
- }
-
- return cs, resp, err
-}
-
-// ListProjectVisibleEvents gets a list of visible events for a particular project
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/events.html#list-a-project-s-visible-events
-func (s *EventsService) ListProjectVisibleEvents(pid interface{}, opt *ListContributionEventsOptions, options ...RequestOptionFunc) ([]*ContributionEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/events", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var cs []*ContributionEvent
- resp, err := s.client.Do(req, &cs)
- if err != nil {
- return nil, resp, err
- }
-
- return cs, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/feature_flags.go b/vendor/github.com/xanzy/go-gitlab/feature_flags.go
deleted file mode 100644
index 2bf579c24d..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/feature_flags.go
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "net/url"
-)
-
-// FeaturesService handles the communication with the application FeaturesService
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/features.html
-type FeaturesService struct {
- client *Client
-}
-
-// Feature represents a GitLab feature flag.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/features.html
-type Feature struct {
- Name string `json:"name"`
- State string `json:"state"`
- Gates []Gate
-}
-
-// Gate represents a gate of a GitLab feature flag.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/features.html
-type Gate struct {
- Key string `json:"key"`
- Value interface{} `json:"value"`
-}
-
-func (f Feature) String() string {
- return Stringify(f)
-}
-
-// ListFeatures gets a list of feature flags
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/features.html#list-all-features
-func (s *FeaturesService) ListFeatures(options ...RequestOptionFunc) ([]*Feature, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "features", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var f []*Feature
- resp, err := s.client.Do(req, &f)
- if err != nil {
- return nil, resp, err
- }
- return f, resp, err
-}
-
-// SetFeatureFlag sets or creates a feature flag gate
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/features.html#set-or-create-a-feature
-func (s *FeaturesService) SetFeatureFlag(name string, value interface{}, options ...RequestOptionFunc) (*Feature, *Response, error) {
- u := fmt.Sprintf("features/%s", url.PathEscape(name))
-
- opt := struct {
- Value interface{} `url:"value" json:"value"`
- }{
- value,
- }
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- f := &Feature{}
- resp, err := s.client.Do(req, f)
- if err != nil {
- return nil, resp, err
- }
- return f, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/freeze_periods.go b/vendor/github.com/xanzy/go-gitlab/freeze_periods.go
deleted file mode 100644
index dfcca0789d..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/freeze_periods.go
+++ /dev/null
@@ -1,194 +0,0 @@
-//
-// Copyright 2021 Paul Cioanca
-//
-// 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"
- "time"
-)
-
-// FreezePeriodsService handles the communication with the freeze periods
-// related methods of the GitLab API.
-//
-// https://docs.gitlab.com/ce/api/freeze_periods.html
-type FreezePeriodsService struct {
- client *Client
-}
-
-// FreezePeriod represents a freeze period object.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/freeze_periods.html#list-freeze-periods
-type FreezePeriod struct {
- ID int `json:"id"`
- FreezeStart string `json:"freeze_start"`
- FreezeEnd string `json:"freeze_end"`
- CronTimezone string `json:"cron_timezone"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
-}
-
-// ListFreezePeriodsOptions represents the available ListFreezePeriodsOptions()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/freeze_periods.html#list-freeze-periods
-type ListFreezePeriodsOptions ListOptions
-
-// ListFreezePeriods gets a list of project project freeze periods.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/freeze_periods.html#list-freeze-periods
-func (s *FreezePeriodsService) ListFreezePeriods(pid interface{}, opt *ListFreezePeriodsOptions, options ...RequestOptionFunc) ([]*FreezePeriod, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/freeze_periods", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var fp []*FreezePeriod
- resp, err := s.client.Do(req, &fp)
- if err != nil {
- return nil, resp, err
- }
-
- return fp, resp, err
-}
-
-// GetFreezePeriod gets a specific freeze period for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/freeze_periods.html#get-a-freeze-period-by-a-freeze_period_id
-func (s *FreezePeriodsService) GetFreezePeriod(pid interface{}, freezePeriod int, options ...RequestOptionFunc) (*FreezePeriod, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/freeze_periods/%d", pathEscape(project), freezePeriod)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- fp := new(FreezePeriod)
- resp, err := s.client.Do(req, fp)
- if err != nil {
- return nil, resp, err
- }
-
- return fp, resp, err
-}
-
-// CreateFreezePeriodOptions represents the available CreateFreezePeriodOptions()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/freeze_periods.html#create-a-freeze-period
-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 adds a freeze period to a specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/freeze_periods.html#create-a-freeze-period
-func (s *FreezePeriodsService) CreateFreezePeriodOptions(pid interface{}, opt *CreateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/freeze_periods", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- fp := new(FreezePeriod)
- resp, err := s.client.Do(req, fp)
- if err != nil {
- return nil, resp, err
- }
-
- return fp, resp, err
-}
-
-// UpdateFreezePeriodOptions represents the available UpdateFreezePeriodOptions()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/freeze_periods.html#update-a-freeze-period
-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 edits a freeze period for a specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/freeze_periods.html#update-a-freeze-period
-func (s *FreezePeriodsService) UpdateFreezePeriodOptions(pid interface{}, freezePeriod int, opt *UpdateFreezePeriodOptions, options ...RequestOptionFunc) (*FreezePeriod, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/freeze_periods/%d", pathEscape(project), freezePeriod)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- fp := new(FreezePeriod)
- resp, err := s.client.Do(req, fp)
- if err != nil {
- return nil, resp, err
- }
-
- return fp, resp, err
-}
-
-// 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/ce/api/freeze_periods.html#delete-a-freeze-period
-func (s *FreezePeriodsService) DeleteFreezePeriod(pid interface{}, freezePeriod int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/freeze_periods/%d", pathEscape(project), freezePeriod)
-
- 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/gitignore_templates.go b/vendor/github.com/xanzy/go-gitlab/gitignore_templates.go
deleted file mode 100644
index bf066c9e62..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/gitignore_templates.go
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "net/url"
-)
-
-// GitIgnoreTemplatesService handles communication with the gitignore
-// templates related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/templates/gitignores.html
-type GitIgnoreTemplatesService struct {
- client *Client
-}
-
-// GitIgnoreTemplate represents a GitLab gitignore template.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/templates/gitignores.html
-type GitIgnoreTemplate struct {
- Name string `json:"name"`
- Content string `json:"content"`
-}
-
-// ListTemplatesOptions represents the available ListAllTemplates() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/gitignores.html#list-gitignore-templates
-type ListTemplatesOptions ListOptions
-
-// ListTemplates get a list of available git ignore templates
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/gitignores.html#list-gitignore-templates
-func (s *GitIgnoreTemplatesService) ListTemplates(opt *ListTemplatesOptions, options ...RequestOptionFunc) ([]*GitIgnoreTemplate, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "templates/gitignores", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var gs []*GitIgnoreTemplate
- resp, err := s.client.Do(req, &gs)
- if err != nil {
- return nil, resp, err
- }
-
- return gs, resp, err
-}
-
-// GetTemplate get a git ignore template
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/gitignores.html#single-gitignore-template
-func (s *GitIgnoreTemplatesService) GetTemplate(key string, options ...RequestOptionFunc) (*GitIgnoreTemplate, *Response, error) {
- u := fmt.Sprintf("templates/gitignores/%s", url.PathEscape(key))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- g := new(GitIgnoreTemplate)
- resp, err := s.client.Do(req, g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/gitlab.go b/vendor/github.com/xanzy/go-gitlab/gitlab.go
deleted file mode 100644
index ecd18fc18e..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/gitlab.go
+++ /dev/null
@@ -1,813 +0,0 @@
-//
-// 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 implements a GitLab API client.
-package gitlab
-
-import (
- "context"
- "encoding/json"
- "fmt"
- "io"
- "io/ioutil"
- "math/rand"
- "net/http"
- "net/url"
- "sort"
- "strconv"
- "strings"
- "sync"
- "time"
-
- "github.com/google/go-querystring/query"
- "github.com/hashicorp/go-cleanhttp"
- retryablehttp "github.com/hashicorp/go-retryablehttp"
- "golang.org/x/oauth2"
- "golang.org/x/time/rate"
-)
-
-const (
- defaultBaseURL = "https://gitlab.com/"
- apiVersionPath = "api/v4/"
- userAgent = "go-gitlab"
-
- headerRateLimit = "RateLimit-Limit"
- headerRateReset = "RateLimit-Reset"
-)
-
-// authType represents an authentication type within GitLab.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-type authType int
-
-// List of available authentication types.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-const (
- basicAuth authType = iota
- oAuthToken
- privateToken
-)
-
-// A Client manages communication with the GitLab API.
-type Client struct {
- // HTTP client used to communicate with the API.
- client *retryablehttp.Client
-
- // Base URL for API requests. Defaults to the public GitLab API, but can be
- // set to a domain endpoint to use with a self hosted GitLab server. baseURL
- // should always be specified with a trailing slash.
- baseURL *url.URL
-
- // disableRetries is used to disable the default retry logic.
- disableRetries bool
-
- // configureLimiterOnce is used to make sure the limiter is configured exactly
- // once and block all other calls until the initial (one) call is done.
- configureLimiterOnce sync.Once
-
- // Limiter is used to limit API calls and prevent 429 responses.
- limiter RateLimiter
-
- // Token type used to make authenticated API calls.
- authType authType
-
- // Username and password used for basix authentication.
- username, password string
-
- // Token used to make authenticated API calls.
- token string
-
- // Protects the token field from concurrent read/write accesses.
- tokenLock sync.RWMutex
-
- // User agent used when communicating with the GitLab API.
- UserAgent string
-
- // Services used for talking to different parts of the GitLab API.
- AccessRequests *AccessRequestsService
- Applications *ApplicationsService
- AuditEvents *AuditEventsService
- Avatar *AvatarRequestsService
- AwardEmoji *AwardEmojiService
- Boards *IssueBoardsService
- Branches *BranchesService
- BroadcastMessage *BroadcastMessagesService
- CIYMLTemplate *CIYMLTemplatesService
- Commits *CommitsService
- ContainerRegistry *ContainerRegistryService
- CustomAttribute *CustomAttributesService
- DeployKeys *DeployKeysService
- DeployTokens *DeployTokensService
- Deployments *DeploymentsService
- Discussions *DiscussionsService
- Environments *EnvironmentsService
- EpicIssues *EpicIssuesService
- Epics *EpicsService
- Events *EventsService
- Features *FeaturesService
- FreezePeriods *FreezePeriodsService
- GitIgnoreTemplates *GitIgnoreTemplatesService
- GroupBadges *GroupBadgesService
- GroupCluster *GroupClustersService
- GroupImportExport *GroupImportExportService
- GroupIssueBoards *GroupIssueBoardsService
- GroupLabels *GroupLabelsService
- GroupMembers *GroupMembersService
- GroupMilestones *GroupMilestonesService
- GroupVariables *GroupVariablesService
- GroupWikis *GroupWikisService
- Groups *GroupsService
- InstanceCluster *InstanceClustersService
- InstanceVariables *InstanceVariablesService
- Invites *InvitesService
- IssueLinks *IssueLinksService
- Issues *IssuesService
- IssuesStatistics *IssuesStatisticsService
- Jobs *JobsService
- Keys *KeysService
- Labels *LabelsService
- License *LicenseService
- LicenseTemplates *LicenseTemplatesService
- ManagedLicenses *ManagedLicensesService
- MergeRequestApprovals *MergeRequestApprovalsService
- MergeRequests *MergeRequestsService
- Milestones *MilestonesService
- Namespaces *NamespacesService
- Notes *NotesService
- NotificationSettings *NotificationSettingsService
- Packages *PackagesService
- PagesDomains *PagesDomainsService
- PipelineSchedules *PipelineSchedulesService
- PipelineTriggers *PipelineTriggersService
- Pipelines *PipelinesService
- ProjectBadges *ProjectBadgesService
- ProjectAccessTokens *ProjectAccessTokensService
- ProjectCluster *ProjectClustersService
- ProjectImportExport *ProjectImportExportService
- ProjectMembers *ProjectMembersService
- ProjectMirrors *ProjectMirrorService
- ProjectSnippets *ProjectSnippetsService
- ProjectVariables *ProjectVariablesService
- Projects *ProjectsService
- ProtectedBranches *ProtectedBranchesService
- ProtectedEnvironments *ProtectedEnvironmentsService
- ProtectedTags *ProtectedTagsService
- ReleaseLinks *ReleaseLinksService
- Releases *ReleasesService
- Repositories *RepositoriesService
- RepositoryFiles *RepositoryFilesService
- ResourceLabelEvents *ResourceLabelEventsService
- ResourceStateEvents *ResourceStateEventsService
- Runners *RunnersService
- Search *SearchService
- Services *ServicesService
- Settings *SettingsService
- Sidekiq *SidekiqService
- Snippets *SnippetsService
- SystemHooks *SystemHooksService
- Tags *TagsService
- Todos *TodosService
- Users *UsersService
- Validate *ValidateService
- Version *VersionService
- Wikis *WikisService
-}
-
-// ListOptions specifies the optional parameters to various List methods that
-// support pagination.
-type ListOptions struct {
- // For paginated result sets, page of results to retrieve.
- Page int `url:"page,omitempty" json:"page,omitempty"`
-
- // For paginated result sets, the number of results to include per page.
- PerPage int `url:"per_page,omitempty" json:"per_page,omitempty"`
-}
-
-// RateLimiter describes the interface that all (custom) rate limiters must implement.
-type RateLimiter interface {
- Wait(context.Context) error
-}
-
-// NewClient returns a new GitLab API client. To use API methods which require
-// authentication, provide a valid private or personal token.
-func NewClient(token string, options ...ClientOptionFunc) (*Client, error) {
- client, err := newClient(options...)
- if err != nil {
- return nil, err
- }
- client.authType = privateToken
- client.token = token
- return client, nil
-}
-
-// NewBasicAuthClient returns a new GitLab API client. To use API methods which
-// require authentication, provide a valid username and password.
-func NewBasicAuthClient(username, password string, options ...ClientOptionFunc) (*Client, error) {
- client, err := newClient(options...)
- if err != nil {
- return nil, err
- }
-
- client.authType = basicAuth
- client.username = username
- client.password = password
-
- return client, nil
-}
-
-// NewOAuthClient returns a new GitLab API client. To use API methods which
-// require authentication, provide a valid oauth token.
-func NewOAuthClient(token string, options ...ClientOptionFunc) (*Client, error) {
- client, err := newClient(options...)
- if err != nil {
- return nil, err
- }
- client.authType = oAuthToken
- client.token = token
- return client, nil
-}
-
-func newClient(options ...ClientOptionFunc) (*Client, error) {
- c := &Client{UserAgent: userAgent}
-
- // Configure the HTTP client.
- c.client = &retryablehttp.Client{
- Backoff: c.retryHTTPBackoff,
- CheckRetry: c.retryHTTPCheck,
- ErrorHandler: retryablehttp.PassthroughErrorHandler,
- HTTPClient: cleanhttp.DefaultPooledClient(),
- RetryWaitMin: 100 * time.Millisecond,
- RetryWaitMax: 400 * time.Millisecond,
- RetryMax: 5,
- }
-
- // Set the default base URL.
- c.setBaseURL(defaultBaseURL)
-
- // Apply any given client options.
- for _, fn := range options {
- if fn == nil {
- continue
- }
- if err := fn(c); err != nil {
- return nil, err
- }
- }
-
- // Create the internal timeStats service.
- timeStats := &timeStatsService{client: c}
-
- // Create all the public services.
- c.AccessRequests = &AccessRequestsService{client: c}
- c.Applications = &ApplicationsService{client: c}
- c.AuditEvents = &AuditEventsService{client: c}
- c.Avatar = &AvatarRequestsService{client: c}
- c.AwardEmoji = &AwardEmojiService{client: c}
- c.Boards = &IssueBoardsService{client: c}
- c.Branches = &BranchesService{client: c}
- c.BroadcastMessage = &BroadcastMessagesService{client: c}
- c.CIYMLTemplate = &CIYMLTemplatesService{client: c}
- c.Commits = &CommitsService{client: c}
- c.ContainerRegistry = &ContainerRegistryService{client: c}
- c.CustomAttribute = &CustomAttributesService{client: c}
- c.DeployKeys = &DeployKeysService{client: c}
- c.DeployTokens = &DeployTokensService{client: c}
- c.Deployments = &DeploymentsService{client: c}
- c.Discussions = &DiscussionsService{client: c}
- c.Environments = &EnvironmentsService{client: c}
- c.EpicIssues = &EpicIssuesService{client: c}
- c.Epics = &EpicsService{client: c}
- c.Events = &EventsService{client: c}
- c.Features = &FeaturesService{client: c}
- c.FreezePeriods = &FreezePeriodsService{client: c}
- 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}
- c.GroupMilestones = &GroupMilestonesService{client: c}
- c.GroupVariables = &GroupVariablesService{client: c}
- c.GroupWikis = &GroupWikisService{client: c}
- c.Groups = &GroupsService{client: c}
- c.InstanceCluster = &InstanceClustersService{client: c}
- c.InstanceVariables = &InstanceVariablesService{client: c}
- c.Invites = &InvitesService{client: c}
- c.IssueLinks = &IssueLinksService{client: c}
- c.Issues = &IssuesService{client: c, timeStats: timeStats}
- c.IssuesStatistics = &IssuesStatisticsService{client: c}
- c.Jobs = &JobsService{client: c}
- c.Keys = &KeysService{client: c}
- 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}
- c.Namespaces = &NamespacesService{client: c}
- c.Notes = &NotesService{client: c}
- c.NotificationSettings = &NotificationSettingsService{client: c}
- c.Packages = &PackagesService{client: c}
- c.PagesDomains = &PagesDomainsService{client: c}
- c.PipelineSchedules = &PipelineSchedulesService{client: c}
- c.PipelineTriggers = &PipelineTriggersService{client: c}
- c.Pipelines = &PipelinesService{client: c}
- c.ProjectBadges = &ProjectBadgesService{client: c}
- c.ProjectAccessTokens = &ProjectAccessTokensService{client: c}
- c.ProjectCluster = &ProjectClustersService{client: c}
- c.ProjectImportExport = &ProjectImportExportService{client: c}
- c.ProjectMembers = &ProjectMembersService{client: c}
- c.ProjectMirrors = &ProjectMirrorService{client: c}
- c.ProjectSnippets = &ProjectSnippetsService{client: c}
- c.ProjectVariables = &ProjectVariablesService{client: c}
- c.Projects = &ProjectsService{client: c}
- c.ProtectedBranches = &ProtectedBranchesService{client: c}
- c.ProtectedEnvironments = &ProtectedEnvironmentsService{client: c}
- c.ProtectedTags = &ProtectedTagsService{client: c}
- c.ReleaseLinks = &ReleaseLinksService{client: c}
- c.Releases = &ReleasesService{client: c}
- c.Repositories = &RepositoriesService{client: c}
- c.RepositoryFiles = &RepositoryFilesService{client: c}
- c.ResourceLabelEvents = &ResourceLabelEventsService{client: c}
- c.ResourceStateEvents = &ResourceStateEventsService{client: c}
- c.Runners = &RunnersService{client: c}
- c.Search = &SearchService{client: c}
- c.Services = &ServicesService{client: c}
- c.Settings = &SettingsService{client: c}
- c.Sidekiq = &SidekiqService{client: c}
- c.Snippets = &SnippetsService{client: c}
- c.SystemHooks = &SystemHooksService{client: c}
- c.Tags = &TagsService{client: c}
- c.Todos = &TodosService{client: c}
- c.Users = &UsersService{client: c}
- c.Validate = &ValidateService{client: c}
- c.Version = &VersionService{client: c}
- c.Wikis = &WikisService{client: c}
-
- return c, nil
-}
-
-// retryHTTPCheck provides a callback for Client.CheckRetry which
-// will retry both rate limit (429) and server (>= 500) errors.
-func (c *Client) retryHTTPCheck(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 !c.disableRetries && (resp.StatusCode == 429 || resp.StatusCode >= 500) {
- return true, nil
- }
- return false, nil
-}
-
-// retryHTTPBackoff provides a generic callback for Client.Backoff which
-// will pass through all calls based on the status code of the response.
-func (c *Client) retryHTTPBackoff(min, max time.Duration, attemptNum int, resp *http.Response) time.Duration {
- // Use the rate limit backoff function when we are rate limited.
- if resp != nil && resp.StatusCode == 429 {
- return rateLimitBackoff(min, max, attemptNum, resp)
- }
-
- // Set custom duration's when we experience a service interruption.
- min = 700 * time.Millisecond
- max = 900 * time.Millisecond
-
- return retryablehttp.LinearJitterBackoff(min, max, attemptNum, resp)
-}
-
-// rateLimitBackoff provides a callback for Client.Backoff which will use the
-// RateLimit-Reset header to determine the time to wait. We add some jitter
-// to prevent a thundering herd.
-//
-// min and max are mainly used for bounding the jitter that will be added to
-// the reset time retrieved from the headers. But if the final wait time is
-// less then min, min will be used instead.
-func rateLimitBackoff(min, max time.Duration, attemptNum int, resp *http.Response) time.Duration {
- // rnd is used to generate pseudo-random numbers.
- rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
-
- // First create some jitter bounded by the min and max durations.
- jitter := time.Duration(rnd.Float64() * float64(max-min))
-
- if resp != nil {
- if v := resp.Header.Get(headerRateReset); v != "" {
- if reset, _ := strconv.ParseInt(v, 10, 64); reset > 0 {
- // Only update min if the given time to wait is longer.
- if wait := time.Until(time.Unix(reset, 0)); wait > min {
- min = wait
- }
- }
- }
- }
-
- return min + jitter
-}
-
-// configureLimiter configures the rate limiter.
-func (c *Client) configureLimiter(ctx context.Context) error {
- // Set default values for when rate limiting is disabled.
- limit := rate.Inf
- burst := 0
-
- defer func() {
- // Create a new limiter using the calculated values.
- c.limiter = rate.NewLimiter(limit, burst)
- }()
-
- // Create a new request.
- req, err := http.NewRequestWithContext(ctx, http.MethodGet, c.baseURL.String(), nil)
- if err != nil {
- return err
- }
-
- // Make a single request to retrieve the rate limit headers.
- resp, err := c.client.HTTPClient.Do(req)
- if err != nil {
- return err
- }
- resp.Body.Close()
-
- if v := resp.Header.Get(headerRateLimit); v != "" {
- if rateLimit, _ := strconv.ParseFloat(v, 64); rateLimit > 0 {
- // The rate limit is based on requests per minute, so for our limiter to
- // work correctly we divide the limit by 60 to get the limit per second.
- rateLimit /= 60
- // Configure the limit and burst using a split of 2/3 for the limit and
- // 1/3 for the burst. This enables clients to burst 1/3 of the allowed
- // calls before the limiter kicks in. The remaining calls will then be
- // spread out evenly using intervals of time.Second / limit which should
- // prevent hitting the rate limit.
- limit = rate.Limit(rateLimit * 0.66)
- burst = int(rateLimit * 0.33)
- }
- }
-
- return nil
-}
-
-// BaseURL return a copy of the baseURL.
-func (c *Client) BaseURL() *url.URL {
- u := *c.baseURL
- return &u
-}
-
-// setBaseURL sets the base URL for API requests to a custom endpoint.
-func (c *Client) setBaseURL(urlStr string) error {
- // Make sure the given URL end with a slash
- if !strings.HasSuffix(urlStr, "/") {
- urlStr += "/"
- }
-
- baseURL, err := url.Parse(urlStr)
- if err != nil {
- return err
- }
-
- if !strings.HasSuffix(baseURL.Path, apiVersionPath) {
- baseURL.Path += apiVersionPath
- }
-
- // Update the base URL of the client.
- c.baseURL = baseURL
-
- return nil
-}
-
-// NewRequest creates an API request. A relative URL path can be provided in
-// path, in which case it is resolved relative to the base URL of the Client.
-// Relative URL paths should always be specified without a preceding slash. If
-// specified, the value pointed to by body is JSON encoded and included as the
-// request body.
-func (c *Client) NewRequest(method, path string, opt interface{}, options []RequestOptionFunc) (*retryablehttp.Request, error) {
- u := *c.baseURL
- unescaped, err := url.PathUnescape(path)
- if err != nil {
- return nil, err
- }
-
- // Set the encoded path data
- u.RawPath = c.baseURL.Path + path
- u.Path = c.baseURL.Path + unescaped
-
- // Create a request specific headers map.
- reqHeaders := make(http.Header)
- reqHeaders.Set("Accept", "application/json")
-
- if c.UserAgent != "" {
- reqHeaders.Set("User-Agent", c.UserAgent)
- }
-
- var body interface{}
- switch {
- case method == http.MethodPost || method == http.MethodPut:
- reqHeaders.Set("Content-Type", "application/json")
-
- if opt != nil {
- body, err = json.Marshal(opt)
- if err != nil {
- return nil, err
- }
- }
- case opt != nil:
- q, err := query.Values(opt)
- if err != nil {
- return nil, err
- }
- u.RawQuery = q.Encode()
- }
-
- req, err := retryablehttp.NewRequest(method, u.String(), body)
- if err != nil {
- return nil, err
- }
-
- for _, fn := range options {
- if fn == nil {
- continue
- }
- if err := fn(req); err != nil {
- return nil, err
- }
- }
-
- // Set the request specific headers.
- for k, v := range reqHeaders {
- req.Header[k] = v
- }
-
- return req, nil
-}
-
-// 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 Response struct {
- *http.Response
-
- // These fields provide the page values for paginating through a set of
- // results. Any or all of these may be set to the zero value for
- // responses that are not part of a paginated set, or for which there
- // are no additional pages.
- TotalItems int
- TotalPages int
- ItemsPerPage int
- CurrentPage int
- NextPage int
- PreviousPage int
-}
-
-// newResponse creates a new Response for the provided http.Response.
-func newResponse(r *http.Response) *Response {
- response := &Response{Response: r}
- response.populatePageValues()
- return response
-}
-
-const (
- xTotal = "X-Total"
- xTotalPages = "X-Total-Pages"
- xPerPage = "X-Per-Page"
- xPage = "X-Page"
- xNextPage = "X-Next-Page"
- xPrevPage = "X-Prev-Page"
-)
-
-// populatePageValues parses the HTTP Link response headers and populates the
-// various pagination link values in the Response.
-func (r *Response) populatePageValues() {
- if totalItems := r.Response.Header.Get(xTotal); totalItems != "" {
- r.TotalItems, _ = strconv.Atoi(totalItems)
- }
- if totalPages := r.Response.Header.Get(xTotalPages); totalPages != "" {
- r.TotalPages, _ = strconv.Atoi(totalPages)
- }
- if itemsPerPage := r.Response.Header.Get(xPerPage); itemsPerPage != "" {
- r.ItemsPerPage, _ = strconv.Atoi(itemsPerPage)
- }
- if currentPage := r.Response.Header.Get(xPage); currentPage != "" {
- r.CurrentPage, _ = strconv.Atoi(currentPage)
- }
- if nextPage := r.Response.Header.Get(xNextPage); nextPage != "" {
- r.NextPage, _ = strconv.Atoi(nextPage)
- }
- if previousPage := r.Response.Header.Get(xPrevPage); previousPage != "" {
- r.PreviousPage, _ = strconv.Atoi(previousPage)
- }
-}
-
-// Do sends an API request and returns the API response. The API response is
-// JSON decoded and stored in the value pointed to by v, or returned as an
-// error if an API error has occurred. If v implements the io.Writer
-// interface, the raw response body will be written to v, without attempting to
-// first decode it.
-func (c *Client) Do(req *retryablehttp.Request, v interface{}) (*Response, error) {
- // If not yet configured, try to configure the rate limiter. Fail
- // silently as the limiter will be disabled in case of an error.
- c.configureLimiterOnce.Do(func() { c.configureLimiter(req.Context()) })
-
- // Wait will block until the limiter can obtain a new token.
- err := c.limiter.Wait(req.Context())
- if err != nil {
- return nil, err
- }
-
- // Set the correct authentication header. If using basic auth, then check
- // if we already have a token and if not first authenticate and get one.
- var basicAuthToken string
- switch c.authType {
- case basicAuth:
- c.tokenLock.RLock()
- basicAuthToken = c.token
- c.tokenLock.RUnlock()
- if basicAuthToken == "" {
- // If we don't have a token yet, we first need to request one.
- basicAuthToken, err = c.requestOAuthToken(req.Context(), basicAuthToken)
- if err != nil {
- return nil, err
- }
- }
- req.Header.Set("Authorization", "Bearer "+basicAuthToken)
- case oAuthToken:
- req.Header.Set("Authorization", "Bearer "+c.token)
- case privateToken:
- req.Header.Set("PRIVATE-TOKEN", c.token)
- }
-
- resp, err := c.client.Do(req)
- if err != nil {
- return nil, err
- }
-
- if resp.StatusCode == http.StatusUnauthorized && c.authType == basicAuth {
- resp.Body.Close()
- // The token most likely expired, so we need to request a new one and try again.
- if _, err := c.requestOAuthToken(req.Context(), basicAuthToken); err != nil {
- return nil, err
- }
- return c.Do(req, v)
- }
- defer resp.Body.Close()
-
- response := newResponse(resp)
-
- err = CheckResponse(resp)
- if err != nil {
- // Even though there was an error, we still return the response
- // in case the caller wants to inspect it further.
- return response, err
- }
-
- if v != nil {
- if w, ok := v.(io.Writer); ok {
- _, err = io.Copy(w, resp.Body)
- } else {
- err = json.NewDecoder(resp.Body).Decode(v)
- }
- }
-
- return response, err
-}
-
-func (c *Client) requestOAuthToken(ctx context.Context, token string) (string, error) {
- c.tokenLock.Lock()
- defer c.tokenLock.Unlock()
-
- // Return early if the token was updated while waiting for the lock.
- if c.token != token {
- return c.token, nil
- }
-
- config := &oauth2.Config{
- Endpoint: oauth2.Endpoint{
- AuthURL: strings.TrimSuffix(c.baseURL.String(), apiVersionPath) + "oauth/authorize",
- TokenURL: strings.TrimSuffix(c.baseURL.String(), apiVersionPath) + "oauth/token",
- },
- }
-
- ctx = context.WithValue(ctx, oauth2.HTTPClient, c.client.HTTPClient)
- t, err := config.PasswordCredentialsToken(ctx, c.username, c.password)
- if err != nil {
- return "", err
- }
- c.token = t.AccessToken
-
- return c.token, nil
-}
-
-// Helper function to accept and format both the project ID or name as project
-// identifier for all API calls.
-func parseID(id interface{}) (string, error) {
- switch v := id.(type) {
- case int:
- return strconv.Itoa(v), nil
- case string:
- return v, nil
- default:
- return "", fmt.Errorf("invalid ID type %#v, the ID must be an int or a string", id)
- }
-}
-
-// Helper function to escape a project identifier.
-func pathEscape(s string) string {
- return strings.Replace(url.PathEscape(s), ".", "%2E", -1)
-}
-
-// An ErrorResponse reports one or more errors caused by an API request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/README.html#data-validation-and-error-reporting
-type ErrorResponse struct {
- Body []byte
- Response *http.Response
- Message string
-}
-
-func (e *ErrorResponse) Error() string {
- path, _ := url.QueryUnescape(e.Response.Request.URL.Path)
- u := fmt.Sprintf("%s://%s%s", e.Response.Request.URL.Scheme, e.Response.Request.URL.Host, path)
- return fmt.Sprintf("%s %s: %d %s", e.Response.Request.Method, u, e.Response.StatusCode, e.Message)
-}
-
-// CheckResponse checks the API response for errors, and returns them if present.
-func CheckResponse(r *http.Response) error {
- switch r.StatusCode {
- case 200, 201, 202, 204, 304:
- return nil
- }
-
- errorResponse := &ErrorResponse{Response: r}
- data, err := ioutil.ReadAll(r.Body)
- if err == nil && data != nil {
- errorResponse.Body = data
-
- var raw interface{}
- if err := json.Unmarshal(data, &raw); err != nil {
- errorResponse.Message = "failed to parse unknown error format"
- } else {
- errorResponse.Message = parseError(raw)
- }
- }
-
- return errorResponse
-}
-
-// Format:
-// {
-// "message": {
-// "<property-name>": [
-// "<error-message>",
-// "<error-message>",
-// ...
-// ],
-// "<embed-entity>": {
-// "<property-name>": [
-// "<error-message>",
-// "<error-message>",
-// ...
-// ],
-// }
-// },
-// "error": "<error-message>"
-// }
-func parseError(raw interface{}) string {
- switch raw := raw.(type) {
- case string:
- return raw
-
- case []interface{}:
- var errs []string
- for _, v := range raw {
- errs = append(errs, parseError(v))
- }
- return fmt.Sprintf("[%s]", strings.Join(errs, ", "))
-
- case map[string]interface{}:
- var errs []string
- for k, v := range raw {
- errs = append(errs, fmt.Sprintf("{%s: %s}", k, parseError(v)))
- }
- sort.Strings(errs)
- return strings.Join(errs, ", ")
-
- default:
- return fmt.Sprintf("failed to parse unexpected error type: %T", raw)
- }
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/go.mod b/vendor/github.com/xanzy/go-gitlab/go.mod
deleted file mode 100644
index e363c27377..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/go.mod
+++ /dev/null
@@ -1,15 +0,0 @@
-module github.com/xanzy/go-gitlab
-
-require (
- github.com/google/go-querystring v1.0.0
- 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-20201021035429-f5854403a974 // indirect
- golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288
- 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
-)
-
-go 1.13
diff --git a/vendor/github.com/xanzy/go-gitlab/go.sum b/vendor/github.com/xanzy/go-gitlab/go.sum
deleted file mode 100644
index 671236d704..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/go.sum
+++ /dev/null
@@ -1,43 +0,0 @@
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
-github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
-github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
-github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
-github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI=
-github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
-github.com/hashicorp/go-retryablehttp v0.6.8 h1:92lWxgpa+fF3FozM4B3UZtHZMJX8T5XT+TFdCxsPyWs=
-github.com/hashicorp/go-retryablehttp v0.6.8/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-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-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-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=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/vendor/github.com/xanzy/go-gitlab/group_badges.go b/vendor/github.com/xanzy/go-gitlab/group_badges.go
deleted file mode 100644
index 9649991482..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_badges.go
+++ /dev/null
@@ -1,230 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// GroupBadgesService handles communication with the group badges
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html
-type GroupBadgesService struct {
- client *Client
-}
-
-// BadgeKind represents a GitLab Badge Kind
-type BadgeKind string
-
-// all possible values Badge Kind
-const (
- ProjectBadgeKind BadgeKind = "project"
- GroupBadgeKind BadgeKind = "group"
-)
-
-// GroupBadge represents a group badge.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html
-type GroupBadge struct {
- ID int `json:"id"`
- 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"`
-}
-
-// ListGroupBadgesOptions represents the available ListGroupBadges() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html#list-all-badges-of-a-group
-type ListGroupBadgesOptions ListOptions
-
-// ListGroupBadges gets a list of a group badges.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html#list-all-badges-of-a-group
-func (s *GroupBadgesService) ListGroupBadges(gid interface{}, opt *ListGroupBadgesOptions, options ...RequestOptionFunc) ([]*GroupBadge, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/badges", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var gb []*GroupBadge
- resp, err := s.client.Do(req, &gb)
- if err != nil {
- return nil, resp, err
- }
-
- return gb, resp, err
-}
-
-// GetGroupBadge gets a group badge.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html#get-a-badge-of-a-group
-func (s *GroupBadgesService) GetGroupBadge(gid interface{}, badge int, options ...RequestOptionFunc) (*GroupBadge, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/badges/%d", pathEscape(group), badge)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- gb := new(GroupBadge)
- resp, err := s.client.Do(req, gb)
- if err != nil {
- return nil, resp, err
- }
-
- return gb, resp, err
-}
-
-// AddGroupBadgeOptions represents the available AddGroupBadge() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html#add-a-badge-to-a-group
-type AddGroupBadgeOptions struct {
- LinkURL *string `url:"link_url,omitempty" json:"link_url,omitempty"`
- ImageURL *string `url:"image_url,omitempty" json:"image_url,omitempty"`
-}
-
-// AddGroupBadge adds a badge to a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html#add-a-badge-to-a-group
-func (s *GroupBadgesService) AddGroupBadge(gid interface{}, opt *AddGroupBadgeOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/badges", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gb := new(GroupBadge)
- resp, err := s.client.Do(req, gb)
- if err != nil {
- return nil, resp, err
- }
-
- return gb, resp, err
-}
-
-// EditGroupBadgeOptions represents the available EditGroupBadge() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html#edit-a-badge-of-a-group
-type EditGroupBadgeOptions struct {
- LinkURL *string `url:"link_url,omitempty" json:"link_url,omitempty"`
- ImageURL *string `url:"image_url,omitempty" json:"image_url,omitempty"`
-}
-
-// EditGroupBadge updates a badge of a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html#edit-a-badge-of-a-group
-func (s *GroupBadgesService) EditGroupBadge(gid interface{}, badge int, opt *EditGroupBadgeOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/badges/%d", pathEscape(group), badge)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gb := new(GroupBadge)
- resp, err := s.client.Do(req, gb)
- if err != nil {
- return nil, resp, err
- }
-
- return gb, resp, err
-}
-
-// DeleteGroupBadge removes a badge from a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html#remove-a-badge-from-a-group
-func (s *GroupBadgesService) DeleteGroupBadge(gid interface{}, badge int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/badges/%d", pathEscape(group), badge)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// GroupBadgePreviewOptions represents the available PreviewGroupBadge() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_badges.html#preview-a-badge-from-a-group
-type GroupBadgePreviewOptions struct {
- LinkURL *string `url:"link_url,omitempty" json:"link_url,omitempty"`
- ImageURL *string `url:"image_url,omitempty" json:"image_url,omitempty"`
-}
-
-// 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/ee/api/group_badges.html#preview-a-badge-from-a-group
-func (s *GroupBadgesService) PreviewGroupBadge(gid interface{}, opt *GroupBadgePreviewOptions, options ...RequestOptionFunc) (*GroupBadge, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/badges/render", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gb := new(GroupBadge)
- resp, err := s.client.Do(req, &gb)
- if err != nil {
- return nil, resp, err
- }
-
- return gb, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/group_boards.go b/vendor/github.com/xanzy/go-gitlab/group_boards.go
deleted file mode 100644
index 04bf2ceb55..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_boards.go
+++ /dev/null
@@ -1,352 +0,0 @@
-//
-// Copyright 2021, Patrick Webster
-//
-// 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"
-)
-
-// GroupIssueBoardsService handles communication with the group issue board
-// related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html
-type GroupIssueBoardsService struct {
- client *Client
-}
-
-// GroupIssueBoard represents a GitLab group issue board.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html
-type GroupIssueBoard struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Group *Group `json:"group"`
- Milestone *Milestone `json:"milestone"`
- Lists []*BoardList `json:"lists"`
-}
-
-func (b GroupIssueBoard) String() string {
- return Stringify(b)
-}
-
-// ListGroupIssueBoardsOptions represents the available
-// ListGroupIssueBoards() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#group-board
-type ListGroupIssueBoardsOptions ListOptions
-
-// ListGroupIssueBoards gets a list of all issue boards in a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#group-board
-func (s *GroupIssueBoardsService) ListGroupIssueBoards(gid interface{}, opt *ListGroupIssueBoardsOptions, options ...RequestOptionFunc) ([]*GroupIssueBoard, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/boards", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var gs []*GroupIssueBoard
- resp, err := s.client.Do(req, &gs)
- if err != nil {
- return nil, resp, err
- }
-
- return gs, resp, err
-}
-
-// CreateGroupIssueBoardOptions represents the available
-// CreateGroupIssueBoard() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#create-a-group-issue-board-premium
-type CreateGroupIssueBoardOptions struct {
- Name *string `url:"name" json:"name"`
-}
-
-// CreateGroupIssueBoard creates a new issue board.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#create-a-group-issue-board-premium
-func (s *GroupIssueBoardsService) CreateGroupIssueBoard(gid interface{}, opt *CreateGroupIssueBoardOptions, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/boards", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gib := new(GroupIssueBoard)
- resp, err := s.client.Do(req, gib)
- if err != nil {
- return nil, resp, err
- }
-
- return gib, resp, err
-}
-
-// GetGroupIssueBoard gets a single issue board of a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#single-board
-func (s *GroupIssueBoardsService) GetGroupIssueBoard(gid interface{}, board int, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/boards/%d", pathEscape(group), board)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- gib := new(GroupIssueBoard)
- resp, err := s.client.Do(req, gib)
- if err != nil {
- return nil, resp, err
- }
-
- return gib, resp, err
-}
-
-// UpdateGroupIssueBoardOptions represents a group issue board.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#update-a-group-issue-board-premium
-type UpdateGroupIssueBoardOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- MilestoneID *int `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
- Labels Labels `url:"labels,omitempty" json:"labels,omitempty"`
- Weight *int `url:"weight,omitempty" json:"weight,omitempty"`
-}
-
-// UpdateIssueBoard updates a single issue board of a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#update-a-group-issue-board-premium
-func (s *GroupIssueBoardsService) UpdateIssueBoard(gid interface{}, board int, opt *UpdateGroupIssueBoardOptions, options ...RequestOptionFunc) (*GroupIssueBoard, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/boards/%d", pathEscape(group), board)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gib := new(GroupIssueBoard)
- resp, err := s.client.Do(req, gib)
- if err != nil {
- return nil, resp, err
- }
-
- return gib, resp, err
-}
-
-// DeleteIssueBoard delete a single issue board of a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#delete-a-group-issue-board-premium
-func (s *GroupIssueBoardsService) DeleteIssueBoard(gid interface{}, board int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/boards/%d", pathEscape(group), board)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListGroupIssueBoardListsOptions represents the available
-// ListGroupIssueBoardLists() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#list-board-lists
-type ListGroupIssueBoardListsOptions ListOptions
-
-// ListGroupIssueBoardLists gets a list of the issue board's lists. Does not include
-// backlog and closed lists.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/group_boards.html#list-board-lists
-func (s *GroupIssueBoardsService) ListGroupIssueBoardLists(gid interface{}, board int, opt *ListGroupIssueBoardListsOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/boards/%d/lists", pathEscape(group), board)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var gbl []*BoardList
- resp, err := s.client.Do(req, &gbl)
- if err != nil {
- return nil, resp, err
- }
-
- return gbl, resp, err
-}
-
-// GetGroupIssueBoardList gets a single issue board list.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#single-board-list
-func (s *GroupIssueBoardsService) GetGroupIssueBoardList(gid interface{}, board, list int, options ...RequestOptionFunc) (*BoardList, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/boards/%d/lists/%d",
- pathEscape(group),
- board,
- list,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- gbl := new(BoardList)
- resp, err := s.client.Do(req, gbl)
- if err != nil {
- return nil, resp, err
- }
-
- return gbl, resp, err
-}
-
-// CreateGroupIssueBoardListOptions represents the available
-// CreateGroupIssueBoardList() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#new-board-list
-type CreateGroupIssueBoardListOptions struct {
- LabelID *int `url:"label_id" json:"label_id"`
-}
-
-// CreateGroupIssueBoardList creates a new issue board list.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#new-board-list
-func (s *GroupIssueBoardsService) CreateGroupIssueBoardList(gid interface{}, board int, opt *CreateGroupIssueBoardListOptions, options ...RequestOptionFunc) (*BoardList, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/boards/%d/lists", pathEscape(group), board)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gbl := new(BoardList)
- resp, err := s.client.Do(req, gbl)
- if err != nil {
- return nil, resp, err
- }
-
- return gbl, resp, err
-}
-
-// UpdateGroupIssueBoardListOptions represents the available
-// UpdateGroupIssueBoardList() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#edit-board-list
-type UpdateGroupIssueBoardListOptions struct {
- Position *int `url:"position" json:"position"`
-}
-
-// UpdateIssueBoardList updates the position of an existing
-// group issue board list.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#edit-board-list
-func (s *GroupIssueBoardsService) UpdateIssueBoardList(gid interface{}, board, list int, opt *UpdateGroupIssueBoardListOptions, options ...RequestOptionFunc) ([]*BoardList, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/boards/%d/lists/%d",
- pathEscape(group),
- board,
- list,
- )
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var gbl []*BoardList
- resp, err := s.client.Do(req, gbl)
- if err != nil {
- return nil, resp, err
- }
-
- return gbl, resp, err
-}
-
-// DeleteGroupIssueBoardList soft deletes a group issue board list.
-// Only for admins and group owners.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_boards.html#delete-a-board-list
-func (s *GroupIssueBoardsService) DeleteGroupIssueBoardList(gid interface{}, board, list int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/boards/%d/lists/%d",
- pathEscape(group),
- board,
- list,
- )
-
- 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/group_clusters.go b/vendor/github.com/xanzy/go-gitlab/group_clusters.go
deleted file mode 100644
index c0e905aa17..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_clusters.go
+++ /dev/null
@@ -1,215 +0,0 @@
-//
-// Copyright 2021, Paul Shoemaker
-//
-// 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"
- "time"
-)
-
-// GroupClustersService handles communication with the
-// group clusters related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_clusters.html
-type GroupClustersService struct {
- client *Client
-}
-
-// GroupCluster represents a GitLab Group Cluster.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/group_clusters.html
-type GroupCluster struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Domain string `json:"domain"`
- CreatedAt *time.Time `json:"created_at"`
- ProviderType string `json:"provider_type"`
- PlatformType string `json:"platform_type"`
- EnvironmentScope string `json:"environment_scope"`
- ClusterType string `json:"cluster_type"`
- User *User `json:"user"`
- PlatformKubernetes *PlatformKubernetes `json:"platform_kubernetes"`
- ManagementProject *ManagementProject `json:"management_project"`
- Group *Group `json:"group"`
-}
-
-func (v GroupCluster) String() string {
- return Stringify(v)
-}
-
-// ListClusters gets a list of all clusters in a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_clusters.html#list-group-clusters
-func (s *GroupClustersService) ListClusters(pid interface{}, options ...RequestOptionFunc) ([]*GroupCluster, *Response, error) {
- group, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/clusters", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pcs []*GroupCluster
- resp, err := s.client.Do(req, &pcs)
- if err != nil {
- return nil, resp, err
- }
-
- return pcs, resp, err
-}
-
-// GetCluster gets a cluster.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_clusters.html#get-a-single-group-cluster
-func (s *GroupClustersService) GetCluster(pid interface{}, cluster int, options ...RequestOptionFunc) (*GroupCluster, *Response, error) {
- group, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/clusters/%d", pathEscape(group), cluster)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- gc := new(GroupCluster)
- resp, err := s.client.Do(req, &gc)
- if err != nil {
- return nil, resp, err
- }
-
- return gc, resp, err
-}
-
-// AddGroupClusterOptions represents the available AddCluster() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_clusters.html#add-existing-cluster-to-group
-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"`
-}
-
-// AddGroupPlatformKubernetesOptions represents the available PlatformKubernetes options for adding.
-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"`
-}
-
-// AddCluster adds an existing cluster to the group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_clusters.html#add-existing-cluster-to-group
-func (s *GroupClustersService) AddCluster(pid interface{}, opt *AddGroupClusterOptions, options ...RequestOptionFunc) (*GroupCluster, *Response, error) {
- group, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/clusters/user", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gc := new(GroupCluster)
- resp, err := s.client.Do(req, gc)
- if err != nil {
- return nil, resp, err
- }
-
- return gc, resp, err
-}
-
-// EditGroupClusterOptions represents the available EditCluster() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_clusters.html#edit-group-cluster
-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"`
-}
-
-// EditGroupPlatformKubernetesOptions represents the available PlatformKubernetes options for editing.
-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"`
-}
-
-// EditCluster updates an existing group cluster.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_clusters.html#edit-group-cluster
-func (s *GroupClustersService) EditCluster(pid interface{}, cluster int, opt *EditGroupClusterOptions, options ...RequestOptionFunc) (*GroupCluster, *Response, error) {
- group, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/clusters/%d", pathEscape(group), cluster)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gc := new(GroupCluster)
- resp, err := s.client.Do(req, gc)
- if err != nil {
- return nil, resp, err
- }
-
- return gc, resp, err
-}
-
-// DeleteCluster deletes an existing group cluster.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_clusters.html#delete-group-cluster
-func (s *GroupClustersService) DeleteCluster(pid interface{}, cluster int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/clusters/%d", pathEscape(group), cluster)
-
- 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/group_hooks.go b/vendor/github.com/xanzy/go-gitlab/group_hooks.go
deleted file mode 100644
index 2f03c717d4..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_hooks.go
+++ /dev/null
@@ -1,206 +0,0 @@
-//
-// Copyright 2021, Eric Stevens
-//
-// 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"
- "time"
-)
-
-// GroupHook represents a GitLab group hook.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#list-group-hooks
-type GroupHook struct {
- ID int `json:"id"`
- URL string `json:"url"`
- GroupID int `json:"group_id"`
- PushEvents bool `json:"push_events"`
- IssuesEvents bool `json:"issues_events"`
- ConfidentialIssuesEvents bool `json:"confidential_issues_events"`
- ConfidentialNoteEvents bool `json:"confidential_note_events"`
- MergeRequestsEvents bool `json:"merge_requests_events"`
- TagPushEvents bool `json:"tag_push_events"`
- NoteEvents bool `json:"note_events"`
- JobEvents bool `json:"job_events"`
- PipelineEvents bool `json:"pipeline_events"`
- WikiPageEvents bool `json:"wiki_page_events"`
- DeploymentEvents bool `json:"deployment_events"`
- ReleasesEvents bool `json:"releases_events"`
- EnableSSLVerification bool `json:"enable_ssl_verification"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-// ListGroupHooks gets a list of group hooks.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#list-group-hooks
-func (s *GroupsService) ListGroupHooks(gid interface{}) ([]*GroupHook, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/hooks", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, nil)
- if err != nil {
- return nil, nil, err
- }
- var gh []*GroupHook
- resp, err := s.client.Do(req, &gh)
- if err != nil {
- return nil, resp, err
- }
-
- return gh, resp, err
-}
-
-// GetGroupHook gets a specific hook for a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#get-group-hook
-func (s *GroupsService) GetGroupHook(pid interface{}, hook int, options ...RequestOptionFunc) (*GroupHook, *Response, error) {
- group, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/hooks/%d", pathEscape(group), hook)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- gh := new(GroupHook)
- resp, err := s.client.Do(req, gh)
- if err != nil {
- return nil, resp, err
- }
-
- return gh, resp, err
-}
-
-// AddGroupHookOptions represents the available AddGroupHook() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/groups.html#add-group-hook
-type AddGroupHookOptions struct {
- URL *string `url:"url,omitempty" json:"url,omitempty"`
- PushEvents *bool `url:"push_events,omitempty" json:"push_events,omitempty"`
- IssuesEvents *bool `url:"issues_events,omitempty" json:"issues_events,omitempty"`
- ConfidentialIssuesEvents *bool `url:"confidential_issues_events,omitempty" json:"confidential_issues_events,omitempty"`
- ConfidentialNoteEvents *bool `url:"confidential_note_events,omitempty" json:"confidential_note_events,omitempty"`
- MergeRequestsEvents *bool `url:"merge_requests_events,omitempty" json:"merge_requests_events,omitempty"`
- TagPushEvents *bool `url:"tag_push_events,omitempty" json:"tag_push_events,omitempty"`
- NoteEvents *bool `url:"note_events,omitempty" json:"note_events,omitempty"`
- JobEvents *bool `url:"job_events,omitempty" json:"job_events,omitempty"`
- PipelineEvents *bool `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
- WikiPageEvents *bool `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
- DeploymentEvents *bool `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
- ReleasesEvents *bool `url:"releases_events,omitempty" json:"releases_events,omitempty"`
- EnableSSLVerification *bool `url:"enable_ssl_verification,omitempty" json:"enable_ssl_verification,omitempty"`
- Token *string `url:"token,omitempty" json:"token,omitempty"`
-}
-
-// AddGroupHook create a new group scoped webhook.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/groups.html#add-group-hook
-func (s *GroupsService) AddGroupHook(gid interface{}, opt *AddGroupHookOptions, options ...RequestOptionFunc) (*GroupHook, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/hooks", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gh := new(GroupHook)
- resp, err := s.client.Do(req, gh)
- if err != nil {
- return nil, resp, err
- }
-
- return gh, resp, err
-}
-
-// EditGroupHookOptions represents the available EditGroupHook() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#edit-group-hook
-type EditGroupHookOptions struct {
- URL *string `url:"url,omitempty" json:"url,omitempty"`
- PushEvents *bool `url:"push_events,omitempty" json:"push_events,omitempty"`
- IssuesEvents *bool `url:"issues_events,omitempty" json:"issues_events,omitempty"`
- ConfidentialIssuesEvents *bool `url:"confidential_issues_events,omitempty" json:"confidential_issues_events,omitempty"`
- ConfidentialNoteEvents *bool `url:"confidential_note_events,omitempty" json:"confidential_note_events,omitempty"`
- MergeRequestsEvents *bool `url:"merge_requests_events,omitempty" json:"merge_requests_events,omitempty"`
- TagPushEvents *bool `url:"tag_push_events,omitempty" json:"tag_push_events,omitempty"`
- NoteEvents *bool `url:"note_events,omitempty" json:"note_events,omitempty"`
- JobEvents *bool `url:"job_events,omitempty" json:"job_events,omitempty"`
- PipelineEvents *bool `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
- WikiPageEvents *bool `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
- DeploymentEvents *bool `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
- ReleasesEvents *bool `url:"releases_events,omitempty" json:"releases_events,omitempty"`
- EnableSSLVerification *bool `url:"enable_ssl_verification,omitempty" json:"enable_ssl_verification,omitempty"`
- Token *string `url:"token,omitempty" json:"token,omitempty"`
-}
-
-// EditGroupHook edits a hook for a specified group.
-//
-// Gitlab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#edit-group-hook
-func (s *GroupsService) EditGroupHook(pid interface{}, hook int, opt *EditGroupHookOptions, options ...RequestOptionFunc) (*GroupHook, *Response, error) {
- group, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/hooks/%d", pathEscape(group), hook)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gh := new(GroupHook)
- resp, err := s.client.Do(req, gh)
- if err != nil {
- return nil, resp, err
- }
-
- return gh, resp, err
-}
-
-// 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/ce/api/groups.html#delete-group-hook
-func (s *GroupsService) DeleteGroupHook(pid interface{}, hook int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/hooks/%d", pathEscape(group), hook)
-
- 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/group_import_export.go b/vendor/github.com/xanzy/go-gitlab/group_import_export.go
deleted file mode 100644
index c578805833..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_import_export.go
+++ /dev/null
@@ -1,180 +0,0 @@
-//
-// 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_labels.go b/vendor/github.com/xanzy/go-gitlab/group_labels.go
deleted file mode 100644
index e40b597df5..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_labels.go
+++ /dev/null
@@ -1,242 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// GroupLabelsService handles communication with the label related methods of the
-// GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/group_labels.html
-type GroupLabelsService struct {
- client *Client
-}
-
-// GroupLabel represents a GitLab group label.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/group_labels.html
-type GroupLabel Label
-
-func (l GroupLabel) String() string {
- return Stringify(l)
-}
-
-// ListGroupLabelsOptions represents the available ListGroupLabels() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#list-labels
-type ListGroupLabelsOptions ListOptions
-
-// ListGroupLabels gets all labels for given group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_labels.html#list-group-labels
-func (s *GroupLabelsService) ListGroupLabels(gid interface{}, opt *ListGroupLabelsOptions, options ...RequestOptionFunc) ([]*GroupLabel, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/labels", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var l []*GroupLabel
- resp, err := s.client.Do(req, &l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// GetGroupLabel get a single label for a given group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_labels.html#get-a-single-group-label
-func (s *GroupLabelsService) GetGroupLabel(gid interface{}, labelID interface{}, options ...RequestOptionFunc) (*GroupLabel, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- label, err := parseID(labelID)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/labels/%s", pathEscape(group), label)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var l *GroupLabel
- resp, err := s.client.Do(req, &l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// CreateGroupLabelOptions represents the available CreateGroupLabel() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_labels.html#create-a-new-group-label
-type CreateGroupLabelOptions CreateLabelOptions
-
-// CreateGroupLabel creates a new label for given group with given name and
-// color.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_labels.html#create-a-new-group-label
-func (s *GroupLabelsService) CreateGroupLabel(gid interface{}, opt *CreateGroupLabelOptions, options ...RequestOptionFunc) (*GroupLabel, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/labels", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(GroupLabel)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// DeleteGroupLabelOptions represents the available DeleteGroupLabel() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_labels.html#delete-a-group-label
-type DeleteGroupLabelOptions DeleteLabelOptions
-
-// DeleteGroupLabel deletes a group label given by its name.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#delete-a-label
-func (s *GroupLabelsService) DeleteGroupLabel(gid interface{}, opt *DeleteGroupLabelOptions, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/labels", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// UpdateGroupLabelOptions represents the available UpdateGroupLabel() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_labels.html#update-a-group-label
-type UpdateGroupLabelOptions UpdateLabelOptions
-
-// 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/ce/api/group_labels.html#update-a-group-label
-func (s *GroupLabelsService) UpdateGroupLabel(gid interface{}, opt *UpdateGroupLabelOptions, options ...RequestOptionFunc) (*GroupLabel, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/labels", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(GroupLabel)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// 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/ce/api/group_labels.html#subscribe-to-a-group-label
-func (s *GroupLabelsService) SubscribeToGroupLabel(gid interface{}, labelID interface{}, options ...RequestOptionFunc) (*GroupLabel, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- label, err := parseID(labelID)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/labels/%s/subscribe", pathEscape(group), label)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(GroupLabel)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// 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/ce/api/group_labels.html#unsubscribe-from-a-group-label
-func (s *GroupLabelsService) UnsubscribeFromGroupLabel(gid interface{}, labelID interface{}, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- label, err := parseID(labelID)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/labels/%s/unsubscribe", pathEscape(group), label)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/group_members.go b/vendor/github.com/xanzy/go-gitlab/group_members.go
deleted file mode 100644
index 7f0e2dc8e7..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_members.go
+++ /dev/null
@@ -1,347 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// GroupMembersService handles communication with the group members
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/members.html
-type GroupMembersService struct {
- client *Client
-}
-
-// GroupMemberSAMLIdentity represents the SAML Identity link for the group member.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/members.html#list-all-members-of-a-group-or-project
-// Gitlab MR for API change: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20357
-// Gitlab MR for API Doc change: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/25652
-type GroupMemberSAMLIdentity struct {
- ExternUID string `json:"extern_uid"`
- Provider string `json:"provider"`
- SAMLProviderID int `json:"saml_provider_id"`
-}
-
-// GroupMember represents a GitLab group member.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/members.html
-type GroupMember struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Name string `json:"name"`
- State string `json:"state"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- CreatedAt *time.Time `json:"created_at"`
- ExpiresAt *time.Time `json:"expires_at"`
- AccessLevel AccessLevelValue `json:"access_level"`
- GroupSAMLIdentity *GroupMemberSAMLIdentity `json:"group_saml_identity"`
-}
-
-// ListGroupMembersOptions represents the available ListGroupMembers() and
-// ListAllGroupMembers() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#list-all-members-of-a-group-or-project
-type ListGroupMembersOptions struct {
- ListOptions
- Query *string `url:"query,omitempty" json:"query,omitempty"`
-}
-
-// 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/ce/api/members.html#list-all-members-of-a-group-or-project
-func (s *GroupsService) ListGroupMembers(gid interface{}, opt *ListGroupMembersOptions, options ...RequestOptionFunc) ([]*GroupMember, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/members", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var gm []*GroupMember
- resp, err := s.client.Do(req, &gm)
- if err != nil {
- return nil, resp, err
- }
-
- return gm, resp, err
-}
-
-// 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/ce/api/members.html#list-all-members-of-a-group-or-project-including-inherited-members
-func (s *GroupsService) ListAllGroupMembers(gid interface{}, opt *ListGroupMembersOptions, options ...RequestOptionFunc) ([]*GroupMember, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/members/all", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var gm []*GroupMember
- resp, err := s.client.Do(req, &gm)
- if err != nil {
- return nil, resp, err
- }
-
- return gm, resp, err
-}
-
-// AddGroupMemberOptions represents the available AddGroupMember() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#add-a-member-to-a-group-or-project
-type AddGroupMemberOptions struct {
- UserID *int `url:"user_id,omitempty" json:"user_id,omitempty"`
- AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
- ExpiresAt *string `url:"expires_at,omitempty" json:"expires_at"`
-}
-
-// GetGroupMember gets a member of a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#get-a-member-of-a-group-or-project
-func (s *GroupMembersService) GetGroupMember(gid interface{}, user int, options ...RequestOptionFunc) (*GroupMember, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/members/%d", pathEscape(group), user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- gm := new(GroupMember)
- resp, err := s.client.Do(req, gm)
- if err != nil {
- return nil, resp, err
- }
-
- return gm, resp, err
-}
-
-// BillableGroupMember represents a GitLab billable group member.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/members.html#list-all-billable-members-of-a-group
-type BillableGroupMember struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Name string `json:"name"`
- State string `json:"state"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- Email string `json:"email"`
- LastActivityOn ISOTime `json:"last_activity_on"`
-}
-
-// ListBillableGroupMembersOptions represents the available ListBillableGroupMembers() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/members.html#list-all-billable-members-of-a-group
-type ListBillableGroupMembersOptions struct {
- ListOptions
- Search *string `url:"search,omitempty" json:"search,omitempty"`
- Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
-}
-
-// 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/ee/api/members.html#list-all-billable-members-of-a-group
-func (s *GroupsService) ListBillableGroupMembers(gid interface{}, opt *ListBillableGroupMembersOptions, options ...RequestOptionFunc) ([]*BillableGroupMember, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/billable_members", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var bgm []*BillableGroupMember
- resp, err := s.client.Do(req, &bgm)
- if err != nil {
- return nil, resp, err
- }
-
- return bgm, resp, err
-}
-
-// RemoveBillableGroupMember removes a given group members that count as billable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/members.html#remove-a-billable-member-from-a-group
-func (s *GroupsService) RemoveBillableGroupMember(gid interface{}, user int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/billable_members/%d", pathEscape(group), user)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// AddGroupMember adds a user to the list of group members.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#add-a-member-to-a-group-or-project
-func (s *GroupMembersService) AddGroupMember(gid interface{}, opt *AddGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/members", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gm := new(GroupMember)
- resp, err := s.client.Do(req, gm)
- if err != nil {
- return nil, resp, err
- }
-
- return gm, resp, err
-}
-
-// ShareWithGroup shares a group with the group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#share-groups-with-groups
-func (s *GroupMembersService) ShareWithGroup(gid interface{}, opt *ShareWithGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/share", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- g := new(Group)
- resp, err := s.client.Do(req, g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// DeleteShareWithGroup allows to unshare a group from a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#delete-link-sharing-group-with-another-group
-func (s *GroupMembersService) DeleteShareWithGroup(gid interface{}, groupID int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/share/%d", pathEscape(group), groupID)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// EditGroupMemberOptions represents the available EditGroupMember()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#edit-a-member-of-a-group-or-project
-type EditGroupMemberOptions struct {
- AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
- ExpiresAt *string `url:"expires_at,omitempty" json:"expires_at"`
-}
-
-// EditGroupMember updates a member of a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#edit-a-member-of-a-group-or-project
-func (s *GroupMembersService) EditGroupMember(gid interface{}, user int, opt *EditGroupMemberOptions, options ...RequestOptionFunc) (*GroupMember, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/members/%d", pathEscape(group), user)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gm := new(GroupMember)
- resp, err := s.client.Do(req, gm)
- if err != nil {
- return nil, resp, err
- }
-
- return gm, resp, err
-}
-
-// RemoveGroupMember removes user from user team.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#remove-a-member-from-a-group-or-project
-func (s *GroupMembersService) RemoveGroupMember(gid interface{}, user int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/members/%d", pathEscape(group), user)
-
- 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/group_milestones.go b/vendor/github.com/xanzy/go-gitlab/group_milestones.go
deleted file mode 100644
index 69cd997dbd..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_milestones.go
+++ /dev/null
@@ -1,296 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// GroupMilestonesService handles communication with the milestone related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/group_milestones.html
-type GroupMilestonesService struct {
- client *Client
-}
-
-// GroupMilestone represents a GitLab milestone.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/group_milestones.html
-type GroupMilestone struct {
- ID int `json:"id"`
- IID int `json:"iid"`
- GroupID int `json:"group_id"`
- Title string `json:"title"`
- Description string `json:"description"`
- StartDate *ISOTime `json:"start_date"`
- DueDate *ISOTime `json:"due_date"`
- State string `json:"state"`
- UpdatedAt *time.Time `json:"updated_at"`
- CreatedAt *time.Time `json:"created_at"`
- Expired *bool `json:"expired"`
-}
-
-func (m GroupMilestone) String() string {
- return Stringify(m)
-}
-
-// ListGroupMilestonesOptions represents the available
-// ListGroupMilestones() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#list-group-milestones
-type ListGroupMilestonesOptions struct {
- ListOptions
- IIDs []int `url:"iids[],omitempty" json:"iids,omitempty"`
- State *string `url:"state,omitempty" json:"state,omitempty"`
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- Search *string `url:"search,omitempty" json:"search,omitempty"`
- IncludeParentMilestones *bool `url:"include_parent_milestones,omitempty" json:"include_parent_milestones,omitempty"`
-}
-
-// ListGroupMilestones returns a list of group milestones.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#list-group-milestones
-func (s *GroupMilestonesService) ListGroupMilestones(gid interface{}, opt *ListGroupMilestonesOptions, options ...RequestOptionFunc) ([]*GroupMilestone, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/milestones", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var m []*GroupMilestone
- resp, err := s.client.Do(req, &m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// GetGroupMilestone gets a single group milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#get-single-milestone
-func (s *GroupMilestonesService) GetGroupMilestone(gid interface{}, milestone int, options ...RequestOptionFunc) (*GroupMilestone, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/milestones/%d", pathEscape(group), milestone)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(GroupMilestone)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// CreateGroupMilestoneOptions represents the available CreateGroupMilestone() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#create-new-milestone
-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"`
-}
-
-// CreateGroupMilestone creates a new group milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#create-new-milestone
-func (s *GroupMilestonesService) CreateGroupMilestone(gid interface{}, opt *CreateGroupMilestoneOptions, options ...RequestOptionFunc) (*GroupMilestone, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/milestones", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(GroupMilestone)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// UpdateGroupMilestoneOptions represents the available UpdateGroupMilestone() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#edit-milestone
-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"`
-}
-
-// UpdateGroupMilestone updates an existing group milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#edit-milestone
-func (s *GroupMilestonesService) UpdateGroupMilestone(gid interface{}, milestone int, opt *UpdateGroupMilestoneOptions, options ...RequestOptionFunc) (*GroupMilestone, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/milestones/%d", pathEscape(group), milestone)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(GroupMilestone)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// GetGroupMilestoneIssuesOptions represents the available GetGroupMilestoneIssues() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#get-all-issues-assigned-to-a-single-milestone
-type GetGroupMilestoneIssuesOptions ListOptions
-
-// GetGroupMilestoneIssues gets all issues assigned to a single group milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#get-all-issues-assigned-to-a-single-milestone
-func (s *GroupMilestonesService) GetGroupMilestoneIssues(gid interface{}, milestone int, opt *GetGroupMilestoneIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/milestones/%d/issues", pathEscape(group), milestone)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var i []*Issue
- resp, err := s.client.Do(req, &i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// GetGroupMilestoneMergeRequestsOptions represents the available
-// GetGroupMilestoneMergeRequests() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#get-all-merge-requests-assigned-to-a-single-milestone
-type GetGroupMilestoneMergeRequestsOptions ListOptions
-
-// GetGroupMilestoneMergeRequests gets all merge requests assigned to a
-// single group milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/group_milestones.html#get-all-merge-requests-assigned-to-a-single-milestone
-func (s *GroupMilestonesService) GetGroupMilestoneMergeRequests(gid interface{}, milestone int, opt *GetGroupMilestoneMergeRequestsOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/milestones/%d/merge_requests", pathEscape(group), milestone)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var mr []*MergeRequest
- resp, err := s.client.Do(req, &mr)
- if err != nil {
- return nil, resp, err
- }
-
- return mr, resp, err
-}
-
-// BurndownChartEvent reprensents a burnout chart event
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_milestones.html#get-all-burndown-chart-events-for-a-single-milestone-starter
-type BurndownChartEvent struct {
- CreatedAt *time.Time `json:"created_at"`
- Weight *int `json:"weight"`
- Action *string `json:"action"`
-}
-
-// GetGroupMilestoneBurndownChartEventsOptions represents the available
-// GetGroupMilestoneBurndownChartEventsOptions() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_milestones.html#get-all-burndown-chart-events-for-a-single-milestone-starter
-type GetGroupMilestoneBurndownChartEventsOptions ListOptions
-
-// GetGroupMilestoneBurndownChartEvents gets all merge requests assigned to a
-// single group milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_milestones.html#get-all-burndown-chart-events-for-a-single-milestone-starter
-func (s *GroupMilestonesService) GetGroupMilestoneBurndownChartEvents(gid interface{}, milestone int, opt *GetGroupMilestoneBurndownChartEventsOptions, options ...RequestOptionFunc) ([]*BurndownChartEvent, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/milestones/%d/burndown_events", pathEscape(group), milestone)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var be []*BurndownChartEvent
- resp, err := s.client.Do(req, &be)
- if err != nil {
- return nil, resp, err
- }
-
- return be, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/group_variables.go b/vendor/github.com/xanzy/go-gitlab/group_variables.go
deleted file mode 100644
index 4cf9714813..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_variables.go
+++ /dev/null
@@ -1,203 +0,0 @@
-//
-// Copyright 2021, Patrick Webster
-//
-// 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"
- "net/url"
-)
-
-// GroupVariablesService handles communication with the
-// group variables related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_level_variables.html
-type GroupVariablesService struct {
- client *Client
-}
-
-// GroupVariable represents a GitLab group Variable.
-//
-// 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"`
- EnvironmentScope string `json:"environment_scope"`
-}
-
-func (v GroupVariable) String() string {
- return Stringify(v)
-}
-
-// ListGroupVariablesOptions represents the available options for listing variables
-// for a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_level_variables.html#list-group-variables
-type ListGroupVariablesOptions ListOptions
-
-// ListVariables gets a list of all variables for a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_level_variables.html#list-group-variables
-func (s *GroupVariablesService) ListVariables(gid interface{}, opt *ListGroupVariablesOptions, options ...RequestOptionFunc) ([]*GroupVariable, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/variables", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var vs []*GroupVariable
- resp, err := s.client.Do(req, &vs)
- if err != nil {
- return nil, resp, err
- }
-
- return vs, resp, err
-}
-
-// GetVariable gets a variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_level_variables.html#show-variable-details
-func (s *GroupVariablesService) GetVariable(gid interface{}, key string, options ...RequestOptionFunc) (*GroupVariable, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/variables/%s", pathEscape(group), url.PathEscape(key))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(GroupVariable)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// CreateGroupVariableOptions represents the available CreateVariable()
-// 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"`
- EnvironmentScope *string `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
-}
-
-// CreateVariable creates a new group variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_level_variables.html#create-variable
-func (s *GroupVariablesService) CreateVariable(gid interface{}, opt *CreateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/variables", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(GroupVariable)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// UpdateGroupVariableOptions represents the available UpdateVariable()
-// options.
-//
-// 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"`
- EnvironmentScope *string `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
-}
-
-// UpdateVariable updates the position of an existing
-// group issue board list.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_level_variables.html#update-variable
-func (s *GroupVariablesService) UpdateVariable(gid interface{}, key string, opt *UpdateGroupVariableOptions, options ...RequestOptionFunc) (*GroupVariable, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/variables/%s", pathEscape(group), url.PathEscape(key))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(GroupVariable)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// RemoveVariable removes a group's variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_level_variables.html#remove-variable
-func (s *GroupVariablesService) RemoveVariable(gid interface{}, key string, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/variables/%s", pathEscape(group), url.PathEscape(key))
-
- 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/group_wikis.go b/vendor/github.com/xanzy/go-gitlab/group_wikis.go
deleted file mode 100644
index 74c9898e13..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/group_wikis.go
+++ /dev/null
@@ -1,194 +0,0 @@
-//
-// Copyright 2021, Markus Lackner
-//
-// 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"
- "net/url"
-)
-
-// GroupWikisService handles communication with the group wikis related methods of
-// the Gitlab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/group_wikis.html
-type GroupWikisService struct {
- client *Client
-}
-
-// GroupWiki represents a GitLab groups wiki.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/group_wikis.html
-type GroupWiki struct {
- Content string `json:"content"`
- Format WikiFormatValue `json:"format"`
- Slug string `json:"slug"`
- Title string `json:"title"`
-}
-
-func (w GroupWiki) String() string {
- return Stringify(w)
-}
-
-// ListGroupWikisOptions represents the available ListGroupWikis options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_wikis.html#list-wiki-pages
-type ListGroupWikisOptions struct {
- WithContent *bool `url:"with_content,omitempty" json:"with_content,omitempty"`
-}
-
-// 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/ee/api/group_wikis.html#list-wiki-pages
-func (s *GroupWikisService) ListGroupWikis(gid interface{}, opt *ListGroupWikisOptions, options ...RequestOptionFunc) ([]*GroupWiki, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/wikis", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var gws []*GroupWiki
- resp, err := s.client.Do(req, &gws)
- if err != nil {
- return nil, resp, err
- }
-
- return gws, resp, err
-}
-
-// GetGroupWikiPage gets a wiki page for a given group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_wikis.html#get-a-wiki-page
-func (s *GroupWikisService) GetGroupWikiPage(gid interface{}, slug string, options ...RequestOptionFunc) (*GroupWiki, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/wikis/%s", pathEscape(group), url.PathEscape(slug))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- gw := new(GroupWiki)
- resp, err := s.client.Do(req, gw)
- if err != nil {
- return nil, resp, err
- }
-
- return gw, resp, err
-}
-
-// CreateGroupWikiPageOptions represents options to CreateGroupWikiPage.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_wikis.html#create-a-new-wiki-page
-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"`
-}
-
-// CreateGroupWikiPage creates a new wiki page for the given group with
-// the given title, slug, and content.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/13.8/ee/api/group_wikis.html#create-a-new-wiki-page
-func (s *GroupWikisService) CreateGroupWikiPage(gid interface{}, opt *CreateGroupWikiPageOptions, options ...RequestOptionFunc) (*GroupWiki, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/wikis", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- w := new(GroupWiki)
- resp, err := s.client.Do(req, w)
- if err != nil {
- return nil, resp, err
- }
-
- return w, resp, err
-}
-
-// EditGroupWikiPageOptions represents options to EditGroupWikiPage.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_wikis.html#edit-an-existing-wiki-page
-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"`
-}
-
-// EditGroupWikiPage Updates an existing wiki page. At least one parameter is
-// required to update the wiki page.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_wikis.html#edit-an-existing-wiki-page
-func (s *GroupWikisService) EditGroupWikiPage(gid interface{}, slug string, opt *EditGroupWikiPageOptions, options ...RequestOptionFunc) (*GroupWiki, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/wikis/%s", pathEscape(group), url.PathEscape(slug))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- w := new(GroupWiki)
- resp, err := s.client.Do(req, w)
- if err != nil {
- return nil, resp, err
- }
-
- return w, resp, err
-}
-
-// DeleteGroupWikiPage deletes a wiki page with a given slug.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/group_wikis.html#delete-a-wiki-page
-func (s *GroupWikisService) DeleteGroupWikiPage(gid interface{}, slug string, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/wikis/%s", pathEscape(group), url.PathEscape(slug))
-
- 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/groups.go b/vendor/github.com/xanzy/go-gitlab/groups.go
deleted file mode 100644
index 8632357043..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/groups.go
+++ /dev/null
@@ -1,772 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// GroupsService handles communication with the group related methods of
-// the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html
-type GroupsService struct {
- client *Client
-}
-
-// Group represents a GitLab group.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html
-type Group struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Path string `json:"path"`
- Description string `json:"description"`
- MembershipLock bool `json:"membership_lock"`
- Visibility VisibilityValue `json:"visibility"`
- LFSEnabled bool `json:"lfs_enabled"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- RequestAccessEnabled bool `json:"request_access_enabled"`
- FullName string `json:"full_name"`
- FullPath string `json:"full_path"`
- ParentID int `json:"parent_id"`
- Projects []*Project `json:"projects"`
- Statistics *StorageStatistics `json:"statistics"`
- CustomAttributes []*CustomAttribute `json:"custom_attributes"`
- ShareWithGroupLock bool `json:"share_with_group_lock"`
- RequireTwoFactorAuth bool `json:"require_two_factor_authentication"`
- TwoFactorGracePeriod int `json:"two_factor_grace_period"`
- ProjectCreationLevel ProjectCreationLevelValue `json:"project_creation_level"`
- AutoDevopsEnabled bool `json:"auto_devops_enabled"`
- SubGroupCreationLevel SubGroupCreationLevelValue `json:"subgroup_creation_level"`
- EmailsDisabled bool `json:"emails_disabled"`
- MentionsDisabled bool `json:"mentions_disabled"`
- RunnersToken string `json:"runners_token"`
- SharedProjects []*Project `json:"shared_projects"`
- SharedWithGroups []struct {
- GroupID int `json:"group_id"`
- GroupName string `json:"group_name"`
- GroupFullPath string `json:"group_full_path"`
- GroupAccessLevel int `json:"group_access_level"`
- ExpiresAt *ISOTime `json:"expires_at"`
- } `json:"shared_with_groups"`
- LDAPCN string `json:"ldap_cn"`
- LDAPAccess AccessLevelValue `json:"ldap_access"`
- LDAPGroupLinks []*LDAPGroupLink `json:"ldap_group_links"`
- SharedRunnersMinutesLimit int `json:"shared_runners_minutes_limit"`
- ExtraSharedRunnersMinutesLimit int `json:"extra_shared_runners_minutes_limit"`
- MarkedForDeletionOn *ISOTime `json:"marked_for_deletion_on"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-// LDAPGroupLink represents a GitLab LDAP group link.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#ldap-group-links
-type LDAPGroupLink struct {
- CN string `json:"cn"`
- Filter string `json:"filter"`
- GroupAccess AccessLevelValue `json:"group_access"`
- Provider string `json:"provider"`
-}
-
-// ListGroupsOptions represents the available ListGroups() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#list-project-groups
-type ListGroupsOptions struct {
- ListOptions
- AllAvailable *bool `url:"all_available,omitempty" json:"all_available,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"`
- SkipGroups []int `url:"skip_groups,omitempty" json:"skip_groups,omitempty"`
- Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
- Statistics *bool `url:"statistics,omitempty" json:"statistics,omitempty"`
- TopLevelOnly *bool `url:"top_level_only,omitempty" json:"top_level_only,omitempty"`
- WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
-}
-
-// ListGroups gets a list of groups (as user: my groups, as admin: all groups).
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#list-project-groups
-func (s *GroupsService) ListGroups(opt *ListGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "groups", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var g []*Group
- resp, err := s.client.Do(req, &g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// GetGroup gets all details of a group.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#details-of-a-group
-func (s *GroupsService) GetGroup(gid interface{}, options ...RequestOptionFunc) (*Group, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- g := new(Group)
- resp, err := s.client.Do(req, g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// CreateGroupOptions represents the available CreateGroup() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#new-group
-type CreateGroupOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- Path *string `url:"path,omitempty" json:"path,omitempty"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- MembershipLock *bool `url:"membership_lock,omitempty" json:"membership_lock,omitempty"`
- Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`
- ShareWithGroupLock *bool `url:"share_with_group_lock,omitempty" json:"share_with_group_lock,omitempty"`
- RequireTwoFactorAuth *bool `url:"require_two_factor_authentication,omitempty" json:"require_two_factor_authentication,omitempty"`
- TwoFactorGracePeriod *int `url:"two_factor_grace_period,omitempty" json:"two_factor_grace_period,omitempty"`
- ProjectCreationLevel *ProjectCreationLevelValue `url:"project_creation_level,omitempty" json:"project_creation_level,omitempty"`
- AutoDevopsEnabled *bool `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
- SubGroupCreationLevel *SubGroupCreationLevelValue `url:"subgroup_creation_level,omitempty" json:"subgroup_creation_level,omitempty"`
- EmailsDisabled *bool `url:"emails_disabled,omitempty" json:"emails_disabled,omitempty"`
- MentionsDisabled *bool `url:"mentions_disabled,omitempty" json:"mentions_disabled,omitempty"`
- LFSEnabled *bool `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"`
- RequestAccessEnabled *bool `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"`
- ParentID *int `url:"parent_id,omitempty" json:"parent_id,omitempty"`
- SharedRunnersMinutesLimit *int `url:"shared_runners_minutes_limit,omitempty" json:"shared_runners_minutes_limit,omitempty"`
- ExtraSharedRunnersMinutesLimit *int `url:"extra_shared_runners_minutes_limit,omitempty" json:"extra_shared_runners_minutes_limit,omitempty"`
-}
-
-// CreateGroup creates a new project group. Available only for users who can
-// create groups.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#new-group
-func (s *GroupsService) CreateGroup(opt *CreateGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "groups", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- g := new(Group)
- resp, err := s.client.Do(req, g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// TransferGroup transfers a project to the Group namespace. Available only
-// for admin.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#transfer-project-to-group
-func (s *GroupsService) TransferGroup(gid interface{}, pid interface{}, options ...RequestOptionFunc) (*Group, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/projects/%s", pathEscape(group), pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- g := new(Group)
- resp, err := s.client.Do(req, g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// UpdateGroupOptions represents the set of available options to update a Group;
-// as of today these are exactly the same available when creating a new Group.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#update-group
-type UpdateGroupOptions CreateGroupOptions
-
-// UpdateGroup updates an existing group; only available to group owners and
-// administrators.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#update-group
-func (s *GroupsService) UpdateGroup(gid interface{}, opt *UpdateGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- g := new(Group)
- resp, err := s.client.Do(req, g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// DeleteGroup removes group with all projects inside.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#remove-group
-func (s *GroupsService) DeleteGroup(gid interface{}, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// RestoreGroup restores a previously deleted group
-//
-// GitLap API docs:
-// https://docs.gitlab.com/ee/api/groups.html#restore-group-marked-for-deletion
-func (s *GroupsService) RestoreGroup(gid interface{}, options ...RequestOptionFunc) (*Group, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/restore", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- g := new(Group)
- resp, err := s.client.Do(req, g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, nil
-}
-
-// SearchGroup get all groups that match your string in their name or path.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#search-for-group
-func (s *GroupsService) SearchGroup(query string, options ...RequestOptionFunc) ([]*Group, *Response, error) {
- var q struct {
- Search string `url:"search,omitempty" json:"search,omitempty"`
- }
- q.Search = query
-
- req, err := s.client.NewRequest(http.MethodGet, "groups", &q, options)
- if err != nil {
- return nil, nil, err
- }
-
- var g []*Group
- resp, err := s.client.Do(req, &g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// ListGroupProjectsOptions represents the available ListGroup() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#list-a-group-39-s-projects
-type ListGroupProjectsOptions struct {
- ListOptions
- Archived *bool `url:"archived,omitempty" json:"archived,omitempty"`
- Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,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"`
- Simple *bool `url:"simple,omitempty" json:"simple,omitempty"`
- Owned *bool `url:"owned,omitempty" json:"owned,omitempty"`
- Starred *bool `url:"starred,omitempty" json:"starred,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"`
- WithShared *bool `url:"with_shared,omitempty" json:"with_shared,omitempty"`
- IncludeSubgroups *bool `url:"include_subgroups,omitempty" json:"include_subgroups,omitempty"`
- MinAccessLevel *AccessLevelValue `url:"min_access_level,omitempty" json:"min_access_level,omitempty"`
- WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
- WithSecurityReports *bool `url:"with_security_reports,omitempty" json:"with_security_reports,omitempty"`
-}
-
-// ListGroupProjects get a list of group projects
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#list-a-group-39-s-projects
-func (s *GroupsService) ListGroupProjects(gid interface{}, opt *ListGroupProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/projects", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var p []*Project
- resp, err := s.client.Do(req, &p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// ListSubgroupsOptions represents the available ListSubgroups() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#list-a-groups-s-subgroups
-type ListSubgroupsOptions ListGroupsOptions
-
-// ListSubgroups gets a list of subgroups for a given group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#list-a-groups-s-subgroups
-func (s *GroupsService) ListSubgroups(gid interface{}, opt *ListSubgroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/subgroups", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var g []*Group
- resp, err := s.client.Do(req, &g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// ListDescendantGroupsOptions represents the available ListDescendantGroups()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#list-a-groups-descendant-groups
-type ListDescendantGroupsOptions ListGroupsOptions
-
-// ListDescendantGroups gets a list of subgroups for a given project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/groups.html#list-a-groups-descendant-groups
-func (s *GroupsService) ListDescendantGroups(gid interface{}, opt *ListDescendantGroupsOptions, options ...RequestOptionFunc) ([]*Group, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/descendant_groups", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var g []*Group
- resp, err := s.client.Do(req, &g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// ListGroupLDAPLinks lists the group's LDAP links. Available only for users who
-// can edit groups.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#list-ldap-group-links-starter
-func (s *GroupsService) ListGroupLDAPLinks(gid interface{}, options ...RequestOptionFunc) ([]*LDAPGroupLink, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/ldap_group_links", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var gl []*LDAPGroupLink
- resp, err := s.client.Do(req, &gl)
- if err != nil {
- return nil, resp, err
- }
-
- return gl, resp, nil
-}
-
-// AddGroupLDAPLinkOptions represents the available AddGroupLDAPLink() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#add-ldap-group-link-starter
-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"`
-}
-
-// DeleteGroupLDAPLinkWithCNOrFilterOptions represents the available DeleteGroupLDAPLinkWithCNOrFilter() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#delete-ldap-group-link-with-cn-or-filter
-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"`
-}
-
-// AddGroupLDAPLink creates a new group LDAP link. Available only for users who
-// can edit groups.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#add-ldap-group-link-starter
-func (s *GroupsService) AddGroupLDAPLink(gid interface{}, opt *AddGroupLDAPLinkOptions, options ...RequestOptionFunc) (*LDAPGroupLink, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/ldap_group_links", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gl := new(LDAPGroupLink)
- resp, err := s.client.Do(req, gl)
- if err != nil {
- return nil, resp, err
- }
-
- return gl, resp, err
-}
-
-// DeleteGroupLDAPLink deletes a group LDAP link. Available only for users who
-// can edit groups.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#delete-ldap-group-link-starter
-func (s *GroupsService) DeleteGroupLDAPLink(gid interface{}, cn string, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/ldap_group_links/%s", pathEscape(group), pathEscape(cn))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteGroupLDAPLinkWithCNOrFilter deletes a group LDAP link. Available only for users who
-// can edit groups.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#delete-ldap-group-link-with-cn-or-filter
-func (s *GroupsService) DeleteGroupLDAPLinkWithCNOrFilter(gid interface{}, opts *DeleteGroupLDAPLinkWithCNOrFilterOptions, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/ldap_group_links", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, opts, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// 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/ee/api/groups.html#delete-ldap-group-link-starter
-func (s *GroupsService) DeleteGroupLDAPLinkForProvider(gid interface{}, provider, cn string, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf(
- "groups/%s/ldap_group_links/%s/%s",
- pathEscape(group),
- pathEscape(provider),
- pathEscape(cn),
- )
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ShareGroupWithGroupOptions represents the available ShareGroupWithGroup() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#share-groups-with-groups
-type ShareGroupWithGroupOptions struct {
- GroupID *int `url:"group_id,omitempty" json:"group_id,omitempty"`
- GroupAccess *AccessLevelValue `url:"group_access,omitempty" json:"group_access,omitempty"`
- ExpiresAt *ISOTime `url:"expires_at,omitempty" json:"expires_at,omitempty"`
-}
-
-// ShareGroupWithGroup shares a group with another group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#create-a-link-to-share-a-group-with-another-group
-func (s *GroupsService) ShareGroupWithGroup(gid interface{}, opt *ShareGroupWithGroupOptions, options ...RequestOptionFunc) (*Group, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/share", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- g := new(Group)
- resp, err := s.client.Do(req, g)
- if err != nil {
- return nil, resp, err
- }
-
- return g, resp, err
-}
-
-// UnshareGroupFromGroup unshares a group from another group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#delete-link-sharing-group-with-another-group
-func (s *GroupsService) UnshareGroupFromGroup(gid interface{}, groupID int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/share/%d", pathEscape(group), groupID)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// GroupPushRules represents a group push rule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#get-group-push-rules
-type GroupPushRules struct {
- ID int `json:"id"`
- CreatedAt *time.Time `json:"created_at"`
- CommitMessageRegex string `json:"commit_message_regex"`
- CommitMessageNegativeRegex string `json:"commit_message_negative_regex"`
- BranchNameRegex string `json:"branch_name_regex"`
- DenyDeleteTag bool `json:"deny_delete_tag"`
- MemberCheck bool `json:"member_check"`
- PreventSecrets bool `json:"prevent_secrets"`
- AuthorEmailRegex string `json:"author_email_regex"`
- FileNameRegex string `json:"file_name_regex"`
- MaxFileSize int `json:"max_file_size"`
- CommitCommitterCheck bool `json:"commit_committer_check"`
- RejectUnsignedCommits bool `json:"reject_unsigned_commits"`
-}
-
-// GetGroupPushRules gets the push rules of a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#get-group-push-rules
-func (s *GroupsService) GetGroupPushRules(gid interface{}, options ...RequestOptionFunc) (*GroupPushRules, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/push_rule", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- gpr := new(GroupPushRules)
- resp, err := s.client.Do(req, gpr)
- if err != nil {
- return nil, resp, err
- }
-
- return gpr, resp, err
-}
-
-// AddGroupPushRuleOptions represents the available AddGroupPushRule()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#add-group-push-rule
-type AddGroupPushRuleOptions struct {
- DenyDeleteTag *bool `url:"deny_delete_tag,omitempty" json:"deny_delete_tag,omitempty"`
- MemberCheck *bool `url:"member_check,omitempty" json:"member_check,omitempty"`
- PreventSecrets *bool `url:"prevent_secrets,omitempty" json:"prevent_secrets,omitempty"`
- CommitMessageRegex *string `url:"commit_message_regex,omitempty" json:"commit_message_regex,omitempty"`
- CommitMessageNegativeRegex *string `url:"commit_message_negative_regex,omitempty" json:"commit_message_negative_regex,omitempty"`
- BranchNameRegex *string `url:"branch_name_regex,omitempty" json:"branch_name_regex,omitempty"`
- AuthorEmailRegex *string `url:"author_email_regex,omitempty" json:"author_email_regex,omitempty"`
- FileNameRegex *string `url:"file_name_regex,omitempty" json:"file_name_regex,omitempty"`
- MaxFileSize *int `url:"max_file_size,omitempty" json:"max_file_size,omitempty"`
- CommitCommitterCheck *bool `url:"commit_committer_check,omitempty" json:"commit_committer_check,omitempty"`
- RejectUnsignedCommits *bool `url:"reject_unsigned_commits,omitempty" json:"reject_unsigned_commits,omitempty"`
-}
-
-// AddGroupPushRule adds push rules to the specified group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#add-group-push-rule
-func (s *GroupsService) AddGroupPushRule(gid interface{}, opt *AddGroupPushRuleOptions, options ...RequestOptionFunc) (*GroupPushRules, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/push_rule", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gpr := new(GroupPushRules)
- resp, err := s.client.Do(req, gpr)
- if err != nil {
- return nil, resp, err
- }
-
- return gpr, resp, err
-}
-
-// EditGroupPushRuleOptions represents the available EditGroupPushRule()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#edit-group-push-rule
-type EditGroupPushRuleOptions struct {
- DenyDeleteTag *bool `url:"deny_delete_tag,omitempty" json:"deny_delete_tag,omitempty"`
- MemberCheck *bool `url:"member_check,omitempty" json:"member_check,omitempty"`
- PreventSecrets *bool `url:"prevent_secrets,omitempty" json:"prevent_secrets,omitempty"`
- CommitMessageRegex *string `url:"commit_message_regex,omitempty" json:"commit_message_regex,omitempty"`
- CommitMessageNegativeRegex *string `url:"commit_message_negative_regex,omitempty" json:"commit_message_negative_regex,omitempty"`
- BranchNameRegex *string `url:"branch_name_regex,omitempty" json:"branch_name_regex,omitempty"`
- AuthorEmailRegex *string `url:"author_email_regex,omitempty" json:"author_email_regex,omitempty"`
- FileNameRegex *string `url:"file_name_regex,omitempty" json:"file_name_regex,omitempty"`
- MaxFileSize *int `url:"max_file_size,omitempty" json:"max_file_size,omitempty"`
- CommitCommitterCheck *bool `url:"commit_committer_check,omitempty" json:"commit_committer_check,omitempty"`
- RejectUnsignedCommits *bool `url:"reject_unsigned_commits,omitempty" json:"reject_unsigned_commits,omitempty"`
-}
-
-// EditGroupPushRule edits a push rule for a specified group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#edit-group-push-rule
-func (s *GroupsService) EditGroupPushRule(gid interface{}, opt *EditGroupPushRuleOptions, options ...RequestOptionFunc) (*GroupPushRules, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/push_rule", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- gpr := new(GroupPushRules)
- resp, err := s.client.Do(req, gpr)
- if err != nil {
- return nil, resp, err
- }
-
- return gpr, resp, err
-}
-
-// DeleteGroupPushRule deletes the push rules of a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/groups.html#delete-group-push-rule
-func (s *GroupsService) DeleteGroupPushRule(gid interface{}, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/push_rule", pathEscape(group))
-
- 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/instance_clusters.go b/vendor/github.com/xanzy/go-gitlab/instance_clusters.go
deleted file mode 100644
index 0014653fe8..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/instance_clusters.go
+++ /dev/null
@@ -1,153 +0,0 @@
-//
-// Copyright 2021, Serena Fang
-//
-// 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"
- "time"
-)
-
-// InstanceClustersService handles communication with the
-// instance clusters related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_clusters.html
-type InstanceClustersService struct {
- client *Client
-}
-
-// InstanceCluster represents a GitLab Instance Cluster.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/instance_clusters.html
-type InstanceCluster struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Domain string `json:"domain"`
- Managed bool `json:"managed"`
- CreatedAt *time.Time `json:"created_at"`
- ProviderType string `json:"provider_type"`
- PlatformType string `json:"platform_type"`
- EnvironmentScope string `json:"environment_scope"`
- ClusterType string `json:"cluster_type"`
- User *User `json:"user"`
- PlatformKubernetes *PlatformKubernetes `json:"platform_kubernetes"`
- ManagementProject *ManagementProject `json:"management_project"`
-}
-
-func (v InstanceCluster) String() string {
- return Stringify(v)
-}
-
-// ListClusters gets a list of all instance clusters.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_clusters.html#list-instance-clusters
-func (s *InstanceClustersService) ListClusters(options ...RequestOptionFunc) ([]*InstanceCluster, *Response, error) {
- u := "admin/clusters"
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ics []*InstanceCluster
- resp, err := s.client.Do(req, &ics)
- if err != nil {
- return nil, resp, err
- }
-
- return ics, resp, err
-}
-
-// GetCluster gets an instance cluster.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_clusters.html#get-a-single-instance-cluster
-func (s *InstanceClustersService) GetCluster(cluster int, options ...RequestOptionFunc) (*InstanceCluster, *Response, error) {
- u := fmt.Sprintf("admin/clusters/%d", cluster)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ic := new(InstanceCluster)
- resp, err := s.client.Do(req, &ic)
- if err != nil {
- return nil, resp, err
- }
-
- return ic, resp, err
-}
-
-// AddCluster adds an existing cluster to the instance.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_clusters.html#add-existing-instance-cluster
-func (s *InstanceClustersService) AddCluster(opt *AddClusterOptions, options ...RequestOptionFunc) (*InstanceCluster, *Response, error) {
- u := "admin/clusters/add"
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ic := new(InstanceCluster)
- resp, err := s.client.Do(req, ic)
- if err != nil {
- return nil, resp, err
- }
-
- return ic, resp, err
-}
-
-// EditCluster updates an existing instance cluster.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_clusters.html#edit-instance-cluster
-func (s *InstanceClustersService) EditCluster(cluster int, opt *EditClusterOptions, options ...RequestOptionFunc) (*InstanceCluster, *Response, error) {
- u := fmt.Sprintf("admin/clusters/%d", cluster)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ic := new(InstanceCluster)
- resp, err := s.client.Do(req, ic)
- if err != nil {
- return nil, resp, err
- }
-
- return ic, resp, err
-}
-
-// DeleteCluster deletes an existing instance cluster.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_clusters.html#delete-instance-cluster
-func (s *InstanceClustersService) DeleteCluster(cluster int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("admin/clusters/%d", cluster)
-
- 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/instance_variables.go b/vendor/github.com/xanzy/go-gitlab/instance_variables.go
deleted file mode 100644
index f196a9c0fb..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/instance_variables.go
+++ /dev/null
@@ -1,180 +0,0 @@
-//
-// Copyright 2021, Patrick Webster
-//
-// 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"
- "net/url"
-)
-
-// InstanceVariablesService handles communication with the
-// instance level CI variables related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html
-type InstanceVariablesService struct {
- client *Client
-}
-
-// InstanceVariable represents a GitLab instance level CI Variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html
-type InstanceVariable struct {
- Key string `json:"key"`
- Value string `json:"value"`
- VariableType VariableTypeValue `json:"variable_type"`
- Protected bool `json:"protected"`
- Masked bool `json:"masked"`
-}
-
-func (v InstanceVariable) String() string {
- return Stringify(v)
-}
-
-// ListInstanceVariablesOptions represents the available options for listing variables
-// for an instance.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html#list-all-instance-variables
-type ListInstanceVariablesOptions ListOptions
-
-// ListVariables gets a list of all variables for an instance.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html#list-all-instance-variables
-func (s *InstanceVariablesService) ListVariables(opt *ListInstanceVariablesOptions, options ...RequestOptionFunc) ([]*InstanceVariable, *Response, error) {
- u := "admin/ci/variables"
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var vs []*InstanceVariable
- resp, err := s.client.Do(req, &vs)
- if err != nil {
- return nil, resp, err
- }
-
- return vs, resp, err
-}
-
-// GetVariable gets a variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html#show-instance-variable-details
-func (s *InstanceVariablesService) GetVariable(key string, options ...RequestOptionFunc) (*InstanceVariable, *Response, error) {
- u := fmt.Sprintf("admin/ci/variables/%s", url.PathEscape(key))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(InstanceVariable)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// CreateInstanceVariableOptions represents the available CreateVariable()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html#create-instance-variable
-type CreateInstanceVariableOptions 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"`
-}
-
-// CreateVariable creates a new instance level CI variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html#create-instance-variable
-func (s *InstanceVariablesService) CreateVariable(opt *CreateInstanceVariableOptions, options ...RequestOptionFunc) (*InstanceVariable, *Response, error) {
- u := "admin/ci/variables"
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(InstanceVariable)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// UpdateInstanceVariableOptions represents the available UpdateVariable()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html#update-instance-variable
-type UpdateInstanceVariableOptions 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"`
-}
-
-// UpdateVariable updates the position of an existing
-// instance level CI variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html#update-instance-variable
-func (s *InstanceVariablesService) UpdateVariable(key string, opt *UpdateInstanceVariableOptions, options ...RequestOptionFunc) (*InstanceVariable, *Response, error) {
- u := fmt.Sprintf("admin/ci/variables/%s", url.PathEscape(key))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(InstanceVariable)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// RemoveVariable removes an instance level CI variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/instance_level_ci_variables.html#remove-instance-variable
-func (s *InstanceVariablesService) RemoveVariable(key string, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("admin/ci/variables/%s", url.PathEscape(key))
-
- 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/invites.go b/vendor/github.com/xanzy/go-gitlab/invites.go
deleted file mode 100644
index fffbfa35f6..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/invites.go
+++ /dev/null
@@ -1,175 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// InvitesService handles communication with the invitation related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/invitations.html
-type InvitesService struct {
- client *Client
-}
-
-// PendingInvite represents a pending invite.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/invitations.html
-type PendingInvite struct {
- ID int `json:"id"`
- InviteEmail string `json:"invite_email"`
- CreatedAt *time.Time `json:"created_at"`
- AccessLevel AccessLevelValue `json:"access_level"`
- ExpiresAt *time.Time `json:"expires_at"`
- UserName string `json:"user_name"`
- CreatedByName string `json:"created_by_name"`
-}
-
-// ListPendingInvitationsOptions represents the available
-// ListPendingInvitations() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/invitations.html#list-all-invitations-pending-for-a-group-or-project
-type ListPendingInvitationsOptions struct {
- ListOptions
- Query *string `url:"query,omitempty" json:"query,omitempty"`
-}
-
-// ListPendingGroupInvitations gets a list of invited group members.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/invitations.html#list-all-invitations-pending-for-a-group-or-project
-func (s *InvitesService) ListPendingGroupInvitations(gid interface{}, opt *ListPendingInvitationsOptions, options ...RequestOptionFunc) ([]*PendingInvite, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/invitations", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pis []*PendingInvite
- resp, err := s.client.Do(req, &pis)
- if err != nil {
- return nil, resp, err
- }
-
- return pis, resp, err
-}
-
-// ListPendingProjectInvitations gets a list of invited project members.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/invitations.html#list-all-invitations-pending-for-a-group-or-project
-func (s *InvitesService) ListPendingProjectInvitations(pid interface{}, opt *ListPendingInvitationsOptions, options ...RequestOptionFunc) ([]*PendingInvite, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/invitations", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pis []*PendingInvite
- resp, err := s.client.Do(req, &pis)
- if err != nil {
- return nil, resp, err
- }
-
- return pis, resp, err
-}
-
-// InvitesOptions represents the available GroupInvites() and ProjectInvites()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/invitations.html#invite-by-email-to-group-or-project
-type InvitesOptions struct {
- ID interface{} `url:"id,omitempty" json:"id,omitempty"`
- Email *string `url:"email,omitempty" json:"email,omitempty"`
- AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
- ExpiresAt *ISOTime `url:"expires_at,omitempty" json:"expires_at,omitempty"`
-}
-
-// InvitesResult represents an invitations result.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/invitations.html#invite-by-email-to-group-or-project
-type InvitesResult struct {
- Status string `json:"status"`
- Message map[string]string `json:"message,omitempty"`
-}
-
-// GroupInvites invites new users by email to join a group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/invitations.html#invite-by-email-to-group-or-project
-func (s *InvitesService) GroupInvites(gid interface{}, opt *InvitesOptions, options ...RequestOptionFunc) (*InvitesResult, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/invitations", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ir := new(InvitesResult)
- resp, err := s.client.Do(req, ir)
- if err != nil {
- return nil, resp, err
- }
-
- return ir, resp, err
-}
-
-// ProjectInvites invites new users by email to join a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/invitations.html#invite-by-email-to-group-or-project
-func (s *InvitesService) ProjectInvites(pid interface{}, opt *InvitesOptions, options ...RequestOptionFunc) (*InvitesResult, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/invitations", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ir := new(InvitesResult)
- resp, err := s.client.Do(req, ir)
- if err != nil {
- return nil, resp, err
- }
-
- return ir, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/issue_links.go b/vendor/github.com/xanzy/go-gitlab/issue_links.go
deleted file mode 100644
index 4d8f89162f..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/issue_links.go
+++ /dev/null
@@ -1,130 +0,0 @@
-//
-// Copyright 2021, Arkbriar
-//
-// 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"
-)
-
-// IssueLinksService handles communication with the issue relations related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/issue_links.html
-type IssueLinksService struct {
- client *Client
-}
-
-// IssueLink represents a two-way relation between two issues.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/issue_links.html
-type IssueLink struct {
- SourceIssue *Issue `json:"source_issue"`
- TargetIssue *Issue `json:"target_issue"`
- LinkType string `json:"link_type"`
-}
-
-// 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/ee/api/issue_links.html#list-issue-relations
-func (s *IssueLinksService) ListIssueRelations(pid interface{}, issueIID int, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/links", pathEscape(project), issueIID)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var is []*Issue
- resp, err := s.client.Do(req, &is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
-
-// CreateIssueLinkOptions represents the available CreateIssueLink() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/issue_links.html
-type CreateIssueLinkOptions struct {
- TargetProjectID *string `json:"target_project_id"`
- TargetIssueIID *string `json:"target_issue_iid"`
- LinkType *string `json:"link_type"`
-}
-
-// 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/ee/api/issue_links.html#create-an-issue-link
-func (s *IssueLinksService) CreateIssueLink(pid interface{}, issueIID int, opt *CreateIssueLinkOptions, options ...RequestOptionFunc) (*IssueLink, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/links", pathEscape(project), issueIID)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- i := new(IssueLink)
- resp, err := s.client.Do(req, &i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// DeleteIssueLink deletes an issue link, thus removes the two-way relationship.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/issue_links.html#delete-an-issue-link
-func (s *IssueLinksService) DeleteIssueLink(pid interface{}, issueIID, issueLinkID int, options ...RequestOptionFunc) (*IssueLink, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/links/%d",
- pathEscape(project),
- issueIID,
- issueLinkID)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- i := new(IssueLink)
- resp, err := s.client.Do(req, &i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/issues.go b/vendor/github.com/xanzy/go-gitlab/issues.go
deleted file mode 100644
index 60f09f9e3d..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/issues.go
+++ /dev/null
@@ -1,745 +0,0 @@
-//
-// 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"
- "encoding/json"
- "fmt"
- "net/http"
- "net/url"
- "reflect"
- "strings"
- "time"
-)
-
-// IssuesService handles communication with the issue related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html
-type IssuesService struct {
- client *Client
- timeStats *timeStatsService
-}
-
-// IssueAuthor represents a author of the issue.
-type IssueAuthor struct {
- ID int `json:"id"`
- State string `json:"state"`
- WebURL string `json:"web_url"`
- Name string `json:"name"`
- AvatarURL string `json:"avatar_url"`
- Username string `json:"username"`
-}
-
-// IssueAssignee represents a assignee of the issue.
-type IssueAssignee struct {
- ID int `json:"id"`
- State string `json:"state"`
- WebURL string `json:"web_url"`
- Name string `json:"name"`
- AvatarURL string `json:"avatar_url"`
- Username string `json:"username"`
-}
-
-// IssueReferences represents references of the issue.
-type IssueReferences struct {
- Short string `json:"short"`
- Relative string `json:"relative"`
- Full string `json:"full"`
-}
-
-// IssueCloser represents a closer of the issue.
-type IssueCloser struct {
- ID int `json:"id"`
- State string `json:"state"`
- WebURL string `json:"web_url"`
- Name string `json:"name"`
- AvatarURL string `json:"avatar_url"`
- Username string `json:"username"`
-}
-
-// IssueLinks represents links of the issue.
-type IssueLinks struct {
- Self string `json:"self"`
- Notes string `json:"notes"`
- AwardEmoji string `json:"award_emoji"`
- Project string `json:"project"`
-}
-
-// Issue represents a GitLab issue.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html
-type Issue struct {
- ID int `json:"id"`
- IID int `json:"iid"`
- ExternalID string `json:"external_id"`
- State string `json:"state"`
- Description string `json:"description"`
- Author *IssueAuthor `json:"author"`
- Milestone *Milestone `json:"milestone"`
- ProjectID int `json:"project_id"`
- Assignees []*IssueAssignee `json:"assignees"`
- Assignee *IssueAssignee `json:"assignee"`
- UpdatedAt *time.Time `json:"updated_at"`
- ClosedAt *time.Time `json:"closed_at"`
- ClosedBy *IssueCloser `json:"closed_by"`
- Title string `json:"title"`
- CreatedAt *time.Time `json:"created_at"`
- MovedToID int `json:"moved_to_id"`
- Labels Labels `json:"labels"`
- LabelDetails []*LabelDetails `json:"label_details"`
- Upvotes int `json:"upvotes"`
- Downvotes int `json:"downvotes"`
- DueDate *ISOTime `json:"due_date"`
- WebURL string `json:"web_url"`
- References *IssueReferences `json:"references"`
- TimeStats *TimeStats `json:"time_stats"`
- Confidential bool `json:"confidential"`
- Weight int `json:"weight"`
- DiscussionLocked bool `json:"discussion_locked"`
- IssueType *string `json:"issue_type,omitempty"`
- Subscribed bool `json:"subscribed"`
- UserNotesCount int `json:"user_notes_count"`
- Links *IssueLinks `json:"_links"`
- IssueLinkID int `json:"issue_link_id"`
- MergeRequestCount int `json:"merge_requests_count"`
- EpicIssueID int `json:"epic_issue_id"`
- Epic *Epic `json:"epic"`
- TaskCompletionStatus *TasksCompletionStatus `json:"task_completion_status"`
-}
-
-func (i Issue) String() string {
- return Stringify(i)
-}
-
-// UnmarshalJSON implements the json.Unmarshaler interface.
-func (i *Issue) UnmarshalJSON(data []byte) error {
- type alias Issue
-
- raw := make(map[string]interface{})
- err := json.Unmarshal(data, &raw)
- if err != nil {
- return err
- }
-
- if reflect.TypeOf(raw["id"]).Kind() == reflect.String {
- raw["external_id"] = raw["id"]
- delete(raw, "id")
- }
-
- labelDetails, ok := raw["labels"].([]interface{})
- if ok && len(labelDetails) > 0 {
- // We only want to change anything if we got label details.
- if _, ok := labelDetails[0].(map[string]interface{}); ok {
- labels := make([]interface{}, len(labelDetails))
- for i, details := range labelDetails {
- labels[i] = details.(map[string]interface{})["name"]
- }
-
- // Set the correct values
- raw["labels"] = labels
- raw["label_details"] = labelDetails
- }
- }
-
- data, err = json.Marshal(raw)
- if err != nil {
- return err
- }
-
- return json.Unmarshal(data, (*alias)(i))
-}
-
-// Labels is a custom type with specific marshaling characteristics.
-type Labels []string
-
-// MarshalJSON implements the json.Marshaler interface.
-func (l *Labels) MarshalJSON() ([]byte, error) {
- if *l == nil {
- return []byte(`null`), nil
- }
- return json.Marshal(strings.Join(*l, ","))
-}
-
-// UnmarshalJSON implements the json.Unmarshaler interface.
-func (l *Labels) UnmarshalJSON(data []byte) error {
- type alias Labels
- if !bytes.HasPrefix(data, []byte("[")) {
- data = []byte(fmt.Sprintf("[%s]", string(data)))
- }
- return json.Unmarshal(data, (*alias)(l))
-}
-
-// EncodeValues implements the query.EncodeValues interface
-func (l *Labels) EncodeValues(key string, v *url.Values) error {
- v.Set(key, strings.Join(*l, ","))
- return nil
-}
-
-// LabelDetails represents detailed label information.
-type LabelDetails struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Color string `json:"color"`
- Description string `json:"description"`
- DescriptionHTML string `json:"description_html"`
- TextColor string `json:"text_color"`
-}
-
-// ListIssuesOptions represents the available ListIssues() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html#list-issues
-type ListIssuesOptions struct {
- ListOptions
- State *string `url:"state,omitempty" json:"state,omitempty"`
- Labels Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- NotLabels Labels `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
- WithLabelDetails *bool `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
- Milestone *string `url:"milestone,omitempty" json:"milestone,omitempty"`
- NotMilestone *string `url:"not[milestone],omitempty" json:"not[milestone],omitempty"`
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- NotAuthorID []int `url:"not[author_id],omitempty" json:"not[author_id],omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- NotAssigneeID []int `url:"not[assignee_id],omitempty" json:"not[assignee_id],omitempty"`
- AssigneeUsername *string `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
- MyReactionEmoji *string `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
- NotMyReactionEmoji []string `url:"not[my_reaction_emoji],omitempty" json:"not[my_reaction_emoji],omitempty"`
- IIDs []int `url:"iids[],omitempty" json:"iids,omitempty"`
- In *string `url:"in,omitempty" json:"in,omitempty"`
- 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"`
- 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"`
- IssueType *string `url:"issue_type,omitempty" json:"issue_type,omitempty"`
-}
-
-// 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/ce/api/issues.html#list-issues
-func (s *IssuesService) ListIssues(opt *ListIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "issues", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var i []*Issue
- resp, err := s.client.Do(req, &i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// ListGroupIssuesOptions represents the available ListGroupIssues() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html#list-group-issues
-type ListGroupIssuesOptions struct {
- ListOptions
- State *string `url:"state,omitempty" json:"state,omitempty"`
- Labels Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- NotLabels Labels `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
- WithLabelDetails *bool `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
- IIDs []int `url:"iids[],omitempty" json:"iids,omitempty"`
- Milestone *string `url:"milestone,omitempty" json:"milestone,omitempty"`
- NotMilestone *string `url:"not[milestone],omitempty" json:"not[milestone],omitempty"`
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- NotAuthorID []int `url:"not[author_id],omitempty" json:"not[author_id],omitempty"`
- AuthorUsername *string `url:"author_username,omitempty" json:"author_username,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- NotAssigneeID []int `url:"not[assignee_id],omitempty" json:"not[assignee_id],omitempty"`
- AssigneeUsername *string `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
- 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"`
- 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"`
- IssueType *string `url:"issue_type,omitempty" json:"issue_type,omitempty"`
-}
-
-// 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/ce/api/issues.html#list-group-issues
-func (s *IssuesService) ListGroupIssues(pid interface{}, opt *ListGroupIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- group, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/issues", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var i []*Issue
- resp, err := s.client.Do(req, &i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// ListProjectIssuesOptions represents the available ListProjectIssues() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html#list-project-issues
-type ListProjectIssuesOptions struct {
- ListOptions
- IIDs []int `url:"iids[],omitempty" json:"iids,omitempty"`
- State *string `url:"state,omitempty" json:"state,omitempty"`
- Labels Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- NotLabels Labels `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
- WithLabelDetails *bool `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
- Milestone *string `url:"milestone,omitempty" json:"milestone,omitempty"`
- NotMilestone []string `url:"not[milestone],omitempty" json:"not[milestone],omitempty"`
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- NotAuthorID []int `url:"not[author_id],omitempty" json:"not[author_id],omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- NotAssigneeID []int `url:"not[assignee_id],omitempty" json:"not[assignee_id],omitempty"`
- AssigneeUsername *string `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
- 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"`
- 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"`
-}
-
-// 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/ce/api/issues.html#list-project-issues
-func (s *IssuesService) ListProjectIssues(pid interface{}, opt *ListProjectIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var i []*Issue
- resp, err := s.client.Do(req, &i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// GetIssue gets a single project issue.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html#single-issues
-func (s *IssuesService) GetIssue(pid interface{}, issue int, options ...RequestOptionFunc) (*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- i := new(Issue)
- resp, err := s.client.Do(req, i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// CreateIssueOptions represents the available CreateIssue() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html#new-issues
-type CreateIssueOptions struct {
- IID *int `url:"iid,omitempty" json:"iid,omitempty"`
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- Confidential *bool `url:"confidential,omitempty" json:"confidential,omitempty"`
- AssigneeIDs []int `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
- MilestoneID *int `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
- Labels Labels `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"`
- MergeRequestToResolveDiscussionsOf *int `url:"merge_request_to_resolve_discussions_of,omitempty" json:"merge_request_to_resolve_discussions_of,omitempty"`
- DiscussionToResolve *string `url:"discussion_to_resolve,omitempty" json:"discussion_to_resolve,omitempty"`
- Weight *int `url:"weight,omitempty" json:"weight,omitempty"`
- IssueType *string `url:"issue_type,omitempty" json:"issue_type,omitempty"`
-}
-
-// CreateIssue creates a new project issue.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html#new-issues
-func (s *IssuesService) CreateIssue(pid interface{}, opt *CreateIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- i := new(Issue)
- resp, err := s.client.Do(req, i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// UpdateIssueOptions represents the available UpdateIssue() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/issues.html#edit-issue
-type UpdateIssueOptions struct {
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- Confidential *bool `url:"confidential,omitempty" json:"confidential,omitempty"`
- AssigneeIDs []int `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
- MilestoneID *int `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
- Labels Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- AddLabels Labels `url:"add_labels,comma,omitempty" json:"add_labels,omitempty"`
- RemoveLabels Labels `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"`
- Weight *int `url:"weight,omitempty" json:"weight,omitempty"`
- DiscussionLocked *bool `url:"discussion_locked,omitempty" json:"discussion_locked,omitempty"`
- IssueType *string `url:"issue_type,omitempty" json:"issue_type,omitempty"`
-}
-
-// UpdateIssue updates an existing project issue. This function is also used
-// to mark an issue as closed.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html#edit-issues
-func (s *IssuesService) UpdateIssue(pid interface{}, issue int, opt *UpdateIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- i := new(Issue)
- resp, err := s.client.Do(req, i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// DeleteIssue deletes a single project issue.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/issues.html#delete-an-issue
-func (s *IssuesService) DeleteIssue(pid interface{}, issue int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// MoveIssueOptions represents the available MoveIssue() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/issues.html#move-an-issue
-type MoveIssueOptions struct {
- ToProjectID *int `url:"to_project_id,omitempty" json:"to_project_id,omitempty"`
-}
-
-// MoveIssue updates an existing project issue. This function is also used
-// to mark an issue as closed.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/issues.html#move-an-issue
-func (s *IssuesService) MoveIssue(pid interface{}, issue int, opt *MoveIssueOptions, options ...RequestOptionFunc) (*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/move", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- i := new(Issue)
- resp, err := s.client.Do(req, i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// 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/ce/api/merge_requests.html#subscribe-to-a-merge-request
-func (s *IssuesService) SubscribeToIssue(pid interface{}, issue int, options ...RequestOptionFunc) (*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/subscribe", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- i := new(Issue)
- resp, err := s.client.Do(req, i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// 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/ce/api/merge_requests.html#unsubscribe-from-a-merge-request
-func (s *IssuesService) UnsubscribeFromIssue(pid interface{}, issue int, options ...RequestOptionFunc) (*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/unsubscribe", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- i := new(Issue)
- resp, err := s.client.Do(req, i)
- if err != nil {
- return nil, resp, err
- }
-
- 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.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#list-merge-requests-that-will-close-issue-on-merge
-type ListMergeRequestsClosingIssueOptions ListOptions
-
-// ListMergeRequestsClosingIssue gets all the merge requests that will close
-// issue when merged.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#list-merge-requests-that-will-close-issue-on-merge
-func (s *IssuesService) ListMergeRequestsClosingIssue(pid interface{}, issue int, opt *ListMergeRequestsClosingIssueOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("/projects/%s/issues/%d/closed_by", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var m []*MergeRequest
- resp, err := s.client.Do(req, &m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// ListMergeRequestsRelatedToIssueOptions represents the available
-// ListMergeRequestsRelatedToIssue() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#list-merge-requests-related-to-issue
-type ListMergeRequestsRelatedToIssueOptions ListOptions
-
-// ListMergeRequestsRelatedToIssue gets all the merge requests that are
-// related to the issue
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#list-merge-requests-related-to-issue
-func (s *IssuesService) ListMergeRequestsRelatedToIssue(pid interface{}, issue int, opt *ListMergeRequestsRelatedToIssueOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("/projects/%s/issues/%d/related_merge_requests",
- pathEscape(project),
- issue,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var m []*MergeRequest
- resp, err := s.client.Do(req, &m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// SetTimeEstimate sets the time estimate for a single project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#set-a-time-estimate-for-an-issue
-func (s *IssuesService) SetTimeEstimate(pid interface{}, issue int, opt *SetTimeEstimateOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.setTimeEstimate(pid, "issues", issue, opt, options...)
-}
-
-// ResetTimeEstimate resets the time estimate for a single project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#reset-the-time-estimate-for-an-issue
-func (s *IssuesService) ResetTimeEstimate(pid interface{}, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.resetTimeEstimate(pid, "issues", issue, options...)
-}
-
-// AddSpentTime adds spent time for a single project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#add-spent-time-for-an-issue
-func (s *IssuesService) AddSpentTime(pid interface{}, issue int, opt *AddSpentTimeOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.addSpentTime(pid, "issues", issue, opt, options...)
-}
-
-// ResetSpentTime resets the spent time for a single project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#reset-spent-time-for-an-issue
-func (s *IssuesService) ResetSpentTime(pid interface{}, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.resetSpentTime(pid, "issues", issue, options...)
-}
-
-// GetTimeSpent gets the spent time for a single project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#get-time-tracking-stats
-func (s *IssuesService) GetTimeSpent(pid interface{}, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.getTimeSpent(pid, "issues", issue, options...)
-}
-
-// GetParticipants gets a list of issue participants.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/issues.html#participants-on-issues
-func (s *IssuesService) GetParticipants(pid interface{}, issue int, options ...RequestOptionFunc) ([]*BasicUser, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/participants", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var bu []*BasicUser
- resp, err := s.client.Do(req, &bu)
- if err != nil {
- return nil, resp, err
- }
-
- return bu, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/issues_statistics.go b/vendor/github.com/xanzy/go-gitlab/issues_statistics.go
deleted file mode 100644
index 6f48a17caa..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/issues_statistics.go
+++ /dev/null
@@ -1,187 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// IssuesStatisticsService handles communication with the issues statistics
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/issues_statistics.html
-type IssuesStatisticsService struct {
- client *Client
-}
-
-// IssuesStatistics represents a GitLab issues statistic.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/issues_statistics.html
-type IssuesStatistics struct {
- Statistics struct {
- Counts struct {
- All int `json:"all"`
- Closed int `json:"closed"`
- Opened int `json:"opened"`
- } `json:"counts"`
- } `json:"statistics"`
-}
-
-func (n IssuesStatistics) String() string {
- return Stringify(n)
-}
-
-// GetIssuesStatisticsOptions represents the available GetIssuesStatistics() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/issues_statistics.html#get-issues-statistics
-type GetIssuesStatisticsOptions struct {
- Labels Labels `url:"labels,omitempty" json:"labels,omitempty"`
- Milestone *string `url:"milestone,omitempty" json:"milestone,omitempty"`
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- AuthorUsername *string `url:"author_username,omitempty" json:"author_username,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- AssigneeUsername []string `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
- MyReactionEmoji *string `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
- IIDs []int `url:"iids[],omitempty" json:"iids,omitempty"`
- Search *string `url:"search,omitempty" json:"search,omitempty"`
- In *string `url:"in,omitempty" json:"in,omitempty"`
- CreatedAfter *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
- CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
- UpdatedAfter *time.Time `url:"updated_after,omitempty" json:"updated_after,omitempty"`
- UpdatedBefore *time.Time `url:"updated_before,omitempty" json:"updated_before,omitempty"`
- Confidential *bool `url:"confidential,omitempty" json:"confidential,omitempty"`
-}
-
-// GetIssuesStatistics gets issues statistics on all issues the authenticated
-// user has access to.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/issues_statistics.html#get-issues-statistics
-func (s *IssuesStatisticsService) GetIssuesStatistics(opt *GetIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "issues_statistics", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- is := new(IssuesStatistics)
- resp, err := s.client.Do(req, is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
-
-// GetGroupIssuesStatisticsOptions represents the available GetGroupIssuesStatistics()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/issues_statistics.html#get-group-issues-statistics
-type GetGroupIssuesStatisticsOptions struct {
- Labels Labels `url:"labels,omitempty" json:"labels,omitempty"`
- IIDs []int `url:"iids[],omitempty" json:"iids,omitempty"`
- Milestone *string `url:"milestone,omitempty" json:"milestone,omitempty"`
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- AuthorUsername *string `url:"author_username,omitempty" json:"author_username,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- AssigneeUsername []string `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
- MyReactionEmoji *string `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
- Search *string `url:"search,omitempty" json:"search,omitempty"`
- CreatedAfter *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
- CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
- UpdatedAfter *time.Time `url:"updated_after,omitempty" json:"updated_after,omitempty"`
- UpdatedBefore *time.Time `url:"updated_before,omitempty" json:"updated_before,omitempty"`
- Confidential *bool `url:"confidential,omitempty" json:"confidential,omitempty"`
-}
-
-// GetGroupIssuesStatistics gets issues count statistics for given group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/issues_statistics.html#get-group-issues-statistics
-func (s *IssuesStatisticsService) GetGroupIssuesStatistics(gid interface{}, opt *GetGroupIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/issues_statistics", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- is := new(IssuesStatistics)
- resp, err := s.client.Do(req, is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
-
-// GetProjectIssuesStatisticsOptions represents the available
-// GetProjectIssuesStatistics() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/issues_statistics.html#get-project-issues-statistics
-type GetProjectIssuesStatisticsOptions struct {
- IIDs []int `url:"iids[],omitempty" json:"iids,omitempty"`
- Labels Labels `url:"labels,omitempty" json:"labels,omitempty"`
- Milestone *Milestone `url:"milestone,omitempty" json:"milestone,omitempty"`
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- AuthorUsername *string `url:"author_username,omitempty" json:"author_username,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- AssigneeUsername []string `url:"assignee_username,omitempty" json:"assignee_username,omitempty"`
- MyReactionEmoji *string `url:"my_reaction_emoji,omitempty" json:"my_reaction_emoji,omitempty"`
- Search *string `url:"search,omitempty" json:"search,omitempty"`
- CreatedAfter *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
- CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
- UpdatedAfter *time.Time `url:"updated_after,omitempty" json:"updated_after,omitempty"`
- UpdatedBefore *time.Time `url:"updated_before,omitempty" json:"updated_before,omitempty"`
- Confidential *bool `url:"confidential,omitempty" json:"confidential,omitempty"`
-}
-
-// GetProjectIssuesStatistics gets issues count statistics for given project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/issues_statistics.html#get-project-issues-statistics
-func (s *IssuesStatisticsService) GetProjectIssuesStatistics(pid interface{}, opt *GetProjectIssuesStatisticsOptions, options ...RequestOptionFunc) (*IssuesStatistics, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues_statistics", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- is := new(IssuesStatistics)
- resp, err := s.client.Do(req, is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/jobs.go b/vendor/github.com/xanzy/go-gitlab/jobs.go
deleted file mode 100644
index 2d3c110fa4..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/jobs.go
+++ /dev/null
@@ -1,509 +0,0 @@
-//
-// Copyright 2021, Arkbriar
-//
-// 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"
- "net/http"
- "time"
-)
-
-// JobsService handles communication with the ci builds related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/jobs.html
-type JobsService struct {
- client *Client
-}
-
-// Job represents a ci build.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/jobs.html
-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"`
- Duration float64 `json:"duration"`
- ArtifactsExpireAt *time.Time `json:"artifacts_expire_at"`
- TagList []string `json:"tag_list"`
- ID int `json:"id"`
- Name string `json:"name"`
- Pipeline struct {
- ID int `json:"id"`
- Ref string `json:"ref"`
- Sha string `json:"sha"`
- Status string `json:"status"`
- } `json:"pipeline"`
- Ref string `json:"ref"`
- Artifacts []struct {
- FileType string `json:"file_type"`
- Filename string `json:"filename"`
- Size int `json:"size"`
- FileFormat string `json:"file_format"`
- } `json:"artifacts"`
- ArtifactsFile struct {
- Filename string `json:"filename"`
- Size int `json:"size"`
- } `json:"artifacts_file"`
- Runner struct {
- ID int `json:"id"`
- Description string `json:"description"`
- Active bool `json:"active"`
- IsShared bool `json:"is_shared"`
- Name string `json:"name"`
- } `json:"runner"`
- Stage string `json:"stage"`
- Status string `json:"status"`
- Tag bool `json:"tag"`
- WebURL string `json:"web_url"`
- User *User `json:"user"`
-}
-
-// Bridge represents a pipeline bridge.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/jobs.html#list-pipeline-bridges
-type Bridge struct {
- Commit *Commit `json:"commit"`
- Coverage float64 `json:"coverage"`
- AllowFailure bool `json:"allow_failure"`
- CreatedAt *time.Time `json:"created_at"`
- StartedAt *time.Time `json:"started_at"`
- FinishedAt *time.Time `json:"finished_at"`
- Duration float64 `json:"duration"`
- ID int `json:"id"`
- Name string `json:"name"`
- Pipeline PipelineInfo `json:"pipeline"`
- Ref string `json:"ref"`
- Stage string `json:"stage"`
- Status string `json:"status"`
- Tag bool `json:"tag"`
- WebURL string `json:"web_url"`
- User *User `json:"user"`
- DownstreamPipeline *PipelineInfo `json:"downstream_pipeline"`
-}
-
-// ListJobsOptions are options for two list apis
-type ListJobsOptions struct {
- ListOptions
- 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.
-//
-// 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/ce/api/jobs.html#list-project-jobs
-func (s *JobsService) ListProjectJobs(pid interface{}, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- var jobs []*Job
- resp, err := s.client.Do(req, &jobs)
- if err != nil {
- return nil, resp, err
- }
-
- return jobs, resp, err
-}
-
-// 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/ce/api/jobs.html#list-pipeline-jobs
-func (s *JobsService) ListPipelineJobs(pid interface{}, pipelineID int, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipelines/%d/jobs", pathEscape(project), pipelineID)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- var jobs []*Job
- resp, err := s.client.Do(req, &jobs)
- if err != nil {
- return nil, resp, err
- }
-
- return jobs, resp, err
-}
-
-// ListPipelineBridges gets a list of bridges for specific pipeline in a
-// project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/jobs.html#list-pipeline-jobs
-func (s *JobsService) ListPipelineBridges(pid interface{}, pipelineID int, opts *ListJobsOptions, options ...RequestOptionFunc) ([]*Bridge, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipelines/%d/bridges", pathEscape(project), pipelineID)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- var bridges []*Bridge
- resp, err := s.client.Do(req, &bridges)
- if err != nil {
- return nil, resp, err
- }
-
- 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:
-// https://docs.gitlab.com/ce/api/jobs.html#get-a-single-job
-func (s *JobsService) GetJob(pid interface{}, jobID int, options ...RequestOptionFunc) (*Job, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/%d", pathEscape(project), jobID)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, 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
-}
-
-// GetJobArtifacts get jobs artifacts of a project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/job_artifacts.html#get-job-artifacts
-func (s *JobsService) GetJobArtifacts(pid interface{}, jobID int, options ...RequestOptionFunc) (*bytes.Reader, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/%d/artifacts", pathEscape(project), jobID)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- artifactsBuf := new(bytes.Buffer)
- resp, err := s.client.Do(req, artifactsBuf)
- if err != nil {
- return nil, resp, err
- }
-
- return bytes.NewReader(artifactsBuf.Bytes()), resp, err
-}
-
-// DownloadArtifactsFileOptions represents the available DownloadArtifactsFile()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/job_artifacts.html#download-the-artifacts-archive
-type DownloadArtifactsFileOptions struct {
- Job *string `url:"job" json:"job"`
-}
-
-// DownloadArtifactsFile download the artifacts file from the given
-// reference name and job provided the job finished successfully.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/job_artifacts.html#download-the-artifacts-archive
-func (s *JobsService) DownloadArtifactsFile(pid interface{}, refName string, opt *DownloadArtifactsFileOptions, options ...RequestOptionFunc) (*bytes.Reader, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/artifacts/%s/download", pathEscape(project), refName)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- artifactsBuf := new(bytes.Buffer)
- resp, err := s.client.Do(req, artifactsBuf)
- if err != nil {
- return nil, resp, err
- }
-
- return bytes.NewReader(artifactsBuf.Bytes()), resp, err
-}
-
-// DownloadSingleArtifactsFile download a file from the artifacts from the
-// given reference name and job provided the job finished successfully.
-// Only a single file is going to be extracted from the archive and streamed
-// to a client.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/job_artifacts.html#download-a-single-artifact-file-by-job-id
-func (s *JobsService) DownloadSingleArtifactsFile(pid interface{}, jobID int, artifactPath string, options ...RequestOptionFunc) (*bytes.Reader, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
-
- u := fmt.Sprintf(
- "projects/%s/jobs/%d/artifacts/%s",
- pathEscape(project),
- jobID,
- artifactPath,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- artifactBuf := new(bytes.Buffer)
- resp, err := s.client.Do(req, artifactBuf)
- if err != nil {
- return nil, resp, err
- }
-
- return bytes.NewReader(artifactBuf.Bytes()), resp, err
-}
-
-// GetTraceFile gets a trace of a specific job of a project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/jobs.html#get-a-trace-file
-func (s *JobsService) GetTraceFile(pid interface{}, jobID int, options ...RequestOptionFunc) (*bytes.Reader, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/%d/trace", pathEscape(project), jobID)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- traceBuf := new(bytes.Buffer)
- resp, err := s.client.Do(req, traceBuf)
- if err != nil {
- return nil, resp, err
- }
-
- return bytes.NewReader(traceBuf.Bytes()), resp, err
-}
-
-// CancelJob cancels a single job of a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/jobs.html#cancel-a-job
-func (s *JobsService) CancelJob(pid interface{}, jobID int, options ...RequestOptionFunc) (*Job, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/%d/cancel", pathEscape(project), jobID)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, 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
-}
-
-// RetryJob retries a single job of a project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/jobs.html#retry-a-job
-func (s *JobsService) RetryJob(pid interface{}, jobID int, options ...RequestOptionFunc) (*Job, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/%d/retry", pathEscape(project), jobID)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, 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
-}
-
-// EraseJob erases a single job of a project, removes a job
-// artifacts and a job trace.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/jobs.html#erase-a-job
-func (s *JobsService) EraseJob(pid interface{}, jobID int, options ...RequestOptionFunc) (*Job, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/%d/erase", pathEscape(project), jobID)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, 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
-}
-
-// KeepArtifacts prevents artifacts from being deleted when
-// expiration is set.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/job_artifacts.html#keep-artifacts
-func (s *JobsService) KeepArtifacts(pid interface{}, jobID int, options ...RequestOptionFunc) (*Job, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/%d/artifacts/keep", pathEscape(project), jobID)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, 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
-}
-
-// PlayJob triggers a manual action to start a job.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/jobs.html#play-a-job
-func (s *JobsService) PlayJob(pid interface{}, jobID int, options ...RequestOptionFunc) (*Job, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/%d/play", pathEscape(project), jobID)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, 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
-}
-
-// DeleteArtifacts delete artifacts of a job
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/job_artifacts.html#delete-artifacts
-func (s *JobsService) DeleteArtifacts(pid interface{}, jobID int, options ...RequestOptionFunc) (*Job, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/jobs/%d/artifacts", pathEscape(project), jobID)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, 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
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/keys.go b/vendor/github.com/xanzy/go-gitlab/keys.go
deleted file mode 100644
index 29f2541f42..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/keys.go
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright 2021, Patrick Webster
-//
-// 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"
- "time"
-)
-
-// KeysService handles communication with the
-// keys related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/keys.html
-type KeysService struct {
- client *Client
-}
-
-// Key represents a GitLab user's SSH key.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/keys.html
-type Key struct {
- ID int `json:"id"`
- Title string `json:"title"`
- Key string `json:"key"`
- CreatedAt *time.Time `json:"created_at"`
- User User `json:"user"`
-}
-
-// GetKeyWithUser gets a single key by id along with the associated
-// user information.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/keys.html#get-ssh-key-with-user-by-id-of-an-ssh-key
-func (s *KeysService) GetKeyWithUser(key int, options ...RequestOptionFunc) (*Key, *Response, error) {
- u := fmt.Sprintf("keys/%d", key)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- k := new(Key)
- resp, err := s.client.Do(req, k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/labels.go b/vendor/github.com/xanzy/go-gitlab/labels.go
deleted file mode 100644
index ccf6b24f71..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/labels.go
+++ /dev/null
@@ -1,307 +0,0 @@
-//
-// 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 (
- "encoding/json"
- "fmt"
- "net/http"
-)
-
-// LabelsService handles communication with the label related methods of the
-// GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html
-type LabelsService struct {
- client *Client
-}
-
-// Label represents a GitLab label.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html
-type Label struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Color string `json:"color"`
- TextColor string `json:"text_color"`
- Description string `json:"description"`
- OpenIssuesCount int `json:"open_issues_count"`
- ClosedIssuesCount int `json:"closed_issues_count"`
- OpenMergeRequestsCount int `json:"open_merge_requests_count"`
- Subscribed bool `json:"subscribed"`
- Priority int `json:"priority"`
- IsProjectLabel bool `json:"is_project_label"`
-}
-
-// UnmarshalJSON implements the json.Unmarshaler interface.
-func (l *Label) UnmarshalJSON(data []byte) error {
- type alias Label
- if err := json.Unmarshal(data, (*alias)(l)); err != nil {
- return err
- }
-
- if l.Name == "" {
- var raw map[string]interface{}
- if err := json.Unmarshal(data, &raw); err != nil {
- return err
- }
- if title, ok := raw["title"].(string); ok {
- l.Name = title
- }
- }
-
- return nil
-}
-
-func (l Label) String() string {
- return Stringify(l)
-}
-
-// ListLabelsOptions represents the available ListLabels() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#list-labels
-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"`
-}
-
-// ListLabels gets all labels for given project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#list-labels
-func (s *LabelsService) ListLabels(pid interface{}, opt *ListLabelsOptions, options ...RequestOptionFunc) ([]*Label, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/labels", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var l []*Label
- resp, err := s.client.Do(req, &l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// GetLabel get a single label for a given project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#get-a-single-project-label
-func (s *LabelsService) GetLabel(pid interface{}, labelID interface{}, options ...RequestOptionFunc) (*Label, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- label, err := parseID(labelID)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/labels/%s", pathEscape(project), label)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var l *Label
- resp, err := s.client.Do(req, &l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// CreateLabelOptions represents the available CreateLabel() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#create-a-new-label
-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"`
-}
-
-// CreateLabel creates a new label for given repository with given name and
-// color.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#create-a-new-label
-func (s *LabelsService) CreateLabel(pid interface{}, opt *CreateLabelOptions, options ...RequestOptionFunc) (*Label, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/labels", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(Label)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// DeleteLabelOptions represents the available DeleteLabel() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#delete-a-label
-type DeleteLabelOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
-}
-
-// DeleteLabel deletes a label given by its name.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#delete-a-label
-func (s *LabelsService) DeleteLabel(pid interface{}, opt *DeleteLabelOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/labels", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// UpdateLabelOptions represents the available UpdateLabel() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#delete-a-label
-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"`
-}
-
-// UpdateLabel updates an existing label with new name or now color. At least
-// one parameter is required, to update the label.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#edit-an-existing-label
-func (s *LabelsService) UpdateLabel(pid interface{}, opt *UpdateLabelOptions, options ...RequestOptionFunc) (*Label, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/labels", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(Label)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// 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/ce/api/labels.html#subscribe-to-a-label
-func (s *LabelsService) SubscribeToLabel(pid interface{}, labelID interface{}, options ...RequestOptionFunc) (*Label, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- label, err := parseID(labelID)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/labels/%s/subscribe", pathEscape(project), label)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(Label)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// 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/ce/api/labels.html#unsubscribe-from-a-label
-func (s *LabelsService) UnsubscribeFromLabel(pid interface{}, labelID interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- label, err := parseID(labelID)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/labels/%s/unsubscribe", pathEscape(project), label)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// PromoteLabel Promotes a project label to a group label.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/labels.html#promote-a-project-label-to-a-group-label
-func (s *LabelsService) PromoteLabel(pid interface{}, labelID interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- label, err := parseID(labelID)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/labels/%s/promote", pathEscape(project), label)
-
- req, err := s.client.NewRequest(http.MethodPut, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/license.go b/vendor/github.com/xanzy/go-gitlab/license.go
deleted file mode 100644
index 618fde6573..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/license.go
+++ /dev/null
@@ -1,112 +0,0 @@
-//
-// Copyright 2021, Patrick Webster
-//
-// 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 (
- "net/http"
- "time"
-)
-
-// LicenseService handles communication with the license
-// related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/license.html
-type LicenseService struct {
- client *Client
-}
-
-// License represents a GitLab license.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/license.html
-type License struct {
- ID int `json:"id"`
- Plan string `json:"plan"`
- CreatedAt *time.Time `json:"created_at"`
- StartsAt *ISOTime `json:"starts_at"`
- ExpiresAt *ISOTime `json:"expires_at"`
- HistoricalMax int `json:"historical_max"`
- MaximumUserCount int `json:"maximum_user_count"`
- Expired bool `json:"expired"`
- Overage int `json:"overage"`
- UserLimit int `json:"user_limit"`
- ActiveUsers int `json:"active_users"`
- Licensee struct {
- Name string `json:"Name"`
- Company string `json:"Company"`
- Email string `json:"Email"`
- } `json:"licensee"`
- // Add on codes that may occur in legacy licenses that don't have a plan yet.
- // https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/models/license.rb
- AddOns struct {
- GitLabAuditorUser int `json:"GitLab_Auditor_User"`
- GitLabDeployBoard int `json:"GitLab_DeployBoard"`
- GitLabFileLocks int `json:"GitLab_FileLocks"`
- GitLabGeo int `json:"GitLab_Geo"`
- GitLabServiceDesk int `json:"GitLab_ServiceDesk"`
- } `json:"add_ons"`
-}
-
-func (l License) String() string {
- return Stringify(l)
-}
-
-// GetLicense retrieves information about the current license.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/license.html#retrieve-information-about-the-current-license
-func (s *LicenseService) GetLicense() (*License, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "license", nil, nil)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(License)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// AddLicenseOptions represents the available AddLicense() options.
-//
-// https://docs.gitlab.com/ee/api/license.html#add-a-new-license
-type AddLicenseOptions struct {
- License *string `url:"license" json:"license"`
-}
-
-// AddLicense adds a new license.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/license.html#add-a-new-license
-func (s *LicenseService) AddLicense(opt *AddLicenseOptions, options ...RequestOptionFunc) (*License, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "license", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(License)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/license_templates.go b/vendor/github.com/xanzy/go-gitlab/license_templates.go
deleted file mode 100644
index 72e9320e3f..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/license_templates.go
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// LicenseTemplate represents a license template.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/licenses.html
-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"`
-}
-
-// LicenseTemplatesService handles communication with the license templates
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/templates/licenses.html
-type LicenseTemplatesService struct {
- client *Client
-}
-
-// ListLicenseTemplatesOptions represents the available
-// ListLicenseTemplates() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/licenses.html#list-license-templates
-type ListLicenseTemplatesOptions struct {
- ListOptions
- Popular *bool `url:"popular,omitempty" json:"popular,omitempty"`
-}
-
-// ListLicenseTemplates get all license templates.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/licenses.html#list-license-templates
-func (s *LicenseTemplatesService) ListLicenseTemplates(opt *ListLicenseTemplatesOptions, options ...RequestOptionFunc) ([]*LicenseTemplate, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "templates/licenses", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var lts []*LicenseTemplate
- resp, err := s.client.Do(req, &lts)
- if err != nil {
- return nil, resp, err
- }
-
- return lts, resp, err
-}
-
-// GetLicenseTemplateOptions represents the available
-// GetLicenseTemplate() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/licenses.html#single-license-template
-type GetLicenseTemplateOptions struct {
- Project *string `url:"project,omitempty" json:"project,omitempty"`
- Fullname *string `url:"fullname,omitempty" json:"fullname,omitempty"`
-}
-
-// GetLicenseTemplate get a single license template. You can pass parameters
-// to replace the license placeholder.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/templates/licenses.html#single-license-template
-func (s *LicenseTemplatesService) GetLicenseTemplate(template string, opt *GetLicenseTemplateOptions, options ...RequestOptionFunc) (*LicenseTemplate, *Response, error) {
- u := fmt.Sprintf("templates/licenses/%s", template)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- lt := new(LicenseTemplate)
- resp, err := s.client.Do(req, lt)
- if err != nil {
- return nil, resp, err
- }
-
- return lt, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/merge_request_approvals.go b/vendor/github.com/xanzy/go-gitlab/merge_request_approvals.go
deleted file mode 100644
index 857c9dbd44..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/merge_request_approvals.go
+++ /dev/null
@@ -1,409 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// 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/ee/api/merge_request_approvals.html
-type MergeRequestApprovalsService struct {
- client *Client
-}
-
-// MergeRequestApprovals represents GitLab merge request approvals.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#merge-request-level-mr-approvals
-type MergeRequestApprovals struct {
- ID int `json:"id"`
- ProjectID int `json:"project_id"`
- Title string `json:"title"`
- Description string `json:"description"`
- State string `json:"state"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
- MergeStatus string `json:"merge_status"`
- ApprovalsBeforeMerge int `json:"approvals_before_merge"`
- ApprovalsRequired int `json:"approvals_required"`
- ApprovalsLeft int `json:"approvals_left"`
- ApprovedBy []*MergeRequestApproverUser `json:"approved_by"`
- Approvers []*MergeRequestApproverUser `json:"approvers"`
- ApproverGroups []*MergeRequestApproverGroup `json:"approver_groups"`
- SuggestedApprovers []*BasicUser `json:"suggested_approvers"`
-}
-
-func (m MergeRequestApprovals) String() string {
- return Stringify(m)
-}
-
-// MergeRequestApproverGroup represents GitLab project level merge request approver group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#project-level-mr-approvals
-type MergeRequestApproverGroup struct {
- Group struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Path string `json:"path"`
- Description string `json:"description"`
- Visibility string `json:"visibility"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- FullName string `json:"full_name"`
- FullPath string `json:"full_path"`
- LFSEnabled bool `json:"lfs_enabled"`
- RequestAccessEnabled bool `json:"request_access_enabled"`
- }
-}
-
-// MergeRequestApprovalRule represents a GitLab merge request approval rule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#get-merge-request-level-rules
-type MergeRequestApprovalRule struct {
- ID int `json:"id"`
- Name string `json:"name"`
- RuleType string `json:"rule_type"`
- EligibleApprovers []*BasicUser `json:"eligible_approvers"`
- ApprovalsRequired int `json:"approvals_required"`
- SourceRule *ProjectApprovalRule `json:"source_rule"`
- Users []*BasicUser `json:"users"`
- Groups []*Group `json:"groups"`
- ContainsHiddenGroups bool `json:"contains_hidden_groups"`
- ApprovedBy []*BasicUser `json:"approved_by"`
- Approved bool `json:"approved"`
-}
-
-// MergeRequestApprovalState represents a GitLab merge request approval state.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#get-the-approval-state-of-merge-requests
-type MergeRequestApprovalState struct {
- ApprovalRulesOverwritten bool `json:"approval_rules_overwritten"`
- Rules []*MergeRequestApprovalRule `json:"rules"`
-}
-
-// String is a stringify for MergeRequestApprovalRule
-func (s MergeRequestApprovalRule) String() string {
- return Stringify(s)
-}
-
-// MergeRequestApproverUser represents GitLab project level merge request approver user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#project-level-mr-approvals
-type MergeRequestApproverUser struct {
- User *BasicUser
-}
-
-// ApproveMergeRequestOptions represents the available ApproveMergeRequest() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#approve-merge-request
-type ApproveMergeRequestOptions struct {
- SHA *string `url:"sha,omitempty" json:"sha,omitempty"`
-}
-
-// 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/ee/api/merge_request_approvals.html#approve-merge-request
-func (s *MergeRequestApprovalsService) ApproveMergeRequest(pid interface{}, mr int, opt *ApproveMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approve", pathEscape(project), mr)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequestApprovals)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// UnapproveMergeRequest unapproves a previously approved merge request on GitLab.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#unapprove-merge-request
-func (s *MergeRequestApprovalsService) UnapproveMergeRequest(pid interface{}, mr int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/unapprove", pathEscape(project), mr)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ChangeMergeRequestApprovalConfigurationOptions represents the available
-// ChangeMergeRequestApprovalConfiguration() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-approval-configuration
-type ChangeMergeRequestApprovalConfigurationOptions struct {
- ApprovalsRequired *int `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
-}
-
-// GetConfiguration shows information about single merge request approvals
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#get-configuration-1
-func (s *MergeRequestApprovalsService) GetConfiguration(pid interface{}, mr int, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approvals", pathEscape(project), mr)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequestApprovals)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// ChangeApprovalConfiguration updates the approval configuration of a merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-approval-configuration
-func (s *MergeRequestApprovalsService) ChangeApprovalConfiguration(pid interface{}, mergeRequest int, opt *ChangeMergeRequestApprovalConfigurationOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approvals", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// ChangeMergeRequestAllowedApproversOptions represents the available
-// ChangeMergeRequestAllowedApprovers() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-allowed-approvers-for-merge-request
-type ChangeMergeRequestAllowedApproversOptions struct {
- ApproverIDs []int `url:"approver_ids" json:"approver_ids"`
- ApproverGroupIDs []int `url:"approver_group_ids" json:"approver_group_ids"`
-}
-
-// ChangeAllowedApprovers updates the approvers for a merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-allowed-approvers-for-merge-request
-func (s *MergeRequestApprovalsService) ChangeAllowedApprovers(pid interface{}, mergeRequest int, opt *ChangeMergeRequestAllowedApproversOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approvers", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// GetApprovalRules requests information about a merge request’s approval rules
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#get-merge-request-level-rules
-func (s *MergeRequestApprovalsService) GetApprovalRules(pid interface{}, mergeRequest int, options ...RequestOptionFunc) ([]*MergeRequestApprovalRule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approval_rules", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var par []*MergeRequestApprovalRule
- resp, err := s.client.Do(req, &par)
- if err != nil {
- return nil, resp, err
- }
-
- return par, resp, err
-}
-
-// GetApprovalState requests information about a merge request’s approval state
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#get-the-approval-state-of-merge-requests
-func (s *MergeRequestApprovalsService) GetApprovalState(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*MergeRequestApprovalState, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approval_state", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pas *MergeRequestApprovalState
- resp, err := s.client.Do(req, &pas)
- if err != nil {
- return nil, resp, err
- }
-
- return pas, resp, err
-}
-
-// CreateMergeRequestApprovalRuleOptions represents the available CreateApprovalRule()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#create-merge-request-level-rule
-type CreateMergeRequestApprovalRuleOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- ApprovalsRequired *int `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
- ApprovalProjectRuleID *int `url:"approval_project_rule_id,omitempty" json:"approval_project_rule_id,omitempty"`
- UserIDs []int `url:"user_ids,omitempty" json:"user_ids,omitempty"`
- GroupIDs []int `url:"group_ids,omitempty" json:"group_ids,omitempty"`
-}
-
-// CreateApprovalRule creates a new MR level approval rule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#create-merge-request-level-rule
-func (s *MergeRequestApprovalsService) CreateApprovalRule(pid interface{}, mergeRequest int, opt *CreateMergeRequestApprovalRuleOptions, options ...RequestOptionFunc) (*MergeRequestApprovalRule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approval_rules", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- par := new(MergeRequestApprovalRule)
- resp, err := s.client.Do(req, &par)
- if err != nil {
- return nil, resp, err
- }
-
- return par, resp, err
-}
-
-// UpdateMergeRequestApprovalRuleOptions represents the available UpdateApprovalRule()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#update-merge-request-level-rule
-type UpdateMergeRequestApprovalRuleOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- ApprovalsRequired *int `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
- UserIDs []int `url:"user_ids,omitempty" json:"user_ids,omitempty"`
- GroupIDs []int `url:"group_ids,omitempty" json:"group_ids,omitempty"`
-}
-
-// UpdateApprovalRule updates an existing approval rule with new options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#update-merge-request-level-rule
-func (s *MergeRequestApprovalsService) UpdateApprovalRule(pid interface{}, mergeRequest int, approvalRule int, opt *UpdateMergeRequestApprovalRuleOptions, options ...RequestOptionFunc) (*MergeRequestApprovalRule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approval_rules/%d", pathEscape(project), mergeRequest, approvalRule)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- par := new(MergeRequestApprovalRule)
- resp, err := s.client.Do(req, &par)
- if err != nil {
- return nil, resp, err
- }
-
- return par, resp, err
-}
-
-// DeleteApprovalRule deletes a mr level approval rule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#delete-merge-request-level-rule
-func (s *MergeRequestApprovalsService) DeleteApprovalRule(pid interface{}, mergeRequest int, approvalRule int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approval_rules/%d", pathEscape(project), mergeRequest, approvalRule)
-
- 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/merge_requests.go b/vendor/github.com/xanzy/go-gitlab/merge_requests.go
deleted file mode 100644
index 72a383bedc..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/merge_requests.go
+++ /dev/null
@@ -1,924 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// MergeRequestsService handles communication with the merge requests related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/merge_requests.html
-type MergeRequestsService struct {
- client *Client
- timeStats *timeStatsService
-}
-
-// MergeRequest represents a GitLab merge request.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/merge_requests.html
-type MergeRequest struct {
- ID int `json:"id"`
- IID int `json:"iid"`
- TargetBranch string `json:"target_branch"`
- SourceBranch string `json:"source_branch"`
- ProjectID int `json:"project_id"`
- Title string `json:"title"`
- State string `json:"state"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
- Upvotes int `json:"upvotes"`
- Downvotes int `json:"downvotes"`
- Author *BasicUser `json:"author"`
- Assignee *BasicUser `json:"assignee"`
- Assignees []*BasicUser `json:"assignees"`
- Reviewers []*BasicUser `json:"reviewers"`
- SourceProjectID int `json:"source_project_id"`
- TargetProjectID int `json:"target_project_id"`
- Labels Labels `json:"labels"`
- Description string `json:"description"`
- WorkInProgress bool `json:"work_in_progress"`
- Milestone *Milestone `json:"milestone"`
- MergeWhenPipelineSucceeds bool `json:"merge_when_pipeline_succeeds"`
- MergeStatus string `json:"merge_status"`
- MergeError string `json:"merge_error"`
- MergedBy *BasicUser `json:"merged_by"`
- MergedAt *time.Time `json:"merged_at"`
- ClosedBy *BasicUser `json:"closed_by"`
- ClosedAt *time.Time `json:"closed_at"`
- Subscribed bool `json:"subscribed"`
- SHA string `json:"sha"`
- MergeCommitSHA string `json:"merge_commit_sha"`
- SquashCommitSHA string `json:"squash_commit_sha"`
- UserNotesCount int `json:"user_notes_count"`
- ChangesCount string `json:"changes_count"`
- ShouldRemoveSourceBranch bool `json:"should_remove_source_branch"`
- ForceRemoveSourceBranch bool `json:"force_remove_source_branch"`
- AllowCollaboration bool `json:"allow_collaboration"`
- WebURL string `json:"web_url"`
- DiscussionLocked bool `json:"discussion_locked"`
- Changes []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"`
- } `json:"changes"`
- User struct {
- CanMerge bool `json:"can_merge"`
- } `json:"user"`
- TimeStats *TimeStats `json:"time_stats"`
- Squash bool `json:"squash"`
- Pipeline *PipelineInfo `json:"pipeline"`
- HeadPipeline *Pipeline `json:"head_pipeline"`
- DiffRefs struct {
- BaseSha string `json:"base_sha"`
- HeadSha string `json:"head_sha"`
- StartSha string `json:"start_sha"`
- } `json:"diff_refs"`
- DivergedCommitsCount int `json:"diverged_commits_count"`
- RebaseInProgress bool `json:"rebase_in_progress"`
- ApprovalsBeforeMerge int `json:"approvals_before_merge"`
- Reference string `json:"reference"`
- FirstContribution bool `json:"first_contribution"`
- TaskCompletionStatus *TasksCompletionStatus `json:"task_completion_status"`
- HasConflicts bool `json:"has_conflicts"`
- BlockingDiscussionsResolved bool `json:"blocking_discussions_resolved"`
- Overflow bool `json:"overflow"`
-}
-
-func (m MergeRequest) String() string {
- return Stringify(m)
-}
-
-// MergeRequestDiffVersion represents Gitlab merge request version.
-//
-// Gitlab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-a-single-mr-diff-version
-type MergeRequestDiffVersion struct {
- ID int `json:"id"`
- HeadCommitSHA string `json:"head_commit_sha,omitempty"`
- BaseCommitSHA string `json:"base_commit_sha,omitempty"`
- StartCommitSHA string `json:"start_commit_sha,omitempty"`
- CreatedAt *time.Time `json:"created_at,omitempty"`
- MergeRequestID int `json:"merge_request_id,omitempty"`
- State string `json:"state,omitempty"`
- RealSize string `json:"real_size,omitempty"`
- Commits []*Commit `json:"commits,omitempty"`
- Diffs []*Diff `json:"diffs,omitempty"`
-}
-
-func (m MergeRequestDiffVersion) String() string {
- return Stringify(m)
-}
-
-// ListMergeRequestsOptions represents the available ListMergeRequests()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#list-merge-requests
-type ListMergeRequestsOptions 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 Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- NotLabels Labels `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
- WithLabelsDetails *bool `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
- WithMergeStatusRecheck *bool `url:"with_merge_status_recheck,omitempty" json:"with_merge_status_recheck,omitempty"`
- CreatedAfter *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
- CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
- UpdatedAfter *time.Time `url:"updated_after,omitempty" json:"updated_after,omitempty"`
- UpdatedBefore *time.Time `url:"updated_before,omitempty" json:"updated_before,omitempty"`
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- ReviewerID *int `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"`
- WIP *string `url:"wip,omitempty" json:"wip,omitempty"`
-}
-
-// 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/ce/api/merge_requests.html#list-merge-requests
-func (s *MergeRequestsService) ListMergeRequests(opt *ListMergeRequestsOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "merge_requests", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var m []*MergeRequest
- resp, err := s.client.Do(req, &m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// ListGroupMergeRequestsOptions represents the available ListGroupMergeRequests()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#list-group-merge-requests
-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 Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- NotLabels Labels `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
- WithLabelsDetails *bool `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
- WithMergeStatusRecheck *bool `url:"with_merge_status_recheck,omitempty" json:"with_merge_status_recheck,omitempty"`
- CreatedAfter *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
- CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
- UpdatedAfter *time.Time `url:"updated_after,omitempty" json:"updated_after,omitempty"`
- UpdatedBefore *time.Time `url:"updated_before,omitempty" json:"updated_before,omitempty"`
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- ReviewerID *int `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"`
- WIP *string `url:"wip,omitempty" json:"wip,omitempty"`
-}
-
-// ListGroupMergeRequests gets all merge requests for this group.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#list-group-merge-requests
-func (s *MergeRequestsService) ListGroupMergeRequests(gid interface{}, opt *ListGroupMergeRequestsOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/merge_requests", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var m []*MergeRequest
- resp, err := s.client.Do(req, &m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// ListProjectMergeRequestsOptions represents the available ListMergeRequests()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#list-project-merge-requests
-type ListProjectMergeRequestsOptions struct {
- ListOptions
- IIDs []int `url:"iids[],omitempty" json:"iids,omitempty"`
- State *string `url:"state,omitempty" json:"state,omitempty"`
- OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
- Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
- Milestone *string `url:"milestone,omitempty" json:"milestone,omitempty"`
- View *string `url:"view,omitempty" json:"view,omitempty"`
- Labels Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- NotLabels Labels `url:"not[labels],comma,omitempty" json:"not[labels],omitempty"`
- WithLabelsDetails *bool `url:"with_labels_details,omitempty" json:"with_labels_details,omitempty"`
- WithMergeStatusRecheck *bool `url:"with_merge_status_recheck,omitempty" json:"with_merge_status_recheck,omitempty"`
- CreatedAfter *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
- CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
- UpdatedAfter *time.Time `url:"updated_after,omitempty" json:"updated_after,omitempty"`
- UpdatedBefore *time.Time `url:"updated_before,omitempty" json:"updated_before,omitempty"`
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- ReviewerID *int `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"`
- WIP *string `url:"wip,omitempty" json:"wip,omitempty"`
-}
-
-// ListProjectMergeRequests gets all merge requests for this project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#list-project-merge-requests
-func (s *MergeRequestsService) ListProjectMergeRequests(pid interface{}, opt *ListProjectMergeRequestsOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var m []*MergeRequest
- resp, err := s.client.Do(req, &m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// GetMergeRequestsOptions represents the available GetMergeRequests()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-single-mr
-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"`
-}
-
-// GetMergeRequest shows information about a single merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-single-mr
-func (s *MergeRequestsService) GetMergeRequest(pid interface{}, mergeRequest int, opt *GetMergeRequestsOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// GetMergeRequestApprovals gets information about a merge requests approvals
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#merge-request-level-mr-approvals
-func (s *MergeRequestsService) GetMergeRequestApprovals(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*MergeRequestApprovals, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/approvals", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- a := new(MergeRequestApprovals)
- resp, err := s.client.Do(req, a)
- if err != nil {
- return nil, resp, err
- }
-
- return a, resp, err
-}
-
-// GetMergeRequestCommitsOptions represents the available GetMergeRequestCommits()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-single-mr-commits
-type GetMergeRequestCommitsOptions ListOptions
-
-// GetMergeRequestCommits gets a list of merge request commits.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-single-mr-commits
-func (s *MergeRequestsService) GetMergeRequestCommits(pid interface{}, mergeRequest int, opt *GetMergeRequestCommitsOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/commits", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var c []*Commit
- resp, err := s.client.Do(req, &c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// GetMergeRequestChangesOptions represents the available GetMergeRequestChanges()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-single-mr-changes
-type GetMergeRequestChangesOptions struct {
- AccessRawDiffs *bool `url:"access_raw_diffs,omitempty" json:"access_raw_diffs,omitempty"`
-}
-
-// GetMergeRequestChanges shows information about the merge request including
-// its files and changes.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-single-mr-changes
-func (s *MergeRequestsService) GetMergeRequestChanges(pid interface{}, mergeRequest int, opt *GetMergeRequestChangesOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/changes", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// GetMergeRequestParticipants gets a list of merge request participants.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_requests.html#get-single-mr-participants
-func (s *MergeRequestsService) GetMergeRequestParticipants(pid interface{}, mergeRequest int, options ...RequestOptionFunc) ([]*BasicUser, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/participants", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ps []*BasicUser
- resp, err := s.client.Do(req, &ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// ListMergeRequestPipelines gets all pipelines for the provided merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#list-mr-pipelines
-func (s *MergeRequestsService) ListMergeRequestPipelines(pid interface{}, mergeRequest int, options ...RequestOptionFunc) ([]*PipelineInfo, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/pipelines", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var p []*PipelineInfo
- resp, err := s.client.Do(req, &p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// CreateMergeRequestPipeline creates a new pipeline for a merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#create-mr-pipeline
-func (s *MergeRequestsService) CreateMergeRequestPipeline(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*PipelineInfo, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/pipelines", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(PipelineInfo)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// GetIssuesClosedOnMergeOptions represents the available GetIssuesClosedOnMerge()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#list-issues-that-will-close-on-merge
-type GetIssuesClosedOnMergeOptions ListOptions
-
-// GetIssuesClosedOnMerge gets all the issues that would be closed by merging the
-// provided merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#list-issues-that-will-close-on-merge
-func (s *MergeRequestsService) GetIssuesClosedOnMerge(pid interface{}, mergeRequest int, opt *GetIssuesClosedOnMergeOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/closes_issues", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var i []*Issue
- resp, err := s.client.Do(req, &i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// CreateMergeRequestOptions represents the available CreateMergeRequest()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#create-mr
-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 Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- AssigneeIDs []int `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
- ReviewerIDs []int `url:"reviewer_ids,omitempty" json:"reviewer_ids,omitempty"`
- TargetProjectID *int `url:"target_project_id,omitempty" json:"target_project_id,omitempty"`
- MilestoneID *int `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
- RemoveSourceBranch *bool `url:"remove_source_branch,omitempty" json:"remove_source_branch,omitempty"`
- Squash *bool `url:"squash,omitempty" json:"squash,omitempty"`
- AllowCollaboration *bool `url:"allow_collaboration,omitempty" json:"allow_collaboration,omitempty"`
-}
-
-// CreateMergeRequest creates a new merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#create-mr
-func (s *MergeRequestsService) CreateMergeRequest(pid interface{}, opt *CreateMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// UpdateMergeRequestOptions represents the available UpdateMergeRequest()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#update-mr
-type UpdateMergeRequestOptions struct {
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- TargetBranch *string `url:"target_branch,omitempty" json:"target_branch,omitempty"`
- AssigneeID *int `url:"assignee_id,omitempty" json:"assignee_id,omitempty"`
- AssigneeIDs []int `url:"assignee_ids,omitempty" json:"assignee_ids,omitempty"`
- ReviewerIDs []int `url:"reviewer_ids,omitempty" json:"reviewer_ids,omitempty"`
- Labels Labels `url:"labels,comma,omitempty" json:"labels,omitempty"`
- AddLabels Labels `url:"add_labels,comma,omitempty" json:"add_labels,omitempty"`
- RemoveLabels Labels `url:"remove_labels,comma,omitempty" json:"remove_labels,omitempty"`
- MilestoneID *int `url:"milestone_id,omitempty" json:"milestone_id,omitempty"`
- StateEvent *string `url:"state_event,omitempty" json:"state_event,omitempty"`
- RemoveSourceBranch *bool `url:"remove_source_branch,omitempty" json:"remove_source_branch,omitempty"`
- Squash *bool `url:"squash,omitempty" json:"squash,omitempty"`
- DiscussionLocked *bool `url:"discussion_locked,omitempty" json:"discussion_locked,omitempty"`
- AllowCollaboration *bool `url:"allow_collaboration,omitempty" json:"allow_collaboration,omitempty"`
-}
-
-// UpdateMergeRequest updates an existing project milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#update-mr
-func (s *MergeRequestsService) UpdateMergeRequest(pid interface{}, mergeRequest int, opt *UpdateMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// DeleteMergeRequest deletes a merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#delete-a-merge-request
-func (s *MergeRequestsService) DeleteMergeRequest(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// AcceptMergeRequestOptions represents the available AcceptMergeRequest()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#accept-mr
-type AcceptMergeRequestOptions struct {
- MergeCommitMessage *string `url:"merge_commit_message,omitempty" json:"merge_commit_message,omitempty"`
- SquashCommitMessage *string `url:"squash_commit_message,omitempty" json:"squash_commit_message,omitempty"`
- Squash *bool `url:"squash,omitempty" json:"squash,omitempty"`
- ShouldRemoveSourceBranch *bool `url:"should_remove_source_branch,omitempty" json:"should_remove_source_branch,omitempty"`
- MergeWhenPipelineSucceeds *bool `url:"merge_when_pipeline_succeeds,omitempty" json:"merge_when_pipeline_succeeds,omitempty"`
- SHA *string `url:"sha,omitempty" json:"sha,omitempty"`
-}
-
-// 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/ce/api/merge_requests.html#accept-mr
-func (s *MergeRequestsService) AcceptMergeRequest(pid interface{}, mergeRequest int, opt *AcceptMergeRequestOptions, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/merge", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// 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/ce/api/merge_requests.html#cancel-merge-when-pipeline-succeeds
-func (s *MergeRequestsService) CancelMergeWhenPipelineSucceeds(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/cancel_merge_when_pipeline_succeeds", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// 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/ce/api/merge_requests.html#rebase-a-merge-request
-func (s *MergeRequestsService) RebaseMergeRequest(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/rebase", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPut, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// GetMergeRequestDiffVersionsOptions represents the available
-// GetMergeRequestDiffVersions() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-mr-diff-versions
-type GetMergeRequestDiffVersionsOptions ListOptions
-
-// GetMergeRequestDiffVersions get a list of merge request diff versions.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-mr-diff-versions
-func (s *MergeRequestsService) GetMergeRequestDiffVersions(pid interface{}, mergeRequest int, opt *GetMergeRequestDiffVersionsOptions, options ...RequestOptionFunc) ([]*MergeRequestDiffVersion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/versions", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var v []*MergeRequestDiffVersion
- resp, err := s.client.Do(req, &v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// GetSingleMergeRequestDiffVersion get a single MR diff version
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-a-single-mr-diff-version
-func (s *MergeRequestsService) GetSingleMergeRequestDiffVersion(pid interface{}, mergeRequest, version int, options ...RequestOptionFunc) (*MergeRequestDiffVersion, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/versions/%d", pathEscape(project), mergeRequest, version)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var v = new(MergeRequestDiffVersion)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// 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/ce/api/merge_requests.html#subscribe-to-a-merge-request
-func (s *MergeRequestsService) SubscribeToMergeRequest(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/subscribe", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// 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/ce/api/merge_requests.html#unsubscribe-from-a-merge-request
-func (s *MergeRequestsService) UnsubscribeFromMergeRequest(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/unsubscribe", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(MergeRequest)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// 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/ce/api/merge_requests.html#create-a-todo
-func (s *MergeRequestsService) CreateTodo(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*Todo, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/todo", pathEscape(project), mergeRequest)
-
- 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
-}
-
-// SetTimeEstimate sets the time estimate for a single project merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#set-a-time-estimate-for-a-merge-request
-func (s *MergeRequestsService) SetTimeEstimate(pid interface{}, mergeRequest int, opt *SetTimeEstimateOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.setTimeEstimate(pid, "merge_requests", mergeRequest, opt, options...)
-}
-
-// ResetTimeEstimate resets the time estimate for a single project merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#reset-the-time-estimate-for-a-merge-request
-func (s *MergeRequestsService) ResetTimeEstimate(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.resetTimeEstimate(pid, "merge_requests", mergeRequest, options...)
-}
-
-// AddSpentTime adds spent time for a single project merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#add-spent-time-for-a-merge-request
-func (s *MergeRequestsService) AddSpentTime(pid interface{}, mergeRequest int, opt *AddSpentTimeOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.addSpentTime(pid, "merge_requests", mergeRequest, opt, options...)
-}
-
-// ResetSpentTime resets the spent time for a single project merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#reset-spent-time-for-a-merge-request
-func (s *MergeRequestsService) ResetSpentTime(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.resetSpentTime(pid, "merge_requests", mergeRequest, options...)
-}
-
-// GetTimeSpent gets the spent time for a single project merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/merge_requests.html#get-time-tracking-stats
-func (s *MergeRequestsService) GetTimeSpent(pid interface{}, mergeRequest int, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- return s.timeStats.getTimeSpent(pid, "merge_requests", mergeRequest, options...)
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/milestones.go b/vendor/github.com/xanzy/go-gitlab/milestones.go
deleted file mode 100644
index e908a31388..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/milestones.go
+++ /dev/null
@@ -1,270 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// MilestonesService handles communication with the milestone related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/milestones.html
-type MilestonesService struct {
- client *Client
-}
-
-// Milestone represents a GitLab milestone.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/milestones.html
-type Milestone struct {
- ID int `json:"id"`
- IID int `json:"iid"`
- ProjectID int `json:"project_id"`
- Title string `json:"title"`
- Description string `json:"description"`
- StartDate *ISOTime `json:"start_date"`
- DueDate *ISOTime `json:"due_date"`
- State string `json:"state"`
- WebURL string `json:"web_url"`
- UpdatedAt *time.Time `json:"updated_at"`
- CreatedAt *time.Time `json:"created_at"`
- Expired *bool `json:"expired"`
-}
-
-func (m Milestone) String() string {
- return Stringify(m)
-}
-
-// ListMilestonesOptions represents the available ListMilestones() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#list-project-milestones
-type ListMilestonesOptions struct {
- ListOptions
- IIDs []int `url:"iids[],omitempty" json:"iids,omitempty"`
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- State *string `url:"state,omitempty" json:"state,omitempty"`
- Search *string `url:"search,omitempty" json:"search,omitempty"`
-}
-
-// ListMilestones returns a list of project milestones.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#list-project-milestones
-func (s *MilestonesService) ListMilestones(pid interface{}, opt *ListMilestonesOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/milestones", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var m []*Milestone
- resp, err := s.client.Do(req, &m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// GetMilestone gets a single project milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#get-single-milestone
-func (s *MilestonesService) GetMilestone(pid interface{}, milestone int, options ...RequestOptionFunc) (*Milestone, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/milestones/%d", pathEscape(project), milestone)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(Milestone)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// CreateMilestoneOptions represents the available CreateMilestone() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#create-new-milestone
-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"`
-}
-
-// CreateMilestone creates a new project milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#create-new-milestone
-func (s *MilestonesService) CreateMilestone(pid interface{}, opt *CreateMilestoneOptions, options ...RequestOptionFunc) (*Milestone, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/milestones", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(Milestone)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// UpdateMilestoneOptions represents the available UpdateMilestone() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#edit-milestone
-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"`
-}
-
-// UpdateMilestone updates an existing project milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#edit-milestone
-func (s *MilestonesService) UpdateMilestone(pid interface{}, milestone int, opt *UpdateMilestoneOptions, options ...RequestOptionFunc) (*Milestone, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/milestones/%d", pathEscape(project), milestone)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- m := new(Milestone)
- resp, err := s.client.Do(req, m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
-
-// DeleteMilestone deletes a specified project milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#delete-project-milestone
-func (s *MilestonesService) DeleteMilestone(pid interface{}, milestone int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/milestones/%d", pathEscape(project), milestone)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
- return s.client.Do(req, nil)
-}
-
-// GetMilestoneIssuesOptions represents the available GetMilestoneIssues() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#get-all-issues-assigned-to-a-single-milestone
-type GetMilestoneIssuesOptions ListOptions
-
-// GetMilestoneIssues gets all issues assigned to a single project milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#get-all-issues-assigned-to-a-single-milestone
-func (s *MilestonesService) GetMilestoneIssues(pid interface{}, milestone int, opt *GetMilestoneIssuesOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/milestones/%d/issues", pathEscape(project), milestone)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var i []*Issue
- resp, err := s.client.Do(req, &i)
- if err != nil {
- return nil, resp, err
- }
-
- return i, resp, err
-}
-
-// GetMilestoneMergeRequestsOptions represents the available
-// GetMilestoneMergeRequests() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#get-all-merge-requests-assigned-to-a-single-milestone
-type GetMilestoneMergeRequestsOptions ListOptions
-
-// GetMilestoneMergeRequests gets all merge requests assigned to a single
-// project milestone.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/milestones.html#get-all-merge-requests-assigned-to-a-single-milestone
-func (s *MilestonesService) GetMilestoneMergeRequests(pid interface{}, milestone int, opt *GetMilestoneMergeRequestsOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/milestones/%d/merge_requests", pathEscape(project), milestone)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var mr []*MergeRequest
- resp, err := s.client.Do(req, &mr)
- if err != nil {
- return nil, resp, err
- }
-
- return mr, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/namespaces.go b/vendor/github.com/xanzy/go-gitlab/namespaces.go
deleted file mode 100644
index 420da15bb7..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/namespaces.go
+++ /dev/null
@@ -1,123 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// NamespacesService handles communication with the namespace related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/namespaces.html
-type NamespacesService struct {
- client *Client
-}
-
-// Namespace represents a GitLab namespace.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/namespaces.html
-type Namespace struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Path string `json:"path"`
- Kind string `json:"kind"`
- FullPath string `json:"full_path"`
- ParentID int `json:"parent_id"`
- MembersCountWithDescendants int `json:"members_count_with_descendants"`
-}
-
-func (n Namespace) String() string {
- return Stringify(n)
-}
-
-// ListNamespacesOptions represents the available ListNamespaces() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/namespaces.html#list-namespaces
-type ListNamespacesOptions struct {
- ListOptions
- Search *string `url:"search,omitempty" json:"search,omitempty"`
-}
-
-// ListNamespaces gets a list of projects accessible by the authenticated user.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/namespaces.html#list-namespaces
-func (s *NamespacesService) ListNamespaces(opt *ListNamespacesOptions, options ...RequestOptionFunc) ([]*Namespace, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "namespaces", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var n []*Namespace
- resp, err := s.client.Do(req, &n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// SearchNamespace gets all namespaces that match your string in their name
-// or path.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/namespaces.html#search-for-namespace
-func (s *NamespacesService) SearchNamespace(query string, options ...RequestOptionFunc) ([]*Namespace, *Response, error) {
- var q struct {
- Search string `url:"search,omitempty" json:"search,omitempty"`
- }
- q.Search = query
-
- req, err := s.client.NewRequest(http.MethodGet, "namespaces", &q, options)
- if err != nil {
- return nil, nil, err
- }
-
- var n []*Namespace
- resp, err := s.client.Do(req, &n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// GetNamespace gets a namespace by id.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/namespaces.html#get-namespace-by-id
-func (s *NamespacesService) GetNamespace(id interface{}, options ...RequestOptionFunc) (*Namespace, *Response, error) {
- namespace, err := parseID(id)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("namespaces/%s", namespace)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Namespace)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/notes.go b/vendor/github.com/xanzy/go-gitlab/notes.go
deleted file mode 100644
index d51d2fa1df..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/notes.go
+++ /dev/null
@@ -1,691 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// NotesService handles communication with the notes related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/notes.html
-type NotesService struct {
- client *Client
-}
-
-// Note represents a GitLab note.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/notes.html
-type Note struct {
- ID int `json:"id"`
- Type NoteTypeValue `json:"type"`
- Body string `json:"body"`
- Attachment string `json:"attachment"`
- Title string `json:"title"`
- FileName string `json:"file_name"`
- Author struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Email string `json:"email"`
- Name string `json:"name"`
- State string `json:"state"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- } `json:"author"`
- System bool `json:"system"`
- ExpiresAt *time.Time `json:"expires_at"`
- UpdatedAt *time.Time `json:"updated_at"`
- CreatedAt *time.Time `json:"created_at"`
- NoteableID int `json:"noteable_id"`
- NoteableType string `json:"noteable_type"`
- Position *NotePosition `json:"position"`
- Resolvable bool `json:"resolvable"`
- Resolved bool `json:"resolved"`
- ResolvedBy struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Email string `json:"email"`
- Name string `json:"name"`
- State string `json:"state"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- } `json:"resolved_by"`
- NoteableIID int `json:"noteable_iid"`
-}
-
-// NotePosition represents the position attributes of a note.
-type NotePosition struct {
- BaseSHA string `json:"base_sha"`
- StartSHA string `json:"start_sha"`
- HeadSHA string `json:"head_sha"`
- PositionType string `json:"position_type"`
- NewPath string `json:"new_path,omitempty"`
- NewLine int `json:"new_line,omitempty"`
- OldPath string `json:"old_path,omitempty"`
- OldLine int `json:"old_line,omitempty"`
- LineRange *LineRange `json:"line_range"`
-}
-
-// LineRange represents the range of a note.
-type LineRange struct {
- StartRange *LinePosition `json:"start"`
- EndRange *LinePosition `json:"end"`
-}
-
-// LinePosition represents a position in a line range.
-type LinePosition struct {
- LineCode string `json:"line_code"`
- Type string `json:"type"`
- OldLine int `json:"old_line"`
- NewLine int `json:"new_line"`
-}
-
-func (n Note) String() string {
- return Stringify(n)
-}
-
-// ListIssueNotesOptions represents the available ListIssueNotes() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#list-project-issue-notes
-type ListIssueNotesOptions struct {
- ListOptions
- OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
- Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
-}
-
-// ListIssueNotes gets a list of all notes for a single issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#list-project-issue-notes
-func (s *NotesService) ListIssueNotes(pid interface{}, issue int, opt *ListIssueNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/notes", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var n []*Note
- resp, err := s.client.Do(req, &n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// GetIssueNote returns a single note for a specific project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#get-single-issue-note
-func (s *NotesService) GetIssueNote(pid interface{}, issue, note int, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/notes/%d", pathEscape(project), issue, note)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// CreateIssueNoteOptions represents the available CreateIssueNote()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#create-new-issue-note
-type CreateIssueNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
- CreatedAt *time.Time `url:"created_at,omitempty" json:"created_at,omitempty"`
-}
-
-// CreateIssueNote creates a new note to a single project issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#create-new-issue-note
-func (s *NotesService) CreateIssueNote(pid interface{}, issue int, opt *CreateIssueNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/notes", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// UpdateIssueNoteOptions represents the available UpdateIssueNote()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#modify-existing-issue-note
-type UpdateIssueNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
-}
-
-// UpdateIssueNote modifies existing note of an issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#modify-existing-issue-note
-func (s *NotesService) UpdateIssueNote(pid interface{}, issue, note int, opt *UpdateIssueNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/notes/%d", pathEscape(project), issue, note)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// DeleteIssueNote deletes an existing note of an issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#delete-an-issue-note
-func (s *NotesService) DeleteIssueNote(pid interface{}, issue, note int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/notes/%d", pathEscape(project), issue, note)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListSnippetNotesOptions represents the available ListSnippetNotes() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#list-all-snippet-notes
-type ListSnippetNotesOptions struct {
- ListOptions
- OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
- Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
-}
-
-// 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/ce/api/notes.html#list-all-snippet-notes
-func (s *NotesService) ListSnippetNotes(pid interface{}, snippet int, opt *ListSnippetNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/notes", pathEscape(project), snippet)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var n []*Note
- resp, err := s.client.Do(req, &n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// GetSnippetNote returns a single note for a given snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#get-single-snippet-note
-func (s *NotesService) GetSnippetNote(pid interface{}, snippet, note int, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/notes/%d", pathEscape(project), snippet, note)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// CreateSnippetNoteOptions represents the available CreateSnippetNote()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#create-new-snippet-note
-type CreateSnippetNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
-}
-
-// 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/ce/api/notes.html#create-new-snippet-note
-func (s *NotesService) CreateSnippetNote(pid interface{}, snippet int, opt *CreateSnippetNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/notes", pathEscape(project), snippet)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// UpdateSnippetNoteOptions represents the available UpdateSnippetNote()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#modify-existing-snippet-note
-type UpdateSnippetNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
-}
-
-// UpdateSnippetNote modifies existing note of a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#modify-existing-snippet-note
-func (s *NotesService) UpdateSnippetNote(pid interface{}, snippet, note int, opt *UpdateSnippetNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/notes/%d", pathEscape(project), snippet, note)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// DeleteSnippetNote deletes an existing note of a snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#delete-a-snippet-note
-func (s *NotesService) DeleteSnippetNote(pid interface{}, snippet, note int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/notes/%d", pathEscape(project), snippet, note)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListMergeRequestNotesOptions represents the available ListMergeRequestNotes()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#list-all-merge-request-notes
-type ListMergeRequestNotesOptions struct {
- ListOptions
- OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
- Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
-}
-
-// ListMergeRequestNotes gets a list of all notes for a single merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#list-all-merge-request-notes
-func (s *NotesService) ListMergeRequestNotes(pid interface{}, mergeRequest int, opt *ListMergeRequestNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/notes", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var n []*Note
- resp, err := s.client.Do(req, &n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// GetMergeRequestNote returns a single note for a given merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#get-single-merge-request-note
-func (s *NotesService) GetMergeRequestNote(pid interface{}, mergeRequest, note int, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/notes/%d", pathEscape(project), mergeRequest, note)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// CreateMergeRequestNoteOptions represents the available
-// CreateMergeRequestNote() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#create-new-merge-request-note
-type CreateMergeRequestNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
-}
-
-// CreateMergeRequestNote creates a new note for a single merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#create-new-merge-request-note
-func (s *NotesService) CreateMergeRequestNote(pid interface{}, mergeRequest int, opt *CreateMergeRequestNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/notes", pathEscape(project), mergeRequest)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// UpdateMergeRequestNoteOptions represents the available
-// UpdateMergeRequestNote() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#modify-existing-merge-request-note
-type UpdateMergeRequestNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
-}
-
-// UpdateMergeRequestNote modifies existing note of a merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#modify-existing-merge-request-note
-func (s *NotesService) UpdateMergeRequestNote(pid interface{}, mergeRequest, note int, opt *UpdateMergeRequestNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/merge_requests/%d/notes/%d", pathEscape(project), mergeRequest, note)
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// DeleteMergeRequestNote deletes an existing note of a merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notes.html#delete-a-merge-request-note
-func (s *NotesService) DeleteMergeRequestNote(pid interface{}, mergeRequest, note int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/merge_requests/%d/notes/%d", pathEscape(project), mergeRequest, note)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListEpicNotesOptions represents the available ListEpicNotes() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/notes.html#list-all-epic-notes
-type ListEpicNotesOptions struct {
- ListOptions
- OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
- Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
-}
-
-// ListEpicNotes gets a list of all notes for a single epic.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/notes.html#list-all-epic-notes
-func (s *NotesService) ListEpicNotes(gid interface{}, epic int, opt *ListEpicNotesOptions, options ...RequestOptionFunc) ([]*Note, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/notes", pathEscape(group), epic)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var n []*Note
- resp, err := s.client.Do(req, &n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// GetEpicNote returns a single note for an epic.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/notes.html#get-single-epic-note
-func (s *NotesService) GetEpicNote(gid interface{}, epic, note int, options ...RequestOptionFunc) (*Note, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/notes/%d", pathEscape(group), epic, note)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// CreateEpicNoteOptions represents the available CreateEpicNote() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/notes.html#create-new-epic-note
-type CreateEpicNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
-}
-
-// CreateEpicNote creates a new note for a single merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/notes.html#create-new-epic-note
-func (s *NotesService) CreateEpicNote(gid interface{}, epic int, opt *CreateEpicNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/notes", pathEscape(group), epic)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// UpdateEpicNoteOptions represents the available UpdateEpicNote() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/notes.html#modify-existing-epic-note
-type UpdateEpicNoteOptions struct {
- Body *string `url:"body,omitempty" json:"body,omitempty"`
-}
-
-// UpdateEpicNote modifies existing note of an epic.
-//
-// https://docs.gitlab.com/ee/api/notes.html#modify-existing-epic-note
-func (s *NotesService) UpdateEpicNote(gid interface{}, epic, note int, opt *UpdateEpicNoteOptions, options ...RequestOptionFunc) (*Note, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/notes/%d", pathEscape(group), epic, note)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- n := new(Note)
- resp, err := s.client.Do(req, n)
- if err != nil {
- return nil, resp, err
- }
-
- return n, resp, err
-}
-
-// DeleteEpicNote deletes an existing note of a merge request.
-//
-// https://docs.gitlab.com/ee/api/notes.html#delete-an-epic-note
-func (s *NotesService) DeleteEpicNote(gid interface{}, epic, note int, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/notes/%d", pathEscape(group), epic, note)
-
- 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/notifications.go b/vendor/github.com/xanzy/go-gitlab/notifications.go
deleted file mode 100644
index 06385b377c..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/notifications.go
+++ /dev/null
@@ -1,230 +0,0 @@
-//
-// 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 (
- "errors"
- "fmt"
- "net/http"
-)
-
-// NotificationSettingsService handles communication with the notification settings
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/notification_settings.html
-type NotificationSettingsService struct {
- client *Client
-}
-
-// NotificationSettings represents the Gitlab notification setting.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notification_settings.html#notification-settings
-type NotificationSettings struct {
- Level NotificationLevelValue `json:"level"`
- NotificationEmail string `json:"notification_email"`
- Events *NotificationEvents `json:"events"`
-}
-
-// NotificationEvents represents the available notification setting events.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notification_settings.html#notification-settings
-type NotificationEvents struct {
- CloseIssue bool `json:"close_issue"`
- CloseMergeRequest bool `json:"close_merge_request"`
- FailedPipeline bool `json:"failed_pipeline"`
- MergeMergeRequest bool `json:"merge_merge_request"`
- NewIssue bool `json:"new_issue"`
- NewMergeRequest bool `json:"new_merge_request"`
- NewNote bool `json:"new_note"`
- 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"`
-}
-
-func (ns NotificationSettings) String() string {
- return Stringify(ns)
-}
-
-// GetGlobalSettings returns current notification settings and email address.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notification_settings.html#global-notification-settings
-func (s *NotificationSettingsService) GetGlobalSettings(options ...RequestOptionFunc) (*NotificationSettings, *Response, error) {
- u := "notification_settings"
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ns := new(NotificationSettings)
- resp, err := s.client.Do(req, ns)
- if err != nil {
- return nil, resp, err
- }
-
- return ns, resp, err
-}
-
-// NotificationSettingsOptions represents the available options that can be passed
-// to the API when updating the notification settings.
-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"`
- MergeMergeRequest *bool `url:"merge_merge_request,omitempty" json:"merge_merge_request,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"`
- 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"`
-}
-
-// UpdateGlobalSettings updates current notification settings and email address.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notification_settings.html#update-global-notification-settings
-func (s *NotificationSettingsService) UpdateGlobalSettings(opt *NotificationSettingsOptions, options ...RequestOptionFunc) (*NotificationSettings, *Response, error) {
- if opt.Level != nil && *opt.Level == GlobalNotificationLevel {
- return nil, nil, errors.New(
- "notification level 'global' is not valid for global notification settings")
- }
-
- u := "notification_settings"
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ns := new(NotificationSettings)
- resp, err := s.client.Do(req, ns)
- if err != nil {
- return nil, resp, err
- }
-
- return ns, resp, err
-}
-
-// GetSettingsForGroup returns current group notification settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notification_settings.html#group-project-level-notification-settings
-func (s *NotificationSettingsService) GetSettingsForGroup(gid interface{}, options ...RequestOptionFunc) (*NotificationSettings, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/notification_settings", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ns := new(NotificationSettings)
- resp, err := s.client.Do(req, ns)
- if err != nil {
- return nil, resp, err
- }
-
- return ns, resp, err
-}
-
-// GetSettingsForProject returns current project notification settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notification_settings.html#group-project-level-notification-settings
-func (s *NotificationSettingsService) GetSettingsForProject(pid interface{}, options ...RequestOptionFunc) (*NotificationSettings, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/notification_settings", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ns := new(NotificationSettings)
- resp, err := s.client.Do(req, ns)
- if err != nil {
- return nil, resp, err
- }
-
- return ns, resp, err
-}
-
-// UpdateSettingsForGroup updates current group notification settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notification_settings.html#update-group-project-level-notification-settings
-func (s *NotificationSettingsService) UpdateSettingsForGroup(gid interface{}, opt *NotificationSettingsOptions, options ...RequestOptionFunc) (*NotificationSettings, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/notification_settings", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ns := new(NotificationSettings)
- resp, err := s.client.Do(req, ns)
- if err != nil {
- return nil, resp, err
- }
-
- return ns, resp, err
-}
-
-// UpdateSettingsForProject updates current project notification settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/notification_settings.html#update-group-project-level-notification-settings
-func (s *NotificationSettingsService) UpdateSettingsForProject(pid interface{}, opt *NotificationSettingsOptions, options ...RequestOptionFunc) (*NotificationSettings, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/notification_settings", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ns := new(NotificationSettings)
- resp, err := s.client.Do(req, ns)
- if err != nil {
- return nil, resp, err
- }
-
- return ns, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/packages.go b/vendor/github.com/xanzy/go-gitlab/packages.go
deleted file mode 100644
index 390ada242e..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/packages.go
+++ /dev/null
@@ -1,168 +0,0 @@
-//
-// Copyright 2021, Kordian Bruck
-//
-// 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"
- "time"
-)
-
-// PackagesService handles communication with the packages related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/packages.html
-type PackagesService struct {
- client *Client
-}
-
-// Package represents a GitLab single package.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/packages.html
-type Package struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Version string `json:"version"`
- PackageType string `json:"package_type"`
- Links *PackageLinks `json:"_links"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-func (s Package) String() string {
- return Stringify(s)
-}
-
-// PackageLinks holds links for itself and deleting.
-type PackageLinks struct {
- WebPath string `json:"web_path"`
- DeleteAPIPath string `json:"delete_api_path"`
-}
-
-func (s PackageLinks) String() string {
- return Stringify(s)
-}
-
-// PackageFile represents one file contained within a package.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/packages.html
-type PackageFile struct {
- ID int `json:"id"`
- PackageID int `json:"package_id"`
- CreatedAt *time.Time `json:"created_at"`
- FileName string `json:"file_name"`
- Size int `json:"size"`
- FileMD5 string `json:"file_md5"`
- FileSHA1 string `json:"file_sha1"`
- Pipeline *[]Pipeline `json:"pipelines"`
-}
-
-func (s PackageFile) String() string {
- return Stringify(s)
-}
-
-// ListProjectPackagesOptions are the parameters available in a ListProjectPackages() Operation.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/packages.html#within-a-project
-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"`
- IncludeVersionless *bool `url:"include_versionless,omitempty" json:"include_versionless,omitempty"`
-}
-
-// ListProjectPackages gets a list of packages in a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/packages.html#within-a-project
-func (s *PackagesService) ListProjectPackages(pid interface{}, opt *ListProjectPackagesOptions, options ...RequestOptionFunc) ([]*Package, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/packages", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ps []*Package
- resp, err := s.client.Do(req, &ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// ListPackageFilesOptions represents the available
-// ListPackageFiles() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/packages.html#list-package-files
-type ListPackageFilesOptions ListOptions
-
-// ListPackageFiles gets a list of files that are within a package
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/packages.html#list-package-files
-func (s *PackagesService) ListPackageFiles(pid interface{}, pkg int, opt *ListPackageFilesOptions, options ...RequestOptionFunc) ([]*PackageFile, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/packages/%d/package_files",
- pathEscape(project),
- pkg,
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pfs []*PackageFile
- resp, err := s.client.Do(req, &pfs)
- if err != nil {
- return nil, resp, err
- }
-
- return pfs, resp, err
-}
-
-// DeleteProjectPackage deletes a package in a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/packages.html#delete-a-project-package
-func (s *PackagesService) DeleteProjectPackage(pid interface{}, pkg int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/packages/%d", pathEscape(project), pkg)
-
- 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/pages_domains.go b/vendor/github.com/xanzy/go-gitlab/pages_domains.go
deleted file mode 100644
index 52b6f7bd46..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/pages_domains.go
+++ /dev/null
@@ -1,213 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// PagesDomainsService handles communication with the pages domains
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pages_domains.html
-type PagesDomainsService struct {
- client *Client
-}
-
-// PagesDomain represents a pages domain.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pages_domains.html
-type PagesDomain struct {
- Domain string `json:"domain"`
- AutoSslEnabled bool `json:"auto_ssl_enabled"`
- URL string `json:"url"`
- ProjectID int `json:"project_id"`
- Verified bool `json:"verified"`
- VerificationCode string `json:"verification_code"`
- EnabledUntil *time.Time `json:"enabled_until"`
- Certificate struct {
- Expired bool `json:"expired"`
- Expiration *time.Time `json:"expiration"`
- } `json:"certificate"`
-}
-
-// ListPagesDomainsOptions represents the available ListPagesDomains() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pages_domains.html#list-pages-domains
-type ListPagesDomainsOptions ListOptions
-
-// ListPagesDomains gets a list of project pages domains.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pages_domains.html#list-pages-domains
-func (s *PagesDomainsService) ListPagesDomains(pid interface{}, opt *ListPagesDomainsOptions, options ...RequestOptionFunc) ([]*PagesDomain, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pages/domains", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pd []*PagesDomain
- resp, err := s.client.Do(req, &pd)
- if err != nil {
- return nil, resp, err
- }
-
- return pd, resp, err
-}
-
-// ListAllPagesDomains gets a list of all pages domains.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pages_domains.html#list-all-pages-domains
-func (s *PagesDomainsService) ListAllPagesDomains(options ...RequestOptionFunc) ([]*PagesDomain, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "pages/domains", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pd []*PagesDomain
- resp, err := s.client.Do(req, &pd)
- if err != nil {
- return nil, resp, err
- }
-
- return pd, resp, err
-}
-
-// GetPagesDomain get a specific pages domain for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pages_domains.html#single-pages-domain
-func (s *PagesDomainsService) GetPagesDomain(pid interface{}, domain string, options ...RequestOptionFunc) (*PagesDomain, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pages/domains/%s", pathEscape(project), domain)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pd := new(PagesDomain)
- resp, err := s.client.Do(req, pd)
- if err != nil {
- return nil, resp, err
- }
-
- return pd, resp, err
-}
-
-// CreatePagesDomainOptions represents the available CreatePagesDomain() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pages_domains.html#create-new-pages-domain
-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:"certifiate,omitempty" json:"certifiate,omitempty"`
- Key *string `url:"key,omitempty" json:"key,omitempty"`
-}
-
-// CreatePagesDomain creates a new project pages domain.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pages_domains.html#create-new-pages-domain
-func (s *PagesDomainsService) CreatePagesDomain(pid interface{}, opt *CreatePagesDomainOptions, options ...RequestOptionFunc) (*PagesDomain, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pages/domains", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pd := new(PagesDomain)
- resp, err := s.client.Do(req, pd)
- if err != nil {
- return nil, resp, err
- }
-
- return pd, resp, err
-}
-
-// UpdatePagesDomainOptions represents the available UpdatePagesDomain() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pages_domains.html#update-pages-domain
-type UpdatePagesDomainOptions struct {
- AutoSslEnabled *bool `url:"auto_ssl_enabled,omitempty" json:"auto_ssl_enabled,omitempty"`
- Certificate *string `url:"certifiate,omitempty" json:"certifiate,omitempty"`
- Key *string `url:"key,omitempty" json:"key,omitempty"`
-}
-
-// UpdatePagesDomain updates an existing project pages domain.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pages_domains.html#update-pages-domain
-func (s *PagesDomainsService) UpdatePagesDomain(pid interface{}, domain string, opt *UpdatePagesDomainOptions, options ...RequestOptionFunc) (*PagesDomain, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pages/domains/%s", pathEscape(project), domain)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pd := new(PagesDomain)
- resp, err := s.client.Do(req, pd)
- if err != nil {
- return nil, resp, err
- }
-
- return pd, resp, err
-}
-
-// DeletePagesDomain deletes an existing prject pages domain.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pages_domains.html#delete-pages-domain
-func (s *PagesDomainsService) DeletePagesDomain(pid interface{}, domain string, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/pages/domains/%s", pathEscape(project), domain)
-
- 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/pipeline_schedules.go b/vendor/github.com/xanzy/go-gitlab/pipeline_schedules.go
deleted file mode 100644
index 8a35ecf080..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/pipeline_schedules.go
+++ /dev/null
@@ -1,347 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// PipelineSchedulesService handles communication with the pipeline
-// schedules related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipeline_schedules.html
-type PipelineSchedulesService struct {
- client *Client
-}
-
-// PipelineSchedule represents a pipeline schedule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html
-type PipelineSchedule struct {
- ID int `json:"id"`
- Description string `json:"description"`
- Ref string `json:"ref"`
- Cron string `json:"cron"`
- CronTimezone string `json:"cron_timezone"`
- NextRunAt *time.Time `json:"next_run_at"`
- Active bool `json:"active"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
- Owner *User `json:"owner"`
- LastPipeline struct {
- ID int `json:"id"`
- SHA string `json:"sha"`
- Ref string `json:"ref"`
- Status string `json:"status"`
- } `json:"last_pipeline"`
- Variables []*PipelineVariable `json:"variables"`
-}
-
-// ListPipelineSchedulesOptions represents the available ListPipelineTriggers() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#list-project-triggers
-type ListPipelineSchedulesOptions ListOptions
-
-// ListPipelineSchedules gets a list of project triggers.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html
-func (s *PipelineSchedulesService) ListPipelineSchedules(pid interface{}, opt *ListPipelineSchedulesOptions, options ...RequestOptionFunc) ([]*PipelineSchedule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ps []*PipelineSchedule
- resp, err := s.client.Do(req, &ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// GetPipelineSchedule gets a pipeline schedule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html
-func (s *PipelineSchedulesService) GetPipelineSchedule(pid interface{}, schedule int, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules/%d", pathEscape(project), schedule)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(PipelineSchedule)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// CreatePipelineScheduleOptions represents the available
-// CreatePipelineSchedule() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#create-a-new-pipeline-schedule
-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"`
-}
-
-// CreatePipelineSchedule creates a pipeline schedule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#create-a-new-pipeline-schedule
-func (s *PipelineSchedulesService) CreatePipelineSchedule(pid interface{}, opt *CreatePipelineScheduleOptions, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(PipelineSchedule)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// EditPipelineScheduleOptions represents the available
-// EditPipelineSchedule() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#create-a-new-pipeline-schedule
-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"`
-}
-
-// EditPipelineSchedule edits a pipeline schedule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#edit-a-pipeline-schedule
-func (s *PipelineSchedulesService) EditPipelineSchedule(pid interface{}, schedule int, opt *EditPipelineScheduleOptions, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules/%d", pathEscape(project), schedule)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(PipelineSchedule)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// TakeOwnershipOfPipelineSchedule sets the owner of the specified
-// pipeline schedule to the user issuing the request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#take-ownership-of-a-pipeline-schedule
-func (s *PipelineSchedulesService) TakeOwnershipOfPipelineSchedule(pid interface{}, schedule int, options ...RequestOptionFunc) (*PipelineSchedule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules/%d/take_ownership", pathEscape(project), schedule)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(PipelineSchedule)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// DeletePipelineSchedule deletes a pipeline schedule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#delete-a-pipeline-schedule
-func (s *PipelineSchedulesService) DeletePipelineSchedule(pid interface{}, schedule int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules/%d", pathEscape(project), schedule)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// RunPipelineSchedule triggers a new scheduled pipeline to run immediately.
-//
-// Gitlab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#run-a-scheduled-pipeline-immediately
-func (s *PipelineSchedulesService) RunPipelineSchedule(pid interface{}, schedule int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules/%d/play", pathEscape(project), schedule)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// CreatePipelineScheduleVariableOptions represents the available
-// CreatePipelineScheduleVariable() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#create-a-new-pipeline-schedule
-type CreatePipelineScheduleVariableOptions struct {
- Key *string `url:"key" json:"key"`
- Value *string `url:"value" json:"value"`
- VariableType *string `url:"variable_type,omitempty" json:"variable_type,omitempty"`
-}
-
-// CreatePipelineScheduleVariable creates a pipeline schedule variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#create-a-new-pipeline-schedule
-func (s *PipelineSchedulesService) CreatePipelineScheduleVariable(pid interface{}, schedule int, opt *CreatePipelineScheduleVariableOptions, options ...RequestOptionFunc) (*PipelineVariable, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules/%d/variables", pathEscape(project), schedule)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(PipelineVariable)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// EditPipelineScheduleVariableOptions represents the available
-// EditPipelineScheduleVariable() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#edit-a-pipeline-schedule-variable
-type EditPipelineScheduleVariableOptions struct {
- Value *string `url:"value" json:"value"`
- VariableType *string `url:"variable_type,omitempty" json:"variable_type,omitempty"`
-}
-
-// EditPipelineScheduleVariable creates a pipeline schedule variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#edit-a-pipeline-schedule-variable
-func (s *PipelineSchedulesService) EditPipelineScheduleVariable(pid interface{}, schedule int, key string, opt *EditPipelineScheduleVariableOptions, options ...RequestOptionFunc) (*PipelineVariable, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules/%d/variables/%s", pathEscape(project), schedule, key)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(PipelineVariable)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// DeletePipelineScheduleVariable creates a pipeline schedule variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_schedules.html#delete-a-pipeline-schedule-variable
-func (s *PipelineSchedulesService) DeletePipelineScheduleVariable(pid interface{}, schedule int, key string, options ...RequestOptionFunc) (*PipelineVariable, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline_schedules/%d/variables/%s", pathEscape(project), schedule, key)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(PipelineVariable)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/pipeline_triggers.go b/vendor/github.com/xanzy/go-gitlab/pipeline_triggers.go
deleted file mode 100644
index 7fc58752b9..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/pipeline_triggers.go
+++ /dev/null
@@ -1,248 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// PipelineTriggersService handles Project pipeline triggers.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html
-type PipelineTriggersService struct {
- client *Client
-}
-
-// PipelineTrigger represents a project pipeline trigger.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#pipeline-triggers
-type PipelineTrigger struct {
- ID int `json:"id"`
- Description string `json:"description"`
- CreatedAt *time.Time `json:"created_at"`
- DeletedAt *time.Time `json:"deleted_at"`
- LastUsed *time.Time `json:"last_used"`
- Token string `json:"token"`
- UpdatedAt *time.Time `json:"updated_at"`
- Owner *User `json:"owner"`
-}
-
-// ListPipelineTriggersOptions represents the available ListPipelineTriggers() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#list-project-triggers
-type ListPipelineTriggersOptions ListOptions
-
-// ListPipelineTriggers gets a list of project triggers.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#list-project-triggers
-func (s *PipelineTriggersService) ListPipelineTriggers(pid interface{}, opt *ListPipelineTriggersOptions, options ...RequestOptionFunc) ([]*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pt []*PipelineTrigger
- resp, err := s.client.Do(req, &pt)
- if err != nil {
- return nil, resp, err
- }
-
- return pt, resp, err
-}
-
-// GetPipelineTrigger gets a specific pipeline trigger for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#get-trigger-details
-func (s *PipelineTriggersService) GetPipelineTrigger(pid interface{}, trigger int, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers/%d", pathEscape(project), trigger)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pt := new(PipelineTrigger)
- resp, err := s.client.Do(req, pt)
- if err != nil {
- return nil, resp, err
- }
-
- return pt, resp, err
-}
-
-// AddPipelineTriggerOptions represents the available AddPipelineTrigger() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#create-a-project-trigger
-type AddPipelineTriggerOptions struct {
- Description *string `url:"description,omitempty" json:"description,omitempty"`
-}
-
-// AddPipelineTrigger adds a pipeline trigger to a specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#create-a-project-trigger
-func (s *PipelineTriggersService) AddPipelineTrigger(pid interface{}, opt *AddPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pt := new(PipelineTrigger)
- resp, err := s.client.Do(req, pt)
- if err != nil {
- return nil, resp, err
- }
-
- return pt, resp, err
-}
-
-// EditPipelineTriggerOptions represents the available EditPipelineTrigger() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#update-a-project-trigger
-type EditPipelineTriggerOptions struct {
- Description *string `url:"description,omitempty" json:"description,omitempty"`
-}
-
-// EditPipelineTrigger edits a trigger for a specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#update-a-project-trigger
-func (s *PipelineTriggersService) EditPipelineTrigger(pid interface{}, trigger int, opt *EditPipelineTriggerOptions, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers/%d", pathEscape(project), trigger)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pt := new(PipelineTrigger)
- resp, err := s.client.Do(req, pt)
- if err != nil {
- return nil, resp, err
- }
-
- return pt, resp, err
-}
-
-// TakeOwnershipOfPipelineTrigger sets the owner of the specified
-// pipeline trigger to the user issuing the request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#take-ownership-of-a-project-trigger
-func (s *PipelineTriggersService) TakeOwnershipOfPipelineTrigger(pid interface{}, trigger int, options ...RequestOptionFunc) (*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers/%d/take_ownership", pathEscape(project), trigger)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pt := new(PipelineTrigger)
- resp, err := s.client.Do(req, pt)
- if err != nil {
- return nil, resp, err
- }
-
- return pt, resp, err
-}
-
-// DeletePipelineTrigger removes a trigger from a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipeline_triggers.html#remove-a-project-trigger
-func (s *PipelineTriggersService) DeletePipelineTrigger(pid interface{}, trigger int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers/%d", pathEscape(project), trigger)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// RunPipelineTriggerOptions represents the available RunPipelineTrigger() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/ci/triggers/README.html#triggering-a-pipeline
-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"`
-}
-
-// RunPipelineTrigger starts a trigger from a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/ci/triggers/README.html#triggering-a-pipeline
-func (s *PipelineTriggersService) RunPipelineTrigger(pid interface{}, opt *RunPipelineTriggerOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/trigger/pipeline", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pt := new(Pipeline)
- resp, err := s.client.Do(req, pt)
- if err != nil {
- return nil, resp, err
- }
-
- return pt, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/pipelines.go b/vendor/github.com/xanzy/go-gitlab/pipelines.go
deleted file mode 100644
index aedcefd6c4..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/pipelines.go
+++ /dev/null
@@ -1,359 +0,0 @@
-//
-// Copyright 2021, Igor Varavko
-//
-// 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"
- "time"
-)
-
-// PipelinesService handles communication with the repositories related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html
-type PipelinesService struct {
- client *Client
-}
-
-// PipelineVariable represents a pipeline variable.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html
-type PipelineVariable struct {
- Key string `json:"key"`
- Value string `json:"value"`
- VariableType string `json:"variable_type"`
-}
-
-// Pipeline represents a GitLab pipeline.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html
-type Pipeline struct {
- ID int `json:"id"`
- Status string `json:"status"`
- Ref string `json:"ref"`
- SHA string `json:"sha"`
- BeforeSHA string `json:"before_sha"`
- Tag bool `json:"tag"`
- YamlErrors string `json:"yaml_errors"`
- User *BasicUser `json:"user"`
- UpdatedAt *time.Time `json:"updated_at"`
- CreatedAt *time.Time `json:"created_at"`
- StartedAt *time.Time `json:"started_at"`
- FinishedAt *time.Time `json:"finished_at"`
- CommittedAt *time.Time `json:"committed_at"`
- Duration int `json:"duration"`
- Coverage string `json:"coverage"`
- WebURL string `json:"web_url"`
- DetailedStatus *DetailedStatus `json:"detailed_status"`
-}
-
-// DetailedStatus contains detailed information about the status of a pipeline.
-type DetailedStatus struct {
- Icon string `json:"icon"`
- Text string `json:"text"`
- Label string `json:"label"`
- Group string `json:"group"`
- Tooltip string `json:"tooltip"`
- HasDetails bool `json:"has_details"`
- DetailsPath string `json:"details_path"`
- Illustration struct {
- Image string `json:"image"`
- } `json:"illustration"`
- Favicon string `json:"favicon"`
-}
-
-func (p Pipeline) String() string {
- return Stringify(p)
-}
-
-// PipelineTestReport contains a detailed report of a test run.
-type PipelineTestReport struct {
- TotalTime float64 `json:"total_time"`
- TotalCount int `json:"total_count"`
- SuccessCount int `json:"success_count"`
- FailedCount int `json:"failed_count"`
- SkippedCount int `json:"skipped_count"`
- ErrorCount int `json:"error_count"`
- TestSuites []PipelineTestSuites `json:"test_suites"`
-}
-
-// PipelineTestSuites contains test suites results.
-type PipelineTestSuites struct {
- Name string `json:"name"`
- TotalTime float64 `json:"total_time"`
- TotalCount int `json:"total_count"`
- SuccessCount int `json:"success_count"`
- FailedCount int `json:"failed_count"`
- SkippedCount int `json:"skipped_count"`
- ErrorCount int `json:"error_count"`
- TestCases []PipelineTestCases `json:"test_cases"`
-}
-
-// PipelineTestCases contains test cases details.
-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 string `json:"system_output"`
- StackTrace string `json:"stack_trace"`
- AttachmentURL string `json:"attachment_url"`
- RecentFailures RecentFailures `json:"recent_failures"`
-}
-
-// RecentFailures contains failures count for the project's default branch.
-type RecentFailures struct {
- Count int `json:"count"`
- BaseBranch string `json:"base_branch"`
-}
-
-func (p PipelineTestReport) String() string {
- return Stringify(p)
-}
-
-// PipelineInfo shows the basic entities of a pipeline, mostly used as fields
-// on other assets, like Commit.
-type PipelineInfo struct {
- ID int `json:"id"`
- Status string `json:"status"`
- Ref string `json:"ref"`
- SHA string `json:"sha"`
- WebURL string `json:"web_url"`
- UpdatedAt *time.Time `json:"updated_at"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-func (p PipelineInfo) String() string {
- return Stringify(p)
-}
-
-// ListProjectPipelinesOptions represents the available ListProjectPipelines() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html#list-project-pipelines
-type ListProjectPipelinesOptions struct {
- ListOptions
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- Status *BuildStateValue `url:"status,omitempty" json:"status,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"`
-}
-
-// ListProjectPipelines gets a list of project piplines.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html#list-project-pipelines
-func (s *PipelinesService) ListProjectPipelines(pid interface{}, opt *ListProjectPipelinesOptions, options ...RequestOptionFunc) ([]*PipelineInfo, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipelines", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var p []*PipelineInfo
- resp, err := s.client.Do(req, &p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// GetPipeline gets a single project pipeline.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html#get-a-single-pipeline
-func (s *PipelinesService) GetPipeline(pid interface{}, pipeline int, options ...RequestOptionFunc) (*Pipeline, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipelines/%d", pathEscape(project), pipeline)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Pipeline)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// GetPipelineVariables gets the variables of a single project pipeline.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html#get-variables-of-a-pipeline
-func (s *PipelinesService) GetPipelineVariables(pid interface{}, pipeline int, options ...RequestOptionFunc) ([]*PipelineVariable, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipelines/%d/variables", pathEscape(project), pipeline)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var p []*PipelineVariable
- resp, err := s.client.Do(req, &p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// GetPipelineTestReport gets the test report of a single project pipeline.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/pipelines.html#get-a-pipelines-test-report
-func (s *PipelinesService) GetPipelineTestReport(pid interface{}, pipeline int) (*PipelineTestReport, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipelines/%d/test_report", pathEscape(project), pipeline)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, nil)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(PipelineTestReport)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// CreatePipelineOptions represents the available CreatePipeline() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html#create-a-new-pipeline
-type CreatePipelineOptions struct {
- Ref *string `url:"ref" json:"ref"`
- Variables []*PipelineVariable `url:"variables,omitempty" json:"variables,omitempty"`
-}
-
-// CreatePipeline creates a new project pipeline.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html#create-a-new-pipeline
-func (s *PipelinesService) CreatePipeline(pid interface{}, opt *CreatePipelineOptions, options ...RequestOptionFunc) (*Pipeline, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipeline", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Pipeline)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// RetryPipelineBuild retries failed builds in a pipeline
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipelines.html#retry-failed-builds-in-a-pipeline
-func (s *PipelinesService) RetryPipelineBuild(pid interface{}, pipeline int, options ...RequestOptionFunc) (*Pipeline, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipelines/%d/retry", pathEscape(project), pipeline)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Pipeline)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// CancelPipelineBuild cancels a pipeline builds
-//
-// GitLab API docs:
-//https://docs.gitlab.com/ce/api/pipelines.html#cancel-a-pipelines-builds
-func (s *PipelinesService) CancelPipelineBuild(pid interface{}, pipeline int, options ...RequestOptionFunc) (*Pipeline, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/pipelines/%d/cancel", pathEscape(project), pipeline)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Pipeline)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// DeletePipeline deletes an existing pipeline.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/pipelines.html#delete-a-pipeline
-func (s *PipelinesService) DeletePipeline(pid interface{}, pipeline int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/pipelines/%d", pathEscape(project), pipeline)
-
- 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/project_access_tokens.go b/vendor/github.com/xanzy/go-gitlab/project_access_tokens.go
deleted file mode 100644
index ea545870d8..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/project_access_tokens.go
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// Copyright 2021, Patrick Webster
-//
-// 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"
- "time"
-)
-
-// ProjectAccessTokensService handles communication with the
-// project access tokens related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/resource_access_tokens.html
-type ProjectAccessTokensService struct {
- client *Client
-}
-
-// ProjectAccessToken represents a GitLab Project Access Token.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/resource_access_tokens.html
-type ProjectAccessToken struct {
- ID int `json:"id"`
- UserID int `json:"user_id"`
- Name string `json:"name"`
- Scopes []string `json:"scopes"`
- CreatedAt *time.Time `json:"created_at"`
- ExpiresAt *ISOTime `json:"expires_at"`
- Active bool `json:"active"`
- Revoked bool `json:"revoked"`
- Token string `json:"token"`
-}
-
-func (v ProjectAccessToken) String() string {
- return Stringify(v)
-}
-
-// ListProjectAccessTokensOptions represents the available options for
-// listing variables in a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_access_tokens.html#list-project-access-tokens
-type ListProjectAccessTokensOptions ListOptions
-
-// ListProjectAccessTokens gets a list of all Project Access Tokens in a
-// project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_access_tokens.html#list-project-access-tokens
-func (s *ProjectAccessTokensService) ListProjectAccessTokens(pid interface{}, opt *ListProjectAccessTokensOptions, options ...RequestOptionFunc) ([]*ProjectAccessToken, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/access_tokens", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pats []*ProjectAccessToken
- resp, err := s.client.Do(req, &pats)
- if err != nil {
- return nil, resp, err
- }
-
- return pats, resp, err
-}
-
-// CreateProjectAccessTokenOptions represents the available CreateVariable()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_access_tokens.html#create-a-project-access-token
-type CreateProjectAccessTokenOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- Scopes []string `url:"scopes,omitempty" json:"scopes,omitempty"`
- ExpiresAt *ISOTime `url:"expires_at,omitempty" json:"expires_at,omitempty"`
-}
-
-// CreateProjectAccessToken creates a new Project Access Token.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_access_tokens.html#create-a-project-access-token
-func (s *ProjectAccessTokensService) CreateProjectAccessToken(pid interface{}, opt *CreateProjectAccessTokenOptions, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/access_tokens", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pat := new(ProjectAccessToken)
- resp, err := s.client.Do(req, pat)
- if err != nil {
- return nil, resp, err
- }
-
- return pat, resp, err
-}
-
-// DeleteProjectAccessToken deletes a Project Access Token.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_access_tokens.html#revoke-a-project-access-token
-func (s *ProjectAccessTokensService) DeleteProjectAccessToken(pid interface{}, id int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/access_tokens/%d", pathEscape(project), id)
-
- 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/project_badges.go b/vendor/github.com/xanzy/go-gitlab/project_badges.go
deleted file mode 100644
index e575f8ef1a..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/project_badges.go
+++ /dev/null
@@ -1,224 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// ProjectBadge represents a project badge.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_badges.html#list-all-badges-of-a-project
-type ProjectBadge struct {
- ID int `json:"id"`
- 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"`
-}
-
-// ProjectBadgesService handles communication with the project badges
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/project_badges.html
-type ProjectBadgesService struct {
- client *Client
-}
-
-// ListProjectBadgesOptions represents the available ListProjectBadges()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_badges.html#list-all-badges-of-a-project
-type ListProjectBadgesOptions ListOptions
-
-// ListProjectBadges gets a list of a project's badges and its group badges.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_badges.html#list-all-badges-of-a-project
-func (s *ProjectBadgesService) ListProjectBadges(pid interface{}, opt *ListProjectBadgesOptions, options ...RequestOptionFunc) ([]*ProjectBadge, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/badges", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pb []*ProjectBadge
- resp, err := s.client.Do(req, &pb)
- if err != nil {
- return nil, resp, err
- }
-
- return pb, resp, err
-}
-
-// GetProjectBadge gets a project badge.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_badges.html#get-a-badge-of-a-project
-func (s *ProjectBadgesService) GetProjectBadge(pid interface{}, badge int, options ...RequestOptionFunc) (*ProjectBadge, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/badges/%d", pathEscape(project), badge)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pb := new(ProjectBadge)
- resp, err := s.client.Do(req, pb)
- if err != nil {
- return nil, resp, err
- }
-
- return pb, resp, err
-}
-
-// AddProjectBadgeOptions represents the available AddProjectBadge() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_badges.html#add-a-badge-to-a-project
-type AddProjectBadgeOptions struct {
- LinkURL *string `url:"link_url,omitempty" json:"link_url,omitempty"`
- ImageURL *string `url:"image_url,omitempty" json:"image_url,omitempty"`
-}
-
-// AddProjectBadge adds a badge to a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_badges.html#add-a-badge-to-a-project
-func (s *ProjectBadgesService) AddProjectBadge(pid interface{}, opt *AddProjectBadgeOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/badges", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pb := new(ProjectBadge)
- resp, err := s.client.Do(req, pb)
- if err != nil {
- return nil, resp, err
- }
-
- return pb, resp, err
-}
-
-// EditProjectBadgeOptions represents the available EditProjectBadge() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_badges.html#edit-a-badge-of-a-project
-type EditProjectBadgeOptions struct {
- LinkURL *string `url:"link_url,omitempty" json:"link_url,omitempty"`
- ImageURL *string `url:"image_url,omitempty" json:"image_url,omitempty"`
-}
-
-// EditProjectBadge updates a badge of a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_badges.html#edit-a-badge-of-a-project
-func (s *ProjectBadgesService) EditProjectBadge(pid interface{}, badge int, opt *EditProjectBadgeOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/badges/%d", pathEscape(project), badge)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pb := new(ProjectBadge)
- resp, err := s.client.Do(req, pb)
- if err != nil {
- return nil, resp, err
- }
-
- return pb, resp, err
-}
-
-// 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/ee/api/project_badges.html#remove-a-badge-from-a-project
-func (s *ProjectBadgesService) DeleteProjectBadge(pid interface{}, badge int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/badges/%d", pathEscape(project), badge)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ProjectBadgePreviewOptions represents the available PreviewProjectBadge() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_badges.html#preview-a-badge-from-a-project
-type ProjectBadgePreviewOptions struct {
- LinkURL *string `url:"link_url,omitempty" json:"link_url,omitempty"`
- ImageURL *string `url:"image_url,omitempty" json:"image_url,omitempty"`
-}
-
-// 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/ee/api/project_badges.html#preview-a-badge-from-a-project
-func (s *ProjectBadgesService) PreviewProjectBadge(pid interface{}, opt *ProjectBadgePreviewOptions, options ...RequestOptionFunc) (*ProjectBadge, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/badges/render", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pb := new(ProjectBadge)
- resp, err := s.client.Do(req, &pb)
- if err != nil {
- return nil, resp, err
- }
-
- return pb, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/project_clusters.go b/vendor/github.com/xanzy/go-gitlab/project_clusters.go
deleted file mode 100644
index 17fd09bb74..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/project_clusters.go
+++ /dev/null
@@ -1,236 +0,0 @@
-//
-// Copyright 2021, Matej Velikonja
-//
-// 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"
- "time"
-)
-
-// ProjectClustersService handles communication with the
-// project clusters related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_clusters.html
-type ProjectClustersService struct {
- client *Client
-}
-
-// ProjectCluster represents a GitLab Project Cluster.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/project_clusters.html
-type ProjectCluster struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Domain string `json:"domain"`
- CreatedAt *time.Time `json:"created_at"`
- ProviderType string `json:"provider_type"`
- PlatformType string `json:"platform_type"`
- EnvironmentScope string `json:"environment_scope"`
- ClusterType string `json:"cluster_type"`
- User *User `json:"user"`
- PlatformKubernetes *PlatformKubernetes `json:"platform_kubernetes"`
- ManagementProject *ManagementProject `json:"management_project"`
- Project *Project `json:"project"`
-}
-
-func (v ProjectCluster) String() string {
- return Stringify(v)
-}
-
-// PlatformKubernetes represents a GitLab Project Cluster 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"`
-}
-
-// ManagementProject represents a GitLab Project Cluster management_project.
-type ManagementProject struct {
- ID int `json:"id"`
- Description string `json:"description"`
- Name string `json:"name"`
- NameWithNamespace string `json:"name_with_namespace"`
- Path string `json:"path"`
- PathWithNamespace string `json:"path_with_namespace"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-// ListClusters gets a list of all clusters in a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_clusters.html#list-project-clusters
-func (s *ProjectClustersService) ListClusters(pid interface{}, options ...RequestOptionFunc) ([]*ProjectCluster, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/clusters", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pcs []*ProjectCluster
- resp, err := s.client.Do(req, &pcs)
- if err != nil {
- return nil, resp, err
- }
-
- return pcs, resp, err
-}
-
-// GetCluster gets a cluster.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_clusters.html#get-a-single-project-cluster
-func (s *ProjectClustersService) GetCluster(pid interface{}, cluster int, options ...RequestOptionFunc) (*ProjectCluster, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/clusters/%d", pathEscape(project), cluster)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pc := new(ProjectCluster)
- resp, err := s.client.Do(req, &pc)
- if err != nil {
- return nil, resp, err
- }
-
- return pc, resp, err
-}
-
-// AddClusterOptions represents the available AddCluster() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_clusters.html#add-existing-cluster-to-project
-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"`
-}
-
-// AddPlatformKubernetesOptions represents the available PlatformKubernetes options for adding.
-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"`
-}
-
-// AddCluster adds an existing cluster to the project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_clusters.html#add-existing-cluster-to-project
-func (s *ProjectClustersService) AddCluster(pid interface{}, opt *AddClusterOptions, options ...RequestOptionFunc) (*ProjectCluster, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/clusters/user", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pc := new(ProjectCluster)
- resp, err := s.client.Do(req, pc)
- if err != nil {
- return nil, resp, err
- }
-
- return pc, resp, err
-}
-
-// EditClusterOptions represents the available EditCluster() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_clusters.html#edit-project-cluster
-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"`
-}
-
-// EditPlatformKubernetesOptions represents the available PlatformKubernetes options for editing.
-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"`
-}
-
-// EditCluster updates an existing project cluster.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_clusters.html#edit-project-cluster
-func (s *ProjectClustersService) EditCluster(pid interface{}, cluster int, opt *EditClusterOptions, options ...RequestOptionFunc) (*ProjectCluster, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/clusters/%d", pathEscape(project), cluster)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pc := new(ProjectCluster)
- resp, err := s.client.Do(req, pc)
- if err != nil {
- return nil, resp, err
- }
-
- return pc, resp, err
-}
-
-// DeleteCluster deletes an existing project cluster.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_clusters.html#delete-project-cluster
-func (s *ProjectClustersService) DeleteCluster(pid interface{}, cluster int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/clusters/%d", pathEscape(project), cluster)
-
- 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/project_import_export.go b/vendor/github.com/xanzy/go-gitlab/project_import_export.go
deleted file mode 100644
index 8c89f4e9d2..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/project_import_export.go
+++ /dev/null
@@ -1,213 +0,0 @@
-//
-// 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"
- "net/http"
- "time"
-)
-
-// ProjectImportExportService handles communication with the project
-// import/export related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/user/project/settings/import_export.html
-type ProjectImportExportService struct {
- client *Client
-}
-
-// ImportStatus represents a project import status.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_import_export.html#import-status
-type ImportStatus struct {
- ID int `json:"id"`
- Description string `json:"description"`
- Name string `json:"name"`
- NameWithNamespace string `json:"name_with_namespace"`
- Path string `json:"path"`
- PathWithNamespace string `json:"path_with_namespace"`
- CreateAt *time.Time `json:"create_at"`
- ImportStatus string `json:"import_status"`
-}
-
-func (s ImportStatus) String() string {
- return Stringify(s)
-}
-
-// ExportStatus represents a project export status.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_import_export.html#export-status
-type ExportStatus struct {
- ID int `json:"id"`
- Description string `json:"description"`
- Name string `json:"name"`
- NameWithNamespace string `json:"name_with_namespace"`
- Path string `json:"path"`
- PathWithNamespace string `json:"path_with_namespace"`
- CreatedAt *time.Time `json:"created_at"`
- ExportStatus string `json:"export_status"`
- Message string `json:"message"`
- Links struct {
- APIURL string `json:"api_url"`
- WebURL string `json:"web_url"`
- } `json:"_links"`
-}
-
-func (s ExportStatus) String() string {
- return Stringify(s)
-}
-
-// ScheduleExportOptions represents the available ScheduleExport() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_import_export.html#schedule-an-export
-type ScheduleExportOptions struct {
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- Upload struct {
- URL *string `url:"url,omitempty" json:"url,omitempty"`
- HTTPMethod *string `url:"http_method,omitempty" json:"http_method,omitempty"`
- } `url:"upload,omitempty" json:"upload,omitempty"`
-}
-
-// ScheduleExport schedules a project export.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_import_export.html#schedule-an-export
-func (s *ProjectImportExportService) ScheduleExport(pid interface{}, opt *ScheduleExportOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/export", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ExportStatus get the status of export.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_import_export.html#export-status
-func (s *ProjectImportExportService) ExportStatus(pid interface{}, options ...RequestOptionFunc) (*ExportStatus, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/export", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- es := new(ExportStatus)
- resp, err := s.client.Do(req, es)
- if err != nil {
- return nil, resp, err
- }
-
- return es, resp, err
-}
-
-// ExportDownload download the finished export.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_import_export.html#export-download
-func (s *ProjectImportExportService) ExportDownload(pid interface{}, options ...RequestOptionFunc) ([]byte, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/export/download", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var b bytes.Buffer
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b.Bytes(), resp, err
-}
-
-// ImportFileOptions represents the available ImportFile() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_import_export.html#import-a-file
-type ImportFileOptions struct {
- Namespace *string `url:"namespace,omitempty" json:"namespace,omitempty"`
- File *string `url:"file,omitempty" json:"file,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"`
-}
-
-// ImportFile import a file.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_import_export.html#import-a-file
-func (s *ProjectImportExportService) ImportFile(opt *ImportFileOptions, options ...RequestOptionFunc) (*ImportStatus, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "projects/import", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- is := new(ImportStatus)
- resp, err := s.client.Do(req, is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
-
-// ImportStatus get the status of an import.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_import_export.html#import-status
-func (s *ProjectImportExportService) ImportStatus(pid interface{}, options ...RequestOptionFunc) (*ImportStatus, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/import", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- is := new(ImportStatus)
- resp, err := s.client.Do(req, is)
- if err != nil {
- return nil, resp, err
- }
-
- return is, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/project_managed_licenses.go b/vendor/github.com/xanzy/go-gitlab/project_managed_licenses.go
deleted file mode 100644
index 186bdef57e..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/project_managed_licenses.go
+++ /dev/null
@@ -1,188 +0,0 @@
-//
-// 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/project_members.go b/vendor/github.com/xanzy/go-gitlab/project_members.go
deleted file mode 100644
index 4f00a11c17..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/project_members.go
+++ /dev/null
@@ -1,235 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// ProjectMembersService handles communication with the project members
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/members.html
-type ProjectMembersService struct {
- client *Client
-}
-
-// ListProjectMembersOptions represents the available ListProjectMembers() and
-// ListAllProjectMembers() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#list-all-members-of-a-group-or-project
-type ListProjectMembersOptions struct {
- ListOptions
- Query *string `url:"query,omitempty" json:"query,omitempty"`
-}
-
-// 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/ce/api/members.html#list-all-members-of-a-group-or-project
-func (s *ProjectMembersService) ListProjectMembers(pid interface{}, opt *ListProjectMembersOptions, options ...RequestOptionFunc) ([]*ProjectMember, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/members", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pm []*ProjectMember
- resp, err := s.client.Do(req, &pm)
- if err != nil {
- return nil, resp, err
- }
-
- return pm, resp, err
-}
-
-// 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/ce/api/members.html#list-all-members-of-a-group-or-project-including-inherited-members
-func (s *ProjectMembersService) ListAllProjectMembers(pid interface{}, opt *ListProjectMembersOptions, options ...RequestOptionFunc) ([]*ProjectMember, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/members/all", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pm []*ProjectMember
- resp, err := s.client.Do(req, &pm)
- if err != nil {
- return nil, resp, err
- }
-
- return pm, resp, err
-}
-
-// GetProjectMember gets a project team member.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#get-a-member-of-a-group-or-project
-func (s *ProjectMembersService) GetProjectMember(pid interface{}, user int, options ...RequestOptionFunc) (*ProjectMember, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/members/%d", pathEscape(project), user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pm := new(ProjectMember)
- resp, err := s.client.Do(req, pm)
- if err != nil {
- return nil, resp, err
- }
-
- return pm, resp, err
-}
-
-// GetInheritedProjectMember gets a project team member, including inherited
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#get-a-member-of-a-group-or-project-including-inherited-members
-func (s *ProjectMembersService) GetInheritedProjectMember(pid interface{}, user int, options ...RequestOptionFunc) (*ProjectMember, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/members/all/%d", pathEscape(project), user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pm := new(ProjectMember)
- resp, err := s.client.Do(req, pm)
- if err != nil {
- return nil, resp, err
- }
-
- return pm, resp, err
-}
-
-// AddProjectMemberOptions represents the available AddProjectMember() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#add-a-member-to-a-group-or-project
-type AddProjectMemberOptions struct {
- UserID interface{} `url:"user_id,omitempty" json:"user_id,omitempty"`
- AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
- ExpiresAt *string `url:"expires_at,omitempty" json:"expires_at"`
-}
-
-// 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/ce/api/members.html#add-a-member-to-a-group-or-project
-func (s *ProjectMembersService) AddProjectMember(pid interface{}, opt *AddProjectMemberOptions, options ...RequestOptionFunc) (*ProjectMember, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/members", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pm := new(ProjectMember)
- resp, err := s.client.Do(req, pm)
- if err != nil {
- return nil, resp, err
- }
-
- return pm, resp, err
-}
-
-// EditProjectMemberOptions represents the available EditProjectMember() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#edit-a-member-of-a-group-or-project
-type EditProjectMemberOptions struct {
- AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
- ExpiresAt *string `url:"expires_at,omitempty" json:"expires_at"`
-}
-
-// EditProjectMember updates a project team member to a specified access level..
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#edit-a-member-of-a-group-or-project
-func (s *ProjectMembersService) EditProjectMember(pid interface{}, user int, opt *EditProjectMemberOptions, options ...RequestOptionFunc) (*ProjectMember, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/members/%d", pathEscape(project), user)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pm := new(ProjectMember)
- resp, err := s.client.Do(req, pm)
- if err != nil {
- return nil, resp, err
- }
-
- return pm, resp, err
-}
-
-// DeleteProjectMember removes a user from a project team.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/members.html#remove-a-member-from-a-group-or-project
-func (s *ProjectMembersService) DeleteProjectMember(pid interface{}, user int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/members/%d", pathEscape(project), user)
-
- 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/project_mirror.go b/vendor/github.com/xanzy/go-gitlab/project_mirror.go
deleted file mode 100644
index 2560a3c4d2..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/project_mirror.go
+++ /dev/null
@@ -1,148 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// ProjectMirrorService handles communication with the project mirror
-// related methods of the GitLab API.
-//
-// GitLAb API docs: https://docs.gitlab.com/ce/api/remote_mirrors.html
-type ProjectMirrorService struct {
- client *Client
-}
-
-// ProjectMirror represents a project mirror configuration.
-//
-// GitLAb API docs: https://docs.gitlab.com/ce/api/remote_mirrors.html
-type ProjectMirror struct {
- Enabled bool `json:"enabled"`
- ID int `json:"id"`
- LastError string `json:"last_error"`
- LastSuccessfulUpdateAt *time.Time `json:"last_successful_update_at"`
- LastUpdateAt *time.Time `json:"last_update_at"`
- LastUpdateStartedAt *time.Time `json:"last_update_started_at"`
- OnlyProtectedBranches bool `json:"only_protected_branches"`
- KeepDivergentRefs bool `json:"keep_divergent_refs"`
- UpdateStatus string `json:"update_status"`
- URL string `json:"url"`
-}
-
-// ListProjectMirrorOptions represents the available ListProjectMirror() options.
-type ListProjectMirrorOptions ListOptions
-
-// ListProjectMirror gets a list of mirrors configured on the project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/remote_mirrors.html#list-a-projects-remote-mirrors
-func (s *ProjectMirrorService) ListProjectMirror(pid interface{}, opt *ListProjectMirrorOptions, options ...RequestOptionFunc) ([]*ProjectMirror, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/remote_mirrors", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pm []*ProjectMirror
- resp, err := s.client.Do(req, &pm)
- if err != nil {
- return nil, resp, err
- }
-
- return pm, resp, err
-}
-
-// AddProjectMirrorOptions contains the properties requires to create
-// a new project mirror.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/remote_mirrors.html#create-a-remote-mirror
-type AddProjectMirrorOptions struct {
- URL *string `url:"url,omitempty" json:"url,omitempty"`
- Enabled *bool `url:"enabled,omitempty" json:"enabled,omitempty"`
- OnlyProtectedBranches *bool `url:"only_protected_branches,omitempty" json:"only_protected_branches,omitempty"`
- KeepDivergentRefs *bool `url:"keep_divergent_refs,omitempty" json:"keep_divergent_refs,omitempty"`
-}
-
-// AddProjectMirror creates a new mirror on the project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/remote_mirrors.html#create-a-remote-mirror
-func (s *ProjectMirrorService) AddProjectMirror(pid interface{}, opt *AddProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/remote_mirrors", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pm := new(ProjectMirror)
- resp, err := s.client.Do(req, pm)
- if err != nil {
- return nil, resp, err
- }
-
- return pm, resp, err
-}
-
-// EditProjectMirrorOptions contains the properties requires to edit
-// an existing project mirror.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/remote_mirrors.html#update-a-remote-mirrors-attributes
-type EditProjectMirrorOptions struct {
- Enabled *bool `url:"enabled,omitempty" json:"enabled,omitempty"`
- OnlyProtectedBranches *bool `url:"only_protected_branches,omitempty" json:"only_protected_branches,omitempty"`
- KeepDivergentRefs *bool `url:"keep_divergent_refs,omitempty" json:"keep_divergent_refs,omitempty"`
-}
-
-// EditProjectMirror updates a project team member to a specified access level..
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/remote_mirrors.html#update-a-remote-mirrors-attributes
-func (s *ProjectMirrorService) EditProjectMirror(pid interface{}, mirror int, opt *EditProjectMirrorOptions, options ...RequestOptionFunc) (*ProjectMirror, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/remote_mirrors/%d", pathEscape(project), mirror)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pm := new(ProjectMirror)
- resp, err := s.client.Do(req, pm)
- if err != nil {
- return nil, resp, err
- }
-
- return pm, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/project_snippets.go b/vendor/github.com/xanzy/go-gitlab/project_snippets.go
deleted file mode 100644
index 1ab5e2b2ed..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/project_snippets.go
+++ /dev/null
@@ -1,207 +0,0 @@
-//
-// 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"
- "net/http"
-)
-
-// ProjectSnippetsService handles communication with the project snippets
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/project_snippets.html
-type ProjectSnippetsService struct {
- client *Client
-}
-
-// ListProjectSnippetsOptions represents the available ListSnippets() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/project_snippets.html#list-snippets
-type ListProjectSnippetsOptions ListOptions
-
-// ListSnippets gets a list of project snippets.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/project_snippets.html#list-snippets
-func (s *ProjectSnippetsService) ListSnippets(pid interface{}, opt *ListProjectSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ps []*Snippet
- resp, err := s.client.Do(req, &ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// GetSnippet gets a single project snippet
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_snippets.html#single-snippet
-func (s *ProjectSnippetsService) GetSnippet(pid interface{}, snippet int, options ...RequestOptionFunc) (*Snippet, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d", pathEscape(project), snippet)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ps := new(Snippet)
- resp, err := s.client.Do(req, ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// CreateProjectSnippetOptions represents the available CreateSnippet() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_snippets.html#create-new-snippet
-type CreateProjectSnippetOptions 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"`
-}
-
-// CreateSnippet creates a new project snippet. The user must have permission
-// to create new snippets.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_snippets.html#create-new-snippet
-func (s *ProjectSnippetsService) CreateSnippet(pid interface{}, opt *CreateProjectSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ps := new(Snippet)
- resp, err := s.client.Do(req, ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// UpdateProjectSnippetOptions represents the available UpdateSnippet() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_snippets.html#update-snippet
-type UpdateProjectSnippetOptions 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"`
-}
-
-// UpdateSnippet updates an existing project snippet. The user must have
-// permission to change an existing snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_snippets.html#update-snippet
-func (s *ProjectSnippetsService) UpdateSnippet(pid interface{}, snippet int, opt *UpdateProjectSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d", pathEscape(project), snippet)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ps := new(Snippet)
- resp, err := s.client.Do(req, ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// 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/ce/api/project_snippets.html#delete-snippet
-func (s *ProjectSnippetsService) DeleteSnippet(pid interface{}, snippet int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d", pathEscape(project), snippet)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// SnippetContent returns the raw project snippet as plain text.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/project_snippets.html#snippet-content
-func (s *ProjectSnippetsService) SnippetContent(pid interface{}, snippet int, options ...RequestOptionFunc) ([]byte, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/snippets/%d/raw", pathEscape(project), snippet)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var b bytes.Buffer
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b.Bytes(), resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/project_variables.go b/vendor/github.com/xanzy/go-gitlab/project_variables.go
deleted file mode 100644
index 69ce4873c6..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/project_variables.go
+++ /dev/null
@@ -1,202 +0,0 @@
-//
-// Copyright 2021, Patrick Webster
-//
-// 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"
- "net/url"
-)
-
-// ProjectVariablesService handles communication with the
-// project variables related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html
-type ProjectVariablesService struct {
- client *Client
-}
-
-// ProjectVariable represents a GitLab Project Variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html
-type ProjectVariable struct {
- 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 ProjectVariable) String() string {
- return Stringify(v)
-}
-
-// ListProjectVariablesOptions represents the available options for listing variables
-// in a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html#list-project-variables
-type ListProjectVariablesOptions ListOptions
-
-// ListVariables gets a list of all variables in a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html#list-project-variables
-func (s *ProjectVariablesService) ListVariables(pid interface{}, opt *ListProjectVariablesOptions, options ...RequestOptionFunc) ([]*ProjectVariable, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/variables", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var vs []*ProjectVariable
- resp, err := s.client.Do(req, &vs)
- if err != nil {
- return nil, resp, err
- }
-
- return vs, resp, err
-}
-
-// GetVariable gets a variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html#show-variable-details
-func (s *ProjectVariablesService) GetVariable(pid interface{}, key string, options ...RequestOptionFunc) (*ProjectVariable, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/variables/%s", pathEscape(project), url.PathEscape(key))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(ProjectVariable)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// CreateProjectVariableOptions represents the available CreateVariable()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html#create-variable
-type CreateProjectVariableOptions 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"`
- EnvironmentScope *string `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
-}
-
-// CreateVariable creates a new project variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html#create-variable
-func (s *ProjectVariablesService) CreateVariable(pid interface{}, opt *CreateProjectVariableOptions, options ...RequestOptionFunc) (*ProjectVariable, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/variables", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(ProjectVariable)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// UpdateProjectVariableOptions represents the available UpdateVariable()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html#update-variable
-type UpdateProjectVariableOptions 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"`
- EnvironmentScope *string `url:"environment_scope,omitempty" json:"environment_scope,omitempty"`
-}
-
-// UpdateVariable updates a project's variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html#update-variable
-func (s *ProjectVariablesService) UpdateVariable(pid interface{}, key string, opt *UpdateProjectVariableOptions, options ...RequestOptionFunc) (*ProjectVariable, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/variables/%s", pathEscape(project), url.PathEscape(key))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(ProjectVariable)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
-
-// RemoveVariable removes a project's variable.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/project_level_variables.html#remove-variable
-func (s *ProjectVariablesService) RemoveVariable(pid interface{}, key string, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/variables/%s", pathEscape(project), url.PathEscape(key))
-
- 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/projects.go b/vendor/github.com/xanzy/go-gitlab/projects.go
deleted file mode 100644
index 9aa352af5a..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/projects.go
+++ /dev/null
@@ -1,1785 +0,0 @@
-//
-// 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"
- "time"
-)
-
-// ProjectsService handles communication with the repositories related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html
-type ProjectsService struct {
- client *Client
-}
-
-// Project represents a GitLab project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html
-type Project struct {
- ID int `json:"id"`
- Description string `json:"description"`
- DefaultBranch string `json:"default_branch"`
- Public bool `json:"public"`
- 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"`
- TagList []string `json:"tag_list"`
- Owner *User `json:"owner"`
- Name string `json:"name"`
- NameWithNamespace string `json:"name_with_namespace"`
- Path string `json:"path"`
- PathWithNamespace string `json:"path_with_namespace"`
- IssuesEnabled bool `json:"issues_enabled"`
- OpenIssuesCount int `json:"open_issues_count"`
- MergeRequestsEnabled bool `json:"merge_requests_enabled"`
- ApprovalsBeforeMerge int `json:"approvals_before_merge"`
- JobsEnabled bool `json:"jobs_enabled"`
- WikiEnabled bool `json:"wiki_enabled"`
- SnippetsEnabled bool `json:"snippets_enabled"`
- ResolveOutdatedDiffDiscussions bool `json:"resolve_outdated_diff_discussions"`
- ContainerExpirationPolicy *ContainerExpirationPolicy `json:"container_expiration_policy,omitempty"`
- ContainerRegistryEnabled bool `json:"container_registry_enabled"`
- CreatedAt *time.Time `json:"created_at,omitempty"`
- LastActivityAt *time.Time `json:"last_activity_at,omitempty"`
- CreatorID int `json:"creator_id"`
- Namespace *ProjectNamespace `json:"namespace"`
- ImportStatus string `json:"import_status"`
- ImportError string `json:"import_error"`
- Permissions *Permissions `json:"permissions"`
- MarkedForDeletionAt *ISOTime `json:"marked_for_deletion_at"`
- 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"`
- RunnersToken string `json:"runners_token"`
- PublicBuilds bool `json:"public_builds"`
- AllowMergeOnSkippedPipeline bool `json:"allow_merge_on_skipped_pipeline"`
- 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"`
- LFSEnabled bool `json:"lfs_enabled"`
- RequestAccessEnabled bool `json:"request_access_enabled"`
- MergeMethod MergeMethodValue `json:"merge_method"`
- ForkedFromProject *ForkParent `json:"forked_from_project"`
- Mirror bool `json:"mirror"`
- MirrorUserID int `json:"mirror_user_id"`
- MirrorTriggerBuilds bool `json:"mirror_trigger_builds"`
- OnlyMirrorProtectedBranches bool `json:"only_mirror_protected_branches"`
- MirrorOverwritesDivergedBranches bool `json:"mirror_overwrites_diverged_branches"`
- PackagesEnabled bool `json:"packages_enabled"`
- ServiceDeskEnabled bool `json:"service_desk_enabled"`
- ServiceDeskAddress string `json:"service_desk_address"`
- IssuesAccessLevel AccessControlValue `json:"issues_access_level"`
- 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"`
- AutocloseReferencedIssues bool `json:"autoclose_referenced_issues"`
- SuggestionCommitMessage string `json:"suggestion_commit_message"`
- CIForwardDeploymentEnabled bool `json:"ci_forward_deployment_enabled"`
- SharedWithGroups []struct {
- GroupID int `json:"group_id"`
- 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"`
- IssuesTemplate string `json:"issues_template"`
- MergeRequestsTemplate string `json:"merge_requests_template"`
-}
-
-// BasicProject included in other service responses (such as todos).
-type BasicProject struct {
- ID int `json:"id"`
- Description string `json:"description"`
- Name string `json:"name"`
- NameWithNamespace string `json:"name_with_namespace"`
- Path string `json:"path"`
- PathWithNamespace string `json:"path_with_namespace"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-// ContainerExpirationPolicy represents the container expiration policy.
-type ContainerExpirationPolicy struct {
- Cadence string `json:"cadence"`
- KeepN int `json:"keep_n"`
- OlderThan string `json:"older_than"`
- NameRegexDelete string `json:"name_regex_delete"`
- NameRegexKeep string `json:"name_regex_keep"`
- Enabled bool `json:"enabled"`
- NextRunAt *time.Time `json:"next_run_at"`
-}
-
-// 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"`
- 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"`
-}
-
-// StorageStatistics represents a statistics record for a group or project.
-type StorageStatistics struct {
- StorageSize int64 `json:"storage_size"`
- RepositorySize int64 `json:"repository_size"`
- LfsObjectsSize int64 `json:"lfs_objects_size"`
- JobArtifactsSize int64 `json:"job_artifacts_size"`
-}
-
-func (s Project) String() string {
- return Stringify(s)
-}
-
-// ProjectApprovalRule represents a GitLab project approval rule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#get-project-level-rules
-type ProjectApprovalRule struct {
- ID int `json:"id"`
- Name string `json:"name"`
- RuleType string `json:"rule_type"`
- EligibleApprovers []*BasicUser `json:"eligible_approvers"`
- ApprovalsRequired int `json:"approvals_required"`
- Users []*BasicUser `json:"users"`
- Groups []*Group `json:"groups"`
- ContainsHiddenGroups bool `json:"contains_hidden_groups"`
- ProtectedBranches []*ProtectedBranch `json:"protected_branches"`
-}
-
-func (s ProjectApprovalRule) String() string {
- return Stringify(s)
-}
-
-// ListProjectsOptions represents the available ListProjects() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#list-projects
-type ListProjectsOptions struct {
- ListOptions
- Archived *bool `url:"archived,omitempty" json:"archived,omitempty"`
- Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,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"`
- SearchNamespaces *bool `url:"search_namespaces,omitempty" json:"search_namespaces,omitempty"`
- Simple *bool `url:"simple,omitempty" json:"simple,omitempty"`
- Owned *bool `url:"owned,omitempty" json:"owned,omitempty"`
- Membership *bool `url:"membership,omitempty" json:"membership,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"`
- 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"`
- WikiChecksumFailed *bool `url:"wiki_checksum_failed,omitempty" json:"wiki_checksum_failed,omitempty"`
- RepositoryChecksumFailed *bool `url:"repository_checksum_failed,omitempty" json:"repository_checksum_failed,omitempty"`
- MinAccessLevel *AccessLevelValue `url:"min_access_level,omitempty" json:"min_access_level,omitempty"`
- IDAfter *int `url:"id_after,omitempty" json:"id_after,omitempty"`
- IDBefore *int `url:"id_before,omitempty" json:"id_before,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"`
-}
-
-// ListProjects gets a list of projects accessible by the authenticated user.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#list-projects
-func (s *ProjectsService) ListProjects(opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "projects", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var p []*Project
- resp, err := s.client.Do(req, &p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// ListUserProjects gets a list of projects for the given user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#list-user-projects
-func (s *ProjectsService) ListUserProjects(uid interface{}, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error) {
- user, err := parseID(uid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("users/%s/projects", user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var p []*Project
- resp, err := s.client.Do(req, &p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// ProjectUser represents a GitLab project user.
-type ProjectUser struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Username string `json:"username"`
- State string `json:"state"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
-}
-
-// ListProjectUserOptions represents the available ListProjectsUsers() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#get-project-users
-type ListProjectUserOptions struct {
- ListOptions
- Search *string `url:"search,omitempty" json:"search,omitempty"`
-}
-
-// ListProjectsUsers gets a list of users for the given project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#get-project-users
-func (s *ProjectsService) ListProjectsUsers(pid interface{}, opt *ListProjectUserOptions, options ...RequestOptionFunc) ([]*ProjectUser, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/users", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var p []*ProjectUser
- resp, err := s.client.Do(req, &p)
- if err != nil {
- return nil, resp, err
- }
-
- 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
-type ProjectLanguages map[string]float32
-
-// GetProjectLanguages gets a list of languages used by the project
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#languages
-func (s *ProjectsService) GetProjectLanguages(pid interface{}, options ...RequestOptionFunc) (*ProjectLanguages, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/languages", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(ProjectLanguages)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// GetProjectOptions represents the available GetProject() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/projects.html#get-single-project
-type GetProjectOptions struct {
- Statistics *bool `url:"statistics,omitempty" json:"statistics,omitempty"`
- License *bool `url:"license,omitempty" json:"license,omitempty"`
- WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
-}
-
-// 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/ce/api/projects.html#get-single-project
-func (s *ProjectsService) GetProject(pid interface{}, opt *GetProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// ProjectEvent represents a GitLab project event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#get-project-events
-type ProjectEvent struct {
- Title interface{} `json:"title"`
- ProjectID int `json:"project_id"`
- ActionName string `json:"action_name"`
- TargetID interface{} `json:"target_id"`
- TargetType interface{} `json:"target_type"`
- AuthorID int `json:"author_id"`
- AuthorUsername string `json:"author_username"`
- Data struct {
- Before string `json:"before"`
- After string `json:"after"`
- Ref string `json:"ref"`
- UserID int `json:"user_id"`
- UserName string `json:"user_name"`
- Repository *Repository `json:"repository"`
- Commits []*Commit `json:"commits"`
- TotalCommitsCount int `json:"total_commits_count"`
- } `json:"data"`
- TargetTitle interface{} `json:"target_title"`
-}
-
-func (s ProjectEvent) String() string {
- return Stringify(s)
-}
-
-// GetProjectEventsOptions represents the available GetProjectEvents() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#get-project-events
-type GetProjectEventsOptions ListOptions
-
-// GetProjectEvents gets the events for the specified project. Sorted from
-// newest to latest.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#get-project-events
-func (s *ProjectsService) GetProjectEvents(pid interface{}, opt *GetProjectEventsOptions, options ...RequestOptionFunc) ([]*ProjectEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/events", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var p []*ProjectEvent
- resp, err := s.client.Do(req, &p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// CreateProjectOptions represents the available CreateProject() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/projects.html#create-project
-type CreateProjectOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- Path *string `url:"path,omitempty" json:"path,omitempty"`
- NamespaceID *int `url:"namespace_id,omitempty" json:"namespace_id,omitempty"`
- DefaultBranch *string `url:"default_branch,omitempty" json:"default_branch,omitempty"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- IssuesAccessLevel *AccessControlValue `url:"issues_access_level,omitempty" json:"issues_access_level,omitempty"`
- RepositoryAccessLevel *AccessControlValue `url:"repository_access_level,omitempty" json:"repository_access_level,omitempty"`
- MergeRequestsAccessLevel *AccessControlValue `url:"merge_requests_access_level,omitempty" json:"merge_requests_access_level,omitempty"`
- ForkingAccessLevel *AccessControlValue `url:"forking_access_level,omitempty" json:"forking_access_level,omitempty"`
- BuildsAccessLevel *AccessControlValue `url:"builds_access_level,omitempty" json:"builds_access_level,omitempty"`
- WikiAccessLevel *AccessControlValue `url:"wiki_access_level,omitempty" json:"wiki_access_level,omitempty"`
- SnippetsAccessLevel *AccessControlValue `url:"snippets_access_level,omitempty" json:"snippets_access_level,omitempty"`
- PagesAccessLevel *AccessControlValue `url:"pages_access_level,omitempty" json:"pages_access_level,omitempty"`
- OperationsAccessLevel *AccessControlValue `url:"operations_access_level,omitempty" json:"operations_access_level,omitempty"`
- EmailsDisabled *bool `url:"emails_disabled,omitempty" json:"emails_disabled,omitempty"`
- ResolveOutdatedDiffDiscussions *bool `url:"resolve_outdated_diff_discussions,omitempty" json:"resolve_outdated_diff_discussions,omitempty"`
- ContainerExpirationPolicyAttributes *ContainerExpirationPolicyAttributes `url:"container_expiration_policy_attributes,omitempty" json:"container_expiration_policy_attributes,omitempty"`
- ContainerRegistryEnabled *bool `url:"container_registry_enabled,omitempty" json:"container_registry_enabled,omitempty"`
- SharedRunnersEnabled *bool `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
- Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`
- ImportURL *string `url:"import_url,omitempty" json:"import_url,omitempty"`
- PublicBuilds *bool `url:"public_builds,omitempty" json:"public_builds,omitempty"`
- AllowMergeOnSkippedPipeline *bool `url:"allow_merge_on_skipped_pipeline,omitempty" json:"allow_merge_on_skipped_pipeline,omitempty"`
- OnlyAllowMergeIfPipelineSucceeds *bool `url:"only_allow_merge_if_pipeline_succeeds,omitempty" json:"only_allow_merge_if_pipeline_succeeds,omitempty"`
- OnlyAllowMergeIfAllDiscussionsAreResolved *bool `url:"only_allow_merge_if_all_discussions_are_resolved,omitempty" json:"only_allow_merge_if_all_discussions_are_resolved,omitempty"`
- MergeMethod *MergeMethodValue `url:"merge_method,omitempty" json:"merge_method,omitempty"`
- RemoveSourceBranchAfterMerge *bool `url:"remove_source_branch_after_merge,omitempty" json:"remove_source_branch_after_merge,omitempty"`
- LFSEnabled *bool `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"`
- RequestAccessEnabled *bool `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"`
- TagList *[]string `url:"tag_list,omitempty" json:"tag_list,omitempty"`
- PrintingMergeRequestLinkEnabled *bool `url:"printing_merge_request_link_enabled,omitempty" json:"printing_merge_request_link_enabled,omitempty"`
- BuildGitStrategy *string `url:"build_git_strategy,omitempty" json:"build_git_strategy,omitempty"`
- BuildTimeout *int `url:"build_timeout,omitempty" json:"build_timeout,omitempty"`
- AutoCancelPendingPipelines *string `url:"auto_cancel_pending_pipelines,omitempty" json:"auto_cancel_pending_pipelines,omitempty"`
- BuildCoverageRegex *string `url:"build_coverage_regex,omitempty" json:"build_coverage_regex,omitempty"`
- CIConfigPath *string `url:"ci_config_path,omitempty" json:"ci_config_path,omitempty"`
- CIForwardDeploymentEnabled *bool `url:"ci_forward_deployment_enabled,omitempty" json:"ci_forward_deployment_enabled,omitempty"`
- AutoDevopsEnabled *bool `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
- AutoDevopsDeployStrategy *string `url:"auto_devops_deploy_strategy,omitempty" json:"auto_devops_deploy_strategy,omitempty"`
- ApprovalsBeforeMerge *int `url:"approvals_before_merge,omitempty" json:"approvals_before_merge,omitempty"`
- ExternalAuthorizationClassificationLabel *string `url:"external_authorization_classification_label,omitempty" json:"external_authorization_classification_label,omitempty"`
- Mirror *bool `url:"mirror,omitempty" json:"mirror,omitempty"`
- MirrorTriggerBuilds *bool `url:"mirror_trigger_builds,omitempty" json:"mirror_trigger_builds,omitempty"`
- InitializeWithReadme *bool `url:"initialize_with_readme,omitempty" json:"initialize_with_readme,omitempty"`
- TemplateName *string `url:"template_name,omitempty" json:"template_name,omitempty"`
- TemplateProjectID *int `url:"template_project_id,omitempty" json:"template_project_id,omitempty"`
- UseCustomTemplate *bool `url:"use_custom_template,omitempty" json:"use_custom_template,omitempty"`
- GroupWithProjectTemplatesID *int `url:"group_with_project_templates_id,omitempty" json:"group_with_project_templates_id,omitempty"`
- PackagesEnabled *bool `url:"packages_enabled,omitempty" json:"packages_enabled,omitempty"`
- 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"`
- MergeRequestsEnabled *bool `url:"merge_requests_enabled,omitempty" json:"merge_requests_enabled,omitempty"`
- JobsEnabled *bool `url:"jobs_enabled,omitempty" json:"jobs_enabled,omitempty"`
- WikiEnabled *bool `url:"wiki_enabled,omitempty" json:"wiki_enabled,omitempty"`
- SnippetsEnabled *bool `url:"snippets_enabled,omitempty" json:"snippets_enabled,omitempty"`
-}
-
-// ContainerExpirationPolicyAttributes represents the available container
-// expiration policy attributes.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/projects.html#create-project
-type ContainerExpirationPolicyAttributes struct {
- Cadence *string `url:"cadence,omitempty" json:"cadence,omitempty"`
- KeepN *int `url:"keep_n,omitempty" json:"keep_n,omitempty"`
- OlderThan *string `url:"older_than,omitempty" json:"older_than,omitempty"`
- NameRegexDelete *string `url:"name_regex_delete,omitempty" json:"name_regex_delete,omitempty"`
- NameRegexKeep *string `url:"name_regex_keep,omitempty" json:"name_regex_keep,omitempty"`
- Enabled *bool `url:"enabled,omitempty" json:"enabled,omitempty"`
-
- // Deprecated members
- NameRegex *string `url:"name_regex,omitempty" json:"name_regex,omitempty"`
-}
-
-// CreateProject creates a new project owned by the authenticated user.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#create-project
-func (s *ProjectsService) CreateProject(opt *CreateProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error) {
- if opt.ContainerExpirationPolicyAttributes != nil {
- // This is needed to satisfy the API. Should be deleted
- // when NameRegex is removed (it's now deprecated).
- opt.ContainerExpirationPolicyAttributes.NameRegex =
- opt.ContainerExpirationPolicyAttributes.NameRegexDelete
- }
-
- req, err := s.client.NewRequest(http.MethodPost, "projects", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// CreateProjectForUserOptions represents the available CreateProjectForUser()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#create-project-for-user
-type CreateProjectForUserOptions CreateProjectOptions
-
-// CreateProjectForUser creates a new project owned by the specified user.
-// Available only for admins.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#create-project-for-user
-func (s *ProjectsService) CreateProjectForUser(user int, opt *CreateProjectForUserOptions, options ...RequestOptionFunc) (*Project, *Response, error) {
- if opt.ContainerExpirationPolicyAttributes != nil {
- // This is needed to satisfy the API. Should be deleted
- // when NameRegex is removed (it's now deprecated).
- opt.ContainerExpirationPolicyAttributes.NameRegex =
- opt.ContainerExpirationPolicyAttributes.NameRegexDelete
- }
-
- u := fmt.Sprintf("projects/user/%d", user)
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// EditProjectOptions represents the available EditProject() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#edit-project
-type EditProjectOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- Path *string `url:"path,omitempty" json:"path,omitempty"`
- DefaultBranch *string `url:"default_branch,omitempty" json:"default_branch,omitempty"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- IssuesAccessLevel *AccessControlValue `url:"issues_access_level,omitempty" json:"issues_access_level,omitempty"`
- RepositoryAccessLevel *AccessControlValue `url:"repository_access_level,omitempty" json:"repository_access_level,omitempty"`
- MergeRequestsAccessLevel *AccessControlValue `url:"merge_requests_access_level,omitempty" json:"merge_requests_access_level,omitempty"`
- ForkingAccessLevel *AccessControlValue `url:"forking_access_level,omitempty" json:"forking_access_level,omitempty"`
- BuildsAccessLevel *AccessControlValue `url:"builds_access_level,omitempty" json:"builds_access_level,omitempty"`
- WikiAccessLevel *AccessControlValue `url:"wiki_access_level,omitempty" json:"wiki_access_level,omitempty"`
- SnippetsAccessLevel *AccessControlValue `url:"snippets_access_level,omitempty" json:"snippets_access_level,omitempty"`
- PagesAccessLevel *AccessControlValue `url:"pages_access_level,omitempty" json:"pages_access_level,omitempty"`
- OperationsAccessLevel *AccessControlValue `url:"operations_access_level,omitempty" json:"operations_access_level,omitempty"`
- EmailsDisabled *bool `url:"emails_disabled,omitempty" json:"emails_disabled,omitempty"`
- ResolveOutdatedDiffDiscussions *bool `url:"resolve_outdated_diff_discussions,omitempty" json:"resolve_outdated_diff_discussions,omitempty"`
- ContainerExpirationPolicyAttributes *ContainerExpirationPolicyAttributes `url:"container_expiration_policy_attributes,omitempty" json:"container_expiration_policy_attributes,omitempty"`
- ContainerRegistryEnabled *bool `url:"container_registry_enabled,omitempty" json:"container_registry_enabled,omitempty"`
- SharedRunnersEnabled *bool `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
- Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`
- ImportURL *string `url:"import_url,omitempty" json:"import_url,omitempty"`
- PublicBuilds *bool `url:"public_builds,omitempty" json:"public_builds,omitempty"`
- AllowMergeOnSkippedPipeline *bool `url:"allow_merge_on_skipped_pipeline,omitempty" json:"allow_merge_on_skipped_pipeline,omitempty"`
- OnlyAllowMergeIfPipelineSucceeds *bool `url:"only_allow_merge_if_pipeline_succeeds,omitempty" json:"only_allow_merge_if_pipeline_succeeds,omitempty"`
- OnlyAllowMergeIfAllDiscussionsAreResolved *bool `url:"only_allow_merge_if_all_discussions_are_resolved,omitempty" json:"only_allow_merge_if_all_discussions_are_resolved,omitempty"`
- MergeMethod *MergeMethodValue `url:"merge_method,omitempty" json:"merge_method,omitempty"`
- RemoveSourceBranchAfterMerge *bool `url:"remove_source_branch_after_merge,omitempty" json:"remove_source_branch_after_merge,omitempty"`
- LFSEnabled *bool `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"`
- RequestAccessEnabled *bool `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"`
- TagList *[]string `url:"tag_list,omitempty" json:"tag_list,omitempty"`
- BuildGitStrategy *string `url:"build_git_strategy,omitempty" json:"build_git_strategy,omitempty"`
- BuildTimeout *int `url:"build_timeout,omitempty" json:"build_timeout,omitempty"`
- AutoCancelPendingPipelines *string `url:"auto_cancel_pending_pipelines,omitempty" json:"auto_cancel_pending_pipelines,omitempty"`
- BuildCoverageRegex *string `url:"build_coverage_regex,omitempty" json:"build_coverage_regex,omitempty"`
- CIConfigPath *string `url:"ci_config_path,omitempty" json:"ci_config_path,omitempty"`
- CIForwardDeploymentEnabled *bool `url:"ci_forward_deployment_enabled,omitempty" json:"ci_forward_deployment_enabled,omitempty"`
- CIDefaultGitDepth *int `url:"ci_default_git_depth,omitempty" json:"ci_default_git_depth,omitempty"`
- AutoDevopsEnabled *bool `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
- AutoDevopsDeployStrategy *string `url:"auto_devops_deploy_strategy,omitempty" json:"auto_devops_deploy_strategy,omitempty"`
- ApprovalsBeforeMerge *int `url:"approvals_before_merge,omitempty" json:"approvals_before_merge,omitempty"`
- ExternalAuthorizationClassificationLabel *string `url:"external_authorization_classification_label,omitempty" json:"external_authorization_classification_label,omitempty"`
- Mirror *bool `url:"mirror,omitempty" json:"mirror,omitempty"`
- MirrorUserID *int `url:"mirror_user_id,omitempty" json:"mirror_user_id,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"`
- PackagesEnabled *bool `url:"packages_enabled,omitempty" json:"packages_enabled,omitempty"`
- 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"`
- MergeRequestsEnabled *bool `url:"merge_requests_enabled,omitempty" json:"merge_requests_enabled,omitempty"`
- JobsEnabled *bool `url:"jobs_enabled,omitempty" json:"jobs_enabled,omitempty"`
- WikiEnabled *bool `url:"wiki_enabled,omitempty" json:"wiki_enabled,omitempty"`
- SnippetsEnabled *bool `url:"snippets_enabled,omitempty" json:"snippets_enabled,omitempty"`
-}
-
-// EditProject updates an existing project.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#edit-project
-func (s *ProjectsService) EditProject(pid interface{}, opt *EditProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error) {
- if opt.ContainerExpirationPolicyAttributes != nil {
- // This is needed to satisfy the API. Should be deleted
- // when NameRegex is removed (it's now deprecated).
- opt.ContainerExpirationPolicyAttributes.NameRegex =
- opt.ContainerExpirationPolicyAttributes.NameRegexDelete
- }
-
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// ForkProjectOptions represents the available ForkProject() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#fork-project
-type ForkProjectOptions 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"`
-}
-
-// ForkProject forks a project into the user namespace of the authenticated
-// user.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#fork-project
-func (s *ProjectsService) ForkProject(pid interface{}, opt *ForkProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/fork", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// StarProject stars a given the project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#star-a-project
-func (s *ProjectsService) StarProject(pid interface{}, options ...RequestOptionFunc) (*Project, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/star", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// UnstarProject unstars a given project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#unstar-a-project
-func (s *ProjectsService) UnstarProject(pid interface{}, options ...RequestOptionFunc) (*Project, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/unstar", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// ArchiveProject archives the project if the user is either admin or the
-// project owner of this project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#archive-a-project
-func (s *ProjectsService) ArchiveProject(pid interface{}, options ...RequestOptionFunc) (*Project, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/archive", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// UnarchiveProject unarchives the project if the user is either admin or
-// the project owner of this project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#unarchive-a-project
-func (s *ProjectsService) UnarchiveProject(pid interface{}, options ...RequestOptionFunc) (*Project, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/unarchive", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// DeleteProject removes a project including all associated resources
-// (issues, merge requests etc.)
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#remove-project
-func (s *ProjectsService) DeleteProject(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ShareWithGroupOptions represents options to share project with groups
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#share-project-with-group
-type ShareWithGroupOptions struct {
- GroupID *int `url:"group_id" json:"group_id"`
- GroupAccess *AccessLevelValue `url:"group_access" json:"group_access"`
- ExpiresAt *string `url:"expires_at" json:"expires_at"`
-}
-
-// ShareProjectWithGroup allows to share a project with a group.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#share-project-with-group
-func (s *ProjectsService) ShareProjectWithGroup(pid interface{}, opt *ShareWithGroupOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/share", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteSharedProjectFromGroup allows to unshare a project from a group.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#delete-a-shared-project-link-within-a-group
-func (s *ProjectsService) DeleteSharedProjectFromGroup(pid interface{}, groupID int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/share/%d", pathEscape(project), groupID)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ProjectMember represents a project member.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#list-project-team-members
-type ProjectMember struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Email string `json:"email"`
- Name string `json:"name"`
- State string `json:"state"`
- CreatedAt *time.Time `json:"created_at"`
- ExpiresAt *ISOTime `json:"expires_at"`
- AccessLevel AccessLevelValue `json:"access_level"`
- WebURL string `json:"web_url"`
- AvatarURL string `json:"avatar_url"`
-}
-
-// ProjectHook represents a project hook.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#list-project-hooks
-type ProjectHook struct {
- ID int `json:"id"`
- URL string `json:"url"`
- ConfidentialNoteEvents bool `json:"confidential_note_events"`
- ProjectID int `json:"project_id"`
- PushEvents bool `json:"push_events"`
- PushEventsBranchFilter string `json:"push_events_branch_filter"`
- IssuesEvents bool `json:"issues_events"`
- ConfidentialIssuesEvents bool `json:"confidential_issues_events"`
- MergeRequestsEvents bool `json:"merge_requests_events"`
- TagPushEvents bool `json:"tag_push_events"`
- NoteEvents bool `json:"note_events"`
- JobEvents bool `json:"job_events"`
- PipelineEvents bool `json:"pipeline_events"`
- WikiPageEvents bool `json:"wiki_page_events"`
- DeploymentEvents bool `json:"deployment_events"`
- ReleasesEvents bool `json:"releases_events"`
- EnableSSLVerification bool `json:"enable_ssl_verification"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-// ListProjectHooksOptions represents the available ListProjectHooks() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#list-project-hooks
-type ListProjectHooksOptions ListOptions
-
-// ListProjectHooks gets a list of project hooks.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#list-project-hooks
-func (s *ProjectsService) ListProjectHooks(pid interface{}, opt *ListProjectHooksOptions, options ...RequestOptionFunc) ([]*ProjectHook, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/hooks", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ph []*ProjectHook
- resp, err := s.client.Do(req, &ph)
- if err != nil {
- return nil, resp, err
- }
-
- return ph, resp, err
-}
-
-// GetProjectHook gets a specific hook for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#get-project-hook
-func (s *ProjectsService) GetProjectHook(pid interface{}, hook int, options ...RequestOptionFunc) (*ProjectHook, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/hooks/%d", pathEscape(project), hook)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ph := new(ProjectHook)
- resp, err := s.client.Do(req, ph)
- if err != nil {
- return nil, resp, err
- }
-
- return ph, resp, err
-}
-
-// AddProjectHookOptions represents the available AddProjectHook() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#add-project-hook
-type AddProjectHookOptions struct {
- URL *string `url:"url,omitempty" json:"url,omitempty"`
- ConfidentialNoteEvents *bool `url:"confidential_note_events,omitempty" json:"confidential_note_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"`
- 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"`
- JobEvents *bool `url:"job_events,omitempty" json:"job_events,omitempty"`
- PipelineEvents *bool `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
- WikiPageEvents *bool `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
- DeploymentEvents *bool `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
- ReleasesEvents *bool `url:"releases_events,omitempty" json:"releases_events,omitempty"`
- EnableSSLVerification *bool `url:"enable_ssl_verification,omitempty" json:"enable_ssl_verification,omitempty"`
- Token *string `url:"token,omitempty" json:"token,omitempty"`
-}
-
-// AddProjectHook adds a hook to a specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#add-project-hook
-func (s *ProjectsService) AddProjectHook(pid interface{}, opt *AddProjectHookOptions, options ...RequestOptionFunc) (*ProjectHook, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/hooks", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ph := new(ProjectHook)
- resp, err := s.client.Do(req, ph)
- if err != nil {
- return nil, resp, err
- }
-
- return ph, resp, err
-}
-
-// EditProjectHookOptions represents the available EditProjectHook() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#edit-project-hook
-type EditProjectHookOptions struct {
- URL *string `url:"url,omitempty" json:"url,omitempty"`
- ConfidentialNoteEvents *bool `url:"confidential_note_events,omitempty" json:"confidential_note_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"`
- 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"`
- JobEvents *bool `url:"job_events,omitempty" json:"job_events,omitempty"`
- PipelineEvents *bool `url:"pipeline_events,omitempty" json:"pipeline_events,omitempty"`
- WikiPageEvents *bool `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
- DeploymentEvents *bool `url:"deployment_events,omitempty" json:"deployment_events,omitempty"`
- ReleasesEvents *bool `url:"releases_events,omitempty" json:"releases_events,omitempty"`
- EnableSSLVerification *bool `url:"enable_ssl_verification,omitempty" json:"enable_ssl_verification,omitempty"`
- Token *string `url:"token,omitempty" json:"token,omitempty"`
-}
-
-// EditProjectHook edits a hook for a specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#edit-project-hook
-func (s *ProjectsService) EditProjectHook(pid interface{}, hook int, opt *EditProjectHookOptions, options ...RequestOptionFunc) (*ProjectHook, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/hooks/%d", pathEscape(project), hook)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ph := new(ProjectHook)
- resp, err := s.client.Do(req, ph)
- if err != nil {
- return nil, resp, err
- }
-
- return ph, resp, err
-}
-
-// 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/ce/api/projects.html#delete-project-hook
-func (s *ProjectsService) DeleteProjectHook(pid interface{}, hook int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/hooks/%d", pathEscape(project), hook)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ProjectForkRelation represents a project fork relationship.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#admin-fork-relation
-type ProjectForkRelation struct {
- ID int `json:"id"`
- ForkedToProjectID int `json:"forked_to_project_id"`
- ForkedFromProjectID int `json:"forked_from_project_id"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
-}
-
-// CreateProjectForkRelation creates a forked from/to relation between
-// existing projects.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#create-a-forked-fromto-relation-between-existing-projects.
-func (s *ProjectsService) CreateProjectForkRelation(pid int, fork int, options ...RequestOptionFunc) (*ProjectForkRelation, *Response, error) {
- u := fmt.Sprintf("projects/%d/fork/%d", pid, fork)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pfr := new(ProjectForkRelation)
- resp, err := s.client.Do(req, pfr)
- if err != nil {
- return nil, resp, err
- }
-
- return pfr, resp, err
-}
-
-// DeleteProjectForkRelation deletes an existing forked from relationship.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#delete-an-existing-forked-from-relationship
-func (s *ProjectsService) DeleteProjectForkRelation(pid int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("projects/%d/fork", pid)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ProjectFile represents an uploaded project file
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#upload-a-file
-type ProjectFile struct {
- Alt string `json:"alt"`
- URL string `json:"url"`
- Markdown string `json:"markdown"`
-}
-
-// UploadFile upload a file from disk
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#upload-a-file
-func (s *ProjectsService) UploadFile(pid interface{}, file string, options ...RequestOptionFunc) (*ProjectFile, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/uploads", pathEscape(project))
-
- f, err := os.Open(file)
- if err != nil {
- return nil, nil, err
- }
- defer f.Close()
-
- b := &bytes.Buffer{}
- w := multipart.NewWriter(b)
-
- _, filename := filepath.Split(file)
- fw, err := w.CreateFormFile("file", filename)
- if err != nil {
- return nil, nil, err
- }
-
- _, err = io.Copy(fw, f)
- if err != nil {
- return nil, nil, err
- }
- w.Close()
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- // Set the buffer as the request body.
- if err = req.SetBody(b); err != nil {
- return nil, nil, err
- }
-
- // Overwrite the default content type.
- req.Header.Set("Content-Type", w.FormDataContentType())
-
- uf := &ProjectFile{}
- resp, err := s.client.Do(req, uf)
- if err != nil {
- return nil, resp, err
- }
-
- return uf, resp, nil
-}
-
-// ListProjectForks gets a list of project forks.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/projects.html#list-forks-of-a-project
-func (s *ProjectsService) ListProjectForks(pid interface{}, opt *ListProjectsOptions, options ...RequestOptionFunc) ([]*Project, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/forks", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var forks []*Project
- resp, err := s.client.Do(req, &forks)
- if err != nil {
- return nil, resp, err
- }
-
- return forks, resp, err
-}
-
-// ProjectPushRules represents a project push rule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/projects.html#push-rules
-type ProjectPushRules struct {
- ID int `json:"id"`
- ProjectID int `json:"project_id"`
- CommitMessageRegex string `json:"commit_message_regex"`
- CommitMessageNegativeRegex string `json:"commit_message_negative_regex"`
- BranchNameRegex string `json:"branch_name_regex"`
- DenyDeleteTag bool `json:"deny_delete_tag"`
- CreatedAt *time.Time `json:"created_at"`
- MemberCheck bool `json:"member_check"`
- PreventSecrets bool `json:"prevent_secrets"`
- AuthorEmailRegex string `json:"author_email_regex"`
- FileNameRegex string `json:"file_name_regex"`
- MaxFileSize int `json:"max_file_size"`
- CommitCommitterCheck bool `json:"commit_committer_check"`
- RejectUnsignedCommits bool `json:"reject_unsigned_commits"`
-}
-
-// GetProjectPushRules gets the push rules of a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/projects.html#get-project-push-rules
-func (s *ProjectsService) GetProjectPushRules(pid interface{}, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/push_rule", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ppr := new(ProjectPushRules)
- resp, err := s.client.Do(req, ppr)
- if err != nil {
- return nil, resp, err
- }
-
- return ppr, resp, err
-}
-
-// AddProjectPushRuleOptions represents the available AddProjectPushRule()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/projects.html#add-project-push-rule
-type AddProjectPushRuleOptions struct {
- DenyDeleteTag *bool `url:"deny_delete_tag,omitempty" json:"deny_delete_tag,omitempty"`
- MemberCheck *bool `url:"member_check,omitempty" json:"member_check,omitempty"`
- PreventSecrets *bool `url:"prevent_secrets,omitempty" json:"prevent_secrets,omitempty"`
- CommitMessageRegex *string `url:"commit_message_regex,omitempty" json:"commit_message_regex,omitempty"`
- CommitMessageNegativeRegex *string `url:"commit_message_negative_regex,omitempty" json:"commit_message_negative_regex,omitempty"`
- BranchNameRegex *string `url:"branch_name_regex,omitempty" json:"branch_name_regex,omitempty"`
- AuthorEmailRegex *string `url:"author_email_regex,omitempty" json:"author_email_regex,omitempty"`
- FileNameRegex *string `url:"file_name_regex,omitempty" json:"file_name_regex,omitempty"`
- MaxFileSize *int `url:"max_file_size,omitempty" json:"max_file_size,omitempty"`
- CommitCommitterCheck *bool `url:"commit_committer_check,omitempty" json:"commit_committer_check,omitempty"`
- RejectUnsignedCommits *bool `url:"reject_unsigned_commits,omitempty" json:"reject_unsigned_commits,omitempty"`
-}
-
-// AddProjectPushRule adds a push rule to a specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/projects.html#add-project-push-rule
-func (s *ProjectsService) AddProjectPushRule(pid interface{}, opt *AddProjectPushRuleOptions, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/push_rule", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ppr := new(ProjectPushRules)
- resp, err := s.client.Do(req, ppr)
- if err != nil {
- return nil, resp, err
- }
-
- return ppr, resp, err
-}
-
-// EditProjectPushRuleOptions represents the available EditProjectPushRule()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/projects.html#edit-project-push-rule
-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"`
- CommitMessageRegex *string `url:"commit_message_regex,omitempty" json:"commit_message_regex,omitempty"`
- CommitMessageNegativeRegex *string `url:"commit_message_negative_regex,omitempty" json:"commit_message_negative_regex,omitempty"`
- FileNameRegex *string `url:"file_name_regex,omitempty" json:"file_name_regex,omitempty"`
- DenyDeleteTag *bool `url:"deny_delete_tag,omitempty" json:"deny_delete_tag,omitempty"`
- MemberCheck *bool `url:"member_check,omitempty" json:"member_check,omitempty"`
- PreventSecrets *bool `url:"prevent_secrets,omitempty" json:"prevent_secrets,omitempty"`
- MaxFileSize *int `url:"max_file_size,omitempty" json:"max_file_size,omitempty"`
- CommitCommitterCheck *bool `url:"commit_committer_check,omitempty" json:"commit_committer_check,omitempty"`
- RejectUnsignedCommits *bool `url:"reject_unsigned_commits,omitempty" json:"reject_unsigned_commits,omitempty"`
-}
-
-// EditProjectPushRule edits a push rule for a specified project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/projects.html#edit-project-push-rule
-func (s *ProjectsService) EditProjectPushRule(pid interface{}, opt *EditProjectPushRuleOptions, options ...RequestOptionFunc) (*ProjectPushRules, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/push_rule", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ppr := new(ProjectPushRules)
- resp, err := s.client.Do(req, ppr)
- if err != nil {
- return nil, resp, err
- }
-
- return ppr, resp, err
-}
-
-// 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/ee/api/projects.html#delete-project-push-rule
-func (s *ProjectsService) DeleteProjectPushRule(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/push_rule", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ProjectApprovals represents GitLab project level merge request approvals.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#project-level-mr-approvals
-type ProjectApprovals struct {
- Approvers []*MergeRequestApproverUser `json:"approvers"`
- ApproverGroups []*MergeRequestApproverGroup `json:"approver_groups"`
- ApprovalsBeforeMerge int `json:"approvals_before_merge"`
- ResetApprovalsOnPush bool `json:"reset_approvals_on_push"`
- DisableOverridingApproversPerMergeRequest bool `json:"disable_overriding_approvers_per_merge_request"`
- MergeRequestsAuthorApproval bool `json:"merge_requests_author_approval"`
- MergeRequestsDisableCommittersApproval bool `json:"merge_requests_disable_committers_approval"`
- RequirePasswordToApprove bool `json:"require_password_to_approve"`
-}
-
-// GetApprovalConfiguration get the approval configuration for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#get-configuration
-func (s *ProjectsService) GetApprovalConfiguration(pid interface{}, options ...RequestOptionFunc) (*ProjectApprovals, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/approvals", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pa := new(ProjectApprovals)
- resp, err := s.client.Do(req, pa)
- if err != nil {
- return nil, resp, err
- }
-
- return pa, resp, err
-}
-
-// ChangeApprovalConfigurationOptions represents the available
-// ApprovalConfiguration() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-configuration
-type ChangeApprovalConfigurationOptions struct {
- ApprovalsBeforeMerge *int `url:"approvals_before_merge,omitempty" json:"approvals_before_merge,omitempty"`
- ResetApprovalsOnPush *bool `url:"reset_approvals_on_push,omitempty" json:"reset_approvals_on_push,omitempty"`
- 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.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-configuration
-func (s *ProjectsService) ChangeApprovalConfiguration(pid interface{}, opt *ChangeApprovalConfigurationOptions, options ...RequestOptionFunc) (*ProjectApprovals, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/approvals", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pa := new(ProjectApprovals)
- resp, err := s.client.Do(req, pa)
- if err != nil {
- return nil, resp, err
- }
-
- return pa, resp, err
-}
-
-// GetProjectApprovalRules looks up the list of project level approvers.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#get-project-level-rules
-func (s *ProjectsService) GetProjectApprovalRules(pid interface{}, options ...RequestOptionFunc) ([]*ProjectApprovalRule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/approval_rules", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var par []*ProjectApprovalRule
- resp, err := s.client.Do(req, &par)
- if err != nil {
- return nil, resp, err
- }
-
- return par, resp, err
-}
-
-// CreateProjectLevelRuleOptions represents the available CreateProjectApprovalRule()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#create-project-level-rules
-type CreateProjectLevelRuleOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- ApprovalsRequired *int `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
- UserIDs []int `url:"user_ids,omitempty" json:"user_ids,omitempty"`
- GroupIDs []int `url:"group_ids,omitempty" json:"group_ids,omitempty"`
- ProtectedBranchIDs []int `url:"protected_branch_ids,omitempty" json:"protected_branch_ids,omitempty"`
-}
-
-// CreateProjectApprovalRule creates a new project-level approval rule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#create-project-level-rules
-func (s *ProjectsService) CreateProjectApprovalRule(pid interface{}, opt *CreateProjectLevelRuleOptions, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/approval_rules", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- par := new(ProjectApprovalRule)
- resp, err := s.client.Do(req, &par)
- if err != nil {
- return nil, resp, err
- }
-
- return par, resp, err
-}
-
-// UpdateProjectLevelRuleOptions represents the available UpdateProjectApprovalRule()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#update-project-level-rules
-type UpdateProjectLevelRuleOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- ApprovalsRequired *int `url:"approvals_required,omitempty" json:"approvals_required,omitempty"`
- UserIDs []int `url:"user_ids,omitempty" json:"user_ids,omitempty"`
- GroupIDs []int `url:"group_ids,omitempty" json:"group_ids,omitempty"`
- ProtectedBranchIDs []int `url:"protected_branch_ids,omitempty" json:"protected_branch_ids,omitempty"`
-}
-
-// UpdateProjectApprovalRule updates an existing approval rule with new options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#update-project-level-rules
-func (s *ProjectsService) UpdateProjectApprovalRule(pid interface{}, approvalRule int, opt *UpdateProjectLevelRuleOptions, options ...RequestOptionFunc) (*ProjectApprovalRule, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/approval_rules/%d", pathEscape(project), approvalRule)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- par := new(ProjectApprovalRule)
- resp, err := s.client.Do(req, &par)
- if err != nil {
- return nil, resp, err
- }
-
- return par, resp, err
-}
-
-// DeleteProjectApprovalRule deletes a project-level approval rule.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#delete-project-level-rules
-func (s *ProjectsService) DeleteProjectApprovalRule(pid interface{}, approvalRule int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/approval_rules/%d", pathEscape(project), approvalRule)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ChangeAllowedApproversOptions represents the available ChangeAllowedApprovers()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-allowed-approvers
-type ChangeAllowedApproversOptions struct {
- ApproverIDs []int `url:"approver_ids,omitempty" json:"approver_ids,omitempty"`
- ApproverGroupIDs []int `url:"approver_group_ids,omitempty" json:"approver_group_ids,omitempty"`
-}
-
-// ChangeAllowedApprovers updates the list of approvers and approver groups.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-allowed-approvers
-func (s *ProjectsService) ChangeAllowedApprovers(pid interface{}, opt *ChangeAllowedApproversOptions, options ...RequestOptionFunc) (*ProjectApprovals, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/approvers", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pa := new(ProjectApprovals)
- resp, err := s.client.Do(req, pa)
- if err != nil {
- return nil, resp, err
- }
-
- return pa, resp, err
-}
-
-// StartMirroringProject start the pull mirroring process for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/projects.html#start-the-pull-mirroring-process-for-a-project-starter
-func (s *ProjectsService) StartMirroringProject(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/mirror/pull", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- resp, err := s.client.Do(req, nil)
- if err != nil {
- return resp, err
- }
-
- return resp, err
-}
-
-// TransferProjectOptions represents the available TransferProject() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#transfer-a-project-to-a-new-namespace
-type TransferProjectOptions struct {
- Namespace interface{} `url:"namespace,omitempty" json:"namespace,omitempty"`
-}
-
-// TransferProject transfer a project into the specified namespace
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#transfer-a-project-to-a-new-namespace
-func (s *ProjectsService) TransferProject(pid interface{}, opt *TransferProjectOptions, options ...RequestOptionFunc) (*Project, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/transfer", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(Project)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/protected_branches.go b/vendor/github.com/xanzy/go-gitlab/protected_branches.go
deleted file mode 100644
index af3e7f2111..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/protected_branches.go
+++ /dev/null
@@ -1,216 +0,0 @@
-//
-// Copyright 2021, Sander van Harmelen, Michael Lihs
-//
-// 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"
- "net/url"
-)
-
-// ProtectedBranchesService handles communication with the protected branch
-// related methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#protected-branches-api
-type ProtectedBranchesService struct {
- client *Client
-}
-
-// ProtectedBranch represents a protected branch.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#list-protected-branches
-type ProtectedBranch struct {
- ID int `json:"id"`
- Name string `json:"name"`
- PushAccessLevels []*BranchAccessDescription `json:"push_access_levels"`
- MergeAccessLevels []*BranchAccessDescription `json:"merge_access_levels"`
- UnprotectAccessLevels []*BranchAccessDescription `json:"unprotect_access_levels"`
- AllowForcePush bool `json:"allow_force_push"`
- CodeOwnerApprovalRequired bool `json:"code_owner_approval_required"`
-}
-
-// BranchAccessDescription represents the access description for a protected
-// branch.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#protected-branches-api
-type BranchAccessDescription struct {
- AccessLevel AccessLevelValue `json:"access_level"`
- AccessLevelDescription string `json:"access_level_description"`
- UserID int `json:"user_id"`
- GroupID int `json:"group_id"`
-}
-
-// ListProtectedBranchesOptions represents the available ListProtectedBranches()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#list-protected-branches
-type ListProtectedBranchesOptions ListOptions
-
-// ListProtectedBranches gets a list of protected branches from a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#list-protected-branches
-func (s *ProtectedBranchesService) ListProtectedBranches(pid interface{}, opt *ListProtectedBranchesOptions, options ...RequestOptionFunc) ([]*ProtectedBranch, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_branches", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var p []*ProtectedBranch
- resp, err := s.client.Do(req, &p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// GetProtectedBranch gets a single protected branch or wildcard protected branch.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#get-a-single-protected-branch-or-wildcard-protected-branch
-func (s *ProtectedBranchesService) GetProtectedBranch(pid interface{}, branch string, options ...RequestOptionFunc) (*ProtectedBranch, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_branches/%s", pathEscape(project), url.PathEscape(branch))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(ProtectedBranch)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// ProtectRepositoryBranchesOptions represents the available
-// ProtectRepositoryBranches() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#protect-repository-branches
-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"`
-}
-
-// BranchPermissionOptions represents a branch permission option.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#protect-repository-branches
-type BranchPermissionOptions struct {
- UserID *int `url:"user_id,omitempty" json:"user_id,omitempty"`
- GroupID *int `url:"group_id,omitempty" json:"group_id,omitempty"`
- AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
-}
-
-// ProtectRepositoryBranches protects a single repository branch or several
-// project repository branches using a wildcard protected branch.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#protect-repository-branches
-func (s *ProtectedBranchesService) ProtectRepositoryBranches(pid interface{}, opt *ProtectRepositoryBranchesOptions, options ...RequestOptionFunc) (*ProtectedBranch, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_branches", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(ProtectedBranch)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// UnprotectRepositoryBranches unprotects the given protected branch or wildcard
-// protected branch.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/protected_branches.html#unprotect-repository-branches
-func (s *ProtectedBranchesService) UnprotectRepositoryBranches(pid interface{}, branch string, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_branches/%s", pathEscape(project), url.PathEscape(branch))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// RequireCodeOwnerApprovalsOptions represents the available
-// RequireCodeOwnerApprovals() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_branches.html#require-code-owner-approvals-for-a-single-branch
-type RequireCodeOwnerApprovalsOptions struct {
- CodeOwnerApprovalRequired *bool `url:"code_owner_approval_required,omitempty" json:"code_owner_approval_required,omitempty"`
-}
-
-// 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
-func (s *ProtectedBranchesService) RequireCodeOwnerApprovals(pid interface{}, branch string, opt *RequireCodeOwnerApprovalsOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_branches/%s", pathEscape(project), url.PathEscape(branch))
-
- req, err := s.client.NewRequest(http.MethodPatch, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/protected_environments.go b/vendor/github.com/xanzy/go-gitlab/protected_environments.go
deleted file mode 100644
index e532ae6220..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/protected_environments.go
+++ /dev/null
@@ -1,176 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// ProtectedEnvironmentsService handles communication with the protected
-// environment methods of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html
-type ProtectedEnvironmentsService struct {
- client *Client
-}
-
-// ProtectedEnvironment represents a protected environment.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html
-type ProtectedEnvironment struct {
- Name string `json:"name"`
- DeployAccessLevels []*EnvironmentAccessDescription `json:"deploy_access_levels"`
-}
-
-// EnvironmentAccessDescription represents the access decription for a protected
-// environment.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html
-type EnvironmentAccessDescription struct {
- AccessLevel AccessLevelValue `json:"access_level"`
- AccessLevelDescription string `json:"access_level_description"`
- UserID int `json:"user_id"`
- GroupID int `json:"group_id"`
-}
-
-// ListProtectedEnvironmentsOptions represents the available
-// ListProtectedEnvironments() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html#list-protected-environments
-type ListProtectedEnvironmentsOptions ListOptions
-
-// ListProtectedEnvironments returns a list of protected environments from a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html#list-protected-environments
-func (s *ProtectedEnvironmentsService) ListProtectedEnvironments(pid interface{}, opt *ListProtectedEnvironmentsOptions, options ...RequestOptionFunc) ([]*ProtectedEnvironment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_environments", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pes []*ProtectedEnvironment
- resp, err := s.client.Do(req, &pes)
- if err != nil {
- return nil, resp, err
- }
-
- return pes, resp, err
-}
-
-// GetProtectedEnvironment returns a single protected environment or wildcard protected environment.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html#get-a-single-protected-environment-or-wildcard-protected-environment
-func (s *ProtectedEnvironmentsService) GetProtectedEnvironment(pid interface{}, environment string, options ...RequestOptionFunc) (*ProtectedEnvironment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_environments/%s", pathEscape(project), pathEscape(environment))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pe := new(ProtectedEnvironment)
- resp, err := s.client.Do(req, pe)
- if err != nil {
- return nil, resp, err
- }
-
- return pe, resp, err
-}
-
-// ProtectRepositoryEnvironmentsOptions represents the available
-// ProtectRepositoryEnvironments() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html#protect-repository-environments
-type ProtectRepositoryEnvironmentsOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- DeployAccessLevels []*EnvironmentAccessOptions `url:"deploy_access_levels,omitempty" json:"deploy_access_levels,omitempty"`
-}
-
-// EnvironmentAccessOptions represents the options for an access decription for
-// a protected environment.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html#protect-repository-environments
-type EnvironmentAccessOptions struct {
- AccessLevel *AccessLevelValue `url:"access_level,omitempty" json:"access_level,omitempty"`
- UserID *int `url:"user_id,omitempty" json:"user_id,omitempty"`
- GroupID *int `url:"group_id,omitempty" json:"group_id,omitempty"`
-}
-
-// ProtectRepositoryEnvironments protects a single repository environment or several project
-// repository environments using a wildcard protected environment.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html#protect-repository-environments
-func (s *ProtectedEnvironmentsService) ProtectRepositoryEnvironments(pid interface{}, opt *ProtectRepositoryEnvironmentsOptions, options ...RequestOptionFunc) (*ProtectedEnvironment, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_environments", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pe := new(ProtectedEnvironment)
- resp, err := s.client.Do(req, pe)
- if err != nil {
- return nil, resp, err
- }
-
- return pe, resp, err
-}
-
-// UnprotectEnvironment unprotects the given protected environment or wildcard
-// protected environment.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_environments.html#unprotect-repository-environments
-func (s *ProtectedEnvironmentsService) UnprotectEnvironment(pid interface{}, environment string, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_environments/%s", pathEscape(project), pathEscape(environment))
-
- 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/protected_tags.go b/vendor/github.com/xanzy/go-gitlab/protected_tags.go
deleted file mode 100644
index 628f8a24a5..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/protected_tags.go
+++ /dev/null
@@ -1,162 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// ProtectedTagsService handles communication with the protected tag methods
-// of the GitLab API.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_tags.html
-type ProtectedTagsService struct {
- client *Client
-}
-
-// ProtectedTag represents a protected tag.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_tags.html
-type ProtectedTag struct {
- Name string `json:"name"`
- CreateAccessLevels []*TagAccessDescription `json:"create_access_levels"`
-}
-
-// TagAccessDescription reperesents the access decription for a protected tag.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_tags.html
-type TagAccessDescription struct {
- AccessLevel AccessLevelValue `json:"access_level"`
- AccessLevelDescription string `json:"access_level_description"`
-}
-
-// ListProtectedTagsOptions represents the available ListProtectedTags()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_tags.html#list-protected-tags
-type ListProtectedTagsOptions ListOptions
-
-// ListProtectedTags returns a list of protected tags from a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_tags.html#list-protected-tags
-func (s *ProtectedTagsService) ListProtectedTags(pid interface{}, opt *ListProtectedTagsOptions, options ...RequestOptionFunc) ([]*ProtectedTag, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_tags", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var pts []*ProtectedTag
- resp, err := s.client.Do(req, &pts)
- if err != nil {
- return nil, resp, err
- }
-
- return pts, resp, err
-}
-
-// GetProtectedTag returns a single protected tag or wildcard protected tag.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_tags.html#get-a-single-protected-tag-or-wildcard-protected-tag
-func (s *ProtectedTagsService) GetProtectedTag(pid interface{}, tag string, options ...RequestOptionFunc) (*ProtectedTag, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_tags/%s", pathEscape(project), pathEscape(tag))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- pt := new(ProtectedTag)
- resp, err := s.client.Do(req, pt)
- if err != nil {
- return nil, resp, err
- }
-
- return pt, resp, err
-}
-
-// ProtectRepositoryTagsOptions represents the available ProtectRepositoryTags()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_tags.html#protect-repository-tags
-type ProtectRepositoryTagsOptions struct {
- Name *string `url:"name" json:"name"`
- CreateAccessLevel *AccessLevelValue `url:"create_access_level,omitempty" json:"create_access_level,omitempty"`
-}
-
-// ProtectRepositoryTags protects a single repository tag or several project
-// repository tags using a wildcard protected tag.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_tags.html#protect-repository-tags
-func (s *ProtectedTagsService) ProtectRepositoryTags(pid interface{}, opt *ProtectRepositoryTagsOptions, options ...RequestOptionFunc) (*ProtectedTag, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_tags", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- pt := new(ProtectedTag)
- resp, err := s.client.Do(req, pt)
- if err != nil {
- return nil, resp, err
- }
-
- return pt, resp, err
-}
-
-// UnprotectRepositoryTags unprotects the given protected tag or wildcard
-// protected tag.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/protected_tags.html#unprotect-repository-tags
-func (s *ProtectedTagsService) UnprotectRepositoryTags(pid interface{}, tag string, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/protected_tags/%s", pathEscape(project), pathEscape(tag))
-
- 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/releaselinks.go b/vendor/github.com/xanzy/go-gitlab/releaselinks.go
deleted file mode 100644
index 5c1624c579..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/releaselinks.go
+++ /dev/null
@@ -1,199 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// ReleaseLinksService handles communication with the release link methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html
-type ReleaseLinksService struct {
- client *Client
-}
-
-// ReleaseLink represents a release link.
-//
-// 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"`
- DirectAssetURL string `json:"direct_asset_url"`
- External bool `json:"external"`
- LinkType LinkTypeValue `json:"link_type"`
-}
-
-// ListReleaseLinksOptions represents ListReleaseLinks() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html#get-links
-type ListReleaseLinksOptions ListOptions
-
-// ListReleaseLinks gets assets as links from a Release.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html#get-links
-func (s *ReleaseLinksService) ListReleaseLinks(pid interface{}, tagName string, opt *ListReleaseLinksOptions, options ...RequestOptionFunc) ([]*ReleaseLink, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases/%s/assets/links", pathEscape(project), pathEscape(tagName))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var rls []*ReleaseLink
- resp, err := s.client.Do(req, &rls)
- if err != nil {
- return nil, resp, err
- }
-
- return rls, resp, err
-}
-
-// GetReleaseLink returns a link from release assets.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html#get-a-link
-func (s *ReleaseLinksService) GetReleaseLink(pid interface{}, tagName string, link int, options ...RequestOptionFunc) (*ReleaseLink, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases/%s/assets/links/%d",
- pathEscape(project),
- pathEscape(tagName),
- link)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- rl := new(ReleaseLink)
- resp, err := s.client.Do(req, rl)
- if err != nil {
- return nil, resp, err
- }
-
- return rl, resp, err
-}
-
-// CreateReleaseLinkOptions represents CreateReleaseLink() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html#create-a-link
-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"`
- LinkType *LinkTypeValue `url:"link_type,omitempty" json:"link_type,omitempty"`
-}
-
-// CreateReleaseLink creates a link.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html#create-a-link
-func (s *ReleaseLinksService) CreateReleaseLink(pid interface{}, tagName string, opt *CreateReleaseLinkOptions, options ...RequestOptionFunc) (*ReleaseLink, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases/%s/assets/links", pathEscape(project), pathEscape(tagName))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- rl := new(ReleaseLink)
- resp, err := s.client.Do(req, rl)
- if err != nil {
- return nil, resp, err
- }
-
- return rl, resp, err
-}
-
-// UpdateReleaseLinkOptions represents UpdateReleaseLink() options.
-//
-// You have to specify at least one of Name of URL.
-//
-// 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"`
- FilePath *string `url:"filepath,omitempty" json:"filepath,omitempty"`
- LinkType *LinkTypeValue `url:"link_type,omitempty" json:"link_type,omitempty"`
-}
-
-// UpdateReleaseLink updates an asset link.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html#update-a-link
-func (s *ReleaseLinksService) UpdateReleaseLink(pid interface{}, tagName string, link int, opt *UpdateReleaseLinkOptions, options ...RequestOptionFunc) (*ReleaseLink, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases/%s/assets/links/%d",
- pathEscape(project),
- pathEscape(tagName),
- link)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- rl := new(ReleaseLink)
- resp, err := s.client.Do(req, rl)
- if err != nil {
- return nil, resp, err
- }
-
- return rl, resp, err
-}
-
-// DeleteReleaseLink deletes a link from release.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/releases/links.html#delete-a-link
-func (s *ReleaseLinksService) DeleteReleaseLink(pid interface{}, tagName string, link int, options ...RequestOptionFunc) (*ReleaseLink, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases/%s/assets/links/%d",
- pathEscape(project),
- pathEscape(tagName),
- link,
- )
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- rl := new(ReleaseLink)
- resp, err := s.client.Do(req, rl)
- if err != nil {
- return nil, resp, err
- }
-
- return rl, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/releases.go b/vendor/github.com/xanzy/go-gitlab/releases.go
deleted file mode 100644
index 0059fbba94..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/releases.go
+++ /dev/null
@@ -1,234 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// ReleasesService handles communication with the releases methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/releases/index.html
-type ReleasesService struct {
- client *Client
-}
-
-// Release represents a project release.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#list-releases
-type Release struct {
- TagName string `json:"tag_name"`
- Name string `json:"name"`
- Description string `json:"description"`
- DescriptionHTML string `json:"description_html"`
- CreatedAt *time.Time `json:"created_at"`
- ReleasedAt *time.Time `json:"released_at"`
- Author struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Username string `json:"username"`
- State string `json:"state"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- } `json:"author"`
- Commit Commit `json:"commit"`
- Assets struct {
- Count int `json:"count"`
- Sources []struct {
- Format string `json:"format"`
- URL string `json:"url"`
- } `json:"sources"`
- Links []*ReleaseLink `json:"links"`
- } `json:"assets"`
-}
-
-// ListReleasesOptions represents ListReleases() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#list-releases
-type ListReleasesOptions ListOptions
-
-// ListReleases gets a pagenated of releases accessible by the authenticated user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#list-releases
-func (s *ReleasesService) ListReleases(pid interface{}, opt *ListReleasesOptions, options ...RequestOptionFunc) ([]*Release, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var rs []*Release
- resp, err := s.client.Do(req, &rs)
- if err != nil {
- return nil, resp, err
- }
-
- return rs, resp, err
-}
-
-// GetRelease returns a single release, identified by a tag name.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#get-a-release-by-a-tag-name
-func (s *ReleasesService) GetRelease(pid interface{}, tagName string, options ...RequestOptionFunc) (*Release, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases/%s", pathEscape(project), pathEscape(tagName))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- r := new(Release)
- resp, err := s.client.Do(req, r)
- if err != nil {
- return nil, resp, err
- }
-
- return r, resp, err
-}
-
-// ReleaseAssets represents release assets in CreateRelease() options
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#create-a-release
-type ReleaseAssets struct {
- Links []*ReleaseAssetLink `url:"links" json:"links"`
-}
-
-// ReleaseAssetLink represents release asset link in CreateRelease() options
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#create-a-release
-type ReleaseAssetLink struct {
- Name string `url:"name" json:"name"`
- URL string `url:"url" json:"url"`
-}
-
-// CreateReleaseOptions represents CreateRelease() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#create-a-release
-type CreateReleaseOptions struct {
- Name *string `url:"name" json:"name"`
- TagName *string `url:"tag_name" json:"tag_name"`
- Description *string `url:"description" json:"description"`
- Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
- Milestones []string `url:"milestones,omitempty" json:"milestones,omitempty"`
- Assets *ReleaseAssets `url:"assets,omitempty" json:"assets,omitempty"`
- ReleasedAt *time.Time `url:"released_at,omitempty" json:"released_at,omitempty"`
-}
-
-// CreateRelease creates a release.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#create-a-release
-func (s *ReleasesService) CreateRelease(pid interface{}, opts *CreateReleaseOptions, options ...RequestOptionFunc) (*Release, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- r := new(Release)
- resp, err := s.client.Do(req, r)
- if err != nil {
- return nil, resp, err
- }
-
- return r, resp, err
-}
-
-// UpdateReleaseOptions represents UpdateRelease() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#update-a-release
-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"`
-}
-
-// UpdateRelease updates a release.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#update-a-release
-func (s *ReleasesService) UpdateRelease(pid interface{}, tagName string, opts *UpdateReleaseOptions, options ...RequestOptionFunc) (*Release, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases/%s", pathEscape(project), pathEscape(tagName))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- r := new(Release)
- resp, err := s.client.Do(req, &r)
- if err != nil {
- return nil, resp, err
- }
-
- return r, resp, err
-}
-
-// DeleteRelease deletes a release.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/releases/index.html#delete-a-release
-func (s *ReleasesService) DeleteRelease(pid interface{}, tagName string, options ...RequestOptionFunc) (*Release, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/releases/%s", pathEscape(project), pathEscape(tagName))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- r := new(Release)
- resp, err := s.client.Do(req, r)
- if err != nil {
- return nil, resp, err
- }
-
- return r, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/repositories.go b/vendor/github.com/xanzy/go-gitlab/repositories.go
deleted file mode 100644
index b9c99cf7d5..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/repositories.go
+++ /dev/null
@@ -1,332 +0,0 @@
-//
-// 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"
- "net/http"
- "net/url"
-)
-
-// RepositoriesService handles communication with the repositories related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/repositories.html
-type RepositoriesService struct {
- client *Client
-}
-
-// TreeNode represents a GitLab repository file or directory.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/repositories.html
-type TreeNode struct {
- ID string `json:"id"`
- Name string `json:"name"`
- Type string `json:"type"`
- Path string `json:"path"`
- Mode string `json:"mode"`
-}
-
-func (t TreeNode) String() string {
- return Stringify(t)
-}
-
-// ListTreeOptions represents the available ListTree() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#list-repository-tree
-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"`
-}
-
-// ListTree gets a list of repository files and directories in a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#list-repository-tree
-func (s *RepositoriesService) ListTree(pid interface{}, opt *ListTreeOptions, options ...RequestOptionFunc) ([]*TreeNode, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/tree", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var t []*TreeNode
- resp, err := s.client.Do(req, &t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// 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/ce/api/repositories.html#get-a-blob-from-repository
-func (s *RepositoriesService) Blob(pid interface{}, sha string, options ...RequestOptionFunc) ([]byte, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/blobs/%s", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var b bytes.Buffer
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b.Bytes(), resp, err
-}
-
-// RawBlobContent gets the raw file contents for a blob by blob SHA.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#raw-blob-content
-func (s *RepositoriesService) RawBlobContent(pid interface{}, sha string, options ...RequestOptionFunc) ([]byte, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/blobs/%s/raw", pathEscape(project), url.PathEscape(sha))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var b bytes.Buffer
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b.Bytes(), resp, err
-}
-
-// ArchiveOptions represents the available Archive() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#get-file-archive
-type ArchiveOptions struct {
- Format *string `url:"-" json:"-"`
- SHA *string `url:"sha,omitempty" json:"sha,omitempty"`
-}
-
-// Archive gets an archive of the repository.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#get-file-archive
-func (s *RepositoriesService) Archive(pid interface{}, opt *ArchiveOptions, options ...RequestOptionFunc) ([]byte, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/archive", pathEscape(project))
-
- // Set an optional format for the archive.
- if opt != nil && opt.Format != nil {
- u = fmt.Sprintf("%s.%s", u, *opt.Format)
- }
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var b bytes.Buffer
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b.Bytes(), resp, err
-}
-
-// StreamArchive streams an archive of the repository to the provided
-// io.Writer.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#get-file-archive
-func (s *RepositoriesService) StreamArchive(pid interface{}, w io.Writer, opt *ArchiveOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/archive", pathEscape(project))
-
- // Set an optional format for the archive.
- if opt != nil && opt.Format != nil {
- u = fmt.Sprintf("%s.%s", u, *opt.Format)
- }
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, w)
-}
-
-// Compare represents the result of a comparison of branches, tags or commits.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#compare-branches-tags-or-commits
-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"`
-}
-
-func (c Compare) String() string {
- return Stringify(c)
-}
-
-// CompareOptions represents the available Compare() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#compare-branches-tags-or-commits
-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"`
-}
-
-// Compare compares branches, tags or commits.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#compare-branches-tags-or-commits
-func (s *RepositoriesService) Compare(pid interface{}, opt *CompareOptions, options ...RequestOptionFunc) (*Compare, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/compare", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- c := new(Compare)
- resp, err := s.client.Do(req, c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// Contributor represents a GitLap contributor.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/repositories.html#contributors
-type Contributor struct {
- Name string `json:"name"`
- Email string `json:"email"`
- Commits int `json:"commits"`
- Additions int `json:"additions"`
- Deletions int `json:"deletions"`
-}
-
-func (c Contributor) String() string {
- return Stringify(c)
-}
-
-// ListContributorsOptions represents the available ListContributors() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/repositories.html#contributors
-type ListContributorsOptions struct {
- ListOptions
- OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
- Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
-}
-
-// Contributors gets the repository contributors list.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/repositories.html#contributors
-func (s *RepositoriesService) Contributors(pid interface{}, opt *ListContributorsOptions, options ...RequestOptionFunc) ([]*Contributor, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/contributors", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var c []*Contributor
- resp, err := s.client.Do(req, &c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
-
-// MergeBaseOptions represents the available MergeBase() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#merge-base
-type MergeBaseOptions struct {
- Ref []string `url:"refs[],omitempty" json:"refs,omitempty"`
-}
-
-// MergeBase gets the common ancestor for 2 refs (commit SHAs, branch
-// names or tags).
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repositories.html#merge-base
-func (s *RepositoriesService) MergeBase(pid interface{}, opt *MergeBaseOptions, options ...RequestOptionFunc) (*Commit, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/merge_base", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- c := new(Commit)
- resp, err := s.client.Do(req, c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/repository_files.go b/vendor/github.com/xanzy/go-gitlab/repository_files.go
deleted file mode 100644
index 9c83432e77..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/repository_files.go
+++ /dev/null
@@ -1,378 +0,0 @@
-//
-// 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"
- "net/http"
- "strconv"
- "time"
-)
-
-// RepositoryFilesService handles communication with the repository files
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/repository_files.html
-type RepositoryFilesService struct {
- client *Client
-}
-
-// File represents a GitLab repository file.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/repository_files.html
-type File struct {
- FileName string `json:"file_name"`
- FilePath string `json:"file_path"`
- Size int `json:"size"`
- Encoding string `json:"encoding"`
- Content string `json:"content"`
- 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"`
-}
-
-func (r File) String() string {
- return Stringify(r)
-}
-
-// GetFileOptions represents the available GetFile() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#get-file-from-repository
-type GetFileOptions struct {
- Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
-}
-
-// 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/ce/api/repository_files.html#get-file-from-repository
-func (s *RepositoryFilesService) GetFile(pid interface{}, fileName string, opt *GetFileOptions, options ...RequestOptionFunc) (*File, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/repository/files/%s",
- pathEscape(project),
- pathEscape(fileName),
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- f := new(File)
- resp, err := s.client.Do(req, f)
- if err != nil {
- return nil, resp, err
- }
-
- return f, resp, err
-}
-
-// GetFileMetaDataOptions represents the available GetFileMetaData() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#get-file-from-repository
-type GetFileMetaDataOptions struct {
- Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
-}
-
-// GetFileMetaData allows you to receive meta information about a file in
-// repository like name, size.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#get-file-from-repository
-func (s *RepositoryFilesService) GetFileMetaData(pid interface{}, fileName string, opt *GetFileMetaDataOptions, options ...RequestOptionFunc) (*File, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/repository/files/%s",
- pathEscape(project),
- pathEscape(fileName),
- )
-
- req, err := s.client.NewRequest(http.MethodHead, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- resp, err := s.client.Do(req, nil)
- if err != nil {
- return nil, resp, err
- }
-
- f := &File{
- BlobID: resp.Header.Get("X-Gitlab-Blob-Id"),
- CommitID: resp.Header.Get("X-Gitlab-Last-Commit-Id"),
- Encoding: resp.Header.Get("X-Gitlab-Encoding"),
- FileName: resp.Header.Get("X-Gitlab-File-Name"),
- FilePath: resp.Header.Get("X-Gitlab-File-Path"),
- Ref: resp.Header.Get("X-Gitlab-Ref"),
- SHA256: resp.Header.Get("X-Gitlab-Content-Sha256"),
- LastCommitID: resp.Header.Get("X-Gitlab-Last-Commit-Id"),
- }
-
- if sizeString := resp.Header.Get("X-Gitlab-Size"); sizeString != "" {
- f.Size, err = strconv.Atoi(sizeString)
- if err != nil {
- return nil, resp, err
- }
- }
-
- return f, resp, err
-}
-
-// FileBlameRange represents one item of blame information.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/repository_files.html
-type FileBlameRange struct {
- Commit struct {
- ID string `json:"id"`
- ParentIDs []string `json:"parent_ids"`
- Message string `json:"message"`
- AuthoredDate *time.Time `json:"authored_date"`
- AuthorName string `json:"author_name"`
- AuthorEmail string `json:"author_email"`
- CommittedDate *time.Time `json:"committed_date"`
- CommitterName string `json:"committer_name"`
- CommitterEmail string `json:"committer_email"`
- } `json:"commit"`
- Lines []string `json:"lines"`
-}
-
-func (b FileBlameRange) String() string {
- return Stringify(b)
-}
-
-// GetFileBlameOptions represents the available GetFileBlame() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#get-file-blame-from-repository
-type GetFileBlameOptions struct {
- Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
-}
-
-// GetFileBlame allows you to receive blame information. Each blame range
-// contains lines and corresponding commit info.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#get-file-blame-from-repository
-func (s *RepositoryFilesService) GetFileBlame(pid interface{}, file string, opt *GetFileBlameOptions, options ...RequestOptionFunc) ([]*FileBlameRange, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/repository/files/%s/blame",
- pathEscape(project),
- pathEscape(file),
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var br []*FileBlameRange
- resp, err := s.client.Do(req, &br)
- if err != nil {
- return nil, resp, err
- }
-
- return br, resp, err
-}
-
-// GetRawFileOptions represents the available GetRawFile() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#get-raw-file-from-repository
-type GetRawFileOptions struct {
- Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
-}
-
-// GetRawFile allows you to receive the raw file in repository.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#get-raw-file-from-repository
-func (s *RepositoryFilesService) GetRawFile(pid interface{}, fileName string, opt *GetRawFileOptions, options ...RequestOptionFunc) ([]byte, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/repository/files/%s/raw",
- pathEscape(project),
- pathEscape(fileName),
- )
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var f bytes.Buffer
- resp, err := s.client.Do(req, &f)
- if err != nil {
- return nil, resp, err
- }
-
- return f.Bytes(), resp, err
-}
-
-// FileInfo represents file details of a GitLab repository file.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/repository_files.html
-type FileInfo struct {
- FilePath string `json:"file_path"`
- Branch string `json:"branch"`
-}
-
-func (r FileInfo) String() string {
- return Stringify(r)
-}
-
-// CreateFileOptions represents the available CreateFile() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#create-new-file-in-repository
-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"`
-}
-
-// CreateFile creates a new file in a repository.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#create-new-file-in-repository
-func (s *RepositoryFilesService) CreateFile(pid interface{}, fileName string, opt *CreateFileOptions, options ...RequestOptionFunc) (*FileInfo, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/repository/files/%s",
- pathEscape(project),
- pathEscape(fileName),
- )
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- f := new(FileInfo)
- resp, err := s.client.Do(req, f)
- if err != nil {
- return nil, resp, err
- }
-
- return f, resp, err
-}
-
-// UpdateFileOptions represents the available UpdateFile() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#update-existing-file-in-repository
-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"`
-}
-
-// UpdateFile updates an existing file in a repository
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#update-existing-file-in-repository
-func (s *RepositoryFilesService) UpdateFile(pid interface{}, fileName string, opt *UpdateFileOptions, options ...RequestOptionFunc) (*FileInfo, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/repository/files/%s",
- pathEscape(project),
- pathEscape(fileName),
- )
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- f := new(FileInfo)
- resp, err := s.client.Do(req, f)
- if err != nil {
- return nil, resp, err
- }
-
- return f, resp, err
-}
-
-// DeleteFileOptions represents the available DeleteFile() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#delete-existing-file-in-repository
-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"`
-}
-
-// DeleteFile deletes an existing file in a repository
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/repository_files.html#delete-existing-file-in-repository
-func (s *RepositoryFilesService) DeleteFile(pid interface{}, fileName string, opt *DeleteFileOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf(
- "projects/%s/repository/files/%s",
- pathEscape(project),
- pathEscape(fileName),
- )
-
- req, err := s.client.NewRequest(http.MethodDelete, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/request_options.go b/vendor/github.com/xanzy/go-gitlab/request_options.go
deleted file mode 100644
index b43dd39fe8..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/request_options.go
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-// 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 (
- "context"
-
- retryablehttp "github.com/hashicorp/go-retryablehttp"
-)
-
-// RequestOptionFunc can be passed to all API requests to customize the API request.
-type RequestOptionFunc func(*retryablehttp.Request) error
-
-// WithSudo takes either a username or user ID and sets the SUDO request header
-func WithSudo(uid interface{}) RequestOptionFunc {
- return func(req *retryablehttp.Request) error {
- user, err := parseID(uid)
- if err != nil {
- return err
- }
- req.Header.Set("SUDO", user)
- return nil
- }
-}
-
-// WithContext runs the request with the provided context
-func WithContext(ctx context.Context) RequestOptionFunc {
- return func(req *retryablehttp.Request) error {
- *req = *req.WithContext(ctx)
- return nil
- }
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/resource_label_events.go b/vendor/github.com/xanzy/go-gitlab/resource_label_events.go
deleted file mode 100644
index 2bc93896d5..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/resource_label_events.go
+++ /dev/null
@@ -1,220 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// ResourceLabelEventsService handles communication with the event related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/resource_label_events.html
-type ResourceLabelEventsService struct {
- client *Client
-}
-
-// LabelEvent represents a resource label event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_label_events.html#get-single-issue-label-event
-type LabelEvent struct {
- ID int `json:"id"`
- Action string `json:"action"`
- CreatedAt *time.Time `json:"created_at"`
- ResourceType string `json:"resource_type"`
- ResourceID int `json:"resource_id"`
- User struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Username string `json:"username"`
- State string `json:"state"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
- } `json:"user"`
- Label struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Color string `json:"color"`
- TextColor string `json:"text_color"`
- Description string `json:"description"`
- } `json:"label"`
-}
-
-// ListLabelEventsOptions represents the options for all resource label events
-// list methods.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_label_events.html#list-project-issue-label-events
-type ListLabelEventsOptions struct {
- ListOptions
-}
-
-// ListIssueLabelEvents retrieves resource label events for the
-// specified project and issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_label_events.html#list-project-issue-label-events
-func (s *ResourceLabelEventsService) ListIssueLabelEvents(pid interface{}, issue int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/resource_label_events", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ls []*LabelEvent
- resp, err := s.client.Do(req, &ls)
- if err != nil {
- return nil, resp, err
- }
-
- return ls, resp, err
-}
-
-// GetIssueLabelEvent gets a single issue-label-event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_label_events.html#get-single-issue-label-event
-func (s *ResourceLabelEventsService) GetIssueLabelEvent(pid interface{}, issue int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/resource_label_events/%d", pathEscape(project), issue, event)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(LabelEvent)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// ListGroupEpicLabelEvents retrieves resource label events for the specified
-// group and epic.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_label_events.html#list-group-epic-label-events
-func (s *ResourceLabelEventsService) ListGroupEpicLabelEvents(gid interface{}, epic int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/resource_label_events", pathEscape(group), epic)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ls []*LabelEvent
- resp, err := s.client.Do(req, &ls)
- if err != nil {
- return nil, resp, err
- }
-
- return ls, resp, err
-}
-
-// GetGroupEpicLabelEvent gets a single group epic label event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_label_events.html#get-single-epic-label-event
-func (s *ResourceLabelEventsService) GetGroupEpicLabelEvent(gid interface{}, epic int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/epics/%d/resource_label_events/%d", pathEscape(group), epic, event)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(LabelEvent)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
-
-// ListMergeRequestsLabelEvents retrieves resource label events for the specified
-// project and merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_label_events.html#list-project-merge-request-label-events
-func (s *ResourceLabelEventsService) ListMergeRequestsLabelEvents(pid interface{}, request int, opt *ListLabelEventsOptions, options ...RequestOptionFunc) ([]*LabelEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/resource_label_events", pathEscape(project), request)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ls []*LabelEvent
- resp, err := s.client.Do(req, &ls)
- if err != nil {
- return nil, resp, err
- }
-
- return ls, resp, err
-}
-
-// GetMergeRequestLabelEvent gets a single merge request label event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_label_events.html#get-single-merge-request-label-event
-func (s *ResourceLabelEventsService) GetMergeRequestLabelEvent(pid interface{}, request int, event int, options ...RequestOptionFunc) (*LabelEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/resource_label_events/%d", pathEscape(project), request, event)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(LabelEvent)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/resource_state_events.go b/vendor/github.com/xanzy/go-gitlab/resource_state_events.go
deleted file mode 100644
index 38f6d82224..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/resource_state_events.go
+++ /dev/null
@@ -1,154 +0,0 @@
-//
-// Copyright 2021, Matthias Simon
-//
-// 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"
- "time"
-)
-
-// ResourceStateEventsService handles communication with the event related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/resource_state_events.html
-type ResourceStateEventsService struct {
- client *Client
-}
-
-// StateEvent represents a resource state event.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/resource_state_events.html
-type StateEvent struct {
- ID int `json:"id"`
- User *BasicUser `json:"user"`
- CreatedAt *time.Time `json:"created_at"`
- ResourceType string `json:"resource_type"`
- ResourceID int `json:"resource_id"`
- State EventTypeValue `json:"state"`
-}
-
-// ListStateEventsOptions represents the options for all resource state events
-// list methods.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_state_events.html#list-project-issue-state-events
-type ListStateEventsOptions struct {
- ListOptions
-}
-
-// ListIssueStateEvents retrieves resource state events for the specified
-// project and issue.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_state_events.html#list-project-issue-state-events
-func (s *ResourceStateEventsService) ListIssueStateEvents(pid interface{}, issue int, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/resource_state_events", pathEscape(project), issue)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ses []*StateEvent
- resp, err := s.client.Do(req, &ses)
- if err != nil {
- return nil, resp, err
- }
-
- return ses, resp, err
-}
-
-// GetIssueStateEvent gets a single issue-state-event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_state_events.html#get-single-issue-state-event
-func (s *ResourceStateEventsService) GetIssueStateEvent(pid interface{}, issue int, event int, options ...RequestOptionFunc) (*StateEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/issues/%d/resource_state_events/%d", pathEscape(project), issue, event)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- se := new(StateEvent)
- resp, err := s.client.Do(req, se)
- if err != nil {
- return nil, resp, err
- }
-
- return se, resp, err
-}
-
-// ListMergeStateEvents retrieves resource state events for the specified
-// project and merge request.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_state_events.html#list-project-merge-request-state-events
-func (s *ResourceStateEventsService) ListMergeStateEvents(pid interface{}, request int, opt *ListStateEventsOptions, options ...RequestOptionFunc) ([]*StateEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/resource_state_events", pathEscape(project), request)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ses []*StateEvent
- resp, err := s.client.Do(req, &ses)
- if err != nil {
- return nil, resp, err
- }
-
- return ses, resp, err
-}
-
-// GetMergeRequestStateEvent gets a single merge request state event.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/resource_state_events.html#get-single-merge-request-state-event
-func (s *ResourceStateEventsService) GetMergeRequestStateEvent(pid interface{}, request int, event int, options ...RequestOptionFunc) (*StateEvent, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/merge_requests/%d/resource_state_events/%d", pathEscape(project), request, event)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- se := new(StateEvent)
- resp, err := s.client.Do(req, se)
- if err != nil {
- return nil, resp, err
- }
-
- return se, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/runners.go b/vendor/github.com/xanzy/go-gitlab/runners.go
deleted file mode 100644
index 775eef7f62..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/runners.go
+++ /dev/null
@@ -1,482 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// RunnersService handles communication with the runner related methods of the
-// GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/runners.html
-type RunnersService struct {
- client *Client
-}
-
-// Runner represents a GitLab CI Runner.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/runners.html
-type Runner struct {
- ID int `json:"id"`
- Description string `json:"description"`
- Active bool `json:"active"`
- IsShared bool `json:"is_shared"`
- IPAddress string `json:"ip_address"`
- Name string `json:"name"`
- Online bool `json:"online"`
- Status string `json:"status"`
- Token string `json:"token"`
-}
-
-// RunnerDetails represents the GitLab CI runner details.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/runners.html
-type RunnerDetails struct {
- Active bool `json:"active"`
- Architecture string `json:"architecture"`
- Description string `json:"description"`
- ID int `json:"id"`
- IPAddress string `json:"ip_address"`
- IsShared bool `json:"is_shared"`
- ContactedAt *time.Time `json:"contacted_at"`
- Name string `json:"name"`
- Online bool `json:"online"`
- Status string `json:"status"`
- Platform string `json:"platform"`
- Projects []struct {
- ID int `json:"id"`
- Name string `json:"name"`
- NameWithNamespace string `json:"name_with_namespace"`
- Path string `json:"path"`
- PathWithNamespace string `json:"path_with_namespace"`
- } `json:"projects"`
- Token string `json:"token"`
- Revision string `json:"revision"`
- TagList []string `json:"tag_list"`
- RunUntagged bool `json:"run_untagged"`
- Version string `json:"version"`
- Locked bool `json:"locked"`
- AccessLevel string `json:"access_level"`
- MaximumTimeout int `json:"maximum_timeout"`
- Groups []struct {
- ID int `json:"id"`
- Name string `json:"name"`
- WebURL string `json:"web_url"`
- } `json:"groups"`
-}
-
-// ListRunnersOptions represents the available ListRunners() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#list-owned-runners
-type ListRunnersOptions struct {
- ListOptions
- Scope *string `url:"scope,omitempty" json:"scope,omitempty"`
- 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"`
-}
-
-// ListRunners gets a list of runners accessible by the authenticated user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#list-owned-runners
-func (s *RunnersService) ListRunners(opt *ListRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "runners", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var rs []*Runner
- resp, err := s.client.Do(req, &rs)
- if err != nil {
- return nil, resp, err
- }
-
- return rs, resp, err
-}
-
-// 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/ce/api/runners.html#list-all-runners
-func (s *RunnersService) ListAllRunners(opt *ListRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "runners/all", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var rs []*Runner
- resp, err := s.client.Do(req, &rs)
- if err != nil {
- return nil, resp, err
- }
-
- return rs, resp, err
-}
-
-// GetRunnerDetails returns details for given runner.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#get-runner-39-s-details
-func (s *RunnersService) GetRunnerDetails(rid interface{}, options ...RequestOptionFunc) (*RunnerDetails, *Response, error) {
- runner, err := parseID(rid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("runners/%s", runner)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var rs *RunnerDetails
- resp, err := s.client.Do(req, &rs)
- if err != nil {
- return nil, resp, err
- }
-
- return rs, resp, err
-}
-
-// UpdateRunnerDetailsOptions represents the available UpdateRunnerDetails() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#update-runner-39-s-details
-type UpdateRunnerDetailsOptions struct {
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- Active *bool `url:"active,omitempty" json:"active,omitempty"`
- TagList []string `url:"tag_list[],omitempty" json:"tag_list,omitempty"`
- RunUntagged *bool `url:"run_untagged,omitempty" json:"run_untagged,omitempty"`
- Locked *bool `url:"locked,omitempty" json:"locked,omitempty"`
- AccessLevel *string `url:"access_level,omitempty" json:"access_level,omitempty"`
- MaximumTimeout *int `url:"maximum_timeout,omitempty" json:"maximum_timeout,omitempty"`
-}
-
-// UpdateRunnerDetails updates details for a given runner.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#update-runner-39-s-details
-func (s *RunnersService) UpdateRunnerDetails(rid interface{}, opt *UpdateRunnerDetailsOptions, options ...RequestOptionFunc) (*RunnerDetails, *Response, error) {
- runner, err := parseID(rid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("runners/%s", runner)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var rs *RunnerDetails
- resp, err := s.client.Do(req, &rs)
- if err != nil {
- return nil, resp, err
- }
-
- return rs, resp, err
-}
-
-// RemoveRunner removes a runner.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#remove-a-runner
-func (s *RunnersService) RemoveRunner(rid interface{}, options ...RequestOptionFunc) (*Response, error) {
- runner, err := parseID(rid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("runners/%s", runner)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListRunnerJobsOptions represents the available ListRunnerJobs()
-// options. Status can be one of: running, success, failed, canceled.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#list-runners-jobs
-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"`
-}
-
-// ListRunnerJobs gets a list of jobs that are being processed or were processed by specified Runner.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#list-runner-39-s-jobs
-func (s *RunnersService) ListRunnerJobs(rid interface{}, opt *ListRunnerJobsOptions, options ...RequestOptionFunc) ([]*Job, *Response, error) {
- runner, err := parseID(rid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("runners/%s/jobs", runner)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var rs []*Job
- resp, err := s.client.Do(req, &rs)
- if err != nil {
- return nil, resp, err
- }
-
- return rs, resp, err
-}
-
-// ListProjectRunnersOptions represents the available ListProjectRunners()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#list-project-s-runners
-type ListProjectRunnersOptions ListRunnersOptions
-
-// ListProjectRunners gets a list of runners accessible by the authenticated user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#list-project-s-runners
-func (s *RunnersService) ListProjectRunners(pid interface{}, opt *ListProjectRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/runners", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var rs []*Runner
- resp, err := s.client.Do(req, &rs)
- if err != nil {
- return nil, resp, err
- }
-
- return rs, resp, err
-}
-
-// EnableProjectRunnerOptions represents the available EnableProjectRunner()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#enable-a-runner-in-project
-type EnableProjectRunnerOptions struct {
- RunnerID int `json:"runner_id"`
-}
-
-// EnableProjectRunner enables an available specific runner in the project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#enable-a-runner-in-project
-func (s *RunnersService) EnableProjectRunner(pid interface{}, opt *EnableProjectRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/runners", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var r *Runner
- resp, err := s.client.Do(req, &r)
- if err != nil {
- return nil, resp, err
- }
-
- return r, resp, err
-}
-
-// DisableProjectRunner disables a specific runner from project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#disable-a-runner-from-project
-func (s *RunnersService) DisableProjectRunner(pid interface{}, runner int, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/runners/%d", pathEscape(project), runner)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ListGroupsRunnersOptions represents the available ListGroupsRunners() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/runners.html#list-groups-runners
-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"`
-}
-
-// 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/ee/api/runners.html#list-groups-runners
-func (s *RunnersService) ListGroupsRunners(gid interface{}, opt *ListGroupsRunnersOptions, options ...RequestOptionFunc) ([]*Runner, *Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("groups/%s/runners", pathEscape(group))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var rs []*Runner
- resp, err := s.client.Do(req, &rs)
- if err != nil {
- return nil, resp, err
- }
-
- return rs, resp, err
-}
-
-// RegisterNewRunnerOptions represents the available RegisterNewRunner()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#register-a-new-runner
-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"`
- Active *bool `url:"active,omitempty" json:"active,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"`
- MaximumTimeout *int `url:"maximum_timeout,omitempty" json:"maximum_timeout,omitempty"`
-}
-
-// RegisterNewRunnerInfoOptions represents the info hashmap parameter in
-// RegisterNewRunnerOptions.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#register-a-new-runner
-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"`
-}
-
-// RegisterNewRunner registers a new Runner for the instance.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#register-a-new-runner
-func (s *RunnersService) RegisterNewRunner(opt *RegisterNewRunnerOptions, options ...RequestOptionFunc) (*Runner, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "runners", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var r *Runner
- resp, err := s.client.Do(req, &r)
- if err != nil {
- return nil, resp, err
- }
-
- return r, resp, err
-}
-
-// DeleteRegisteredRunnerOptions represents the available
-// DeleteRegisteredRunner() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#delete-a-registered-runner
-type DeleteRegisteredRunnerOptions struct {
- Token *string `url:"token" json:"token"`
-}
-
-// DeleteRegisteredRunner deletes a Runner by Token.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#delete-a-runner-by-authentication-token
-func (s *RunnersService) DeleteRegisteredRunner(opt *DeleteRegisteredRunnerOptions, options ...RequestOptionFunc) (*Response, error) {
- req, err := s.client.NewRequest(http.MethodDelete, "runners", opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteRegisteredRunnerByID deletes a Runner by ID.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#delete-a-runner-by-id
-func (s *RunnersService) DeleteRegisteredRunnerByID(rid int, options ...RequestOptionFunc) (*Response, error) {
- req, err := s.client.NewRequest(http.MethodDelete, fmt.Sprintf("runners/%d", rid), nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// VerifyRegisteredRunnerOptions represents the available
-// VerifyRegisteredRunner() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#verify-authentication-for-a-registered-runner
-type VerifyRegisteredRunnerOptions struct {
- Token *string `url:"token" json:"token"`
-}
-
-// VerifyRegisteredRunner registers a new Runner for the instance.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/runners.html#verify-authentication-for-a-registered-runner
-func (s *RunnersService) VerifyRegisteredRunner(opt *VerifyRegisteredRunnerOptions, options ...RequestOptionFunc) (*Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "runners/verify", opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/search.go b/vendor/github.com/xanzy/go-gitlab/search.go
deleted file mode 100644
index 972a37d81d..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/search.go
+++ /dev/null
@@ -1,358 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// SearchService handles communication with the search related methods of the
-// GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html
-type SearchService struct {
- client *Client
-}
-
-// SearchOptions represents the available options for all search methods.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html
-type SearchOptions struct {
- ListOptions
- Ref *string `url:"ref,omitempty" json:"ref,omitempty"`
-}
-
-type searchOptions struct {
- SearchOptions
- Scope string `url:"scope" json:"scope"`
- Search string `url:"search" json:"search"`
-}
-
-// Projects searches the expression within projects
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-projects
-func (s *SearchService) Projects(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Project, *Response, error) {
- var ps []*Project
- resp, err := s.search("projects", query, &ps, opt, options...)
- return ps, resp, err
-}
-
-// ProjectsByGroup searches the expression within projects for
-// the specified group
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#group-search-api
-func (s *SearchService) ProjectsByGroup(gid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Project, *Response, error) {
- var ps []*Project
- resp, err := s.searchByGroup(gid, "projects", query, &ps, opt, options...)
- return ps, resp, err
-}
-
-// Issues searches the expression within issues
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-issues
-func (s *SearchService) Issues(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- var is []*Issue
- resp, err := s.search("issues", query, &is, opt, options...)
- return is, resp, err
-}
-
-// IssuesByGroup searches the expression within issues for
-// the specified group
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-issues
-func (s *SearchService) IssuesByGroup(gid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- var is []*Issue
- resp, err := s.searchByGroup(gid, "issues", query, &is, opt, options...)
- return is, resp, err
-}
-
-// IssuesByProject searches the expression within issues for
-// the specified project
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-issues
-func (s *SearchService) IssuesByProject(pid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Issue, *Response, error) {
- var is []*Issue
- resp, err := s.searchByProject(pid, "issues", query, &is, opt, options...)
- return is, resp, err
-}
-
-// MergeRequests searches the expression within merge requests
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/search.html#scope-merge_requests
-func (s *SearchService) MergeRequests(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- var ms []*MergeRequest
- resp, err := s.search("merge_requests", query, &ms, opt, options...)
- return ms, resp, err
-}
-
-// MergeRequestsByGroup searches the expression within merge requests for
-// the specified group
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/search.html#scope-merge_requests
-func (s *SearchService) MergeRequestsByGroup(gid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- var ms []*MergeRequest
- resp, err := s.searchByGroup(gid, "merge_requests", query, &ms, opt, options...)
- return ms, resp, err
-}
-
-// MergeRequestsByProject searches the expression within merge requests for
-// the specified project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/search.html#scope-merge_requests
-func (s *SearchService) MergeRequestsByProject(pid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*MergeRequest, *Response, error) {
- var ms []*MergeRequest
- resp, err := s.searchByProject(pid, "merge_requests", query, &ms, opt, options...)
- return ms, resp, err
-}
-
-// Milestones searches the expression within milestones
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-milestones
-func (s *SearchService) Milestones(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error) {
- var ms []*Milestone
- resp, err := s.search("milestones", query, &ms, opt, options...)
- return ms, resp, err
-}
-
-// MilestonesByGroup searches the expression within milestones for
-// the specified group
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-milestones
-func (s *SearchService) MilestonesByGroup(gid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error) {
- var ms []*Milestone
- resp, err := s.searchByGroup(gid, "milestones", query, &ms, opt, options...)
- return ms, resp, err
-}
-
-// MilestonesByProject searches the expression within milestones for
-// the specified project
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-milestones
-func (s *SearchService) MilestonesByProject(pid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Milestone, *Response, error) {
- var ms []*Milestone
- resp, err := s.searchByProject(pid, "milestones", query, &ms, opt, options...)
- return ms, resp, err
-}
-
-// SnippetTitles searches the expression within snippet titles
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/search.html#scope-snippet_titles
-func (s *SearchService) SnippetTitles(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error) {
- var ss []*Snippet
- resp, err := s.search("snippet_titles", query, &ss, opt, options...)
- return ss, resp, err
-}
-
-// SnippetBlobs searches the expression within snippet blobs
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/search.html#scope-snippet_blobs
-func (s *SearchService) SnippetBlobs(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error) {
- var ss []*Snippet
- resp, err := s.search("snippet_blobs", query, &ss, opt, options...)
- return ss, resp, err
-}
-
-// NotesByProject searches the expression within notes for the specified
-// project
-//
-// GitLab API docs: // https://docs.gitlab.com/ce/api/search.html#scope-notes
-func (s *SearchService) NotesByProject(pid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Note, *Response, error) {
- var ns []*Note
- resp, err := s.searchByProject(pid, "notes", query, &ns, opt, options...)
- return ns, resp, err
-}
-
-// WikiBlobs searches the expression within all wiki blobs
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/search.html#scope-wiki_blobs
-func (s *SearchService) WikiBlobs(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error) {
- var ws []*Wiki
- resp, err := s.search("wiki_blobs", query, &ws, opt, options...)
- return ws, resp, err
-}
-
-// WikiBlobsByGroup searches the expression within wiki blobs for
-// specified group
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/search.html#scope-wiki_blobs
-func (s *SearchService) WikiBlobsByGroup(gid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error) {
- var ws []*Wiki
- resp, err := s.searchByGroup(gid, "wiki_blobs", query, &ws, opt, options...)
- return ws, resp, err
-}
-
-// WikiBlobsByProject searches the expression within wiki blobs for
-// the specified project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/search.html#scope-wiki_blobs
-func (s *SearchService) WikiBlobsByProject(pid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error) {
- var ws []*Wiki
- resp, err := s.searchByProject(pid, "wiki_blobs", query, &ws, opt, options...)
- return ws, resp, err
-}
-
-// Commits searches the expression within all commits
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-commits
-func (s *SearchService) Commits(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error) {
- var cs []*Commit
- resp, err := s.search("commits", query, &cs, opt, options...)
- return cs, resp, err
-}
-
-// CommitsByGroup searches the expression within commits for the specified
-// group
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-commits
-func (s *SearchService) CommitsByGroup(gid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error) {
- var cs []*Commit
- resp, err := s.searchByGroup(gid, "commits", query, &cs, opt, options...)
- return cs, resp, err
-}
-
-// CommitsByProject searches the expression within commits for the
-// specified project
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-commits
-func (s *SearchService) CommitsByProject(pid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Commit, *Response, error) {
- var cs []*Commit
- resp, err := s.searchByProject(pid, "commits", query, &cs, opt, options...)
- return cs, resp, err
-}
-
-// Blob represents a single blob.
-type Blob struct {
- Basename string `json:"basename"`
- Data string `json:"data"`
- Filename string `json:"filename"`
- ID int `json:"id"`
- Ref string `json:"ref"`
- Startline int `json:"startline"`
- ProjectID int `json:"project_id"`
-}
-
-// Blobs searches the expression within all blobs
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-blobs
-func (s *SearchService) Blobs(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Blob, *Response, error) {
- var bs []*Blob
- resp, err := s.search("blobs", query, &bs, opt, options...)
- return bs, resp, err
-}
-
-// BlobsByGroup searches the expression within blobs for the specified
-// group
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-blobs
-func (s *SearchService) BlobsByGroup(gid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Blob, *Response, error) {
- var bs []*Blob
- resp, err := s.searchByGroup(gid, "blobs", query, &bs, opt, options...)
- return bs, resp, err
-}
-
-// BlobsByProject searches the expression within blobs for the specified
-// project
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/search.html#scope-blobs
-func (s *SearchService) BlobsByProject(pid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*Blob, *Response, error) {
- var bs []*Blob
- resp, err := s.searchByProject(pid, "blobs", query, &bs, opt, options...)
- return bs, resp, err
-}
-
-// Users searches the expression within all users
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/search.html#scope-users
-func (s *SearchService) Users(query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*User, *Response, error) {
- var ret []*User
- resp, err := s.search("users", query, &ret, opt, options...)
- return ret, resp, err
-}
-
-// UsersByGroup searches the expression within users for the specified
-// group
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/search.html#scope-users-1
-func (s *SearchService) UsersByGroup(gid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*User, *Response, error) {
- var ret []*User
- resp, err := s.searchByGroup(gid, "users", query, &ret, opt, options...)
- return ret, resp, err
-}
-
-// UsersByProject searches the expression within users for the
-// specified project
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/search.html#scope-users-2
-func (s *SearchService) UsersByProject(pid interface{}, query string, opt *SearchOptions, options ...RequestOptionFunc) ([]*User, *Response, error) {
- var ret []*User
- resp, err := s.searchByProject(pid, "users", query, &ret, opt, options...)
- return ret, resp, err
-}
-
-func (s *SearchService) search(scope, query string, result interface{}, opt *SearchOptions, options ...RequestOptionFunc) (*Response, error) {
- opts := &searchOptions{SearchOptions: *opt, Scope: scope, Search: query}
-
- req, err := s.client.NewRequest(http.MethodGet, "search", opts, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, result)
-}
-
-func (s *SearchService) searchByGroup(gid interface{}, scope, query string, result interface{}, opt *SearchOptions, options ...RequestOptionFunc) (*Response, error) {
- group, err := parseID(gid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("groups/%s/-/search", pathEscape(group))
-
- opts := &searchOptions{SearchOptions: *opt, Scope: scope, Search: query}
-
- req, err := s.client.NewRequest(http.MethodGet, u, opts, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, result)
-}
-
-func (s *SearchService) searchByProject(pid interface{}, scope, query string, result interface{}, opt *SearchOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/-/search", pathEscape(project))
-
- opts := &searchOptions{SearchOptions: *opt, Scope: scope, Search: query}
-
- req, err := s.client.NewRequest(http.MethodGet, u, opts, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, result)
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/services.go b/vendor/github.com/xanzy/go-gitlab/services.go
deleted file mode 100644
index 973a30cb8d..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/services.go
+++ /dev/null
@@ -1,1427 +0,0 @@
-//
-// 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 (
- "encoding/json"
- "fmt"
- "net/http"
- "strconv"
- "time"
-)
-
-// ServicesService handles communication with the services related methods of
-// the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/services.html
-type ServicesService struct {
- client *Client
-}
-
-// Service represents a GitLab service.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/services.html
-type Service struct {
- ID int `json:"id"`
- Title string `json:"title"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
- Active bool `json:"active"`
- PushEvents bool `json:"push_events"`
- IssuesEvents bool `json:"issues_events"`
- ConfidentialIssuesEvents bool `json:"confidential_issues_events"`
- CommitEvents bool `json:"commit_events"`
- MergeRequestsEvents bool `json:"merge_requests_events"`
- CommentOnEventEnabled bool `json:"comment_on_event_enabled"`
- TagPushEvents bool `json:"tag_push_events"`
- NoteEvents bool `json:"note_events"`
- ConfidentialNoteEvents bool `json:"confidential_note_events"`
- PipelineEvents bool `json:"pipeline_events"`
- JobEvents bool `json:"job_events"`
- WikiPageEvents bool `json:"wiki_page_events"`
- DeploymentEvents bool `json:"deployment_events"`
-}
-
-// ListServices gets a list of all active services.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/services.html#list-all-active-services
-func (s *ServicesService) ListServices(pid interface{}, options ...RequestOptionFunc) ([]*Service, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var svcs []*Service
- resp, err := s.client.Do(req, &svcs)
- if err != nil {
- return nil, resp, err
- }
-
- return svcs, resp, err
-}
-
-// CustomIssueTrackerService represents Custom Issue Tracker service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#custom-issue-tracker
-type CustomIssueTrackerService struct {
- Service
- Properties *CustomIssueTrackerServiceProperties `json:"properties"`
-}
-
-// CustomIssueTrackerServiceProperties represents Custom Issue Tracker specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#custom-issue-tracker
-type CustomIssueTrackerServiceProperties struct {
- ProjectURL string `json:"project_url,omitempty"`
- IssuesURL string `json:"issues_url,omitempty"`
- NewIssueURL string `json:"new_issue_url,omitempty"`
-}
-
-// GetCustomIssueTrackerService gets Custom Issue Tracker service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#get-custom-issue-tracker-service-settings
-func (s *ServicesService) GetCustomIssueTrackerService(pid interface{}, options ...RequestOptionFunc) (*CustomIssueTrackerService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/custom-issue-tracker", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(CustomIssueTrackerService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetCustomIssueTrackerServiceOptions represents the available SetCustomIssueTrackerService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-custom-issue-tracker-service
-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"`
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- Title *string `url:"title,omitempty" json:"title,omitempty"`
- PushEvents *bool `url:"push_events,omitempty" json:"push_events,omitempty"`
-}
-
-// SetCustomIssueTrackerService sets Custom Issue Tracker service for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-custom-issue-tracker-service
-func (s *ServicesService) SetCustomIssueTrackerService(pid interface{}, opt *SetCustomIssueTrackerServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/custom-issue-tracker", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteCustomIssueTrackerService deletes Custom Issue Tracker service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-custom-issue-tracker-service
-func (s *ServicesService) DeleteCustomIssueTrackerService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/custom-issue-tracker", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DroneCIService represents Drone CI service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#drone-ci
-type DroneCIService struct {
- Service
- Properties *DroneCIServiceProperties `json:"properties"`
-}
-
-// DroneCIServiceProperties represents Drone CI specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#drone-ci
-type DroneCIServiceProperties struct {
- Token string `json:"token"`
- DroneURL string `json:"drone_url"`
- EnableSSLVerification bool `json:"enable_ssl_verification"`
-}
-
-// GetDroneCIService gets Drone CI service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#get-drone-ci-service-settings
-func (s *ServicesService) GetDroneCIService(pid interface{}, options ...RequestOptionFunc) (*DroneCIService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/drone-ci", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(DroneCIService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetDroneCIServiceOptions represents the available SetDroneCIService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-drone-ci-service
-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"`
-}
-
-// SetDroneCIService sets Drone CI service for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-drone-ci-service
-func (s *ServicesService) SetDroneCIService(pid interface{}, opt *SetDroneCIServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/drone-ci", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteDroneCIService deletes Drone CI service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-drone-ci-service
-func (s *ServicesService) DeleteDroneCIService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/drone-ci", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ExternalWikiService represents External Wiki service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#external-wiki
-type ExternalWikiService struct {
- Service
- Properties *ExternalWikiServiceProperties `json:"properties"`
-}
-
-// ExternalWikiServiceProperties represents External Wiki specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#external-wiki
-type ExternalWikiServiceProperties struct {
- ExternalWikiURL string `json:"external_wiki_url"`
-}
-
-// GetExternalWikiService gets External Wiki service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#get-external-wiki-service-settings
-func (s *ServicesService) GetExternalWikiService(pid interface{}, options ...RequestOptionFunc) (*ExternalWikiService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/external-wiki", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(ExternalWikiService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetExternalWikiServiceOptions represents the available SetExternalWikiService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-external-wiki-service
-type SetExternalWikiServiceOptions struct {
- ExternalWikiURL *string `url:"external_wiki_url,omitempty" json:"external_wiki_url,omitempty"`
-}
-
-// SetExternalWikiService sets External Wiki service for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-external-wiki-service
-func (s *ServicesService) SetExternalWikiService(pid interface{}, opt *SetExternalWikiServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/external-wiki", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteExternalWikiService deletes External Wiki service for project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-external-wiki-service
-func (s *ServicesService) DeleteExternalWikiService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/external-wiki", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// GithubService represents Github service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#github-premium
-type GithubService struct {
- Service
- Properties *GithubServiceProperties `json:"properties"`
-}
-
-// GithubServiceProperties represents Github specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#github-premium
-type GithubServiceProperties struct {
- RepositoryURL string `json:"repository_url"`
- StaticContext bool `json:"static_context"`
-}
-
-// GetGithubService gets Github service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#get-github-service-settings
-func (s *ServicesService) GetGithubService(pid interface{}, options ...RequestOptionFunc) (*GithubService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/github", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(GithubService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetGithubServiceOptions represents the available SetGithubService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-github-service
-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"`
-}
-
-// SetGithubService sets Github service for a project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-github-service
-func (s *ServicesService) SetGithubService(pid interface{}, opt *SetGithubServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/github", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteGithubService deletes Github service for a project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-github-service
-func (s *ServicesService) DeleteGithubService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/github", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// SetGitLabCIServiceOptions represents the available SetGitLabCIService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#edit-gitlab-ci-service
-type SetGitLabCIServiceOptions struct {
- Token *string `url:"token,omitempty" json:"token,omitempty"`
- ProjectURL *string `url:"project_url,omitempty" json:"project_url,omitempty"`
-}
-
-// SetGitLabCIService sets GitLab CI service for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#edit-gitlab-ci-service
-func (s *ServicesService) SetGitLabCIService(pid interface{}, opt *SetGitLabCIServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/gitlab-ci", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteGitLabCIService deletes GitLab CI service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-gitlab-ci-service
-func (s *ServicesService) DeleteGitLabCIService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/gitlab-ci", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// SetHipChatServiceOptions represents the available SetHipChatService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#edit-hipchat-service
-type SetHipChatServiceOptions struct {
- Token *string `url:"token,omitempty" json:"token,omitempty" `
- Room *string `url:"room,omitempty" json:"room,omitempty"`
-}
-
-// SetHipChatService sets HipChat service for a project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#edit-hipchat-service
-func (s *ServicesService) SetHipChatService(pid interface{}, opt *SetHipChatServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/hipchat", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteHipChatService deletes HipChat service for project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-hipchat-service
-func (s *ServicesService) DeleteHipChatService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/hipchat", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// JenkinsCIService represents Jenkins CI service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#jenkins-ci
-type JenkinsCIService struct {
- Service
- Properties *JenkinsCIServiceProperties `json:"properties"`
-}
-
-// JenkinsCIServiceProperties represents Jenkins CI specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#jenkins-ci
-type JenkinsCIServiceProperties struct {
- URL string `json:"jenkins_url"`
- ProjectName string `json:"project_name"`
- Username string `json:"username"`
-}
-
-// GetJenkinsCIService gets Jenkins CI service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#get-jenkins-ci-service-settings
-func (s *ServicesService) GetJenkinsCIService(pid interface{}, options ...RequestOptionFunc) (*JenkinsCIService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/jenkins", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(JenkinsCIService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetJenkinsCIServiceOptions represents the available SetJenkinsCIService()
-// options.
-//
-// 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"`
- 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
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#create-edit-jenkins-ci-service
-func (s *ServicesService) SetJenkinsCIService(pid interface{}, opt *SetJenkinsCIServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/jenkins", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteJenkinsCIService deletes Jenkins CI service for project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-jira-service
-func (s *ServicesService) DeleteJenkinsCIService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/jenkins", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// JiraService represents Jira service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#jira
-type JiraService struct {
- Service
- Properties *JiraServiceProperties `json:"properties"`
-}
-
-// JiraServiceProperties represents Jira specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#jira
-type JiraServiceProperties struct {
- URL string `json:"url"`
- APIURL string `json:"api_url"`
- ProjectKey string `json:"project_key" `
- Username string `json:"username" `
- Password string `json:"password" `
- JiraIssueTransitionID string `json:"jira_issue_transition_id"`
-}
-
-// UnmarshalJSON decodes the Jira Service Properties.
-//
-// This allows support of JiraIssueTransitionID for both type string (>11.9) and float64 (<11.9)
-func (p *JiraServiceProperties) UnmarshalJSON(b []byte) error {
- type Alias JiraServiceProperties
- raw := struct {
- *Alias
- JiraIssueTransitionID interface{} `json:"jira_issue_transition_id"`
- }{
- Alias: (*Alias)(p),
- }
-
- if err := json.Unmarshal(b, &raw); err != nil {
- return err
- }
-
- switch id := raw.JiraIssueTransitionID.(type) {
- case nil:
- // No action needed.
- case string:
- p.JiraIssueTransitionID = id
- case float64:
- p.JiraIssueTransitionID = strconv.Itoa(int(id))
- default:
- return fmt.Errorf("failed to unmarshal JiraTransitionID of type: %T", id)
- }
-
- return nil
-}
-
-// GetJiraService gets Jira service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#get-jira-service-settings
-func (s *ServicesService) GetJiraService(pid interface{}, options ...RequestOptionFunc) (*JiraService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/jira", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(JiraService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetJiraServiceOptions represents the available SetJiraService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#edit-jira-service
-type SetJiraServiceOptions struct {
- URL *string `url:"url,omitempty" json:"url,omitempty"`
- APIURL *string `url:"api_url,omitempty" json:"api_url,omitempty"`
- ProjectKey *string `url:"project_key,omitempty" json:"project_key,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"`
- 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"`
-}
-
-// SetJiraService sets Jira service for a project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#edit-jira-service
-func (s *ServicesService) SetJiraService(pid interface{}, opt *SetJiraServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/jira", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteJiraService deletes Jira service for project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-jira-service
-func (s *ServicesService) DeleteJiraService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/jira", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// MattermostService represents Mattermost service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#mattermost-notifications
-type MattermostService struct {
- Service
- Properties *MattermostServiceProperties `json:"properties"`
-}
-
-// MattermostServiceProperties represents Mattermost specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#mattermost-notifications
-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"`
- WikiPageChannel string `json:"wiki_page_channel"`
-}
-
-// GetMattermostService gets Mattermost service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#get-slack-service-settings
-func (s *ServicesService) GetMattermostService(pid interface{}, options ...RequestOptionFunc) (*MattermostService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/mattermost", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(MattermostService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetMattermostServiceOptions represents the available SetMattermostService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-mattermost-notifications-service
-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"`
- 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 `json:"confidential_note_channel,omitempty"`
- ConfidentialNoteEvents *bool `url:"confidential_note_events,omitempty" json:"confidential_note_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"`
- TagPushChannel *string `url:"tag_push_channel,omitempty" json:"tag_push_channel,omitempty"`
- TagPushEvents *bool `url:"tag_push_events,omitempty" json:"tag_push_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"`
- WikiPageChannel *string `url:"wiki_page_channel,omitempty" json:"wiki_page_channel,omitempty"`
- WikiPageEvents *bool `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
-}
-
-// SetMattermostService sets Mattermost service for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#createedit-mattermost-notifications-service
-func (s *ServicesService) SetMattermostService(pid interface{}, opt *SetMattermostServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/mattermost", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteMattermostService deletes Mattermost service for project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-mattermost-notifications-service
-func (s *ServicesService) DeleteMattermostService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/mattermost", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// MicrosoftTeamsService represents Microsoft Teams service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#microsoft-teams
-type MicrosoftTeamsService struct {
- Service
- Properties *MicrosoftTeamsServiceProperties `json:"properties"`
-}
-
-// MicrosoftTeamsServiceProperties represents Microsoft Teams specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#microsoft-teams
-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"`
-}
-
-// GetMicrosoftTeamsService gets MicrosoftTeams service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#get-microsoft-teams-service-settings
-func (s *ServicesService) GetMicrosoftTeamsService(pid interface{}, options ...RequestOptionFunc) (*MicrosoftTeamsService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/microsoft-teams", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(MicrosoftTeamsService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetMicrosoftTeamsServiceOptions represents the available SetMicrosoftTeamsService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#create-edit-microsoft-teams-service
-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"`
-}
-
-// SetMicrosoftTeamsService sets Microsoft Teams service for a project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#create-edit-microsoft-teams-service
-func (s *ServicesService) SetMicrosoftTeamsService(pid interface{}, opt *SetMicrosoftTeamsServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/microsoft-teams", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
- return s.client.Do(req, nil)
-}
-
-// DeleteMicrosoftTeamsService deletes Microsoft Teams service for project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-microsoft-teams-service
-func (s *ServicesService) DeleteMicrosoftTeamsService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/microsoft-teams", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// PipelinesEmailService represents Pipelines Email service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#pipeline-emails
-type PipelinesEmailService struct {
- Service
- Properties *PipelinesEmailProperties `json:"properties"`
-}
-
-// PipelinesEmailProperties represents PipelinesEmail specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#pipeline-emails
-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"`
-}
-
-// GetPipelinesEmailService gets Pipelines Email service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#get-pipeline-emails-service-settings
-func (s *ServicesService) GetPipelinesEmailService(pid interface{}, options ...RequestOptionFunc) (*PipelinesEmailService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/pipelines-email", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(PipelinesEmailService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetPipelinesEmailServiceOptions represents the available
-// SetPipelinesEmailService() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#pipeline-emails
-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"`
-}
-
-// SetPipelinesEmailService sets Pipelines Email service for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#pipeline-emails
-func (s *ServicesService) SetPipelinesEmailService(pid interface{}, opt *SetPipelinesEmailServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/pipelines-email", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeletePipelinesEmailService deletes Pipelines Email service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#delete-pipeline-emails-service
-func (s *ServicesService) DeletePipelinesEmailService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/pipelines-email", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// PrometheusService represents Prometheus service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#prometheus
-type PrometheusService struct {
- Service
- Properties *PrometheusServiceProperties `json:"properties"`
-}
-
-// PrometheusServiceProperties represents Prometheus specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#prometheus
-type PrometheusServiceProperties struct {
- APIURL string `json:"api_url"`
- GoogleIAPAudienceClientID string `json:"google_iap_audience_client_id"`
- GoogleIAPServiceAccountJSON string `json:"google_iap_service_account_json"`
-}
-
-// GetPrometheusService gets Prometheus service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#get-prometheus-service-settings
-func (s *ServicesService) GetPrometheusService(pid interface{}, options ...RequestOptionFunc) (*PrometheusService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/prometheus", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(PrometheusService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetPrometheusServiceOptions represents the available SetPrometheusService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#createedit-prometheus-service
-type SetPrometheusServiceOptions struct {
- APIURL *string `url:"api_url,omitempty" json:"api_url,omitempty"`
- GoogleIAPAudienceClientID *string `url:"google_iap_audience_client_id,omitempty" json:"google_iap_audience_client_id,omitempty"`
- GoogleIAPServiceAccountJSON *string `url:"google_iap_service_account_json,omitempty" json:"google_iap_service_account_json,omitempty"`
-}
-
-// SetPrometheusService sets Prometheus service for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#createedit-prometheus-service
-func (s *ServicesService) SetPrometheusService(pid interface{}, opt *SetPrometheusServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/prometheus", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeletePrometheusService deletes Prometheus service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/services.html#delete-prometheus-service
-func (s *ServicesService) DeletePrometheusService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/prometheus", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// SlackService represents Slack service settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#slack
-type SlackService struct {
- Service
- Properties *SlackServiceProperties `json:"properties"`
-}
-
-// SlackServiceProperties represents Slack specific properties.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#slack
-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"`
- 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"`
- WikiPageChannel string `json:"wiki_page_channel"`
-}
-
-// GetSlackService gets Slack service settings for a project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#get-slack-service-settings
-func (s *ServicesService) GetSlackService(pid interface{}, options ...RequestOptionFunc) (*SlackService, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/services/slack", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- svc := new(SlackService)
- resp, err := s.client.Do(req, svc)
- if err != nil {
- return nil, resp, err
- }
-
- return svc, resp, err
-}
-
-// SetSlackServiceOptions represents the available SetSlackService()
-// options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#edit-slack-service
-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"`
- ConfidentialIssueChannel *string `url:"confidential_issue_channel,omitempty" json:"confidential_issue_channel,omitempty"`
- ConfidentialIssuesEvents *bool `url:"confidential_issues_events,omitempty" json:"confidential_issues_events,omitempty"`
- // TODO: Currently, GitLab ignores this option (not implemented yet?), so
- // there is no way to set it. Uncomment when this is fixed.
- // See: https://gitlab.com/gitlab-org/gitlab-ce/issues/49730
- //ConfidentialNoteChannel *string `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"`
- TagPushChannel *string `url:"tag_push_channel,omitempty" json:"tag_push_channel,omitempty"`
- TagPushEvents *bool `url:"tag_push_events,omitempty" json:"tag_push_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"`
- WikiPageChannel *string `url:"wiki_page_channel,omitempty" json:"wiki_page_channel,omitempty"`
- WikiPageEvents *bool `url:"wiki_page_events,omitempty" json:"wiki_page_events,omitempty"`
-}
-
-// SetSlackService sets Slack service for a project
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#edit-slack-service
-func (s *ServicesService) SetSlackService(pid interface{}, opt *SetSlackServiceOptions, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/slack", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteSlackService deletes Slack service for project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/services.html#delete-slack-service
-func (s *ServicesService) DeleteSlackService(pid interface{}, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/services/slack", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- 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/settings.go b/vendor/github.com/xanzy/go-gitlab/settings.go
deleted file mode 100644
index 10d76e8992..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/settings.go
+++ /dev/null
@@ -1,414 +0,0 @@
-//
-// 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 (
- "net/http"
- "time"
-)
-
-// SettingsService handles communication with the application SettingsService
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/settings.html
-type SettingsService struct {
- client *Client
-}
-
-// Settings represents the GitLab application settings.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/settings.html
-type Settings struct {
- ID int `json:"id"`
- CreatedAt *time.Time `json:"created_at"`
- UpdatedAt *time.Time `json:"updated_at"`
- AdminMode bool `json:"admin_mode"`
- AdminNotificationEmail string `json:"admin_notification_email"`
- 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"`
- AllowGroupOwnersToManageLDAP bool `json:"allow_group_owners_to_manage_ldap"`
- AllowLocalRequestsFromHooksAndServices bool `json:"allow_local_requests_from_hooks_and_services"`
- AllowLocalRequestsFromSystemHooks bool `json:"allow_local_requests_from_system_hooks"`
- AllowLocalRequestsFromWebHooksAndServices bool `json:"allow_local_requests_from_web_hooks_and_services"`
- ArchiveBuildsInHumanReadable string `json:"archive_builds_in_human_readable"`
- AssetProxyEnabled bool `json:"asset_proxy_enabled"`
- AssetProxySecretKey string `json:"asset_proxy_secret_key"`
- AssetProxyURL string `json:"asset_proxy_url"`
- AssetProxyWhitelist []string `json:"asset_proxy_whitelist"`
- AuthorizedKeysEnabled bool `json:"authorized_keys_enabled_enabled"`
- AutoDevOpsDomain string `json:"auto_devops_domain"`
- AutoDevOpsEnabled bool `json:"auto_devops_enabled"`
- CheckNamespacePlan bool `json:"check_namespace_plan"`
- CommitEmailHostname string `json:"commit_email_hostname"`
- ContainerRegistryTokenExpireDelay int `json:"container_registry_token_expire_delay"`
- DefaultArtifactsExpireIn string `json:"default_artifacts_expire_in"`
- DefaultBranchProtection int `json:"default_branch_protection"`
- DefaultGroupVisibility VisibilityValue `json:"default_group_visibility"`
- DefaultProjectCreation int `json:"default_project_creation"`
- DefaultProjectsLimit int `json:"default_projects_limit"`
- DefaultProjectVisibility VisibilityValue `json:"default_project_visibility"`
- DefaultSnippetVisibility VisibilityValue `json:"default_snippet_visibility"`
- DiffMaxPatchBytes int `json:"diff_max_patch_bytes"`
- DisabledOauthSignInSources []string `json:"disabled_oauth_sign_in_sources"`
- DNSRebindingProtectionEnabled bool `json:"dns_rebinding_protection_enabled"`
- DomainBlacklist []string `json:"domain_blacklist"`
- DomainBlacklistEnabled bool `json:"domain_blacklist_enabled"`
- DomainWhitelist []string `json:"domain_whitelist"`
- DSAKeyRestriction int `json:"dsa_key_restriction"`
- ECDSAKeyRestriction int `json:"ecdsa_key_restriction"`
- Ed25519KeyRestriction int `json:"ed25519_key_restriction"`
- ElasticsearchAWSAccessKey string `json:"elasticsearch_aws_access_key"`
- ElasticsearchAWS bool `json:"elasticsearch_aws"`
- ElasticsearchAWSRegion string `json:"elasticsearch_aws_region"`
- ElasticsearchAWSSecretAccessKey string `json:"elasticsearch_aws_secret_access_key"`
- ElasticsearchIndexing bool `json:"elasticsearch_indexing"`
- ElasticsearchLimitIndexing bool `json:"elasticsearch_limit_indexing"`
- ElasticsearchNamespaceIDs []int `json:"elasticsearch_namespace_ids"`
- ElasticsearchProjectIDs []int `json:"elasticsearch_project_ids"`
- ElasticsearchSearch bool `json:"elasticsearch_search"`
- ElasticsearchURL []string `json:"elasticsearch_url"`
- EmailAdditionalText string `json:"email_additional_text"`
- EmailAuthorInBody bool `json:"email_author_in_body"`
- EnabledGitAccessProtocol string `json:"enabled_git_access_protocol"`
- EnforceTerms bool `json:"enforce_terms"`
- ExternalAuthClientCert string `json:"external_auth_client_cert"`
- ExternalAuthClientKeyPass string `json:"external_auth_client_key_pass"`
- ExternalAuthClientKey string `json:"external_auth_client_key"`
- 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"`
- FileTemplateProjectID int `json:"file_template_project_id"`
- FirstDayOfWeek int `json:"first_day_of_week"`
- GeoNodeAllowedIPs string `json:"geo_node_allowed_ips"`
- GeoStatusTimeout int `json:"geo_status_timeout"`
- GitalyTimeoutDefault int `json:"gitaly_timeout_default"`
- GitalyTimeoutFast int `json:"gitaly_timeout_fast"`
- GitalyTimeoutMedium int `json:"gitaly_timeout_medium"`
- GrafanaEnabled bool `json:"grafana_enabled"`
- GrafanaURL string `json:"grafana_url"`
- GravatarEnabled bool `json:"gravatar_enabled"`
- HashedStorageEnabled bool `json:"hashed_storage_enabled"`
- 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"`
- HousekeepingBitmapsEnabled bool `json:"housekeeping_bitmaps_enabled"`
- HousekeepingEnabled bool `json:"housekeeping_enabled"`
- HousekeepingFullRepackPeriod int `json:"housekeeping_full_repack_period"`
- HousekeepingGcPeriod int `json:"housekeeping_gc_period"`
- HousekeepingIncrementalRepackPeriod int `json:"housekeeping_incremental_repack_period"`
- HTMLEmailsEnabled bool `json:"html_emails_enabled"`
- ImportSources []string `json:"import_sources"`
- InstanceStatisticsVisibilityPrivate bool `json:"instance_statistics_visibility_private"`
- LocalMarkdownVersion int `json:"local_markdown_version"`
- MaxArtifactsSize int `json:"max_artifacts_size"`
- MaxAttachmentSize int `json:"max_attachment_size"`
- MaxPagesSize int `json:"max_pages_size"`
- MetricsEnabled bool `json:"metrics_enabled"`
- MetricsHost string `json:"metrics_host"`
- MetricsMethodCallThreshold int `json:"metrics_method_call_threshold"`
- MetricsPacketSize int `json:"metrics_packet_size"`
- MetricsPoolSize int `json:"metrics_pool_size"`
- MetricsPort int `json:"metrics_port"`
- MetricsSampleInterval int `json:"metrics_sample_interval"`
- MetricsTimeout int `json:"metrics_timeout"`
- MirrorAvailable bool `json:"mirror_available"`
- MirrorCapacityThreshold int `json:"mirror_capacity_threshold"`
- MirrorMaxCapacity int `json:"mirror_max_capacity"`
- MirrorMaxDelay int `json:"mirror_max_delay"`
- OutboundLocalRequestsWhitelist []string `json:"outbound_local_requests_whitelist"`
- PagesDomainVerificationEnabled bool `json:"pages_domain_verification_enabled"`
- PasswordAuthenticationEnabledForGit bool `json:"password_authentication_enabled_for_git"`
- PasswordAuthenticationEnabledForWeb bool `json:"password_authentication_enabled_for_web"`
- PerformanceBarAllowedGroupID string `json:"performance_bar_allowed_group_id"`
- PerformanceBarAllowedGroupPath string `json:"performance_bar_allowed_group_path"`
- PerformanceBarEnabled bool `json:"performance_bar_enabled"`
- PlantumlEnabled bool `json:"plantuml_enabled"`
- PlantumlURL string `json:"plantuml_url"`
- PollingIntervalMultiplier float64 `json:"polling_interval_multiplier,string"`
- ProjectExportEnabled bool `json:"project_export_enabled"`
- PrometheusMetricsEnabled bool `json:"prometheus_metrics_enabled"`
- ProtectedCIVariables bool `json:"protected_ci_variables"`
- PseudonymizerEnabled bool `json:"psedonymizer_enabled"`
- PushEventHooksLimit int `json:"push_event_hooks_limit"`
- PushEventActivitiesLimit int `json:"push_event_activities_limit"`
- RecaptchaEnabled bool `json:"recaptcha_enabled"`
- RecaptchaPrivateKey string `json:"recaptcha_private_key"`
- RecaptchaSiteKey string `json:"recaptcha_site_key"`
- ReceiveMaxInputSize int `json:"receive_max_input_size"`
- RepositoryChecksEnabled bool `json:"repository_checks_enabled"`
- RepositorySizeLimit int `json:"repository_size_limit"`
- RepositoryStorages []string `json:"repository_storages"`
- RequireTwoFactorAuthentication bool `json:"require_two_factor_authentication"`
- RestrictedVisibilityLevels []VisibilityValue `json:"restricted_visibility_levels"`
- RsaKeyRestriction int `json:"rsa_key_restriction"`
- SendUserConfirmationEmail bool `json:"send_user_confirmation_email"`
- SessionExpireDelay int `json:"session_expire_delay"`
- SharedRunnersEnabled bool `json:"shared_runners_enabled"`
- SharedRunnersMinutes int `json:"shared_runners_minutes"`
- SharedRunnersText string `json:"shared_runners_text"`
- SignInText string `json:"sign_in_text"`
- SignupEnabled bool `json:"signup_enabled"`
- SlackAppEnabled bool `json:"slack_app_enabled"`
- SlackAppID string `json:"slack_app_id"`
- SlackAppSecret string `json:"slack_app_secret"`
- SlackAppVerificationToken string `json:"slack_app_verification_token"`
- SnowplowCollectorHostname string `json:"snowplow_collector_hostname"`
- SnowplowCookieDomain string `json:"snowplow_cookie_domain"`
- SnowplowEnabled bool `json:"snowplow_enabled"`
- SnowplowSiteID string `json:"snowplow_site_id"`
- TerminalMaxSessionTime int `json:"terminal_max_session_time"`
- Terms string `json:"terms"`
- ThrottleAuthenticatedAPIEnabled bool `json:"throttle_authenticated_api_enabled"`
- ThrottleAuthenticatedAPIPeriodInSeconds int `json:"throttle_authenticated_api_period_in_seconds"`
- ThrottleAuthenticatedAPIRequestsPerPeriod int `json:"throttle_authenticated_api_requests_per_period"`
- ThrottleAuthenticatedWebEnabled bool `json:"throttle_authenticated_web_enabled"`
- ThrottleAuthenticatedWebPeriodInSeconds int `json:"throttle_authenticated_web_period_in_seconds"`
- ThrottleAuthenticatedWebRequestsPerPeriod int `json:"throttle_authenticated_web_requests_per_period"`
- ThrottleUnauthenticatedEnabled bool `json:"throttle_unauthenticated_enabled"`
- ThrottleUnauthenticatedPeriodInSeconds int `json:"throttle_unauthenticated_period_in_seconds"`
- ThrottleUnauthenticatedRequestsPerPeriod int `json:"throttle_unauthenticated_requests_per_period"`
- TimeTrackingLimitToHours bool `json:"time_tracking_limit_to_hours"`
- TwoFactorGracePeriod int `json:"two_factor_grace_period"`
- UniqueIPsLimitEnabled bool `json:"unique_ips_limit_enabled"`
- UniqueIPsLimitPerUser int `json:"unique_ips_limit_per_user"`
- UniqueIPsLimitTimeWindow int `json:"unique_ips_limit_time_window"`
- UsagePingEnabled bool `json:"usage_ping_enabled"`
- UserDefaultExternal bool `json:"user_default_external"`
- UserDefaultInternalRegex string `json:"user_default_internal_regex"`
- UserOauthApplications bool `json:"user_oauth_applications"`
- UserShowAddSSHKeyMessage bool `json:"user_show_add_ssh_key_message"`
- VersionCheckEnabled bool `json:"version_check_enabled"`
- WebIDEClientsidePreviewEnabled bool `json:"web_ide_clientside_preview_enabled"`
-}
-
-func (s Settings) String() string {
- return Stringify(s)
-}
-
-// GetSettings gets the current application settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/settings.html#get-current-application.settings
-func (s *SettingsService) GetSettings(options ...RequestOptionFunc) (*Settings, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "application/settings", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- as := new(Settings)
- resp, err := s.client.Do(req, as)
- if err != nil {
- return nil, resp, err
- }
-
- return as, resp, err
-}
-
-// UpdateSettingsOptions represents the available UpdateSettings() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/settings.html#change-application.settings
-type UpdateSettingsOptions struct {
- AdminMode *bool `url:"admin_mode,omitempty" json:"admin_mode,omitempty"`
- AdminNotificationEmail *string `url:"admin_notification_email,omitempty" json:"admin_notification_email,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"`
- AllowGroupOwnersToManageLDAP *bool `url:"allow_group_owners_to_manage_ldap,omitempty" json:"allow_group_owners_to_manage_ldap,omitempty"`
- AllowLocalRequestsFromHooksAndServices *bool `url:"allow_local_requests_from_hooks_and_services,omitempty" json:"allow_local_requests_from_hooks_and_services,omitempty"`
- AllowLocalRequestsFromSystemHooks *bool `url:"allow_local_requests_from_system_hooks,omitempty" json:"allow_local_requests_from_system_hooks,omitempty"`
- AllowLocalRequestsFromWebHooksAndServices *bool `url:"allow_local_requests_from_web_hooks_and_services,omitempty" json:"allow_local_requests_from_web_hooks_and_services,omitempty"`
- ArchiveBuildsInHumanReadable *string `url:"archive_builds_in_human_readable,omitempty" json:"archive_builds_in_human_readable,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"`
- AssetProxyWhitelist []string `url:"asset_proxy_whitelist,omitempty" json:"asset_proxy_whitelist,omitempty"`
- AuthorizedKeysEnabled *bool `url:"authorized_keys_enabled,omitempty" json:"authorized_keys_enabled,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"`
- CheckNamespacePlan *bool `url:"check_namespace_plan,omitempty" json:"check_namespace_plan,omitempty"`
- CommitEmailHostname *string `url:"commit_email_hostname,omitempty" json:"commit_email_hostname,omitempty"`
- ContainerRegistryTokenExpireDelay *int `url:"container_registry_token_expire_delay,omitempty" json:"container_registry_token_expire_delay,omitempty"`
- DefaultArtifactsExpireIn *string `url:"default_artifacts_expire_in,omitempty" json:"default_artifacts_expire_in,omitempty"`
- DefaultBranchProtection *int `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`
- DefaultGroupVisibility *VisibilityValue `url:"default_group_visibility,omitempty" json:"default_group_visibility,omitempty"`
- DefaultProjectCreation *int `url:"default_project_creation,omitempty" json:"default_project_creation,omitempty"`
- DefaultProjectsLimit *int `url:"default_projects_limit,omitempty" json:"default_projects_limit,omitempty"`
- DefaultProjectVisibility *VisibilityValue `url:"default_project_visibility,omitempty" json:"default_project_visibility,omitempty"`
- DefaultSnippetVisibility *VisibilityValue `url:"default_snippet_visibility,omitempty" json:"default_snippet_visibility,omitempty"`
- DiffMaxPatchBytes *int `url:"diff_max_patch_bytes,omitempty" json:"diff_max_patch_bytes,omitempty"`
- DisabledOauthSignInSources []string `url:"disabled_oauth_sign_in_sources,omitempty" json:"disabled_oauth_sign_in_sources,omitempty"`
- DNSRebindingProtectionEnabled *bool `url:"dns_rebinding_protection_enabled,omitempty" json:"dns_rebinding_protection_enabled,omitempty"`
- DomainBlacklist []string `url:"domain_blacklist,omitempty" json:"domain_blacklist,omitempty"`
- DomainBlacklistEnabled *bool `url:"domain_blacklist_enabled,omitempty" json:"domain_blacklist_enabled,omitempty"`
- DomainWhitelist []string `url:"domain_whitelist,omitempty" json:"domain_whitelist,omitempty"`
- DSAKeyRestriction *int `url:"dsa_key_restriction,omitempty" json:"dsa_key_restriction,omitempty"`
- ECDSAKeyRestriction *int `url:"ecdsa_key_restriction,omitempty" json:"ecdsa_key_restriction,omitempty"`
- Ed25519KeyRestriction *int `url:"ed25519_key_restriction,omitempty" json:"ed25519_key_restriction,omitempty"`
- ElasticsearchAWSAccessKey *string `url:"elasticsearch_aws_access_key,omitempty" json:"elasticsearch_aws_access_key,omitempty"`
- ElasticsearchAWS *bool `url:"elasticsearch_aws,omitempty" json:"elasticsearch_aws,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"`
- ElasticsearchIndexing *bool `url:"elasticsearch_indexing,omitempty" json:"elasticsearch_indexing,omitempty"`
- ElasticsearchLimitIndexing *bool `url:"elasticsearch_limit_indexing,omitempty" json:"elasticsearch_limit_indexing,omitempty"`
- ElasticsearchNamespaceIDs []int `url:"elasticsearch_namespace_ids,omitempty" json:"elasticsearch_namespace_ids,omitempty"`
- ElasticsearchProjectIDs []int `url:"elasticsearch_project_ids,omitempty" json:"elasticsearch_project_ids,omitempty"`
- ElasticsearchSearch *bool `url:"elasticsearch_search,omitempty" json:"elasticsearch_search,omitempty"`
- ElasticsearchURL *string `url:"elasticsearch_url,omitempty" json:"elasticsearch_url,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"`
- EnabledGitAccessProtocol *string `url:"enabled_git_access_protocol,omitempty" json:"enabled_git_access_protocol,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"`
- ExternalAuthClientKeyPass *string `url:"external_auth_client_key_pass,omitempty" json:"external_auth_client_key_pass,omitempty"`
- ExternalAuthClientKey *string `url:"external_auth_client_key,omitempty" json:"external_auth_client_key,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"`
- FileTemplateProjectID *int `url:"file_template_project_id,omitempty" json:"file_template_project_id,omitempty"`
- FirstDayOfWeek *int `url:"first_day_of_week,omitempty" json:"first_day_of_week,omitempty"`
- GeoNodeAllowedIPs *string `url:"geo_node_allowed_ips,omitempty" json:"geo_node_allowed_ips,omitempty"`
- GeoStatusTimeout *int `url:"geo_status_timeout,omitempty" json:"geo_status_timeout,omitempty"`
- GitalyTimeoutDefault *int `url:"gitaly_timeout_default,omitempty" json:"gitaly_timeout_default,omitempty"`
- GitalyTimeoutFast *int `url:"gitaly_timeout_fast,omitempty" json:"gitaly_timeout_fast,omitempty"`
- GitalyTimeoutMedium *int `url:"gitaly_timeout_medium,omitempty" json:"gitaly_timeout_medium,omitempty"`
- 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"`
- HashedStorageEnabled *bool `url:"hashed_storage_enabled,omitempty" json:"hashed_storage_enabled,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"`
- HousekeepingBitmapsEnabled *bool `url:"housekeeping_bitmaps_enabled,omitempty" json:"housekeeping_bitmaps_enabled,omitempty"`
- HousekeepingEnabled *bool `url:"housekeeping_enabled,omitempty" json:"housekeeping_enabled,omitempty"`
- HousekeepingFullRepackPeriod *int `url:"housekeeping_full_repack_period,omitempty" json:"housekeeping_full_repack_period,omitempty"`
- HousekeepingGcPeriod *int `url:"housekeeping_gc_period,omitempty" json:"housekeeping_gc_period,omitempty"`
- HousekeepingIncrementalRepackPeriod *int `url:"housekeeping_incremental_repack_period,omitempty" json:"housekeeping_incremental_repack_period,omitempty"`
- HTMLEmailsEnabled *bool `url:"html_emails_enabled,omitempty" json:"html_emails_enabled,omitempty"`
- ImportSources []string `url:"import_sources,omitempty" json:"import_sources,omitempty"`
- InstanceStatisticsVisibilityPrivate *bool `url:"instance_statistics_visibility_private,omitempty" json:"instance_statistics_visibility_private,omitempty"`
- LocalMarkdownVersion *int `url:"local_markdown_version,omitempty" json:"local_markdown_version,omitempty"`
- MaxArtifactsSize *int `url:"max_artifacts_size,omitempty" json:"max_artifacts_size,omitempty"`
- MaxAttachmentSize *int `url:"max_attachment_size,omitempty" json:"max_attachment_size,omitempty"`
- MaxPagesSize *int `url:"max_pages_size,omitempty" json:"max_pages_size,omitempty"`
- MetricsEnabled *bool `url:"metrics_enabled,omitempty" json:"metrics_enabled,omitempty"`
- MetricsHost *string `url:"metrics_host,omitempty" json:"metrics_host,omitempty"`
- MetricsMethodCallThreshold *int `url:"metrics_method_call_threshold,omitempty" json:"metrics_method_call_threshold,omitempty"`
- MetricsPacketSize *int `url:"metrics_packet_size,omitempty" json:"metrics_packet_size,omitempty"`
- MetricsPoolSize *int `url:"metrics_pool_size,omitempty" json:"metrics_pool_size,omitempty"`
- MetricsPort *int `url:"metrics_port,omitempty" json:"metrics_port,omitempty"`
- MetricsSampleInterval *int `url:"metrics_sample_interval,omitempty" json:"metrics_sample_interval,omitempty"`
- MetricsTimeout *int `url:"metrics_timeout,omitempty" json:"metrics_timeout,omitempty"`
- MirrorAvailable *bool `url:"mirror_available,omitempty" json:"mirror_available,omitempty"`
- MirrorCapacityThreshold *int `url:"mirror_capacity_threshold,omitempty" json:"mirror_capacity_threshold,omitempty"`
- MirrorMaxCapacity *int `url:"mirror_max_capacity,omitempty" json:"mirror_max_capacity,omitempty"`
- MirrorMaxDelay *int `url:"mirror_max_delay,omitempty" json:"mirror_max_delay,omitempty"`
- OutboundLocalRequestsWhitelist []string `url:"outbound_local_requests_whitelist,omitempty" json:"outbound_local_requests_whitelist,omitempty"`
- 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"`
- PerformanceBarAllowedGroupID *string `url:"performance_bar_allowed_group_id,omitempty" json:"performance_bar_allowed_group_id,omitempty"`
- PerformanceBarAllowedGroupPath *string `url:"performance_bar_allowed_group_path,omitempty" json:"performance_bar_allowed_group_path,omitempty"`
- PerformanceBarEnabled *bool `url:"performance_bar_enabled,omitempty" json:"performance_bar_enabled,omitempty"`
- PlantumlEnabled *bool `url:"plantuml_enabled,omitempty" json:"plantuml_enabled,omitempty"`
- PlantumlURL *string `url:"plantuml_url,omitempty" json:"plantuml_url,omitempty"`
- PollingIntervalMultiplier *float64 `url:"polling_interval_multiplier,omitempty" json:"polling_interval_multiplier,omitempty"`
- ProjectExportEnabled *bool `url:"project_export_enabled,omitempty" json:"project_export_enabled,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:"psedonymizer_enabled,omitempty" json:"psedonymizer_enabled,omitempty"`
- PushEventHooksLimit *int `url:"push_event_hooks_limit,omitempty" json:"push_event_hooks_limit,omitempty"`
- PushEventActivitiesLimit *int `url:"push_event_activities_limit,omitempty" json:"push_event_activities_limit,omitempty"`
- RecaptchaEnabled *bool `url:"recaptcha_enabled,omitempty" json:"recaptcha_enabled,omitempty"`
- RecaptchaPrivateKey *string `url:"recaptcha_private_key,omitempty" json:"recaptcha_private_key,omitempty"`
- RecaptchaSiteKey *string `url:"recaptcha_site_key,omitempty" json:"recaptcha_site_key,omitempty"`
- ReceiveMaxInputSize *int `url:"receive_max_input_size,omitempty" json:"receive_max_input_size,omitempty"`
- RepositoryChecksEnabled *bool `url:"repository_checks_enabled,omitempty" json:"repository_checks_enabled,omitempty"`
- RepositorySizeLimit *int `url:"repository_size_limit,omitempty" json:"repository_size_limit,omitempty"`
- RepositoryStorages []string `url:"repository_storages,omitempty" json:"repository_storages,omitempty"`
- 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"`
- RsaKeyRestriction *int `url:"rsa_key_restriction,omitempty" json:"rsa_key_restriction,omitempty"`
- SendUserConfirmationEmail *bool `url:"send_user_confirmation_email,omitempty" json:"send_user_confirmation_email,omitempty"`
- SessionExpireDelay *int `url:"session_expire_delay,omitempty" json:"session_expire_delay,omitempty"`
- SharedRunnersEnabled *bool `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
- SharedRunnersMinutes *int `url:"shared_runners_minutes,omitempty" json:"shared_runners_minutes,omitempty"`
- SharedRunnersText *string `url:"shared_runners_text,omitempty" json:"shared_runners_text,omitempty"`
- SignInText *string `url:"sign_in_text,omitempty" json:"sign_in_text,omitempty"`
- SignupEnabled *bool `url:"signup_enabled,omitempty" json:"signup_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"`
- SlackAppVerificationToken *string `url:"slack_app_verification_token,omitempty" json:"slack_app_verification_token,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"`
- SnowplowEnabled *bool `url:"snowplow_enabled,omitempty" json:"snowplow_enabled,omitempty"`
- SnowplowSiteID *string `url:"snowplow_site_id,omitempty" json:"snowplow_site_id,omitempty"`
- TerminalMaxSessionTime *int `url:"terminal_max_session_time,omitempty" json:"terminal_max_session_time,omitempty"`
- Terms *string `url:"terms,omitempty" json:"terms,omitempty"`
- ThrottleAuthenticatedAPIEnabled *bool `url:"throttle_authenticated_api_enabled,omitempty" json:"throttle_authenticated_api_enabled,omitempty"`
- ThrottleAuthenticatedAPIPeriodInSeconds *int `url:"throttle_authenticated_api_period_in_seconds,omitempty" json:"throttle_authenticated_api_period_in_seconds,omitempty"`
- ThrottleAuthenticatedAPIRequestsPerPeriod *int `url:"throttle_authenticated_api_requests_per_period,omitempty" json:"throttle_authenticated_api_requests_per_period,omitempty"`
- ThrottleAuthenticatedWebEnabled *bool `url:"throttle_authenticated_web_enabled,omitempty" json:"throttle_authenticated_web_enabled,omitempty"`
- ThrottleAuthenticatedWebPeriodInSeconds *int `url:"throttle_authenticated_web_period_in_seconds,omitempty" json:"throttle_authenticated_web_period_in_seconds,omitempty"`
- ThrottleAuthenticatedWebRequestsPerPeriod *int `url:"throttle_authenticated_web_requests_per_period,omitempty" json:"throttle_authenticated_web_requests_per_period,omitempty"`
- ThrottleUnauthenticatedEnabled *bool `url:"throttle_unauthenticated_enabled,omitempty" json:"throttle_unauthenticated_enabled,omitempty"`
- ThrottleUnauthenticatedPeriodInSeconds *int `url:"throttle_unauthenticated_period_in_seconds,omitempty" json:"throttle_unauthenticated_period_in_seconds,omitempty"`
- ThrottleUnauthenticatedRequestsPerPeriod *int `url:"throttle_unauthenticated_requests_per_period,omitempty" json:"throttle_unauthenticated_requests_per_period,omitempty"`
- TimeTrackingLimitToHours *bool `url:"time_tracking_limit_to_hours,omitempty" json:"time_tracking_limit_to_hours,omitempty"`
- TwoFactorGracePeriod *int `url:"two_factor_grace_period,omitempty" json:"two_factor_grace_period,omitempty"`
- UniqueIPsLimitEnabled *bool `url:"unique_ips_limit_enabled,omitempty" json:"unique_ips_limit_enabled,omitempty"`
- UniqueIPsLimitPerUser *int `url:"unique_ips_limit_per_user,omitempty" json:"unique_ips_limit_per_user,omitempty"`
- UniqueIPsLimitTimeWindow *int `url:"unique_ips_limit_time_window,omitempty" json:"unique_ips_limit_time_window,omitempty"`
- UsagePingEnabled *bool `url:"usage_ping_enabled,omitempty" json:"usage_ping_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"`
- 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"`
- 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"`
-}
-
-// UpdateSettings updates the application settings.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/settings.html#change-application.settings
-func (s *SettingsService) UpdateSettings(opt *UpdateSettingsOptions, options ...RequestOptionFunc) (*Settings, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPut, "application/settings", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- as := new(Settings)
- resp, err := s.client.Do(req, as)
- if err != nil {
- return nil, resp, err
- }
-
- return as, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/sidekiq_metrics.go b/vendor/github.com/xanzy/go-gitlab/sidekiq_metrics.go
deleted file mode 100644
index a60fb6bade..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/sidekiq_metrics.go
+++ /dev/null
@@ -1,157 +0,0 @@
-//
-// 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 (
- "net/http"
- "time"
-)
-
-// SidekiqService handles communication with the sidekiq service
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/sidekiq_metrics.html
-type SidekiqService struct {
- client *Client
-}
-
-// QueueMetrics represents the GitLab sidekiq queue metrics.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/sidekiq_metrics.html#get-the-current-queue-metrics
-type QueueMetrics struct {
- Queues map[string]struct {
- Backlog int `json:"backlog"`
- Latency int `json:"latency"`
- } `json:"queues"`
-}
-
-// GetQueueMetrics lists information about all the registered queues,
-// their backlog and their latency.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/sidekiq_metrics.html#get-the-current-queue-metrics
-func (s *SidekiqService) GetQueueMetrics(options ...RequestOptionFunc) (*QueueMetrics, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "/sidekiq/queue_metrics", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- q := new(QueueMetrics)
- resp, err := s.client.Do(req, q)
- if err != nil {
- return nil, resp, err
- }
-
- return q, resp, err
-}
-
-// ProcessMetrics represents the GitLab sidekiq process metrics.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/sidekiq_metrics.html#get-the-current-process-metrics
-type ProcessMetrics struct {
- Processes []struct {
- Hostname string `json:"hostname"`
- Pid int `json:"pid"`
- Tag string `json:"tag"`
- StartedAt *time.Time `json:"started_at"`
- Queues []string `json:"queues"`
- Labels []string `json:"labels"`
- Concurrency int `json:"concurrency"`
- Busy int `json:"busy"`
- } `json:"processes"`
-}
-
-// GetProcessMetrics lists information about all the Sidekiq workers registered
-// to process your queues.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/sidekiq_metrics.html#get-the-current-process-metrics
-func (s *SidekiqService) GetProcessMetrics(options ...RequestOptionFunc) (*ProcessMetrics, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "/sidekiq/process_metrics", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- p := new(ProcessMetrics)
- resp, err := s.client.Do(req, p)
- if err != nil {
- return nil, resp, err
- }
-
- return p, resp, err
-}
-
-// JobStats represents the GitLab sidekiq job stats.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/sidekiq_metrics.html#get-the-current-job-statistics
-type JobStats struct {
- Jobs struct {
- Processed int `json:"processed"`
- Failed int `json:"failed"`
- Enqueued int `json:"enqueued"`
- } `json:"jobs"`
-}
-
-// GetJobStats list information about the jobs that Sidekiq has performed.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/sidekiq_metrics.html#get-the-current-job-statistics
-func (s *SidekiqService) GetJobStats(options ...RequestOptionFunc) (*JobStats, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "/sidekiq/job_stats", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- j := new(JobStats)
- resp, err := s.client.Do(req, j)
- if err != nil {
- return nil, resp, err
- }
-
- return j, resp, err
-}
-
-// CompoundMetrics represents the GitLab sidekiq compounded stats.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/sidekiq_metrics.html#get-a-compound-response-of-all-the-previously-mentioned-metrics
-type CompoundMetrics struct {
- QueueMetrics
- ProcessMetrics
- JobStats
-}
-
-// 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/ce/api/sidekiq_metrics.html#get-the-current-job-statistics
-func (s *SidekiqService) GetCompoundMetrics(options ...RequestOptionFunc) (*CompoundMetrics, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "/sidekiq/compound_metrics", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- c := new(CompoundMetrics)
- resp, err := s.client.Do(req, c)
- if err != nil {
- return nil, resp, err
- }
-
- return c, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/snippets.go b/vendor/github.com/xanzy/go-gitlab/snippets.go
deleted file mode 100644
index 26468b7fd8..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/snippets.go
+++ /dev/null
@@ -1,231 +0,0 @@
-//
-// 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"
- "net/http"
- "time"
-)
-
-// SnippetsService handles communication with the snippets
-// related methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/snippets.html
-type SnippetsService struct {
- client *Client
-}
-
-// Snippet represents a GitLab snippet.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/snippets.html
-type Snippet struct {
- ID int `json:"id"`
- Title string `json:"title"`
- FileName string `json:"file_name"`
- Description string `json:"description"`
- Author struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Email string `json:"email"`
- Name string `json:"name"`
- State string `json:"state"`
- CreatedAt *time.Time `json:"created_at"`
- } `json:"author"`
- UpdatedAt *time.Time `json:"updated_at"`
- CreatedAt *time.Time `json:"created_at"`
- WebURL string `json:"web_url"`
- RawURL string `json:"raw_url"`
-}
-
-func (s Snippet) String() string {
- return Stringify(s)
-}
-
-// ListSnippetsOptions represents the available ListSnippets() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/snippets.html#list-snippets
-type ListSnippetsOptions ListOptions
-
-// ListSnippets gets a list of snippets.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/snippets.html#list-snippets
-func (s *SnippetsService) ListSnippets(opt *ListSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "snippets", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ps []*Snippet
- resp, err := s.client.Do(req, &ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// GetSnippet gets a single snippet
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/snippets.html#single-snippet
-func (s *SnippetsService) GetSnippet(snippet int, options ...RequestOptionFunc) (*Snippet, *Response, error) {
- u := fmt.Sprintf("snippets/%d", snippet)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- ps := new(Snippet)
- resp, err := s.client.Do(req, ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// CreateSnippetOptions represents the available CreateSnippet() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/snippets.html#create-new-snippet
-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"`
-}
-
-// CreateSnippet creates a new snippet. The user must have permission
-// to create new snippets.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/snippets.html#create-new-snippet
-func (s *SnippetsService) CreateSnippet(opt *CreateSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "snippets", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ps := new(Snippet)
- resp, err := s.client.Do(req, ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// UpdateSnippetOptions represents the available UpdateSnippet() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/snippets.html#update-snippet
-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"`
-}
-
-// UpdateSnippet updates an existing snippet. The user must have
-// permission to change an existing snippet.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/snippets.html#update-snippet
-func (s *SnippetsService) UpdateSnippet(snippet int, opt *UpdateSnippetOptions, options ...RequestOptionFunc) (*Snippet, *Response, error) {
- u := fmt.Sprintf("snippets/%d", snippet)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- ps := new(Snippet)
- resp, err := s.client.Do(req, ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
-
-// 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/ce/api/snippets.html#delete-snippet
-func (s *SnippetsService) DeleteSnippet(snippet int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("snippets/%d", snippet)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// SnippetContent returns the raw snippet as plain text.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/snippets.html#snippet-content
-func (s *SnippetsService) SnippetContent(snippet int, options ...RequestOptionFunc) ([]byte, *Response, error) {
- u := fmt.Sprintf("snippets/%d/raw", snippet)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var b bytes.Buffer
- resp, err := s.client.Do(req, &b)
- if err != nil {
- return nil, resp, err
- }
-
- return b.Bytes(), resp, err
-}
-
-// ExploreSnippetsOptions represents the available ExploreSnippets() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/snippets.html#explore-all-public-snippets
-type ExploreSnippetsOptions ListOptions
-
-// ExploreSnippets gets the list of public snippets.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/snippets.html#explore-all-public-snippets
-func (s *SnippetsService) ExploreSnippets(opt *ExploreSnippetsOptions, options ...RequestOptionFunc) ([]*Snippet, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "snippets/public", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ps []*Snippet
- resp, err := s.client.Do(req, &ps)
- if err != nil {
- return nil, resp, err
- }
-
- return ps, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/strings.go b/vendor/github.com/xanzy/go-gitlab/strings.go
deleted file mode 100644
index 2a58ae55f9..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/strings.go
+++ /dev/null
@@ -1,94 +0,0 @@
-//
-// 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"
-
- "reflect"
-)
-
-// Stringify attempts to create a reasonable string representation of types in
-// the Gitlab library. It does things like resolve pointers to their values
-// and omits struct fields with nil values.
-func Stringify(message interface{}) string {
- var buf bytes.Buffer
- v := reflect.ValueOf(message)
- stringifyValue(&buf, v)
- return buf.String()
-}
-
-// stringifyValue was heavily inspired by the goprotobuf library.
-func stringifyValue(buf *bytes.Buffer, val reflect.Value) {
- if val.Kind() == reflect.Ptr && val.IsNil() {
- buf.WriteString("<nil>")
- return
- }
-
- v := reflect.Indirect(val)
-
- switch v.Kind() {
- case reflect.String:
- fmt.Fprintf(buf, `"%s"`, v)
- case reflect.Slice:
- buf.WriteByte('[')
- for i := 0; i < v.Len(); i++ {
- if i > 0 {
- buf.WriteByte(' ')
- }
-
- stringifyValue(buf, v.Index(i))
- }
-
- buf.WriteByte(']')
- return
- case reflect.Struct:
- if v.Type().Name() != "" {
- buf.WriteString(v.Type().String())
- }
-
- buf.WriteByte('{')
-
- var sep bool
- for i := 0; i < v.NumField(); i++ {
- fv := v.Field(i)
- if fv.Kind() == reflect.Ptr && fv.IsNil() {
- continue
- }
- if fv.Kind() == reflect.Slice && fv.IsNil() {
- continue
- }
-
- if sep {
- buf.WriteString(", ")
- } else {
- sep = true
- }
-
- buf.WriteString(v.Type().Field(i).Name)
- buf.WriteByte(':')
- stringifyValue(buf, fv)
- }
-
- buf.WriteByte('}')
- default:
- if v.CanInterface() {
- fmt.Fprint(buf, v.Interface())
- }
- }
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/system_hooks.go b/vendor/github.com/xanzy/go-gitlab/system_hooks.go
deleted file mode 100644
index bc496fd5b4..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/system_hooks.go
+++ /dev/null
@@ -1,150 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// SystemHooksService handles communication with the system hooks related
-// methods of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/system_hooks.html
-type SystemHooksService struct {
- client *Client
-}
-
-// Hook represents a GitLap system hook.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/system_hooks.html
-type Hook struct {
- ID int `json:"id"`
- URL string `json:"url"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-func (h Hook) String() string {
- return Stringify(h)
-}
-
-// ListHooks gets a list of system hooks.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/system_hooks.html#list-system-hooks
-func (s *SystemHooksService) ListHooks(options ...RequestOptionFunc) ([]*Hook, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "hooks", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var h []*Hook
- resp, err := s.client.Do(req, &h)
- if err != nil {
- return nil, resp, err
- }
-
- return h, resp, err
-}
-
-// AddHookOptions represents the available AddHook() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/system_hooks.html#add-new-system-hook-hook
-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"`
-}
-
-// AddHook adds a new system hook hook.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/system_hooks.html#add-new-system-hook-hook
-func (s *SystemHooksService) AddHook(opt *AddHookOptions, options ...RequestOptionFunc) (*Hook, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "hooks", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- h := new(Hook)
- resp, err := s.client.Do(req, h)
- if err != nil {
- return nil, resp, err
- }
-
- return h, resp, err
-}
-
-// HookEvent represents an event trigger by a GitLab system hook.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/system_hooks.html
-type HookEvent struct {
- EventName string `json:"event_name"`
- Name string `json:"name"`
- Path string `json:"path"`
- ProjectID int `json:"project_id"`
- OwnerName string `json:"owner_name"`
- OwnerEmail string `json:"owner_email"`
-}
-
-func (h HookEvent) String() string {
- return Stringify(h)
-}
-
-// TestHook tests a system hook.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/system_hooks.html#test-system-hook
-func (s *SystemHooksService) TestHook(hook int, options ...RequestOptionFunc) (*HookEvent, *Response, error) {
- u := fmt.Sprintf("hooks/%d", hook)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- h := new(HookEvent)
- resp, err := s.client.Do(req, h)
- if err != nil {
- return nil, resp, err
- }
-
- return h, resp, err
-}
-
-// 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/ce/api/system_hooks.html#delete-system-hook
-func (s *SystemHooksService) DeleteHook(hook int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("hooks/%d", hook)
-
- 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/tags.go b/vendor/github.com/xanzy/go-gitlab/tags.go
deleted file mode 100644
index e0eb3b1aab..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/tags.go
+++ /dev/null
@@ -1,245 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "net/url"
-)
-
-// TagsService handles communication with the tags related methods
-// of the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/tags.html
-type TagsService struct {
- client *Client
-}
-
-// Tag represents a GitLab tag.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/tags.html
-type Tag struct {
- Commit *Commit `json:"commit"`
- Release *ReleaseNote `json:"release"`
- Name string `json:"name"`
- Message string `json:"message"`
-}
-
-// ReleaseNote represents a GitLab version release.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/tags.html
-type ReleaseNote struct {
- TagName string `json:"tag_name"`
- Description string `json:"description"`
-}
-
-func (t Tag) String() string {
- return Stringify(t)
-}
-
-// ListTagsOptions represents the available ListTags() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/tags.html#list-project-repository-tags
-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"`
-}
-
-// ListTags gets a list of tags from a project, sorted by name in reverse
-// alphabetical order.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/tags.html#list-project-repository-tags
-func (s *TagsService) ListTags(pid interface{}, opt *ListTagsOptions, options ...RequestOptionFunc) ([]*Tag, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/tags", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var t []*Tag
- resp, err := s.client.Do(req, &t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// 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/ce/api/tags.html#get-a-single-repository-tag
-func (s *TagsService) GetTag(pid interface{}, tag string, options ...RequestOptionFunc) (*Tag, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/tags/%s", pathEscape(project), url.PathEscape(tag))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var t *Tag
- resp, err := s.client.Do(req, &t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// CreateTagOptions represents the available CreateTag() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/tags.html#create-a-new-tag
-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"`
- // ReleaseDescription parameter was deprecated in GitLab 11.7
- ReleaseDescription *string `url:"release_description:omitempty" json:"release_description,omitempty"`
-}
-
-// CreateTag creates a new tag in the repository that points to the supplied ref.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/tags.html#create-a-new-tag
-func (s *TagsService) CreateTag(pid interface{}, opt *CreateTagOptions, options ...RequestOptionFunc) (*Tag, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/tags", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(Tag)
- resp, err := s.client.Do(req, t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// DeleteTag deletes a tag of a repository with given name.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/tags.html#delete-a-tag
-func (s *TagsService) DeleteTag(pid interface{}, tag string, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/tags/%s", pathEscape(project), url.PathEscape(tag))
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// CreateReleaseNoteOptions represents the available CreateReleaseNote() options.
-//
-// Deprecated: This feature was deprecated in GitLab 11.7.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/tags.html#create-a-new-release
-type CreateReleaseNoteOptions struct {
- Description *string `url:"description:omitempty" json:"description,omitempty"`
-}
-
-// CreateReleaseNote Add release notes to the existing git tag.
-// If there already exists a release for the given tag, status code 409 is returned.
-//
-// Deprecated: This feature was deprecated in GitLab 11.7.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/tags.html#create-a-new-release
-func (s *TagsService) CreateReleaseNote(pid interface{}, tag string, opt *CreateReleaseNoteOptions, options ...RequestOptionFunc) (*ReleaseNote, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/tags/%s/release", pathEscape(project), url.PathEscape(tag))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- r := new(ReleaseNote)
- resp, err := s.client.Do(req, r)
- if err != nil {
- return nil, resp, err
- }
-
- return r, resp, err
-}
-
-// UpdateReleaseNoteOptions represents the available UpdateReleaseNote() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/tags.html#update-a-release
-type UpdateReleaseNoteOptions struct {
- Description *string `url:"description:omitempty" json:"description,omitempty"`
-}
-
-// UpdateReleaseNote Updates the release notes of a given release.
-//
-// Deprecated: This feature was deprecated in GitLab 11.7.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/tags.html#update-a-release
-func (s *TagsService) UpdateReleaseNote(pid interface{}, tag string, opt *UpdateReleaseNoteOptions, options ...RequestOptionFunc) (*ReleaseNote, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/repository/tags/%s/release", pathEscape(project), url.PathEscape(tag))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- r := new(ReleaseNote)
- resp, err := s.client.Do(req, r)
- if err != nil {
- return nil, resp, err
- }
-
- return r, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/time_stats.go b/vendor/github.com/xanzy/go-gitlab/time_stats.go
deleted file mode 100644
index dfbc1c8976..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/time_stats.go
+++ /dev/null
@@ -1,179 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// timeStatsService handles communication with the time tracking related
-// methods of the GitLab API.
-//
-// GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html
-type timeStatsService struct {
- client *Client
-}
-
-// TimeStats represents the time estimates and time spent for an issue.
-//
-// GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html
-type TimeStats struct {
- HumanTimeEstimate string `json:"human_time_estimate"`
- HumanTotalTimeSpent string `json:"human_total_time_spent"`
- TimeEstimate int `json:"time_estimate"`
- TotalTimeSpent int `json:"total_time_spent"`
-}
-
-func (t TimeStats) String() string {
- return Stringify(t)
-}
-
-// SetTimeEstimateOptions represents the available SetTimeEstimate()
-// options.
-//
-// GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html
-type SetTimeEstimateOptions struct {
- Duration *string `url:"duration,omitempty" json:"duration,omitempty"`
-}
-
-// setTimeEstimate sets the time estimate for a single project issue.
-//
-// GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html
-func (s *timeStatsService) setTimeEstimate(pid interface{}, entity string, issue int, opt *SetTimeEstimateOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/time_estimate", pathEscape(project), entity, issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(TimeStats)
- resp, err := s.client.Do(req, t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// resetTimeEstimate resets the time estimate for a single project issue.
-//
-// GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html
-func (s *timeStatsService) resetTimeEstimate(pid interface{}, entity string, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/reset_time_estimate", pathEscape(project), entity, issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(TimeStats)
- resp, err := s.client.Do(req, t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// AddSpentTimeOptions represents the available AddSpentTime() options.
-//
-// GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html
-type AddSpentTimeOptions struct {
- Duration *string `url:"duration,omitempty" json:"duration,omitempty"`
-}
-
-// addSpentTime adds spent time for a single project issue.
-//
-// GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html
-func (s *timeStatsService) addSpentTime(pid interface{}, entity string, issue int, opt *AddSpentTimeOptions, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/add_spent_time", pathEscape(project), entity, issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(TimeStats)
- resp, err := s.client.Do(req, t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// resetSpentTime resets the spent time for a single project issue.
-//
-// GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html
-func (s *timeStatsService) resetSpentTime(pid interface{}, entity string, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/reset_spent_time", pathEscape(project), entity, issue)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(TimeStats)
- resp, err := s.client.Do(req, t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// getTimeSpent gets the spent time for a single project issue.
-//
-// GitLab docs: https://docs.gitlab.com/ce/workflow/time_tracking.html
-func (s *timeStatsService) getTimeSpent(pid interface{}, entity string, issue int, options ...RequestOptionFunc) (*TimeStats, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/%s/%d/time_stats", pathEscape(project), entity, issue)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(TimeStats)
- resp, err := s.client.Do(req, t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/todos.go b/vendor/github.com/xanzy/go-gitlab/todos.go
deleted file mode 100644
index 7ffb7fc490..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/todos.go
+++ /dev/null
@@ -1,162 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
- "time"
-)
-
-// TodosService handles communication with the todos related methods of
-// the Gitlab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/todos.html
-type TodosService struct {
- client *Client
-}
-
-// Todo represents a GitLab todo.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/todos.html
-type Todo struct {
- ID int `json:"id"`
- Project *BasicProject `json:"project"`
- Author *BasicUser `json:"author"`
- ActionName TodoAction `json:"action_name"`
- TargetType TodoTargetType `json:"target_type"`
- Target *TodoTarget `json:"target"`
- TargetURL string `json:"target_url"`
- Body string `json:"body"`
- State string `json:"state"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-func (t Todo) String() string {
- return Stringify(t)
-}
-
-// TodoTarget represents a todo target of type Issue or MergeRequest
-type TodoTarget struct {
- Assignees []*BasicUser `json:"assignees"`
- Assignee *BasicUser `json:"assignee"`
- Author *BasicUser `json:"author"`
- CreatedAt *time.Time `json:"created_at"`
- Description string `json:"description"`
- Downvotes int `json:"downvotes"`
- ID int `json:"id"`
- IID int `json:"iid"`
- Labels []string `json:"labels"`
- Milestone *Milestone `json:"milestone"`
- ProjectID int `json:"project_id"`
- State string `json:"state"`
- Subscribed bool `json:"subscribed"`
- TaskCompletionStatus *TasksCompletionStatus `json:"task_completion_status"`
- Title string `json:"title"`
- UpdatedAt *time.Time `json:"updated_at"`
- Upvotes int `json:"upvotes"`
- UserNotesCount int `json:"user_notes_count"`
- WebURL string `json:"web_url"`
-
- // Only available for type Issue
- Confidential bool `json:"confidential"`
- DueDate string `json:"due_date"`
- HasTasks bool `json:"has_tasks"`
- Links *IssueLinks `json:"_links"`
- MovedToID int `json:"moved_to_id"`
- TimeStats *TimeStats `json:"time_stats"`
- Weight int `json:"weight"`
-
- // Only available for type MergeRequest
- ApprovalsBeforeMerge int `json:"approvals_before_merge"`
- ForceRemoveSourceBranch bool `json:"force_remove_source_branch"`
- MergeCommitSHA string `json:"merge_commit_sha"`
- MergeWhenPipelineSucceeds bool `json:"merge_when_pipeline_succeeds"`
- MergeStatus string `json:"merge_status"`
- Reference string `json:"reference"`
- Reviewers []*BasicUser `json:"reviewers"`
- SHA string `json:"sha"`
- ShouldRemoveSourceBranch bool `json:"should_remove_source_branch"`
- SourceBranch string `json:"source_branch"`
- SourceProjectID int `json:"source_project_id"`
- Squash bool `json:"squash"`
- TargetBranch string `json:"target_branch"`
- TargetProjectID int `json:"target_project_id"`
- WorkInProgress bool `json:"work_in_progress"`
-
- // Only available for type DesignManagement::Design
- FileName string `json:"filename"`
- ImageURL string `json:"image_url"`
-}
-
-// ListTodosOptions represents the available ListTodos() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/todos.html#get-a-list-of-todos
-type ListTodosOptions struct {
- ListOptions
- Action *TodoAction `url:"action,omitempty" json:"action,omitempty"`
- AuthorID *int `url:"author_id,omitempty" json:"author_id,omitempty"`
- ProjectID *int `url:"project_id,omitempty" json:"project_id,omitempty"`
- State *string `url:"state,omitempty" json:"state,omitempty"`
- Type *string `url:"type,omitempty" json:"type,omitempty"`
-}
-
-// 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/ce/api/todos.html#get-a-list-of-todos
-func (s *TodosService) ListTodos(opt *ListTodosOptions, options ...RequestOptionFunc) ([]*Todo, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "todos", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var t []*Todo
- resp, err := s.client.Do(req, &t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// MarkTodoAsDone marks a single pending todo given by its ID for the current user as done.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/todos.html#mark-a-todo-as-done
-func (s *TodosService) MarkTodoAsDone(id int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("todos/%d/mark_as_done", id)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// MarkAllTodosAsDone marks all pending todos for the current user as done.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/todos.html#mark-all-todos-as-done
-func (s *TodosService) MarkAllTodosAsDone(options ...RequestOptionFunc) (*Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "todos/mark_as_done", 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
deleted file mode 100644
index 17dcaeebf4..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/types.go
+++ /dev/null
@@ -1,583 +0,0 @@
-//
-// 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 (
- "encoding/json"
- "errors"
- "fmt"
- "net/url"
- "time"
-)
-
-// AccessControlValue represents an access control value within GitLab,
-// used for managing access to certain project features.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html
-type AccessControlValue string
-
-// List of available access control values.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html
-const (
- DisabledAccessControl AccessControlValue = "disabled"
- EnabledAccessControl AccessControlValue = "enabled"
- PrivateAccessControl AccessControlValue = "private"
- PublicAccessControl AccessControlValue = "public"
-)
-
-// AccessControl is a helper routine that allocates a new AccessControlValue
-// to store v and returns a pointer to it.
-func AccessControl(v AccessControlValue) *AccessControlValue {
- p := new(AccessControlValue)
- *p = v
- return p
-}
-
-// AccessLevelValue represents a permission level within GitLab.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/permissions/permissions.html
-type AccessLevelValue int
-
-// List of available access levels
-//
-// GitLab API docs: https://docs.gitlab.com/ce/permissions/permissions.html
-const (
- NoPermissions AccessLevelValue = 0
- MinimalAccessPermissions AccessLevelValue = 5
- GuestPermissions AccessLevelValue = 10
- ReporterPermissions AccessLevelValue = 20
- DeveloperPermissions AccessLevelValue = 30
- MaintainerPermissions AccessLevelValue = 40
- OwnerPermissions AccessLevelValue = 50
-
- // These are deprecated and should be removed in a future version
- MasterPermissions AccessLevelValue = 40
- OwnerPermission AccessLevelValue = 50
-)
-
-// AccessLevel is a helper routine that allocates a new AccessLevelValue
-// to store v and returns a pointer to it.
-func AccessLevel(v AccessLevelValue) *AccessLevelValue {
- p := new(AccessLevelValue)
- *p = v
- return p
-}
-
-// BuildStateValue represents a GitLab build state.
-type BuildStateValue string
-
-// These constants represent all valid build states.
-const (
- Pending BuildStateValue = "pending"
- Created BuildStateValue = "created"
- Running BuildStateValue = "running"
- Success BuildStateValue = "success"
- Failed BuildStateValue = "failed"
- Canceled BuildStateValue = "canceled"
- Skipped BuildStateValue = "skipped"
- Manual BuildStateValue = "manual"
-)
-
-// BuildState is a helper routine that allocates a new BuildStateValue
-// to store v and returns a pointer to it.
-func BuildState(v BuildStateValue) *BuildStateValue {
- p := new(BuildStateValue)
- *p = v
- return p
-}
-
-// DeploymentStatusValue represents a Gitlab deployment status.
-type DeploymentStatusValue string
-
-// These constants represent all valid deployment statuses.
-const (
- DeploymentStatusCreated DeploymentStatusValue = "created"
- DeploymentStatusRunning DeploymentStatusValue = "running"
- DeploymentStatusSuccess DeploymentStatusValue = "success"
- DeploymentStatusFailed DeploymentStatusValue = "failed"
- DeploymentStatusCanceled DeploymentStatusValue = "canceled"
-)
-
-// DeploymentStatus is a helper routine that allocates a new
-// DeploymentStatusValue to store v and returns a pointer to it.
-func DeploymentStatus(v DeploymentStatusValue) *DeploymentStatusValue {
- p := new(DeploymentStatusValue)
- *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"
-)
-
-// 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
-type FileActionValue string
-
-// The available file actions.
-const (
- FileCreate FileActionValue = "create"
- FileDelete FileActionValue = "delete"
- FileMove FileActionValue = "move"
- FileUpdate FileActionValue = "update"
- FileChmod FileActionValue = "chmod"
-)
-
-// FileAction is a helper routine that allocates a new FileActionValue value
-// to store v and returns a pointer to it.
-func FileAction(v FileActionValue) *FileActionValue {
- p := new(FileActionValue)
- *p = v
- return p
-}
-
-// ISOTime represents an ISO 8601 formatted date
-type ISOTime time.Time
-
-// ISO 8601 date format
-const iso8601 = "2006-01-02"
-
-// MarshalJSON implements the json.Marshaler interface
-func (t ISOTime) MarshalJSON() ([]byte, error) {
- if y := time.Time(t).Year(); y < 0 || y >= 10000 {
- // ISO 8901 uses 4 digits for the years
- return nil, errors.New("json: ISOTime year outside of range [0,9999]")
- }
-
- b := make([]byte, 0, len(iso8601)+2)
- b = append(b, '"')
- b = time.Time(t).AppendFormat(b, iso8601)
- b = append(b, '"')
-
- return b, nil
-}
-
-// UnmarshalJSON implements the json.Unmarshaler interface
-func (t *ISOTime) UnmarshalJSON(data []byte) error {
- // Ignore null, like in the main JSON package
- if string(data) == "null" {
- return nil
- }
-
- isotime, err := time.Parse(`"`+iso8601+`"`, string(data))
- *t = ISOTime(isotime)
-
- return err
-}
-
-// EncodeValues implements the query.Encoder interface
-func (t *ISOTime) EncodeValues(key string, v *url.Values) error {
- if t == nil || (time.Time(*t)).IsZero() {
- return nil
- }
- v.Add(key, t.String())
- return nil
-}
-
-// String implements the Stringer interface
-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
-}
-
-// NoteTypeValue represents the type of a Note.
-type NoteTypeValue string
-
-// List of available note types.
-const (
- DiffNote NoteTypeValue = "DiffNote"
- DiscussionNote NoteTypeValue = "DiscussionNote"
- GenericNote NoteTypeValue = "Note"
- LegacyDiffNote NoteTypeValue = "LegacyDiffNote"
-)
-
-// NoteType is a helper routine that allocates a new NoteTypeValue to
-// store v and returns a pointer to it.
-func NoteType(v NoteTypeValue) *NoteTypeValue {
- p := new(NoteTypeValue)
- *p = v
- return p
-}
-
-// NotificationLevelValue represents a notification level.
-type NotificationLevelValue int
-
-// String implements the fmt.Stringer interface.
-func (l NotificationLevelValue) String() string {
- return notificationLevelNames[l]
-}
-
-// MarshalJSON implements the json.Marshaler interface.
-func (l NotificationLevelValue) MarshalJSON() ([]byte, error) {
- return json.Marshal(l.String())
-}
-
-// UnmarshalJSON implements the json.Unmarshaler interface.
-func (l *NotificationLevelValue) UnmarshalJSON(data []byte) error {
- var raw interface{}
- if err := json.Unmarshal(data, &raw); err != nil {
- return err
- }
-
- switch raw := raw.(type) {
- case float64:
- *l = NotificationLevelValue(raw)
- case string:
- *l = notificationLevelTypes[raw]
- case nil:
- // No action needed.
- default:
- return fmt.Errorf("json: cannot unmarshal %T into Go value of type %T", raw, *l)
- }
-
- return nil
-}
-
-// List of valid notification levels.
-const (
- DisabledNotificationLevel NotificationLevelValue = iota
- ParticipatingNotificationLevel
- WatchNotificationLevel
- GlobalNotificationLevel
- MentionNotificationLevel
- CustomNotificationLevel
-)
-
-var notificationLevelNames = [...]string{
- "disabled",
- "participating",
- "watch",
- "global",
- "mention",
- "custom",
-}
-
-var notificationLevelTypes = map[string]NotificationLevelValue{
- "disabled": DisabledNotificationLevel,
- "participating": ParticipatingNotificationLevel,
- "watch": WatchNotificationLevel,
- "global": GlobalNotificationLevel,
- "mention": MentionNotificationLevel,
- "custom": CustomNotificationLevel,
-}
-
-// NotificationLevel is a helper routine that allocates a new NotificationLevelValue
-// to store v and returns a pointer to it.
-func NotificationLevel(v NotificationLevelValue) *NotificationLevelValue {
- p := new(NotificationLevelValue)
- *p = v
- return p
-}
-
-// ProjectCreationLevelValue represents a project creation level within GitLab.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-type ProjectCreationLevelValue string
-
-// List of available project creation levels.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-const (
- NoOneProjectCreation ProjectCreationLevelValue = "noone"
- MaintainerProjectCreation ProjectCreationLevelValue = "maintainer"
- DeveloperProjectCreation ProjectCreationLevelValue = "developer"
-)
-
-// ProjectCreationLevel is a helper routine that allocates a new ProjectCreationLevelValue
-// to store v and returns a pointer to it.
-func ProjectCreationLevel(v ProjectCreationLevelValue) *ProjectCreationLevelValue {
- p := new(ProjectCreationLevelValue)
- *p = v
- return p
-}
-
-// SubGroupCreationLevelValue represents a sub group creation level within GitLab.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-type SubGroupCreationLevelValue string
-
-// List of available sub group creation levels.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-const (
- OwnerSubGroupCreationLevelValue SubGroupCreationLevelValue = "owner"
- MaintainerSubGroupCreationLevelValue SubGroupCreationLevelValue = "maintainer"
-)
-
-// SubGroupCreationLevel is a helper routine that allocates a new SubGroupCreationLevelValue
-// to store v and returns a pointer to it.
-func SubGroupCreationLevel(v SubGroupCreationLevelValue) *SubGroupCreationLevelValue {
- p := new(SubGroupCreationLevelValue)
- *p = v
- return p
-}
-
-// TasksCompletionStatus represents tasks of the issue/merge request.
-type TasksCompletionStatus struct {
- Count int `json:"count"`
- CompletedCount int `json:"completed_count"`
-}
-
-// TodoAction represents the available actions that can be performed on a todo.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/todos.html
-type TodoAction string
-
-// The available todo actions.
-const (
- TodoAssigned TodoAction = "assigned"
- TodoMentioned TodoAction = "mentioned"
- TodoBuildFailed TodoAction = "build_failed"
- TodoMarked TodoAction = "marked"
- TodoApprovalRequired TodoAction = "approval_required"
- TodoDirectlyAddressed TodoAction = "directly_addressed"
-)
-
-// TodoTargetType represents the available target that can be linked to a todo.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/todos.html
-type TodoTargetType string
-
-const (
- TodoTargetAlertManagement TodoTargetType = "AlertManagement::Alert"
- TodoTargetDesignManagement TodoTargetType = "DesignManagement::Design"
- TodoTargetIssue TodoTargetType = "Issue"
- TodoTargetMergeRequest TodoTargetType = "MergeRequest"
-)
-
-// VariableTypeValue represents a variable type within GitLab.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-type VariableTypeValue string
-
-// List of available variable types.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/
-const (
- EnvVariableType VariableTypeValue = "env_var"
- FileVariableType VariableTypeValue = "file"
-)
-
-// VariableType is a helper routine that allocates a new VariableTypeValue
-// to store v and returns a pointer to it.
-func VariableType(v VariableTypeValue) *VariableTypeValue {
- p := new(VariableTypeValue)
- *p = v
- 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
-type WikiFormatValue string
-
-// The available wiki formats.
-const (
- WikiFormatMarkdown WikiFormatValue = "markdown"
- WikiFormatRDoc WikiFormatValue = "rdoc"
- WikiFormatASCIIDoc WikiFormatValue = "asciidoc"
- WikiFormatOrg WikiFormatValue = "org"
-)
-
-// WikiFormat is a helper routine that allocates a new WikiFormatValue
-// to store v and returns a pointer to it.
-func WikiFormat(v WikiFormatValue) *WikiFormatValue {
- p := new(WikiFormatValue)
- *p = v
- return p
-}
-
-// 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 {
- p := new(bool)
- *p = v
- return p
-}
-
-// Int is a helper routine that allocates a new int32 value
-// to store v and returns a pointer to it, but unlike Int32
-// its argument value is an int.
-func Int(v int) *int {
- p := new(int)
- *p = v
- return p
-}
-
-// String is a helper routine that allocates a new string value
-// to store v and returns a pointer to it.
-func String(v string) *string {
- p := new(string)
- *p = v
- return p
-}
-
-// Time is a helper routine that allocates a new time.Time value
-// to store v and returns a pointer to it.
-func Time(v time.Time) *time.Time {
- p := new(time.Time)
- *p = v
- return p
-}
-
-// BoolValue is a boolean value with advanced json unmarshaling features.
-type BoolValue bool
-
-// 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
-func (t *BoolValue) UnmarshalJSON(b []byte) error {
- switch string(b) {
- case `"1"`:
- *t = true
- return nil
- case `"0"`:
- *t = false
- return nil
- case `"true"`:
- *t = true
- return nil
- case `"false"`:
- *t = false
- return nil
- default:
- var v bool
- err := json.Unmarshal(b, &v)
- *t = BoolValue(v)
- return err
- }
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/users.go b/vendor/github.com/xanzy/go-gitlab/users.go
deleted file mode 100644
index d43e802e19..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/users.go
+++ /dev/null
@@ -1,1040 +0,0 @@
-//
-// 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 (
- "errors"
- "fmt"
- "net/http"
- "time"
-)
-
-// List a couple of standard errors.
-var (
- ErrUserActivatePrevented = errors.New("Cannot activate a user that is blocked by admin or by LDAP synchronization")
- ErrUserBlockPrevented = errors.New("Cannot block a user that is already blocked by LDAP synchronization")
- ErrUserDeactivatePrevented = errors.New("Cannot deactivate a user that is blocked by admin or by LDAP synchronization, or that has any activity in past 180 days")
- ErrUserNotFound = errors.New("User does not exist")
- ErrUserUnblockPrevented = errors.New("Cannot unblock a user that is blocked by LDAP synchronization")
-)
-
-// UsersService handles communication with the user related methods of
-// the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html
-type UsersService struct {
- client *Client
-}
-
-// BasicUser included in other service responses (such as merge requests, pipelines, etc).
-type BasicUser struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Name string `json:"name"`
- State string `json:"state"`
- CreatedAt *time.Time `json:"created_at"`
- AvatarURL string `json:"avatar_url"`
- WebURL string `json:"web_url"`
-}
-
-// User represents a GitLab user.
-//
-// GitLab API docs: https://docs.gitlab.com/ee/api/users.html
-type User struct {
- ID int `json:"id"`
- Username string `json:"username"`
- Email string `json:"email"`
- Name string `json:"name"`
- State string `json:"state"`
- WebURL string `json:"web_url"`
- CreatedAt *time.Time `json:"created_at"`
- Bio string `json:"bio"`
- 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"`
- ExternUID string `json:"extern_uid"`
- Provider string `json:"provider"`
- ThemeID int `json:"theme_id"`
- LastActivityOn *ISOTime `json:"last_activity_on"`
- ColorSchemeID int `json:"color_scheme_id"`
- IsAdmin bool `json:"is_admin"`
- AvatarURL string `json:"avatar_url"`
- CanCreateGroup bool `json:"can_create_group"`
- CanCreateProject bool `json:"can_create_project"`
- ProjectsLimit int `json:"projects_limit"`
- CurrentSignInAt *time.Time `json:"current_sign_in_at"`
- LastSignInAt *time.Time `json:"last_sign_in_at"`
- ConfirmedAt *time.Time `json:"confirmed_at"`
- TwoFactorEnabled bool `json:"two_factor_enabled"`
- Note string `json:"note"`
- Identities []*UserIdentity `json:"identities"`
- External bool `json:"external"`
- PrivateProfile bool `json:"private_profile"`
- SharedRunnersMinutesLimit int `json:"shared_runners_minutes_limit"`
- ExtraSharedRunnersMinutesLimit int `json:"extra_shared_runners_minutes_limit"`
- UsingLicenseSeat bool `json:"using_license_seat"`
- CustomAttributes []*CustomAttribute `json:"custom_attributes"`
-}
-
-// UserIdentity represents a user identity.
-type UserIdentity struct {
- Provider string `json:"provider"`
- ExternUID string `json:"extern_uid"`
-}
-
-// ListUsersOptions represents the available ListUsers() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#list-users
-type ListUsersOptions struct {
- ListOptions
- Active *bool `url:"active,omitempty" json:"active,omitempty"`
- Blocked *bool `url:"blocked,omitempty" json:"blocked,omitempty"`
- ExcludeInternal *bool `url:"exclude_internal,omitempty" json:"exclude_internal,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"`
-}
-
-// ListUsers gets a list of users.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#list-users
-func (s *UsersService) ListUsers(opt *ListUsersOptions, options ...RequestOptionFunc) ([]*User, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "users", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var usr []*User
- resp, err := s.client.Do(req, &usr)
- if err != nil {
- return nil, resp, err
- }
-
- 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, opt GetUsersOptions, options ...RequestOptionFunc) (*User, *Response, error) {
- u := fmt.Sprintf("users/%d", user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- usr := new(User)
- resp, err := s.client.Do(req, usr)
- if err != nil {
- return nil, resp, err
- }
-
- return usr, resp, err
-}
-
-// CreateUserOptions represents the available CreateUser() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#user-creation
-type CreateUserOptions struct {
- Email *string `url:"email,omitempty" json:"email,omitempty"`
- Password *string `url:"password,omitempty" json:"password,omitempty"`
- ResetPassword *bool `url:"reset_password,omitempty" json:"reset_password,omitempty"`
- ForceRandomPassword *bool `url:"force_random_password,omitempty" json:"force_random_password,omitempty"`
- Username *string `url:"username,omitempty" json:"username,omitempty"`
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- Skype *string `url:"skype,omitempty" json:"skype,omitempty"`
- Linkedin *string `url:"linkedin,omitempty" json:"linkedin,omitempty"`
- Twitter *string `url:"twitter,omitempty" json:"twitter,omitempty"`
- WebsiteURL *string `url:"website_url,omitempty" json:"website_url,omitempty"`
- Organization *string `url:"organization,omitempty" json:"organization,omitempty"`
- ProjectsLimit *int `url:"projects_limit,omitempty" json:"projects_limit,omitempty"`
- ExternUID *string `url:"extern_uid,omitempty" json:"extern_uid,omitempty"`
- Provider *string `url:"provider,omitempty" json:"provider,omitempty"`
- Bio *string `url:"bio,omitempty" json:"bio,omitempty"`
- Location *string `url:"location,omitempty" json:"location,omitempty"`
- Admin *bool `url:"admin,omitempty" json:"admin,omitempty"`
- CanCreateGroup *bool `url:"can_create_group,omitempty" json:"can_create_group,omitempty"`
- SkipConfirmation *bool `url:"skip_confirmation,omitempty" json:"skip_confirmation,omitempty"`
- External *bool `url:"external,omitempty" json:"external,omitempty"`
- PrivateProfile *bool `url:"private_profile,omitempty" json:"private_profile,omitempty"`
- Note *string `url:"note,omitempty" json:"note,omitempty"`
-}
-
-// CreateUser creates a new user. Note only administrators can create new users.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#user-creation
-func (s *UsersService) CreateUser(opt *CreateUserOptions, options ...RequestOptionFunc) (*User, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "users", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- usr := new(User)
- resp, err := s.client.Do(req, usr)
- if err != nil {
- return nil, resp, err
- }
-
- return usr, resp, err
-}
-
-// ModifyUserOptions represents the available ModifyUser() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#user-modification
-type ModifyUserOptions struct {
- Email *string `url:"email,omitempty" json:"email,omitempty"`
- Password *string `url:"password,omitempty" json:"password,omitempty"`
- Username *string `url:"username,omitempty" json:"username,omitempty"`
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- Skype *string `url:"skype,omitempty" json:"skype,omitempty"`
- Linkedin *string `url:"linkedin,omitempty" json:"linkedin,omitempty"`
- Twitter *string `url:"twitter,omitempty" json:"twitter,omitempty"`
- WebsiteURL *string `url:"website_url,omitempty" json:"website_url,omitempty"`
- Organization *string `url:"organization,omitempty" json:"organization,omitempty"`
- ProjectsLimit *int `url:"projects_limit,omitempty" json:"projects_limit,omitempty"`
- ExternUID *string `url:"extern_uid,omitempty" json:"extern_uid,omitempty"`
- Provider *string `url:"provider,omitempty" json:"provider,omitempty"`
- Bio *string `url:"bio,omitempty" json:"bio,omitempty"`
- Location *string `url:"location,omitempty" json:"location,omitempty"`
- Admin *bool `url:"admin,omitempty" json:"admin,omitempty"`
- CanCreateGroup *bool `url:"can_create_group,omitempty" json:"can_create_group,omitempty"`
- SkipReconfirmation *bool `url:"skip_reconfirmation,omitempty" json:"skip_reconfirmation,omitempty"`
- External *bool `url:"external,omitempty" json:"external,omitempty"`
- PrivateProfile *bool `url:"private_profile,omitempty" json:"private_profile,omitempty"`
- Note *string `url:"note,omitempty" json:"note,omitempty"`
-}
-
-// ModifyUser modifies an existing user. Only administrators can change attributes
-// of a user.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#user-modification
-func (s *UsersService) ModifyUser(user int, opt *ModifyUserOptions, options ...RequestOptionFunc) (*User, *Response, error) {
- u := fmt.Sprintf("users/%d", user)
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- usr := new(User)
- resp, err := s.client.Do(req, usr)
- if err != nil {
- return nil, resp, err
- }
-
- return usr, resp, err
-}
-
-// 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/ce/api/users.html#user-deletion
-func (s *UsersService) DeleteUser(user int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("users/%d", user)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// CurrentUser gets currently authenticated user.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#current-user
-func (s *UsersService) CurrentUser(options ...RequestOptionFunc) (*User, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "user", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- usr := new(User)
- resp, err := s.client.Do(req, usr)
- if err != nil {
- return nil, resp, err
- }
-
- return usr, resp, err
-}
-
-// SSHKey represents a SSH key.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#list-ssh-keys
-type SSHKey struct {
- ID int `json:"id"`
- Title string `json:"title"`
- Key string `json:"key"`
- CreatedAt *time.Time `json:"created_at"`
-}
-
-// ListSSHKeys gets a list of currently authenticated user's SSH keys.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#list-ssh-keys
-func (s *UsersService) ListSSHKeys(options ...RequestOptionFunc) ([]*SSHKey, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "user/keys", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var k []*SSHKey
- resp, err := s.client.Do(req, &k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
-
-// ListSSHKeysForUserOptions represents the available ListSSHKeysForUser() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#list-ssh-keys-for-user
-type ListSSHKeysForUserOptions ListOptions
-
-// ListSSHKeysForUser gets a list of a specified user's SSH keys. Available
-// only for admin
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#list-ssh-keys-for-user
-func (s *UsersService) ListSSHKeysForUser(user int, opt *ListSSHKeysForUserOptions, options ...RequestOptionFunc) ([]*SSHKey, *Response, error) {
- u := fmt.Sprintf("users/%d/keys", user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var k []*SSHKey
- resp, err := s.client.Do(req, &k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
-
-// GetSSHKey gets a single key.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#single-ssh-key
-func (s *UsersService) GetSSHKey(key int, options ...RequestOptionFunc) (*SSHKey, *Response, error) {
- u := fmt.Sprintf("user/keys/%d", key)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- k := new(SSHKey)
- resp, err := s.client.Do(req, k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
-
-// AddSSHKeyOptions represents the available AddSSHKey() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#add-ssh-key
-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"`
-}
-
-// AddSSHKey creates a new key owned by the currently authenticated user.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#add-ssh-key
-func (s *UsersService) AddSSHKey(opt *AddSSHKeyOptions, options ...RequestOptionFunc) (*SSHKey, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "user/keys", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- k := new(SSHKey)
- resp, err := s.client.Do(req, k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
-
-// AddSSHKeyForUser creates new key owned by specified user. Available only for
-// admin.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#add-ssh-key-for-user
-func (s *UsersService) AddSSHKeyForUser(user int, opt *AddSSHKeyOptions, options ...RequestOptionFunc) (*SSHKey, *Response, error) {
- u := fmt.Sprintf("users/%d/keys", user)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- k := new(SSHKey)
- resp, err := s.client.Do(req, k)
- if err != nil {
- return nil, resp, err
- }
-
- return k, resp, err
-}
-
-// 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/ce/api/users.html#delete-ssh-key-for-current-owner
-func (s *UsersService) DeleteSSHKey(key int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("user/keys/%d", key)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteSSHKeyForUser deletes key owned by a specified user. Available only
-// for admin.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#delete-ssh-key-for-given-user
-func (s *UsersService) DeleteSSHKeyForUser(user, key int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("users/%d/keys/%d", user, key)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// BlockUser blocks the specified user. Available only for admin.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#block-user
-func (s *UsersService) BlockUser(user int, options ...RequestOptionFunc) error {
- u := fmt.Sprintf("users/%d/block", user)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return err
- }
-
- resp, err := s.client.Do(req, nil)
- if err != nil && resp == nil {
- return err
- }
-
- switch resp.StatusCode {
- case 201:
- return nil
- case 403:
- return ErrUserBlockPrevented
- case 404:
- return ErrUserNotFound
- default:
- return fmt.Errorf("Received unexpected result code: %d", resp.StatusCode)
- }
-}
-
-// UnblockUser unblocks the specified user. Available only for admin.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#unblock-user
-func (s *UsersService) UnblockUser(user int, options ...RequestOptionFunc) error {
- u := fmt.Sprintf("users/%d/unblock", user)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return err
- }
-
- resp, err := s.client.Do(req, nil)
- if err != nil && resp == nil {
- return err
- }
-
- switch resp.StatusCode {
- case 201:
- return nil
- case 403:
- return ErrUserUnblockPrevented
- case 404:
- return ErrUserNotFound
- default:
- return fmt.Errorf("Received unexpected result code: %d", resp.StatusCode)
- }
-}
-
-// DeactivateUser deactivate the specified user. Available only for admin.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#deactivate-user
-func (s *UsersService) DeactivateUser(user int, options ...RequestOptionFunc) error {
- u := fmt.Sprintf("users/%d/deactivate", user)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return err
- }
-
- resp, err := s.client.Do(req, nil)
- if err != nil && resp == nil {
- return err
- }
-
- switch resp.StatusCode {
- case 201:
- return nil
- case 403:
- return ErrUserDeactivatePrevented
- case 404:
- return ErrUserNotFound
- default:
- return fmt.Errorf("Received unexpected result code: %d", resp.StatusCode)
- }
-}
-
-// ActivateUser activate the specified user. Available only for admin.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#activate-user
-func (s *UsersService) ActivateUser(user int, options ...RequestOptionFunc) error {
- u := fmt.Sprintf("users/%d/activate", user)
-
- req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
- if err != nil {
- return err
- }
-
- resp, err := s.client.Do(req, nil)
- if err != nil && resp == nil {
- return err
- }
-
- switch resp.StatusCode {
- case 201:
- return nil
- case 403:
- return ErrUserActivatePrevented
- case 404:
- return ErrUserNotFound
- default:
- return fmt.Errorf("Received unexpected result code: %d", resp.StatusCode)
- }
-}
-
-// Email represents an Email.
-//
-// GitLab API docs: https://doc.gitlab.com/ce/api/users.html#list-emails
-type Email struct {
- ID int `json:"id"`
- Email string `json:"email"`
-}
-
-// ListEmails gets a list of currently authenticated user's Emails.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#list-emails
-func (s *UsersService) ListEmails(options ...RequestOptionFunc) ([]*Email, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "user/emails", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- var e []*Email
- resp, err := s.client.Do(req, &e)
- if err != nil {
- return nil, resp, err
- }
-
- return e, resp, err
-}
-
-// ListEmailsForUserOptions represents the available ListEmailsForUser() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#list-emails-for-user
-type ListEmailsForUserOptions ListOptions
-
-// ListEmailsForUser gets a list of a specified user's Emails. Available
-// only for admin
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#list-emails-for-user
-func (s *UsersService) ListEmailsForUser(user int, opt *ListEmailsForUserOptions, options ...RequestOptionFunc) ([]*Email, *Response, error) {
- u := fmt.Sprintf("users/%d/emails", user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var e []*Email
- resp, err := s.client.Do(req, &e)
- if err != nil {
- return nil, resp, err
- }
-
- return e, resp, err
-}
-
-// GetEmail gets a single email.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#single-email
-func (s *UsersService) GetEmail(email int, options ...RequestOptionFunc) (*Email, *Response, error) {
- u := fmt.Sprintf("user/emails/%d", email)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- e := new(Email)
- resp, err := s.client.Do(req, e)
- if err != nil {
- return nil, resp, err
- }
-
- return e, resp, err
-}
-
-// AddEmailOptions represents the available AddEmail() options.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#add-email
-type AddEmailOptions struct {
- Email *string `url:"email,omitempty" json:"email,omitempty"`
-}
-
-// AddEmail creates a new email owned by the currently authenticated user.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#add-email
-func (s *UsersService) AddEmail(opt *AddEmailOptions, options ...RequestOptionFunc) (*Email, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPost, "user/emails", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- e := new(Email)
- resp, err := s.client.Do(req, e)
- if err != nil {
- return nil, resp, err
- }
-
- return e, resp, err
-}
-
-// AddEmailForUser creates new email owned by specified user. Available only for
-// admin.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/users.html#add-email-for-user
-func (s *UsersService) AddEmailForUser(user int, opt *AddEmailOptions, options ...RequestOptionFunc) (*Email, *Response, error) {
- u := fmt.Sprintf("users/%d/emails", user)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- e := new(Email)
- resp, err := s.client.Do(req, e)
- if err != nil {
- return nil, resp, err
- }
-
- return e, resp, err
-}
-
-// 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/ce/api/users.html#delete-email-for-current-owner
-func (s *UsersService) DeleteEmail(email int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("user/emails/%d", email)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// DeleteEmailForUser deletes email owned by a specified user. Available only
-// for admin.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#delete-email-for-given-user
-func (s *UsersService) DeleteEmailForUser(user, email int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("users/%d/emails/%d", user, email)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// ImpersonationToken represents an impersonation token.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#get-all-impersonation-tokens-of-a-user
-type ImpersonationToken struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Active bool `json:"active"`
- Token string `json:"token"`
- Scopes []string `json:"scopes"`
- Revoked bool `json:"revoked"`
- CreatedAt *time.Time `json:"created_at"`
- ExpiresAt *ISOTime `json:"expires_at"`
-}
-
-// GetAllImpersonationTokensOptions represents the available
-// GetAllImpersonationTokens() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#get-all-impersonation-tokens-of-a-user
-type GetAllImpersonationTokensOptions struct {
- ListOptions
- State *string `url:"state,omitempty" json:"state,omitempty"`
-}
-
-// GetAllImpersonationTokens retrieves all impersonation tokens of a user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#get-all-impersonation-tokens-of-a-user
-func (s *UsersService) GetAllImpersonationTokens(user int, opt *GetAllImpersonationTokensOptions, options ...RequestOptionFunc) ([]*ImpersonationToken, *Response, error) {
- u := fmt.Sprintf("users/%d/impersonation_tokens", user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ts []*ImpersonationToken
- resp, err := s.client.Do(req, &ts)
- if err != nil {
- return nil, resp, err
- }
-
- return ts, resp, err
-}
-
-// GetImpersonationToken retrieves an impersonation token of a user.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#get-an-impersonation-token-of-a-user
-func (s *UsersService) GetImpersonationToken(user, token int, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error) {
- u := fmt.Sprintf("users/%d/impersonation_tokens/%d", user, token)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(ImpersonationToken)
- resp, err := s.client.Do(req, &t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// CreateImpersonationTokenOptions represents the available
-// CreateImpersonationToken() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#create-an-impersonation-token
-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"`
-}
-
-// CreateImpersonationToken creates an impersonation token.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#create-an-impersonation-token
-func (s *UsersService) CreateImpersonationToken(user int, opt *CreateImpersonationTokenOptions, options ...RequestOptionFunc) (*ImpersonationToken, *Response, error) {
- u := fmt.Sprintf("users/%d/impersonation_tokens", user)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(ImpersonationToken)
- resp, err := s.client.Do(req, &t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// RevokeImpersonationToken revokes an impersonation token.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#revoke-an-impersonation-token
-func (s *UsersService) RevokeImpersonationToken(user, token int, options ...RequestOptionFunc) (*Response, error) {
- u := fmt.Sprintf("users/%d/impersonation_tokens/%d", user, token)
-
- req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
- if err != nil {
- return nil, err
- }
-
- return s.client.Do(req, nil)
-}
-
-// PersonalAccessToken represents a personal access token.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/users.html#create-a-personal-access-token
-type PersonalAccessToken struct {
- ID int `json:"id"`
- Name string `json:"name"`
- Revoked bool `json:"revoked"`
- CreatedAt *time.Time `json:"created_at"`
- Scopes []string `json:"scopes"`
- UserID int `json:"user_id"`
- Active bool `json:"active"`
- ExpiresAt *ISOTime `json:"expires_at"`
- Token string `json:"token"`
-}
-
-// CreatePersonalAccessTokenOptions represents the available
-// CreatePersonalAccessToken() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/users.html#create-a-personal-access-token
-type CreatePersonalAccessTokenOptions struct {
- Name *string `url:"name,omitempty" json:"name,omitempty"`
- ExpiresAt *ISOTime `url:"expires_at,omitempty" json:"expires_at,omitempty"`
- Scopes []string `url:"scopes,omitempty" json:"scopes,omitempty"`
-}
-
-// CreatePersonalAccessToken creates a personal access token.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/users.html#create-a-personal-access-token
-func (s *UsersService) CreatePersonalAccessToken(user int, opt *CreatePersonalAccessTokenOptions, options ...RequestOptionFunc) (*PersonalAccessToken, *Response, error) {
- u := fmt.Sprintf("users/%d/personal_access_tokens", user)
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- t := new(PersonalAccessToken)
- resp, err := s.client.Do(req, &t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// UserActivity represents an entry in the user/activities response
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#get-user-activities-admin-only
-type UserActivity struct {
- Username string `json:"username"`
- LastActivityOn *ISOTime `json:"last_activity_on"`
-}
-
-// GetUserActivitiesOptions represents the options for GetUserActivities
-//
-// GitLap API docs:
-// https://docs.gitlab.com/ce/api/users.html#get-user-activities-admin-only
-type GetUserActivitiesOptions struct {
- ListOptions
- From *ISOTime `url:"from,omitempty" json:"from,omitempty"`
-}
-
-// GetUserActivities retrieves user activities (admin only)
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#get-user-activities-admin-only
-func (s *UsersService) GetUserActivities(opt *GetUserActivitiesOptions, options ...RequestOptionFunc) ([]*UserActivity, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "user/activities", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var t []*UserActivity
- resp, err := s.client.Do(req, &t)
- if err != nil {
- return nil, resp, err
- }
-
- return t, resp, err
-}
-
-// UserStatus represents the current status of a user
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#user-status
-type UserStatus struct {
- Emoji string `json:"emoji"`
- Message string `json:"message"`
- MessageHTML string `json:"message_html"`
-}
-
-// CurrentUserStatus retrieves the user status
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#user-status
-func (s *UsersService) CurrentUserStatus(options ...RequestOptionFunc) (*UserStatus, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "user/status", nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- status := new(UserStatus)
- resp, err := s.client.Do(req, status)
- if err != nil {
- return nil, resp, err
- }
-
- return status, resp, err
-}
-
-// GetUserStatus retrieves a user's status
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#get-the-status-of-a-user
-func (s *UsersService) GetUserStatus(user int, options ...RequestOptionFunc) (*UserStatus, *Response, error) {
- u := fmt.Sprintf("users/%d/status", user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- status := new(UserStatus)
- resp, err := s.client.Do(req, status)
- if err != nil {
- return nil, resp, err
- }
-
- return status, resp, err
-}
-
-// UserStatusOptions represents the options required to set the status
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#set-user-status
-type UserStatusOptions struct {
- Emoji *string `url:"emoji,omitempty" json:"emoji,omitempty"`
- Message *string `url:"message,omitempty" json:"message,omitempty"`
-}
-
-// SetUserStatus sets the user's status
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/users.html#set-user-status
-func (s *UsersService) SetUserStatus(opt *UserStatusOptions, options ...RequestOptionFunc) (*UserStatus, *Response, error) {
- req, err := s.client.NewRequest(http.MethodPut, "user/status", opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- status := new(UserStatus)
- resp, err := s.client.Do(req, status)
- if err != nil {
- return nil, resp, err
- }
-
- return status, resp, err
-}
-
-// UserMembership represents a membership of the user in a namespace or project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/users.html#user-memberships-admin-only
-type UserMembership struct {
- SourceID int `json:"source_id"`
- SourceName string `json:"source_name"`
- SourceType string `json:"source_type"`
- AccessLevel AccessLevelValue `json:"access_level"`
-}
-
-// GetUserMembershipOptions represents the options available to query user memberships.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/users.html#user-memberships-admin-only
-type GetUserMembershipOptions struct {
- ListOptions
- Type *string `url:"type,omitempty" json:"type,omitempty"`
-}
-
-// GetUserMemberships retrieves a list of the user's memberships.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/users.html#user-memberships-admin-only
-func (s *UsersService) GetUserMemberships(user int, opt *GetUserMembershipOptions, options ...RequestOptionFunc) ([]*UserMembership, *Response, error) {
- u := fmt.Sprintf("users/%d/memberships", user)
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var m []*UserMembership
- resp, err := s.client.Do(req, &m)
- if err != nil {
- return nil, resp, err
- }
-
- return m, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/validate.go b/vendor/github.com/xanzy/go-gitlab/validate.go
deleted file mode 100644
index 2ca7227871..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/validate.go
+++ /dev/null
@@ -1,140 +0,0 @@
-//
-// 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 (
- "fmt"
- "net/http"
-)
-
-// ValidateService handles communication with the validation related methods of
-// the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/lint.html
-type ValidateService struct {
- client *Client
-}
-
-// LintResult represents the linting results.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/lint.html
-type LintResult struct {
- Status string `json:"status"`
- Errors []string `json:"errors"`
- Warnings []string `json:"warnings"`
-}
-
-// ProjectLintResult represents the linting results by project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/lint.html#validate-a-projects-ci-configuration
-type ProjectLintResult struct {
- Valid bool `json:"valid"`
- Errors []string `json:"errors"`
- Warnings []string `json:"warnings"`
- MergedYaml string `json:"merged_yaml"`
-}
-
-// Lint validates .gitlab-ci.yml content.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/lint.html
-func (s *ValidateService) Lint(content string, options ...RequestOptionFunc) (*LintResult, *Response, error) {
- var opts struct {
- Content string `url:"content,omitempty" json:"content,omitempty"`
- }
- opts.Content = content
-
- req, err := s.client.NewRequest(http.MethodPost, "ci/lint", &opts, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(LintResult)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, nil
-}
-
-// ProjectNamespaceLintOptions represents the available ProjectNamespaceLint() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/lint.html#validate-a-ci-yaml-configuration-with-a-namespace
-type ProjectNamespaceLintOptions struct {
- Content *string `url:"content,omitempty" json:"content,omitempty"`
- DryRun *bool `url:"dry_run,omitempty" json:"dry_run,omitempty"`
-}
-
-// ProjectNamespaceLint validates .gitlab-ci.yml content by project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/lint.html#validate-a-ci-yaml-configuration-with-a-namespace
-func (s *ValidateService) ProjectNamespaceLint(pid interface{}, opt *ProjectNamespaceLintOptions, options ...RequestOptionFunc) (*ProjectLintResult, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/ci/lint", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, &opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(ProjectLintResult)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, nil
-}
-
-// ProjectLintOptions represents the available ProjectLint() options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/lint.html#validate-a-projects-ci-configuration
-type ProjectLintOptions struct {
- DryRun *bool `url:"dry_run,omitempty" json:"dry_run,omitempty"`
-}
-
-// ProjectLint validates .gitlab-ci.yml content by project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ee/api/lint.html#validate-a-projects-ci-configuration
-func (s *ValidateService) ProjectLint(pid interface{}, opt *ProjectLintOptions, options ...RequestOptionFunc) (*ProjectLintResult, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/ci/lint", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, &opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- l := new(ProjectLintResult)
- resp, err := s.client.Do(req, l)
- if err != nil {
- return nil, resp, err
- }
-
- return l, resp, nil
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/version.go b/vendor/github.com/xanzy/go-gitlab/version.go
deleted file mode 100644
index 1a7766e842..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/version.go
+++ /dev/null
@@ -1,58 +0,0 @@
-//
-// Copyright 2021, Andrea Funto'
-//
-// 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 "net/http"
-
-// VersionService handles communication with the GitLab server instance to
-// retrieve its version information via the GitLab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/version.md
-type VersionService struct {
- client *Client
-}
-
-// Version represents a GitLab instance version.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/version.md
-type Version struct {
- Version string `json:"version"`
- Revision string `json:"revision"`
-}
-
-func (s Version) String() string {
- return Stringify(s)
-}
-
-// GetVersion gets a GitLab server instance version; it is only available to
-// authenticated users.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/version.md
-func (s *VersionService) GetVersion() (*Version, *Response, error) {
- req, err := s.client.NewRequest(http.MethodGet, "version", nil, nil)
- if err != nil {
- return nil, nil, err
- }
-
- v := new(Version)
- resp, err := s.client.Do(req, v)
- if err != nil {
- return nil, resp, err
- }
-
- return v, resp, err
-}
diff --git a/vendor/github.com/xanzy/go-gitlab/wikis.go b/vendor/github.com/xanzy/go-gitlab/wikis.go
deleted file mode 100644
index 7437cc3c7e..0000000000
--- a/vendor/github.com/xanzy/go-gitlab/wikis.go
+++ /dev/null
@@ -1,194 +0,0 @@
-//
-// Copyright 2021, Stany MARCEL
-//
-// 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"
- "net/url"
-)
-
-// WikisService handles communication with the wikis related methods of
-// the Gitlab API.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/wikis.html
-type WikisService struct {
- client *Client
-}
-
-// Wiki represents a GitLab wiki.
-//
-// GitLab API docs: https://docs.gitlab.com/ce/api/wikis.html
-type Wiki struct {
- Content string `json:"content"`
- Format WikiFormatValue `json:"format"`
- Slug string `json:"slug"`
- Title string `json:"title"`
-}
-
-func (w Wiki) String() string {
- return Stringify(w)
-}
-
-// ListWikisOptions represents the available ListWikis options.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/wikis.html#list-wiki-pages
-type ListWikisOptions struct {
- WithContent *bool `url:"with_content,omitempty" json:"with_content,omitempty"`
-}
-
-// 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/ce/api/wikis.html#list-wiki-pages
-func (s *WikisService) ListWikis(pid interface{}, opt *ListWikisOptions, options ...RequestOptionFunc) ([]*Wiki, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/wikis", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodGet, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- var ws []*Wiki
- resp, err := s.client.Do(req, &ws)
- if err != nil {
- return nil, resp, err
- }
-
- return ws, resp, err
-}
-
-// GetWikiPage gets a wiki page for a given project.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/wikis.html#get-a-wiki-page
-func (s *WikisService) GetWikiPage(pid interface{}, slug string, options ...RequestOptionFunc) (*Wiki, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/wikis/%s", pathEscape(project), url.PathEscape(slug))
-
- req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
- if err != nil {
- return nil, nil, err
- }
-
- w := new(Wiki)
- resp, err := s.client.Do(req, w)
- if err != nil {
- return nil, resp, err
- }
-
- return w, resp, err
-}
-
-// CreateWikiPageOptions represents options to CreateWikiPage.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/wikis.html#create-a-new-wiki-page
-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"`
-}
-
-// CreateWikiPage creates a new wiki page for the given repository with
-// the given title, slug, and content.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/wikis.html#create-a-new-wiki-page
-func (s *WikisService) CreateWikiPage(pid interface{}, opt *CreateWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/wikis", pathEscape(project))
-
- req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- w := new(Wiki)
- resp, err := s.client.Do(req, w)
- if err != nil {
- return nil, resp, err
- }
-
- return w, resp, err
-}
-
-// EditWikiPageOptions represents options to EditWikiPage.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/wikis.html#edit-an-existing-wiki-page
-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"`
-}
-
-// EditWikiPage Updates an existing wiki page. At least one parameter is
-// required to update the wiki page.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/wikis.html#edit-an-existing-wiki-page
-func (s *WikisService) EditWikiPage(pid interface{}, slug string, opt *EditWikiPageOptions, options ...RequestOptionFunc) (*Wiki, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/wikis/%s", pathEscape(project), url.PathEscape(slug))
-
- req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
- if err != nil {
- return nil, nil, err
- }
-
- w := new(Wiki)
- resp, err := s.client.Do(req, w)
- if err != nil {
- return nil, resp, err
- }
-
- return w, resp, err
-}
-
-// DeleteWikiPage deletes a wiki page with a given slug.
-//
-// GitLab API docs:
-// https://docs.gitlab.com/ce/api/wikis.html#delete-a-wiki-page
-func (s *WikisService) DeleteWikiPage(pid interface{}, slug string, options ...RequestOptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/wikis/%s", pathEscape(project), url.PathEscape(slug))
-
- 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/ssh-agent/.gitignore b/vendor/github.com/xanzy/ssh-agent/.gitignore
deleted file mode 100644
index daf913b1b3..0000000000
--- a/vendor/github.com/xanzy/ssh-agent/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-# Compiled Object files, Static and Dynamic libs (Shared Objects)
-*.o
-*.a
-*.so
-
-# Folders
-_obj
-_test
-
-# Architecture specific extensions/prefixes
-*.[568vq]
-[568vq].out
-
-*.cgo1.go
-*.cgo2.c
-_cgo_defun.c
-_cgo_gotypes.go
-_cgo_export.*
-
-_testmain.go
-
-*.exe
-*.test
-*.prof
diff --git a/vendor/github.com/xanzy/ssh-agent/LICENSE b/vendor/github.com/xanzy/ssh-agent/LICENSE
deleted file mode 100644
index 8f71f43fee..0000000000
--- a/vendor/github.com/xanzy/ssh-agent/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- 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.
-
diff --git a/vendor/github.com/xanzy/ssh-agent/README.md b/vendor/github.com/xanzy/ssh-agent/README.md
deleted file mode 100644
index d93af40a0c..0000000000
--- a/vendor/github.com/xanzy/ssh-agent/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# ssh-agent
-
-Create a new [agent.Agent](https://godoc.org/golang.org/x/crypto/ssh/agent#Agent) on any type of OS (so including Windows) from any [Go](https://golang.org) application.
-
-## Limitations
-
-When compiled for Windows, it will only support [Pageant](http://the.earth.li/~sgtatham/putty/0.66/htmldoc/Chapter9.html#pageant) as the SSH authentication agent.
-
-## Credits
-
-Big thanks to [Давид Мзареулян (David Mzareulyan)](https://github.com/davidmz) for creating the [go-pageant](https://github.com/davidmz/go-pageant) package!
-
-## Issues
-
-If you have an issue: report it on the [issue tracker](https://github.com/xanzy/ssh-agent/issues)
-
-## Author
-
-Sander van Harmelen (<sander@xanzy.io>)
-
-## License
-
-The files `pageant_windows.go` and `sshagent_windows.go` have their own license (see file headers). The rest of this package is 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>
diff --git a/vendor/github.com/xanzy/ssh-agent/go.mod b/vendor/github.com/xanzy/ssh-agent/go.mod
deleted file mode 100644
index 80eaca0f6e..0000000000
--- a/vendor/github.com/xanzy/ssh-agent/go.mod
+++ /dev/null
@@ -1,6 +0,0 @@
-module github.com/xanzy/ssh-agent
-
-require (
- github.com/Microsoft/go-winio v0.4.14
- golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2
-)
diff --git a/vendor/github.com/xanzy/ssh-agent/go.sum b/vendor/github.com/xanzy/ssh-agent/go.sum
deleted file mode 100644
index e221368f32..0000000000
--- a/vendor/github.com/xanzy/ssh-agent/go.sum
+++ /dev/null
@@ -1,16 +0,0 @@
-github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
-github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2 h1:NwxKRvbkH5MsNkvOtPZi3/3kmI8CAzs3mtv+GLQMkNo=
-golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0 h1:bzeyCHgoAyjZjAhvTpks+qM7sdlh4cCSitmXeCEO3B4=
-golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b h1:ag/x1USPSsqHud38I9BAC88qdNLDHHtQ4mlgQIZPPNA=
-golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
diff --git a/vendor/github.com/xanzy/ssh-agent/pageant_windows.go b/vendor/github.com/xanzy/ssh-agent/pageant_windows.go
deleted file mode 100644
index 21d3cba2a5..0000000000
--- a/vendor/github.com/xanzy/ssh-agent/pageant_windows.go
+++ /dev/null
@@ -1,143 +0,0 @@
-//
-// Copyright (c) 2014 David Mzareulyan
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-// and associated documentation files (the "Software"), to deal in the Software without restriction,
-// including without limitation the rights to use, copy, modify, merge, publish, distribute,
-// sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all copies or substantial
-// portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-// BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-// +build windows
-
-package sshagent
-
-// see https://github.com/Yasushi/putty/blob/master/windows/winpgntc.c#L155
-// see https://github.com/paramiko/paramiko/blob/master/paramiko/win_pageant.py
-
-import (
- "encoding/binary"
- "errors"
- "fmt"
- "sync"
- "syscall"
- "unsafe"
-)
-
-// Maximum size of message can be sent to pageant
-const MaxMessageLen = 8192
-
-var (
- ErrPageantNotFound = errors.New("pageant process not found")
- ErrSendMessage = errors.New("error sending message")
-
- ErrMessageTooLong = errors.New("message too long")
- ErrInvalidMessageFormat = errors.New("invalid message format")
- ErrResponseTooLong = errors.New("response too long")
-)
-
-const (
- agentCopydataID = 0x804e50ba
- wmCopydata = 74
-)
-
-type copyData struct {
- dwData uintptr
- cbData uint32
- lpData unsafe.Pointer
-}
-
-var (
- lock sync.Mutex
-
- winFindWindow = winAPI("user32.dll", "FindWindowW")
- winGetCurrentThreadID = winAPI("kernel32.dll", "GetCurrentThreadId")
- winSendMessage = winAPI("user32.dll", "SendMessageW")
-)
-
-func winAPI(dllName, funcName string) func(...uintptr) (uintptr, uintptr, error) {
- proc := syscall.MustLoadDLL(dllName).MustFindProc(funcName)
- return func(a ...uintptr) (uintptr, uintptr, error) { return proc.Call(a...) }
-}
-
-// Query sends message msg to Pageant and returns response or error.
-// 'msg' is raw agent request with length prefix
-// Response is raw agent response with length prefix
-func query(msg []byte) ([]byte, error) {
- if len(msg) > MaxMessageLen {
- return nil, ErrMessageTooLong
- }
-
- msgLen := binary.BigEndian.Uint32(msg[:4])
- if len(msg) != int(msgLen)+4 {
- return nil, ErrInvalidMessageFormat
- }
-
- lock.Lock()
- defer lock.Unlock()
-
- paWin := pageantWindow()
-
- if paWin == 0 {
- return nil, ErrPageantNotFound
- }
-
- thID, _, _ := winGetCurrentThreadID()
- mapName := fmt.Sprintf("PageantRequest%08x", thID)
- pMapName, _ := syscall.UTF16PtrFromString(mapName)
-
- mmap, err := syscall.CreateFileMapping(syscall.InvalidHandle, nil, syscall.PAGE_READWRITE, 0, MaxMessageLen+4, pMapName)
- if err != nil {
- return nil, err
- }
- defer syscall.CloseHandle(mmap)
-
- ptr, err := syscall.MapViewOfFile(mmap, syscall.FILE_MAP_WRITE, 0, 0, 0)
- if err != nil {
- return nil, err
- }
- defer syscall.UnmapViewOfFile(ptr)
-
- mmSlice := (*(*[MaxMessageLen]byte)(unsafe.Pointer(ptr)))[:]
-
- copy(mmSlice, msg)
-
- mapNameBytesZ := append([]byte(mapName), 0)
-
- cds := copyData{
- dwData: agentCopydataID,
- cbData: uint32(len(mapNameBytesZ)),
- lpData: unsafe.Pointer(&(mapNameBytesZ[0])),
- }
-
- resp, _, _ := winSendMessage(paWin, wmCopydata, 0, uintptr(unsafe.Pointer(&cds)))
-
- if resp == 0 {
- return nil, ErrSendMessage
- }
-
- respLen := binary.BigEndian.Uint32(mmSlice[:4])
- if respLen > MaxMessageLen-4 {
- return nil, ErrResponseTooLong
- }
-
- respData := make([]byte, respLen+4)
- copy(respData, mmSlice)
-
- return respData, nil
-}
-
-func pageantWindow() uintptr {
- nameP, _ := syscall.UTF16PtrFromString("Pageant")
- h, _, _ := winFindWindow(uintptr(unsafe.Pointer(nameP)), uintptr(unsafe.Pointer(nameP)))
- return h
-}
diff --git a/vendor/github.com/xanzy/ssh-agent/sshagent.go b/vendor/github.com/xanzy/ssh-agent/sshagent.go
deleted file mode 100644
index 259fea2b63..0000000000
--- a/vendor/github.com/xanzy/ssh-agent/sshagent.go
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// Copyright 2015, 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.
-//
-
-// +build !windows
-
-package sshagent
-
-import (
- "errors"
- "fmt"
- "net"
- "os"
-
- "golang.org/x/crypto/ssh/agent"
-)
-
-// New returns a new agent.Agent that uses a unix socket
-func New() (agent.Agent, net.Conn, error) {
- if !Available() {
- return nil, nil, errors.New("SSH agent requested but SSH_AUTH_SOCK not-specified")
- }
-
- sshAuthSock := os.Getenv("SSH_AUTH_SOCK")
-
- conn, err := net.Dial("unix", sshAuthSock)
- if err != nil {
- return nil, nil, fmt.Errorf("Error connecting to SSH_AUTH_SOCK: %v", err)
- }
-
- return agent.NewClient(conn), conn, nil
-}
-
-// Available returns true is a auth socket is defined
-func Available() bool {
- return os.Getenv("SSH_AUTH_SOCK") != ""
-}
diff --git a/vendor/github.com/xanzy/ssh-agent/sshagent_windows.go b/vendor/github.com/xanzy/ssh-agent/sshagent_windows.go
deleted file mode 100644
index ca77e6a965..0000000000
--- a/vendor/github.com/xanzy/ssh-agent/sshagent_windows.go
+++ /dev/null
@@ -1,103 +0,0 @@
-//
-// Copyright (c) 2014 David Mzareulyan
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-// and associated documentation files (the "Software"), to deal in the Software without restriction,
-// including without limitation the rights to use, copy, modify, merge, publish, distribute,
-// sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all copies or substantial
-// portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-// BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-// +build windows
-
-package sshagent
-
-import (
- "errors"
- "io"
- "net"
- "sync"
-
- "github.com/Microsoft/go-winio"
- "golang.org/x/crypto/ssh/agent"
-)
-
-const (
- sshAgentPipe = `\\.\pipe\openssh-ssh-agent`
-)
-
-// Available returns true if Pageant is running
-func Available() bool {
- if pageantWindow() != 0 {
- return true
- }
- conn, err := winio.DialPipe(sshAgentPipe, nil)
- if err != nil {
- return false
- }
- conn.Close()
- return true
-}
-
-// New returns a new agent.Agent and the (custom) connection it uses
-// to communicate with a running pagent.exe instance (see README.md)
-func New() (agent.Agent, net.Conn, error) {
- if pageantWindow() != 0 {
- return agent.NewClient(&conn{}), nil, nil
- }
- conn, err := winio.DialPipe(sshAgentPipe, nil)
- if err != nil {
- return nil, nil, errors.New(
- "SSH agent requested, but could not detect Pageant or Windows native SSH agent",
- )
- }
- return agent.NewClient(conn), nil, nil
-}
-
-type conn struct {
- sync.Mutex
- buf []byte
-}
-
-func (c *conn) Close() {
- c.Lock()
- defer c.Unlock()
- c.buf = nil
-}
-
-func (c *conn) Write(p []byte) (int, error) {
- c.Lock()
- defer c.Unlock()
-
- resp, err := query(p)
- if err != nil {
- return 0, err
- }
-
- c.buf = append(c.buf, resp...)
-
- return len(p), nil
-}
-
-func (c *conn) Read(p []byte) (int, error) {
- c.Lock()
- defer c.Unlock()
-
- if len(c.buf) == 0 {
- return 0, io.EOF
- }
-
- n := copy(p, c.buf)
- c.buf = c.buf[n:]
-
- return n, nil
-}