( github actions + workflow 03 ) 手动添加 token, 防止权限不够
1. 起因, 目的:
- 建议都添加 token, 防止权限不够,报错 403
- 这事情原因很简单,但是操作很麻烦, 因为需要手动点击,找到各种按钮的位置。
- 这种事情,第一次比较麻烦,做过一遍, 有个模板,下次会很快。
2. 先看效果
报错的地方
修复之后,一切正常,能自动运行!
3. 过程:
问题背景
在使用 GitHub Actions 时,可能会遇到权限不足导致的 403 错误。这通常是因为默认的 GITHUB_TOKEN
权限限制或者 API 访问限制导致的。
解决方案
1. 创建个人访问令牌(Personal Access Token)
申请一个 token, 放在常用的地方。
2. 在仓库中添加密钥
- 进入需要配置的仓库
- 点击
Settings
→Secrets and variables
→Actions
- 点击
New repository secret
- 添加新密钥:
- Name:
PAT
(或其他易记的名称) - Value: 粘贴之前生成的个人访问令牌
- 点击
Add secret
- Name:
3. 在 Workflow 中使用令牌
我的 workflow 文件
# 工作流名称,在 GitHub Actions 界面显示
name: 爬虫自动化# 触发条件:每5分钟运行一次,或手动触发# - cron: '0 */5 * * *' # 每5个小时触发一次
# - cron: '*/5 * * * *' # 每5分钟触发
# - cron: '0 4 * * *' # 每天中午12点触发一次on:schedule:- cron: '0 */2 * * *' # 每2个小时触发一次workflow_dispatch: # 支持手动触发,方便测试# 新增!允许推送代码更改
permissions:contents: write # 允许推送代码更改# 定义任务
jobs:run-crawler:# 使用最新的 Ubuntu 环境runs-on: ubuntu-latest# 执行步骤steps:# 步骤1:拉取仓库代码- name: 拉取代码uses: actions/checkout@v4# 步骤2:设置 Python 环境- name: 配置 Pythonuses: actions/setup-python@v5with:python-version: '3.9' # 使用 Python 3.9# 步骤3:安装依赖(如果有 requirements.txt)- name: 安装依赖run: |if [ -f requirements.txt ]; thenpip3 install -r requirements.txtfi# 步骤4:打印当前时间,方便调试- name: 打印运行时间run: echo "now is >>> $(date)"# 步骤5:运行爬虫脚本- name: 运行爬虫run: python3 news_spider/peng_pai_02.py# 步骤6:提交生成的 CSV 文件到仓库- name: 提交 CSV 文件if: success()env:MY_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}run: |git config --global user.name "github-actions[bot]"git config --global user.email "github-actions[bot]@users.noreply.github.com"git add csv_data/peng_pai_news_*.csvgit commit -m "添加新爬虫数据: peng_pai_news_$(date +%Y%m%d_%H%M%S).csv" || echo "没有新文件提交"git push https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }} HEAD:${{ github.ref_name }}
4. 结论 + todo
- 小问题,就是麻烦。
希望对大家有帮助。