Blog

Wie Copilot/AI mir bei meiner täglichen Arbeit hilft

Rob Bos

Aktualisiert Oktober 15, 2025
5 Minuten

Während eines Innovationstages bei der Arbeit musste ich zusätzlichen Code und eine neue Anwendung erstellen. Ich wollte die neu veröffentlichten Deployment Protection Rules ausprobieren, die Ihnen dabei helfen können, zu schützen, wann ein Job in GitHub Actions Ihre Anwendung in eine Umgebung ausrollen kann.

Für die Regeln zum Schutz der Bereitstellung ist eine neue GitHub App erforderlich, die ausgelöst werden kann, wenn eine Umgebung anvisiert wird. Diese App kann dann ihre eigenen Prüfungen durchführen und den Status über einen Callback-Webhook an GitHub zurückmelden.

Um loszulegen, brauchte ich eine neue GitHub App, die den Webhook von GitHub empfangen kann. Da ich bereits eine Azure Function App habe, dachte ich daran, ihr eine weitere HttpTrigger-Funktion hinzuzufügen, damit ich die Nutzlast protokollieren und daraus lernen kann (die Nutzlast ist noch nicht dokumentiert).

AI generiert Code mit der Aufforderung
Das Bild wurde mit Craiyon.ai unter Verwendung der folgenden Eingabeaufforderung erstellt: sketched photo with some realism of an AI generating code.

Gewöhnlicher Fluss

Normalerweise würde ich mit der Suche nach den Dingen beginnen, die ich brauche: eine Dokumentation für das Hosten eines Endpunkts, der die Webhook-Nutzdaten empfängt, die Suche nach einer App, die die Benutzeranmeldung verarbeitet, usw. Das kann leicht Tage dauern, bis ich die Dinge so weit habe, dass sie für einen POC gut genug sind. Stattdessen habe ich KI-Tools zur Hilfe genommen und hatte die Dinge in wenigen Stunden zum Laufen gebracht.

Schritt 1: Erstellen Sie eine neue Azure-Funktion

Ich wusste, dass ich einen HttpTrigger benötigte und wollte gerade nach dessen Deklaration suchen, als ich mich daran erinnerte, dass ich bereits GitHub Copilot for Chat getestet hatte, das sich in der technischen Vorschau befindet, so dass ich nicht viel darüber sagen kann. Ich bat Copilot, die Funktionsdefinition für mich zu schreiben und siehe da: Es schlug den richtigen Code vor, einschließlich der Protokollierung der eingehenden Nutzdaten. Mit diesem Code konnte ich die Funktion veröffentlichen und sie als Webhook von einer neuen GitHub App aus konfigurieren.

Screenshot des Azure-Funktionsprotokolls, der die deployment_callback_url zeigt

Aus den Protokollen geht hervor, dass die Nutzlast die normalen Informationen sendet, die Sie erwarten würden, wie den Kontext für den Auslöser (in diesem Fall wurde workflow_dispatch von meinem Benutzerkonto ausgelöst) und die Callback-URL, die verwendet werden kann, um den Status der Prüfung zurückzumelden. Der Rückruf hat die folgende Form: https://api.github.com/repos/{OWNER}/{REPO}/actions/runs/{RUNID}/deployment_protection_rule.

Das bedeutet, dass sie eine genau definierte URL verwendet, die ich einfach als GitHub App zum Testen aufrufen kann, um zu sehen, ob sie funktioniert. Ich habe die Deployment Protection Rule mit meiner neuen GitHub App auf der Grundlage eines bestehenden Workflows konfiguriert (Copilot hat mir hier sehr geholfen) und sie in einem Workflow getestet, um die Callback-URL aufzurufen.

Schritt 2: Erstellen Sie eine neue node.js-App für die Benutzerkonfiguration

Ein wichtiger Teil meiner Einrichtung mit der GitHub App wird sein, dass der Benutzer die Einstellungen für seine Umgebung konfigurieren kann. Das bedeutet, dass ich eine Möglichkeit benötige, eine App zu hosten, die den OAuth-Flow mit GitHub abwickeln und die Einstellungen in einer Datenbank speichern kann.

Ich bin kein JavaScript-Entwickler, der genau weiß, wie man damit anfängt, aber ich habe KI-Tools, die mir dabei helfen können. Die einfachste Option, die ich habe und die kostenlos ist, ist die Bing-Integration in Edge. Hier ist meine Eingabeaufforderung: How can I get started with a simple webapplication based on node that uses GitHub authentication for the user to login and then retrieve information as that user: Screenshot der Eingabeaufforderung und des Ergebnisses

Hier sehen Sie einen Ausschnitt aus der resultierenden App:

Screenshot des npm-Codes

Es enthielt sogar die Schritte zum Speichern der Konfigurationseinstellungen aus der GitHub App in der .env Datei. Ich konnte das Beispiel einfach kopieren und den Code in die App einfügen.

Screenshot der .env-Einrichtung und der Anmeldung mit der 'Passport'-Bibliothek

Beim lokalen Ausführen der App trat ein Fehler auf, aber ich konnte die Fehlermeldung einfach kopieren und nach der gleichen Konversation auf Bing suchen. Das erste Ergebnis war die richtige Antwort, also konnte ich sie einfach noch einmal kopieren (npm install express-session) und der App hinzufügen.

Beispiel für den Fehler

Unten sehen Sie den funktionierenden Redirect für die Benutzerauthentifizierung: Der Screenshot zeigt die Autorisierung der App mit dem GitHub-Login für meinen Benutzer und die App gegen meine localhost:3000-App.

Generierter Code

Der generierte Code war nicht perfekt: Er hat einige Dinge aus dem Code, auf den er trainiert wurde, aufgegriffen, die verbessert werden können. GitHub Copilot sollte diese Art von Sicherheitsproblemen bei der Codegenerierung verhindern, aber ich habe die KI von Bing verwendet, um diesen Teil des Codes zu generieren.

Dies beweist, dass selbst bei der Verwendung von KI zur Codegenerierung die Einrichtung von Sicherheits-Pipelines sehr wichtig ist. Glücklicherweise hat GitHub die erweiterten Sicherheitsfunktionen für öffentliche Repos kostenlos zur Verfügung gestellt, so dass ich den Code mit CodeQL scannen konnte:

Screenshot mit einer CodeQL-Warnung über das Cookie des Benutzers, das im Klartext an den Server zurückgeschickt wird

Wenn Sie mehr über GitHub Advanced Security erfahren möchten, dann schauen Sie sich meinen LinkedIn Learning Kurs dazu an: LinkedIn Lernen.

Ich könnte dann den generierten Code verwenden, um loszulegen, und ihn mit Hilfe der verfügbaren Sicherheitstools verbessern, um ihn noch sicherer zu machen.

Fazit

Und damit war der größte Teil meiner Einrichtung (die neue Azure-Funktion und die neue node.js-App) erledigt, ohne dass ich viel Code schreiben musste und trotzdem alles so funktionierte, wie ich es wollte.

Seien Sie sich bewusst, dass ich genug Erfahrung mit diesen Themen habe, um sowohl zu wissen, worauf ich achten muss, als auch, wie ich Fehler in meinem Code finden und beheben kann. Ich bin sicher, wenn ich ein Anfänger wäre, hätte ich viel mehr Fragen gehabt und hätte viel mehr recherchieren müssen, um zum gleichen Ergebnis zu kommen.

Ich bin wirklich gespannt, was die Zukunft für Copilot und KI im Allgemeinen bereithält. Ich bin sicher, dass es mir und vielen anderen helfen wird, mehr in weniger Zeit zu erledigen.

Verfasst von

Rob Bos

Rob has a strong focus on ALM and DevOps, automating manual tasks and helping teams deliver value to the end-user faster, using DevOps techniques. This is applied on anything Rob comes across, whether it’s an application, infrastructure, serverless or training environments. Additionally, Rob focuses on the management of production environments, including dashboarding, usage statistics for product owners and stakeholders, but also as part of the feedback loop to the developers. A lot of focus goes to GitHub and GitHub Actions, improving the security of applications and DevOps pipelines. Rob is a Trainer (Azure + GitHub), a Microsoft MVP and a LinkedIn Learning Instructor.

Contact

Let’s discuss how we can support your journey.