@@ -10,66 +10,66 @@ jobs:
1010 issues : write
1111
1212 steps :
13- - name : Checkout repository
14- uses : actions/checkout@v3
15-
16- - name : Setup Node.js
17- uses : actions/setup-node@v3
13+ - name : Set up Python
14+ uses : actions/setup-python@v4
1815 with :
19- node-version : ' 16'
16+ python-version : ' 3.10'
17+
18+ - name : Install dependencies
19+ run : pip install PyGithub
2020
21- - name : Create script file
21+ - name : Create standardization script
2222 run : |
23- cat > standardize-titles.mjs << 'EOF'
24- import { Octokit } from '@octokit/rest';
25-
26- const octokit = new Octokit({
27- auth: process.env.GITHUB_TOKEN
28- });
29-
30- const issueUpdates = [
31- { number: 138, title: "Open Source Friday - Nuxt and AI - [05-23-2025]" },
32- { number: 137, title: "Open Source Friday - SupermemoryAI - [05-16-2025]" },
33- { number: 136, title: "Open Source Friday - Effection - [TBD]" },
34- { number: 135, title: "Open Source Friday - Cluecumber - [TBD]" },
35- { number: 133, title: "Open Source Friday with OSPO - Td Bank - [04-04-2025]" },
36- { number: 129, title: "Open Source Friday - supervision - [03-28-2025]" },
37- { number: 127, title: "Open Source Friday - Convex - [05-09-2025]" },
38- { number: 125, title: "Open Source Friday - Dagger AI Agents - [TBD]" },
39- { number: 117, title: "Open Source Friday - Oqtane - [04-11-2025]" },
40- { number: 116, title: "Open Source Friday - Daytona - [04-18-2025]" },
41- { number: 115, title: "Open Source Friday - Ushahidi - [TBD]" },
42- { number: 111, title: "Open Source Friday - Connecting Workers and Public AI - [TBD]" }
43- ];
44-
45- async function updateIssues() {
46- for (const issue of issueUpdates) {
47- try {
48- console.log(`Updating issue #${issue.number} with title: ${issue.title}`);
49- await octokit.issues.update({
50- owner: process.env.REPO_OWNER,
51- repo: process.env.REPO_NAME,
52- issue_number: issue.number,
53- title: issue.title
54- });
55- console.log(`Successfully updated issue #${issue.number}`);
56- // Add a short delay to avoid rate limiting
57- await new Promise(resolve => setTimeout(resolve, 1000));
58- } catch (error) {
59- console.error(`Error updating issue #${issue.number}:`, error.message);
60- }
61- }
62- }
63-
64- updateIssues();
65- EOF
23+ cat > standardize_titles.py << 'EOF'
24+ import os
25+ import time
26+ from github import Github
6627
67- - name : Install dependencies
68- run : npm install @octokit/rest
28+ # Authentication
29+ token = os.environ.get("GITHUB_TOKEN")
30+ g = Github(token)
31+
32+ # Repository details
33+ repo_owner = os.environ.get("REPO_OWNER")
34+ repo_name = os.environ.get("REPO_NAME")
35+ repo = g.get_repo(f"{repo_owner}/{repo_name}")
36+
37+ # Issue updates mapping
38+ issue_updates = [
39+ {"number": 138, "title": "Open Source Friday - Nuxt and AI - [05-23-2025]"},
40+ {"number": 137, "title": "Open Source Friday - SupermemoryAI - [05-16-2025]"},
41+ {"number": 136, "title": "Open Source Friday - Effection - [TBD]"},
42+ {"number": 135, "title": "Open Source Friday - Cluecumber - [TBD]"},
43+ {"number": 133, "title": "Open Source Friday with OSPO - Td Bank - [04-04-2025]"},
44+ {"number": 129, "title": "Open Source Friday - supervision - [03-28-2025]"},
45+ {"number": 127, "title": "Open Source Friday - Convex - [05-09-2025]"},
46+ {"number": 125, "title": "Open Source Friday - Dagger AI Agents - [TBD]"},
47+ {"number": 117, "title": "Open Source Friday - Oqtane - [04-11-2025]"},
48+ {"number": 116, "title": "Open Source Friday - Daytona - [04-18-2025]"},
49+ {"number": 115, "title": "Open Source Friday - Ushahidi - [TBD]"},
50+ {"number": 111, "title": "Open Source Friday - Connecting Workers and Public AI - [TBD]"}
51+ ]
52+
53+ # Update each issue
54+ for update in issue_updates:
55+ try:
56+ issue_number = update["number"]
57+ new_title = update["title"]
58+
59+ print(f"Updating issue #{issue_number} with title: {new_title}")
60+ issue = repo.get_issue(issue_number)
61+ issue.edit(title=new_title)
62+ print(f"Successfully updated issue #{issue_number}")
63+
64+ # Add a short delay to avoid rate limiting
65+ time.sleep(1)
66+ except Exception as e:
67+ print(f"Error updating issue #{issue_number}: {str(e)}")
68+ EOF
6969
70- - name : Standardize Issue Titles
70+ - name : Run standardization script
7171 env :
7272 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
7373 REPO_OWNER : githubevents
7474 REPO_NAME : open-source-friday
75- run : node standardize-titles.mjs
75+ run : python standardize_titles.py
0 commit comments