如何通过GitHub API完成GitHub主题加星操作?
GitHub API 仓库加星操作实现方案
REST API v3 实现
使用REST API v3操作仓库星标,对应接口路径为/user/starred/{仓库所有者用户名}/{仓库名},所有操作需要携带具备对应权限的个人访问令牌(PAT):
- 加星操作:发送PUT请求到上述接口,请求成功返回204状态码即代表操作完成
示例请求:curl -L \ -X PUT \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer 替换为你的PAT令牌" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/user/starred/OWNER/REPO - 查询是否已加星:发送GET请求到上述接口,返回204代表已加星,返回404代表未加星
- 取消加星:发送DELETE请求到上述接口,请求成功返回204状态码即代表操作完成
GraphQL API v4 实现
使用v4版本的GraphQL API需要先获取目标仓库的Node ID,再调用addStar mutation完成加星:
- 先查询目标仓库的Node ID
query GetRepoNodeId { repository(owner: "替换为仓库所有者用户名", name: "替换为仓库名") { id } }
- 调用加星mutation
mutation AddStar { addStar(input: {starrableId: "替换为第一步查询到的仓库Node ID"}) { starrable { viewerHasStarred } } }
操作成功后返回结果中viewerHasStarred值为true即代表加星生效。如需取消加星,将上述mutation中的addStar替换为removeStar即可。
注意事项
所有星标操作对应的PAT需要包含public_repo权限(操作公开仓库)或repo权限(操作私有仓库),否则会返回权限错误。
内容的提问来源于stack exchange,提问作者Hao Yue
相关产品推荐
相关产品推荐

