aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/xanzy/go-gitlab/applications.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/xanzy/go-gitlab/applications.go')
-rw-r--r--vendor/github.com/xanzy/go-gitlab/applications.go100
1 files changed, 100 insertions, 0 deletions
diff --git a/vendor/github.com/xanzy/go-gitlab/applications.go b/vendor/github.com/xanzy/go-gitlab/applications.go
new file mode 100644
index 0000000000..1436ed011c
--- /dev/null
+++ b/vendor/github.com/xanzy/go-gitlab/applications.go
@@ -0,0 +1,100 @@
+//
+// Copyright 2017, 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"
+
+// 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
+}
+
+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("POST", "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
+}
+
+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("GET", "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("DELETE", u, nil, options)
+ if err != nil {
+ return nil, err
+ }
+
+ return s.client.Do(req, nil)
+}