From 12776fee5ec85ea477a79d9ff2d0ea8ebd220d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kim=20=22BKC=22=20Carlb=C3=A4cker?= Date: Fri, 23 Sep 2016 05:44:04 +0200 Subject: [PATCH] More Repo Collaborator Endpoints --- repo_collaborator.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/repo_collaborator.go b/repo_collaborator.go index 2a0052d..c382bc7 100644 --- a/repo_collaborator.go +++ b/repo_collaborator.go @@ -10,10 +10,20 @@ import ( "fmt" ) +type Collaborator struct { + *User + Permissions Permission `json:"permissions"` +} + type AddCollaboratorOption struct { Permission *string `json:"permission"` } +func (c *Client) ListCollaborator(user, repo string) ([]*Collaborator, error) { + collabs := make([]*Collaborator, 0, 10) + return collabs, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/collaborators", user, repo), nil, nil, &collabs) +} + func (c *Client) AddCollaborator(user, repo, collaborator string, opt AddCollaboratorOption) error { body, err := json.Marshal(&opt) if err != nil { @@ -22,3 +32,13 @@ func (c *Client) AddCollaborator(user, repo, collaborator string, opt AddCollabo _, err = c.getResponse("PUT", fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator), nil, bytes.NewReader(body)) return err } + +func (c *Client) DeleteCollaborator(user, repo, collaborator string) error { + _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator), nil, nil) + return err +} + +func (c *Client) IsCollaborator(user, repo, collaborator string) error { + _, err := c.getResponse("GET", fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator), nil, nil) + return err +}