Class TeamsClient

java.lang.Object
ink.icoding.github4j.GithubClient
ink.icoding.github4j.client.TeamsClient

public class TeamsClient extends GithubClient
GitHub 团队 API 客户端。

提供团队的 CRUD 操作、成员管理、仓库关联管理、子团队管理等功能。

对应 GitHub REST API 文档: Teams

See Also:
  • Constructor Details

  • Method Details

    • list

      public Page<Team> list(String org, PageOptions options)
      列出指定组织下的所有团队。

      API 端点: GET /orgs/{org}/teams

      Parameters:
      org - 组织名称
      options - 分页选项,可为 null
      Returns:
      分页的团队列表
    • get

      public GithubResponse<Team> get(String org, String teamSlug)
      获取指定组织下的团队详情。

      API 端点: GET /orgs/{org}/teams/{team_slug}

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      Returns:
      团队详细信息
    • create

      public GithubResponse<Team> create(String org, CreateTeamRequest request)
      在指定组织下创建新团队。

      API 端点: POST /orgs/{org}/teams

      Parameters:
      org - 组织名称
      request - 创建团队的请求参数
      Returns:
      创建成功后的团队信息
    • update

      public GithubResponse<Team> update(String org, String teamSlug, UpdateTeamRequest request)
      更新指定团队的信息。

      API 端点: PATCH /orgs/{org}/teams/{team_slug}

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      request - 更新团队的请求参数
      Returns:
      更新后的团队信息
    • delete

      public void delete(String org, String teamSlug)
      删除指定团队。

      API 端点: DELETE /orgs/{org}/teams/{team_slug}

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
    • listMembers

      public Page<User> listMembers(String org, String teamSlug, ListTeamMembersOptions options)
      列出指定团队的成员。

      API 端点: GET /orgs/{org}/teams/{team_slug}/members

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      options - 列表选项(成员角色筛选、分页),可为 null
      Returns:
      分页的用户列表
    • isMember

      public boolean isMember(String org, String teamSlug, String username)
      检查指定用户是否为团队成员。

      API 端点: GET /orgs/{org}/teams/{team_slug}/members/{username}

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      username - 用户名
      Returns:
      如果是成员返回 true,否则返回 false
    • addMembership

      public void addMembership(String org, String teamSlug, String username, Map<String,String> body)
      为指定用户添加团队成员资格。

      API 端点: PUT /orgs/{org}/teams/{team_slug}/memberships/{username}

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      username - 用户名
      body - 成员资格参数
    • removeMembership

      public void removeMembership(String org, String teamSlug, String username)
      移除指定用户的团队成员资格。

      API 端点: DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      username - 用户名
    • listRepos

      public Page<Repository> listRepos(String org, String teamSlug, PageOptions options)
      列出团队关联的仓库。

      API 端点: GET /orgs/{org}/teams/{team_slug}/repos

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      options - 分页选项,可为 null
      Returns:
      分页的仓库列表
    • isRepoInTeam

      public boolean isRepoInTeam(String org, String teamSlug, String owner, String repo)
      检查指定仓库是否关联到团队。

      API 端点: GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      owner - 仓库所有者
      repo - 仓库名称
      Returns:
      如果仓库已关联返回 true,否则返回 false
    • addOrUpdateRepoPermissions

      public void addOrUpdateRepoPermissions(String org, String teamSlug, String owner, String repo, Map<String,String> body)
      添加或更新团队对仓库的权限。

      API 端点: PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      owner - 仓库所有者
      repo - 仓库名称
      body - 权限参数
    • removeRepo

      public void removeRepo(String org, String teamSlug, String owner, String repo)
      移除团队对仓库的关联。

      API 端点: DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      owner - 仓库所有者
      repo - 仓库名称
    • listChildTeams

      public Page<Team> listChildTeams(String org, String teamSlug, PageOptions options)
      列出团队的子团队。

      API 端点: GET /orgs/{org}/teams/{team_slug}/teams

      Parameters:
      org - 组织名称
      teamSlug - 团队的 slug 标识
      options - 分页选项,可为 null
      Returns:
      分页的子团队列表