如何上传文件,使用api创建文件夹到repo

时间:2013-04-08 07:38:55

标签: php api github github-api

您好我正在使用GitHub v3我希望使用KnpLabs php-github-api在repo .by中添加新的binery文件我正在执行

中所述的内容
  1. 获取当前提交对象
  2. 检索它指向的树
  3. 检索树对该特定文件路径的blob对象的内容
  4. 以某种方式更改内容并使用该新内容发布新的blob对象,然后获取blob SHA
  5. 发布一个新的树对象,该文件路径指针替换为新的blob SHA,使树回SHA
  6. 和soo。但在5点我得到了一个exseption

    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')
            )
    );
    

2 个答案:

答案 0 :(得分:1)

你不能

  

作为我们不断努力保持GitHub专注于构建软件的一部分,我们   正在弃用“下载”标签。 Downloads API正式弃用   并将在90天内禁用。

github.com/blog/1302-goodbye-uploads

答案 1 :(得分:0)

在您创建树之前,我认为您需要有效的sha。基于documentation for creating a tree,您似乎需要获取对象的SHA1。因此,似乎您可能必须已将树添加到索引中。没有它,你将无法获得对象的SHA,因为git已经识别它。