Yan*_*yer 63 git github git-remote ls-remote
我正在建立一个(有点受限)Git客户端.要设置存储库,请输入远程存储库的URL.我想检查用户是否具有对该存储库的读写访问权限.如果没有,我提出一个身份验证对话框.
我检查"读"访问用git ls-remote <url>.
是否有一种类似的方法来检查'写'访问权限,而不首先克隆回购?(我知道我可以git clone <url>,然后git push --dry-run)
小智 38
如果git repo在github中,打开repo中的任何文件,然后单击'edit',github将显示如下内容:
您正在编辑您没有写入权限的项目中的文件.我们已经创建了一个这个项目的分支,供您提交建议的更改.提交对此文件的更改会将其写入fork中的新分支,因此您可以在此处发送pull request.enter代码
使用最新的 GitHub API,您可以使用以下命令(您需要使用您的个人访问令牌进行身份验证)检查USERNAME(您的或其他用户)的特定存储库的权限,例如:
curl -u your_username:your_access_token \
 -H "Accept: application/vnd.github.v3+json" \
 https://api.github.com/repos/octocat/hello-world/collaborators/USERNAME/permission
响应将显示 USERNAME 对该存储库的权限。否则会报:
“未找到信息”
请注意,您应该具有对相关存储库的推送访问权限,否则它将失败
curl -u your_username:your_access_token \
 -H "Accept: application/vnd.github.v3+json" \
 https://api.github.com/repos/octocat/hello-world/collaborators/USERNAME/permission
从字面上看只是推送(没有任何改变)。即使只是尝试推送并报告没有必要,Git 也需要凭据。
设置正确的凭据后:
$ git push
Everything up-to-date
弄乱我的 ssh 配置后:
$ git push
ERROR: Permission to [some repo] denied to [my user name].
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
您可以git push git+ssh://host.org/path/to/repo some_ref在不克隆的情况下执行操作。
但请记住,推送提交链和更新远程引用是两个不同的操作,您可能拥有前者的权限,但没有后者的权限。此外,某些引用可能是不可修改的。
| 归档时间: | 
 | 
| 查看次数: | 62181 次 | 
| 最近记录: |