mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 12:22:14 +03:00
97 lines
2.3 KiB
Python
97 lines
2.3 KiB
Python
import json
|
|
import os
|
|
import subprocess
|
|
import re
|
|
|
|
issues = [1845, 1833, 1826, 1814, 1788, 1786, 1765, 1764, 1737, 1736, 1735, 1731, 1718, 1716, 1679, 1594, 1591, 1590, 1589, 1588, 1587, 1586, 1584, 1529]
|
|
|
|
os.makedirs('_ideia', exist_ok=True)
|
|
|
|
def slugify(value):
|
|
value = re.sub(r'\[Feature\]', '', value, flags=re.IGNORECASE)
|
|
value = re.sub(r'[^\w\s-]', '', value).strip().lower()
|
|
return re.sub(r'[-\s]+', '-', value)
|
|
|
|
for num in issues:
|
|
print(f"Processing #{num}...")
|
|
try:
|
|
res = subprocess.run(
|
|
['gh', 'issue', 'view', str(num), '--repo', 'diegosouzapw/OmniRoute', '--json', 'number,title,labels,body,comments,createdAt,author,assignees'],
|
|
capture_output=True, text=True, check=True
|
|
)
|
|
data = json.loads(res.stdout)
|
|
|
|
slug = slugify(data['title'])
|
|
filename = f"_ideia/{data['number']}-{slug}.md"
|
|
|
|
author = data['author']['login']
|
|
created_at = data['createdAt']
|
|
body = data['body']
|
|
comments = data['comments']
|
|
|
|
participants = set([author])
|
|
comments_str = ""
|
|
if comments:
|
|
for c in comments:
|
|
c_author = c['author']['login']
|
|
participants.add(c_author)
|
|
comments_str += f"**@{c_author}** ({c['createdAt']}):\n{c['body']}\n---\n"
|
|
else:
|
|
comments_str = "*No comments.*"
|
|
|
|
participants_list = "\n".join([f"- @{p}" for p in participants])
|
|
|
|
content = f"""# Feature: {data['title']}
|
|
|
|
> GitHub Issue: #{data['number']} — opened by @{author} on {created_at}
|
|
> Status: 📋 Cataloged | Priority: TBD
|
|
|
|
## 📝 Original Request
|
|
|
|
{body}
|
|
|
|
## 💬 Community Discussion
|
|
|
|
{comments_str}
|
|
|
|
### Participants
|
|
|
|
{participants_list}
|
|
|
|
### Key Points
|
|
|
|
- Needs detailed analysis
|
|
|
|
## 🎯 Refined Feature Description
|
|
|
|
Feature needs manual refinement and interpretation to fill logical gaps and outline high-level technical scope.
|
|
|
|
### What it solves
|
|
|
|
- TBD
|
|
|
|
### How it should work (high level)
|
|
|
|
1. TBD
|
|
2. TBD
|
|
|
|
### Affected areas
|
|
|
|
- TBD
|
|
|
|
## 📎 Attachments & References
|
|
|
|
- Check issue body for references
|
|
|
|
## 🔗 Related Ideas
|
|
|
|
- None yet
|
|
"""
|
|
with open(filename, 'w', encoding='utf-8') as f:
|
|
f.write(content)
|
|
|
|
except Exception as e:
|
|
print(f"Error processing {num}: {e}")
|
|
|
|
print("Done.")
|