Testing basic velocity report action

This commit is contained in:
Bryan Morgan 2025-08-05 15:55:50 -04:00
parent 2778c7d851
commit d421fa9e64
2 changed files with 62 additions and 0 deletions

View File

@ -0,0 +1,23 @@
#!/bin/bash
# --- Configuration ---
USERNAMES=("davideast" "hugomurillomtz" "jakemac53" "richieforeman" "shishu314" "shrutip90" "i14h" "hritan")
# --- Date Calculation ---
START_DATE=$(date -d "last Friday" +%Y-%m-%d)
END_DATE=$(date -d "last Thursday" +%Y-%m-%d)
DATE_RANGE="${START_DATE}..${END_DATE}"
# --- Report Generation ---
# Print a header row for the CSV
echo "Date Range,Username,PRs Submitted,Issues Closed"
# Loop through each user and generate a data row
for USER in "${USERNAMES[@]}"; do
# Get metrics using the GitHub CLI
PRS_SUBMITTED=$(gh pr list --author "${USER}" --search "created:${DATE_RANGE}" --repo "${GITHUB_REPO}" --json number --jq 'length')
ISSUES_CLOSED=$(gh issue list --search 'closer:"${USER}" closed:${DATE_RANGE}' --repo "${GITHUB_REPO}" --json number --jq 'length')
# Print the data as a CSV row
echo "${START_DATE} to ${END_DATE},${USER},${PRS_SUBMITTED},${ISSUES_CLOSED}"
done

View File

@ -0,0 +1,39 @@
# .github/workflows/weekly-velocity-report.yml
name: Weekly Velocity Report
on:
schedule:
#- cron: "0 13 * * 1" # Runs every Monday at 9:00 AM UTC
- cron: "*/5 * * * *" # Test by running every 5 minutes
workflow_dispatch:
jobs:
generate_report:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Generate Weekly Report as CSV
id: report
env:
GH_TOKEN: ${{ secrets.GH_PAT }}
GITHUB_REPO: ${{ github.repository }}
run: |
chmod +x ./.github/workflows/scripts/generate-report.sh
REPORT_CSV=$(./.github/workflows/scripts/generate-report.sh)
echo "csv_data<<EOF" >> $GITHUB_OUTPUT
echo "$REPORT_CSV" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Append data to Google Sheet
if: success()
uses: jroehl/gcp-google-sheets-action@v2.0.0
with:
gcp_sa_key: ${{ secrets.GCP_SA_KEY }}
spreadsheet_id: ${{ secrets.SPREADSHEET_ID }}
sheet_name: "Weekly Reports" # The name of the tab in your sheet
data: ${{ steps.report.outputs.csv_data }}
major_dimension: "ROWS"
value_input_option: "USER_ENTERED"