如何通过GitHub GraphQL API创建Issue与标签?接口功能咨询
使用GitHub GraphQL API创建Issue和标签的指南
嘿,我来帮你把这个问题理清楚!其实GitHub GraphQL API完全支持创建Issue和标签,可能你在浏览mutation列表的时候没一下子定位到对应的入口,我给你一步步拆解:
创建Issue
核心的mutation是createIssue,你需要先获取目标仓库的全局ID(可以通过查询仓库的基础信息拿到),然后传入标题、正文等必要字段。这里给你一个完整的请求示例:
mutation CreateNewIssue { createIssue(input: { repositoryId: "你的仓库全局ID", title: "测试GraphQL创建Issue", body: "这是通过GitHub GraphQL API生成的Issue内容", # 可选:如果要关联已有标签,传入标签ID数组 labelIds: ["标签1的ID", "标签2的ID"] }) { issue { id number title body } } }
repositoryId:必填,仓库的全局唯一ID,你可以通过查询仓库的id字段获取;title:必填,Issue的标题;body:可选,Issue的正文内容;labelIds:可选,关联已存在标签的ID数组,后面会讲如何创建新标签。
创建标签
对应的mutation是createLabel,同样需要传入仓库ID,以及标签的名称、颜色等必填信息:
mutation CreateNewLabel { createLabel(input: { repositoryId: "你的仓库全局ID", name: "bug", color: "d73a4a", # 6位十六进制颜色值,不需要带# description: "代码缺陷或功能异常" }) { label { id name color description } } }
name和color是必填项;- 创建完成后,你可以拿到标签的ID,在创建Issue时通过
labelIds参数关联这个新标签。
额外操作:添加表情反应和评论
正如你提到的,创建完Issue后,还可以用addReaction和addComment做后续操作:
添加表情反应
比如给刚创建的Issue加一个点赞反应:
mutation AddIssueReaction { addReaction(input: { subjectId: "刚创建的Issue的全局ID", content: THUMBS_UP # 可选值还有LAUGH, HOORAY, CONFUSED, HEART, ROCKET, EYES等 }) { reaction { content } } }
添加评论
给Issue追加一条评论:
mutation AddIssueComment { addComment(input: { subjectId: "刚创建的Issue的全局ID", body: "这是通过GraphQL API添加的评论内容" }) { comment { id body createdAt } } }
最后要注意,执行这些mutation需要你的API token拥有目标仓库的write权限,否则会返回权限不足的错误。
内容的提问来源于stack exchange,提问作者Jon Wood
相关产品推荐
相关产品推荐

