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

Commit 0d4947e

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

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

gitea/org_team.go

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

66
package gitea
77

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

0 commit comments

Comments
 (0)