How to update GitHub actions workflow file using another workflow?

How to update GitHub actions workflow file using another workflow?

tldr; pass a custom created token with workflow permissions to actions/checkout using repository secrets

If you are facing a permission error as shown in the cover photo, you are on the right place. So, let say you have one workflow file with name my_workflow.yml and you want to update it using another workflow file, say my_workflow_updater.yml .

Create a token with permissions to update workflow

  1. Go to https://github.com/settings/tokens/new

Create a token (classic) with workflow option checked in scope. Fill in Note and Expiration as desired.

Click Generate token button.

Copy new generated token starting with ghp_.... . It's important to do it at this step because it will not appear again and you will have to generate a new one.

Store Copied token as Secret in the repository

Go to the repository where you are creating that workflow. Click on Settings tab. In the Security section in the left column, expand Secrets and variables. Click on Actions. Click on New repository secret button under Repository secrets section in the main section.

Fill in an appropriate Name, and put that copied token into Secret. Click on Add secret. Name, here, is critical because this what you will use to access this secret or token.

Pass this custom token to that workflow file during checkout

Update my_workflow_updater.yml like following

jobs:
  update-date:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: 
          token: ${{ secrets.UPDATE_ACTION }}
...

token is what I want you to look at in the above section. Notice that UPDATE_ACTION is the name we used when creating a new secret for the repository in the last step.

That's it. Have fun.