chore(scout-bot): enlarge phase-1 inbound traffic coverage
Some checks failed
Deploy to 110 WOOO Server / deploy (push) Failing after 7s

This commit is contained in:
OG T
2026-06-07 15:22:42 +08:00
parent d39db03e06
commit feae75e372
2 changed files with 30 additions and 12 deletions

View File

@@ -8,9 +8,18 @@ const GITHUB_TOKEN = process.env.GITHUB_TOKEN;
const VIBEWORK_API_URL = process.env.VIBEWORK_API_URL || "https://agent.wooo.work/api";
const SCOUT_API_KEY = process.env.SCOUT_API_KEY;
const SCOUT_AGENT_ID = process.env.SCOUT_AGENT_ID || "scout_official_1";
const SCOUT_CRON_EXPRESSION = process.env.SCOUT_CRON_EXPRESSION || "*/10 * * * *";
const SCOUT_ISSUE_LABEL = process.env.SCOUT_ISSUE_LABEL || "good first issue";
const SCOUT_TARGET_REPOS_RAW = process.env.SCOUT_TARGET_REPOS || "vibe-work/test-bounty-repo";
const SCOUT_CRON_EXPRESSION = process.env.SCOUT_CRON_EXPRESSION || "*/3 * * * *";
const SCOUT_ISSUE_LABELS_RAW = process.env.SCOUT_ISSUE_LABELS || process.env.SCOUT_ISSUE_LABEL || "";
const SCOUT_TARGET_REPOS_RAW =
process.env.SCOUT_TARGET_REPOS ||
"vibe-work/test-bounty-repo,open-webui/open-webui,microsoft/vscode,vercel/next.js,langchain-ai/langgraph,facebook/react,microsoft/TypeScript,openai/openai-cookbook,astral-sh/ruff,sequelize/sequelize,pnpm/pnpm,prisma/prisma";
const SCOUT_PER_PAGE = Math.min(Math.max(parseInt(process.env.SCOUT_PER_PAGE || "50", 10), 1), 100);
const SCOUT_MAX_ISSUES_PER_SCAN = Math.max(parseInt(process.env.SCOUT_MAX_ISSUES_PER_SCAN || "60", 10), 1);
const SCOUT_ISSUE_LABELS = SCOUT_ISSUE_LABELS_RAW
.split(",")
.map((entry) => entry.trim())
.filter(Boolean);
const SCOUT_TARGET_REPOS = SCOUT_TARGET_REPOS_RAW
.split(",")
@@ -160,21 +169,26 @@ async function scanRepositories() {
for (const target of TARGET_REPOS) {
try {
const issues = await octokit.issues.listForRepo({
const issues = await octokit.issues.listForRepo({
owner: target.owner,
repo: target.repo,
state: "open",
labels: SCOUT_ISSUE_LABEL,
per_page: 30
...(SCOUT_ISSUE_LABELS.length > 0 ? { labels: SCOUT_ISSUE_LABELS.join(",") } : {}),
per_page: SCOUT_PER_PAGE
});
console.log(`Found ${issues.data.length} open issues in ${target.owner}/${target.repo}`);
for (const issue of issues.data) {
const issueCandidates = issues.data.slice(0, SCOUT_MAX_ISSUES_PER_SCAN);
for (const issue of issueCandidates) {
if (!issue.pull_request) { // Ignore PRs
await processIssue(target.owner, target.repo, issue);
}
}
if (issues.data.length > issueCandidates.length) {
console.log(`Limited scan to first ${issueCandidates.length} issues in ${target.owner}/${target.repo}`);
}
} catch (error) {
console.error(`Error scanning ${target.owner}/${target.repo}:`, error);
}
@@ -189,7 +203,7 @@ async function bootstrap() {
bootstrap();
// Default: every 10 minutes for higher volume inbound traffic
// Default: every 3 minutes for phase-1 high-velocity inbound traffic
cron.schedule(SCOUT_CRON_EXPRESSION, () => {
console.log(`Running scheduled GitHub scan (${SCOUT_CRON_EXPRESSION})...`);
scanRepositories();

View File

@@ -66,10 +66,14 @@ services:
- SCOUT_API_KEY=${SCOUT_API_KEY:-super-secret-mcp-key}
- SCOUT_AGENT_ID=scout_official_1
# Optional: add more discovery repos via env (comma separated "owner/repo"), e.g. openai/swarm,significant-gravitas/autogpt
- SCOUT_TARGET_REPOS=${SCOUT_TARGET_REPOS}
- SCOUT_ISSUE_LABEL=${SCOUT_ISSUE_LABEL:-good first issue}
# Higher frequency for phase-1 bootstrapping; tune this safely after data stabilizes.
- SCOUT_CRON_EXPRESSION=${SCOUT_CRON_EXPRESSION:-*/10 * * * *}
- SCOUT_TARGET_REPOS=${SCOUT_TARGET_REPOS:-vibe-work/test-bounty-repo,open-webui/open-webui,microsoft/vscode,vercel/next.js,langchain-ai/langgraph,facebook/react,microsoft/TypeScript,openai/openai-cookbook,astral-sh/ruff,sequelize/sequelize,pnpm/pnpm,prisma/prisma}
# Optional: comma-separated labels; leave unset for broad scan of all open issues
- SCOUT_ISSUE_LABELS=${SCOUT_ISSUE_LABELS}
# Keep compatibility with existing naming
- SCOUT_ISSUE_LABEL=${SCOUT_ISSUE_LABEL}
- SCOUT_CRON_EXPRESSION=${SCOUT_CRON_EXPRESSION:-*/3 * * * *}
- SCOUT_PER_PAGE=${SCOUT_PER_PAGE:-50}
- SCOUT_MAX_ISSUES_PER_SCAN=${SCOUT_MAX_ISSUES_PER_SCAN:-60}
# GitHub token should be provided in deployment env for real posting.
- GITHUB_TOKEN=${GITHUB_TOKEN}
networks: