2013-09-02 22 views

Odpowiedz

1

Możesz utworzyć oddział za pośrednictwem części API. Nie jestem jednak pewien, czy możesz stworzyć z tego osieroconą gałąź, czy też API to uniemożliwi.

W rzeczywistości, testując go z dyni nie działa:

curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned"}' 
curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned", "sha":""}' 

Zarówno zwrot:

{"message": "Reference update failed"} 

Próbowałem zi bez nagłówka Content-Type (-H "Content-Type: application/json") ale ani pracy.

Z tych drobnych eksperymentów wynika, że ​​nie można utworzyć osieroconego oddziału za pomocą interfejsu API.

+1

Udało mi się utworzyć odniesienie za pomocą sha, które wskazywało na zatwierdzenie na poziomie głównym (nowe zatwierdzenie, które stworzyłem bez rodziców). Podczas tworzenia tego zatwierdzenia nie byłem w stanie utworzyć pustego odniesienia drzewa za pomocą interfejsu API github, ale zamiast tego musiałem utworzyć drzewo z plikiem dummy. Obecnie używam tych obejść, ale nadal jestem zainteresowany widząc, czy istnieje sposób, aby utworzyć oddział osierocony odwołujący się do zatwierdzenia poziomu root wskazując puste drzewo. –

1

Możliwe jest to poprzez:

  1. Sprawdź, czy oddział już istnieje
  2. Jeśli nie, to utworzyć zobowiązują się, że odnosi się do git na empty tree SHA
  3. Następnie utwórz wg że popełnić

można znaleźć coffeescript przykładowy kod dla jak to zrobić z https://github.com/noflo/noflo-github/blob/master/components/CreateOrphanBranch.coffee#L31

Oto jeden taki oddział utworzony w ten sposób: https://github.com/the-domains/example.net/tree/branch_1403616324001

Aktualizacja: metoda ta działa tylko wtedy, gdy repozytorium git ma dotychczasowe oddziały osieroconych. Jeśli jest to nowo utworzone repo utworzone za pomocą interfejsu API GitHub przy użyciu opcji auto_init, to nie będzie działać. Skontaktowałem się z GitHub na ten temat.