diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 2e4c4d3cbf..4858b354a2 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,29 +1,28 @@
 name: Restart stopped workflows
 
 on:
+  push:
+    branches:
+      - main
+
   schedule:
     - cron:  '0 */6 * * *'
+
 jobs:
   run:
     name: Restart stopped workflows
     runs-on: ubuntu-latest
     steps:
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v4
         with:
           fetch-depth: 0
           persist-credentials: false
-      - name: Set up Python 3.7
-        uses: actions/setup-python@v1
-        with:
-          python-version: 3.7
-      - uses: actions/cache@v2
-        name: Cache dependencies
+      - name: Set up Python 3.12
+        uses: actions/setup-python@v4
         with:
-          path: ~/.cache/pip
-          key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
-          restore-keys: |
-            ${{ runner.os }}-pip-
+          python-version: 3.12
+          cache: pip
       - name: Install dependencies
         run: |
           python -m pip install --upgrade pip
@@ -39,7 +38,7 @@ jobs:
           git config --global user.name "Code for IATI bot"
           git commit --amend --no-edit
       - name: Push changes
-        uses: ad-m/github-push-action@21d44fe9270fd489e49fb30c9590d40adb3abc40
+        uses: ad-m/github-push-action@v0.8.0
         with:
           github_token: ${{ secrets.GH_TOKEN }}
           branch: main