2013-02-07 4 views
0

저는이 방법을 사용하는 것에 가깝지만 트리를 만들려고 할 때마다 서버 오류가 발생합니다. 어떤 아이디어? 여기 내 PHP 코드는 다음과 같습니다.github api v3 tree 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); 

bllob에 대해 제공 한 sha는 동일한 send_data 함수로 만든 새로 만든 BLOB입니다. base_tree sha는 기본 커밋에서 발견 된 트리입니다. 또한이 예제를 다음과 같이 수행했습니다. http://www.pqpq.de/2011/07/pithub-how-to-commit-new-file-via.html

감사합니다.

답변

0

트리는 항목 모음이므로 요청 데이터의 "트리"항목은 단일 항목보다는 항목의 배열이어야합니다.

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

나는 그것을 시도 할 것이다. 나는 이것을 잠시 만지지는 않았지만 아마 원래의 과정을 끝낼 때가되었습니다. – runfaj