@litebox-packages/release-notes-bot 1.2.0 → 1.3.1

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 CHANGED
@@ -1,6 +1,28 @@
1
1
  # Release Notes Bot
2
2
 
3
- Automated release notes generator using GitLab API.
3
+ Automated release notes generator supporting GitLab and GitHub APIs.
4
+
5
+ ## How It Works
6
+
7
+ The script analyzes changes between two Git commits and generates human-readable release notes using AI. Here's what happens when you run it:
8
+
9
+ 1. **Fetches Git Changes**: Connects to the GitLab or GitHub API (based on `--platform`) to retrieve commits, file changes, and diffs between the specified commit hashes (`--before` and `--after`).
10
+
11
+ 2. **Detects Context**: Identifies whether the changes represent a merge request or a single commit, extracting relevant branch and commit information.
12
+
13
+ 3. **Filters & Sanitizes**: Removes asset files (images, fonts, etc.) and unnecessary metadata from the diff data to optimize token usage.
14
+
15
+ 4. **Estimates Costs**: Calculates estimated token usage and API costs before making the LLM call, so you know what to expect.
16
+
17
+ 5. **Generates Release Notes**: Sends the processed commit data to OpenAI's GPT-4o-mini model, which analyzes the changes and generates formatted release notes with:
18
+ - Summary of changes
19
+ - Categorized features, fixes, and improvements
20
+ - Emojis for visual clarity
21
+ - Markdown formatting
22
+
23
+ 6. **Displays Results**: Shows the generated release notes in the console, along with actual token usage and costs.
24
+
25
+ 7. **Sends to Slack** (optional): If Slack credentials are provided, automatically posts the release notes to the specified channel or user, formatted with Slack Block Kit for better readability.
4
26
 
5
27
  ## Setup
6
28
 
@@ -18,14 +40,19 @@ pnpm build
18
40
 
19
41
  ### Using npx (Recommended - No installation needed)
20
42
 
21
- **Option 1: Using -p flag (most reliable)**
43
+ **GitLab Example:**
44
+ ```bash
45
+ npx -p @litebox-packages/release-notes-bot release-notes-bot --platform gitlab --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> --slackToken <slack-token> --slackChannelId <slack-channel-id>
46
+ ```
47
+
48
+ **GitHub Example:**
22
49
  ```bash
23
- npx -p @litebox-packages/release-notes-bot release-notes-bot --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> [--slackToken <slack-token> --slackChannelId <slack-channel-id>]
50
+ npx -p @litebox-packages/release-notes-bot release-notes-bot --platform github --before <commit-hash-1> --after <commit-hash-2> --owner <owner> --repo <repo> --token <github-token> --openaiToken <openai-token> --slackToken <slack-token> --slackChannelId <slack-channel-id>
24
51
  ```
25
52
 
26
53
  **Option 2: Direct npx (may require clearing cache)**
27
54
  ```bash
28
- npx @litebox-packages/release-notes-bot --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> [--slackToken <slack-token> --slackChannelId <slack-channel-id>]
55
+ npx @litebox-packages/release-notes-bot --platform gitlab --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> --slackToken <slack-token> --slackChannelId <slack-channel-id>
29
56
  ```
30
57
 
31
58
  If Option 2 doesn't work, try clearing npx cache:
@@ -35,53 +62,175 @@ rm -rf ~/.npm/_npx
35
62
 
36
63
  ### Development Mode (using ts-node)
37
64
 
65
+ **GitLab:**
66
+ ```bash
67
+ pnpm dev --platform gitlab --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> --slackToken <slack-token> --slackChannelId <slack-channel-id>
68
+ ```
69
+
70
+ **GitHub:**
38
71
  ```bash
39
- pnpm dev --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> [--slackToken <slack-token> --slackChannelId <slack-channel-id>]
72
+ pnpm dev --platform github --before <commit-hash-1> --after <commit-hash-2> --owner <owner> --repo <repo> --token <github-token> --openaiToken <openai-token> --slackToken <slack-token> --slackChannelId <slack-channel-id>
40
73
  ```
41
74
 
42
75
  ### Production Mode (after building)
43
76
 
77
+ **GitLab:**
44
78
  ```bash
45
- pnpm start --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> [--slackToken <slack-token> --slackChannelId <slack-channel-id>]
79
+ pnpm start --platform gitlab --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> --slackToken <slack-token> --slackChannelId <slack-channel-id>
80
+ ```
81
+
82
+ **GitHub:**
83
+ ```bash
84
+ pnpm start --platform github --before <commit-hash-1> --after <commit-hash-2> --owner <owner> --repo <repo> --token <github-token> --openaiToken <openai-token> --slackToken <slack-token> --slackChannelId <slack-channel-id>
46
85
  ```
47
86
 
48
87
  Or directly with node:
49
88
 
50
89
  ```bash
51
- node dist/cli.js --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> [--slackToken <slack-token> --slackChannelId <slack-channel-id>]
90
+ node dist/cli.js --platform gitlab --before <commit-hash-1> --after <commit-hash-2> --projectId <gitlab-project-id> --token <gitlab-token> --openaiToken <openai-token> --slackToken <slack-token> --slackChannelId <slack-channel-id>
52
91
  ```
53
92
 
93
+ ## Getting Required Tokens
94
+
95
+ ### GitLab Personal Access Token
96
+
97
+ To get your GitLab personal access token:
98
+
99
+ 1. Go to your GitLab instance (e.g., `https://gitlab.com` or your self-hosted instance)
100
+ 2. Click on your profile picture/avatar in the top right corner
101
+ 3. Select **Settings** (or **Preferences**)
102
+ 4. In the left sidebar, click **Access Tokens**
103
+ 5. Give your token a name (e.g., "Release Notes Bot")
104
+ 6. Set an expiration date (optional)
105
+ 7. Select the **`api`** scope (required)
106
+ 8. Click **Create personal access token**
107
+ 9. **Copy the token immediately** - you won't be able to see it again!
108
+
109
+ The token will start with `glpat-` for GitLab.com or your instance's prefix.
110
+
111
+ ### GitHub Personal Access Token
112
+
113
+ To get your GitHub personal access token:
114
+
115
+ 1. Go to [https://github.com/settings/tokens](https://github.com/settings/tokens)
116
+ 2. Click **Generate new token** → **Generate new token (classic)**
117
+ 3. Give your token a name (e.g., "Release Notes Bot")
118
+ 4. Set an expiration date (optional)
119
+ 5. Select the **`repo`** scope (required for private repositories)
120
+ - For public repositories, you can use a token without any scopes, but `repo` scope is recommended
121
+ 6. Click **Generate token**
122
+ 7. **Copy the token immediately** - you won't be able to see it again!
123
+
124
+ The token will be a long alphanumeric string (no specific prefix).
125
+
126
+ ### OpenAI API Key
127
+
128
+ 1. Go to [https://platform.openai.com/api-keys](https://platform.openai.com/api-keys)
129
+ 2. Sign in or create an account
130
+ 3. Click **Create new secret key**
131
+ 4. Give it a name (e.g., "Release Notes Bot")
132
+ 5. **Copy the key immediately** - you won't be able to see it again!
133
+
134
+ The key will start with `sk-`.
135
+
136
+ ### Slack Bot Token (Optional)
137
+
138
+ 1. Go to [https://api.slack.com/apps](https://api.slack.com/apps)
139
+ 2. Create a new app or select an existing one
140
+ 3. Go to **OAuth & Permissions** in the left sidebar
141
+ 4. Under **Bot Token Scopes**, add `chat:write` permission
142
+ 5. Install the app to your workspace
143
+ 6. Copy the **Bot User OAuth Token** (starts with `xoxb-`)
144
+
145
+ To get the Channel ID:
146
+ - Right-click on the channel in Slack → **View channel details** → Copy the Channel ID (starts with `C`)
147
+ - For DMs, use the user's ID (starts with `U`)
148
+
54
149
  ## Arguments
55
150
 
151
+ ### Common Arguments (Required)
152
+ - `--platform`: Platform to use - either `gitlab` or `github` (default: `gitlab`)
56
153
  - `--before`: The commit hash to compare from (older commit)
57
154
  - `--after`: The commit hash to compare to (newer commit)
58
- - `--projectId`: Your GitLab project ID (can be found in project settings)
59
- - `--token`: Your GitLab personal access token with `api` scope
155
+ - `--token`: Your Git provider personal access token (GitLab or GitHub)
60
156
  - `--openaiToken`: Your OpenAI API key (starts with `sk-`)
61
- - `--slackToken`: (Optional) Your Slack bot token (starts with `xoxb-`). If provided, `--slackChannelId` is also required.
62
- - `--slackChannelId`: (Optional) Slack channel ID or user DM ID where release notes will be sent. Required if `--slackToken` is provided. Slack failures are non-fatal and will only log a warning.
63
157
 
64
- ## Example
158
+ ### GitLab-Specific Arguments (Required when `--platform gitlab`)
159
+ - `--projectId`: Your GitLab project ID (can be found in project settings)
160
+
161
+ ### GitHub-Specific Arguments (Required when `--platform github`)
162
+ - `--owner`: Repository owner (username or organization name)
163
+ - `--repo`: Repository name
164
+
165
+ ### Optional Arguments
166
+ - `--slackToken`: Your Slack bot token (starts with `xoxb-`). If provided, `--slackChannelId` is also required.
167
+ - `--slackChannelId`: Slack channel ID or user DM ID where release notes will be sent. Required if `--slackToken` is provided. Slack failures are non-fatal and will only log a warning.
168
+
169
+ ## Examples
170
+
171
+ ### GitLab Example
65
172
 
66
- ### Using npx (Recommended)
173
+ ```bash
174
+ npx -p @litebox-packages/release-notes-bot release-notes-bot --platform gitlab --before abc123 --after def456 --projectId 12345 --token glpat-xxxxxxxxxxxxx --openaiToken sk-xxxxxxxxxxxxx --slackToken xoxb-xxxxxxxxxxxxx --slackChannelId C09TVLQ33HN
175
+ ```
176
+
177
+ ### GitHub Example
178
+
179
+ ```bash
180
+ npx -p @litebox-packages/release-notes-bot release-notes-bot --platform github --before abc123 --after def456 --owner octocat --repo Hello-World --token ghp_xxxxxxxxxxxxx --openaiToken sk-xxxxxxxxxxxxx --slackToken xoxb-xxxxxxxxxxxxx --slackChannelId C09TVLQ33HN
181
+ ```
182
+
183
+ ### Local Development (GitLab)
67
184
 
68
185
  ```bash
69
- npx -p @litebox-packages/release-notes-bot release-notes-bot --before abc123 --after def456 --projectId 12345 --token glpat-xxxxxxxxxxxxx --openaiToken sk-xxxxxxxxxxxxx --slackToken xoxb-xxxxxxxxxxxxx --slackChannelId C09TVLQ33HN
186
+ pnpm dev --platform gitlab --before abc123 --after def456 --projectId 12345 --token glpat-xxxxxxxxxxxxx --openaiToken sk-xxxxxxxxxxxxx --slackToken xoxb-xxxxxxxxxxxxx --slackChannelId C09TVLQ33HN
70
187
  ```
71
188
 
72
- ### Local Development
189
+ ### Local Development (GitHub)
73
190
 
74
191
  ```bash
75
- pnpm dev --before abc123 --after def456 --projectId 12345 --token glpat-xxxxxxxxxxxxx --openaiToken sk-xxxxxxxxxxxxx --slackToken xoxb-xxxxxxxxxxxxx --slackChannelId C09TVLQ33HN
192
+ pnpm dev --platform github --before abc123 --after def456 --owner octocat --repo Hello-World --token ghp_xxxxxxxxxxxxx --openaiToken sk-xxxxxxxxxxxxx --slackToken xoxb-xxxxxxxxxxxxx --slackChannelId C09TVLQ33HN
76
193
  ```
77
194
 
78
- ## GitLab CI Integration
195
+ ## CI/CD Integration
196
+
197
+ ### GitLab CI Integration
79
198
 
80
199
  In your `.gitlab-ci.yml`, you can use it like this:
81
200
 
82
201
  ```yaml
83
202
  generate-release-notes:
84
203
  script:
85
- - npx -p @litebox-packages/release-notes-bot release-notes-bot --before "$CI_COMMIT_BEFORE_SHA" --after "$CI_COMMIT_SHA" --projectId "$CI_PROJECT_ID" --token "$GITLAB_TOKEN" --openaiToken "$OPENAI_TOKEN" --slackToken "$SLACK_TOKEN" --slackChannelId "$SLACK_CHANNEL_ID"
204
+ - npx -p @litebox-packages/release-notes-bot release-notes-bot --platform gitlab --before "$CI_COMMIT_BEFORE_SHA" --after "$CI_COMMIT_SHA" --projectId "$CI_PROJECT_ID" --token "$GITLAB_TOKEN" --openaiToken "$OPENAI_TOKEN" --slackToken "$SLACK_TOKEN" --slackChannelId "$SLACK_CHANNEL_ID"
205
+ ```
206
+
207
+ ### GitHub Actions Integration
208
+
209
+ In your `.github/workflows/release-notes.yml`, you can use it like this:
210
+
211
+ ```yaml
212
+ name: Generate Release Notes
213
+
214
+ on:
215
+ push:
216
+ branches:
217
+ - main
218
+
219
+ jobs:
220
+ generate-release-notes:
221
+ runs-on: ubuntu-latest
222
+ steps:
223
+ - name: Generate Release Notes
224
+ run: |
225
+ npx -p @litebox-packages/release-notes-bot release-notes-bot \
226
+ --platform github \
227
+ --before "${{ github.event.before }}" \
228
+ --after "${{ github.sha }}" \
229
+ --owner "${{ github.repository_owner }}" \
230
+ --repo "${{ github.event.repository.name }}" \
231
+ --token "${{ secrets.GITHUB_TOKEN }}" \
232
+ --openaiToken "${{ secrets.OPENAI_TOKEN }}" \
233
+ --slackToken "${{ secrets.SLACK_TOKEN }}" \
234
+ --slackChannelId "${{ secrets.SLACK_CHANNEL_ID }}"
86
235
  ```
87
236
 
package/dist/cli.js CHANGED
@@ -1,12 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- const getDiff_1 = require("./getDiff");
4
+ const getGitLabDiff_1 = require("./getGitLabDiff");
5
+ const getGitHubDiff_1 = require("./getGitHubDiff");
5
6
  const tokenEstimator_1 = require("./tokenEstimator");
6
7
  const dataSanitizer_1 = require("./dataSanitizer");
7
8
  const promptInstructions_1 = require("./promptInstructions");
8
9
  const openaiClient_1 = require("./openaiClient");
9
10
  const slackClient_1 = require("./slackClient");
11
+ const contextDetector_1 = require("./contextDetector");
10
12
  const isAssetFile = (filePath) => {
11
13
  const lowerPath = filePath.toLowerCase();
12
14
  // Check for asset file extensions
@@ -44,19 +46,66 @@ const filterAssetDiffs = (diffs) => {
44
46
  const parseArgs = () => {
45
47
  const args = process.argv.slice(2);
46
48
  const parsed = {};
47
- for (let i = 0; i < args.length; i += 2) {
48
- const key = args[i]?.replace("--", "");
49
- const value = args[i + 1];
50
- if (key && value) {
51
- parsed[key] = value;
49
+ for (let i = 0; i < args.length; i++) {
50
+ const arg = args[i];
51
+ // Handle --key=value
52
+ if (arg.startsWith("--")) {
53
+ const keyRaw = arg.replace(/^--/, "");
54
+ if (keyRaw.includes("=")) {
55
+ const [key, ...valueParts] = keyRaw.split("=");
56
+ const value = valueParts.join("=");
57
+ if (key && value) {
58
+ parsed[key] = value;
59
+ }
60
+ }
61
+ else {
62
+ // Handle --key value
63
+ const key = keyRaw;
64
+ const value = args[i + 1];
65
+ // Make sure value exists and is not another flag
66
+ if (value && !value.startsWith("--")) {
67
+ parsed[key] = value;
68
+ i++; // Skip next arg since we consumed it as value
69
+ }
70
+ }
71
+ }
72
+ }
73
+ // Default platform to gitlab if not specified
74
+ const platform = parsed.platform || "gitlab";
75
+ // Validate common required arguments
76
+ const missingArgs = [];
77
+ if (!parsed.before)
78
+ missingArgs.push("--before");
79
+ if (!parsed.after)
80
+ missingArgs.push("--after");
81
+ if (!parsed.token)
82
+ missingArgs.push("--token");
83
+ if (!parsed.openaiToken)
84
+ missingArgs.push("--openaiToken");
85
+ if (missingArgs.length > 0) {
86
+ console.error(`Error: Missing required arguments: ${missingArgs.join(", ")}`);
87
+ console.error("\nUsage: release-notes-bot --platform <gitlab|github> --before <hash> --after <hash> --token <token> --openaiToken <openai-token> [platform-specific args] [--slackToken <slack-token> --slackChannelId <slack-channel-id>]");
88
+ console.error("\nGitLab usage:");
89
+ console.error(" --platform gitlab --before <hash> --after <hash> --projectId <id> --token <gitlab-token> --openaiToken <openai-token>");
90
+ console.error("\nGitHub usage:");
91
+ console.error(" --platform github --before <hash> --after <hash> --owner <owner> --repo <repo> --token <github-token> --openaiToken <openai-token>");
92
+ process.exit(1);
93
+ }
94
+ // Validate platform-specific arguments
95
+ if (platform === "gitlab") {
96
+ if (!parsed.projectId) {
97
+ console.error("Error: --projectId is required when --platform is gitlab");
98
+ process.exit(1);
99
+ }
100
+ }
101
+ else if (platform === "github") {
102
+ if (!parsed.owner || !parsed.repo) {
103
+ console.error("Error: --owner and --repo are required when --platform is github");
104
+ process.exit(1);
52
105
  }
53
106
  }
54
- if (!parsed.before ||
55
- !parsed.after ||
56
- !parsed.projectId ||
57
- !parsed.token ||
58
- !parsed.openaiToken) {
59
- console.error("Usage: release-notes-bot --before <hash> --after <hash> --projectId <id> --token <gitlab-token> --openaiToken <openai-token> [--slackToken <slack-token> --slackChannelId <slack-channel-id>]");
107
+ else {
108
+ console.error(`Error: Invalid platform '${platform}'. Must be 'gitlab' or 'github'`);
60
109
  process.exit(1);
61
110
  }
62
111
  // Validate: if slackToken is provided, slackChannelId must also be provided
@@ -64,13 +113,54 @@ const parseArgs = () => {
64
113
  console.error("Error: --slackChannelId is required when --slackToken is provided");
65
114
  process.exit(1);
66
115
  }
67
- return parsed;
116
+ return { ...parsed, platform };
68
117
  };
69
118
  const main = async () => {
70
119
  try {
71
- const { before, after, projectId, token, openaiToken, slackToken, slackChannelId, } = parseArgs();
72
- console.log(`Fetching diff between ${before} and ${after}...`);
73
- const result = await (0, getDiff_1.getDiff)(before, after, projectId, token);
120
+ const { platform, before, after, projectId, owner, repo, token, openaiToken, slackToken, slackChannelId, } = parseArgs();
121
+ console.log(`Fetching diff between ${before} and ${after} from ${platform}...`);
122
+ // Call the appropriate diff function based on platform
123
+ let result;
124
+ if (platform === "gitlab") {
125
+ if (!projectId) {
126
+ throw new Error("projectId is required for GitLab");
127
+ }
128
+ result = await (0, getGitLabDiff_1.getGitLabDiff)(before, after, projectId, token);
129
+ }
130
+ else {
131
+ if (!owner || !repo) {
132
+ throw new Error("owner and repo are required for GitHub");
133
+ }
134
+ result = await (0, getGitHubDiff_1.getGitHubDiff)(before, after, owner, repo, token);
135
+ }
136
+ // Check if the PR/diff is too large (overflow or timeout)
137
+ if (result.overflow || result.compare_timeout) {
138
+ const reason = result.overflow
139
+ ? "the PR is too big (exceeds API limits)"
140
+ : "the comparison timed out";
141
+ console.warn(`\n⚠ Warning: Release notes not generated because ${reason}.`);
142
+ // Send notification to Slack if tokens are provided
143
+ if (slackToken && slackChannelId) {
144
+ try {
145
+ console.log("Sending notification to Slack...");
146
+ await (0, slackClient_1.sendSlackMessage)(slackToken, slackChannelId, "Release notes not generated because the PR is too big");
147
+ console.log("✓ Notification sent to Slack successfully");
148
+ }
149
+ catch (slackError) {
150
+ console.warn(`\n⚠ Warning: Failed to send Slack notification: ${slackError instanceof Error ? slackError.message : String(slackError)}`);
151
+ }
152
+ }
153
+ // Exit gracefully (this is a handled case, not an error)
154
+ process.exit(0);
155
+ }
156
+ // Detect context (merge vs single commit)
157
+ const context = (0, contextDetector_1.detectContext)(result);
158
+ if (context.type === "merge") {
159
+ console.log(`Context: Merge request${context.branchName ? ` from branch '${context.branchName}'` : ""}`);
160
+ }
161
+ else {
162
+ console.log(`Context: Single commit${context.commitTitle ? ` - ${context.commitTitle}` : ""}`);
163
+ }
74
164
  // Filter assets and sanitize diffs
75
165
  const filteredDiffs = filterAssetDiffs(result.diffs);
76
166
  const sanitizedDiffs = (0, dataSanitizer_1.sanitizeDiffs)(filteredDiffs);
@@ -125,7 +215,7 @@ const main = async () => {
125
215
  if (slackToken && slackChannelId) {
126
216
  try {
127
217
  console.log("\nSending release notes to Slack...");
128
- await (0, slackClient_1.sendSlackMessage)(slackToken, slackChannelId, content);
218
+ await (0, slackClient_1.sendSlackMessage)(slackToken, slackChannelId, content, context);
129
219
  console.log("✓ Release notes sent to Slack successfully");
130
220
  }
131
221
  catch (slackError) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { RepoCompareResponse } from "./types";
2
+ export interface ReleaseContext {
3
+ type: "merge" | "single";
4
+ branchName?: string;
5
+ commitTitle?: string;
6
+ }
7
+ /**
8
+ * Detects the context of the release notes (merge request vs single commit)
9
+ */
10
+ export declare const detectContext: (data: RepoCompareResponse) => ReleaseContext;
11
+ //# sourceMappingURL=contextDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextDetector.d.ts","sourceRoot":"","sources":["../src/contextDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6CD;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,mBAAmB,KAAG,cAiCzD,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.detectContext = void 0;
4
+ /**
5
+ * Extracts branch name from merge commit message
6
+ * Handles patterns like:
7
+ * - "Merge branch 'feature-branch' into 'main'"
8
+ * - "Merge branch 'feature-branch'"
9
+ * - "Merge !123 from feature-branch"
10
+ */
11
+ const extractBranchNameFromMergeCommit = (commitMessage) => {
12
+ // Pattern 1: "Merge branch 'branch-name' into 'target'"
13
+ const pattern1 = /merge\s+branch\s+['"]([^'"]+)['"]/i;
14
+ const match1 = commitMessage.match(pattern1);
15
+ if (match1 && match1[1]) {
16
+ return match1[1];
17
+ }
18
+ // Pattern 2: "Merge !123 from branch-name"
19
+ const pattern2 = /merge\s+!\d+\s+from\s+(\S+)/i;
20
+ const match2 = commitMessage.match(pattern2);
21
+ if (match2 && match2[1]) {
22
+ return match2[1];
23
+ }
24
+ // Pattern 3: "Merge branch branch-name" (without quotes)
25
+ const pattern3 = /merge\s+branch\s+(\S+)/i;
26
+ const match3 = commitMessage.match(pattern3);
27
+ if (match3 && match3[1]) {
28
+ return match3[1];
29
+ }
30
+ return undefined;
31
+ };
32
+ /**
33
+ * Checks if a commit is a merge commit
34
+ */
35
+ const isMergeCommit = (commit) => {
36
+ const titleLower = commit.title.toLowerCase();
37
+ return (titleLower.startsWith("merge") ||
38
+ commit.parent_ids.length > 1);
39
+ };
40
+ /**
41
+ * Detects the context of the release notes (merge request vs single commit)
42
+ */
43
+ const detectContext = (data) => {
44
+ const { commits } = data;
45
+ if (commits.length === 0) {
46
+ // Fallback: use the commit from the compare response
47
+ return {
48
+ type: "single",
49
+ commitTitle: data.commit.title,
50
+ };
51
+ }
52
+ // Check if any commit is a merge commit
53
+ const mergeCommits = commits.filter(isMergeCommit);
54
+ if (mergeCommits.length > 0) {
55
+ // It's a merge request - extract branch name from the first merge commit
56
+ const firstMergeCommit = mergeCommits[0];
57
+ const branchName = extractBranchNameFromMergeCommit(firstMergeCommit.message || firstMergeCommit.title);
58
+ return {
59
+ type: "merge",
60
+ branchName: branchName || undefined,
61
+ };
62
+ }
63
+ // Single commit - use the first commit's title
64
+ const firstCommit = commits[0];
65
+ return {
66
+ type: "single",
67
+ commitTitle: firstCommit.title,
68
+ };
69
+ };
70
+ exports.detectContext = detectContext;
71
+ //# sourceMappingURL=contextDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextDetector.js","sourceRoot":"","sources":["../src/contextDetector.ts"],"names":[],"mappings":";;;AAQA;;;;;;GAMG;AACH,MAAM,gCAAgC,GAAG,CAAC,aAAqB,EAAsB,EAAE;IACrF,wDAAwD;IACxD,MAAM,QAAQ,GAAG,oCAAoC,CAAC;IACtD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,8BAA8B,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,yDAAyD;IACzD,MAAM,QAAQ,GAAG,yBAAyB,CAAC;IAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC,MAA+C,EAAW,EAAE;IACjF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,CACL,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;QAC9B,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,aAAa,GAAG,CAAC,IAAyB,EAAkB,EAAE;IACzE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,qDAAqD;QACrD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SAC/B,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAEnD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,yEAAyE;QACzE,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,gCAAgC,CACjD,gBAAgB,CAAC,OAAO,IAAI,gBAAgB,CAAC,KAAK,CACnD,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,UAAU,IAAI,SAAS;SACpC,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,WAAW,CAAC,KAAK;KAC/B,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,aAAa,iBAiCxB"}
@@ -1,4 +1,4 @@
1
- import { GitLabDiff } from "./types";
1
+ import { RepoDiff } from "./types";
2
2
  /**
3
3
  * Sanitized diff type without unnecessary fields
4
4
  */
@@ -14,9 +14,9 @@ export interface SanitizedDiff {
14
14
  * Sanitizes diff data by removing unnecessary fields
15
15
  * Removes: collapsed, too_large, a_mode, b_mode, generated_file
16
16
  */
17
- export declare const sanitizeDiff: (diff: GitLabDiff) => SanitizedDiff;
17
+ export declare const sanitizeDiff: (diff: RepoDiff) => SanitizedDiff;
18
18
  /**
19
19
  * Sanitizes an array of diffs
20
20
  */
21
- export declare const sanitizeDiffs: (diffs: GitLabDiff[]) => SanitizedDiff[];
21
+ export declare const sanitizeDiffs: (diffs: RepoDiff[]) => SanitizedDiff[];
22
22
  //# sourceMappingURL=dataSanitizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataSanitizer.d.ts","sourceRoot":"","sources":["../src/dataSanitizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,UAAU,KAAG,aAS/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,UAAU,EAAE,KAAG,aAAa,EAEhE,CAAC"}
1
+ {"version":3,"file":"dataSanitizer.d.ts","sourceRoot":"","sources":["../src/dataSanitizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,QAAQ,KAAG,aAS7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,QAAQ,EAAE,KAAG,aAAa,EAE9D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataSanitizer.js","sourceRoot":"","sources":["../src/dataSanitizer.ts"],"names":[],"mappings":";;;AAcA;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAiB,EAAE;IAC9D,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB;AAEF;;GAEG;AACI,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAmB,EAAE;IACpE,OAAO,KAAK,CAAC,GAAG,CAAC,oBAAY,CAAC,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB"}
1
+ {"version":3,"file":"dataSanitizer.js","sourceRoot":"","sources":["../src/dataSanitizer.ts"],"names":[],"mappings":";;;AAcA;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAC,IAAc,EAAiB,EAAE;IAC5D,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB;AAEF;;GAEG;AACI,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAmB,EAAE;IAClE,OAAO,KAAK,CAAC,GAAG,CAAC,oBAAY,CAAC,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB"}
@@ -0,0 +1,6 @@
1
+ import { RepoCompareResponse } from "./types";
2
+ /**
3
+ * Fetches diff between two commits from GitHub API
4
+ */
5
+ export declare const getGitHubDiff: (beforeHash: string, afterHash: string, owner: string, repo: string, token: string) => Promise<RepoCompareResponse>;
6
+ //# sourceMappingURL=getGitHubDiff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGitHubDiff.d.ts","sourceRoot":"","sources":["../src/getGitHubDiff.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,SAAS,CAAC;AAkGpE;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,MAAM,EAClB,WAAW,MAAM,EACjB,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,mBAAmB,CAqE7B,CAAC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getGitHubDiff = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const GITHUB_API_BASE_URL = "https://api.github.com";
9
+ /**
10
+ * Maps GitHub commit to RepoCommit format
11
+ */
12
+ const mapGitHubCommitToRepoCommit = (ghCommit) => {
13
+ const shortId = ghCommit.sha.substring(0, 8);
14
+ const message = ghCommit.commit.message;
15
+ const title = message.split("\n")[0]; // First line is the title
16
+ return {
17
+ id: ghCommit.sha,
18
+ short_id: shortId,
19
+ title: title,
20
+ author_name: ghCommit.commit.author.name,
21
+ author_email: ghCommit.commit.author.email,
22
+ authored_date: ghCommit.commit.author.date,
23
+ committer_name: ghCommit.commit.committer.name,
24
+ committer_email: ghCommit.commit.committer.email,
25
+ committed_date: ghCommit.commit.committer.date,
26
+ created_at: ghCommit.commit.committer.date,
27
+ message: message,
28
+ parent_ids: ghCommit.parents.map((p) => p.sha),
29
+ };
30
+ };
31
+ /**
32
+ * Maps GitHub file change to RepoDiff format
33
+ */
34
+ const mapGitHubFileToRepoDiff = (ghFile) => {
35
+ const isNewFile = ghFile.status === "added";
36
+ const isDeletedFile = ghFile.status === "removed";
37
+ const isRenamedFile = ghFile.status === "renamed";
38
+ return {
39
+ old_path: ghFile.previous_filename || ghFile.filename,
40
+ new_path: ghFile.filename,
41
+ a_mode: "100644", // Default file mode for GitHub
42
+ b_mode: "100644",
43
+ diff: ghFile.patch || "",
44
+ new_file: isNewFile,
45
+ renamed_file: isRenamedFile,
46
+ deleted_file: isDeletedFile,
47
+ };
48
+ };
49
+ /**
50
+ * Fetches diff between two commits from GitHub API
51
+ */
52
+ const getGitHubDiff = async (beforeHash, afterHash, owner, repo, token) => {
53
+ const apiClient = axios_1.default.create({
54
+ baseURL: GITHUB_API_BASE_URL,
55
+ headers: {
56
+ Authorization: `token ${token}`,
57
+ Accept: "application/vnd.github.v3+json",
58
+ },
59
+ });
60
+ const url = `/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/compare/${beforeHash}...${afterHash}`;
61
+ try {
62
+ const response = await apiClient.get(url);
63
+ // Map GitHub response to our generic format
64
+ const commits = response.data.commits.map(mapGitHubCommitToRepoCommit);
65
+ const diffs = response.data.files.map(mapGitHubFileToRepoDiff);
66
+ // Use the base commit as the main commit, or the first commit if available
67
+ const mainCommit = commits.length > 0 ? commits[commits.length - 1] : mapGitHubCommitToRepoCommit(response.data.base_commit);
68
+ // GitHub API limits: 300 files or 250 commits
69
+ // If we hit these limits, the response is truncated
70
+ const overflow = response.data.files.length >= 300 || response.data.commits.length >= 250;
71
+ return {
72
+ commit: mainCommit,
73
+ commits: commits,
74
+ diffs: diffs,
75
+ compare_timeout: false, // GitHub doesn't have a timeout field
76
+ compare_same_ref: response.data.status === "identical",
77
+ overflow: overflow,
78
+ };
79
+ }
80
+ catch (error) {
81
+ if (axios_1.default.isAxiosError(error)) {
82
+ if (error.response) {
83
+ const status = error.response.status;
84
+ const statusText = error.response.statusText;
85
+ const errorData = error.response.data;
86
+ const errorMessage = errorData?.message || "";
87
+ let fullErrorMessage = `GitHub API error: ${status} - ${statusText}`;
88
+ if (errorMessage) {
89
+ fullErrorMessage += `\nMessage: ${errorMessage}`;
90
+ }
91
+ if (status === 403) {
92
+ fullErrorMessage += `\n\nPossible causes:
93
+ - Token doesn't have 'repo' scope enabled
94
+ - Token doesn't have access to repository ${owner}/${repo}
95
+ - Repository might be private and token lacks permissions
96
+ - Token might be expired or invalid`;
97
+ }
98
+ if (status === 404) {
99
+ fullErrorMessage += `\n\nPossible causes:
100
+ - Repository ${owner}/${repo} not found
101
+ - Commit hashes might be invalid
102
+ - Repository might not exist or be inaccessible`;
103
+ }
104
+ throw new Error(fullErrorMessage);
105
+ }
106
+ throw new Error(`Network error: ${error.message}`);
107
+ }
108
+ throw error;
109
+ }
110
+ };
111
+ exports.getGitHubDiff = getGitHubDiff;
112
+ //# sourceMappingURL=getGitHubDiff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGitHubDiff.js","sourceRoot":"","sources":["../src/getGitHubDiff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { RepoCompareResponse } from "./types";
2
+ export declare const verifyTokenAccess: (projectId: string, token: string) => Promise<void>;
3
+ export declare const getGitLabDiff: (beforeHash: string, afterHash: string, projectId: string, token: string) => Promise<RepoCompareResponse>;
4
+ //# sourceMappingURL=getGitLabDiff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGitLabDiff.d.ts","sourceRoot":"","sources":["../src/getGitLabDiff.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAY,MAAM,SAAS,CAAC;AAIxD,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,OAAO,MAAM,KACZ,OAAO,CAAC,IAAI,CAqBd,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,YAAY,MAAM,EAClB,WAAW,MAAM,EACjB,WAAW,MAAM,EACjB,OAAO,MAAM,KACZ,OAAO,CAAC,mBAAmB,CA0J7B,CAAC"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getGitLabDiff = exports.verifyTokenAccess = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const GITLAB_API_BASE_URL = "https://gitlab.com/api/v4";
9
+ const verifyTokenAccess = async (projectId, token) => {
10
+ const apiClient = axios_1.default.create({
11
+ baseURL: GITLAB_API_BASE_URL,
12
+ headers: {
13
+ "PRIVATE-TOKEN": token,
14
+ },
15
+ });
16
+ try {
17
+ await apiClient.get(`/projects/${encodeURIComponent(projectId)}`);
18
+ }
19
+ catch (error) {
20
+ if (axios_1.default.isAxiosError(error) && error.response?.status === 403) {
21
+ throw new Error(`Token doesn't have access to project ${projectId}. Please verify:
22
+ 1. Token has 'api' scope enabled
23
+ 2. Token has access to this project
24
+ 3. Project ID is correct`);
25
+ }
26
+ throw error;
27
+ }
28
+ };
29
+ exports.verifyTokenAccess = verifyTokenAccess;
30
+ const getGitLabDiff = async (beforeHash, afterHash, projectId, token) => {
31
+ const apiClient = axios_1.default.create({
32
+ baseURL: GITLAB_API_BASE_URL,
33
+ headers: {
34
+ "PRIVATE-TOKEN": token,
35
+ },
36
+ });
37
+ const url = `/projects/${encodeURIComponent(projectId)}/repository/compare`;
38
+ const params = {
39
+ from: beforeHash,
40
+ to: afterHash,
41
+ };
42
+ try {
43
+ let response = await apiClient.get(url, {
44
+ params,
45
+ });
46
+ // If no diffs returned, try alternative approaches
47
+ if (response.data.diffs.length === 0 && response.data.commits.length > 0) {
48
+ const allDiffs = [];
49
+ const processedFiles = new Set();
50
+ // Strategy 1: For merge commits, compare with their first parent to get merged changes
51
+ for (const commit of response.data.commits) {
52
+ const isMergeCommit = commit.title.toLowerCase().startsWith("merge") ||
53
+ commit.parent_ids.length > 1;
54
+ if (isMergeCommit && commit.parent_ids.length > 0) {
55
+ // Compare merge commit with its first parent (main branch before merge)
56
+ try {
57
+ const mergeCompareUrl = `/projects/${encodeURIComponent(projectId)}/repository/compare`;
58
+ const mergeCompareParams = {
59
+ from: commit.parent_ids[0], // First parent (main branch)
60
+ to: commit.id, // The merge commit
61
+ };
62
+ const mergeCompareResponse = await apiClient.get(mergeCompareUrl, { params: mergeCompareParams });
63
+ // Add unique diffs from this merge
64
+ for (const diff of mergeCompareResponse.data.diffs) {
65
+ const fileKey = `${diff.old_path}-${diff.new_path}`;
66
+ if (!processedFiles.has(fileKey)) {
67
+ processedFiles.add(fileKey);
68
+ allDiffs.push(diff);
69
+ }
70
+ }
71
+ }
72
+ catch (mergeError) {
73
+ // If merge compare fails, try getting individual commit diff
74
+ try {
75
+ const commitDiffUrl = `/projects/${encodeURIComponent(projectId)}/repository/commits/${commit.id}/diff`;
76
+ const commitDiffResponse = await apiClient.get(commitDiffUrl);
77
+ for (const diff of commitDiffResponse.data) {
78
+ const fileKey = `${diff.old_path}-${diff.new_path}`;
79
+ if (!processedFiles.has(fileKey)) {
80
+ processedFiles.add(fileKey);
81
+ allDiffs.push(diff);
82
+ }
83
+ }
84
+ }
85
+ catch (commitError) {
86
+ // Skip this commit if we can't get its diff
87
+ console.warn(`Warning: Could not get diff for merge commit ${commit.short_id}`);
88
+ }
89
+ }
90
+ }
91
+ else if (!isMergeCommit) {
92
+ // Strategy 2: For non-merge commits, get their direct diff
93
+ try {
94
+ const commitDiffUrl = `/projects/${encodeURIComponent(projectId)}/repository/commits/${commit.id}/diff`;
95
+ const commitDiffResponse = await apiClient.get(commitDiffUrl);
96
+ for (const diff of commitDiffResponse.data) {
97
+ const fileKey = `${diff.old_path}-${diff.new_path}`;
98
+ if (!processedFiles.has(fileKey)) {
99
+ processedFiles.add(fileKey);
100
+ allDiffs.push(diff);
101
+ }
102
+ }
103
+ }
104
+ catch (commitError) {
105
+ console.warn(`Warning: Could not get diff for commit ${commit.short_id}`);
106
+ }
107
+ }
108
+ }
109
+ // If we found diffs, add them to the response
110
+ if (allDiffs.length > 0) {
111
+ response.data.diffs = allDiffs;
112
+ }
113
+ }
114
+ // Ensure overflow field is set (defaults to false if not present from API)
115
+ return {
116
+ ...response.data,
117
+ overflow: response.data.overflow ?? false,
118
+ };
119
+ }
120
+ catch (error) {
121
+ if (axios_1.default.isAxiosError(error)) {
122
+ if (error.response) {
123
+ const status = error.response.status;
124
+ const statusText = error.response.statusText;
125
+ const errorData = error.response.data;
126
+ const errorMessage = errorData?.message || errorData?.error || "";
127
+ const errorDetails = errorData?.error_description || "";
128
+ let fullErrorMessage = `GitLab API error: ${status} - ${statusText}`;
129
+ if (errorMessage) {
130
+ fullErrorMessage += `\nMessage: ${errorMessage}`;
131
+ }
132
+ if (errorDetails) {
133
+ fullErrorMessage += `\nDetails: ${errorDetails}`;
134
+ }
135
+ if (status === 403) {
136
+ fullErrorMessage += `\n\nPossible causes:
137
+ - Token doesn't have 'api' or 'read_repository' scope
138
+ - Token doesn't have access to project ${projectId}
139
+ - Project might be private and token lacks permissions
140
+ - Token might be expired or invalid`;
141
+ }
142
+ if (status === 404) {
143
+ fullErrorMessage += `\n\nPossible causes:
144
+ - Project ID ${projectId} not found
145
+ - Commit hashes might be invalid
146
+ - Project might not exist or be inaccessible`;
147
+ }
148
+ throw new Error(fullErrorMessage);
149
+ }
150
+ throw new Error(`Network error: ${error.message}`);
151
+ }
152
+ throw error;
153
+ }
154
+ };
155
+ exports.getGitLabDiff = getGitLabDiff;
156
+ //# sourceMappingURL=getGitLabDiff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGitLabDiff.js","sourceRoot":"","sources":["../src/getGitLabDiff.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { GitLabCompareResponse, GitLabCommit } from "./types";
1
+ import { RepoCompareResponse, RepoCommit } from "./types";
2
2
  import { SanitizedDiff } from "./dataSanitizer";
3
3
  interface SanitizedCompareResponse {
4
- commit: GitLabCommit;
5
- commits: GitLabCommit[];
4
+ commit: RepoCommit;
5
+ commits: RepoCommit[];
6
6
  diffs: SanitizedDiff[];
7
7
  compare_timeout: boolean;
8
8
  compare_same_ref: boolean;
@@ -14,6 +14,6 @@ interface SanitizedCompareResponse {
14
14
  */
15
15
  export declare const shouldIncludeDiff: (filePath: string) => boolean;
16
16
  export declare const getSystemPrompt: () => string;
17
- export declare const prepareUserPrompt: (data: SanitizedCompareResponse | GitLabCompareResponse) => string;
17
+ export declare const prepareUserPrompt: (data: SanitizedCompareResponse | RepoCompareResponse) => string;
18
18
  export {};
19
19
  //# sourceMappingURL=promptInstructions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"promptInstructions.d.ts","sourceRoot":"","sources":["../src/promptInstructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,UAAU,wBAAwB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,OAyFpD,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,MAyClC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,wBAAwB,GAAG,qBAAqB,KACrD,MAwDF,CAAC"}
1
+ {"version":3,"file":"promptInstructions.d.ts","sourceRoot":"","sources":["../src/promptInstructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,UAAU,wBAAwB;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,OAyFpD,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,MAyClC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,wBAAwB,GAAG,mBAAmB,KACnD,MAwDF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"promptInstructions.js","sourceRoot":"","sources":["../src/promptInstructions.ts"],"names":[],"mappings":";;;AAWA;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAW,EAAE;IAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAEzC,kCAAkC;IAClC,MAAM,cAAc,GAAG;QACrB,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;KACP,CAAC;IAEF,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACnD,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CACxB,CAAC;IAEF,qBAAqB;IACrB,MAAM,UAAU,GACd,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5B,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7B,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;QACjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5B,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAC7B,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEjC,uBAAuB;IACvB,MAAM,YAAY,GAChB,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9B,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/B,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACpC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1B,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/B,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;QACnC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;QACnC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/B,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;QACjC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACrC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;QACjC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACpC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;QACjC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;QACnC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACxC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1B,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3B,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE7B,wBAAwB;IACxB,MAAM,eAAe,GACnB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5B,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACrC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAC7B,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC;QACtC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/B,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CACL,gBAAgB,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,CACrE,CAAC;AACJ,CAAC,CAAC;AAzFW,QAAA,iBAAiB,qBAyF5B;AAEK,MAAM,eAAe,GAAG,GAAW,EAAE;IAC1C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEAuC8D,CAAC;AACxE,CAAC,CAAC;AAzCW,QAAA,eAAe,mBAyC1B;AAEK,MAAM,iBAAiB,GAAG,CAC/B,IAAsD,EAC9C,EAAE;IACV,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO;SAC7B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,OAAO,WAAW,MAAM,CAAC,KAAK;WACzB,MAAM,CAAC,OAAO;UACf,MAAM,CAAC,WAAW;QACpB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,wCAAwC;IACxC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ;YAC1B,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,YAAY;gBACnB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,CAAC,YAAY;oBACnB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,UAAU,CAAC;QACf,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;YAC7B,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE;YACxC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEpB,IAAI,IAAA,yBAAiB,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAClD,8BAA8B;YAC9B,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,QAAQ,iBAAiB,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,oCAAoC;YACpC,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,SAAS,IAAI,oCAAoC,CAAC;QAClD,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,SAAS;YAAE,SAAS,IAAI,MAAM,CAAC;QACnC,SAAS,IAAI,wBAAwB,CAAC;QACtC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO;;;EAGP,WAAW;;EAEX,SAAS;;yDAE8C,CAAC;AAC1D,CAAC,CAAC;AA1DW,QAAA,iBAAiB,qBA0D5B"}
1
+ {"version":3,"file":"promptInstructions.js","sourceRoot":"","sources":["../src/promptInstructions.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare const sendSlackMessage: (slackToken: string, channelId: string, markdownText: string) => Promise<void>;
1
+ import { ReleaseContext } from "./contextDetector";
2
+ export declare const sendSlackMessage: (slackToken: string, channelId: string, markdownText: string, context?: ReleaseContext) => Promise<void>;
2
3
  //# sourceMappingURL=slackClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slackClient.d.ts","sourceRoot":"","sources":["../src/slackClient.ts"],"names":[],"mappings":"AAyGA,eAAO,MAAM,gBAAgB,GAC3B,YAAY,MAAM,EAClB,WAAW,MAAM,EACjB,cAAc,MAAM,KACnB,OAAO,CAAC,IAAI,CAwCd,CAAC"}
1
+ {"version":3,"file":"slackClient.d.ts","sourceRoot":"","sources":["../src/slackClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAsInD,eAAO,MAAM,gBAAgB,GAC3B,YAAY,MAAM,EAClB,WAAW,MAAM,EACjB,cAAc,MAAM,EACpB,UAAU,cAAc,KACvB,OAAO,CAAC,IAAI,CAkGd,CAAC"}
@@ -5,6 +5,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.sendSlackMessage = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
+ /**
9
+ * Creates a context header block for Slack with underline
10
+ */
11
+ const createContextHeader = (context) => {
12
+ const blocks = [];
13
+ if (context.type === "merge") {
14
+ const branchName = context.branchName || "unknown branch";
15
+ blocks.push({
16
+ type: "section",
17
+ text: {
18
+ type: "mrkdwn",
19
+ text: `_Merge of_ \`${branchName}\` _branch_`,
20
+ },
21
+ });
22
+ }
23
+ else if (context.type === "single" && context.commitTitle) {
24
+ blocks.push({
25
+ type: "section",
26
+ text: {
27
+ type: "mrkdwn",
28
+ text: `Commit: \`${context.commitTitle}\``,
29
+ },
30
+ });
31
+ }
32
+ return blocks;
33
+ };
8
34
  /**
9
35
  * Converts markdown release notes to Slack Block Kit format
10
36
  */
@@ -72,15 +98,67 @@ const convertMarkdownToSlackBlocks = (markdown) => {
72
98
  flushSection();
73
99
  return blocks;
74
100
  };
75
- const sendSlackMessage = async (slackToken, channelId, markdownText) => {
101
+ const sendSlackMessage = async (slackToken, channelId, markdownText, context) => {
76
102
  try {
77
103
  // Convert markdown to Slack Block Kit format
78
104
  const blocks = convertMarkdownToSlackBlocks(markdownText);
105
+ // Insert context header after "Summary" section content if provided
106
+ if (context) {
107
+ const contextBlocks = createContextHeader(context);
108
+ if (contextBlocks.length > 0) {
109
+ // Find the "Summary" header and then find its content section
110
+ let insertIndex = -1;
111
+ for (let i = 0; i < blocks.length; i++) {
112
+ const block = blocks[i];
113
+ if (block.type === "header" &&
114
+ block.text?.text?.toLowerCase().includes("summary")) {
115
+ // Find the section content block that follows the Summary header
116
+ for (let j = i + 1; j < blocks.length; j++) {
117
+ if (blocks[j].type === "section") {
118
+ // Insert after this section block (after the summary paragraph)
119
+ insertIndex = j + 1;
120
+ break;
121
+ }
122
+ // If we hit a divider or header before finding section, insert after header
123
+ if (blocks[j].type === "divider" || blocks[j].type === "header") {
124
+ insertIndex = j;
125
+ break;
126
+ }
127
+ }
128
+ break;
129
+ }
130
+ }
131
+ // If Summary section not found, insert after first section content
132
+ if (insertIndex === -1) {
133
+ for (let i = 0; i < blocks.length; i++) {
134
+ if (blocks[i].type === "section") {
135
+ insertIndex = i + 1;
136
+ break;
137
+ }
138
+ }
139
+ // Fallback: insert at start if no sections found
140
+ if (insertIndex === -1) {
141
+ insertIndex = 0;
142
+ }
143
+ }
144
+ // Insert context blocks (section + divider for underline)
145
+ blocks.splice(insertIndex, 0, ...contextBlocks);
146
+ }
147
+ }
79
148
  // Fallback text for notifications
80
- const fallbackText = markdownText
149
+ let fallbackText = markdownText
81
150
  .replace(/##\s*/g, "")
82
151
  .replace(/\*\*(.+?)\*\*/g, "$1")
83
152
  .substring(0, 200);
153
+ // Add context to fallback text if provided
154
+ if (context) {
155
+ const contextText = context.type === "merge"
156
+ ? `Merge of ${context.branchName || "unknown branch"} branch\n\n`
157
+ : context.commitTitle
158
+ ? `Commit: '${context.commitTitle}'\n\n`
159
+ : "";
160
+ fallbackText = contextText + fallbackText;
161
+ }
84
162
  const response = await axios_1.default.post("https://slack.com/api/chat.postMessage", {
85
163
  channel: channelId,
86
164
  text: fallbackText,
@@ -1 +1 @@
1
- {"version":3,"file":"slackClient.js","sourceRoot":"","sources":["../src/slackClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slackClient.js","sourceRoot":"","sources":["../src/slackClient.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { GitLabCompareResponse } from "./types";
1
+ import { RepoCompareResponse } from "./types";
2
2
  interface TokenEstimate {
3
3
  totalTokens: number;
4
4
  inputTokens: number;
@@ -16,7 +16,7 @@ interface TokenEstimate {
16
16
  * @param options - Configuration options
17
17
  * @returns Token estimate breakdown
18
18
  */
19
- export declare const estimateTokenUsage: (data: GitLabCompareResponse, options?: {
19
+ export declare const estimateTokenUsage: (data: RepoCompareResponse, options?: {
20
20
  includeDiffs?: boolean;
21
21
  includeSystemPrompt?: boolean;
22
22
  systemPrompt?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tokenEstimator.d.ts","sourceRoot":"","sources":["../src/tokenEstimator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAc,MAAM,SAAS,CAAC;AAE5D,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAwDD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,qBAAqB,EAC3B,UAAS;IACP,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,KACL,aA0DF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,aAAa,KAAG,MAc7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,QAAO,aAAa,GAAG,QAAQ,GAAG,eAAe,GAAG,QAAwB,KAC3E,MAkCF,CAAC"}
1
+ {"version":3,"file":"tokenEstimator.d.ts","sourceRoot":"","sources":["../src/tokenEstimator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAY,MAAM,SAAS,CAAC;AAExD,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAwDD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,mBAAmB,EACzB,UAAS;IACP,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,KACL,aA0DF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,aAAa,KAAG,MAc7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,QAAO,aAAa,GAAG,QAAQ,GAAG,eAAe,GAAG,QAAwB,KAC3E,MAkCF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokenEstimator.js","sourceRoot":"","sources":["../src/tokenEstimator.ts"],"names":[],"mappings":";;;AAcA;;;;GAIG;AACH,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE;IAC9C,+DAA+D;IAC/D,iEAAiE;IACjE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAW,EAAE;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAEzC,MAAM,eAAe,GAAG;QACtB,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;KACP,CAAC;IAEF,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACrD,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CACxB,CAAC;IAEF,MAAM,kBAAkB,GACtB,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC9B,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/B,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/B,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/B,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAElC,OAAO,iBAAiB,IAAI,kBAAkB,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAmB,EAAgB,EAAE;IAC7D,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CACrE,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACI,MAAM,kBAAkB,GAAG,CAChC,IAA2B,EAC3B,UAKI,EAAE,EACS,EAAE;IACjB,MAAM,EACJ,YAAY,GAAG,KAAK,EACpB,mBAAmB,GAAG,KAAK,EAC3B,YAAY,GAAG,EAAE,EACjB,YAAY,GAAG,IAAI,GACpB,GAAG,OAAO,CAAC;IAEZ,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAE3B,+BAA+B;IAC/B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,wCAAwC;QACxC,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/E,aAAa,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,kCAAkC;IAClC,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAEhF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5D,eAAe,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,2CAA2C;IAC3C,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,WAAW,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,mBAAmB,IAAI,YAAY,EAAE,CAAC;QACxC,kBAAkB,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,WAAW,GACf,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,kBAAkB,CAAC;IAErE,mEAAmE;IACnE,iEAAiE;IACjE,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE5D,OAAO;QACL,WAAW,EAAE,WAAW,GAAG,qBAAqB;QAChD,WAAW;QACX,qBAAqB;QACrB,SAAS,EAAE;YACT,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,WAAW;YAClB,GAAG,CAAC,mBAAmB,IAAI,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;SACjE;KACF,CAAC;AACJ,CAAC,CAAC;AAlEW,QAAA,kBAAkB,sBAkE7B;AAEF;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,QAAuB,EAAU,EAAE;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC;SACrE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;WAEE,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE;WACrC,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE;sBAC1B,QAAQ,CAAC,qBAAqB,CAAC,cAAc,EAAE;;;EAGnE,SAAS;GACR,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B;AAEF;;;;;GAKG;AACI,MAAM,YAAY,GAAG,CAC1B,MAAc,EACd,QAA+D,aAAa,EACpE,EAAE;IACV,sDAAsD;IACtD,MAAM,OAAO,GAAsD;QACjE,aAAa,EAAE;YACb,KAAK,EAAE,IAAI,EAAE,4BAA4B;YACzC,MAAM,EAAE,GAAG,EAAE,6BAA6B;SAC3C;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,GAAG,EAAE,4BAA4B;YACxC,MAAM,EAAE,IAAI,EAAE,8BAA8B;SAC7C;QACD,eAAe,EAAE;YACf,KAAK,EAAE,IAAI,EAAE,4BAA4B;YACzC,MAAM,EAAE,IAAI,EAAE,6BAA6B;SAC5C;QACD,MAAM,EAAE;YACN,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACV;KACF,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,iEAAiE;IACjE,MAAM,WAAW,GAAG,MAAM,GAAG,GAAG,CAAC;IACjC,MAAM,YAAY,GAAG,MAAM,GAAG,GAAG,CAAC;IAElC,MAAM,SAAS,GAAG,CAAC,WAAW,GAAG,OAAS,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;IACjE,MAAM,UAAU,GAAG,CAAC,YAAY,GAAG,OAAS,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;IAEpE,OAAO,SAAS,GAAG,UAAU,CAAC;AAChC,CAAC,CAAC;AArCW,QAAA,YAAY,gBAqCvB"}
1
+ {"version":3,"file":"tokenEstimator.js","sourceRoot":"","sources":["../src/tokenEstimator.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export interface GitLabCommit {
1
+ export interface RepoCommit {
2
2
  id: string;
3
3
  short_id: string;
4
4
  title: string;
@@ -12,7 +12,7 @@ export interface GitLabCommit {
12
12
  message: string;
13
13
  parent_ids: string[];
14
14
  }
15
- export interface GitLabDiff {
15
+ export interface RepoDiff {
16
16
  old_path: string;
17
17
  new_path: string;
18
18
  a_mode: string;
@@ -22,11 +22,15 @@ export interface GitLabDiff {
22
22
  renamed_file: boolean;
23
23
  deleted_file: boolean;
24
24
  }
25
- export interface GitLabCompareResponse {
26
- commit: GitLabCommit;
27
- commits: GitLabCommit[];
28
- diffs: GitLabDiff[];
25
+ export interface RepoCompareResponse {
26
+ commit: RepoCommit;
27
+ commits: RepoCommit[];
28
+ diffs: RepoDiff[];
29
29
  compare_timeout: boolean;
30
30
  compare_same_ref: boolean;
31
+ overflow: boolean;
31
32
  }
33
+ export type GitLabCommit = RepoCommit;
34
+ export type GitLabDiff = RepoDiff;
35
+ export type GitLabCompareResponse = RepoCompareResponse;
32
36
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AACtC,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;AAClC,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@litebox-packages/release-notes-bot",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "Automated release notes generator using GitLab API and OpenAI",
5
5
  "main": "dist/index.js",
6
6
  "bin": {