0

嗨,我正在使用GitHub v3,我想在 repo 中添加新的二进制文件。通过使用KnpLabs php-github-api我完全按照中所说的去做

  1. 获取当前提交对象
  2. 检索它指向的树
  3. 检索该特定文件路径的树具有的 blob 对象的内容
  4. 以某种方式更改内容并使用该新内容发布一个新的 blob 对象,返回一个 blob SHA
  5. 发布一个新的树对象,该文件路径指针替换为您的新 blob SHA 获取树 SHA

等等。但是在 5 点上我得到了一个例外

server error

形成这个代码

$comit=$client->api('git')->commits()->show($userName,$reposit,'master');
$basetree=$client->api('git')->trees()->show($userName,'appwiz',$comit['commit']    ['tree']['sha']);

$newBlob=$client->api('git')->blobs()->create($userName,$reposit,array('content'=> "gitapi",'encoding'=>'base64'));

$client->authenticate($userName,$password,Github\Client::AUTH_HTTP_PASSWORD);
$treeData = array(
        'tree'=>
        array(  array('path'=>'/'
                ,'mode'=>'040000'
                ,'type'=>'tree'
                ,'content'=>'folder')
        )
);
4

2 回答 2

1

你不能

作为我们持续努力让 GitHub 专注于构建软件的一部分,我们将弃用下载选项卡。下载 API 已正式弃用,并将在 90 天内禁用。

github.com/blog/1302-goodbye-uploads

于 2013-04-08T17:24:51.277 回答
0

我的印象是你需要一个有效的 sha 才能创建一棵树。根据创建树的文档,您似乎需要获取对象的 SHA1。因此,您似乎必须已经将树添加到索引中。没有它,您将无法获得对象的 SHA,因为 git 已经识别了它。

于 2013-04-08T17:06:15.560 回答