File: scheduled-event-processor.yml

package info (click to toggle)
python-azure 20251014%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 766,472 kB
  • sloc: python: 6,314,744; ansic: 804; javascript: 287; makefile: 198; sh: 198; xml: 109
file content (130 lines) | stat: -rw-r--r-- 5,642 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: GitHub Scheduled Event Processor

on:
  schedule:
    # These are generated/confirmed using https://crontab.cronhub.io/
    # Close stale issues, runs every day at 1am - CloseStaleIssues
    - cron: '0 1 * * *'
    # Identify stale pull requests, every Friday at 5am - IdentifyStalePullRequests
    - cron: '0 5 * * FRI'
    # Close stale pull requests, every 6 hours at 02:30 AM, 08:30 AM, 02:30 PM and 08:30 PM - CloseStalePullRequests
    - cron: '30 2,8,14,20 * * *'
    # Identify stale issues, every 6 hours at 03:30 AM, 09:30 AM, 03:30 PM and 09:30 PM - IdentifyStaleIssues
    - cron: '30 3,9,15,21 * * *'
    # Close addressed issues, every 6 hours at 04:30 AM, 10:30 AM, 04:30 PM and 10:30 PM - CloseAddressedIssues
    - cron: '30 4,10,16,22 * * *'
    # Lock closed issues, every 6 hours at 05:30 AM, 11:30 AM, 05:30 PM and 11:30 PM - LockClosedIssues
    - cron: '30 5,11,17,23 * * *'
    # Enforce max life of issues, every M,W,F at 10:00 AM PST - EnforceMaxLifeOfIssues
    # Note: GitHub uses UTC, to run at 10am PST, the cron task needs to be 6pm (1800 hours) UTC
    #       When scheduling for multiple days the numeric days 0-6 (0=Sunday) must be used.
    - cron: '0 18 * * 1,3,5'
# This removes all unnecessary permissions, the ones needed will be set below.
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token
permissions: {}

jobs:
  event-handler:
    permissions:
      issues: write
      pull-requests: write
    name: Handle ${{ github.event.schedule }} ${{ github.event.action }} event
    runs-on: ubuntu-latest
    steps:
      # To run github-event-processor built from source, for testing purposes, uncomment everything
      # in between the Start/End-Build From Source comments and comment everything in between the
      # Start/End-Install comments
      # Start-Install
      - name: Install GitHub Event Processor
        run: >
          dotnet tool install
          Azure.Sdk.Tools.GitHubEventProcessor
          --version 1.0.0-dev.20250425.1
          --add-source https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-net/nuget/v3/index.json
          --global
        shell: bash
      # End-Install

      # Testing checkout of sources from the Azure/azure-sdk-tools repository
      # The ref: is the SHA from the pull request in that repository or the
      # refs/pull/<PRNumber>/merge for the latest on any given PR. If the repository
      # is a fork eg. <User>/azure-sdk-tools then the repository down below will
      # need to point to that fork
      # Start-Build
      # - name: Checkout tools repo for GitHub Event Processor sources
      #   uses: actions/checkout@v3
      #   with:
      #     repository: Azure/azure-sdk-tools
      #     path: azure-sdk-tools
      #     ref: <refs/pull/<PRNumber>/merge> or <sha>

      # - name: Build and install GitHubEventProcessor from sources
      #   run: |
      #     dotnet pack
      #     dotnet tool install --global --prerelease --add-source ../../../artifacts/packages/Debug Azure.Sdk.Tools.GitHubEventProcessor
      #   shell: bash
      #   working-directory: azure-sdk-tools/tools/github-event-processor/Azure.Sdk.Tools.GitHubEventProcessor
      # End-Build

      - name: Close Stale Issues Scheduled Event
        if: github.event.schedule == '0 1 * * *'
        run: |
          github-event-processor ${{ github.event_name }} ${{ github.event_path }} CloseStaleIssues
        shell: bash
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Identify Stale PullRequests Scheduled Event
        if: github.event.schedule == '0 5 * * FRI'
        run: |
          github-event-processor ${{ github.event_name }} ${{ github.event_path }} IdentifyStalePullRequests
        shell: bash
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Close Stale PullRequests Scheduled Event
        if: github.event.schedule == '30 2,8,14,20 * * *'
        run: |
          github-event-processor ${{ github.event_name }} ${{ github.event_path }} CloseStalePullRequests
        shell: bash
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Identify Stale Issues Scheduled Event
        if: github.event.schedule == '30 3,9,15,21 * * *'
        run: |
          github-event-processor ${{ github.event_name }} ${{ github.event_path }} IdentifyStaleIssues
        shell: bash
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Close Addressed Issues Scheduled Event
        if: github.event.schedule == '30 4,10,16,22 * * *'
        run: |
          github-event-processor ${{ github.event_name }} ${{ github.event_path }} CloseAddressedIssues
        shell: bash
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Lock Closed Issues Scheduled Event
        if: github.event.schedule == '30 5,11,17,23 * * *'
        run: |
          github-event-processor ${{ github.event_name }} ${{ github.event_path }} LockClosedIssues
        shell: bash
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Enforce Max Life of Issues Scheduled Event
        if: github.event.schedule == '0 18 * * 1,3,5'
        run: |
          github-event-processor ${{ github.event_name }} ${{ github.event_path }} EnforceMaxLifeOfIssues
        shell: bash
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Archive github event data
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: event
          path: ${{ github.event_path }}