Run actions/checkout@v4
with:
fetch-depth: 0
repository: ddwx3399/Emilia
ssh-strict: true
ssh-user: git
persist-credentials: true
clean: true
sparse-checkout-cone-mode: true
fetch-tags: false
show-progress: true
lfs: false
submodules: false
set-safe-directory: true
Error: Input required and not supplied: token
token: ${{ secrets.GIT_TOKEN }}
secrets.GIT_TOKEN 这个怎么建立
好,这个我直接 一步一步告诉你怎么建 secrets.GIT_TOKEN,不绕弯子 👇
(适合 私有仓库 / 跨仓库 / 需要写权限 的情况)
一、先搞清楚:GIT_TOKEN 是什么?
secrets.GIT_TOKEN 不是系统自带的
👉 是你自己创建的 GitHub Personal Access Token(PAT)
它用来:
-
actions/checkout
-
git push
-
跨仓库访问
-
修改内容(甚至 workflow,如果给权限)
二、创建 GIT_TOKEN(最推荐方式:Fine-grained Token)
① 打开 GitHub Token 页面
在 GitHub 右上角头像 → Settings → Developer settings →
👉 Personal access tokens → Fine-grained tokens
点击:Generate new token
② 基本信息填写
-
Token name:
-
Expiration:
建议 90 days(安全)
-
Resource owner:
选你的 GitHub 用户名
-
Repository access:
✔️ Only select repositories
✔️ 勾选:ddwx3399/Emilia
③ 权限(重点,别乱勾)
Repository permissions(只勾这些):
| 权限 | 选择 |
|---|
| Contents | Read and write |
| Workflows | Read and write(⚠️ 只有你要改 workflow 才勾) |
❗ 如果只是 push Data/*.txt
👉 Workflows 不用勾
④ 生成并复制 Token
点 Generate token
⚠️ 只显示一次,立刻复制
形如:
三、把 Token 存成 GIT_TOKEN Secret
① 进入你的仓库
② 路径
③ New repository secret
点 Save
四、在 workflow 里使用
checkout
push(自动继承,不用再写 token)
五、如何验证是不是建成功了?
✔ 正确现象
-
checkout 不再报:
-
git push 成功
❌ 常见错误
| 错误 | 原因 |
|---|
| token 还是 missing | Secret 名拼错 |
| 403 | 权限不够 |
| workflow 被拒 | 没给 workflows 权限 |
六、我给你的最稳建议
🔒 如果只是同仓库自动更新数据文件
👉 不要建 GIT_TOKEN
👉 直接用 secrets.GITHUB_TOKEN + contents: write
只有在这些情况才用 GIT_TOKEN:
一句话总结
GIT_TOKEN = 你自己建的 PAT
建 → 存 → 用,三步缺一不可
如果你愿意,你可以告诉我一句:
我可以直接告诉你:
👉 Workflows 权限要不要勾,避免多给权限。
这是正常现象,不是错误 👍
意思只是:
❗ 这个 Token 名字你以前已经用过了
Token 名称只是备注,不影响使用,随便换一个就行。
✅ 你现在该怎么做(最简单)
在 Token name 那一栏,换一个名字即可,例如任选一个:
👉 名字不影响权限,也不影响 Secret 的名字
⚠️ 很多人会混淆的点(重点)
两者 完全不是一回事。
✅ 正确流程快速回顾
-
Generate new token
-
Token name:随便取(不重复即可)
-
复制生成的 token
-
Repo → Settings → Secrets and variables → Actions
-
New secret
-
Name:GIT_TOKEN
-
Value:刚复制的 token
-
workflow 用:
🧠 一句话记住
Token 名字重复无所谓
Secret 名字必须精确一致
如果你愿意,下一步我可以帮你 检查权限到底勾得对不对(只要你说你勾了哪些权限即可)。


PAT 至少要有
contents: read/write)
Comments
Post a Comment