7

I'm trying to checkout a private repo inside my GitHub pipeline, and the following is my pipeline code,

build:

runs-on: ubuntu-latest

steps:  
  - name: Checkout pickezy backend
    uses: actions/checkout@v2
    with:
     repository: Madurad/jenkinsfiles
     token: ${{ secrets.GITHUB_TOKEN }}
     ref: master

But when I run this I get the following error saying, "repository not found" but it's in my githiub org. and it's a private repo.

enter image description here

It does not seem like an auth error. Could anyone please help me to resolve this issue? Anything I've missed?

Laurel
  • 5,965
  • 14
  • 31
  • 57
Madura Dissanayake
  • 8,309
  • 5
  • 25
  • 34

2 Answers2

3

You can observe on the Github documentation that the GITHUB_TOKEN doesn't have all available permissions.

In this specific case, the permission to access the private repository.

If you want to perform specific operations in your workflows involving other permissions, you'll need to create a PAT (Personal Access Token) with the wished permissions and use it instead of the GITHUB_TOKEN (adding it as a secret).


In your case, the workflow will look like this:

build:

runs-on: ubuntu-latest

steps:  
  - name: Checkout pickezy backend
    uses: actions/checkout@v2
    with:
     repository: Madurad/jenkinsfiles
     token: ${{ secrets.PAT }}
     ref: master
GuiFalourd
  • 15,523
  • 8
  • 44
  • 71
2

You can add the missing permission in the top level of the YAML file:

permissions:
  contents: read

Note that I did not need to specify token: ${{ secrets.GITHUB_TOKEN }} in the checkout step.

This solution is based on an auto-completion from GitHub Copilot. It works, but I did no further research.

Nicolai Weitkemper
  • 403
  • 1
  • 9
  • 18