Class ReleasesClient

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

public class ReleasesClient extends GithubClient
GitHub Releases API 客户端。

提供 Release 的 CRUD 操作、资源资产管理、发布笔记生成等功能。

对应 GitHub REST API 文档: Releases

See Also:
  • Constructor Details

    • ReleasesClient

      public ReleasesClient(GithubClient parent)
  • Method Details

    • list

      public Page<Release> list(String owner, String repo, PageOptions options)
      列出指定仓库的 Release。

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

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      options - 分页选项,可为 null
      Returns:
      分页的 Release 列表
    • get

      public GithubResponse<Release> get(String owner, String repo, long releaseId)
      获取指定仓库的单个 Release。

      API 端点: GET /repos/{owner}/{repo}/releases/{release_id}

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      releaseId - Release 的 ID
      Returns:
      Release 详细信息
    • getLatest

      public GithubResponse<Release> getLatest(String owner, String repo)
      获取指定仓库的最新 Release。

      API 端点: GET /repos/{owner}/{repo}/releases/latest

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      Returns:
      最新 Release 的详细信息
    • getByTag

      public GithubResponse<Release> getByTag(String owner, String repo, String tag)
      标签名获取指定仓库的 Release。

      API 端点: GET /repos/{owner}/{repo}/releases/tags/{tag}

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      tag - 标签名称
      Returns:
      对应标签的 Release 详细信息
    • create

      public GithubResponse<Release> create(String owner, String repo, CreateReleaseRequest request)
      为指定仓库创建新 Release。

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

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      request - 创建 Release 的请求参数
      Returns:
      创建成功后的 Release 信息
    • update

      public GithubResponse<Release> update(String owner, String repo, long releaseId, Map<String,Object> request)
      更新指定仓库的 Release。

      API 端点: PATCH /repos/{owner}/{repo}/releases/{release_id}

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      releaseId - Release 的 ID
      request - 更新 Release 的请求参数
      Returns:
      更新后的 Release 信息
    • delete

      public void delete(String owner, String repo, long releaseId)
      删除指定仓库的 Release。

      API 端点: DELETE /repos/{owner}/{repo}/releases/{release_id}

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      releaseId - Release 的 ID
    • listReleaseAssets

      public Page<Asset> listReleaseAssets(String owner, String repo, long releaseId, PageOptions options)
      列出指定 Release 的资源资产。

      API 端点: GET /repos/{owner}/{repo}/releases/{release_id}/assets

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      releaseId - Release 的 ID
      options - 分页选项,可为 null
      Returns:
      分页的资源资产列表
    • getReleaseAsset

      public GithubResponse<Asset> getReleaseAsset(String owner, String repo, long assetId)
      获取指定 Release 的单个资源资产。

      API 端点: GET /repos/{owner}/{repo}/releases/assets/{asset_id}

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      assetId - 资源资产的 ID
      Returns:
      资源资产详细信息
    • downloadReleaseAsset

      public byte[] downloadReleaseAsset(String owner, String repo, long assetId)
      下载指定 Release 的资源资产(二进制内容)。

      API 端点: GET /repos/{owner}/{repo}/releases/assets/{asset_id}

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      assetId - 资源资产的 ID
      Returns:
      资源资产的二进制内容
    • updateReleaseAsset

      public GithubResponse<Asset> updateReleaseAsset(String owner, String repo, long assetId, Map<String,Object> request)
      更新指定 Release 的资源资产。

      API 端点: PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      assetId - 资源资产的 ID
      request - 更新资源资产的请求参数
      Returns:
      更新后的资源资产信息
    • deleteReleaseAsset

      public void deleteReleaseAsset(String owner, String repo, long assetId)
      删除指定 Release 的资源资产。

      API 端点: DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      assetId - 资源资产的 ID
    • generateNotes

      public GithubResponse<Map<String,Object>> generateNotes(String owner, String repo, Map<String,String> body)
      生成发布笔记。

      API 端点: POST /repos/{owner}/{repo}/releases/generate-notes

      Parameters:
      owner - 仓库所有者
      repo - 仓库名称
      body - 生成笔记的请求参数(包含 tag_name 等)
      Returns:
      生成的发布笔记内容