@oneuptime/common 9.3.5 → 9.3.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.
Files changed (28) hide show
  1. package/Server/API/AIAgentDataAPI.ts +11 -1
  2. package/Server/API/GitHubAPI.ts +102 -0
  3. package/Server/EnvironmentConfig.ts +7 -0
  4. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +53 -1
  5. package/Types/Icon/IconProp.ts +2 -0
  6. package/UI/Components/Icon/Icon.tsx +21 -0
  7. package/UI/Components/Navbar/NavBar.tsx +5 -2
  8. package/UI/Components/Navbar/NavBarMenu.tsx +48 -14
  9. package/UI/Components/Navbar/NavBarMenuItem.tsx +86 -6
  10. package/build/dist/Server/API/AIAgentDataAPI.js +11 -2
  11. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  12. package/build/dist/Server/API/GitHubAPI.js +76 -3
  13. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  14. package/build/dist/Server/EnvironmentConfig.js +2 -0
  15. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  16. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +34 -3
  17. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  18. package/build/dist/Types/Icon/IconProp.js +2 -0
  19. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  20. package/build/dist/UI/Components/Icon/Icon.js +11 -0
  21. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  22. package/build/dist/UI/Components/Navbar/NavBar.js +2 -2
  23. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  24. package/build/dist/UI/Components/Navbar/NavBarMenu.js +26 -10
  25. package/build/dist/UI/Components/Navbar/NavBarMenu.js.map +1 -1
  26. package/build/dist/UI/Components/Navbar/NavBarMenuItem.js +72 -6
  27. package/build/dist/UI/Components/Navbar/NavBarMenuItem.js.map +1 -1
  28. package/package.json +1 -1
@@ -458,10 +458,20 @@ export default class AIAgentDataAPI {
458
458
  );
459
459
  }
460
460
 
461
- // Generate GitHub installation access token
461
+ /*
462
+ * Generate GitHub installation access token with write permissions
463
+ * Required for AI Agent to push branches and create pull requests
464
+ */
462
465
  const tokenData: GitHubInstallationToken =
463
466
  await GitHubUtil.getInstallationAccessToken(
464
467
  codeRepository.gitHubAppInstallationId,
468
+ {
469
+ permissions: {
470
+ contents: "write", // Required for pushing branches
471
+ pull_requests: "write", // Required for creating PRs
472
+ metadata: "read", // Required for reading repository metadata
473
+ },
474
+ },
465
475
  );
466
476
 
467
477
  const repositoryUrl: string = `https://github.com/${codeRepository.organizationName}/${codeRepository.repositoryName}.git`;
@@ -11,6 +11,7 @@ import { DashboardClientUrl, GitHubAppName } from "../EnvironmentConfig";
11
11
  import ObjectID from "../../Types/ObjectID";
12
12
  import GitHubUtil, {
13
13
  GitHubRepository,
14
+ GitHubInstallationNotFoundError,
14
15
  } from "../Utils/CodeRepository/GitHub/GitHub";
15
16
  import CodeRepositoryService from "../Services/CodeRepositoryService";
16
17
  import ProjectService from "../Services/ProjectService";
@@ -181,9 +182,19 @@ export default class GitHubAPI {
181
182
  UserMiddleware.getUserMiddleware,
182
183
  async (req: ExpressRequest, res: ExpressResponse) => {
183
184
  try {
185
+ const projectId: string | undefined =
186
+ req.params["projectId"]?.toString();
184
187
  const installationId: string | undefined =
185
188
  req.params["installationId"]?.toString();
186
189
 
190
+ if (!projectId) {
191
+ return Response.sendErrorResponse(
192
+ req,
193
+ res,
194
+ new BadDataException("Project ID is required"),
195
+ );
196
+ }
197
+
187
198
  if (!installationId) {
188
199
  return Response.sendErrorResponse(
189
200
  req,
@@ -201,6 +212,40 @@ export default class GitHubAPI {
201
212
  } catch (error) {
202
213
  logger.error("GitHub List Repositories Error:");
203
214
  logger.error(error);
215
+
216
+ // Handle stale installation ID - clear it from the project and return specific error
217
+ if (error instanceof GitHubInstallationNotFoundError) {
218
+ const projectId: string | undefined =
219
+ req.params["projectId"]?.toString();
220
+
221
+ if (projectId) {
222
+ try {
223
+ // Clear the stale installation ID from the project
224
+ await ProjectService.updateOneById({
225
+ id: new ObjectID(projectId),
226
+ data: {
227
+ gitHubAppInstallationId: null as unknown as string,
228
+ },
229
+ props: {
230
+ isRoot: true,
231
+ },
232
+ });
233
+
234
+ logger.info(
235
+ `Cleared stale GitHub App installation ID from project ${projectId}`,
236
+ );
237
+ } catch (clearError) {
238
+ logger.error(
239
+ "Failed to clear stale installation ID from project:",
240
+ );
241
+ logger.error(clearError);
242
+ }
243
+ }
244
+
245
+ // Return the specific error so the frontend knows to prompt reinstallation
246
+ return Response.sendErrorResponse(req, res, error);
247
+ }
248
+
204
249
  return Response.sendErrorResponse(
205
250
  req,
206
251
  res,
@@ -349,6 +394,63 @@ export default class GitHubAPI {
349
394
 
350
395
  logger.debug(`Received GitHub webhook event: ${event}`);
351
396
 
397
+ // Handle installation events - specifically when the app is uninstalled
398
+ if (event === "installation") {
399
+ const action: string | undefined = (req.body as JSONObject)?.[
400
+ "action"
401
+ ]?.toString();
402
+ const installationId: string | undefined = (
403
+ (req.body as JSONObject)?.["installation"] as JSONObject
404
+ )?.["id"]?.toString();
405
+
406
+ if (action === "deleted" && installationId) {
407
+ logger.info(
408
+ `GitHub App installation ${installationId} was deleted. Clearing from database...`,
409
+ );
410
+
411
+ try {
412
+ // Clear the installation ID from any projects that have it
413
+ await ProjectService.updateBy({
414
+ query: {
415
+ gitHubAppInstallationId: installationId,
416
+ },
417
+ data: {
418
+ gitHubAppInstallationId: null as unknown as string,
419
+ },
420
+ limit: 1000,
421
+ skip: 0,
422
+ props: {
423
+ isRoot: true,
424
+ },
425
+ });
426
+
427
+ // Also clear from any code repositories that have this installation ID
428
+ await CodeRepositoryService.updateBy({
429
+ query: {
430
+ gitHubAppInstallationId: installationId,
431
+ },
432
+ data: {
433
+ gitHubAppInstallationId: null as unknown as string,
434
+ },
435
+ limit: 10000,
436
+ skip: 0,
437
+ props: {
438
+ isRoot: true,
439
+ },
440
+ });
441
+
442
+ logger.info(
443
+ `Successfully cleared GitHub App installation ${installationId} from database`,
444
+ );
445
+ } catch (clearError) {
446
+ logger.error(
447
+ `Failed to clear GitHub App installation ${installationId} from database:`,
448
+ );
449
+ logger.error(clearError);
450
+ }
451
+ }
452
+ }
453
+
352
454
  /*
353
455
  * Handle different webhook events here
354
456
  * For now, just acknowledge receipt
@@ -397,6 +397,13 @@ export const StatusPageApiClientUrl: URL = new URL(
397
397
  new Route(StatusPageApiRoute.toString()),
398
398
  );
399
399
 
400
+ // Internal URL for server-to-server communication (uses internal Docker hostname)
401
+ export const StatusPageApiInternalUrl: URL = new URL(
402
+ Protocol.HTTP,
403
+ AppApiHostname.toString(),
404
+ new Route(StatusPageApiRoute.toString()),
405
+ );
406
+
400
407
  export const DashboardClientUrl: URL = new URL(
401
408
  HttpProtocol,
402
409
  Host,
@@ -18,6 +18,17 @@ import {
18
18
  import BadDataException from "../../../../Types/Exception/BadDataException";
19
19
  import * as crypto from "crypto";
20
20
 
21
+ /**
22
+ * Error thrown when a GitHub App installation is no longer valid (e.g., uninstalled from GitHub)
23
+ */
24
+ export class GitHubInstallationNotFoundError extends BadDataException {
25
+ public constructor() {
26
+ super(
27
+ "GitHub App installation not found. The app may have been uninstalled from GitHub. Please reconnect with GitHub to reinstall the app.",
28
+ );
29
+ }
30
+ }
31
+
21
32
  export interface GitHubRepository {
22
33
  id: number;
23
34
  name: string;
@@ -335,11 +346,20 @@ export default class GitHubUtil extends HostedCodeRepository {
335
346
  /**
336
347
  * Gets an installation access token for a GitHub App installation
337
348
  * @param installationId - The GitHub App installation ID
349
+ * @param options - Optional configuration for the token
350
+ * @param options.permissions - Specific permissions to request for the token
338
351
  * @returns Installation token and expiration date
339
352
  */
340
353
  @CaptureSpan()
341
354
  public static async getInstallationAccessToken(
342
355
  installationId: string,
356
+ options?: {
357
+ permissions?: {
358
+ contents?: "read" | "write";
359
+ pull_requests?: "read" | "write";
360
+ metadata?: "read";
361
+ };
362
+ },
343
363
  ): Promise<GitHubInstallationToken> {
344
364
  const jwt: string = GitHubUtil.generateAppJWT();
345
365
 
@@ -347,10 +367,17 @@ export default class GitHubUtil extends HostedCodeRepository {
347
367
  `https://api.github.com/app/installations/${installationId}/access_tokens`,
348
368
  );
349
369
 
370
+ // Build request data with optional permissions
371
+ const requestData: JSONObject = {};
372
+
373
+ if (options?.permissions) {
374
+ requestData["permissions"] = options.permissions;
375
+ }
376
+
350
377
  const result: HTTPErrorResponse | HTTPResponse<JSONObject> = await API.post(
351
378
  {
352
379
  url: url,
353
- data: {},
380
+ data: requestData,
354
381
  headers: {
355
382
  Authorization: `Bearer ${jwt}`,
356
383
  Accept: "application/vnd.github+json",
@@ -360,6 +387,31 @@ export default class GitHubUtil extends HostedCodeRepository {
360
387
  );
361
388
 
362
389
  if (result instanceof HTTPErrorResponse) {
390
+ // Check if this is a permission error and provide helpful message
391
+ const errorMessage: string =
392
+ (result.data as JSONObject)?.["message"]?.toString() || "";
393
+
394
+ // Check if the installation is not found (404) - this means the app was uninstalled from GitHub
395
+ if (result.statusCode === 404) {
396
+ logger.error(
397
+ `GitHub App installation not found (ID: ${installationId}). ` +
398
+ `The app may have been uninstalled from GitHub. User needs to reinstall the app.`,
399
+ );
400
+ throw new GitHubInstallationNotFoundError();
401
+ }
402
+
403
+ if (
404
+ errorMessage.includes("permissions") ||
405
+ result.statusCode === 403 ||
406
+ result.statusCode === 422
407
+ ) {
408
+ logger.error(
409
+ `GitHub App permission error: ${errorMessage}. ` +
410
+ `Please ensure the GitHub App is configured with the required permissions ` +
411
+ `(contents: write, pull_requests: write, metadata: read) in the GitHub App settings.`,
412
+ );
413
+ }
414
+
363
415
  throw result;
364
416
  }
365
417
 
@@ -141,6 +141,8 @@ enum IconProp {
141
141
  ExclaimationCircle = "ExclaimationCircle",
142
142
  WhatsApp = "WhatsApp",
143
143
  Brain = "Brain",
144
+ FlowDiagram = "FlowDiagram",
145
+ GitHub = "GitHub",
144
146
  }
145
147
 
146
148
  export default IconProp;
@@ -692,6 +692,14 @@ const Icon: FunctionComponent<ComponentProps> = ({
692
692
  clipRule="evenodd"
693
693
  />,
694
694
  );
695
+ } else if (icon === IconProp.GitHub) {
696
+ return getSvgWrapper(
697
+ <path
698
+ fill="currentColor"
699
+ stroke="none"
700
+ d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"
701
+ />,
702
+ );
695
703
  } else if (icon === IconProp.ChevronRight) {
696
704
  return getSvgWrapper(
697
705
  <path
@@ -1298,6 +1306,19 @@ const Icon: FunctionComponent<ComponentProps> = ({
1298
1306
  d="M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 00-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 003.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 003.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 00-3.09 3.09zM18.259 8.715L18 9.75l-.259-1.035a3.375 3.375 0 00-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 002.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 002.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 00-2.456 2.456zM16.894 20.567L16.5 21.75l-.394-1.183a2.25 2.25 0 00-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 001.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 001.423 1.423l1.183.394-1.183.394a2.25 2.25 0 00-1.423 1.423z"
1299
1307
  />,
1300
1308
  );
1309
+ } else if (icon === IconProp.FlowDiagram) {
1310
+ // Flow diagram icon matching home page workflows - two boxes at top, one at bottom, connected
1311
+ return getSvgWrapper(
1312
+ <>
1313
+ <rect x="3" y="3" width="6" height="4" rx="1" strokeWidth="1.5" />
1314
+ <rect x="15" y="3" width="6" height="4" rx="1" strokeWidth="1.5" />
1315
+ <rect x="9" y="17" width="6" height="4" rx="1" strokeWidth="1.5" />
1316
+ <path
1317
+ strokeLinecap="round"
1318
+ d="M6 7v3a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7M12 12v5"
1319
+ />
1320
+ </>,
1321
+ );
1301
1322
  }
1302
1323
 
1303
1324
  return <></>;
@@ -29,6 +29,7 @@ export interface MoreMenuItem {
29
29
  description: string;
30
30
  route: Route;
31
31
  icon: IconProp;
32
+ iconColor?: string; // Tailwind color class like "bg-blue-500"
32
33
  }
33
34
 
34
35
  export interface ComponentProps {
@@ -277,7 +278,7 @@ const Navbar: FunctionComponent<ComponentProps> = (
277
278
  {isMoreMenuVisible &&
278
279
  (props.moreMenuFooter ? (
279
280
  <NavBarMenu footer={props.moreMenuFooter}>
280
- {props.moreMenuItems.map((item: any) => {
281
+ {props.moreMenuItems.map((item: MoreMenuItem) => {
281
282
  return (
282
283
  <NavBarMenuItem
283
284
  key={item.title}
@@ -285,6 +286,7 @@ const Navbar: FunctionComponent<ComponentProps> = (
285
286
  description={item.description}
286
287
  route={item.route}
287
288
  icon={item.icon}
289
+ iconColor={item.iconColor}
288
290
  onClick={forceHideMoreMenu}
289
291
  />
290
292
  );
@@ -292,7 +294,7 @@ const Navbar: FunctionComponent<ComponentProps> = (
292
294
  </NavBarMenu>
293
295
  ) : (
294
296
  <NavBarMenu>
295
- {props.moreMenuItems.map((item: any) => {
297
+ {props.moreMenuItems.map((item: MoreMenuItem) => {
296
298
  return (
297
299
  <NavBarMenuItem
298
300
  key={item.title}
@@ -300,6 +302,7 @@ const Navbar: FunctionComponent<ComponentProps> = (
300
302
  description={item.description}
301
303
  route={item.route}
302
304
  icon={item.icon}
305
+ iconColor={item.iconColor}
303
306
  onClick={forceHideMoreMenu}
304
307
  />
305
308
  );
@@ -1,7 +1,14 @@
1
1
  import Link from "../Link/Link";
2
+ import Icon from "../Icon/Icon";
3
+ import IconProp from "../../../Types/Icon/IconProp";
2
4
  import URL from "../../../Types/API/URL";
3
5
  import React, { FunctionComponent, ReactElement } from "react";
4
6
 
7
+ export interface MenuSection {
8
+ title: string;
9
+ children: ReactElement | Array<ReactElement>;
10
+ }
11
+
5
12
  export interface ComponentProps {
6
13
  children: ReactElement | Array<ReactElement>;
7
14
  footer?: {
@@ -11,7 +18,7 @@ export interface ComponentProps {
11
18
  };
12
19
  }
13
20
 
14
- const NavBarItem: FunctionComponent<ComponentProps> = (
21
+ const NavBarMenu: FunctionComponent<ComponentProps> = (
15
22
  props: ComponentProps,
16
23
  ): ReactElement => {
17
24
  let children: Array<ReactElement>;
@@ -20,27 +27,54 @@ const NavBarItem: FunctionComponent<ComponentProps> = (
20
27
  } else {
21
28
  children = props.children;
22
29
  }
30
+
31
+ // Calculate number of columns based on items count
32
+ const itemCount: number = children.length;
33
+ const columnClass: string =
34
+ itemCount <= 4
35
+ ? "lg:grid-cols-2"
36
+ : itemCount <= 6
37
+ ? "lg:grid-cols-3"
38
+ : "lg:grid-cols-3";
39
+ const maxWidthClass: string =
40
+ itemCount <= 4
41
+ ? "lg:max-w-xl"
42
+ : itemCount <= 6
43
+ ? "lg:max-w-2xl"
44
+ : "lg:max-w-3xl";
45
+
23
46
  return (
24
- <div className="absolute left-1/3 z-10 mt-10 w-screen max-w-md -translate-x-1/2 transform px-2 sm:px-0 lg:max-w-3xl">
25
- <div className="overflow-hidden rounded-lg shadow-lg ring-1 ring-black ring-opacity-5">
26
- <div className="relative grid gap-6 bg-white px-5 py-6 sm:gap-8 sm:p-8 lg:grid-cols-2">
47
+ <div
48
+ className={`absolute left-1/2 z-10 mt-8 w-screen max-w-md -translate-x-1/2 transform px-2 sm:px-0 ${maxWidthClass}`}
49
+ >
50
+ <div className="overflow-hidden rounded-2xl shadow-xl ring-1 ring-black ring-opacity-5 bg-white">
51
+ {/* Menu Items */}
52
+ <div className={`relative grid gap-1 p-4 ${columnClass}`}>
27
53
  {children}
28
54
  </div>
55
+
56
+ {/* Footer */}
29
57
  {props.footer && (
30
- <div className="bg-gray-50 p-5 sm:p-8">
58
+ <div className="border-t border-gray-100 bg-gray-50 px-4 py-4">
31
59
  <Link
32
60
  to={props.footer.link}
33
61
  openInNewTab={true}
34
- className="-m-3 flow-root rounded-md p-3 transition duration-150 ease-in-out hover:bg-gray-100"
62
+ className="group flex items-center gap-3 rounded-lg p-2.5 -m-2 transition-colors hover:bg-gray-100"
35
63
  >
36
- <span className="flex items-center">
37
- <span className="text-base font-medium text-gray-900">
64
+ <div className="flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-lg bg-gray-100 ring-1 ring-gray-200 group-hover:bg-gray-200 group-hover:ring-gray-300 transition-all">
65
+ <Icon
66
+ icon={IconProp.GitHub}
67
+ className="h-5 w-5 text-gray-700"
68
+ />
69
+ </div>
70
+ <div className="flex-1 min-w-0 text-left">
71
+ <p className="text-sm font-medium text-gray-900">
38
72
  {props.footer.title}
39
- </span>
40
- </span>
41
- <span className="mt-1 block text-sm text-gray-500 text-left">
42
- {props.footer.description}
43
- </span>
73
+ </p>
74
+ <p className="text-xs text-gray-500">
75
+ {props.footer.description}
76
+ </p>
77
+ </div>
44
78
  </Link>
45
79
  </div>
46
80
  )}
@@ -49,4 +83,4 @@ const NavBarItem: FunctionComponent<ComponentProps> = (
49
83
  );
50
84
  };
51
85
 
52
- export default NavBarItem;
86
+ export default NavBarMenu;
@@ -10,24 +10,104 @@ export interface ComponentProps {
10
10
  icon: IconProp;
11
11
  description: string;
12
12
  onClick: () => void;
13
+ iconColor?: string; // Tailwind color name like "blue", "purple", "amber"
13
14
  }
14
15
 
15
16
  const NavBarMenuItem: FunctionComponent<ComponentProps> = (
16
17
  props: ComponentProps,
17
18
  ): ReactElement => {
19
+ // Default to indigo if no color specified
20
+ const colorName: string = props.iconColor || "indigo";
21
+
22
+ // Map color names to their respective Tailwind classes
23
+ const colorClasses: Record<
24
+ string,
25
+ { bg: string; ring: string; hoverBg: string; hoverRing: string }
26
+ > = {
27
+ purple: {
28
+ bg: "bg-purple-50",
29
+ ring: "ring-purple-200",
30
+ hoverBg: "hover:bg-purple-50",
31
+ hoverRing: "group-hover:ring-purple-300",
32
+ },
33
+ blue: {
34
+ bg: "bg-blue-50",
35
+ ring: "ring-blue-200",
36
+ hoverBg: "hover:bg-blue-50",
37
+ hoverRing: "group-hover:ring-blue-300",
38
+ },
39
+ gray: {
40
+ bg: "bg-gray-100",
41
+ ring: "ring-gray-300",
42
+ hoverBg: "hover:bg-gray-50",
43
+ hoverRing: "group-hover:ring-gray-400",
44
+ },
45
+ amber: {
46
+ bg: "bg-amber-50",
47
+ ring: "ring-amber-200",
48
+ hoverBg: "hover:bg-amber-50",
49
+ hoverRing: "group-hover:ring-amber-300",
50
+ },
51
+ green: {
52
+ bg: "bg-green-50",
53
+ ring: "ring-green-200",
54
+ hoverBg: "hover:bg-green-50",
55
+ hoverRing: "group-hover:ring-green-300",
56
+ },
57
+ cyan: {
58
+ bg: "bg-cyan-50",
59
+ ring: "ring-cyan-200",
60
+ hoverBg: "hover:bg-cyan-50",
61
+ hoverRing: "group-hover:ring-cyan-300",
62
+ },
63
+ slate: {
64
+ bg: "bg-slate-100",
65
+ ring: "ring-slate-300",
66
+ hoverBg: "hover:bg-slate-50",
67
+ hoverRing: "group-hover:ring-slate-400",
68
+ },
69
+ indigo: {
70
+ bg: "bg-indigo-50",
71
+ ring: "ring-indigo-200",
72
+ hoverBg: "hover:bg-indigo-50",
73
+ hoverRing: "group-hover:ring-indigo-300",
74
+ },
75
+ rose: {
76
+ bg: "bg-rose-50",
77
+ ring: "ring-rose-200",
78
+ hoverBg: "hover:bg-rose-50",
79
+ hoverRing: "group-hover:ring-rose-300",
80
+ },
81
+ violet: {
82
+ bg: "bg-violet-50",
83
+ ring: "ring-violet-200",
84
+ hoverBg: "hover:bg-violet-50",
85
+ hoverRing: "group-hover:ring-violet-300",
86
+ },
87
+ };
88
+
89
+ const colors: {
90
+ bg: string;
91
+ ring: string;
92
+ hoverBg: string;
93
+ hoverRing: string;
94
+ } = colorClasses[colorName] || colorClasses["indigo"]!;
95
+
18
96
  return (
19
97
  <div className="dropdown">
20
98
  <Link
21
99
  onClick={props.onClick}
22
100
  to={props.route}
23
- className="-m-3 text-left flex items-start rounded-lg p-3 transition duration-150 ease-in-out hover:bg-gray-50"
101
+ className={`group flex items-center gap-3 rounded-lg p-2.5 transition-colors ${colors.hoverBg}`}
24
102
  >
25
- <div className="flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-md bg-indigo-500 text-white sm:h-12 sm:w-12">
26
- <Icon icon={props.icon} className="h-6 w-6" />
103
+ <div
104
+ className={`flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-lg ${colors.bg} ring-1 ${colors.ring} ${colors.hoverRing} transition-all`}
105
+ >
106
+ <Icon icon={props.icon} className="h-4 w-4 text-gray-600" />
27
107
  </div>
28
- <div className="ml-4">
29
- <p className="text-base font-medium text-gray-900">{props.title}</p>
30
- <p className="text-sm text-gray-500">{props.description}</p>
108
+ <div className="flex-1 min-w-0 text-left">
109
+ <p className="text-sm font-medium text-gray-900">{props.title}</p>
110
+ <p className="text-xs text-gray-500">{props.description}</p>
31
111
  </div>
32
112
  </Link>
33
113
  </div>
@@ -266,8 +266,17 @@ export default class AIAgentDataAPI {
266
266
  if (!codeRepository.gitHubAppInstallationId) {
267
267
  return Response.sendErrorResponse(req, res, new BadDataException("No GitHub App installation ID found for this repository"));
268
268
  }
269
- // Generate GitHub installation access token
270
- const tokenData = await GitHubUtil.getInstallationAccessToken(codeRepository.gitHubAppInstallationId);
269
+ /*
270
+ * Generate GitHub installation access token with write permissions
271
+ * Required for AI Agent to push branches and create pull requests
272
+ */
273
+ const tokenData = await GitHubUtil.getInstallationAccessToken(codeRepository.gitHubAppInstallationId, {
274
+ permissions: {
275
+ contents: "write", // Required for pushing branches
276
+ pull_requests: "write", // Required for creating PRs
277
+ metadata: "read", // Required for reading repository metadata
278
+ },
279
+ });
271
280
  const repositoryUrl = `https://github.com/${codeRepository.organizationName}/${codeRepository.repositoryName}.git`;
272
281
  logger.debug(`Generated access token for repository ${codeRepository.organizationName}/${codeRepository.repositoryName}`);
273
282
  return Response.sendJsonObjectResponse(req, res, {
@@ -1 +1 @@
1
- {"version":3,"file":"AIAgentDataAPI.js","sourceRoot":"","sources":["../../../../Server/API/AIAgentDataAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIAgentDataAPI.js","sourceRoot":"","sources":["../../../../Server/API/AIAgentDataAPI.ts"],"names":[],"mappings":"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"}