You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过终端创建GitHub个人访问令牌(PAT)?

通过终端创建GitHub个人访问令牌(PAT)的方法

不是只能通过GitHub网页界面创建PAT,你可以借助GitHub REST API配合终端工具实现,也能在Terraform里通过调用API完成自动化创建,以下是具体方案:

1. 使用curl调用GitHub REST API创建PAT

GitHub提供了创建用户访问令牌的REST接口,你可以通过终端发送请求完成创建。

方式1:用户名+密码+双因素认证(2FA)

如果账号开启了2FA,需要同时提供一次性验证码:

curl -u "你的GitHub用户名" -X POST https://api.github.com/user/tokens \
  -H "X-GitHub-OTP: 你的2FA验证码" \
  -d '{"note":"终端生成的PAT","scopes":["repo","gist","read:user"]}'
  • note:给令牌添加备注,方便后续识别用途
  • scopes:指定令牌的权限范围,可根据需求调整(比如repo用于仓库操作,admin:org用于组织管理等)

方式2:使用已有PAT创建新令牌

如果你已经有一个具备write:user权限的PAT,可以直接用它来创建新令牌:

curl -X POST https://api.github.com/user/tokens \
  -H "Authorization: token 你的已有PAT" \
  -d '{"note":"基于现有PAT生成的新令牌","scopes":["repo","admin:repo_hook"]}'

2. 在Terraform中自动化创建PAT

虽然GitHub官方Terraform Provider没有提供直接创建PAT的资源,但可以通过null_resource配合local-exec调用上述API实现:

resource "null_resource" "github_pat_creation" {
  provisioner "local-exec" {
    command = <<EOT
      curl -X POST https://api.github.com/user/tokens \
        -H "Authorization: token ${var.existing_github_pat}" \
        -d '{"note":"Terraform自动化生成的PAT","scopes":["repo"]}'
    EOT
  }
}

variable "existing_github_pat" {
  type        = string
  description = "具备write:user权限的已有GitHub PAT"
}

关于GitHub CLI(gh)

目前gh确实没有内置的PAT创建命令,官方暂未支持该功能,所以暂时只能通过上述API方式在终端实现。

内容的提问来源于stack exchange,提问作者Vertexwahn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:47:36