文件预览

SKILL.md

查看 Bounty Automation 技能包中的文件内容。

文件内容

SKILL.md

---
name: bounty-automation
description: Multi-platform bounty automation system for GitHub, Opire, Algora, and OpenTask / 多平台赏金自动化系统,支持 GitHub、Opire、Algora、OpenTask,具有自动扫描、过滤、认领和 PR 提交功能
---

# Bounty Automation

## Architecture

```
BountyHunter-Push (每10min)
  └─ python3 bounty-hunter/bounty_hunter.py
       ├─ scan_github()  → GitHub Search API (bounty:true)
       ├─ scan_opire()   → Opire REST API
       ├─ scan_algora()  → Algora REST API
       └─ scan_opentask() → OpenTask + 双账号自动投标
       └─ 输出 QQ_MSG: → cron 捕获 → QQ 推送

GitHub-Bounty-Auto (每2h)
  └─ python3 bounty-github/bounty_scanner.py
       ├─ 扫描 bounty issue
       ├─ 过滤(跳过体力活/已认领/less than $20)
       ├─ 自动 claim → fork → clone
       ├─ 实现 → commit → push → PR
       └─ QQ 推送 PR 链接
```

## 效率优化要点

1. **缓存去重**:`bounty-hunter/cache.json` 记录已推送任务,重复不推
2. **并行扫描**:GitHub/Opire/Algora/OpenTask 使用多线程并发(`concurrent.futures.ThreadPoolExecutor`),单次扫描控制在 15s 内
3. **增量更新**:优先用 `since:` 时间参数,避免全量扫描
4. **关键词过滤前置**:先快速过滤金额和关键词,再发 API 请求获取详情
5. **API 限流保护**:`time.sleep(rate_limit_delay)` + 自动重试 3 次
6. **异常隔离**:单平台失败不影响其他平台扫描
7. **GitHub 管道只处理一件**:每 2h 只 claim + 实现一个任务,避免资源竞争

## 文件结构

```
clawd/
├── bounty-hunter/
│   ├── bounty_hunter.py        # 主扫描脚本(多平台)
│   └── cache.json              # 已推送任务缓存(自动生成)
├── bounty-github/
│   ├── bounty_scanner.py       # 扫描+认领+PR 管道
│   ├── lib.sh                  # GitHub API 函数库
│   ├── pipeline.sh             # 管道编排器
│   ├── github_config.sh        # GitHub 凭证(用户手动填写)
│   └── target/                 # 目标任务缓存(自动生成)
├── skills/
│   └── bounty-automation/      # 本 skill
└── ~/.opentask/
    ├── credentials.json        # OpenTask 主账号 token
    └── credentials-old.json    # OpenTask 老账号 token
```

## 部署

### 1. 配置凭证

```bash
# OpenTask
mkdir -p ~/.opentask
cat > ~/.opentask/credentials.json << 'END_OF_CRED'
{
  "email": "your@email.com",
  "handle": "your_handle",
  "tokenValue": "ot_YOUR_TOKEN"
}
END_OF_CRED

cp ~/.opentask/credentials.json ~/.opentask/credentials-old.json
# 修改第二个文件的 tokenValue 为老账号

# GitHub
cat > /home/node/clawd/bounty-github/github_config.sh << 'END_OF_CONFIG'
export GH_TOKEN="ghp_YOUR_TOKEN"
export GH_USER="your_username"
export GH_EMAIL="your@email.com"
END_OF_CONFIG
chmod 600 /home/node/clawd/bounty-github/github_config.sh
```

### 2. 安装依赖

```bash
pip install requests
```

### 3. 添加 Cron Job

见 `scripts/install_cron.sh` 或参考 DEPLOY_GUIDE.md 手动配置。

## 在 QQ 中的用法

- 直接说「跑一次赏金扫描」→ 触发单次扫描
- 说「查看赏金缓存」→ 读 cache.json 显示已推送条数
- 说「GitHub 赏金详情」→ 读 target/current.json 显示当前处理中的任务

## 注意事项

- GitHub token 需要 `repo` + `public_repo` 权限
- OpenTask token 需要 `bids:write` scope
- 体力活任务(挖矿/注册/点赞)已被过滤
- 每 2h 管道只处理一个任务,避免 API 限流

## 💖 支持创作者

如果您觉得这个技能对您有所帮助,欢迎通过以下方式支持作者的持续开发和维护:

- **USDC TRC-20**: `TMFjS7sTKvBVrNXxCxWRPmWTyTZX4Y6THn`
- **PayPal**: `ljwtitan@hotmail.com`

您的支持将用于改进此技能、添加新功能以及提供更好的文档和示例。