目录
[一、GitHub Token 在哪里(完整路径)](#一、GitHub Token 在哪里(完整路径))
[✅ 正确入口(一定要从这里进)](#✅ 正确入口(一定要从这里进))
[4️⃣ 进入 Developer settings](#4️⃣ 进入 Developer settings)
[5️⃣ 进入 Personal access tokens](#5️⃣ 进入 Personal access tokens)
[6️⃣ Generate new token](#6️⃣ Generate new token)
[二、Token 怎么填(最安全 & 不踩坑)](#二、Token 怎么填(最安全 & 不踩坑))
[📋 推荐填写方式(GitHub 私有仓库够用)](#📋 推荐填写方式(GitHub 私有仓库够用))
[⚠️ 非常重要(很多人这里翻车)](#⚠️ 非常重要(很多人这里翻车))
[❗ Token 只显示一次!](#❗ Token 只显示一次!)
[三、把 Token 填进 Jenkins(关键对应关系)](#三、把 Token 填进 Jenkins(关键对应关系))
[四、快速验证 Token 是否 OK(强烈建议)](#四、快速验证 Token 是否 OK(强烈建议))
[五、给你一个「100%能跑」的最小 Pipeline 模板](#五、给你一个「100%能跑」的最小 Pipeline 模板)
一、GitHub Token 在哪里(完整路径)
✅ 正确入口(一定要从这里进)
-
打开 GitHub
-
右上角头像
-
点击 Settings
⚠️ 不是仓库 Settings,是 个人 Settings
4️⃣ 进入 Developer settings
在 Settings 页面左侧 拉到最底部,你会看到:
Developer settings
点进去。
5️⃣ 进入 Personal access tokens
你会看到两个选项:
-
Fine-grained tokens(新)
-
Tokens (classic) ← ✅ 我们用这个(最稳)
👉 点 Tokens (classic)
6️⃣ Generate new token
右上角:
Generate new token
→ Generate new token (classic)
二、Token 怎么填(最安全 & 不踩坑)
📋 推荐填写方式(GitHub 私有仓库够用)
| 字段 | 怎么填 |
|---|---|
| Note | jenkins |
| Expiration | No expiration(或 90 days) |
| Scopes | ☑ repo(最重要) |
👉 只勾 repo 就够了
然后点最下面:
Generate token
⚠️ 非常重要(很多人这里翻车)
❗ Token 只显示一次!
生成后:
-
立刻复制
-
存到安全的地方
关掉页面就再也看不到了,只能删了重建。
三、把 Token 填进 Jenkins(关键对应关系)
回到 Jenkins:
Manage Jenkins
→ Credentials
→ System
→ Global credentials (unrestricted)
→ Add Credentials
填写方式:
| Jenkins 字段 | 填什么 |
|---|---|
| Kind | Username with password |
| Username | 你的 GitHub 用户名 |
| Password | 刚刚复制的 Token |
| ID | github-token(随你,但记住) |
| Description | github personal token |
👉 点 Save
四、快速验证 Token 是否 OK(强烈建议)
在 Jenkins Pipeline 里写一个最简单的 checkout:
stage('Checkout') {
steps {
checkout([
$class: 'GitSCM',
branches: [[name: '*/main']],
userRemoteConfigs: [[
url: 'https://github.com/你的用户名/你的仓库.git',
credentialsId: 'github-token'
]]
])
}
}
如果成功:
-
Console Output 会看到
Fetching changes from ... -
Workspace 里能看到代码
如果失败(常见):
-
❌
Authentication failed→ Token scope 不够 / Token 填错 -
❌
Repository not found→ URL 错 / 私有仓库没权限
我可以直接帮你定位。
五、给你一个「100%能跑」的最小 Pipeline 模板
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scmGit(
branches: [[name: '*/main']],
userRemoteConfigs: [[
url: 'https://github.com/你的用户名/你的仓库.git',
credentialsId: 'github-token'
]]
)
}
}
stage('Run Playwright Smoke Test') {
steps {
bat '''
docker run --rm ^
-v "%WORKSPACE%:/work" ^
-w /work ^
mcr.microsoft.com/playwright:v1.41.2-jammy ^
bash -lc "npm install && npx playwright test packages/insomnia-smoke-test/tests/smoke/app.test.ts --reporter=list"
'''
}
}
}
}