// scripts/inspect-forgejo-runners.js const { chromium } = require('@playwright/test'); const path = require('path'); const fs = require('fs'); const OUTPUT_DIR = 'C:/Users/encep/.gemini/antigravity-cli/brain/3ab7ae82-5634-41d5-93a7-3c12c22503e2/screenshots/git_server'; async function inspectRunners() { const browser = await chromium.launch({ channel: 'msedge', headless: true }); const context = await browser.newContext({ viewport: { width: 1440, height: 960 } }); const page = await context.newPage(); console.log('Logging in to Forgejo...'); await page.goto('https://git.chanpaca.net/user/login', { waitUntil: 'networkidle', timeout: 30000 }); await page.fill('input[name="user_name"]', 'yunchan'); await page.fill('input[name="password"]', 'ONVI2v4J#y'); await page.click('button:has-text("Sign in"), button:has-text("로그인"), button[type="submit"]'); await page.waitForTimeout(3000); // Check Admin Actions Runners console.log('Navigating to Admin Actions Runners...'); await page.goto('https://git.chanpaca.net/admin/actions/runners', { waitUntil: 'networkidle', timeout: 30000 }); await page.waitForTimeout(2000); const shot1 = path.join(OUTPUT_DIR, '03_forgejo_admin_runners.png'); await page.screenshot({ path: shot1, fullPage: false }); console.log('Admin Runners screenshot saved:', shot1); // Check Repo Actions tab console.log('Navigating to Repo Actions...'); await page.goto('https://git.chanpaca.net/yunchan/d3ro-voice/actions', { waitUntil: 'networkidle', timeout: 30000 }); await page.waitForTimeout(2000); const shot2 = path.join(OUTPUT_DIR, '04_forgejo_repo_actions.png'); await page.screenshot({ path: shot2, fullPage: false }); console.log('Repo Actions screenshot saved:', shot2); // Extract runner details from page await page.goto('https://git.chanpaca.net/admin/actions/runners'); await page.waitForTimeout(1000); const runnerRows = await page.locator('table tr, .runner-item, .flex-list-item').allInnerTexts(); console.log('RUNNER ROWS FOUND:', JSON.stringify(runnerRows, null, 2)); await browser.close(); } inspectRunners().catch(console.error);