„Ressource nicht durch Integration zugänglich“ im Github-Post /repos/{owner}/{repo}/actions/runners/registration-token API

Lesezeit: 4 Minuten

Ich mache eine Curl-Post-Anfrage von meinem Github-Workflow (Aktion), um Registrierungstoken für einen selbst gehosteten Runner zu erhalten, aber ich erhalte die folgende Antwort:

{
  "message": "Resource not accessible by integration",
  "documentation_url": "https://docs.github.com/rest/reference/actions#create-a-registration-token-for-a-repository"
}

Unten ist eine abgespeckte Version meines Github-Workflows:


name: get-token

"on":
  push: { branches: ["token"] }

jobs:
  
  print-token:
    name: print-token
    environment: dev
    # needs: pre-pkr
    runs-on: ubuntu-latest

    steps:
      - name: Check out code
        uses: actions/checkout@v2

      - name: Get registration token
        id: getRegToken
        run: |
          curl -X POST -H \"Accept: application/vnd.github.v3+json\"  -H 'Authorization: token ${{ secrets.GITHUB_TOKEN }}' https://api.github.com/repos/myprofile/myrepo/actions/runners/registration-token

Irgendwann möchte ich dieses Token an das Ami übergeben, das ich mit dem Packer-Build-Befehl erstelle (nächster Schritt). Ich habe die obige Curl-Anfrage auch mit dem Shell-Provisioner des Packers versucht, aber die gleiche Antwort. Kann nicht herausfinden, ob ich einige Berechtigungen von github ui zulassen muss? Oder wie kann man das sonst machen? Danke im Voraus.

  • Hallo, haben Sie versucht, ein Personal Access Token (PAT) in Ihrem Curl anstelle von GITHUB_TOKEN zu verwenden?

    – Guifalourd

    21. Dezember 2021 um 14:45 Uhr

  • Hallo. Entschuldigung für die späte Antwort. Ja, habe ich und das funktioniert bei mir. Ich tendierte zu GITHUB_TOKEN, da es sich um ein temporäres Token handelt. Außerdem ein Schritt weniger (keine Notwendigkeit, ein PAT mit relevanten Berechtigungen zu erstellen und geheim zu speichern). Ich suche nur nach einer Erklärung, warum das GITHUB_TOKEN nicht funktioniert. Vielen Dank.

    – nu_popli

    22. Dezember 2021 um 7:03 Uhr

  • Wenn eine Operation mit dem PAT und nicht mit dem GITHUB_TOKEN funktioniert, handelt es sich meistens um ein Bereichsproblem. Das GHA-Token hat nur einen bestimmten Bereich, wenn die Github-API einen breiteren Bereich benötigt, um einige Operationen auszuführen. Hier erfordert das Erstellen eines Registrierungstokens wahrscheinlich Administratorberechtigungen, die nicht im GHA-Token enthalten sind. Ich werde eine offizielle Antwort mit weiteren Details hinzufügen 🙂👍🏼

    – Guifalourd

    22. Dezember 2021 um 10:36 Uhr


Benutzeravatar von frennky
frenky

Versuchen Sie, hinzuzufügen permissions zu deiner arbeit:

name: get-token

"on":
  push: { branches: ["token"] }

jobs:
  
  print-token:
    permissions: write-all
    name: print-token
    environment: dev
    # needs: pre-pkr
    runs-on: ubuntu-latest

    steps:
      - name: Check out code
        uses: actions/checkout@v2

      - name: Get registration token
        id: getRegToken
        run: |
          curl -X POST -H \"Accept: application/vnd.github.v3+json\"  -H 'Authorization: token ${{ secrets.GITHUB_TOKEN }}' https://api.github.com/repos/myprofile/myrepo/actions/runners/registration-token

Dies sollte Ihnen sagen, ob dies das Problem ist, dann können Sie herausfinden, welche Berechtigung Ihnen gefehlt hat, und sie in mehr korrekt konfigurieren Einzelheiten.

Wie in Kommentaren und anderen Antworten erwähnt, gibt es mehrere Möglichkeiten, Berechtigungen zu konfigurieren:

  • Verwenden Sie PAT (Persönliches Zugriffstoken)
  • Überschreiben Sie die Berechtigungen in der Workflow-Datei selbst, wie im obigen Snippet gezeigt
  • Berechtigungen in den Aktionseinstellungen konfigurieren

Die dritte Option kann auf verschiedenen Ebenen durchgeführt werden:

Details zu Standardberechtigungen finden Sie hier hier.

  • Hallo. Danke für die Antwort. Ich habe den Rat befolgt und soweit ich verstehe, kann dies nicht direkt im Workflow erfolgen. Ich habe ausdrücklich alle Berechtigungen im Workflow zugewiesen, aber es funktioniert immer noch nicht. Berechtigungen für GH-Token sind ebenfalls auf Lesen/Schreiben eingestellt. PAT benötigt Repo-Berechtigungen, um Registrierungstoken zu generieren, aber diese Bedingungen können nicht im Workflow zugewiesen werden.

    – nu_popli

    23. Dezember 2021 um 17:13 Uhr

Das Problem hier hängt mit der zusammen GITHUB_TOKEN Berechtigungsbereich, der automatisch in einer Github Actions-Workflowausführung generiert wird.

Als frennky in seiner Antwort geteilt, können die Standardberechtigungen dieses Tokens gefunden werden hier.

Auf dieser Grundlage haben Sie 2 Lösungen:

  • Der erste ist derjenige, der von vorgeschlagen wird freenkyAktualisierung der GITHUB_TOKEN Berechtigungen im Workflow laufen mit der Berechtigungsfeld in deiner Arbeit.

  • Die zweite ist die Verwendung von a Persönliches Zugriffstoken statt der Vorgabe GITHUB_TOKENerstellen Sie es mit den spezifischen Berechtigungen, die Sie benötigen, und fügen Sie es dann als Repository-Geheimnis.

  • Danke für die Antwort. Soweit ich verstehe, ist der Weg mit PAT der einzige Weg (was ich getestet habe, funktioniert). Korrigieren Sie mich, wenn ich falsch liege, aber ich glaube, dass die Registrierungstoken-API nicht direkt mit GITHUB_TOKEN im Aktionsworkflow verwendet werden kann.

    – nu_popli

    23. Dezember 2021 um 17:16 Uhr

  • Die API kann nicht mit verwendet werden Ursprünglich GITHUB_TOKEN Berechtigungen. Aber es kann möglich sein, die zu aktualisieren GITHUB_TOKEN Berechtigungsbereich mit der permission field (Ich habe es nicht versucht, also kann ich es nicht sicher sagen).

    – Guifalourd

    23. Dezember 2021 um 18:06 Uhr


  • Ich habe das versucht. So wie ich das verstehe, geht das nicht.

    – nu_popli

    25. Dezember 2021 um 18:55 Uhr

  • Wo finde ich heraus, welche Berechtigung der PAT gesetzt werden muss? Gibt es irgendwo eine Referenz für? Ich möchte, dass der Actions-Bot Kommentare hinzufügt. Es funktioniert gut, es sei denn, die Pull-Anforderung wird nicht gegabelt. Mit ghcli

    – Ismoh

    28. September 2022 um 8:48 Uhr

  • Ich glaube das voll repo Umfang ist genug für das, was Sie Ismoh wollen. Hinweis

    – Guifalourd

    28. September 2022 um 10:02 Uhr

1440270cookie-check„Ressource nicht durch Integration zugänglich“ im Github-Post /repos/{owner}/{repo}/actions/runners/registration-token API

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy