2013-04-08 121 views
0

喜IM创建文件夹放到回购,我想在回购协议增加新的binery文件。通过使用KnpLabs php-github-api IM exectly做什么,说在如何上传文件,使用API​​使用<a href="http://developer.github.com/v3/git/" rel="nofollow">GitHub v3</a>

  1. 得到当前commit对象
  2. 检索指向
  3. 树检索树有针对特定文件路径
  4. 变化内容莫名其妙的blob对象的内容和发布新的Blob对象与新的内容,让一个blob SHA回
  5. 后与您的新斑块SHA替换该文件路径指针得到一个树SHA回

和洙一个新的树对象。但在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') 
     ) 
); 

回答

0

我是你需要一个有效的沙,你可以创建一个树之前的印象。基于documentation for creating a tree,您似乎需要获取对象的SHA1。所以看起来您可能必须已经将该树添加到索引。没有这一点,你将无法获得对象的SHA,因为git已经认识到它。

+0

感谢的人对您的信息。我想你是对的。但有什么办法,以待办事项所有这些事情。 – Noman 2013-04-09 11:02:40

+0

“必须先进行本地提交,然后才能通过API推送它。”你可以给我任何教授或参考 – Noman 2013-04-09 12:15:25

+0

我更新了我的答案,因为我回答了一个没有被问到的问题。另外,我正在考虑Commits API而不是Blob和Tree API。 – 2013-04-12 23:25:53

1

不能

我们一直在努力保持GitHub的重点建设软件的一部分,我们正在 弃用下载选项卡。 Downloads API已正式弃用 ,并将在90天内停用。

github.com/blog/1302-goodbye-uploads

+0

感谢您的答复。我现在看看如何上传一些文件.. – Noman 2013-04-09 10:58:49

相关问题