创建数据目录
|
Free to install — no account needed
Copy the command below and paste into your agent.
Instant access • No coding needed • No account needed
What you get in 5 minutes
- Full skill code ready to install
- Works with 4 AI agents
- Lifetime updates included
Description
--- name: 保研信息自动化跟踪-保包 description: | 监控GitHub仓库CS-BAOYAN/CSLabInfo2025的更新,跟踪计算机、生物医学工程、电子信息专业的保研招生和实习信息,通过时间过滤避免重复推送。 【重要原则】:没有新的更新或不满足条件时,绝对不能发送任何消息推送,必须完全静默。 --- ## 核心任务 监控目标仓库 `CS-BAOYAN/CSLabInfo2025` 的实时更新,筛选符合条件的保研情报并推送。 ## 最高原则 **【绝对禁止】没有新的更新或不满足时间窗口条件时,必须完全静默,不能发送任何消息!** ## 环境配置 **必需工具**:`git`、`gh`、`jq` **环境变量**: - `REPO_DIR`:仓库本地路径(默认:`$HOME/CSLabInfo2025`) - `TRACKER_DIR`:数据存储目录(默认:`$HOME/baoyan-tracker/data`) - `WATERMARK_FILE`:水位线文件(默认:`$TRACKER_DIR/watermark`) - `LOG_FILE`:审计日志文件(默认:`$TRACKER_DIR/llog`) ## 执行流程 ### 1. 初始化环境 ```bash # 创建数据目录 mkdir -p "$TRACKER_DIR" # 初始化水位线(如果不存在) if [ ! -f "$WATERMARK_FILE" ]; then date -u +"%Y-%m-%dT%H:%M:%SZ" > "$WATERMARK_FILE" fi # 克隆或更新仓库 if [ ! -d "$REPO_DIR/.git" ]; then git clone https://github.com/CS-BAOYAN/CSLabInfo2025.git "$REPO_DIR" else cd "$REPO_DIR" && git pull origin main fi ``` ### 2. 检查最新Commit(早退机制) ```bash cd "$REPO_DIR" # 获取最新commit时间 LATEST_COMMIT=$(git log -1 --format="%ct" main) CURRENT_TIME=$(date +%s) WATERMARK=$(cat "$WATERMARK_FILE" | xargs date -u +"%s" 2>/dev/null || echo 0) # 检查是否在1小时窗口内 COMMIT_AGE=$((CURRENT_TIME - LATEST_COMMIT)) if [ $COMMIT_AGE -le 3600 ] && [ $LATEST_COMMIT -gt $WATERMARK ]; then # 早退:推送commit摘要 COMMIT_HASH=$(git log -1 --format="%h" main) COMMIT_MSG=$(git log -1 --format="%s" main) COMMIT_AUTHOR=$(git log -1 --format="%an" main) CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD) echo "Found new commit on main branch." echo "Commit: $COMMIT_HASH" echo "Author: $COMMIT_AUTHOR" echo "Message: $COMMIT_MSG" echo "Changed files:" echo "$CHANGED_FILES" | sed 's/^/ /' # 更新水位线 date -u +"%Y-%m-%dT%H:%M:%SZ" > "$WATERMARK_FILE" # 记录审计日志 echo "[$(date +"%Y-%m-%d %H:%M:%S")] Status: CommitEarlyExit (New commit detected within 1h window)" >> "$LOG_FILE" exit 0 fi ``` ### 3. 获取并筛选PR ```bash cd "$REPO_DIR" WATERMARK=$(cat "$WATERMARK_FILE") CURRENT_TIME=$(date +%s) # 获取最近更新的PR(最多50个) gh pr list --repo CS-BAOYAN/CSLabInfo2025 --limit 50 --state open --json number,title,updatedAt > /tmp/prs.json # 筛选PR CANDIDATES=() while IFS= read -r pr; do PR_UPDATED=$(echo "$pr" | jq -r '.updatedAt' | xargs date -u +"%s" 2>/dev/null || echo 0) WATERMARK_TS=$(date -u -d "$WATERMARK" +"%s" 2>/dev/null || echo 0) # PR静默窗口:1小时内不推送 PR_AGE=$((CURRENT_TIME - PR_UPDATED)) if [ $PR_AGE -ge 3600 ] && [ $PR_UPDATED -gt $WATERMARK_TS ]; then CANDIDATES+=("$pr") fi done < <(jq -c '.[]' /tmp/prs.json) ``` ### 4. 处理候选PR ```bash HIT_COUNT=0 for pr in "${CANDIDATES[@]}"; do PR_NUMBER=$(echo "$pr" | jq -r '.number') PR_TITLE=$(echo "$pr" | jq -r '.title') # 输出结果 echo "Result: PR#${PR_NUMBER} | Title: ${PR_TITLE}" HIT_COUNT=$((HIT_COUNT + 1)) done ``` ### 5. 记录审计日志 ```bash SCANNED=$(jq '. | length' /tmp/prs.json 2>/dev/null || echo 0) CANDIDATE_COUNT=${#CANDIDATES[@]} FILTERED=$((SCANNED - CANDIDATE_COUNT)) if [ $HIT_COUNT -gt 0 ]; then echo "[$(date +"%Y-%m-%d %H:%M:%S")] 扫描PR数: ${SCANNED} | 候选PR数: ${CANDIDATE_COUNT} | 命中: ${HIT_COUNT} | 过滤干扰项: ${FILTERED}" >> "$LOG_FILE" # 更新水位线 date -u +"%Y-%m-%dT%H:%M:%SZ" > "$WATERMARK_FILE" else echo "[$(date +"%Y-%m-%d %H:%M:%S")] Status: Idle (No relevant updates)." >> "$LOG_FILE" fi ``` ## 时间窗口规则 - **Commit早退窗口**:1小时(3600秒)- 最新commit在1小时内且新于水位线才推送 - **PR静默窗口**:1小时(3600秒)- PR更新后1小时内不推送 - **水位线机制**:记录上次扫描时间,实现增量扫描 ## 输出格式 ### Commit早退路径 ``` Found new commit on main branch. Commit: <hash> Author: <author> Message: <message> Changed files: <file1> <file2> ``` ### PR处理路径 ``` Result: PR#<编号> | Title: <PR标题> ``` ### 审计日志 ``` [YYYY-MM-DD HH:MM:SS] 扫描PR数: N | 候选PR数: C | 命中: H | 过滤干扰项: Z [YYYY-MM-DD HH:MM:SS] Status: Idle (No relevant updates). [YYYY-MM-DD HH:MM:SS] Status: CommitEarlyExit (New commit detected within 1h window) ```
Security Status
Scanned
Passed automated security checks
Related AI Tools
More Career Boost tools you might like
Charles Proxy Session Extractor
FreeExtracts HTTP/HTTPS request and response data from Charles Proxy session files (.chlsj format), including URLs, methods, status codes, headers, request bodies, and response bodies. Use when analyzing captured network traffic from Charles Proxy debug
Code Review Assistant
$9.99AI-powered code review that catches bugs, security issues and style problems.
Test Generator
$4.99Auto-generate unit and integration tests for any codebase.
Pump My Claw - Multi-Chain AI Trading Agent Platform
Free> Track AI trading agents across Solana (pump.fun) and Monad (nad.fun) blockchains with real-time trade monitoring, performance analytics, and token charts. Pump My Claw is a multi-chain platform that tracks AI trading agents operating on: - **Solana
Skill: DRR Dependency Analysis (Credit Scope) — Leg1 Spread Ticket Generator
FreeGenerate a JIRA-ready DRR dependency analysis ticket for **Leg1 Spread-related fields**. This skill is designed for **Credit product reporting rules** where: - The reporting rule output depends on **Leg1 enrichment**
Prompt Injection Detector
$19.99Detect and block prompt injection attacks before they reach your agent.