Class ProjectsClient

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

public class ProjectsClient extends GithubClient
GitHub Projects (Classic) API 客户端。

提供经典项目的 CRUD 操作、项目列管理、项目卡片管理等功能。

注意: 此客户端仅支持 Classic Projects,不支持新版 Projects (v2)。

对应 GitHub REST API 文档: Projects

See Also:
  • Constructor Details

    • ProjectsClient

      public ProjectsClient(GithubClient parent)
  • Method Details

    • listForRepo

      public Page<Project> listForRepo(String owner, String repo, ListProjectsOptions options)
      列出指定仓库的经典项目。

      API 端点: GET /repos/{owner}/{repo}/projects

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      options - 列表选项(项目状态筛选、分页),可为 null
      Returns:
      分页的项目列表
    • listForOrg

      public Page<Project> listForOrg(String org, ListProjectsOptions options)
      列出指定组织的经典项目。

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

      Parameters:
      org - 组织名称
      options - 列表选项(项目状态筛选、分页),可为 null
      Returns:
      分页的项目列表
    • get

      public GithubResponse<Project> get(long projectId)
      获取指定经典项目的详细信息。

      API 端点: GET /projects/{project_id}

      Parameters:
      projectId - 项目的 ID
      Returns:
      项目详细信息
    • createForRepo

      public GithubResponse<Project> createForRepo(String owner, String repo, Map<String,Object> body)
      为指定仓库创建经典项目。

      API 端点: POST /repos/{owner}/{repo}/projects

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      body - 创建项目的请求参数
      Returns:
      创建成功后的项目信息
    • createForOrg

      public GithubResponse<Project> createForOrg(String org, Map<String,Object> body)
      为指定组织创建经典项目。

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

      Parameters:
      org - 组织名称
      body - 创建项目的请求参数
      Returns:
      创建成功后的项目信息
    • update

      public GithubResponse<Project> update(long projectId, Map<String,Object> body)
      更新指定经典项目的信息。

      API 端点: PATCH /projects/{project_id}

      Parameters:
      projectId - 项目的 ID
      body - 更新项目的请求参数
      Returns:
      更新后的项目信息
    • delete

      public void delete(long projectId)
      删除指定经典项目。

      API 端点: DELETE /projects/{project_id}

      Parameters:
      projectId - 项目的 ID
    • listColumns

      public Page<ProjectColumn> listColumns(long projectId)
      列出指定项目的所有列。

      API 端点: GET /projects/{project_id}/columns

      Parameters:
      projectId - 项目的 ID
      Returns:
      分页的项目列列表
    • getColumn

      public GithubResponse<ProjectColumn> getColumn(long columnId)
      获取指定项目列的详细信息。

      API 端点: GET /projects/columns/{column_id}

      Parameters:
      columnId - 项目列的 ID
      Returns:
      项目列详细信息
    • createColumn

      public GithubResponse<ProjectColumn> createColumn(long projectId, Map<String,String> body)
      为指定项目创建新列。

      API 端点: POST /projects/{project_id}/columns

      Parameters:
      projectId - 项目的 ID
      body - 创建列的请求参数(包含 name 字段)
      Returns:
      创建成功后的项目列信息
    • updateColumn

      public GithubResponse<ProjectColumn> updateColumn(long columnId, Map<String,String> body)
      更新指定项目列的信息。

      API 端点: PATCH /projects/columns/{column_id}

      Parameters:
      columnId - 项目列的 ID
      body - 更新列的请求参数
      Returns:
      更新后的项目列信息
    • deleteColumn

      public void deleteColumn(long columnId)
      删除指定项目列。

      API 端点: DELETE /projects/columns/{column_id}

      Parameters:
      columnId - 项目列的 ID
    • listCards

      public Page<ProjectCard> listCards(long columnId, ListProjectCardsOptions options)
      列出指定项目列的卡片。

      API 端点: GET /projects/columns/{column_id}/cards

      Parameters:
      columnId - 项目列的 ID
      options - 列表选项(归档状态筛选、分页),可为 null
      Returns:
      分页的项目卡片列表
    • getCard

      public GithubResponse<ProjectCard> getCard(long cardId)
      获取指定项目卡片的详细信息。

      API 端点: GET /projects/columns/cards/{card_id}

      Parameters:
      cardId - 项目卡片的 ID
      Returns:
      项目卡片详细信息
    • createCard

      public GithubResponse<ProjectCard> createCard(long columnId, Map<String,Object> body)
      在指定项目列中创建新卡片。

      API 端点: POST /projects/columns/{column_id}/cards

      Parameters:
      columnId - 项目列的 ID
      body - 创建卡片的请求参数
      Returns:
      创建成功后的项目卡片信息
    • updateCard

      public GithubResponse<ProjectCard> updateCard(long cardId, Map<String,Object> body)
      更新指定项目卡片的信息。

      API 端点: PATCH /projects/columns/cards/{card_id}

      Parameters:
      cardId - 项目卡片的 ID
      body - 更新卡片的请求参数
      Returns:
      更新后的项目卡片信息
    • deleteCard

      public void deleteCard(long cardId)
      删除指定项目卡片。

      API 端点: DELETE /projects/columns/cards/{card_id}

      Parameters:
      cardId - 项目卡片的 ID
    • moveCard

      public void moveCard(long cardId, Map<String,String> body)
      移动项目卡片到指定位置。

      API 端点: POST /projects/columns/cards/{card_id}/moves

      Parameters:
      cardId - 项目卡片的 ID
      body - 移动参数(包含 position 和 column_id 字段)