Class OrgsClient

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

public class OrgsClient extends GithubClient
GitHub 组织 API 客户端。

提供组织的 CRUD 操作、成员管理、公开成员管理、成员资格管理、 邀请管理、外部协作者管理等功能。

对应 GitHub REST API 文档: Organizations

See Also:
  • Constructor Details

  • Method Details

    • get

      public GithubResponse<Organization> get(String org)
      获取指定组织的详细信息。

      API 端点: GET /orgs/{org}

      Parameters:
      org - 组织名称
      Returns:
      组织详细信息
    • update

      public GithubResponse<Organization> update(String org, Map<String,Object> updates)
      更新指定组织的信息。

      API 端点: PATCH /orgs/{org}

      Parameters:
      org - 组织名称
      updates - 更新组织的请求参数
      Returns:
      更新后的组织信息
    • listForAuthenticatedUser

      public Page<Organization> listForAuthenticatedUser(PageOptions options)
      列出当前认证用户所属的组织。

      API 端点: GET /user/orgs

      Parameters:
      options - 分页选项,可为 null
      Returns:
      分页的组织列表
    • listForUser

      public Page<Organization> listForUser(String username, PageOptions options)
      列出指定用户所属的组织。

      API 端点: GET /users/{username}/orgs

      Parameters:
      username - 用户名
      options - 分页选项,可为 null
      Returns:
      分页的组织列表
    • listMembers

      public Page<User> listMembers(String org, ListOrgMembersOptions options)
      列出指定组织的成员。

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

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

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

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

      Parameters:
      org - 组织名称
      username - 用户名
      Returns:
      如果是成员返回 true,否则返回 false
    • isPublicMember

      public boolean isPublicMember(String org, String username)
      检查指定用户是否为组织的公开成员。

      API 端点: GET /orgs/{org}/public_members/{username}

      Parameters:
      org - 组织名称
      username - 用户名
      Returns:
      如果是公开成员返回 true,否则返回 false
    • setPublicMembership

      public void setPublicMembership(String org, String username)
      将当前认证用户设置为组织的公开成员。

      API 端点: PUT /orgs/{org}/public_members/{username}

      Parameters:
      org - 组织名称
      username - 用户名
    • removePublicMembership

      public void removePublicMembership(String org, String username)
      移除当前认证用户在组织的公开成员身份。

      API 端点: DELETE /orgs/{org}/public_members/{username}

      Parameters:
      org - 组织名称
      username - 用户名
    • getMembership

      public Map<String,String> getMembership(String org, String username)
      获取指定用户在组织中的成员资格信息。

      API 端点: GET /orgs/{org}/memberships/{username}

      Parameters:
      org - 组织名称
      username - 用户名
      Returns:
      成员资格信息(包含 role 和 state 字段)
    • setMembership

      public Map<String,String> setMembership(String org, String username, Map<String,String> body)
      设置指定用户在组织中的成员资格。

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

      Parameters:
      org - 组织名称
      username - 用户名
      body - 成员资格参数(包含 role 字段)
      Returns:
      更新后的成员资格信息
    • removeMembership

      public void removeMembership(String org, String username)
      移除指定用户在组织中的成员资格。

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

      Parameters:
      org - 组织名称
      username - 用户名
    • listPendingInvitations

      public Page<Invitation> listPendingInvitations(String org, ListOrgInvitationsOptions options)
      列出组织待接受的邀请。

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

      Parameters:
      org - 组织名称
      options - 列表选项(邀请来源筛选、分页),可为 null
      Returns:
      分页的邀请列表
    • createInvitation

      public GithubResponse<Invitation> createInvitation(String org, Map<String,Object> body)
      为组织创建邀请。

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

      Parameters:
      org - 组织名称
      body - 邀请参数
      Returns:
      创建成功后的邀请信息
    • cancelInvitation

      public void cancelInvitation(String org, long invitationId)
      取消组织的待接受邀请。

      API 端点: DELETE /orgs/{org}/invitations/{invitation_id}

      Parameters:
      org - 组织名称
      invitationId - 邀请的 ID
    • listOutsideCollaborators

      public Page<User> listOutsideCollaborators(String org, ListOutsideCollaboratorsOptions options)
      列出组织的外部协作者。

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

      Parameters:
      org - 组织名称
      options - 列表选项(筛选条件、分页),可为 null
      Returns:
      分页的外部协作者用户列表
    • removeOutsideCollaborator

      public void removeOutsideCollaborator(String org, String username)
      移除组织的外部协作者。

      API 端点: DELETE /orgs/{org}/outside_collaborators/{username}

      Parameters:
      org - 组织名称
      username - 用户名