Skip to content
This repository was archived by the owner on Jun 8, 2019. It is now read-only.

Commit d32b721

Browse files
committed
manage team's members/repositories
1 parent 955dddd commit d32b721

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

gitea/org_team.go

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55

66
package gitea
77

8+
import (
9+
"bytes"
10+
"encoding/json"
11+
"fmt"
12+
)
13+
814
// Team represents a team in an organization
915
type Team struct {
1016
ID int64 `json:"id"`
@@ -38,3 +44,69 @@ type EditTeamOption struct {
3844
// enum: repo.code,repo.issues,repo.ext_issues,repo.wiki,repo.pulls,repo.releases,repo.ext_wiki
3945
Units []string `json:"units"`
4046
}
47+
48+
// ListOrgTeams list all teams of an organization
49+
func (c *Client) ListOrgTeams(orgname string) ([]*Team, error) {
50+
teams := make([]*Team, 0, 0)
51+
return teams, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/teams", orgname), nil, nil, &teams)
52+
}
53+
54+
// CreateTeam creates a new team
55+
func (c *Client) CreateTeam(orgname string, opt CreateTeamOption) (*Team, error) {
56+
team := new(Team)
57+
return team, c.getParsedResponse("POST", fmt.Sprintf("/orgs/%s/teams", orgname), jsonHeader, opt, team)
58+
}
59+
60+
// GetTeam gets a team by team ID
61+
func (c *Client) GetTeam(teamID int64) (*Team, error) {
62+
team := new(Team)
63+
return team, c.getParsedResponse("GET", fmt.Sprintf("/teams/%d", teamID), nil, nil, team)
64+
}
65+
66+
// DeleteTeam delete a team by team ID
67+
func (c *Client) DeleteTeam(teamID int64) error {
68+
_, err := c.getResponse("DELETE", fmt.Sprintf("/teams/%d", teamID), nil, nil)
69+
return err
70+
}
71+
72+
// EditTeam modify a team via options
73+
func (c *Client) EditTeam(teamID int64, opt EditTeamOption) error {
74+
_, err = c.getResponse("PATCH", fmt.Sprintf("/teams/%d", teamID), jsonHeader, opt)
75+
return err
76+
}
77+
78+
// ListTeamMembers list all members of a team
79+
func (c *Client) ListTeamMembers(teamID int64) ([]*User, error) {
80+
users := make([]*User, 0, 0)
81+
return users, c.getParsedResponse("GET", fmt.Sprintf("/teams/%d/members", teamID), nil, nil, &users)
82+
}
83+
84+
// AddTeamMember adds a member to a team
85+
func (c *Client) AddTeamMember(teamID int64, username string) error {
86+
_, err := c.getResponse("PUT", fmt.Sprintf("/teams/%d/members/%s", teamID, username), nil, nil)
87+
return err
88+
}
89+
90+
// RemoveTeamMember removes a member from a team
91+
func (c *Client) RemoveTeamMember(teamID int64, username string) error {
92+
_, err := c.getResponse("DELETE", fmt.Sprintf("/teams/%d/members/%s", teamID, username), nil, nil)
93+
return err
94+
}
95+
96+
// ListTeamRepos list all members of a team
97+
func (c *Client) ListTeamRepos(teamID int64) ([]*Repository, error) {
98+
repos := make([]*Repository, 0, 0)
99+
return repos, c.getParsedResponse("GET", fmt.Sprintf("/teams/%d/repos", teamID), nil, nil, &repos)
100+
}
101+
102+
// AddTeamRepo adds a repository to a team
103+
func (c *Client) AddTeamRepo(teamID int64, org, repo string) error {
104+
_, err := c.getResponse("PUT", fmt.Sprintf("/teams/%d/repos/%s/%s", teamID, org, repo), nil, nil)
105+
return err
106+
}
107+
108+
// RemoveTeamRepo removes a repository from a team
109+
func (c *Client) RemoveTeamRepo(teamID int64, org, repo string) error {
110+
_, err := c.getResponse("DELETE", fmt.Sprintf("/teams/%d/repos/%s/%s", teamID, org, repo), nil, nil)
111+
return err
112+
}

0 commit comments

Comments
 (0)