Open
Description
I'm struggling to understand how I could simply clone repositories in an action, without using deploy keys because they have to be added in each repository to work.
PAT permissions are really not user-friendly, and I'd just like to have a simple read:repository permission to have the right to clone a repository's code.
I'm hitting the bug for cloning with a token
defined: remote: Write access to repository not granted.
but I don't care about write access to that repository, with my PAT.
Is this something possible with a PAT that can only clone and not push ?
Metadata
Metadata
Assignees
Labels
No labels
Activity
Gby56 commentedon Apr 22, 2022
FYI: the documentation simply states:
" # We recommend using a service account with the least permissions necessary. Also
# when generating a new PAT, select the least scopes necessary."
This is extremely vague, good PAT configurations should be given for common use cases, and I expect pure read-only cloning to be a big one
Gby56 commentedon Apr 22, 2022
it looks like it requires to give the full "repo" scope, and not just repo:status, repo_deployment, public_repo, repo:invite, security_events ?
matheo-lucak commentedon Jun 7, 2022
Hello,
I'm facing the exact same issue.
I want to give the least permission (Read only on public and private repository) for an action using a PAT.
But it only works with the full
repo
scope which gives a lot more.Thanks
mifi commentedon Oct 25, 2022
After searching a bit I found that a basic minimal setup would be to use the same set of (restricted) permissions as the
GITHUB_TOKEN
gives.It means we can create a "fine-grained personal access token" with the
content
andmetadata
permissions.twistedpair commentedon Oct 27, 2022
@mifi , is that
content: read
andmetadata: read
?I'm seeing the same problem with fine grained PATs and
@actions/checkout@v3
When I use a FG PAT with
content: read
andmetadata: read
, and give the PAT's userread
access to the given repo, I still see theremote: Write access to repository not granted.
error in GitHub Actions.Why do we need write access to do a read operation?
mifi commentedon Oct 27, 2022
correct. that's what worked for me. I only do a checkout though, nothing else fancy
NorseGaud commentedon Nov 1, 2022
I even tried with full read + write for every permission and I still get that error. Are you by chance specifying a specific
ref
? and is the repo private?mifi commentedon Nov 2, 2022
Clarification: I'm using this for a submodule which is a private repo.
Here's my workflow:
NorseGaud commentedon Nov 2, 2022
I was able to get around this problem with classic tokens with "repo" permission. Unsure what's wrong with Fine-grained, but they are technically "Beta".
twistedpair commentedon Nov 2, 2022
+1 on @NorseGaud 's situation.
I cannot get a checkout of a private repo as a submodule using FG PATs. Works fine with classic PATs and "Repo" permission.
I wonder if this could have to do with the additional Organization settings recently added to allow/block/require approval for FG PATs in organizations? I set FG PATs to be allowed in my org, but I still get these "remote: Write access to repository not granted. " errors when trying to do read operations with this action.
igor-zmitrovich commentedon Nov 10, 2022
Same issue as @NorseGaud and @twistedpair have. Not able to get a checkout of private organization's repo despite having permission in FG PAT.
hermanbanken commentedon Dec 8, 2022
https://stackoverflow.com/questions/42148841/github-clone-with-oauth-access-token/66156992#66156992
Apparently you need to set the username to
oauth2
. For me it isn't working, but maybe this works for you.fkromer commentedon Feb 23, 2023
Today I've created and configured a fine grained PAT on a GitHub organization level successfully. The only required permissions are read access to code and metadata. This issue seems to be resolved.
Setting the token value as
GH_PAT
in the repository secrets does the job.codezninja commentedon Sep 6, 2023
So just leaving this here. I had the same issue when trying to checkout a private org repo in my workflow. I was using the latest
actions/checkout@v4
. I create a FG token on my user and it was throwing the write error and it only had read access to content & metadata.I then found out that at the org level settings I had to enable FG permissions cause by default FG tokens do not have access to org repos.
This way I was able to create an FG for that organization under the resources with just content and metadata read-only permissions
This is the comment that helped me get there https://github.com/orgs/community/discussions/40910#discussioncomment-4454056
will-holley commentedon Jul 3, 2024
I came here because I have an org with two repos:
A
andB
.B
is a submodule ofA
, and I wanted to check it out within a Github Action that is triggered when I commit toA
.If you have this problem in 2024, here's what worked for me:
Ensure I had permissions to set PAT on the organization. This can be done under the
/settings/personal-access-tokens
menu within the organization's setting. Note that you must be an admin to enable PAT access.Create a personal access token with select repository access to
A
andB
. Provide it with read access for Contents and Metadata.Save the PAT as a secret within
A
. I keyed it asEXAMPLE_PAT
.Set the token within GHA, for example:
Paillat-dev commentedon Jul 24, 2024
+1 On this. It was really hard to find out how to do it. Docs really merit to be updated.
rantianhua commentedon Dec 22, 2024
git clone https://<PAT>@github.com/username/repo.git
can solve my problem.