【问题标题】:How to upload files,create folder into repo using api如何上传文件,使用 api 创建文件夹到 repo
【发布时间】:2013-03-30 05:14:42
【问题描述】:

嗨,我正在使用 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')
        )
);

【问题讨论】:

    标签: php api github github-api


    【解决方案1】:

    你不能

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

    github.com/blog/1302-goodbye-uploads

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢你的信息。我想你是对的。但是有什么办法可以做所有这些事情。
      • "必须先进行本地提交,然后才能通过 API 推送。"你能给我任何教授或参考吗
      • 我更新了我的答案,因为我正在回答一个没有被问到的问题。另外,我在考虑 Commits API 而不是 Blob 和 Tree API。
      猜你喜欢
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      • 2023-03-12
      相关资源
      最近更新 更多