Commit bfe097b8 authored by Johan Brandhorst's avatar Johan Brandhorst Committed by Sander van Harmelen

Add ability to paginate build variables (#158)

parent b79e5bf6
...@@ -8,14 +8,14 @@ import ( ...@@ -8,14 +8,14 @@ import (
// BuildVariablesService handles communication with the project variables related methods // BuildVariablesService handles communication with the project variables related methods
// of the Gitlab API // of the Gitlab API
// //
// Gitlab API Docs : https://docs.gitlab.com/ce/api/build_variables.html // Gitlab API Docs : https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/build_variables.md
type BuildVariablesService struct { type BuildVariablesService struct {
client *Client client *Client
} }
// BuildVariable represents a variable available for each build of the given project // BuildVariable represents a variable available for each build of the given project
// //
// Gitlab API Docs : https://docs.gitlab.com/ce/api/build_variables.html // Gitlab API Docs : https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/build_variables.md
type BuildVariable struct { type BuildVariable struct {
Key string `json:"key"` Key string `json:"key"`
Value string `json:"value"` Value string `json:"value"`
...@@ -25,18 +25,26 @@ func (v BuildVariable) String() string { ...@@ -25,18 +25,26 @@ func (v BuildVariable) String() string {
return Stringify(v) return Stringify(v)
} }
// ListBuildVariablesOptions are the parameters to ListBuildVariables()
//
// Gitlab API Docs:
// https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/build_variables.md#list-project-variables
type ListBuildVariablesOptions struct {
ListOptions
}
// ListBuildVariables gets the a list of project variables in a project // ListBuildVariables gets the a list of project variables in a project
// //
// Gitlab API Docs: // Gitlab API Docs:
// https://docs.gitlab.com/ce/api/build_variables.html#list-project-variables // https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/build_variables.md#list-project-variables
func (s *BuildVariablesService) ListBuildVariables(pid interface{}, options ...OptionFunc) ([]*BuildVariable, *Response, error) { func (s *BuildVariablesService) ListBuildVariables(pid interface{}, opts *ListBuildVariablesOptions, options ...OptionFunc) ([]*BuildVariable, *Response, error) {
project, err := parseID(pid) project, err := parseID(pid)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
u := fmt.Sprintf("projects/%s/variables", url.QueryEscape(project)) u := fmt.Sprintf("projects/%s/variables", url.QueryEscape(project))
req, err := s.client.NewRequest("GET", u, nil, options) req, err := s.client.NewRequest("GET", u, opts, options)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
...@@ -53,7 +61,7 @@ func (s *BuildVariablesService) ListBuildVariables(pid interface{}, options ...O ...@@ -53,7 +61,7 @@ func (s *BuildVariablesService) ListBuildVariables(pid interface{}, options ...O
// GetBuildVariable gets a single project variable of a project // GetBuildVariable gets a single project variable of a project
// //
// Gitlab API Docs: // Gitlab API Docs:
// https://docs.gitlab.com/ce/api/build_variables.html#show-variable-details // https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/build_variables.md#show-variable-details
func (s *BuildVariablesService) GetBuildVariable(pid interface{}, key string, options ...OptionFunc) (*BuildVariable, *Response, error) { func (s *BuildVariablesService) GetBuildVariable(pid interface{}, key string, options ...OptionFunc) (*BuildVariable, *Response, error) {
project, err := parseID(pid) project, err := parseID(pid)
if err != nil { if err != nil {
...@@ -78,7 +86,7 @@ func (s *BuildVariablesService) GetBuildVariable(pid interface{}, key string, op ...@@ -78,7 +86,7 @@ func (s *BuildVariablesService) GetBuildVariable(pid interface{}, key string, op
// CreateBuildVariable creates a variable for a given project // CreateBuildVariable creates a variable for a given project
// //
// Gitlab API Docs: // Gitlab API Docs:
// https://docs.gitlab.com/ce/api/build_variables.html#create-variable // https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/build_variables.md#create-variable
func (s *BuildVariablesService) CreateBuildVariable(pid interface{}, key, value string, options ...OptionFunc) (*BuildVariable, *Response, error) { func (s *BuildVariablesService) CreateBuildVariable(pid interface{}, key, value string, options ...OptionFunc) (*BuildVariable, *Response, error) {
project, err := parseID(pid) project, err := parseID(pid)
if err != nil { if err != nil {
...@@ -104,7 +112,7 @@ func (s *BuildVariablesService) CreateBuildVariable(pid interface{}, key, value ...@@ -104,7 +112,7 @@ func (s *BuildVariablesService) CreateBuildVariable(pid interface{}, key, value
// The variable key must exist // The variable key must exist
// //
// Gitlab API Docs: // Gitlab API Docs:
// https://docs.gitlab.com/ce/api/build_variables.html#update-variable // https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/build_variables.md#update-variable
func (s *BuildVariablesService) UpdateBuildVariable(pid interface{}, key, value string, options ...OptionFunc) (*BuildVariable, *Response, error) { func (s *BuildVariablesService) UpdateBuildVariable(pid interface{}, key, value string, options ...OptionFunc) (*BuildVariable, *Response, error) {
project, err := parseID(pid) project, err := parseID(pid)
if err != nil { if err != nil {
...@@ -129,7 +137,7 @@ func (s *BuildVariablesService) UpdateBuildVariable(pid interface{}, key, value ...@@ -129,7 +137,7 @@ func (s *BuildVariablesService) UpdateBuildVariable(pid interface{}, key, value
// RemoveBuildVariable removes a project variable of a given project identified by its key // RemoveBuildVariable removes a project variable of a given project identified by its key
// //
// Gitlab API Docs: // Gitlab API Docs:
// https://docs.gitlab.com/ce/api/build_variables.html#remove-variable // https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/build_variables.md#remove-variable
func (s *BuildVariablesService) RemoveBuildVariable(pid interface{}, key string, options ...OptionFunc) (*Response, error) { func (s *BuildVariablesService) RemoveBuildVariable(pid interface{}, key string, options ...OptionFunc) (*Response, error) {
project, err := parseID(pid) project, err := parseID(pid)
if err != nil { if err != nil {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment