@snapcommit/cli 3.8.17 → 3.8.19
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/dist/commands/github-connect.js +102 -12
- package/package.json +1 -1
|
@@ -3,6 +3,39 @@
|
|
|
3
3
|
* GitHub authentication - Auto-fetches OAuth token from SnapCommit account
|
|
4
4
|
* Falls back to manual PAT if OAuth token not available
|
|
5
5
|
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
6
39
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
40
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
41
|
};
|
|
@@ -180,20 +213,77 @@ async function githubConnectCommand(tokenArg) {
|
|
|
180
213
|
console.log(chalk_1.default.cyan(' • "list my open PRs"\n'));
|
|
181
214
|
return;
|
|
182
215
|
}
|
|
183
|
-
// Token not found -
|
|
216
|
+
// Token not found - initiate GitHub OAuth flow
|
|
184
217
|
console.log(chalk_1.default.yellow('\n⚠️ GitHub not connected yet!\n'));
|
|
185
|
-
console.log(chalk_1.default.white('
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
218
|
+
console.log(chalk_1.default.white("Let's connect your GitHub account!\n"));
|
|
219
|
+
const authConfig = (0, auth_1.getAuthConfig)();
|
|
220
|
+
if (!authConfig || !authConfig.token) {
|
|
221
|
+
console.log(chalk_1.default.red('❌ You must be logged in first!'));
|
|
222
|
+
console.log(chalk_1.default.gray(' Run: ') + chalk_1.default.cyan('snap login\n'));
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
console.log(chalk_1.default.bold.cyan('🔐 Quick Setup (30 seconds):\n'));
|
|
226
|
+
console.log(chalk_1.default.gray(' 1. A browser window will open'));
|
|
227
|
+
console.log(chalk_1.default.gray(' 2. Authorize SnapCommit to access your GitHub'));
|
|
228
|
+
console.log(chalk_1.default.gray(" 3. Come back here - you'll be connected!\n"));
|
|
229
|
+
console.log(chalk_1.default.gray('This enables:\n'));
|
|
230
|
+
console.log(chalk_1.default.white(' - Create pull requests with natural language'));
|
|
231
|
+
console.log(chalk_1.default.white(' - Check CI/workflow status'));
|
|
232
|
+
console.log(chalk_1.default.white(' - Manage issues and PRs\n'));
|
|
191
233
|
console.log(chalk_1.default.yellow('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
|
|
192
|
-
console.log(chalk_1.default.
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
234
|
+
console.log(chalk_1.default.cyan('🔄 Getting GitHub OAuth URL...\n'));
|
|
235
|
+
try {
|
|
236
|
+
// Call API to get OAuth URL
|
|
237
|
+
const response = await fetch('https://snapcommit.dev/api/github/connect', {
|
|
238
|
+
method: 'POST',
|
|
239
|
+
headers: {
|
|
240
|
+
'Content-Type': 'application/json',
|
|
241
|
+
},
|
|
242
|
+
body: JSON.stringify({ token: authConfig.token }),
|
|
243
|
+
});
|
|
244
|
+
if (!response.ok) {
|
|
245
|
+
const error = await response.json();
|
|
246
|
+
console.log(chalk_1.default.red(`\n❌ Failed to get OAuth URL: ${error.error}\n`));
|
|
247
|
+
console.log(chalk_1.default.gray('Make sure you are logged in with an active subscription.\n'));
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const data = await response.json();
|
|
251
|
+
const oauthUrl = data.oauthUrl;
|
|
252
|
+
console.log(chalk_1.default.cyan('Opening browser for GitHub authorization...\n'));
|
|
253
|
+
// Open browser
|
|
254
|
+
const open = (await Promise.resolve().then(() => __importStar(require('open')))).default;
|
|
255
|
+
await open(oauthUrl);
|
|
256
|
+
console.log(chalk_1.default.green('✅ Browser opened!\n'));
|
|
257
|
+
console.log(chalk_1.default.gray('Waiting for you to authorize...\n'));
|
|
258
|
+
console.log(chalk_1.default.yellow('After authorization, come back here and press ENTER'));
|
|
259
|
+
// Wait for user confirmation
|
|
260
|
+
await askQuestion(chalk_1.default.cyan('\nPress ENTER after authorizing in browser: '));
|
|
261
|
+
// Try to fetch the token
|
|
262
|
+
const autoConfig2 = await autoFetchGitHubToken();
|
|
263
|
+
if (autoConfig2) {
|
|
264
|
+
saveGitHubToken(autoConfig2);
|
|
265
|
+
console.log(chalk_1.default.green.bold('\n✅ GITHUB CONNECTED! 🎉\n'));
|
|
266
|
+
console.log(chalk_1.default.white(` Connected as: ${chalk_1.default.bold('@' + autoConfig2.username)}\n`));
|
|
267
|
+
console.log(chalk_1.default.yellow('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
|
|
268
|
+
console.log(chalk_1.default.bold('🚀 You can now use GitHub features!\n'));
|
|
269
|
+
console.log(chalk_1.default.gray(' Try these commands in snap REPL:\n'));
|
|
270
|
+
console.log(chalk_1.default.cyan(' • "create a pull request"'));
|
|
271
|
+
console.log(chalk_1.default.cyan(' • "check CI status"'));
|
|
272
|
+
console.log(chalk_1.default.cyan(' • "list my open PRs"\n'));
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
console.log(chalk_1.default.red('\n❌ Connection failed\n'));
|
|
276
|
+
console.log(chalk_1.default.yellow('Possible reasons:'));
|
|
277
|
+
console.log(chalk_1.default.gray(' • Authorization was cancelled'));
|
|
278
|
+
console.log(chalk_1.default.gray(' • GitHub authorization not completed'));
|
|
279
|
+
console.log(chalk_1.default.gray(' • Network error\n'));
|
|
280
|
+
console.log(chalk_1.default.gray('Try running ') + chalk_1.default.cyan('github connect') + chalk_1.default.gray(' again\n'));
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
catch (error) {
|
|
284
|
+
console.log(chalk_1.default.red(`\n❌ ${error.message}\n`));
|
|
285
|
+
console.log(chalk_1.default.gray('Try running ') + chalk_1.default.cyan('github connect') + chalk_1.default.gray(' again\n'));
|
|
286
|
+
}
|
|
197
287
|
}
|
|
198
288
|
/**
|
|
199
289
|
* GitHub status command
|