GitHub vereinfacht Markdown-Nutzung mit Slash-Commands

in  Verschiedenes , ,

GitHub vereinfacht Markdown-Nutzung mit Slash-Commands

Gestern sind die GitHub Markdown Helpers in einer Beta-Version veröffentlicht worden. GitHub führt damit kleine Tools ein, mit denen unterschiedliche Elemente interaktiv eingebunden werden können.

Diese sogenannten Slash Commands werden mit / ausgelöst. Im ersten Schwung gibt es unter anderem die Möglichkeit, ein Issue Template aus dem jeweiligen Repository einzufügen, eine Taskliste zu starten oder einen Code-Block für eine bestimmte Sprache zu erstellen. Gegebenenfalls werden weitere Fragen gestellt, so ist bei einer Tabelle die Anzahl der gewünschten Spalten auszuwählen.

GitHub Dokumentation nun in weiteren Sprachen

in  Verschiedenes , ,

GitHub Dokumentation nun in weiteren Sprachen

Die Dokumentation von GitHub war seither noch nicht in deutscher Sprache verfügbar. Nun wurden jedoch die Arbeiten an einer Übersetzung in vier weitere Sprachen aufgenommen.

Damit werden nun offiziell die folgenden Sprachen unterstützt:

  • Brasilianisch
  • 🇨🇳 Chinesisch
  • 🇩🇪 Deutsch
  • 🇬🇧 Englisch
  • 🇫🇷 Französisch
  • 🇯🇵 Japanisch
  • 🇰🇷 Koreanisch
  • Portugiesisch
  • 🇷🇺 Russisch
  • 🇪🇸 Spanisch

Der Einstiegspunkt für die deutsche Sprache befindet sich unter: https://docs.github.com/de

Abhängigkeiten automatisch aktualisieren mit Renovate

in  Builds & Tests , , ,

Abhängigkeiten automatisch aktualisieren mit Renovate

Um Dependencies aktuell zu halten, wird bei GitHub oft und gerne der Dependabot eingesetzt. Mit Renovate existiert allerdings eine äußerst flexible Alternative, die im Folgenden kurz vorgestellt wird.

Zu den wichtigsten Stärken von Renovate gehören folgende Eigenschaften:

  • Updates können anhand vielfältiger Kriterien in gemeinsame Merge Requests gruppiert werden. Bei einem Symfony-Update muss man somit nicht mehr jede Symfony-Komponente einzeln aktualisieren und mergen.
  • Bestimmte Updates können bei Bedarf automatisch eingespielt werden.
  • Die Häufigkeit von Merge Requests kann ebenso eingestellt werden wie diverse Standardvorgaben, wie etwa die zuzuordnenden Bearbeiter, Reviewer oder Labels.
  • Über eine Onboarding-Funktionalität können neue Repositories automatisch mit verarbeitet werden.
  • Unterstützt über 60 verschiedene Paketierungsformate. Auch abweichende und individuelle Konventionen können konfiguriert werden.
  • Eignet sich insgesamt perfekt für Monorepos.
  • Ein Dashboard zeigt den Status aller Dependencies im Überblick.
  • Es funktioniert auf mehreren Plattformen, so gibt es unter anderem Support für GitHub, GitLab und BitBucket.

Für den Einstieg und weiterführende Informationen ist ein Blick in die Doku zu empfehlen.

Endlich in der GitHub Issues Beta

in  Verschiedenes , , ,

Endlich in der GitHub Issues Beta

Seit knapp eineinhalb Jahren nutzen wir MeisterTask für unser persönliches Task Management im Rahmen von Kundenprojekten sowie eigenen Vorhaben - und sind immer noch begeistert von diesem Tool 😍

Alle Tickets, welche spezifisch zu einer bestimmten Softwarekomponente gehören, liegen allerdings in GitHub beim jeweiligen Repository - insbesondere da viele der Dinge, an denen wir arbeiten, Open Source Projekte sind. Es gibt in GitHub auch die Möglichkeit für sogenannte Project boards, mit denen sich Tickets Kanban-artig organisieren lassen. Allerdings war das bislang eher rudimentär umgesetzt.

GitHub erlaubt Vorlagen für strukturierte Ticket-Formulare

in  Verschiedenes , ,

GitHub erlaubt Vorlagen für strukturierte Ticket-Formulare

Schon seit einiger Zeit ist es in GitHub möglich, Vorlagen für unterschiedliche Arten von Tickets zu hinterlegen. Hierbei handelt es sich um Markdown-Dateien, mit denen sich Inhalt der Beschreibung sowie weitere Angaben, wie Labels und etwaige Bearbeiter vorbelegen lassen.

Für öffentliche Repositories ist nun auch ein Beta-Programm für YAML-basierte Formulardefinitionen gestartet. Diese Funktion bietet einen deutlich höheren Freiheitsgrad, indem sich mehrere Formularfelder beschreiben lassen. Wie im obigen Screenshot ersichtlich, können hiermit zum Beispiel Dropdowns/Auswahllisten verwendet und gewünschte Angaben als verpflichtend gekennzeichnet werden.

Abhängigkeiten automatisch aktualisieren mit Dependabot

in  Builds & Tests , ,

Abhängigkeiten automatisch aktualisieren mit Dependabot

Vor knapp eineinhalb Jahren haben wir gezeigt, wie man die Aktualisierung verwendeter Drittkomponenten mit GitHub Actions automatisieren kann.

Zwischenzeitlich sind wir hierbei auf den Dependabot umgestiegen. Dieses Tool wird bei GitHub schon länger zum Aufspüren und Melden von Sicherheitsproblemen verwendet. Es ist damit jedoch auch möglich, Updates zu suchen und bereitzustellen.

Im Gegensatz zu dem früheren Vorgehen gibt es dabei folgende Unterschiede und Vorteile:

  • Für jede Komponente wird ein eigener Pull Request erstellt. So lassen sich mögliche Probleme in den Builds unabhängig erkennen und die Updates lassen sich selektiv mergen.
  • Die enthaltenen Commits sowie etwaige Release Notes und Changelogs werden direkt im Pull Request zur Verfügung gestellt, um die damit einhergehenden Änderungen transparent zu machen.
  • Die Pull Requests werden bei Änderungen im Zielbranch automatisch via Rebase aktualisiert, um Merge-Konflikten vorzubeugen.
  • Gibt es für eine Komponente eine neue Version, wird ein möglicherweise noch offener Pull Request mit einer früheren Version automatisch mit einem entsprechenden Kommentar (Superseded by #123) geschlossen.
  • Wie im Screenshot zu sehen ist, kann man in Form von Kommentaren mit Dependabot interagieren und so das Verhalten steuern.
  • Es gibt ein einheitliches Interface für unterschiedliche Arten von Paketmanagern. So werden nicht nur Composer, npm und yarn unterstützt, sondern zum Beispiel auch Maven, pip, Terraform und auch GitHub Actions.

Ein Beispiel

Mit der folgenden Konfiguration wird Dependabot die Aktualisierungen für PHP-Vendors (composer), JavaScript-Vendors (npm) und die in den CI-Builds verwendeten Komponenten (github-actions) übernehmen:

Hugo-Seiten im Netzwerk entwickeln und testen

in  Builds & Tests , , , ,

Hugo-Seiten im Netzwerk entwickeln und testen

Hugo ist ein Generator für statische Seiten, welcher auf der Programmiersprache Go basiert. Die Inhalte werden mit Markdown verwaltet und dynamisch in HTML umgewandelt. Dies ist für die meisten kleineren Projekte interessant, weil ausreichend und im Vergleich zu einem dynamischen Content Management System einfacher zu handhaben; zudem sind statische Seiten auch in Bezug auf Sicherheit und Performanz unschlagbar (siehe auch: Vorteile statischer Seiten).

Der Build lässt sich dann z. B. mit GitHub Actions durchführen (zum Einsatz kommt hierfür z. B. diese Action), wobei die resultierende Seite direkt mit GitHub Pages betrieben werden kann. Wer den Komfort einer UI zur Pflege der Inhalte nicht missen möchte, kann ein entsprechendes Frontend obendrauf packen.

Sektionen zum Ein- und Ausklappen ohne JavaScript und in Markdown nutzen

in  Basics , , , ,

Sektionen zum Ein- und Ausklappen ohne JavaScript und in Markdown nutzen

Der HTML5-Standard bietet einige Tags, mit denen sich interaktive Elemente abbilden lassen. Ein sehr nützliches Beispiel sind die Tags <details> und <summary>: sie erlauben die Erstellung von aufklappbaren Bereichen. Früher konnten solche Funktionen zum dynamischen Öffnen und Schließen von Teilbereichen nur mit Hilfe von JavaScript umgesetzt werden. Diese Einschränkung ist somit entfallen.

In diesem Beitrag wird kurz gezeigt, wie sich die zwei Tags einsetzen lassen. Außerdem wird die Verwendung anhand eines praktischen Anwendungsfalls demonstriert.

Zahlreiche Neuerungen und Funktionen bei GitHub

in  Verschiedenes , ,

Zahlreiche Neuerungen und Funktionen bei GitHub

Im Rahmen der GitHub Konferenz “Universe” wurden neue Funktionen und Verbesserungen vorgestellt. Für jeden dürfte hier etwas dabei sein.

Nachfolgend die für mich wichtigsten Neuerungen in der Kurzübersicht:

  • Das Mergen von Pull Requests kann automatisiert werden, basierend auf vordefinierten Erforderlichkeiten, wie etwa notwendige Reviews und Prüfungswerkzeuge.
  • Mit den Discussions lässt sich nun auch jedwede, von Aufgaben/Tickets unabhängige Kommunikation, wie Support und sonstige Abstimmungen, auf der GitHub Plattform durchführen.
  • GitHub unterstützt jetzt offiziell einen Dark Mode.
  • Auch Unternehmen können ab sofort GitHub Sponsors nutzen, um Open Source Projekte zu unterstützen.
  • Workflows können mit einer Visualisierung übersichtlicher dargestellt werden (siehe auch diesen Beitrag).

Eine Gesamtliste mit allen anstehenden Veränderungen kann direkt auf GitHub angeschaut werden.

GitHub integriert Code Security Scanner

in  Builds & Tests , , ,

GitHub integriert Code Security Scanner

Im offiziellen GitHub Changelog werden regelmäßig Beiträge über unterschiedliche Neuerungen und Innovationen auf der GitHub Plattform veröffentlicht, zum Beispiel in Bezug auf Funktionen in der Oberfläche, GitHub Actions oder anderweitige Aktivitäten. Gestern erschien dort ein Artikel darüber, dass nun die Funktionalität zum Scannen von Code auf Sicherheitsprobleme allgemein verfügbar gemacht worden ist. Weitere Informationen hierzu lassen sich diesem Beitrag entnehmen. Neben der von GitHub forcierten CodeQL Analyse stehen auch alternative Analysewerkzeuge von Drittanbietern zur Integration bereit.