检查 GitHub 令牌的范围

ais*_*rya 8 rest github github-api access-token

我想被动地检查 GitHub 安全令牌的权限(范围)(而不将某些内容推送到存储库中)。我尝试了以下命令。我替换了 your_username:你的访问令牌和我的存储库的 URL。但它显示一个错误。

curl: (3) URL 使用错误/非法格式或缺少 URL

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
Run Code Online (Sandbox Code Playgroud)

Acu*_*nus 10

如果目标是确定令牌可以访问哪些范围,请检查带有前缀的响应标头x-oauth-scopes(使用curlwith -I):

$ GITHUB_TOKEN=ghp_DefineYourOwnToken
$ curl -sS -f -I -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com | grep ^x-oauth-scopes: | cut -d' ' -f2- | tr -d "[:space:]" | tr ',' '\n'
Run Code Online (Sandbox Code Playgroud)

请注意,tr -d "[:space:]"上面的内容对于删除一些不寻常的空格至关重要,否则匹配命令(例如)grep -x随后将无法正常工作。

示例输出 1:

gist
repo
workflow
Run Code Online (Sandbox Code Playgroud)

示例输出 2:

delete:packages
public_repo
read:packages
repo:invite
repo:status
Run Code Online (Sandbox Code Playgroud)

图片来源:VK 的回答