Python pyGithub拉取请求无效头(422 API错误)

Python pyGithub拉取请求无效头(422 API错误),python,git,github-api,pygithub,Python,Git,Github Api,Pygithub,最近,我一直在尝试使用pyGithub创建一些自动化的PRs,在使用这个snippet在一系列回购中运行了make update body = 'Test PR 2 please ignore' pr = repo.create_pull(title="Test PR please ignore", body=body, head="patch/helm-chart-update",

最近,我一直在尝试使用pyGithub创建一些自动化的PRs,在使用这个snippet在一系列回购中运行了
make update

body = 'Test PR 2 please ignore'
pr = repo.create_pull(title="Test PR please ignore",
                          body=body,
                          head="patch/helm-chart-update",
                          base="master")
pr
我一直从API中收到此错误消息

github.GithubException.GithubException:422{“消息”:“验证失败”,“错误”:[{“资源”:“PullRequest”,“字段”:“head”,“代码”:“invalid”}],“文档url”:https://developer.github.com/v3/pulls/#create-a-pull-request“}

当然,我的第一个猜测是我打错了回购协议的名称,但事实并非如此。奇怪的是,当我用一个不存在的分支名称(如“someGarbage”)替换头名称时,我得到了一个相同的错误

接下来,我认为可能存在关于PR的冲突或其他无效细节(尽管由于我正在使用的测试分支的简单性,这是极不可能的),但是Github GUI创建PR时没有任何问题

最终,我能够使用创建一个PR,但不幸的是,我无法找到一种方法来避免在shell中打开vim(这将由于将运行的回购数量而产生大量的工作)。如果所有这些都失败了,我可能只会使用请求来手动调用Github API,但我真的很想使用pyGithub,这两个目的都是为了保持代码的简单性/可维护性(因为我已经使用库来搜索目标repo并将其克隆到/tmp中),而且因为它通常看起来是一个很好的工具,我想好好学习使用

很抱歉,由于问题的性质,这不是最容易复制的,但我很乐意详细说明。有什么想法吗

更新

在使用
requests
调用实现此功能后,我学到了一点,那就是如果使用'params'参数调用,将json对象传递给POST请求,而不是'json'参数,则会得到相同的错误代码。开始怀疑一个bug,但我希望被证明是错的

[{“resource”:“PullRequest”,“field”:“head”,“code”:“invalid”}]

错误消息试图说明名为“head”的字段/关键字包含无效数据。查看GitHub的文档:

头部:必填项。实现更改的分支的名称。对于同一网络中的跨存储库拉取请求,名称空间以如下用户开头:
username:branch


您当前设置它的方式(
head=“patch/helm chart update”,base=“master”
)它进入在线GitHub存储库,在那里查找分支
patch/helm chart update
,并尝试准备合并到master。注意:如果该分支只在本地存在(即,您没有执行git push),或者如果您在GitHub上创建了一个fork(在这种情况下,您需要在它前面加上您的用户名),那么这将不起作用。

打开编辑器的目的是什么?创建提交?合并提交?拉取请求描述?在运行git pull请求脚本之前,是否可以尝试运行
export EDITOR=true