-1

私はこれを機能させることに近づいていますが、ツリーを作成しようとするたびに、サーバーエラーが返されます。何か案は?これが私のphpコードです:

function send_data($url, $content) {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_USERPWD, 'myuser:mypass');
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($content));
    $a = array();
    $a['d'] = curl_exec($ch);
    $a['i'] = curl_getinfo($ch);
    curl_close($ch);
    return $a;
}

$treeArr = array(
    "base_tree" => "d7126bd6c559ab461e851e96ef2c33675d851c5e",
    "tree" => array(
        "path" => "resources/blahTest.txt",
        "mode" => "100644",
        "type" => "blob",
        "sha" => "38d15319d3ee8a7292be0ec0da65fe111660a94d"
    )
);

$x = send_data("https://api.github.com/repos/srolfe26/Branch-IDE/git/trees",$treeArr);
print_r($x);

私がblobに提供したshaは、同じsend_data関数で作成した新しく作成されたblobです。base_tree shaは、ベースコミットから見つかったツリーです。また、私はここでこの例に従っていました:http ://www.pqpq.de/2011/07/pithub-how-to-commit-new-file-via.html

ありがとう!

4

1 に答える 1

0

ツリーはアイテムのコレクションであるため、リクエストデータの「ツリー」アイテムは、単一のアイテムではなく、アイテムの配列である必要があります。

$treeArr = array(
    "base_tree" => "d7126bd6c559ab461e851e96ef2c33675d851c5e",
    "tree" => array(
        array(
            "path" => "resources/blahTest.txt",
            "mode" => "100644",
            "type" => "blob",
            "sha" => "38d15319d3ee8a7292be0ec0da65fe111660a94d"
        )
    )
);
于 2013-12-09T15:53:44.430 に答える