Github Tokens
约 830 字大约 3 分钟
2025-01-02
介绍
当使用 GitHub API 或命令行时,可使用 Personal access token 替代密码向 GitHub 进行身份验证。 Personal access token 旨在代表你自己访问 GitHub 资源。
生成access token
现在有两种生产token的方式:
- 一种是
Fine-grained tokens,这种还处于预览阶段。 - 一种是
Tokens(classic)。
Fine-grained tokens
- 登录
github账号。 - 点击进入账号的
Setting。 - 点击
Developer settings。 - 下拉
Personal access tokens选择Fine-grained tokens。 - 点击
Generage new token。 - 随便填写一个
token名称。 - 选择过期时间,也可以选择永久。
- 可以添加备注。
- 选择权限,根据需求选择权限,这里可以设置为某一个项目,然后再选择权限。
- 点击生成
token就行了。
注意需要保存好生成的token,刷新页面就没了。
Tokens(classic)
- 登录
github账号。 - 点击进入账号的
Setting。 - 点击
Developer settings。 - 下拉
Personal access tokens选择Tokens(classic)。 - 下拉
Generage new token选择Generage new token(classic)。 - 随便填写一个
token名称。 - 选择过期时间,也可以选择永久。
- 选择权限,根据需求选择权限。
- 点击生成
token就行了。
注意需要保存好生成的token,刷新页面就没了。
使用access token
access token是用于认证的,有多种使用方式:
- 将
access token当做密码使用 - 在
CI/CD自动部署时使用token获取权限
access token当做密码
进行git命令行提交的时候,会让你输入Username和Password
$ git push
Username for 'https://github.com': username
Password for 'https://username@github.com': 你的token直接把token当做Password输入即可。
直接更改.git/config文件 (不推荐)
注意:不建议使用这种方式使用,会泄露token。
- 直接修改
.git文件
.git/config是隐藏文件。需要显示出来,mac 快捷键是control + cmd + .
修改 remote 中的 url 为:
url = https://[TOKEN]@github.com/[USER]/[REPO]- 通过命令更新
$ git remote set-url origin https://[TOKEN]@github.com/[USER]/[REPO]或:删除现在的远程分支,然后创建新的远程分支。
$ git remote remove origin
$ git remote add origin https://[TOKEN]@github.com/[USER]/[REPO]其中: TOKEN是上面申请的token。 USER是用户名。 REPO是仓库名。
配置CI/CD自动部署时使用access token
虽然access token能当密码使用,但是一般我们长期使用都是添加公钥到仓库的,这样在本机上就能完成身份认证了。 虽然通过更改.git/config中的远程地址,达到了使用token关联到了仓库,但是上面也说了会有暴露的风险。 token的主要使用地方还是在配置CI/CD自动部署时。
如下是github actions的一个.yml配置,里面就使用了token。只是为了避免token暴露,通过配置项目的secrets来访问配置的token的。
name: vueperss deploy
on: [push]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@master
- name: vueperss build and deploy
run: |
yarn install
yarn docs:build
cd docs/.vuepress/dist
git init
git config --global user.email ${{ secrets.MT_EMAIL }}
git config --global user.name ${{ secrets.MT_NAME }}
git add -A
git commit -m 'Auto deploy from Github Actions'
git push -f https://${{ secrets.MT_TOKEN }}@github.com/matiastang/matiastang.github.io master