我正在尝试从PHP代码创建GitHub存储库,并且我想将文件上传到创建的GitHub库中。
我一直在尝试使用https://github.com/ornicar/php-github-api
这个PHP API
,但我在任何地方都找不到如何将文件上传到创建的GitHub存储库。
所以请帮我解决这个问题,提前谢谢。
例如:
-
我想创建一个名为
myProject1
的Respo -
然后我想添加三个文件(
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引用以指向新提交