Github 相关操作

PAT 认证

Github 为了安全考虑,在 Shell 中禁止使用帐号名称登陆,提供了更为安全的 PAT(Personal Access Token),PAT 的权限和创建它的用户权限相同,并且可以使用 Fine-grained personal access tokens 实现更细粒度的权限控制

参考以下步骤创建 PAT:

  1. 登录 GitHub。

  2. 点击右上角头像,进入 Settings

  3. 在左侧菜单中选择 Developer settings

  4. 选择 Personal access tokens ,然后点击 Generate new token

  5. 生成令牌并复制。

gh

Github 命令行工具 gh 常用操作

Login

参考以下示例使用命令 gh auth login 登陆 Github

# gh auth login
? Where do you use GitHub? GitHub.com
? What is your preferred protocol for Git operations on this host? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Paste an authentication token
Tip: you can generate a Personal Access Token here https://github.com/settings/tokens
The minimum required scopes are 'repo', 'read:org', 'workflow'.
? Paste your authentication token: *********************************************************************************************
- gh config set -h github.com git_protocol https
✓ Configured git protocol
! Authentication credentials saved in plain text
✓ Logged in as user1

查看 Github 认证状态(gh auth status

# gh auth status
github.com
✓ Logged in to github.com account user1 (/root/.config/gh/hosts.yml)
- Active account: true
- Git operations protocol: https
- Token: github_pat_11BP5YWMA0XuC4iSW26eBN_***********************************************************

pull

参考以下示例使用命令 gh repo clone user1/resp1 clone 代码到本地

# gh repo clone user1/resp1
Cloning into 'resp1'...
remote: Enumerating objects: 27, done.
remote: Counting objects: 100% (27/27), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 27 (delta 12), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (27/27), 9.10 KiB | 9.10 MiB/s, done.
Resolving deltas: 100% (12/12), done.

如果报错: GraphQL: Resource not accessible by personal access token (repository.defaultBranchRef) ,则说明 PAT 权限不足。