This article is about fixing remote Permission to git denied to github-actions[bot] in ad-m github-push-action
  • 12-Feb-2023
Lightrun Team
Author Lightrun Team
Share
This article is about fixing remote Permission to git denied to github-actions[bot] in ad-m github-push-action

remote: Permission to git denied to github-actions[bot] in ad-m github-push-action

Lightrun Team
Lightrun Team
12-Feb-2023

Explanation of the problem

The issue with pushing changes in the Node-Red-Contrib-Homekit-Docker project is due to an error in the test run. The error log indicates that the permission to access the repository has been denied to the “github-actions[bot]” due to a “The requested URL returned error: 403”. The test run can be viewed at the link: https://github.com/NRCHKB/node-red-contrib-homekit-docker/runs/3194895671?check_suite_focus=true

A GitHub Action was initiated to push changes to the branch “refs/pull/42/merge” in the repository. The action uses the “ad-m/github-push-action@master” to push changes with a specified “github_token” and directory. The following code block is a part of the GitHub Action that details the steps taken during the process:

dependabot:
    #needs: [build]
    runs-on: ubuntu-latest
    if: ${{ github.actor == 'dependabot[bot]' }}
    steps:
      - uses: actions/setup-node@v2
        with:
          node-version: '14'
      - uses: actions/checkout@v2
        with:
          persist-credentials: false
          fetch-depth: 0
      - run: |
          git config user.name github-actions[bot]
          git config user.email github-actions[bot]@users.noreply.github.com
          npm version patch -m "[RELEASE] %s"
      - name: Push changes
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: ${{ github.ref }}
      - uses: fastify/github-action-merge-dependabot@v2.1.1
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}

Troubleshooting with the Lightrun Developer Observability Platform

Getting a sense of what’s actually happening inside a live application is a frustrating experience, one that relies mostly on querying and observing whatever logs were written during development.
Lightrun is a Developer Observability Platform, allowing developers to add telemetry to live applications in real-time, on-demand, and right from the IDE.

  • Instantly add logs to, set metrics in, and take snapshots of live applications
  • Insights delivered straight to your IDE or CLI
  • Works where you do: dev, QA, staging, CI/CD, and production

Start for free today

Problem solution for remote: Permission to git denied to github-actions[bot] in ad-m github-push-action

The error message “remote: Permission to git denied to github-actions[bot]” indicates that the Github Actions bot doesn’t have sufficient permissions to push changes to the repository. This issue can be resolved by granting the Github Actions bot with the necessary permissions to push changes to the repository.

One solution to this problem is to use a personal access token (PAT) in the Github Actions workflow. To do this, follow these steps:

  1. Generate a personal access token in your Github account.
  2. Store the PAT as a secret in your repository.
  3. Modify the Github Actions workflow to use the PAT stored as a secret.

Here’s a code block that shows how to modify the Github Actions workflow to use the PAT stored as a secret:

- name: Push changes
  uses: ad-m/github-push-action@master
  with:
    github_token: ${{ secrets.PAT }}
    branch: refs/pull/42/merge
    directory: .

Replace secrets.PAT with the name of the secret that stores the PAT in your repository. With this modification, the Github Actions bot should have the necessary permissions to push changes to the repository, and the error message “remote: Permission to git denied to github-actions[bot]” should be resolved.

Other popular problems with github-push-action

Problem: fatal: unable to access 'https://github.com/repository.git/': The requested URL returned error: 404 error

The error message “fatal: unable to access ‘https://github.com/repository.git/’: The requested URL returned error: 404” indicates that the Github Actions bot is unable to access the repository URL. This issue can be caused by incorrect repository URL or if the repository is private and the Github Actions bot doesn’t have access to it.

Solution:

One solution to this problem is to ensure that the repository URL specified in the Github Actions workflow is correct. You can verify the repository URL by visiting the repository page in Github.

Here’s a code block that shows the correct repository URL:

- name: Push changes
  uses: ad-m/github-push-action@master
  with:
    github_token: ${{ secrets.PAT }}
    repository: https://github.com/username/repository.git
    branch: refs/pull/42/merge
    directory: .

Replace username and repository with the correct values for your repository. If the repository is private, you need to ensure that the Github Actions bot has access to the repository. You can do this by granting the Github Actions bot with the necessary permissions in the repository settings.

Problem: Permission Denied error

One common issue when using the github-push-action is encountering a Permission Denied error while attempting to push changes. This is due to the account being used not having permission to make changes to the repository. This can be caused by a misconfiguration of the GitHub Actions workflow or an incorrect GitHub token being used.

Solution:

To resolve this issue, ensure that the GitHub token being used in the action has sufficient permissions for the repository. This can be done by navigating to the repository settings, then selecting “Secrets” and checking that the token has the proper permissions. Additionally, you can check the workflow file to ensure that the correct token is being passed to the action.

- name: Push changes
  uses: ad-m/github-push-action@master
  with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    branch: ${{ github.ref }}

Problem: Invalid exit code error

Another common error that may occur when using github-push-action is the Invalid exit code error. This error can occur due to a variety of reasons, including a failed push, a failed merge, or a connection timeout.

Solution:

To resolve this issue, first check the logs of the action to see if any additional error messages are present. If the error is due to a failed push, ensure that the branch specified in the action is correct and that the local repository is up to date with the remote repository. If the error is due to a failed merge, ensure that there are no conflicts in the branch being pushed. If the error is due to a connection timeout, try increasing the timeout duration in the action.

- name: Push changes
  uses: ad-m/github-push-action@master
  with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    branch: ${{ github.ref }}
    timeout: 300 # 5 minutes

A brief introduction to github-push-action

ad-m/github-push-action is a GitHub Actions workflow that automates Git repository pushes to a specific branch. It provides an easy-to-use and customizable solution for developers who want to incorporate Git pushes into their CI/CD pipelines. The action is implemented in JavaScript and runs on the GitHub Actions platform.

The action takes in a few input parameters, including the github_token which is used to authenticate with the GitHub API, the branch which specifies the name of the branch to push to, and the directory which specifies the directory containing the files to be pushed. The action also allows for additional configuration options, such as setting the Git user name and email, and specifying the commit message. By using the action, developers can automate Git repository pushes and streamline their CI/CD pipeline, making it easier to continuously deliver high-quality software.

Most popular use cases for github-push-action

  1. Automating Release Processes: ad-m/github-push-action can be used to automate the process of releasing new versions of code. For example, after a successful build, the action can be triggered to push the updated code to the specified branch or repository. This can greatly streamline the release process, reducing manual intervention and the potential for human error.
- name: Push changes
  uses: ad-m/github-push-action@master
  with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    branch: ${{ github.ref }}
  1. Managing Multiple Branches: The ad-m/github-push-action can be used to push changes to multiple branches within a repository. This allows the user to maintain different branches for different purposes, such as development, testing, and production, and to push changes to each branch as required.
- name: Push to development branch
  uses: ad-m/github-push-action@master
  with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    branch: development

- name: Push to production branch
  uses: ad-m/github-push-action@master
  with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    branch: production
  1. Version Control: The ad-m/github-push-action can be used to push changes to version control systems, such as Git. This can help to ensure that the code is properly versioned and that previous versions of the code are maintained, making it easier to revert to previous versions if necessary. This can also be useful for tracking the history of code changes and for collaboration with other developers.
Share

It’s Really not that Complicated.

You can actually understand what’s going on inside your live applications.

Try Lightrun’s Playground

Lets Talk!

Looking for more information about Lightrun and debugging?
We’d love to hear from you!
Drop us a line and we’ll get back to you shortly.

By submitting this form, I agree to Lightrun’s Privacy Policy and Terms of Use.