From 6bef92a2d8ebe7e3d3387bc4c086bdd46cbd9295 Mon Sep 17 00:00:00 2001 From: Guilherme Ferreira Date: Wed, 11 Oct 2023 13:01:34 +0100 Subject: [PATCH 1/3] chore: create metrics.yml --- .github/workflows/metrics.yml | 99 +++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 .github/workflows/metrics.yml diff --git a/.github/workflows/metrics.yml b/.github/workflows/metrics.yml new file mode 100644 index 000000000..fff118dfc --- /dev/null +++ b/.github/workflows/metrics.yml @@ -0,0 +1,99 @@ +name: Monthly Metrics +on: + workflow_dispatch: + schedule: + - cron: '3 2 1 * *' + +permissions: + issues: write + pull-requests: read + +jobs: + run: + name: Calculate Metrics + runs-on: ubuntu-latest + steps: + + - name: Get dates for last month + id: get-dates + shell: bash + run: | + # Calculate the first day of the previous month + first_day=$(date -d "last month" +%Y-%m-01) + + # Calculate the last day of the previous month + last_day=$(date -d "$first_day +1 month -1 day" +%Y-%m-%d) + + # Calculate the previous month + previous_date=$(date -d "$current_date -1 month" +'%Y-%m-%d') + + # Put the report month and year in the environment + echo report_month="$(date -d "$previous_date" +'%B') $(date -d "$previous_date" +'%Y')" >> "$GITHUB_ENV" + + #Set an environment variable with the date range + echo "$first_day..$last_day" + echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV" + + - name: Run issue-metrics tool for items opened last month + id: opened-metrics + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:farfetch/kafkaflow created:${{ env.last_month }} -reason:"not planned"' + + - name: Create issue for opened items + uses: peter-evans/create-issue-from-file@v4 + with: + title: "[Metrics] Opened in ${{ env.report_month }}" + token: ${{ secrets.GITHUB_TOKEN }} + content-filepath: ./issue_metrics.md + assignees: ${{ vars.TEAM_MEMBERS }} + labels: metrics + + - name: Run issue-metrics tool for items closed last month + id: closed-metrics + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:farfetch/kafkaflow closed:${{ env.last_month }} -reason:"not planned"' + + - name: Create issue for closed items + uses: peter-evans/create-issue-from-file@v4 + with: + title: "[Metrics] Closed in ${{ env.report_month }}" + token: ${{ secrets.GITHUB_TOKEN }} + content-filepath: ./issue_metrics.md + assignees: ${{ vars.TEAM_MEMBERS }} + labels: metrics + + - name: Run issue-metrics tool for discussions opened last month + id: opened-discussions-metrics + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:farfetch/kafkaflow type:discussions created:${{ env.last_month }} -reason:"not planned"' + + - name: Create issue for opened discussions + uses: peter-evans/create-issue-from-file@v4 + with: + title: "[Metrics] Opened Discussions in ${{ env.report_month }}" + token: ${{ secrets.GITHUB_TOKEN }} + content-filepath: ./issue_metrics.md + assignees: ${{ vars.TEAM_MEMBERS }} + labels: metrics + + - name: Run issue-metrics tool for discussions closed last month + id: closed-discussions-metrics + uses: github/issue-metrics@v2 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SEARCH_QUERY: 'repo:farfetch/kafkaflow type:discussions closed:${{ env.last_month }} -reason:"not planned"' + + - name: Create issue for closed discussions + uses: peter-evans/create-issue-from-file@v4 + with: + title: "[Metrics] Closed Discussions in ${{ env.report_month }}" + token: ${{ secrets.GITHUB_TOKEN }} + content-filepath: ./issue_metrics.md + assignees: ${{ vars.TEAM_MEMBERS }} + labels: metrics From 80b0a0f6ef8c1c2aa0d8320ea33f3a13798a12e4 Mon Sep 17 00:00:00 2001 From: Guilherme Ferreira Date: Mon, 23 Oct 2023 16:26:12 +0100 Subject: [PATCH 2/3] chore: upload an artifact instead of creating an issue --- .github/workflows/metrics.yml | 44 +++++++++++++---------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/.github/workflows/metrics.yml b/.github/workflows/metrics.yml index fff118dfc..cb810c740 100644 --- a/.github/workflows/metrics.yml +++ b/.github/workflows/metrics.yml @@ -41,14 +41,11 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} SEARCH_QUERY: 'repo:farfetch/kafkaflow created:${{ env.last_month }} -reason:"not planned"' - - name: Create issue for opened items - uses: peter-evans/create-issue-from-file@v4 + - name: Upload for opened items + uses: actions/upload-artifact@v3 with: - title: "[Metrics] Opened in ${{ env.report_month }}" - token: ${{ secrets.GITHUB_TOKEN }} - content-filepath: ./issue_metrics.md - assignees: ${{ vars.TEAM_MEMBERS }} - labels: metrics + name: items-opened + path: ./issue_metrics.md - name: Run issue-metrics tool for items closed last month id: closed-metrics @@ -57,14 +54,11 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} SEARCH_QUERY: 'repo:farfetch/kafkaflow closed:${{ env.last_month }} -reason:"not planned"' - - name: Create issue for closed items - uses: peter-evans/create-issue-from-file@v4 + - name: Upload for closed items + uses: actions/upload-artifact@v3 with: - title: "[Metrics] Closed in ${{ env.report_month }}" - token: ${{ secrets.GITHUB_TOKEN }} - content-filepath: ./issue_metrics.md - assignees: ${{ vars.TEAM_MEMBERS }} - labels: metrics + name: items-closed + path: ./issue_metrics.md - name: Run issue-metrics tool for discussions opened last month id: opened-discussions-metrics @@ -73,14 +67,11 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} SEARCH_QUERY: 'repo:farfetch/kafkaflow type:discussions created:${{ env.last_month }} -reason:"not planned"' - - name: Create issue for opened discussions - uses: peter-evans/create-issue-from-file@v4 + - name: Upload for opened discussions + uses: actions/upload-artifact@v3 with: - title: "[Metrics] Opened Discussions in ${{ env.report_month }}" - token: ${{ secrets.GITHUB_TOKEN }} - content-filepath: ./issue_metrics.md - assignees: ${{ vars.TEAM_MEMBERS }} - labels: metrics + name: discussions-opened + path: ./issue_metrics.md - name: Run issue-metrics tool for discussions closed last month id: closed-discussions-metrics @@ -89,11 +80,8 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} SEARCH_QUERY: 'repo:farfetch/kafkaflow type:discussions closed:${{ env.last_month }} -reason:"not planned"' - - name: Create issue for closed discussions - uses: peter-evans/create-issue-from-file@v4 + - name: Upload for closed discussions + uses: actions/upload-artifact@v3 with: - title: "[Metrics] Closed Discussions in ${{ env.report_month }}" - token: ${{ secrets.GITHUB_TOKEN }} - content-filepath: ./issue_metrics.md - assignees: ${{ vars.TEAM_MEMBERS }} - labels: metrics + name: discussions-closed + path: ./issue_metrics.md \ No newline at end of file From 4950fcd6d98024ac0dcf3ae9e1b6849384ad538d Mon Sep 17 00:00:00 2001 From: Guilherme Ferreira Date: Wed, 25 Oct 2023 10:27:58 +0100 Subject: [PATCH 3/3] chore: accept manually input dates --- .github/workflows/metrics.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/metrics.yml b/.github/workflows/metrics.yml index cb810c740..a0aae7175 100644 --- a/.github/workflows/metrics.yml +++ b/.github/workflows/metrics.yml @@ -1,6 +1,9 @@ name: Monthly Metrics on: workflow_dispatch: + inputs: + dates: + required: false schedule: - cron: '3 2 1 * *' @@ -20,19 +23,18 @@ jobs: run: | # Calculate the first day of the previous month first_day=$(date -d "last month" +%Y-%m-01) - # Calculate the last day of the previous month last_day=$(date -d "$first_day +1 month -1 day" +%Y-%m-%d) - - # Calculate the previous month - previous_date=$(date -d "$current_date -1 month" +'%Y-%m-%d') - - # Put the report month and year in the environment - echo report_month="$(date -d "$previous_date" +'%B') $(date -d "$previous_date" +'%Y')" >> "$GITHUB_ENV" - #Set an environment variable with the date range echo "$first_day..$last_day" echo "last_month=$first_day..$last_day" >> "$GITHUB_ENV" + + - name: Use input dates + if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.dates != '' }} + shell: bash + run: | + echo "${{github.event.inputs.dates}}" + echo "last_month=${{github.event.inputs.dates}}" >> "$GITHUB_ENV" - name: Run issue-metrics tool for items opened last month id: opened-metrics