You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:54:04