2011-12-27 3 views
3

Я выполнил следующую команду с соответствующим ответом.
Однако, если я попытаюсь получить информацию о /user, это работает, ведьма означает, что мой токен действителен.Github Api v3 дает 404 при попытке создать репо

Что я делаю неправильно?

[email protected]:~/$ curl -v -XPOST -H 'Authorization: token S3CR3T' -H 'Content-Type: application/json; charset=utf-8' https://api.github.com/user/repos -d '{"name":"my-new-repo","description":"my new repo description"}' 

Выход:

* About to connect() to api.github.com port 443 (#0) 
* Trying 207.97.227.243... connected 
* Connected to api.github.com (207.97.227.243) port 443 (#0) 
* successfully set certificate verify locations: 
* CAfile: none 
    CApath: /etc/ssl/certs 
* SSLv3, TLS handshake, Client hello (1): 
* SSLv3, TLS handshake, Server hello (2): 
* SSLv3, TLS handshake, CERT (11): 
* SSLv3, TLS handshake, Server finished (14): 
* SSLv3, TLS handshake, Client key exchange (16): 
* SSLv3, TLS change cipher, Client hello (1): 
* SSLv3, TLS handshake, Finished (20): 
* SSLv3, TLS change cipher, Client hello (1): 
* SSLv3, TLS handshake, Finished (20): 
* SSL connection using AES256-SHA 
* Server certificate: 
* subject: O=*.github.com; OU=Domain Control Validated; CN=*.github.com 
* start date: 2009-12-11 05:02:36 GMT 
* expire date: 2014-12-11 05:02:36 GMT 
* subjectAltName: api.github.com matched 
* issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certificates.godaddy.com/repository; CN=Go Daddy Secure Certification Authority; serialNumber=07969287 
* SSL certificate verify ok. 
> POST /user/repos HTTP/1.1 
> User-Agent: curl/7.21.3 (x86_64-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18 
> Host: api.github.com 
> Accept: */* 
> Authorization: token S3CR3T 
> Content-Type: application/json; charset=utf-8 
> Content-Length: 62 
> 
< HTTP/1.1 404 Not Found 
< Server: nginx/1.0.4 
< Date: Tue, 27 Dec 2011 03:45:12 GMT 
< Content-Type: application/json; charset=utf-8 
< Connection: keep-alive 
< Status: 404 Not Found 
< X-RateLimit-Limit: 5000 
< ETag: "31b00b4920d3470b70611b10e0ba62a7" 
< X-OAuth-Scopes: public_repo, user 
< X-RateLimit-Remaining: 4976 
< X-Accepted-OAuth-Scopes: repo 
< Content-Length: 29 
< 
{ 
    "message": "Not Found" 
} 
* Connection #0 to host api.github.com left intact 
* Closing connection #0 
* SSLv3, TLS alert, Client hello (1): 
[email protected]:~/projetos/apostilas/4linux-helper$ 

ответ

2

Проверить Oath Scope GitHub documentation:

$ curl -H "Authorization: bearer TOKEN" https://api.github.com/users/technoweenie -I 
HTTP/1.1 200 OK 
X-OAuth-Scopes: repo, user 
X-Accepted-OAuth-Scopes: user 

Вы должны иметь объем repo для того, чтобы иметь право создать репозиторий, как показано вопрос SO «Github v3 API - create a REPO».

repo 

DB доступ для чтения/записи, и Git доступ на чтение к государственным и частным сделкам РЕПО.

ПРИМЕЧАНИЕ. Ваше приложение может запросить области в первоначальном перенаправлении.
Вы можете указать несколько областей, разделив их запятой.

https://github.com/login/oauth/authorize? 
    client_id=...& 
    scope=user,public_repo 
+0

Я знаю, но если вы посмотрите на заголовки, возвращаемых услуг. Я уже зарегистрирован в этих областях: gutomaia

+0

@gutomaia: true, единственная разница - это '' repo' 'вместо '' public_repo', но я полагаю, что у вас есть действительная учетная запись только для управления публичным репо (а не частными). Единственное другое объяснение - это какой-то параметр типа/неправильный. – VonC

+0

К несчастью, в параметрах нет ничего плохого. Если я использую недопустимый доступ к токенам, служба предоставляет несанкционированную ошибку. Я действительно не знаю, почему. Имя метода в порядке, params в порядке, токен в порядке, даже тип содержимого в порядке. Что еще?! – gutomaia

1

попробуйте использовать

curl -v -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d '{"name":"my-new-repo","description":"my new repo description"}' https://api.github.com/user/repos?access_token=S3CR3T 
Смежные вопросы