如何通过GitHub Actions API及仓库工作流列表接口返回结果获取工作流YAML文件
获取GitHub工作流YAML文件内容的方法
你已经成功调用了列出仓库工作流的API,拿到了工作流的基础信息,接下来获取对应的YAML内容有两种简单直接的方法:
方法1:使用工作流ID直接获取YAML(推荐)
GitHub Actions API提供了专门的接口来直接获取工作流的YAML内容,你只需要用返回结果里的工作流id或者url拼接请求路径即可:
- 接口路径:
GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/yaml - 以你示例中的数据为例,对应的请求就是:
GET /repos/octo-org/octo-repo/actions/workflows/161335/yaml - 这个接口会直接返回解码后的纯文本YAML内容,不需要额外处理base64编码,用起来最省心。
方法2:通过仓库内容API获取
如果你想用返回结果里的path字段(比如示例中的.github/workflows/blank.yaml),可以调用GitHub的仓库内容接口:
- 接口路径:
GET /repos/{owner}/{repo}/contents/{path} - 示例请求:
GET /repos/octo-org/octo-repo/contents/.github/workflows/blank.yaml - 注意事项:这个接口返回的
content字段是base64编码的内容,你需要解码后才能得到YAML文本;如果工作流不在仓库的默认分支,还要在请求里加上ref参数指定分支名,比如?ref=develop。
权限提示
不管用哪种方法,你使用的访问令牌(token)需要拥有仓库的读取权限(repo范围权限),确保能正常访问仓库内容和工作流信息。
内容的提问来源于stack exchange,提问作者PriyaK




