Skip to content

Test Contributor Updates #1

Test Contributor Updates

Test Contributor Updates #1

Workflow file for this run

name: Test Contributor Updates
on:
workflow_dispatch:
inputs:
test_scenario:
description: 'Select test scenario'
required: true
default: 'daily'
type: choice
options:
- daily
- weekly
- monthly
permissions:
contents: write
jobs:
test-updates:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Install Node dependencies
run: npm ci
- name: Set test date variables
run: |
echo "TIMESTAMP=$(date +'%Y_%m_%d')" >> $GITHUB_ENV
if [ "${{ github.event.inputs.test_scenario }}" = "weekly" ]; then
echo "IS_FRIDAY=5" >> $GITHUB_ENV
echo "IS_MONTH_START=1" >> $GITHUB_ENV
elif [ "${{ github.event.inputs.test_scenario }}" = "monthly" ]; then
echo "IS_FRIDAY=1" >> $GITHUB_ENV
echo "IS_MONTH_START=4" >> $GITHUB_ENV
else
echo "IS_FRIDAY=1" >> $GITHUB_ENV
echo "IS_MONTH_START=1" >> $GITHUB_ENV
fi
- name: Debug date variables
run: |
echo "TIMESTAMP: $TIMESTAMP"
echo "IS_FRIDAY: $IS_FRIDAY"
echo "IS_MONTH_START: $IS_MONTH_START"
date
- name: Process daily data
if: github.event.inputs.test_scenario == 'daily'
env:
GH_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
# Create directories
mkdir -p data/daily data/daily/history
# Fetch current data with timestamp
bash scripts/fetch_github.sh elizaos eliza --type prs --days 1 | tee data/daily/prs.json data/daily/history/prs_${TIMESTAMP}.json
bash scripts/fetch_github.sh elizaos eliza --type issues --days 1 | tee data/daily/issues.json data/daily/history/issues_${TIMESTAMP}.json
bash scripts/fetch_github.sh elizaos eliza --type commits --days 1 | tee data/daily/commits.json data/daily/history/commits_${TIMESTAMP}.json
# Process data
[ -f data/daily/contributors.json ] && mv data/daily/contributors.json data/daily/history/contributors_${TIMESTAMP}.json || true
[ -f data/daily/summary.json ] && mv data/daily/summary.json data/daily/history/summary_${TIMESTAMP}.json || true
[ -f data/daily/summary.md ] && mv data/daily/summary.md data/daily/history/summary_${TIMESTAMP}.md || true
python scripts/combine.py -p data/daily/prs.json -i data/daily/issues.json -c data/daily/commits.json -o data/daily/combined.json
python scripts/calculate_scores.py data/daily/combined.json data/daily/scored.json
python scripts/summarize.py data/daily/scored.json data/daily/contributors.json --model openai
python scripts/summarize_daily.py data/daily/contributors.json -t json data/daily/summary.json --model openai
python scripts/summarize_daily.py data/daily/contributors.json -t md data/daily/summary.md --model openai
- name: Process weekly data
if: github.event.inputs.test_scenario == 'weekly'
env:
GH_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
# Create directories
mkdir -p data/weekly data/weekly/history
# Fetch current data with timestamp
bash scripts/fetch_github.sh elizaos eliza --type prs --days 7 | tee data/weekly/prs.json data/weekly/history/prs_${TIMESTAMP}.json
bash scripts/fetch_github.sh elizaos eliza --type issues --days 7 | tee data/weekly/issues.json data/weekly/history/issues_${TIMESTAMP}.json
bash scripts/fetch_github.sh elizaos eliza --type commits --days 7 | tee data/weekly/commits.json data/weekly/history/commits_${TIMESTAMP}.json
# Process data
[ -f data/weekly/contributors.json ] && mv data/weekly/contributors.json data/weekly/history/contributors_${TIMESTAMP}.json || true
python scripts/combine.py -p data/weekly/prs.json -i data/weekly/issues.json -c data/weekly/commits.json -o data/weekly/combined.json
python scripts/calculate_scores.py data/weekly/combined.json data/weekly/scored.json
python scripts/summarize.py data/weekly/scored.json data/weekly/contributors.json --model openai
- name: Process monthly data
if: github.event.inputs.test_scenario == 'monthly'
env:
GH_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
# Create directories
mkdir -p data/monthly data/monthly/history
# Fetch current data with timestamp
bash scripts/fetch_github.sh elizaos eliza --type prs --days 30 | tee data/monthly/prs.json data/monthly/history/prs_${TIMESTAMP}.json
bash scripts/fetch_github.sh elizaos eliza --type issues --days 30 | tee data/monthly/issues.json data/monthly/history/issues_${TIMESTAMP}.json
bash scripts/fetch_github.sh elizaos eliza --type commits --days 30 | tee data/monthly/commits.json data/monthly/history/commits_${TIMESTAMP}.json
# Process data
[ -f data/monthly/contributors.json ] && mv data/monthly/contributors.json data/monthly/history/contributors_${TIMESTAMP}.json || true
python scripts/combine.py -p data/monthly/prs.json -i data/monthly/issues.json -c data/monthly/commits.json -o data/monthly/combined.json
python scripts/calculate_scores.py data/monthly/combined.json data/monthly/scored.json
python scripts/summarize.py data/monthly/scored.json data/monthly/contributors.json --model openai
- name: Build and generate site
run: |
npm run build
npm run generate
- name: Commit and push if changed
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add data/ profiles/
git diff --staged --quiet || (git commit -m "[TEST] Update contributor data and reports [skip ci]" && git push)
env:
GITHUB_TOKEN: ${{ github.token }}