


Das Veröffentlichen von Python-Paketen war früher eine entmutigende Aufgabe, aber nicht mehr. Noch besser: Es ist deutlich sicherer geworden. Vorbei sind die Zeiten, in denen man mit Benutzernamen, Passwörtern oder API-Tokens jonglieren und sich dabei auf CLI-Tools verlassen musste. Beim Trusted Publishing stellen Sie PyPI einfach die Details Ihres GitHub-Repositorys zur Verfügung und GitHub Actions übernimmt die schwere Arbeit.
So veröffentlichen Sie Ihr Python-Paket mit Trusted Publishing
Ich werde einen Workflow einführen, der Ihr Paket auf TestPyPi veröffentlicht, wenn ein Tag erstellt wird (im Entwicklungszweig), oder auf PyPi, wenn Sie es mit dem Hauptzweig zusammenführen.
Bereiten Sie Ihr Paket für die Veröffentlichung vor
Stellen Sie sicher, dass Ihr Python-Paket den Verpackungsrichtlinien von PyPI entspricht. Sie benötigen mindestens:
- Eine
setup.py- oderpyproject.toml-Datei, die Ihre Paketmetadaten definiert. - Richtig strukturierter Code mit klarem Verzeichnislayout.
- Eine README-Datei zur Präsentation Ihres Projekts auf PyPI.
Eine detaillierte Checkliste finden Sie im Python Packaging-Benutzerhandbuch.
Konfigurieren Sie GitHub-Aktionen in Ihrem Repository
Beginnen wir mit der Erstellung einer neuen GitHub-Aktion .github/workflows/test-build-publish.yml.
name: test-build-publish on: [push, pull_request] permissions: contents: read jobs: build-and-check-package: name: Build & inspect our package. runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: hynek/build-and-inspect-python-package@v2
Diese Aktion erstellt Ihr Paket und lädt das erstellte Rad und die Quelldistribution (SDist) als GitHub Actions-Artefakte hoch.
Als nächstes fügen wir einen Schritt zum Veröffentlichen in TestPyPI hinzu. Dieser Schritt wird jedes Mal ausgeführt, wenn ein Tag erstellt wird, um sicherzustellen, dass der Build aus dem vorherigen Schritt erfolgreich abgeschlossen wurde. Ersetzen Sie PROJECT_OWNER und PROJECT_NAME durch die entsprechenden Werte für Ihr Repository.
test-publish: if: >- github.event_name == 'push' && github.repository == 'PROJECT_OWNER/PROJECT_NAME' && startsWith(github.ref, 'refs/tags') needs: build-and-check-package name: Test publish on TestPyPI runs-on: ubuntu-latest environment: test-release permissions: id-token: write steps: - name: Download packages built by build-and-check-package uses: actions/download-artifact@v4 with: name: Packages path: dist - name: Upload package to Test PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: repository-url: https://test.pypi.org/legacy/
In diesem Schritt werden die während des Build-Prozesses erstellten Artefakte heruntergeladen und zum Testen auf TestPyPI hochgeladen.
Im letzten Schritt laden wir das Paket auf PyPI hoch, wenn eine Pull-Anfrage in den Hauptzweig eingebunden wird.
publish: if: >- github.event_name == 'push' && github.repository == 'PROJECT_OWNER/PROJECT_NAME' && github.ref == 'refs/heads/main' needs: build-and-check-package name: Publish to PyPI runs-on: ubuntu-latest environment: release permissions: id-token: write steps: - name: Download packages built by build-and-check-package uses: actions/download-artifact@v4 with: name: Packages path: dist - name: Publish distribution ? to PyPI for push to main uses: pypa/gh-action-pypi-publish@release/v1
Konfigurieren Sie GitHub-Umgebungen
Um sicherzustellen, dass nur bestimmte Tags den Veröffentlichungsworkflow auslösen und die Kontrolle über Ihren Veröffentlichungsprozess behalten.
Erstellen Sie eine neue Testversion der Umgebung, indem Sie zu „Einstellungen“ -> „Einstellungen“ navigieren. Umgebungen in Ihrem GitHub-Repository.
Richten Sie die Umgebung ein und fügen Sie eine Bereitstellungs-Tag-Regel hinzu.
Beschränken Sie anhand von Regeln oder Benennungsmustern, welche Zweige und Tags in dieser Umgebung bereitgestellt werden können.
Begrenzen Sie basierend auf Benennungsmustern, welche Zweige und Tags in dieser Umgebung bereitgestellt werden können.
Konfigurieren Sie die Ziel-Tags.
Das Muster [0-9]*.[0-9]*.[0-9]* entspricht semantischen Versionierungs-Tags wie 1.2.3, 0.1.0 oder 2.5.1b3, schließt jedoch beliebige Tags wie aus Bugfix-567 oder Feature-Update.
Wiederholen Sie dies für die Release-Umgebung, um den Hauptzweig auf die gleiche Weise zu schützen, diesmal jedoch mit Ausrichtung auf den Hauptzweig.
Richten Sie ein PyPI-Projekt ein und verknüpfen Sie Ihr GitHub-Repository
Erstellen Sie ein Konto auf TestPyPI, falls Sie noch keins haben.
Navigieren Sie zu Ihrem Konto, „Veröffentlichen“ und fügen Sie einen neuen ausstehenden Herausgeber hinzu.
Verknüpfen Sie Ihr GitHub-Repository mit dem PyPI-Projekt, indem Sie dessen Namen, Ihren GitHub-Benutzernamen, den Repository-Namen, den Workflow-Namen (test-build-publish.yml) und den Umgebungsnamen (test-release) angeben.
Wiederholen Sie den obigen Vorgang für PyPI, wobei der Umgebungsname auf „Release“ eingestellt ist.
Testen Sie den Workflow
Wenn Sie jetzt ein Tag in Ihrem Entwicklungszweig erstellen, wird ein Release auf TestPyPI hochgeladen, und durch das Zusammenführen des Entwicklungszweigs mit dem Hauptzweig wird ein Release auf PyPI hochgeladen.
Was nicht abgedeckt war
Während dieser Leitfaden eine Einführung in vertrauenswürdige Veröffentlichungsworkflows bietet, gibt es zusätzliche Schritte und Best Practices, die Sie möglicherweise in Betracht ziehen. Durch das Einrichten von Zweigschutzregeln kann beispielsweise sichergestellt werden, dass nur autorisierte Mitarbeiter Tags übertragen oder in geschützte Zweige wie „main“ oder „develop“ einbinden können. Sie können auch Statusprüfungen erzwingen oder Pull-Request-Überprüfungen vor der Zusammenführung verlangen und so eine weitere Ebene der Qualitätssicherung hinzufügen.
Schauen Sie sich meine Python-Repository-Vorlage an, die zusätzliche Verbesserungen dieses Workflows abdeckt, z. B. das Erfordernis, dass Unit- und statische Tests bestanden werden müssen, das Überprüfen des Pakets mit Pyroma und das Sicherstellen, dass Ihr Tag mit der Version Ihres Pakets übereinstimmt, mit Vercheck.
Zusammenfassung
Wenn Sie bisher mit der Veröffentlichung Ihrer Arbeit zurückgehalten haben, ist jetzt der perfekte Zeitpunkt, Trusted Publishing auszuprobieren.
- Vorstellung von „vertrauenswürdigen Herausgebern“ Der Python Package Index Blog stellt eine sicherere Veröffentlichungsmethode vor, die keine Weitergabe langlebiger Passwörter oder API-Tokens an externe Systeme erfordert
- Mit einem vertrauenswürdigen Herausgeber auf PyPI veröffentlichen Die offizielle PyPI-Dokumentation für den Einstieg in die Verwendung vertrauenswürdiger Herausgeber auf PyPI.
- Erstellen und Testen von Python in den offiziellen GitHub-Dokumenten.
Das obige ist der detaillierte Inhalt vonVertrauenswürdige Veröffentlichung – Es war noch nie einfacher, Ihre Python-Pakete zu veröffentlichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Python eignet sich für Datenwissenschafts-, Webentwicklungs- und Automatisierungsaufgaben, während C für Systemprogrammierung, Spieleentwicklung und eingebettete Systeme geeignet ist. Python ist bekannt für seine Einfachheit und sein starkes Ökosystem, während C für seine hohen Leistung und die zugrunde liegenden Kontrollfunktionen bekannt ist.

Sie können grundlegende Programmierkonzepte und Fähigkeiten von Python innerhalb von 2 Stunden lernen. 1. Lernen Sie Variablen und Datentypen, 2. Master Control Flow (bedingte Anweisungen und Schleifen), 3.. Verstehen Sie die Definition und Verwendung von Funktionen, 4. Beginnen Sie schnell mit der Python -Programmierung durch einfache Beispiele und Code -Snippets.

Python wird in den Bereichen Webentwicklung, Datenwissenschaft, maschinelles Lernen, Automatisierung und Skripten häufig verwendet. 1) In der Webentwicklung vereinfachen Django und Flask Frameworks den Entwicklungsprozess. 2) In den Bereichen Datenwissenschaft und maschinelles Lernen bieten Numpy-, Pandas-, Scikit-Learn- und TensorFlow-Bibliotheken eine starke Unterstützung. 3) In Bezug auf Automatisierung und Skript ist Python für Aufgaben wie automatisiertes Test und Systemmanagement geeignet.

Sie können die Grundlagen von Python innerhalb von zwei Stunden lernen. 1. Lernen Sie Variablen und Datentypen, 2. Master -Steuerungsstrukturen wie wenn Aussagen und Schleifen, 3. Verstehen Sie die Definition und Verwendung von Funktionen. Diese werden Ihnen helfen, einfache Python -Programme zu schreiben.

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Laden Sie Gurkendateien in Python 3.6 Umgebungsbericht Fehler: ModulenotFoundError: Nomodulennamen ...

Wie löste ich das Problem der Jiebeba -Wortsegmentierung in der malerischen Spot -Kommentaranalyse? Wenn wir malerische Spot -Kommentare und -analysen durchführen, verwenden wir häufig das Jieba -Word -Segmentierungstool, um den Text zu verarbeiten ...


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion