-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcheck-template.mjs
More file actions
executable file
·63 lines (50 loc) · 1.64 KB
/
check-template.mjs
File metadata and controls
executable file
·63 lines (50 loc) · 1.64 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
#!/usr/bin/env node
import { LinearClient } from '@linear/sdk';
const client = new LinearClient({ apiKey: process.env.LINEAR_API_KEY });
const projectId = process.argv[2];
if (!projectId) {
console.error('Usage: node check-template.mjs <project-id>');
process.exit(1);
}
async function checkProject() {
try {
console.log(`\n🔍 Checking project: ${projectId}\n`);
const project = await client.project(projectId);
console.log(`📋 Project: ${project.name}`);
console.log(` State: ${project.state}`);
// Check for last applied template
const lastTemplate = await project.lastAppliedTemplate;
if (lastTemplate) {
console.log(` Template: ${lastTemplate.name} (${lastTemplate.id})`);
} else {
console.log(` Template: None`);
}
// Check for project milestones
console.log(`\n📅 Milestones:`);
const milestones = await project.projectMilestones();
const milestoneList = await milestones.nodes;
if (milestoneList.length === 0) {
console.log(` ❌ No milestones found`);
} else {
for (const milestone of milestoneList) {
console.log(` ✓ ${milestone.name}`);
}
}
// Check for issues
console.log(`\n📝 Issues:`);
const issues = await project.issues();
const issueList = await issues.nodes;
if (issueList.length === 0) {
console.log(` ❌ No issues found`);
} else {
for (const issue of issueList) {
console.log(` ✓ ${issue.identifier}: ${issue.title}`);
}
}
console.log('');
} catch (error) {
console.error('❌ Error:', error.message);
process.exit(1);
}
}
checkProject();