mirror of
https://github.com/GoogleContainerTools/kaniko.git
synced 2026-05-16 13:20:33 +00:00
ae81657484
Copied over the release script from skaffold to get all new PRs that have been merged for the CHANGELOG. Ran dep ensure.
86 lines
2.7 KiB
Go
86 lines
2.7 KiB
Go
// Copyright 2013 The go-github AUTHORS. All rights reserved.
|
|
//
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package github
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
)
|
|
|
|
// ListAssignees fetches all available assignees (owners and collaborators) to
|
|
// which issues may be assigned.
|
|
//
|
|
// GitHub API docs: https://developer.github.com/v3/issues/assignees/#list-assignees
|
|
func (s *IssuesService) ListAssignees(ctx context.Context, owner, repo string, opt *ListOptions) ([]*User, *Response, error) {
|
|
u := fmt.Sprintf("repos/%v/%v/assignees", owner, repo)
|
|
u, err := addOptions(u, opt)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
req, err := s.client.NewRequest("GET", u, nil)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
var assignees []*User
|
|
resp, err := s.client.Do(ctx, req, &assignees)
|
|
if err != nil {
|
|
return nil, resp, err
|
|
}
|
|
|
|
return assignees, resp, nil
|
|
}
|
|
|
|
// IsAssignee checks if a user is an assignee for the specified repository.
|
|
//
|
|
// GitHub API docs: https://developer.github.com/v3/issues/assignees/#check-assignee
|
|
func (s *IssuesService) IsAssignee(ctx context.Context, owner, repo, user string) (bool, *Response, error) {
|
|
u := fmt.Sprintf("repos/%v/%v/assignees/%v", owner, repo, user)
|
|
req, err := s.client.NewRequest("GET", u, nil)
|
|
if err != nil {
|
|
return false, nil, err
|
|
}
|
|
resp, err := s.client.Do(ctx, req, nil)
|
|
assignee, err := parseBoolResponse(err)
|
|
return assignee, resp, err
|
|
}
|
|
|
|
// AddAssignees adds the provided GitHub users as assignees to the issue.
|
|
//
|
|
// GitHub API docs: https://developer.github.com/v3/issues/assignees/#add-assignees-to-an-issue
|
|
func (s *IssuesService) AddAssignees(ctx context.Context, owner, repo string, number int, assignees []string) (*Issue, *Response, error) {
|
|
users := &struct {
|
|
Assignees []string `json:"assignees,omitempty"`
|
|
}{Assignees: assignees}
|
|
u := fmt.Sprintf("repos/%v/%v/issues/%v/assignees", owner, repo, number)
|
|
req, err := s.client.NewRequest("POST", u, users)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
issue := &Issue{}
|
|
resp, err := s.client.Do(ctx, req, issue)
|
|
return issue, resp, err
|
|
}
|
|
|
|
// RemoveAssignees removes the provided GitHub users as assignees from the issue.
|
|
//
|
|
// GitHub API docs: https://developer.github.com/v3/issues/assignees/#remove-assignees-from-an-issue
|
|
func (s *IssuesService) RemoveAssignees(ctx context.Context, owner, repo string, number int, assignees []string) (*Issue, *Response, error) {
|
|
users := &struct {
|
|
Assignees []string `json:"assignees,omitempty"`
|
|
}{Assignees: assignees}
|
|
u := fmt.Sprintf("repos/%v/%v/issues/%v/assignees", owner, repo, number)
|
|
req, err := s.client.NewRequest("DELETE", u, users)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
issue := &Issue{}
|
|
resp, err := s.client.Do(ctx, req, issue)
|
|
return issue, resp, err
|
|
}
|