123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- package gitlab
- import (
- "fmt"
- "net/url"
- "time"
- )
- type PipelineTriggersService struct {
- client *Client
- }
- 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"`
- }
- type ListPipelineTriggersOptions ListOptions
- func (s *PipelineTriggersService) ListPipelineTriggers(pid interface{}, opt *ListPipelineTriggersOptions, options ...OptionFunc) ([]*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers", url.QueryEscape(project))
- req, err := s.client.NewRequest("GET", 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
- }
- func (s *PipelineTriggersService) GetPipelineTrigger(pid interface{}, trigger int, options ...OptionFunc) (*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers/%d", url.QueryEscape(project), trigger)
- req, err := s.client.NewRequest("GET", 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
- }
- type AddPipelineTriggerOptions struct {
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- }
- func (s *PipelineTriggersService) AddPipelineTrigger(pid interface{}, opt *AddPipelineTriggerOptions, options ...OptionFunc) (*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers", url.QueryEscape(project))
- req, err := s.client.NewRequest("POST", 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
- }
- type EditPipelineTriggerOptions struct {
- Description *string `url:"description,omitempty" json:"description,omitempty"`
- }
- func (s *PipelineTriggersService) EditPipelineTrigger(pid interface{}, trigger int, opt *EditPipelineTriggerOptions, options ...OptionFunc) (*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers/%d", url.QueryEscape(project), trigger)
- req, err := s.client.NewRequest("PUT", 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
- }
- func (s *PipelineTriggersService) TakeOwnershipOfPipelineTrigger(pid interface{}, trigger int, options ...OptionFunc) (*PipelineTrigger, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers/%d/take_ownership", url.QueryEscape(project), trigger)
- req, err := s.client.NewRequest("POST", 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
- }
- func (s *PipelineTriggersService) DeletePipelineTrigger(pid interface{}, trigger int, options ...OptionFunc) (*Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, err
- }
- u := fmt.Sprintf("projects/%s/triggers/%d", url.QueryEscape(project), trigger)
- req, err := s.client.NewRequest("DELETE", u, nil, options)
- if err != nil {
- return nil, err
- }
- return s.client.Do(req, nil)
- }
- 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"`
- }
- func (s *PipelineTriggersService) RunPipelineTrigger(pid interface{}, opt *RunPipelineTriggerOptions, options ...OptionFunc) (*Pipeline, *Response, error) {
- project, err := parseID(pid)
- if err != nil {
- return nil, nil, err
- }
- u := fmt.Sprintf("projects/%s/trigger/pipeline", url.QueryEscape(project))
- req, err := s.client.NewRequest("POST", 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
- }
|