Quarterly recipe maintenance tasks #7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Quarterly recipe maintenance tasks | |
| on: | |
| schedule: | |
| - cron: "8 0 1 */3 *" | |
| workflow_dispatch: | |
| jobs: | |
| job: | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| issues: write | |
| steps: | |
| - name: Create periodic recipe maintenance issue | |
| shell: python | |
| run: | | |
| import datetime | |
| import math | |
| import os | |
| import re | |
| import sys | |
| import requests | |
| quarter = math.ceil(datetime.date.today().month/3.) | |
| payload = { | |
| "title": f"Q{quarter} {datetime.datetime.now().strftime('%Y')} Recipes Maintenance", | |
| "body": os.getenv("ISSUE_BODY"), | |
| "labels": re.sub(r"\s", "", os.getenv("LABELS", "")).split(",") or None, | |
| "assignees": re.sub(r"\s", "", os.getenv("ASSIGNEES", "")).split(",") or None, | |
| } | |
| api_url = f"https://api.github.com/repos/{os.getenv('REPO')}/issues" | |
| url = f"https://github.com/{os.getenv('REPO')}/issues" | |
| headers = { | |
| "Accept": "application/vnd.github.v3+json", | |
| "Authorization": f"token {os.getenv('ACCESS_TOKEN')}", | |
| } | |
| resp = requests.get(api_url, headers=headers) | |
| if resp.status_code != 200: | |
| print(f"❌ Couldn't retrieve issues for {url} using {api_url}.") | |
| print(f"HTTP {resp.status_code} {resp.reason} - {resp.text}") | |
| print("Check your `ACCESS_TOKEN` secret.") | |
| sys.exit(1) | |
| resp = requests.post(api_url, headers=headers, json=payload) | |
| if resp.status_code != 201: | |
| print(f"❌ Couldn't create issue for {url}") | |
| print(f"HTTP {resp.status_code} {resp.reason} - {resp.text}") | |
| sys.exit(1) | |
| print(f"✅ Issue successfully created at {url}/{resp.json().get('number')}") | |
| sys.exit(0) | |
| env: | |
| ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| REPO: openzim/zim-requests | |
| LABELS: recovery | |
| ASSIGNEES: benoit74 | |
| ISSUE_BODY: | | |
| In order to maintain Zimfarm recipes up-to-date, some manual actions are needed. | |
| This ticket is an *automatic reminder* requesting the assignees to perform following tasks. | |
| Procedure details are at https://github.com/openzim/zim-requests/wiki/Maintain-Zimfarm-recipes | |
| Checklist: | |
| - [ ] recipesauto ran (and modifications applied) on ted | |
| - [ ] `ted_topic_all` updated manually if neeed | |
| - [ ] recipesauto ran (and modifications applied) on devdocs | |
| - [ ] recipesauto ran (and modifications applied) on freecodecamp | |
| - [ ] recipesauto ran (and modifications applied) on shamela | |
| - [ ] recipesauto ran (and modifications applied) on phet | |