Användarvisningsbild
Kza
Inlägg: 113
Blev medlem: 30 nov 2014, 12:34

Ladda ner senaste fil från github

14 jul 2016, 20:26

Hej mina vänner.

Har ett cronjob som kör wget och laddar ner en fil från github var tredje timme. Men det är inte särskilt smidigt, då 3 timmar är för länge för vissa o vänta, och att hämta en o samma fil var 10nde minut är inte schysst mot github heller.

Så jag tittade lite på wget's -N parameter, men github har ingen last-modified header tydligen:
"Last-modified header missing -- time-stamps turned off"

Har ni något tips på hur jag kan göra för att få ner filen när nyaste har släppts, snabbare? Utan o tanka den om och om igen. Utan bara kolla var 5 minut om den ändrats, och har den det så laddas den ner.

Tack på förhand.
"No references to the need to fight terror can be an argument for restricting human rights."
- Vladimir Putin

Användarvisningsbild
tomasuh
Respekterad Medlem
Inlägg: 87
Blev medlem: 12 dec 2014, 13:08

Re: Ladda ner senaste fil från github

14 jul 2016, 21:52

Deras API använder modify headers i flera fall, se https://developer.github.com/v3/repos/contents/

Kod: Markera allt

curl -i https://api.github.com/repos/användare/reponamn/filnamn -H "If-Modified-Since: Sun, 29 May 2016 09:06:20 GMT"

Exempelkörning med två olika timestamp, filen läggs base64 encodad i content fältet:

Kod: Markera allt

tomasuh@crunch:~$ curl -i https://api.github.com/repos/MarioVilas/google/readme -H "If-Modified-Since: Mon, 30 May 2016 09:06:20 GMT"
HTTP/1.1 304 Not Modified
Server: GitHub.com
Date: Thu, 14 Jul 2016 19:50:23 GMT
Status: 304 Not Modified
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 52
X-RateLimit-Reset: 1468528904
Cache-Control: public, max-age=60, s-maxage=60
Vary: Accept
ETag: "686d1dc5c04394f19740d01cc78cd504"
Last-Modified: Mon, 29 Feb 2016 17:15:30 GMT
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
Access-Control-Allow-Origin: *
Content-Security-Policy: default-src 'none'
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
Vary: Accept-Encoding
X-Served-By: 2d7a5e35115884240089368322196939
X-GitHub-Request-Id: 2EEF7A54:091D:727510:5787ECFE

tomasuh@crunch:~$ curl -i https://api.github.com/repos/MarioVilas/google/readme -H "If-Modified-Since: Mon, 30 May 2011 09:06:20 GMT"
HTTP/1.1 200 OK
Server: GitHub.com
Date: Thu, 14 Jul 2016 19:50:36 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 995
Status: 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 51
X-RateLimit-Reset: 1468528904
Cache-Control: public, max-age=60, s-maxage=60
Vary: Accept
ETag: "686d1dc5c04394f19740d01cc78cd504"
Last-Modified: Mon, 29 Feb 2016 17:15:30 GMT
X-GitHub-Media-Type: github.v3
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
Access-Control-Allow-Origin: *
Content-Security-Policy: default-src 'none'
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
Vary: Accept-Encoding
X-Served-By: 318e55760cf7cdb40e61175a4d36cd32
X-GitHub-Request-Id: 2EEF7A54:091D:727BAD:5787ED0C

{
  "name": "README.md",
  "path": "README.md",
  "sha": "8a5ae04ef9818cb2517e0352fa47bb4420d22aae",
  "size": 110,
  "url": "https://api.github.com/repos/MarioVilas/google/contents/README.md?ref=master",
  "html_url": "https://github.com/MarioVilas/google/blob/master/README.md",
  "git_url": "https://api.github.com/repos/MarioVilas/google/git/blobs/8a5ae04ef9818cb2517e0352fa47bb4420d22aae",
  "download_url": "https://raw.githubusercontent.com/MarioVilas/google/master/README.md",
  "type": "file",
  "content": "Z29vZ2xlCj09PT09PQoKR29vZ2xlIHNlYXJjaCBmcm9tIFB5dGhvbi4KCmh0\ndHBzOi8vYnJlYWtpbmdjb2RlLndvcmRwcmVzcy5jb20vMjAxMC8wNi8yOS9n\nb29nbGUtc2VhcmNoLXB5dGhvbi8=\n",
  "encoding": "base64",
  "_links": {
    "self": "https://api.github.com/repos/MarioVilas/google/contents/README.md?ref=master",
    "git": "https://api.github.com/repos/MarioVilas/google/git/blobs/8a5ae04ef9818cb2517e0352fa47bb4420d22aae",
    "html": "https://github.com/MarioVilas/google/blob/master/README.md"
  }

Användarvisningsbild
Kza
Inlägg: 113
Blev medlem: 30 nov 2014, 12:34

Re: Ladda ner senaste fil från github

15 jul 2016, 09:51

Tack så jättemycket! :)
"No references to the need to fight terror can be an argument for restricting human rights."
- Vladimir Putin