Github api

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
s837ubc
Beiträge: 133
Registriert: 23.07.2013 14:17:01

Github api

Beitrag von s837ubc » 16.10.2019 18:46:54

Hallo,

in einem Bash-script soll festgestellt werden, ob für ein angegebenes Repository ein Update vorliegt.

Im GitHub soll angeblich eine Angabe "updated at" für ein Repository ausgelesen werden können.

In der Angaben soll das Datum vom letzten Commit-enthalten sein.

Weiß jemand, wie diese Angabe ausgelesen werden kann?

Auf dieser Webseite https://developer.github.com/v3/activit ... #pushevent steht hinter den "updated at" Angaben keine URL.

Später soll diese Angabe mit einem lokalen Datumswert einer Datei verglichen werden. Falls das lokale Datum älter ist, soll der Anwender auf ein Update hingewiesen werden.

Vielen Dank im voraus.

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Github api

Beitrag von cronoik » 16.10.2019 21:53:39

Ich glaube dafuer gibt es keine einzelne Adresse. Was du machen koenntest, waere die commits API zu nehmen:

Code: Alles auswählen

https://api.github.com/repos/:user/:repo/commits/master
und dann das json parsen .commit.committer.date
Zuletzt geändert von cronoik am 19.10.2019 00:41:54, insgesamt 2-mal geändert.
Hilf mit unser Wiki zu verbessern!

s837ubc
Beiträge: 133
Registriert: 23.07.2013 14:17:01

Re: Github api

Beitrag von s837ubc » 17.10.2019 18:23:59

Hallo cronoik,

vielen Dank für den Hinweis auf json. Mit json kann man prima die Daten von github filtern.
cronoik hat geschrieben: ↑ zum Beitrag ↑
16.10.2019 21:53:39
und dann das json parsen $.commit.commit.committer.date
Der Pfad ist nicht ganz richtig. Mit diesem Pfad werden die richtigen Daten ausgelesen: .commit.committer.date
Hier wird z.B. folgendes ausgelesen: "2019-10-16T15:05:49Z"

Jetzt habe ich keinen Schimmer, wie diese Angabe mit dem Datumswert einer Datei verglichen werden kann.

Hast Du eine Idee?

Mit

Code: Alles auswählen

ls --full-time Datei | awk '{ print $6" "$7" "$8 }'
kann das Datum einer Datei ausgelesen werden. z.B.:

2019-10-17 18:14:57.119321309 +0200

Wie können denn die Datumswerte "2019-10-16T15:05:49Z" und "2019-10-17 18:14:57.119321309 +0200" miteinander verglichen werden?

Lösung:

Mit

Code: Alles auswählen

date +%s -d "..."
kann von einem Datum eine Zahl ermittelt werden, die anschließend verglichen werden kann.

Antworten