能否通过GitHub REST API获取仓库的Issue/PR模板?
可行方案说明
虽然GitHub REST API没有专门提供获取Issue/PR模板的接口,但可以通过仓库文件内容API间接获取模板文件,以此实现表单预填充,具体步骤如下:
定位模板文件路径
Issue和PR模板的常规存放位置有这些:- Issue模板:
.github/ISSUE_TEMPLATE/目录下的Markdown/YAML文件,或根目录下的ISSUE_TEMPLATE.md - PR模板:
.github/PULL_REQUEST_TEMPLATE/目录下的Markdown/YAML文件,或根目录下的PULL_REQUEST_TEMPLATE.md
另外部分仓库会用.github/ISSUE_TEMPLATE/config.yml来配置多模板选项,这种情况也需要读取该文件解析模板列表。
- Issue模板:
调用仓库内容API获取文件
使用GET /repos/{owner}/{repo}/contents/{path}接口来获取目标路径的内容:- 如果请求的是目录(比如
.github/ISSUE_TEMPLATE),接口会返回该目录下所有文件的元数据(包括文件名、路径、download_url等) - 如果请求的是单个文件,接口返回的
content字段是base64编码的文件内容,解码后就能拿到模板原文;也可以直接用download_url下载文件内容。
举个实际调用示例:
GET /repos/{owner}/{repo}/contents/.github/ISSUE_TEMPLATE- 如果请求的是目录(比如
解析模板并预填充表单
拿到模板内容后,根据模板里的结构(比如标题、分段提示、占位符),对应填充到Issue/PR创建表单的标题输入框和正文编辑区域。比如模板里的### 问题描述对应表单正文的问题描述板块,### 重现步骤对应步骤输入区。处理无自定义模板的情况
如果仓库没有设置自定义模板,GitHub会使用默认模板,这时候你可以预设一套通用的模板结构来填充表单,比如默认Issue模板包含问题描述、环境信息、重现步骤等板块。
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

