0

こんにちは、GitHub v3を使用しています。リポジトリに新しいバイナリ ファイルを追加したいと考えています。KnpLabs php-github-apiを使用して、

  1. 現在のコミット オブジェクトを取得する
  2. それが指しているツリーを取得する
  3. その特定のファイル パスに対してツリーが保持する BLOB オブジェクトのコンテンツを取得する
  4. 何らかの方法でコンテンツを変更し、その新しいコンテンツを含む新しい blob オブジェクトを投稿して、blob SHA を取得します
  5. そのファイル パス ポインターを新しいブロブ 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 がソフトウェアの構築に専念できるようにするための継続的な取り組みの一環として、ダウンロード タブを廃止します。Downloads API は正式に廃止され、90 日後に無効になります。

github.com/blog/1302-goodbye-uploads

于 2013-04-08T17:24:51.277 に答える
0

ツリーを作成するには、有効なshaが必要だという印象を受けました。ツリーを作成するためのドキュメントに基づいて、オブジェクトの SHA1 を取得する必要があるようです。したがって、すでにツリーをインデックスに追加している必要があるようです。そうしないと、git が認識したオブジェクトの SHA を取得できません。

于 2013-04-08T17:06:15.560 に答える