如何创建github存储库并从PHP上传文件


How to create github Repository and upload files from PHP?

我正在尝试从PHP代码创建GitHub存储库,并且我想将文件上传到创建的GitHub库中。

我一直在尝试使用https://github.com/ornicar/php-github-api这个PHP API,但我在任何地方都找不到如何将文件上传到创建的GitHub存储库。

所以请帮我解决这个问题,提前谢谢。

例如:

  1. 我想创建一个名为myProject1 的Respo

  2. 然后我想添加三个文件(papi.php, index.php, jquery.min.js)。

所以请帮帮我。

如"GitHub API-写入到repo"中所述,您需要创建一个blob

您可以在KnpLabs/php-github-api/test/Github/Tests/Api/GitData/BlobsTest.php#L53-L68 中看到一个示例

(我使用的是KnpLabs/php-github-api,因为ornicar/php-github-api已被弃用并引用)

/**
 * @test
 */
public function shouldCreateBlob()
{
    $expectedValue = array('blob' => 'some data');
    $data = array('content' => 'some cotent', 'encoding' => 'utf8');
    $api = $this->getApiMock();
    $api->expects($this->once())
        ->method('post')
        ->with('repos/l3l0/l3l0repo/git/blobs', $data)
        ->will($this->returnValue($expectedValue));
    $this->assertEquals($expectedValue, $api->create('l3l0', 'l3l0repo', $data));
}

还没有文件名:您上传内容

然而,要创建一个文件,如本例所示,您仍然需要:

  • 获取当前主分支指向的SHA
  • 获取此SHA所属的树
  • 基于旧树,使用新blob创建一个新的树对象
  • 使用新树创建一个新的提交对象,并将其父对象指向当前主对象
  • 最后更新heads/master引用以指向新提交