@eldrforge/kodrdriv 1.2.20 → 1.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/GITHUB-TOOLS-INTEGRATION.md +323 -0
- package/INTEGRATION-SUMMARY.md +1 -1
- package/TEST-STATUS.md +1 -1
- package/dist/application.js +6 -2
- package/dist/application.js.map +1 -1
- package/dist/commands/commit.js +1 -1
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/publish.js +14 -14
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/release.js +2 -2
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.js +3 -4
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/tree.js +32 -3
- package/dist/commands/tree.js.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/error/CommandErrors.js +1 -65
- package/dist/error/CommandErrors.js.map +1 -1
- package/package.json +4 -3
- package/test_output.txt +3 -3
- package/dist/content/issues.js +0 -331
- package/dist/content/issues.js.map +0 -1
- package/dist/content/releaseNotes.js +0 -90
- package/dist/content/releaseNotes.js.map +0 -1
- package/dist/util/github.js +0 -1071
- package/dist/util/github.js.map +0 -1
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { getLogger } from '../logging.js';
|
|
2
|
-
import { getOctokit, getRepoDetails } from '../util/github.js';
|
|
3
|
-
|
|
4
|
-
// Function to truncate overly large content while preserving structure
|
|
5
|
-
const truncateContent = (content, maxLength = 3000)=>{
|
|
6
|
-
if (content.length <= maxLength) {
|
|
7
|
-
return content;
|
|
8
|
-
}
|
|
9
|
-
const lines = content.split('\n');
|
|
10
|
-
const truncatedLines = [];
|
|
11
|
-
let currentLength = 0;
|
|
12
|
-
for (const line of lines){
|
|
13
|
-
if (currentLength + line.length + 1 > maxLength) {
|
|
14
|
-
break;
|
|
15
|
-
}
|
|
16
|
-
truncatedLines.push(line);
|
|
17
|
-
currentLength += line.length + 1; // +1 for newline
|
|
18
|
-
}
|
|
19
|
-
truncatedLines.push('');
|
|
20
|
-
truncatedLines.push(`... [TRUNCATED: Original content was ${content.length} characters, showing first ${currentLength}] ...`);
|
|
21
|
-
return truncatedLines.join('\n');
|
|
22
|
-
};
|
|
23
|
-
// Function to fetch recent releases from GitHub API
|
|
24
|
-
const findRecentReleaseNotes = async (limit)=>{
|
|
25
|
-
const logger = getLogger();
|
|
26
|
-
const releaseNotes = [];
|
|
27
|
-
if (limit <= 0) {
|
|
28
|
-
return releaseNotes;
|
|
29
|
-
}
|
|
30
|
-
try {
|
|
31
|
-
const octokit = getOctokit();
|
|
32
|
-
const { owner, repo } = await getRepoDetails();
|
|
33
|
-
logger.debug(`Fetching up to ${limit} recent releases from GitHub...`);
|
|
34
|
-
const response = await octokit.repos.listReleases({
|
|
35
|
-
owner,
|
|
36
|
-
repo,
|
|
37
|
-
per_page: Math.min(limit, 100)
|
|
38
|
-
});
|
|
39
|
-
const releases = response.data;
|
|
40
|
-
if (releases.length === 0) {
|
|
41
|
-
logger.debug('No releases found in GitHub repository');
|
|
42
|
-
return releaseNotes;
|
|
43
|
-
}
|
|
44
|
-
for (const release of releases.slice(0, limit)){
|
|
45
|
-
const releaseContent = [
|
|
46
|
-
`# ${release.name || release.tag_name}`,
|
|
47
|
-
`**Tag:** ${release.tag_name}`,
|
|
48
|
-
`**Published:** ${release.published_at}`,
|
|
49
|
-
release.prerelease ? '**Type:** Pre-release' : '**Type:** Release',
|
|
50
|
-
release.draft ? '**Status:** Draft' : '**Status:** Published',
|
|
51
|
-
'',
|
|
52
|
-
release.body || 'No release notes provided'
|
|
53
|
-
].join('\n');
|
|
54
|
-
const truncatedContent = truncateContent(releaseContent);
|
|
55
|
-
releaseNotes.push(`=== GitHub Release: ${release.tag_name} ===\n${truncatedContent}`);
|
|
56
|
-
if (truncatedContent.length < releaseContent.length) {
|
|
57
|
-
logger.debug(`Found release ${release.tag_name} (%d characters, truncated from %d)`, truncatedContent.length, releaseContent.length);
|
|
58
|
-
} else {
|
|
59
|
-
logger.debug(`Found release ${release.tag_name} (%d characters)`, releaseContent.length);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
logger.debug(`Fetched ${releaseNotes.length} releases from GitHub`);
|
|
63
|
-
} catch (error) {
|
|
64
|
-
logger.warn('Error fetching releases from GitHub API: %s', error.message);
|
|
65
|
-
// If we have a GitHub API error, we could fall back to checking for local release notes
|
|
66
|
-
// This maintains some backward compatibility
|
|
67
|
-
logger.debug('Falling back to local RELEASE_NOTES.md file...');
|
|
68
|
-
try {
|
|
69
|
-
const fs = await import('fs/promises');
|
|
70
|
-
const content = await fs.readFile('RELEASE_NOTES.md', 'utf-8');
|
|
71
|
-
if (content.trim()) {
|
|
72
|
-
const truncatedContent = truncateContent(content);
|
|
73
|
-
releaseNotes.push(`=== Local RELEASE_NOTES.md ===\n${truncatedContent}`);
|
|
74
|
-
logger.debug(`Found local release notes (%d characters)`, content.length);
|
|
75
|
-
}
|
|
76
|
-
} catch {
|
|
77
|
-
// No local file either, return empty array
|
|
78
|
-
logger.debug('No local RELEASE_NOTES.md file found either');
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return releaseNotes.slice(0, limit);
|
|
82
|
-
};
|
|
83
|
-
const get = async (options = {})=>{
|
|
84
|
-
const { limit = 3 } = options;
|
|
85
|
-
const releaseNotes = await findRecentReleaseNotes(limit);
|
|
86
|
-
return releaseNotes.join('\n\n');
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
export { findRecentReleaseNotes, get };
|
|
90
|
-
//# sourceMappingURL=releaseNotes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"releaseNotes.js","sources":["../../src/content/releaseNotes.ts"],"sourcesContent":["import { getLogger } from '../logging';\nimport { getOctokit, getRepoDetails } from '../util/github';\n\n// Function to truncate overly large content while preserving structure\nconst truncateContent = (content: string, maxLength: number = 3000): string => {\n if (content.length <= maxLength) {\n return content;\n }\n\n const lines = content.split('\\n');\n const truncatedLines: string[] = [];\n let currentLength = 0;\n\n for (const line of lines) {\n if (currentLength + line.length + 1 > maxLength) {\n break;\n }\n truncatedLines.push(line);\n currentLength += line.length + 1; // +1 for newline\n }\n\n truncatedLines.push('');\n truncatedLines.push(`... [TRUNCATED: Original content was ${content.length} characters, showing first ${currentLength}] ...`);\n\n return truncatedLines.join('\\n');\n};\n\n// Function to fetch recent releases from GitHub API\nexport const findRecentReleaseNotes = async (limit: number): Promise<string[]> => {\n const logger = getLogger();\n const releaseNotes: string[] = [];\n\n if (limit <= 0) {\n return releaseNotes;\n }\n\n try {\n const octokit = getOctokit();\n const { owner, repo } = await getRepoDetails();\n\n logger.debug(`Fetching up to ${limit} recent releases from GitHub...`);\n\n const response = await octokit.repos.listReleases({\n owner,\n repo,\n per_page: Math.min(limit, 100), // GitHub API limit\n });\n\n const releases = response.data;\n\n if (releases.length === 0) {\n logger.debug('No releases found in GitHub repository');\n return releaseNotes;\n }\n\n for (const release of releases.slice(0, limit)) {\n const releaseContent = [\n `# ${release.name || release.tag_name}`,\n `**Tag:** ${release.tag_name}`,\n `**Published:** ${release.published_at}`,\n release.prerelease ? '**Type:** Pre-release' : '**Type:** Release',\n release.draft ? '**Status:** Draft' : '**Status:** Published',\n '',\n release.body || 'No release notes provided'\n ].join('\\n');\n\n const truncatedContent = truncateContent(releaseContent);\n releaseNotes.push(`=== GitHub Release: ${release.tag_name} ===\\n${truncatedContent}`);\n\n if (truncatedContent.length < releaseContent.length) {\n logger.debug(`Found release ${release.tag_name} (%d characters, truncated from %d)`,\n truncatedContent.length, releaseContent.length);\n } else {\n logger.debug(`Found release ${release.tag_name} (%d characters)`, releaseContent.length);\n }\n }\n\n logger.debug(`Fetched ${releaseNotes.length} releases from GitHub`);\n\n } catch (error: any) {\n logger.warn('Error fetching releases from GitHub API: %s', error.message);\n\n // If we have a GitHub API error, we could fall back to checking for local release notes\n // This maintains some backward compatibility\n logger.debug('Falling back to local RELEASE_NOTES.md file...');\n try {\n const fs = await import('fs/promises');\n const content = await fs.readFile('RELEASE_NOTES.md', 'utf-8');\n if (content.trim()) {\n const truncatedContent = truncateContent(content);\n releaseNotes.push(`=== Local RELEASE_NOTES.md ===\\n${truncatedContent}`);\n logger.debug(`Found local release notes (%d characters)`, content.length);\n }\n } catch {\n // No local file either, return empty array\n logger.debug('No local RELEASE_NOTES.md file found either');\n }\n }\n\n return releaseNotes.slice(0, limit);\n};\n\nexport const get = async (options: { limit?: number } = {}): Promise<string> => {\n const { limit = 3 } = options;\n const releaseNotes = await findRecentReleaseNotes(limit);\n return releaseNotes.join('\\n\\n');\n}; "],"names":["truncateContent","content","maxLength","length","lines","split","truncatedLines","currentLength","line","push","join","findRecentReleaseNotes","limit","logger","getLogger","releaseNotes","octokit","getOctokit","owner","repo","getRepoDetails","debug","response","repos","listReleases","per_page","Math","min","releases","data","release","slice","releaseContent","name","tag_name","published_at","prerelease","draft","body","truncatedContent","error","warn","message","fs","readFile","trim","get","options"],"mappings":"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"}
|