summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/xanzy/go-gitlab/deployments.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/xanzy/go-gitlab/deployments.go')
-rw-r--r--vendor/github.com/xanzy/go-gitlab/deployments.go80
1 files changed, 76 insertions, 4 deletions
diff --git a/vendor/github.com/xanzy/go-gitlab/deployments.go b/vendor/github.com/xanzy/go-gitlab/deployments.go
index 8041ce9211..251cded825 100644
--- a/vendor/github.com/xanzy/go-gitlab/deployments.go
+++ b/vendor/github.com/xanzy/go-gitlab/deployments.go
@@ -67,14 +67,18 @@ type Deployment struct {
// 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"`
+ OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
+ Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
+ UpdatedAfter *time.Time `url:"updated_after,omitempty" json:"updated_after,omitempty"`
+ UpdatedBefore *time.Time `url:"update_before,omitempty" json:"updated_before,omitempty"`
+ Environment *string `url:"environment,omitempty" json:"environment,omitempty"`
+ Status *string `url:"status,omitempty" json:"status,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 ...OptionFunc) ([]*Deployment, *Response, error) {
+func (s *DeploymentsService) ListProjectDeployments(pid interface{}, opts *ListProjectDeploymentsOptions, options ...RequestOptionFunc) ([]*Deployment, *Response, error) {
project, err := parseID(pid)
if err != nil {
return nil, nil, err
@@ -98,7 +102,7 @@ func (s *DeploymentsService) ListProjectDeployments(pid interface{}, opts *ListP
// 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 ...OptionFunc) (*Deployment, *Response, error) {
+func (s *DeploymentsService) GetProjectDeployment(pid interface{}, deployment int, options ...RequestOptionFunc) (*Deployment, *Response, error) {
project, err := parseID(pid)
if err != nil {
return nil, nil, err
@@ -118,3 +122,71 @@ func (s *DeploymentsService) GetProjectDeployment(pid interface{}, deployment in
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("POST", 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("PUT", 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
+}