Blog

Automatisieren Sie Ihre Abhängigkeiten mit Renovate

Bild von Dimitar Zafirov
Dimitar Zafirov
DevOps- und Cloud-Ingenieur
02.01.2024
Lesezeit: 3 Minuten.
Zuletzt aktualisiert am: 27.02.2025

Inhaltsübersicht

Was ist Renovate?

Renovate ist ein automatischer Dienst zur Aktualisierung von Abhängigkeiten. Er durchsucht private oder öffentliche Repositories und erstellt Merge Requests auf der Grundlage unserer Anforderungen und der von uns vorgenommenen Konfiguration. Er ist hochgradig konfigurierbar und kann sehr gut auf unsere spezifischen Bedürfnisse abgestimmt werden.

Welche Plattformen werden von Renovate unterstützt?

Renovate unterstützt GitHub, GitLab, Bitbucket, Azure DevOps, AWS CodeCommit und Gitea.

Die Integration mit jeder dieser Sprachen ist ein wenig anders, aber die Art und Weise, wie sie funktioniert, ist die gleiche.
Es unterstützt auch viele Sprachen wie Go, Java, Python, Rust, Ruby, JavaScript, Nuget-Abhängigkeiten und vieles mehr.

Renovate unterstützt die meisten der gängigen Abhängigkeitssysteme. Eine vollständige Liste finden Sie HIER ( https://docs.renovatebot.com/modules/manager/ )

Verwendung von Renovate_ITGix

Wie kann man Renovate integrieren?

Die Integration mit GitHub ist ein einfacher Prozess. Es gibt mehrere Möglichkeiten der Integration.

Eine Möglichkeit ist, Renovate als Bot laufen zu lassen, der PAT verwendet:

1. GitHub PAT erstellen

  • Anmeldung bei Ihrem GitHub-Konto
  • Einstellungen öffnen
  • Navigieren Sie zu den Entwicklereinstellungen
  • Unter Persönliche Zugangstokens und klicken Sie auf Token
  • Dann Neues Token generieren und füllen Sie das Formular aus
  • Klicken Sie auf Token generieren

  2. Setzen Sie Ihren PAT als Umgebungsvariable RENOVATE_TOKEN

Eine andere Möglichkeit besteht darin, Renovate als selbst gehostete Anwendung zu verwenden. Die Macher von Renovate stellen die "Renovate GitHub App" zur Verfügung, die mit einem einzigen Klick installiert werden kann ( https://github.com/apps/renovate ).

1. Geben Sie bei der Erstellung der GitHub-App die folgenden Berechtigungen:

ErlaubnisUmfang
SchecksLesen+Schreiben
VerpflichtungserklärungenLesen+Schreiben
InhaltLesen+Schreiben
AusgabenLesen+Schreiben
Pull-AnträgeLesen+Schreiben
ArbeitsabläufeLesen+Schreiben
Dependabot-Warnungenlesen
Mitgliederlesen
Metadatenlesen

2. Im Konfigurationsabschnitt müssen wir auswählen, für welche Repositories wir Renovate verwenden wollen:

Renovieren - Zugang zum Repository

3. Nach der Übernahme der Änderungen erstellt Renovate seine erste MR, die die Datei renovate.json mit der Grundkonfiguration enthält:

{

  "$schema": "https://docs.renovatebot.com/renovate-schema.json",

  "extends": [

    "config:base"

  ]

}

Sobald wir fusionieren, wird der Renovate-Bot das Repository scannen und, wenn er neue Versionen findet, neue MRs erstellen.

Die Integration mit den übrigen unterstützten Plattformen finden Sie hier: https://docs.renovatebot.com/modules/platform/

Beispiele für benutzerdefinierte Konfigurationen:

Standardmäßig scannt Renovate keine Kubernetes-Manifestdateien. Wir können sie einbeziehen, indem wir die renovate.json-Datei durch Hinzufügen aktualisieren:

"kubernetes": {

    "fileMatch": ["\\.yaml$"]

  }

Wenn wir renovate dazu bringen wollen, einmal pro Woche, am Sonntag, nach Änderungen zu suchen, sollten wir hinzufügen:

"packageRules": [

    {

      "matchPackageNames": ["*"],

      "schedule": ["on sunday"]

    }

  ]

Standardmäßig wird renovate die MRs nicht automatisch zusammenführen. Natürlich würden wir wahrscheinlich die wichtigsten Aktualisierungen zuerst von einem Menschen überprüfen lassen. Sie können also alle Versionen außer den Hauptversionen auf diese Weise automatisch zusammenführen lassen:

{

  "packageRules": [

    {

      "matchUpdateTypes": ["minor", "patch", "pin", "digest"],

      "automerge": true

    }

  ]

}

Unten sehen Sie ein Beispiel für Renovate MR, das automatisch eine neue Version von Prometheus docker tag gefunden hat:

renovieren
renovieren

Alle Konfigurationsmöglichkeiten finden Sie in der Renovate Docs Sektion https://docs.renovatebot.com/configuration-options

Es könnte auch für die Aktualisierung von Abhängigkeiten in Ihren Repositories verwendet werden. Wenn Sie zum Beispiel ein Repository haben, das von einer Bibliothek abhängt, und Sie möchten, dass Ihr Repository automatisch eine neue Version dieser Bibliothek erhält, sobald eine neue Version veröffentlicht wird:

...
"matchPackageNames": ["my-private-library"],
….

Sobald es neue Versionen in "my-private-library" gibt, werden diese automatisch in den von Ihnen eingebundenen Repositories angezeigt, indem renovate einen neuen Pull-Request mit den Änderungen erstellt. Wenn es sich um einen Paketmanager handelt, werden auch die Lock-Dateien für Ihre Sprache erzeugt.

Schlussfolgerung

Renovate ist ein großartiges Tool, das uns eine Menge manueller Arbeit ersparen kann. Als DevOps können wir es für die Aktualisierung von Helm-Diagrammen, Docker-Image-Tags, Terraform-Providern, Kubernetes-Manifesten und vielem mehr verwenden.

Eine Antwort hinterlassen

Mehr Beiträge

Kontakt aufnehmen
ITGix bietet Ihnen fachkundige Beratung und maßgeschneiderte DevOps-Services, um Ihr Unternehmenswachstum zu beschleunigen.
Newsletter für
Technik-Experten
Schließen Sie sich 12.000+ Geschäftsführern und Ingenieuren an, die Blogs, e-Books und Fallstudien Fallstudien über neue Technologie erhalten.