( github actions + workflow 03 ) 手动添加 token, 防止权限不够

1. 起因, 目的:

  • 建议都添加 token, 防止权限不够,报错 403
  • 这事情原因很简单,但是操作很麻烦, 因为需要手动点击,找到各种按钮的位置。
  • 这种事情,第一次比较麻烦,做过一遍, 有个模板,下次会很快。

2. 先看效果

报错的地方

修复之后,一切正常,能自动运行!

3. 过程:

问题背景

在使用 GitHub Actions 时,可能会遇到权限不足导致的 403 错误。这通常是因为默认的 GITHUB_TOKEN 权限限制或者 API 访问限制导致的。

解决方案

1. 创建个人访问令牌(Personal Access Token)

申请一个 token, 放在常用的地方。

2. 在仓库中添加密钥

  1. 进入需要配置的仓库
  2. 点击 SettingsSecrets and variablesActions
  3. 点击 New repository secret
  4. 添加新密钥:
    • Name: PAT (或其他易记的名称)
    • Value: 粘贴之前生成的个人访问令牌
    • 点击 Add secret

3. 在 Workflow 中使用令牌

我的 workflow 文件

yaml 复制代码
# 工作流名称,在 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: 配置 Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.9'  # 使用 Python 3.9

      # 步骤3:安装依赖(如果有 requirements.txt)
      - name: 安装依赖
        run: |
          if [ -f requirements.txt ]; then
            pip3 install -r requirements.txt
          fi

      # 步骤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_*.csv
          git 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

  • 小问题,就是麻烦。

希望对大家有帮助。

相关推荐
csdn_aspnet1 天前
开源项目在GitHub上的破圈方法论,解析Star增长、Issue响应、Contributor引导等真实运营技巧
开源·github·issue·readme·star
uhakadotcom1 天前
Scrapy-Redis 里面提供哪些即开即用的功能能力模块
前端·面试·github
诚信定制8391 天前
GitHub 三大协作利器:Topics标签、Discussions与Actions Marketplace
github
欣慰的猫咪1 天前
GitHub Copilot 正式成为 JetBrains AI Assistant 的原生默认 Agent 之一
人工智能·github·copilot
鲸~屿1 天前
Git上传本地文件到GitHub教学指南
git·github
码流怪侠2 天前
【GitHub】Strix 深度解析:开源 AI 渗透测试工具的架构、原理与实战
github·agent·ai编程
OpenTiny社区2 天前
Coding Agent 到底是怎么工作的,它又为什么会在复杂代码库里失真?
前端·github·agent
王飞飞不会飞2 天前
macbert训练过程记录
人工智能·github
じ☆ve 緈辐2 天前
使用github上传代码(包含视频)
github