AWS Germany – Amazon Web Services in Deutschland

Wir stellen vor: GitLab Duo mit Amazon Q

Von Matheus Guimaraes übersetzt durch David Surey

Amazon Q Developer hat den traditionellen Entwicklungsworkflow transformiert, indem es eine breite Palette von generativen KI-Fähigkeiten in die Umgebungen integriert, in denen Entwickler arbeiten. Die nahtlose Integration hilft, den Fokus zu bewahren und beschleunigt gleichzeitig eine Vielzahl von Entwicklungsaufgaben über das Code schreiben hinaus, wodurch die Produktivität gesteigert wird.

Mit seiner großen Entwickler-Community ist GitLab[EN, EXTERN] eine beliebte DevSecOps-Plattform, auf der viele Entwicklungsteams ihre Zeit mit dem Aufbau und der Zusammenarbeit an Projekten verbringen. Deshalb freuen wir uns sehr, GitLab Duo mit Amazon Q vorzustellen. Dies ist eine neue Integration, die die Leistungsfähigkeit der Amazon Q Developer-Agentenfunktionen zu GitLab bringt und GitLab Duo[EN, EXTERN] nutzt, um es in eine einheitliche Entwicklungserfahrung zu verwandeln, die KI-gesteuerte DevSecOps ermöglicht. GitLab Duo mit Amazon Q nutzt KI-Agenten, um komplexe, mehrstufige Aufgaben wie die Entwicklung neuer Funktionen und Codebase-Upgrades für Java 8 und 11 zu unterstützen. Es bietet auch erweiterte Funktionen für Code-Reviews und Unit-Tests – alles innerhalb der vertrauten GitLab-Plattform.

Die Interaktion mit Amazon Q Developer ist durch GitLab Quick Actions unkompliziert zu nutzen: Tippen Sie einfach /q direkt in die Problembeschreibung, einen allgemeinen Kommentar oder einen Merge-Request-Kommentar ein, um die Interaktion zu starten und beschleunigen Sie Ihre täglichen Aufgaben oder gehen Sie komplexere Workflows an.

Im Folgenden erhalten Sie einen kurzen Überblick.

Funktionsentwicklung

Lassen Sie mich Ihnen zuerst zeigen, wie einfach es ist, Amazon Q Developer in Ihrer GitLab-Umgebung zu nutzen, wenn Sie neue Funktionen entwickeln oder bestehende verbessern.

Stellen Sie sich vor, Sie arbeiten an einer Webanwendung und Ihnen wurde die Aufgabe zugewiesen, einen vollständigen Anmeldeprozess zu erstellen. Sie können Amazon Q Developer bitten, den gesamten Code für Sie basierend auf dem Inhalt eines Issues zu generieren, indem Sie den Befehl /q dev als Kommentar hinzufügen.

Amazon Q Developer analysiert Ihre gesamte Codebasis und generiert neuen Code, sei es in Form von Aktualisierungen bestehender Dateien oder völlig neuen. Nach der Generierung erstellt Amazon Q Developer automatisch einen Merge-Request und fügt einen Eintrag zur Aktivitätshistorie mit einem Link hinzu, damit dieser überprüft werden kann.

Auf der Seite zur Überprüfung des Merge-Requests werden Sie zwei interessante Punkte feststellen. Zunächst ist ein Kommentar von Amazon Q Developer zu sehen, der den Kontext des Requests mit Anweisungen erläutert, wie Sie Änderungen anfordern können, wenn Sie weiter iterieren möchten. Des Weiteren wird ein Folgekommentar angezeigt, in dem darauf hingewiesen wird, dass der generierte Code Quellmaterial von Drittanbietern enthält. Sie haben die Möglichkeit, eine Datei herunterzuladen, um den Originalcode nachzuschlagen und selbst zu entscheiden, ob Sie diesen in Ihre Codebasis aufnehmen möchten oder nicht. Auf diese Weise können Sie Open Source verantwortungsvoll nutzen und gleichzeitig Aufzeichnungen für die Rückverfolgbarkeit und Prüfung führen.

Bevor Sie fortfahren, können Sie den Code durchsehen und Inline-Kommentare hinzufügen, genauso wie Sie es bei jedem anderen Merge-Request tun würden. Anschließend können Sie Amazon Q Developer beauftragen, basierend auf den Kommentaren Änderungen am Code vorzunehmen und solange weiter zu iterieren, bis Sie mit den Ergebnissen vollständig zufrieden sind. Angenommen, die Codierungsstandards Ihres Unternehmens schreiben die Implementierung von Logging für wichtige Operationen in Ihrem Code vor. Dies war jedoch nicht in den ursprünglichen Anforderungen in der Problembeschreibung enthalten, bevor der Befehl /q dev ausgeführt wurde. Sie können Amazon Q Developer dennoch nutzen, um diesen Code nahtlos während des Überprüfungsprozesses hinzuzufügen.

Um dies zu tun, navigieren Sie zur Registerkarte „Änderungen“ (Changes) und finden Sie die relevanten Codezeilen. Fügen Sie dann Inline-Kommentare hinzu, wie Sie es bei der Überprüfung eines Entwickler-Merge-Requests tun würden. Unter Zeile 39 wird ein Kommentar mit dem Text „Logging hinzufügen“ eingefügt, um einen Teil des Codes hervorzuheben, der Fehler beim Aufruf der Anmelde-API behandelt. Darunter wird ein weiterer Kommentar mit dem Text „/q dev“ hinzugefügt. Dieser eigenständige Kommentar löst eine schnelle Aktion aus, um Amazon Q Developer aufzurufen. Es ist daher wichtig, ihn separat zu halten. Amazon Q Developer wird dann eine neue Revision basierend auf allen bereitgestellten Kommentaren generieren.

Es sei darauf hingewiesen, dass der Befehl /q dev von überall in GitLab ausgegeben werden kann, wo Kommentare unterstützt werden. Obgleich es hier in Zeile 39 zweckmäßig war, ihn hinzuzufügen, wäre das Ergebnis dasselbe, wenn der Befehl als Kommentar auf der Übersichtsseite oder gegen eine andere Codezeile auf der Seite „Merge-Requests“ ausgegeben worden wäre.

Nach Fertigstellung erfolgt eine Benachrichtigung durch Amazon Q Developer mittels eines weiteren Kommentars zur Merge-Request-Historie. Es wird erneut darauf hingewiesen, dass der generierte Inhalt Open-Source-Code enthält und weitere Informationen bereitstellt, um eine Prüfung des Merge vor der Annahme zu ermöglichen. Bei näherer Betrachtung wird ersichtlich, dass die Logger-Bibliothek verwendet wurde, was angesichts der Anfrage sinnvoll ist.

Bei der Überprüfung des Codes fällt auf, dass Amazon Q Developer nicht nur die Aufrufe zum Protokollieren von Operationen dort hinzugefügt hat, wo sie stattfinden, sondern auch den Kontext genutzt hat, um die relevanten Protokollierungsstufen wie Info und Warnung hinzuzufügen. Des Weiteren hat der Entwickler den Code an anderen Stellen modifiziert, um sicherzustellen, dass der Build erfolgreich verläuft. Beispielsweise wurde am Anfang der Datei eine Import-Anweisung hinzugefügt und die Logger-Variable initialisiert.

Der neue Entwicklungsablauf ermöglicht Ihnen einen schnelleren Übergang von den Anforderungen zum Code. Sie können sich dabei auf Amazon Q Developer verlassen, um die Aufgaben bequem in Ihrer GitLab-Umgebung zu erledigen. Nach dem Einreichen eines Merge-Requests ist eine Code-Überprüfung erforderlich. Auch hierfür können Sie GitLab Duo mit Amazon Q Developer nutzen, um den Prozess zu beschleunigen und die Qualität zu verbessern.

Durchführung von Code-Reviews
Als Nächstes wollen wir mit einer anderen Codebasis arbeiten, in diesem Fall einer Java-Anwendung. Um den unterstützten Code-Review-Prozess zu starten, geben Sie auf der Übersichtsseite des Merge-Requests einen Kommentar mit dem Text "/q review" ab. Amazon Q Developer fügt automatisch einen Kommentar zur Historie hinzu, der Sie darüber informiert, dass eine Überprüfung des Merge begonnen wurde. Dabei werden alle Änderungen auf Sicherheitslücken, Qualitätsprobleme wie Code, der nicht den Best Practices entspricht, und andere potenzielle Probleme mit dem Code gescannt.

Nach Abschluss wird jeder Fund als Kommentar hinzugefügt. Der Kommentar enthält einen Ausschnitt des problematischen Codes, eine Beschreibung des Problems sowie eine Einstufung des Schweregrads.

Sie haben zudem die Möglichkeit, sich an Amazon Q Developer zu wenden, um eine Lösung zu erfragen. Um eine Antwort auf den Kommentar zu den Ergebnissen zu erhalten, geben Sie den Befehl /q fix ein. Daraufhin wird Ihnen mitgeteilt, dass eine Lösung für das Problem generiert wurde. Anschließend wird im selben Thread mit einer Lösung fortgefahren, die Sie überprüfen können. Zudem bietet Ihnen Amazon Q Developer eine Diff-Ansicht der Änderungen sowie die Möglichkeit, diese zu akzeptieren und zu übernehmen.

Aktualisierung von Legacy-Code
GitLab Duo unterstützt Sie nicht nur bei der Erstellung neuen Codes und neuer Funktionen, sondern auch bei der Automatisierung und Beschleunigung der Migration von Codebasen von Java 8 oder 11 auf Java 17. Hierzu erstellen Sie bitte zunächst ein neues Issue mit einem aussagekräftigen Titel wie „Projekt auf Java 17 aktualisieren“. Fügen Sie dann im Feld Beschreibung den Befehl /q transform hinzu.

Nach Erstellung des Issues wird Amazon Q Developer wie gewohnt einen Kommentar zur Historie des Issues anfügen, um Sie über die Migration der Codebasis zu informieren. Nach Abschluss der Arbeiten durch Amazon Q Developer wird ein aktualisierter Kommentar mit einem Link zum Merge-Request bereitgestellt. Dieser Link führt zu einem Migrationsplan, der während des Wartens eingesehen werden kann. Der Plan enthält eine ausklappbare Schritt-für-Schritt-Liste der zu unternehmenden Aktionen mit detaillierten Informationen sowie Links zu weiteren Informationsquellen.

Der erstellte Merge-Request ist ebenfalls sehr detailliert. Er enthält allgemeine Statistiken wie die Anzahl der migrierten Codezeilen und die Gesamtdauer, unter anderem. Außerdem enthält er einen vollständigen Bericht mit Links, die Sie zur Navigation zu verschiedenen Abschnitten verwenden können. So können Sie die Zusammenfassung des Build-Logs lesen, Änderungen in Abhängigkeiten überprüfen, alle geänderten Dateien inspizieren und mehr.

Wenn Sie den Code überprüfen möchten, können Sie Änderungen, sofern Sie diese für akzeptabel befinden, entweder vollständig oder teilweise übernehmen. Dieses Vorgehen entspricht dem üblichen Vorgehen bei Merge-Requests.

Fazit

GitLab Duo mit Amazon Q vereint die umfassendste DevSecOps-Plattform mit dem leistungsfähigsten KI-gestützten Assistenten für Softwareentwicklung. Gemeinsam bieten GitLab Duo und Amazon Q eine nahtlose Entwicklererfahrung mit neuen Möglichkeiten zur Beschleunigung der Funktionsentwicklung und Transformation von Workloads. Dabei bleiben die gewohnten Arbeitsabläufe innerhalb der vertrauten GitLab-Umgebung erhalten.

Wissenswerte Dinge

  • Erste Schritte – GitLab Duo mit Amazon Q ist in der Vorschau für GitLab Self-Managed-Kunden mit einem Ultimate-Abonnement verfügbar. Lesen Sie mehr darüber, wie Sie beginnen können[EN, EXTERN].
  • Verfügbarkeit – GitLab Duo mit Amazon Q ist jetzt in der Vorschau für alle GitLab Self-Managed-Kunden mit einem Ultimate-Tier-Abonnement verfügbar.

Matheus Guimaraes | @codingmatheus

Matheus Guimaraes begann seine Karriere vor über 22 Jahren als Junior-Videospielprogrammierer, als C/C++ noch die Welt beherrschte und HTML ein Bonuskurs war. Vom Juniorentwickler zum CTO und allen Positionen dazwischen hat Matheus seine Leidenschaft für die Rolle bewahrt, die Technologie dabei spielt, die Gegenwart mit all den Möglichkeiten für unsere Zukunft zu verbinden.