name: Weekly KPI Report # Post weekly KPI report to GitHub Discussions every Monday at 9:00 AM UTC on: schedule: - cron: '0 9 * * 1' # Every Monday at 9:00 AM UTC workflow_dispatch: # Allow manual trigger jobs: generate-and-post-report: runs-on: ubuntu-latest name: Generate and post weekly KPI report steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Install Dependencies run: npm ci - name: Generate and Post KPI Report env: GITHUB_TOKEN: ${{ secrets.GH_PROJECT_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} run: | cat > post-kpi-report.ts << 'EOF' import { ProjectsV2Client } from './agents/github/projects-v2.js'; import { DiscussionsClient } from './agents/github/discussions.js'; async function main() { const token = process.env.GITHUB_TOKEN!; const [owner, repo] = process.env.GITHUB_REPOSITORY!.split('/'); // Initialize clients const projectsClient = new ProjectsV2Client(token, { owner, repo, projectNumber: parseInt(process.env.GITHUB_PROJECT_NUMBER || '1'), }); const discussionsClient = new DiscussionsClient(token, { owner, repo, }); // Initialize both clients await projectsClient.initialize(); await discussionsClient.initialize(); // Generate KPI report console.log('📊 Generating KPI report...'); const kpiData = await projectsClient.generateKPIReport(); console.log('KPI Data:', kpiData); // Post to Discussions console.log('📝 Posting to GitHub Discussions...'); const discussion = await discussionsClient.postWeeklyKPIReport(kpiData); console.log(`✓ Posted weekly KPI report: ${discussion.url}`); console.log(` Discussion #${discussion.number}: ${discussion.title}`); } main().catch((error) => { console.error('Error generating KPI report:', error); process.exit(1); }); EOF npx tsx post-kpi-report.ts - name: Summary run: | echo "### 📊 Weekly KPI Report Posted" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "✓ Successfully generated and posted weekly KPI report to Discussions" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "View at: https://github.com/${{ github.repository }}/discussions" >> $GITHUB_STEP_SUMMARY