chore: Add workflow weekly-kpi-report.yml
This commit is contained in:
parent
4d3c1c4a9d
commit
30f97a118b
1 changed files with 82 additions and 0 deletions
82
.github/workflows/weekly-kpi-report.yml
vendored
Normal file
82
.github/workflows/weekly-kpi-report.yml
vendored
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue