Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Dependabot Fehler beim Automerge

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Dependabot Fehler beim Automerge

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO last edited by

      @alcalzone
      so also nochmal probiert, aber leider erfolglos. hier mal Schritt für schritt was ich gemacht habe:

      Personal Access Token (PAT) angelegt mit Namen DEPENDABOT
      Folgende Scopes wurden angekreuzt:
      repo (mit allen unterkreuzen) und zur Sicherheit noch workflow. Bei workflow bin ich mir nicht sicher ob der eigentlich notwendig ist
      c37dae4f-1474-4c9c-b494-61b10012316a-image.png
      622c49a2-2c4e-44d1-9e97-b1202f67007e-image.png
      2)
      die beiden Dateien angelegt. Die notwendigen Änderungen sind mE eingearbeitet, die im letzen Jahr aus Sicherheitsgründen durch github eingeführt wurden.
      https://github.com/oweitman/ioBroker.mytime/blob/master/.github/auto-merge.yml
      https://github.com/oweitman/ioBroker.mytime/blob/master/.github/workflows/dependabot-auto-merge.yml
      3) der PAT-Name ist in der Datei ebenfalls notiert
      https://github.com/oweitman/ioBroker.mytime/blob/master/.github/workflows/dependabot-auto-merge.yml
      4d691b03-c90e-4843-a82f-87330131c6fa-image.png
      4) als Ergebnis eines Pull Requests schläg die Action fehl. Als Fehlermeldung wird das folgende angegeben:

      /usr/bin/docker run --name ghcrioahmadnassriactiondependabotautomergev2_18c66d --label 6a6825 --workdir /github/workspace --rm -e INPUT_GITHUB-TOKEN -e INPUT_COMMAND -e INPUT_CONFIG -e INPUT_BOTNAME -e INPUT_APPROVE -e INPUT_TARGET -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_RUN_ATTEMPT -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_REF_NAME -e GITHUB_REF_PROTECTED -e GITHUB_REF_TYPE -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e RUNNER_OS -e RUNNER_ARCH -e RUNNER_NAME -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/ioBroker.mytime/ioBroker.mytime":"/github/workspace" ghcr.io/ahmadnassri/action-dependabot-auto-merge:v2
      /action/node_modules/@actions/core/lib/core.js:94
              throw new Error(`Input required and not supplied: ${name}`);
                    ^
      
      Error: Input required and not supplied: github-token
          at Object.getInput (/action/node_modules/@actions/core/lib/core.js:94:15)
          at file:///action/index.js:28:15
          at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
          at async Promise.all (index 0)
          at async ESMLoader.import (node:internal/modules/esm/loader:281:24)
          at async loadESM (node:internal/process/esm_loader:88:5)
          at async handleMainPromise (node:internal/modules/run_main:65:12)
      

      In der PAT Übersicht steht, das der Token nie verwendet wurde.
      Keine Ahnung was ich hier noch falsch mache oder wo ich noch was ändern kann

      AlCalzone 1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @OliverIO last edited by AlCalzone

        @oliverio Das Personal Access Token musst du noch als Repository Secret (unter Actions, NICHT Dependabot!) eintragen, wie in meinem Screenshot in folgendem Post:
        https://forum.iobroker.net/post/727936

        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @AlCalzone last edited by

          @alcalzone
          Dann verstehe ich das noch nicht. In der github Doku seht nirgends was vom diesem 2 stufigen System.
          Wenn ich ein repository Secret anlege, was trage ich dann bei value ein?

          AlCalzone 1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer @OliverIO last edited by AlCalzone

            @oliverio sagte in Dependabot Fehler beim Automerge:

            was trage ich dann bei value ein

            Den Inhalt deines personal access tokens.

            Ein Secret ist erst mal nur ein Wert, der an eine Action übergeben wird (siehe Doku), ohne dass dieser irgendwo geloggt wird. Der Inhalt brauch eine Bedeutung, z.B. ein npm-Token, um bei npm was zu publishen, oder eben wie hier ein PAT, damit die Action in deinem Namen Dependabot sagen darf, dass er mergen soll.

            In der github Doku seht nirgends was vom diesem 2 stufigen System.

            Doch, in der Doku zur Action:
            https://github.com/ahmadnassri/action-dependabot-auto-merge#token-scope

            The GitHub token is a Personal Access Token with the following scopes:

            • repo for private repositories
            • public_repo for public repositories

            The token MUST be created from a user with push permission to the repository.


            Und da das alles etwas versteckt ist, steht es etwas konkreter auch in der vom Creator erzeugten Action YML:
            https://github.com/ioBroker/create-adapter/blob/ef7c9693559e580c6156d1c6aaab1ec7e9bb1ef7/test/baselines/adapter_JS_React/.github/workflows/dependabot-auto-merge.yml#L22-L25

                      # In order to use this, you need to go to https://github.com/settings/tokens and
                      # create a Personal Access Token with the permission "public_repo".
                      # Enter this token in your repository settings under "Secrets" and name it AUTO_MERGE_TOKEN
                      github-token: ${{ secrets.AUTO_MERGE_TOKEN }}
            
            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @AlCalzone last edited by

              @alcalzone

              Aber wo steht da was davon das ich zunächst ein PAT anlegen muss und dann noch eine Repository Secret.
              Ich lese immer nur, das ich ein PAT anlegen muss. Das PAT hat einen Namen, der Namen ist in der Action eingetragen. Ich habe das ja oben mit Screenshots dokumentiert.

              Du sagst ich soll den Inhalt des PAT in die Value des Repository Secrets eintragen:
              Bei mir wird beim Anlegen des PAT nach Kreuzchen gefragt (wie oben beschrieben und mit Screenshot dargestellt, habe ich dort Repo und Workflow angekreuzt).
              Ich gebe da ja nix individuelles geheimes ein.
              Was verstehst du jetzt unter Inhalt des PATs? Den Namen?

              AlCalzone 1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @OliverIO last edited by

                @oliverio sagte in Dependabot Fehler beim Automerge:

                Das PAT hat einen Namen, der Namen ist in der Action eingetragen

                Nochmal: Access Tokens und Secrets sind zwei paar Schuhe! Access Tokens ermöglichen es, Anwendungen sich als dich auszugeben. Mit Secrets gibst du Actions Zugriff auf geheime Werte, z.B. tokens. Wie du deine Tokens oder Secrets nennst, ist erst mal zweitranging. Dass ein Token zufällig so heißt wie ein Secret, macht es noch nicht in Actions verfügbar.

                Ich lese immer nur, das ich ein PAT anlegen muss. Das PAT hat einen Namen, der Namen ist in der Action eingetragen

                Wenn jede Action einfach so auf deine PATs zugreifen könnte, wäre das grob unsicher. Wenn du das Access-Token anlegst, bekommst du einmalig den Inhalt (eine zufällige Nummer) angezeigt. DAS ist das Token. Das kannst du jetzt an verschiedenen Stellen nutzen, die sich als dein User authentifizieren müssen. Der Name ist nur für dich, damit du nachher weißt, wofür es war.

                8e905293-2657-4b07-8b77-fb29103ad3d6-grafik.png

                Dieses ☝ Token musst du als Wert des Secrets eintragen.

                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @AlCalzone last edited by OliverIO

                  @alcalzone

                  ah ok,
                  hab das doch jedesmal übersehen, das da oben noch was angezeigt wird.
                  jetzt hat das soweit funktioniert, das die automerge action mit häkchen durchgelaufen ist. allerdings hat es nix gemerged bzw müsste ja dann noch die automatisierten tests loslaufen, bevor das tatsächlich committed ist.
                  im pullrequest zeigt er alles ok an, sagt "Merging can be performed automatically" und ich könnte selbst den knopf drücken.
                  Automatisch passiert das aktuell noch nicht.
                  Woran könnte das noch liegen?

                  die automatisierten tests laufen los, sobald ich den merge knopf gedrückt habe

                  737f8683-03ab-4a0d-be54-42e9d2bb3564-image.png

                  AlCalzone 1 Reply Last reply Reply Quote 0
                  • AlCalzone
                    AlCalzone Developer @OliverIO last edited by AlCalzone

                    @oliverio sagte in Dependabot Fehler beim Automerge:

                    allerdings hat es nix gemerged

                    Das liegt dran, dass für production dependencies by default nur patches gemerged werden:
                    https://github.com/oweitman/ioBroker.mytime/blob/d97c91de19b08b28b31bd732d0583ad8466721ee/.github/auto-merge.yml#L4-L6
                    Kannste ändern, wenn gewollt, siehe dort verlinkte Doku.

                    müsste ja dann noch die automatisierten tests loslaufen

                    Da scheint ein Syntaxfehler zu sein. vor pull_request sind zwei Leerzeichen zu viel.
                    https://github.com/oweitman/ioBroker.mytime/blob/d97c91de19b08b28b31bd732d0583ad8466721ee/.github/workflows/test-and-release.yml#L14

                    Edit: ist wohl ein Fehler im Template

                    OliverIO 1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @AlCalzone last edited by

                      @alcalzone
                      ok, nachdem das Problem mit dem kaputten repository sich gelöst hat,
                      sind die Tests und der Merge automatisch erfolgreich durchgeführt worden.
                      Jetzt kann ich das noch auf meine anderen Repos ausrollen.

                      Der Punkt mit den 2 Stufen PAT und Repository-secrets sollte dringen in eine Doku mit aufgenommen werden, da das durch die vorhandene Github und Action doku nicht herauskam. Zudem das sich das Verfahren seit dem letzten Jahr auf Seiten Github noch geändert hat, war mit nicht klar was da wo wie gemacht werden muss

                      Eine Frage zur praktischen Anwendung?
                      Legst du für jedes Repostory ein eigenes PAT an? oder hast du eines für alle?
                      Meine Idess ist für jedes Repo ein seperates zu erstellen, da im Fall einer Regeneration ich das nicht in allen Secrets nachpflegen muss.

                      Danke

                      AlCalzone 1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer @OliverIO last edited by

                        @oliverio sagte in Dependabot Fehler beim Automerge:

                        sollte dringen in eine Doku mit aufgenommen werden, da das durch die vorhandene Github und Action doku nicht herauskam

                        Ich habe jetzt 3x die Formulierung aus der automatisch erzeugten Action-YML zitiert, die beides erwähnt. Schau dir die bitte mal an und mach einen Vorschlag, was hier noch unklar ist. Da du meines Wissens bisher der einzige bist, der dieser Anleitung nicht folgen konnte, ist es so herum vermutlich am zielführendsten.

                        Legst du für jedes Repostory ein eigenes PAT an?

                        Ja. Liegt vor allem daran, dass ich die (wie es sein sollte) nirgends speichere und somit auch nicht mehr an den Inhalt komme wenn ich ein neues Repo mit neuem Secret/PAT brauche.

                        OliverIO 1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @AlCalzone last edited by

                          @alcalzone

                          na dann, wenn ich nur der einzige bin.
                          Dann muss man die Doku nicht anpassen.

                          AlCalzone 1 Reply Last reply Reply Quote 0
                          • AlCalzone
                            AlCalzone Developer @OliverIO last edited by

                            @oliverio Naja, offensichtlich war es genug um dich zu verwirren. Verbesserungsvorschläge sind willkommen 🙂

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            804
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            4
                            28
                            1296
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo