diff --git a/.github/workflows/repo-metrics.yml b/.github/workflows/repo-metrics-monthly.yml similarity index 100% rename from .github/workflows/repo-metrics.yml rename to .github/workflows/repo-metrics-monthly.yml diff --git a/.github/workflows/repo-metrics-weekly.yml b/.github/workflows/repo-metrics-weekly.yml new file mode 100644 index 0000000000000..f993bebe7c4dd --- /dev/null +++ b/.github/workflows/repo-metrics-weekly.yml @@ -0,0 +1,58 @@ +name: Weekly repo metrics +on: + workflow_dispatch: + schedule: + - cron: '0 9 * * MON' + +permissions: + issues: write + pull-requests: read + +jobs: + build: + # this workflow will always fail in forks; bail if this isn't running in the upstream + if: github.repository == 'aws/aws-cdk' + name: metrics + runs-on: ubuntu-latest + + steps: + - name: Get dates for last week + shell: bash + run: | + # Calculate the date of the previous Monday + PREVIOUS_MONDAY=$(date -d "7 days ago" "+%Y-%m-%d") + + # Calculate the date of the current Sunday + CURRENT_SUNDAY=$(date -d "1 day ago" "+%Y-%m-%d") + + # Set an environment variable with the date range + echo "$PREVIOUS_MONDAY..$CURRENT_SUNDAY" + echo "last_week=$PREVIOUS_MONDAY..$CURRENT_SUNDAY" >> "$GITHUB_ENV" + + - name: Report on issues + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:aws/aws-cdk is:issue created:${{ env.last_week }} -reason:"not planned"' + + - name: Create report for issues + uses: peter-evans/create-issue-from-file@v5 + with: + title: Weekly issue metrics report + token: ${{ secrets.GITHUB_TOKEN }} + content-filepath: ./issue_metrics.md + assignees: paulhcsun + + - name: Report on PRs + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:aws/aws-cdk is:pr created:${{ env.last_week }} -is:draft' + + - name: Create report for PRs + uses: peter-evans/create-issue-from-file@v5 + with: + title: Weekly PR metrics report + token: ${{ secrets.GITHUB_TOKEN }} + content-filepath: ./issue_metrics.md + assignees: paulhcsun