-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate-github-issues.js
More file actions
168 lines (141 loc) ยท 5.36 KB
/
create-github-issues.js
File metadata and controls
168 lines (141 loc) ยท 5.36 KB
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#!/usr/bin/env node
/**
* GitHub Issues Creator for PoE Toy Bocs
*
* This script helps create the initial issues for the GitHub project board.
* Run this after setting up the GitHub repository to populate the kanban board.
*
* Prerequisites:
* - GitHub CLI installed (gh auth login)
* - Repository should be pushed to GitHub
*
* Usage:
* node create-github-issues.js
*/
const { execSync } = require('child_process');
const issues = [
// Phase 1: Desktop Foundation
{
title: '[TASK] Fix desktop app file path loading',
body: `## ๐ Task Description
Fix the file path issues in electron-main.js and validate desktop mode functionality.
## ๐ฏ Goals
- [ ] Fix electron app startup and loading
- [ ] Validate Next.js integration with Electron
- [ ] Test desktop window creation and sizing
- [ ] Ensure proper dev/prod environment handling
## ๐ง Technical Details
- File: electron-main.js
- Issue: File path resolution for Next.js app
- Need to handle dev vs production loading correctly
- Window size: 1778x1045
## โ
Definition of Done
- [ ] Desktop app starts without errors
- [ ] Next.js app loads correctly in Electron window
- [ ] Dev tools accessible in development mode
- [ ] Production mode loads from correct source`,
labels: ['task', 'phase-1-foundation', 'priority-critical', 'component-desktop']
},
{
title: '[TASK] Enhance session auto-detection',
body: `## ๐ Task Description
Implement proper browser cookie reading for POESESSID auto-detection.
## ๐ฏ Goals
- [ ] Add sqlite3 dependency for Chrome cookie reading
- [ ] Implement actual cookie parsing logic
- [ ] Support multiple browser types (Chrome, Edge, Firefox)
- [ ] Handle encrypted cookies properly
## ๐ง Technical Details
- Add sqlite3 to dependencies
- Implement browser cookie database reading
- Update detect-poe-session IPC handler
- Handle cookie encryption/decryption
## โ
Definition of Done
- [ ] POESESSID auto-detection works from browser cookies
- [ ] Supports major browsers on Windows
- [ ] Graceful fallback to manual entry
- [ ] No security vulnerabilities in cookie access`,
labels: ['task', 'phase-1-foundation', 'priority-high', 'component-auth']
},
{
title: '[FEATURE] Character data API integration',
body: `## ๐ Feature Description
Integrate PoE character API endpoints to display character information.
## ๐ Use Case
Users want to see their character builds, equipment, skills, and stats within the desktop app.
## ๐ก Proposed Solution
- Implement character API calls using OAuth tokens
- Add character data caching and management
- Create character data models and types
## ๐ Acceptance Criteria
- [ ] Character list API integration
- [ ] Individual character detail API
- [ ] Character equipment and stats
- [ ] Skill gems and passive tree data
- [ ] Proper error handling and caching
## ๐ฎ PoE Context
- [x] Character data (OAuth required)
- [ ] Trade/market data (Session required)
- [ ] Static game data
- [ ] UI/UX improvement
- [ ] Desktop-specific feature`,
labels: ['feature', 'phase-2-characters', 'priority-high', 'component-api']
},
{
title: '[FEATURE] Character selector component',
body: `## ๐ Feature Description
Create a character selector component for switching between multiple characters.
## ๐ Use Case
Users with multiple characters need an easy way to switch context and view different character information.
## ๐ก Proposed Solution
- Dropdown or tabbed interface for character selection
- Display character name, class, level
- Persist selected character preference
- Show character portraits/icons
## ๐ Acceptance Criteria
- [ ] Character dropdown/selector UI
- [ ] Character switching functionality
- [ ] Selected character persistence
- [ ] Character context propagation
- [ ] Loading states and error handling
## ๐ฎ PoE Context
- [x] Character data (OAuth required)
- [ ] Trade/market data (Session required)
- [ ] Static game data
- [x] UI/UX improvement
- [ ] Desktop-specific feature`,
labels: ['feature', 'phase-2-characters', 'priority-high', 'component-ui']
}
];
async function createIssues() {
console.log('๐ Creating GitHub issues for PoE Toy Bocs...\n');
for (const issue of issues) {
try {
const labelArgs = issue.labels.map(label => `--label "${label}"`).join(' ');
const command = `gh issue create --title "${issue.title}" --body "${issue.body}" ${labelArgs}`;
console.log(`๐ Creating: ${issue.title}`);
execSync(command, { stdio: 'inherit' });
console.log('โ
Created successfully\n');
// Small delay to avoid rate limiting
await new Promise(resolve => setTimeout(resolve, 1000));
} catch (error) {
console.error(`โ Error creating issue: ${issue.title}`);
console.error(error.message);
}
}
console.log('๐ All issues created! Check your GitHub repository.');
console.log('๐ก Next steps:');
console.log('1. Create a GitHub Project board');
console.log('2. Add these issues to the project');
console.log('3. Organize issues into columns (Backlog, Ready, In Progress, etc.)');
}
// Check if GitHub CLI is available
try {
execSync('gh --version', { stdio: 'ignore' });
createIssues();
} catch (error) {
console.error('โ GitHub CLI not found. Please install it first:');
console.error('https://cli.github.com/');
console.error('\nThen run: gh auth login');
process.exit(1);
}