public-ui / kolibri

The accessible HTML-Standard
https://public-ui.github.io
European Union Public License 1.2
147 stars 32 forks source link

🛠️ Todo: Trigger UpdateSnapshots-Workflows by GitHub-Action Bot #5993

Closed deleonio closed 1 month ago

deleonio commented 6 months ago

KI:

Wenn Sie einen Workflow starten möchten, sobald ein neuer Commit auf einen Branch gepusht wird, auch wenn dieser Commit von einem GitHub Action Bot stammt, können Sie den push-Event in Ihrer Workflow-Definition verwenden. Wie bereits erwähnt, verhindert GitHub standardmäßig, dass Workflows durch Aktionen ausgelöst werden, die von GitHub Actions selbst innerhalb desselben Repositories verursacht werden, um zirkuläre Workflow-Auslösungen zu vermeiden.

Eine Lösung für dieses Problem ist, die Einstellungen für die Workflow-Ausführung anzupassen, um auch Workflows auszulösen, die durch Aktionen von github-actions[bot] verursacht wurden. Dies kann durch die Verwendung eines Personal Access Tokens (PAT) anstelle des standardmäßigen GITHUB_TOKEN erreicht werden. Das GITHUB_TOKEN hat Einschränkungen, um rekursive Workflow-Auslösungen zu verhindern, während ein PAT diese Einschränkung umgehen kann.

Hier ist ein grundlegendes Beispiel für eine Workflow-Definition, die auf jeden push-Event reagiert:

name: Mein CI Workflow
on: 
  push:
    branches:
      - main  # Setzen Sie hier den Namen Ihres Zielbranches ein

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    # Fügen Sie hier weitere Schritte für Ihren Workflow hinzu

Um sicherzustellen, dass Ihr Workflow auch bei Commits von GitHub Actions ausgelöst wird, sollten Sie folgende Schritte beachten:

  1. Verwenden eines Personal Access Tokens (PAT):

    • Erstellen Sie einen Personal Access Token (PAT) mit den notwendigen Berechtigungen über die GitHub-Einstellungen.
    • Speichern Sie diesen Token in den Geheimnissen Ihres Repositories.
    • Modifizieren Sie den Workflow, der den Commit macht, um diesen PAT für Aktionen zu verwenden, die eine erneute Auslösung anderer Workflows ermöglichen sollen.
  2. Aktionen mit dem PAT durchführen:

    • Stellen Sie sicher, dass Aktionen, die Commits oder Tags erstellen, den PAT anstelle des GITHUB_TOKEN verwenden. Dies kann oft einfach durch Setzen eines Headers in einem curl-Befehl oder durch Konfigurieren der Aktionen, die GitHub API-Anfragen durchführen, erreicht werden.

Beachten Sie jedoch, dass die Verwendung eines PAT zusätzliche Sicherheitsüberlegungen mit sich bringt, da PATs mit umfangreichen Berechtigungen das Sicherheitsrisiko erhöhen können. Es ist wichtig, dass der PAT minimale Berechtigungen hat, die für die erforderlichen Aktionen ausreichend sind, und sicher gespeichert wird.

Wenn Sie diesen Ansatz verfolgen, sollten Sie in der Lage sein, Workflows auszulösen, selbst wenn die Commits von einem GitHub Actions Bot kommen, ohne von Ereignissen anderer Workflows abhängig zu sein.

sdvg commented 1 month ago

Der Workflow ist für v1 angepasst. Damit alles funktioniert, müssen wir in der public-ui-Orga noch folgendes erledigen:

1) GitHub App anlegen und wie folgt unter General konfigurieren:

2) GitHub App Permissions konfigurieren

3) GitHub App installieren

4) Neue Secrets für kolibri-Repository konfigurieren