mcp-pr-description 1.0.5 → 1.0.6
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/README.md +0 -21
- package/dist/index.js +8 -42
- package/dist/index.js.map +1 -1
- package/dist/tools/generate-pr.d.ts +3 -3
- package/dist/tools/generate-pr.d.ts.map +1 -1
- package/dist/tools/generate-pr.js +9 -10
- package/dist/tools/generate-pr.js.map +1 -1
- package/dist/tools/learn-style.d.ts +1 -1
- package/dist/tools/learn-style.d.ts.map +1 -1
- package/dist/tools/learn-style.js +3 -3
- package/dist/tools/learn-style.js.map +1 -1
- package/dist/utils/git.d.ts +0 -12
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +2 -28
- package/dist/utils/git.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,27 +51,6 @@ Add to your MCP config file:
|
|
|
51
51
|
|
|
52
52
|
> **Note:** Using `npx` automatically resolves the package location. No need to specify a file path.
|
|
53
53
|
|
|
54
|
-
### 3. Workspace path (Cursor / IDE)
|
|
55
|
-
|
|
56
|
-
The MCP server runs in its own process, so its current directory is usually **not** your project folder. If you see `fatal: not a git repository`, set the workspace path in your MCP config:
|
|
57
|
-
|
|
58
|
-
**Recommended — set in MCP config:** Add your project root to the server `env` so the tools always run in the right repo. No need for the AI to pass anything.
|
|
59
|
-
|
|
60
|
-
```json
|
|
61
|
-
"pr-description": {
|
|
62
|
-
"command": "npx",
|
|
63
|
-
"args": ["mcp-pr-description"],
|
|
64
|
-
"env": {
|
|
65
|
-
"GITHUB_TOKEN": "ghp_your_token_here",
|
|
66
|
-
"MCP_PR_WORKSPACE": "/absolute/path/to/your/repo"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Replace `/absolute/path/to/your/repo` with your actual repo path (e.g. `/Users/you/ai-finance-platform`). Restart Cursor (or reload MCP) after changing the config.
|
|
72
|
-
|
|
73
|
-
**Other options:** You can instead use a [project rule](samples/cursor-rule-pr-description-workspace.mdc) so the AI passes `cwd`, or say the path once in chat—see the [sample rule](samples/cursor-rule-pr-description-workspace.mdc) if you need those.
|
|
74
|
-
|
|
75
54
|
## Usage
|
|
76
55
|
|
|
77
56
|
In **Augment** or **Cursor**, simply ask:
|
package/dist/index.js
CHANGED
|
@@ -4,23 +4,13 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
4
4
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
5
|
import { learnPRStyle } from './tools/learn-style.js';
|
|
6
6
|
import { generatePR, savePRDescription, getLearnedStyle } from './tools/generate-pr.js';
|
|
7
|
-
/** Resolve repo root for git/file ops. MCP runs in its own process, so we use workspace path from args or env. */
|
|
8
|
-
function resolveWorkspaceCwd(cwdFromArgs) {
|
|
9
|
-
if (cwdFromArgs && cwdFromArgs.trim())
|
|
10
|
-
return cwdFromArgs.trim();
|
|
11
|
-
const env = process.env.MCP_PR_WORKSPACE ||
|
|
12
|
-
process.env.CURSOR_WORKSPACE_DIR ||
|
|
13
|
-
process.env.WORKSPACE_FOLDER;
|
|
14
|
-
return env?.trim() || process.cwd();
|
|
15
|
-
}
|
|
16
7
|
const TOOLS = [
|
|
17
8
|
{
|
|
18
9
|
name: 'learn_pr_style',
|
|
19
10
|
description: 'Learn PR writing style from merged pull requests. ' +
|
|
20
11
|
'Analyzes structure, tone, formatting, and common patterns. ' +
|
|
21
12
|
'Run once per repo. Saves to .pr-style.json. ' +
|
|
22
|
-
'Call this BEFORE generate_pr for best results, or skip for new repos (default template will be used).
|
|
23
|
-
'ALWAYS pass cwd with the absolute path to the user\'s workspace/repo root (e.g. the folder they have open in the IDE).',
|
|
13
|
+
'Call this BEFORE generate_pr for best results, or skip for new repos (default template will be used).',
|
|
24
14
|
inputSchema: {
|
|
25
15
|
type: 'object',
|
|
26
16
|
properties: {
|
|
@@ -29,10 +19,6 @@ const TOOLS = [
|
|
|
29
19
|
description: 'Number of PRs to analyze (default: 10)',
|
|
30
20
|
default: 10,
|
|
31
21
|
},
|
|
32
|
-
cwd: {
|
|
33
|
-
type: 'string',
|
|
34
|
-
description: 'Absolute path to the repo root. MUST pass the user\'s workspace root path when you know it (e.g. from open folder or conversation).',
|
|
35
|
-
},
|
|
36
22
|
},
|
|
37
23
|
},
|
|
38
24
|
},
|
|
@@ -41,7 +27,6 @@ const TOOLS = [
|
|
|
41
27
|
description: 'Generate PR title and description from current git changes. ' +
|
|
42
28
|
'Uses learned team style if available, or default template for new repos. ' +
|
|
43
29
|
'Analyzes branch name, commits, and file changes. ' +
|
|
44
|
-
'ALWAYS pass cwd with the absolute path to the user\'s workspace/repo root. ' +
|
|
45
30
|
'IMPORTANT: After generating the PR content, ALWAYS call save_pr_description to save it to PR_DESCRIPTION.md',
|
|
46
31
|
inputSchema: {
|
|
47
32
|
type: 'object',
|
|
@@ -56,18 +41,13 @@ const TOOLS = [
|
|
|
56
41
|
description: 'Include code diff in context (default: false)',
|
|
57
42
|
default: false,
|
|
58
43
|
},
|
|
59
|
-
cwd: {
|
|
60
|
-
type: 'string',
|
|
61
|
-
description: 'Absolute path to the repo root. MUST pass the user\'s workspace root path when you know it.',
|
|
62
|
-
},
|
|
63
44
|
},
|
|
64
45
|
},
|
|
65
46
|
},
|
|
66
47
|
{
|
|
67
48
|
name: 'save_pr_description',
|
|
68
49
|
description: 'Save generated PR title and description to PR_DESCRIPTION.md file. ' +
|
|
69
|
-
'Call this after generate_pr to save the output.
|
|
70
|
-
'ALWAYS pass the same cwd (workspace root) you used for generate_pr.',
|
|
50
|
+
'Call this after generate_pr to save the output.',
|
|
71
51
|
inputSchema: {
|
|
72
52
|
type: 'object',
|
|
73
53
|
properties: {
|
|
@@ -79,26 +59,16 @@ const TOOLS = [
|
|
|
79
59
|
type: 'string',
|
|
80
60
|
description: 'PR description body (markdown)',
|
|
81
61
|
},
|
|
82
|
-
cwd: {
|
|
83
|
-
type: 'string',
|
|
84
|
-
description: 'Absolute path to the repo root. MUST pass the user\'s workspace root when you know it (same as for generate_pr).',
|
|
85
|
-
},
|
|
86
62
|
},
|
|
87
63
|
required: ['title', 'body'],
|
|
88
64
|
},
|
|
89
65
|
},
|
|
90
66
|
{
|
|
91
67
|
name: 'get_pr_style',
|
|
92
|
-
description: 'Show the learned PR style for this repository.
|
|
93
|
-
'ALWAYS pass cwd with the absolute path to the user\'s workspace/repo root when you know it.',
|
|
68
|
+
description: 'Show the learned PR style for this repository.',
|
|
94
69
|
inputSchema: {
|
|
95
70
|
type: 'object',
|
|
96
|
-
properties: {
|
|
97
|
-
cwd: {
|
|
98
|
-
type: 'string',
|
|
99
|
-
description: 'Absolute path to the repo root. MUST pass the user\'s workspace root when you know it.',
|
|
100
|
-
},
|
|
101
|
-
},
|
|
71
|
+
properties: {},
|
|
102
72
|
},
|
|
103
73
|
},
|
|
104
74
|
];
|
|
@@ -110,8 +80,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
110
80
|
switch (name) {
|
|
111
81
|
case 'learn_pr_style': {
|
|
112
82
|
const count = typeof args.count === 'number' ? args.count : 10;
|
|
113
|
-
const
|
|
114
|
-
const result = await learnPRStyle(count, cwd);
|
|
83
|
+
const result = await learnPRStyle(count);
|
|
115
84
|
return {
|
|
116
85
|
content: [{ type: 'text', text: result.displayText }],
|
|
117
86
|
isError: !result.success,
|
|
@@ -120,8 +89,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
120
89
|
case 'generate_pr': {
|
|
121
90
|
const baseBranch = typeof args.baseBranch === 'string' ? args.baseBranch : 'main';
|
|
122
91
|
const includeDiff = typeof args.includeDiff === 'boolean' ? args.includeDiff : false;
|
|
123
|
-
const
|
|
124
|
-
const result = await generatePR(baseBranch, includeDiff, true, cwd);
|
|
92
|
+
const result = await generatePR(baseBranch, includeDiff);
|
|
125
93
|
if (!result.success) {
|
|
126
94
|
return {
|
|
127
95
|
content: [{ type: 'text', text: `❌ ${result.message}` }],
|
|
@@ -145,16 +113,14 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
145
113
|
isError: true,
|
|
146
114
|
};
|
|
147
115
|
}
|
|
148
|
-
const
|
|
149
|
-
const result = await savePRDescription(title, body, cwd);
|
|
116
|
+
const result = await savePRDescription(title, body);
|
|
150
117
|
return {
|
|
151
118
|
content: [{ type: 'text', text: result.success ? `✅ ${result.message}` : `❌ ${result.message}` }],
|
|
152
119
|
isError: !result.success,
|
|
153
120
|
};
|
|
154
121
|
}
|
|
155
122
|
case 'get_pr_style': {
|
|
156
|
-
const
|
|
157
|
-
const result = await getLearnedStyle(cwd);
|
|
123
|
+
const result = await getLearnedStyle();
|
|
158
124
|
return {
|
|
159
125
|
content: [{ type: 'text', text: result.displayText }],
|
|
160
126
|
isError: !result.success,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAExF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,13 @@ export interface GeneratePRResult {
|
|
|
5
5
|
message: string;
|
|
6
6
|
hasLearnedStyle: boolean;
|
|
7
7
|
}
|
|
8
|
-
export declare function generatePR(baseBranch?: string, includeDiff?: boolean,
|
|
9
|
-
export declare function savePRDescription(title: string, body: string
|
|
8
|
+
export declare function generatePR(baseBranch?: string, includeDiff?: boolean, writeFile?: boolean): Promise<GeneratePRResult>;
|
|
9
|
+
export declare function savePRDescription(title: string, body: string): Promise<{
|
|
10
10
|
success: boolean;
|
|
11
11
|
filePath?: string;
|
|
12
12
|
message: string;
|
|
13
13
|
}>;
|
|
14
|
-
export declare function getLearnedStyle(
|
|
14
|
+
export declare function getLearnedStyle(): Promise<{
|
|
15
15
|
success: boolean;
|
|
16
16
|
displayText: string;
|
|
17
17
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-pr.d.ts","sourceRoot":"","sources":["../../src/tools/generate-pr.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,UAAU,CAC9B,UAAU,GAAE,MAAe,EAC3B,WAAW,GAAE,OAAe,EAC5B,
|
|
1
|
+
{"version":3,"file":"generate-pr.d.ts","sourceRoot":"","sources":["../../src/tools/generate-pr.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,UAAU,CAC9B,UAAU,GAAE,MAAe,EAC3B,WAAW,GAAE,OAAe,EAC5B,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAgBD;AAwFD,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAuBD"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { getGitInfo, getChangeSummary, getRepositoryRoot
|
|
1
|
+
import { getGitInfo, getChangeSummary, getRepositoryRoot } from '../utils/git.js';
|
|
2
2
|
import { loadCachedStyle, formatStyleForDisplay } from '../utils/style-cache.js';
|
|
3
3
|
import { writePRDescriptionFile } from '../utils/file-writer.js';
|
|
4
|
-
export async function generatePR(baseBranch = 'main', includeDiff = false,
|
|
4
|
+
export async function generatePR(baseBranch = 'main', includeDiff = false, writeFile = true) {
|
|
5
5
|
try {
|
|
6
|
-
const repoRoot = await getRepositoryRoot(
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const changeSummary = await getChangeSummary(cwd, base);
|
|
6
|
+
const repoRoot = await getRepositoryRoot();
|
|
7
|
+
const gitInfo = await getGitInfo(undefined, baseBranch);
|
|
8
|
+
const changeSummary = await getChangeSummary(undefined, baseBranch);
|
|
10
9
|
const cachedStyle = await loadCachedStyle(repoRoot);
|
|
11
10
|
const prompt = buildPrompt(gitInfo, changeSummary, cachedStyle, includeDiff);
|
|
12
11
|
return {
|
|
@@ -25,9 +24,9 @@ export async function generatePR(baseBranch = 'main', includeDiff = false, _writ
|
|
|
25
24
|
};
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
|
-
export async function savePRDescription(title, body
|
|
27
|
+
export async function savePRDescription(title, body) {
|
|
29
28
|
try {
|
|
30
|
-
const repoRoot = await getRepositoryRoot(
|
|
29
|
+
const repoRoot = await getRepositoryRoot();
|
|
31
30
|
const filePath = await writePRDescriptionFile(repoRoot, title, body);
|
|
32
31
|
return {
|
|
33
32
|
success: true,
|
|
@@ -117,9 +116,9 @@ function buildPrompt(gitInfo, changeSummary, style, includeDiff) {
|
|
|
117
116
|
sections.push('After generating, call `save_pr_description` to save as PR_DESCRIPTION.md');
|
|
118
117
|
return sections.join('\n');
|
|
119
118
|
}
|
|
120
|
-
export async function getLearnedStyle(
|
|
119
|
+
export async function getLearnedStyle() {
|
|
121
120
|
try {
|
|
122
|
-
const repoRoot = await getRepositoryRoot(
|
|
121
|
+
const repoRoot = await getRepositoryRoot();
|
|
123
122
|
const style = await loadCachedStyle(repoRoot);
|
|
124
123
|
if (!style) {
|
|
125
124
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-pr.js","sourceRoot":"","sources":["../../src/tools/generate-pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-pr.js","sourceRoot":"","sources":["../../src/tools/generate-pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,5 @@ export interface LearnStyleResult {
|
|
|
3
3
|
message: string;
|
|
4
4
|
displayText: string;
|
|
5
5
|
}
|
|
6
|
-
export declare function learnPRStyle(count?: number
|
|
6
|
+
export declare function learnPRStyle(count?: number): Promise<LearnStyleResult>;
|
|
7
7
|
//# sourceMappingURL=learn-style.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learn-style.d.ts","sourceRoot":"","sources":["../../src/tools/learn-style.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,YAAY,CAAC,KAAK,GAAE,MAAW,
|
|
1
|
+
{"version":3,"file":"learn-style.d.ts","sourceRoot":"","sources":["../../src/tools/learn-style.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,YAAY,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkEhF"}
|
|
@@ -2,10 +2,10 @@ import { GitHubAdapter } from '../adapters/github.js';
|
|
|
2
2
|
import { extractStyleFromPRs } from '../utils/style-extractor.js';
|
|
3
3
|
import { saveCachedStyle, formatStyleForDisplay } from '../utils/style-cache.js';
|
|
4
4
|
import { getRepositoryRoot, getRemoteUrl } from '../utils/git.js';
|
|
5
|
-
export async function learnPRStyle(count = 10
|
|
5
|
+
export async function learnPRStyle(count = 10) {
|
|
6
6
|
try {
|
|
7
|
-
const repoRoot = await getRepositoryRoot(
|
|
8
|
-
const remoteUrl = await getRemoteUrl(
|
|
7
|
+
const repoRoot = await getRepositoryRoot();
|
|
8
|
+
const remoteUrl = await getRemoteUrl();
|
|
9
9
|
const repoInfo = GitHubAdapter.parseRemoteUrl(remoteUrl);
|
|
10
10
|
if (!repoInfo) {
|
|
11
11
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learn-style.js","sourceRoot":"","sources":["../../src/tools/learn-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQlE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE
|
|
1
|
+
{"version":3,"file":"learn-style.js","sourceRoot":"","sources":["../../src/tools/learn-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQlE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE;IACnD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;QAEvC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,2CAA2C,SAAS,EAAE;gBAC/D,WAAW,EAAE,iDAAiD;aAC/D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,sBAAsB;gBAC/B,WAAW,EAAE,iDAAiD;aAC/D,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAEjC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,gBAAgB,KAAK,IAAI,IAAI,EAAE;gBACxC,WAAW,EAAE,mBAAmB,KAAK,IAAI,IAAI,4BAA4B;aAC1E,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAE5D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,qBAAqB;gBAC9B,WAAW,EAAE,sCAAsC;aACpD,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEvC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,gBAAgB,GAAG,CAAC,MAAM,MAAM;YACzC,WAAW,EAAE;gBACX,2BAA2B,GAAG,CAAC,MAAM,cAAc;gBACnD,EAAE;gBACF,qBAAqB,CAAC,KAAK,CAAC;gBAC5B,EAAE;gBACF,gBAAgB,QAAQ,iBAAiB;aAC1C,CAAC,IAAI,CAAC,IAAI,CAAC;SACb,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,GAAG;YACZ,WAAW,EAAE,YAAY,GAAG,EAAE;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/utils/git.d.ts
CHANGED
|
@@ -1,21 +1,9 @@
|
|
|
1
1
|
import type { GitInfo } from '../types.js';
|
|
2
2
|
export declare function getRepositoryRoot(cwd?: string): Promise<string>;
|
|
3
3
|
export declare function getBranchName(cwd?: string): Promise<string>;
|
|
4
|
-
/**
|
|
5
|
-
* Returns the upstream (tracking) branch of the current branch, if set.
|
|
6
|
-
* This is the branch the current branch was cut from — the correct base for
|
|
7
|
-
* "what this PR introduces" when opening a PR into that branch.
|
|
8
|
-
*/
|
|
9
|
-
export declare function getUpstreamBranch(cwd?: string): Promise<string | null>;
|
|
10
4
|
export declare function getRemoteUrl(cwd?: string): Promise<string>;
|
|
11
5
|
export declare function getDiff(cwd?: string, baseBranch?: string): Promise<string>;
|
|
12
6
|
export declare function getCommitMessages(cwd?: string, baseBranch?: string): Promise<string[]>;
|
|
13
7
|
export declare function getChangeSummary(cwd?: string, baseBranch?: string): Promise<string>;
|
|
14
|
-
/**
|
|
15
|
-
* Resolves the branch to use as diff base. When baseBranch is not provided,
|
|
16
|
-
* uses the current branch's upstream (the branch it was cut from) so the diff
|
|
17
|
-
* reflects only "what this PR introduces". Falls back to 'main' if no upstream.
|
|
18
|
-
*/
|
|
19
|
-
export declare function resolveBaseBranch(cwd?: string, baseBranch?: string): Promise<string>;
|
|
20
8
|
export declare function getGitInfo(cwd?: string, baseBranch?: string): Promise<GitInfo>;
|
|
21
9
|
//# sourceMappingURL=git.d.ts.map
|
package/dist/utils/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAY3C,wBAAsB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjE;AAED
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAY3C,wBAAsB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjE;AAED,wBAAsB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhE;AAED,wBAAsB,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBhF;AAED,wBAAsB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAc5F;AAED,wBAAsB,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYzF;AAED,wBAAsB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASpF"}
|
package/dist/utils/git.js
CHANGED
|
@@ -14,20 +14,6 @@ export async function getRepositoryRoot(cwd) {
|
|
|
14
14
|
export async function getBranchName(cwd) {
|
|
15
15
|
return gitCommand('git branch --show-current', cwd);
|
|
16
16
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Returns the upstream (tracking) branch of the current branch, if set.
|
|
19
|
-
* This is the branch the current branch was cut from — the correct base for
|
|
20
|
-
* "what this PR introduces" when opening a PR into that branch.
|
|
21
|
-
*/
|
|
22
|
-
export async function getUpstreamBranch(cwd) {
|
|
23
|
-
try {
|
|
24
|
-
const upstream = await gitCommand('git rev-parse --abbrev-ref @{u}', cwd);
|
|
25
|
-
return upstream || null;
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
17
|
export async function getRemoteUrl(cwd) {
|
|
32
18
|
try {
|
|
33
19
|
return await gitCommand('git remote get-url origin', cwd);
|
|
@@ -85,24 +71,12 @@ export async function getChangeSummary(cwd, baseBranch) {
|
|
|
85
71
|
}
|
|
86
72
|
}
|
|
87
73
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Resolves the branch to use as diff base. When baseBranch is not provided,
|
|
90
|
-
* uses the current branch's upstream (the branch it was cut from) so the diff
|
|
91
|
-
* reflects only "what this PR introduces". Falls back to 'main' if no upstream.
|
|
92
|
-
*/
|
|
93
|
-
export async function resolveBaseBranch(cwd, baseBranch) {
|
|
94
|
-
if (baseBranch)
|
|
95
|
-
return baseBranch;
|
|
96
|
-
const upstream = await getUpstreamBranch(cwd);
|
|
97
|
-
return upstream ?? 'main';
|
|
98
|
-
}
|
|
99
74
|
export async function getGitInfo(cwd, baseBranch) {
|
|
100
|
-
const resolvedBase = await resolveBaseBranch(cwd, baseBranch);
|
|
101
75
|
const [repositoryRoot, branchName, diff, commitMessages] = await Promise.all([
|
|
102
76
|
getRepositoryRoot(cwd),
|
|
103
77
|
getBranchName(cwd),
|
|
104
|
-
getDiff(cwd,
|
|
105
|
-
getCommitMessages(cwd,
|
|
78
|
+
getDiff(cwd, baseBranch),
|
|
79
|
+
getCommitMessages(cwd, baseBranch),
|
|
106
80
|
]);
|
|
107
81
|
return { repositoryRoot, branchName, diff, commitMessages, stagedFiles: [] };
|
|
108
82
|
}
|
package/dist/utils/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,GAAY;IACrD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE;QAC1C,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;QACzB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;KAC5B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAY;IAClD,OAAO,UAAU,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY;IAC9C,OAAO,UAAU,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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"}
|