C# GitHub API调用:如何使用Octokit.NET增减拉取请求(PR)经办人
解决方案说明
PR 经办人操作的能力没有封装在 PullRequest 相关接口中,原因是 GitHub 平台中拉取请求本质属于特殊类型的 Issue,经办人(Assignee)的管理归属 Issue 操作接口,直接调用 Octokit.NET 中 Issue 客户端的对应方法即可。
前置要求
- 已初始化有权限的
GitHubClient实例,使用的 Token 需包含repo作用域,且对目标仓库有读写权限 - 你需要提前获取到三个核心参数:仓库所有者用户名、仓库名称、目标 PR 的编号(对应
PullRequest.Number属性)
操作示例
1. 新增经办人
调用 AddAssignees 方法传入要添加的用户名列表即可:
// 要新增的经办人用户名集合 var addAssigneesList = new List<string> { "user_a", "user_b" }; // 执行新增操作 await gitHubClient.Issue.Assignee.AddAssignees( "仓库所有者用户名", "仓库名称", prNumber, new AssigneesUpdate(addAssigneesList) );
2. 移除经办人
调用 RemoveAssignees 方法传入要移除的用户名列表:
// 要移除的经办人用户名集合 var removeAssigneesList = new List<string> { "user_c" }; // 执行移除操作 await gitHubClient.Issue.Assignee.RemoveAssignees( "仓库所有者用户名", "仓库名称", prNumber, new AssigneesUpdate(removeAssigneesList) );
3. 覆盖全部经办人
如果需要清空原有经办人,直接设置新的经办人列表,可以用 Issue.Update 方法:
var issueUpdate = new IssueUpdate { // 赋值为最终要保留的全部经办人列表 Assignees = new List<string> { "user_a", "user_d" } }; await gitHubClient.Issue.Update("仓库所有者用户名", "仓库名称", prNumber, issueUpdate);
注意事项
- 操作完成后重新获取 PR 对象,
PullRequest.Assignees只读集合就会同步为最新的经办人列表 - 如果添加的用户没有目标仓库的协作权限,接口会返回 422 错误,操作前请确认用户权限正常
内容的提问来源于stack exchange,提问作者Javier Rusansky
相关产品推荐
相关产品推荐

