Fryboyter

Wie Anfänger bei Projekten auf Github mitwirken können

Oft findet man auf Github das eine oder andere Projekt, bei dem man merkt, dass man auch mithelfen könnte, obwohl man nicht programmieren kann. Zum Beispiel, indem man eine Dokumentation erstellt oder verbessert. Oder indem man einfach Sprachdateien erstellt.

Änderungen kann man aber bei vielen Projekten nicht einfach per E-Mail an den Entwickler schicken, sondern muss hierfür einen Pull Request bei Github erstellen. Spätesten an dieser Stelle klinken sich dann oft diejenigen aus, die mit Programmieren nichts am Hut haben. Zumal man oft sogar ziemlich schroff abgefertigt wird, wenn man es trotzdem per E-Mail versucht (was ich leider aus eigener Erfahrung bestätigen kann).

Auf Github wurde nun ein Projekt gestartet, das Anfängern den Einstieg erleichtern soll. So wird zum Beispiel erklärt, wie man ein Projekt forkt, Änderungen vornimmt und dann schlussendlich einen Pull Request erstellt. Zudem gibt es noch tiefer gehende Anleitungen, um zum Beispiel einen Commit zurückzuziehen oder wie man bei einem Merge Conflict verfährt. Teile dieser Anleitung sind bereits auch in diverse Sprachen übersetzt worden, sodass man nicht einmal der englischen Sprachen mächtig sein muss um dieser folgen zu können.

Linux | OSBN

Aktuellste Programmversion per Script von Github laden

Einige Projekte auf Github bieten Nightly Builds an. Also Programmversionen die in der Regel über Nacht und automatisiert erstellt werden. Die Frage ist nur, wie kann man sich diese herunterladen, wenn sich der Dateiname ändert?

Nehmen wir als Beispiel mal den Editor micro. Bei diesem Projekt werden Nightly Builds für x Architekturen angeboten. Für ARM ist zum Beispiel gerade die Datei “micro-1.3.2-10-linux-arm.tar.gz” aktuell. Morgen vielleicht “micro-1.3.2-11-linux-arm.tar.gz” oder “micro-1.3.2-14-linux-arm.tar.gz”. Hier sehe ich zwei Lösungen. Entweder man lädt die Datei manuell herunter oder man automatisiert den Download. Ich bevorzuge eindeutig Möglichkeit Nummer 2. Allerdings war mal wieder die Lösung das Problem. Mittels curl, jq und wget konnte ich das Problem aber lösen. Folgendes Script ist dabei entstanden.

#!/bin/sh
arch=linux-arm
link=$(curl -s https://api.github.com/repos/zyedidia/micro/releases/tags/nightly | jq -r ".assets[] | select(.name | test(\"${arch}\")) |  .browser_download_url")
wget $link

In Zeile zwei gibt man die gewünschte Architektur an. Eine Übersicht der vorhandenen Möglichkeiten findet man unter https://github.com/zyedidia/micro/releases.

Zeile drei greift auf die API von Github zu und mittels jq wird der gewünschte Downloadlink erstellt.

Zeile 4 lädt die gewünschte Datei herunter.

Vermutlich gibt es einfachere und bessere Lösungen. Aber das obige Script funktioniert und reicht mir für den Hausgebrauch.

Linux | OSBN