IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Autenticació

Personal API tokens

Aneu a la URL:

https://github.com/settings/tokens

I creeu un nou token indicant els scopes OAuth. Apunteu el token i autentiqueu-vos amb:

$ curl -u acacha:3321474555db13e51dcf3345f208a974c5b46cf78 https://api.github.com/user

Amb httpie:

$ http -a acacha:3321474555db13e51dcf3345f208a974c5b46cf78 https://api.github.com/user

Recursos:


Crear un personal API token per la API

Es pot utilitzar l'autenticació bàsica:

$ http -a acacha POST https://api.github.com/authorizations < authorization.json

on authorization.json és:

{
  "scopes": [
    "public_repo"
  ],
  "note": "admin script"
}

És a dir heu d'indicar els scopes que desitgeu per al token i una nota amb el nom del personal token.

Us preguntarà la paraula de pas de Github i si l'autenticació és correcta us tornarà quelcom similar a:

{
    "app": {
        "client_id": "00000000000000000000", 
        "name": "admin script", 
        "url": "https://developer.github.com/v3/oauth_authorizations/"
    }, 
    "created_at": "2016-10-29T08:58:14Z", 
    "fingerprint": null, 
    "hashed_token": "4a37539456789f4db3ff8c417581fae9d3cb67d27fab915d4dc2c299061db54e2b", 
    "id": 58130886, 
    "note": "admin script", 
    "note_url": null, 
    "scopes": [
        "public_repo"
    ], 
    "token": "157894563197b89c5645a707f8c1e02639a87549", 
    "token_last_eight": "39a87549", 
    "updated_at": "2016-10-29T08:58:14Z", 
    "url": "https://api.github.com/authorizations/58130886"
}

Ja teniu el token al json guardeu-lo per a fer peticions autenticades i autoritzades amb l'scope public_repo. El nou token creat el podreu consultar a:

https://github.com/settings/tokens

Docs:

Repositoris

Crear un repositori

$ http POST https://api.github.com/user/repos < repo.json 
HTTP/1.1 401 Unauthorized
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
Content-Length: 91
Content-Security-Policy: default-src 'none'
Content-Type: application/json; charset=utf-8
Date: Sat, 29 Oct 2016 07:19:06 GMT
Server: GitHub.com
Status: 401 Unauthorized
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-GitHub-Media-Type: github.v3
X-GitHub-Request-Id: B90D4C33:1597:12A670EE:58144D6A
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1477728931
X-XSS-Protection: 1; mode=block

{
    "documentation_url": "https://developer.github.com/v3", 
    "message": "Requires authentication"
}

On repo.json:

{
  "name": "Hello-World",
  "description": "This is your first repository",
  "homepage": "https://github.com",
  "private": false,
  "has_issues": true,
  "has_wiki": true,
  "has_downloads": true
}

Com podeu veure es requereix està autenticat. Com?

$ http -a acacha:TOKEN_HERE POST https://api.github.com/user/repos < repo.json

El Token ha de tenir el auth scope.

Resources:

Vegeu també

Enallços externs