Javascript 如何使用GitHub API以编程方式使用更改的文件创建pull请求

Javascript 如何使用GitHub API以编程方式使用更改的文件创建pull请求,javascript,node.js,github,github-api,Javascript,Node.js,Github,Github Api,如何使用Github的API在Github上创建PR?假设我有一个package.json文件作为字符串,我想对这个文件进行更改。所以我解析它,对它进行更改,然后我需要做什么才能使它看起来像我在签出新分支、进行更改、将它们提交到新分支并将它们推到远程之后在本地进行的更改?我看到他们有POST API端点来创建提交,POST API端点来创建PR,但我看不出我将更改的文件放在了哪里。使用类似的方法可能是一种解决方案 这个库是git命令行的简单包装器 您不必使用Github API,而只需使用这样的

如何使用Github的API在Github上创建PR?假设我有一个
package.json
文件作为字符串,我想对这个文件进行更改。所以我解析它,对它进行更改,然后我需要做什么才能使它看起来像我在签出新分支、进行更改、将它们提交到新分支并将它们推到远程之后在本地进行的更改?我看到他们有POST API端点来创建提交,POST API端点来创建PR,但我看不出我将更改的文件放在了哪里。

使用类似的方法可能是一种解决方案

这个库是git命令行的简单包装器

您不必使用Github API,而只需使用这样的库以编程方式使用git命令即可

这样,您就不必使用复杂得多的API,而且还可以支持其他源代码管理站点

查看他们的应用程序,我们可以看到使用javascript提交和推送文件非常容易:

require('simple-git')()
   .add('./*')
   .commit("first commit!")
   .addRemote('origin', 'some-repo-url')
   .push(['-u', 'origin', 'master'], () => console.log('done'));
请确保在尝试该示例之前参考,以确保正确配置所有内容

或者,您可以使用该包更轻松地与Github API进行接口

通过API添加、提交和推送文件时,必须首先创建树。然后使用该树作为提交请求的一部分,更新引用,最后推送提交


您可以在上找到一个工作示例。

我没有将存储库克隆并保存到文件系统中,我只能访问文件内容的字符串表示形式。我必须使用Github API,因为我是通过OAuth令牌访问存储库内容的,这意味着我无法从git访问这些内容。@JamesJGoodwin为您更新了我的答案:)