Create dashboard

Creates a dashboard. **[Permissions](#permissions) required:** None.

Script jira Verified

by hugo697 ยท 11/2/2023

The script

Submitted by hugo697 Typescript (fetch-only)
Verified 396 days ago
1
type Jira = {
2
  username: string;
3
  password: string;
4
  domain: string;
5
};
6
/**
7
 * Create dashboard
8
 * Creates a dashboard.
9

10
**[Permissions](#permissions) required:** None.
11
 */
12
export async function main(
13
  auth: Jira,
14
  body: {
15
    description?: string;
16
    editPermissions: {
17
      group?: { groupId?: string; name?: string; self?: string };
18
      id?: number;
19
      project?: {
20
        archived?: boolean;
21
        archivedBy?: {
22
          accountId?: string;
23
          accountType?: "atlassian" | "app" | "customer" | "unknown";
24
          active?: boolean;
25
          applicationRoles?: {
26
            callback?: {};
27
            items?: {
28
              defaultGroups?: string[];
29
              defaultGroupsDetails?: {
30
                groupId?: string;
31
                name?: string;
32
                self?: string;
33
              }[];
34
              defined?: boolean;
35
              groupDetails?: {
36
                groupId?: string;
37
                name?: string;
38
                self?: string;
39
              }[];
40
              groups?: string[];
41
              hasUnlimitedSeats?: boolean;
42
              key?: string;
43
              name?: string;
44
              numberOfSeats?: number;
45
              platform?: boolean;
46
              remainingSeats?: number;
47
              selectedByDefault?: boolean;
48
              userCount?: number;
49
              userCountDescription?: string;
50
            }[];
51
            "max-results"?: number;
52
            pagingCallback?: {};
53
            size?: number;
54
          };
55
          avatarUrls?: {
56
            "16x16"?: string;
57
            "24x24"?: string;
58
            "32x32"?: string;
59
            "48x48"?: string;
60
          };
61
          displayName?: string;
62
          emailAddress?: string;
63
          expand?: string;
64
          groups?: {
65
            callback?: {};
66
            items?: { groupId?: string; name?: string; self?: string }[];
67
            "max-results"?: number;
68
            pagingCallback?: {};
69
            size?: number;
70
          };
71
          key?: string;
72
          locale?: string;
73
          name?: string;
74
          self?: string;
75
          timeZone?: string;
76
        };
77
        archivedDate?: string;
78
        assigneeType?: "PROJECT_LEAD" | "UNASSIGNED";
79
        avatarUrls?: {
80
          "16x16"?: string;
81
          "24x24"?: string;
82
          "32x32"?: string;
83
          "48x48"?: string;
84
        };
85
        components?: {
86
          ari?: string;
87
          assignee?: {
88
            accountId?: string;
89
            accountType?: "atlassian" | "app" | "customer" | "unknown";
90
            active?: boolean;
91
            applicationRoles?: {
92
              callback?: {};
93
              items?: {
94
                defaultGroups?: string[];
95
                defaultGroupsDetails?: {
96
                  groupId?: string;
97
                  name?: string;
98
                  self?: string;
99
                }[];
100
                defined?: boolean;
101
                groupDetails?: {
102
                  groupId?: string;
103
                  name?: string;
104
                  self?: string;
105
                }[];
106
                groups?: string[];
107
                hasUnlimitedSeats?: boolean;
108
                key?: string;
109
                name?: string;
110
                numberOfSeats?: number;
111
                platform?: boolean;
112
                remainingSeats?: number;
113
                selectedByDefault?: boolean;
114
                userCount?: number;
115
                userCountDescription?: string;
116
              }[];
117
              "max-results"?: number;
118
              pagingCallback?: {};
119
              size?: number;
120
            };
121
            avatarUrls?: {
122
              "16x16"?: string;
123
              "24x24"?: string;
124
              "32x32"?: string;
125
              "48x48"?: string;
126
            };
127
            displayName?: string;
128
            emailAddress?: string;
129
            expand?: string;
130
            groups?: {
131
              callback?: {};
132
              items?: { groupId?: string; name?: string; self?: string }[];
133
              "max-results"?: number;
134
              pagingCallback?: {};
135
              size?: number;
136
            };
137
            key?: string;
138
            locale?: string;
139
            name?: string;
140
            self?: string;
141
            timeZone?: string;
142
          };
143
          assigneeType?:
144
            | "PROJECT_DEFAULT"
145
            | "COMPONENT_LEAD"
146
            | "PROJECT_LEAD"
147
            | "UNASSIGNED";
148
          description?: string;
149
          id?: string;
150
          isAssigneeTypeValid?: boolean;
151
          lead?: {
152
            accountId?: string;
153
            accountType?: "atlassian" | "app" | "customer" | "unknown";
154
            active?: boolean;
155
            applicationRoles?: {
156
              callback?: {};
157
              items?: {
158
                defaultGroups?: string[];
159
                defaultGroupsDetails?: {
160
                  groupId?: string;
161
                  name?: string;
162
                  self?: string;
163
                }[];
164
                defined?: boolean;
165
                groupDetails?: {
166
                  groupId?: string;
167
                  name?: string;
168
                  self?: string;
169
                }[];
170
                groups?: string[];
171
                hasUnlimitedSeats?: boolean;
172
                key?: string;
173
                name?: string;
174
                numberOfSeats?: number;
175
                platform?: boolean;
176
                remainingSeats?: number;
177
                selectedByDefault?: boolean;
178
                userCount?: number;
179
                userCountDescription?: string;
180
              }[];
181
              "max-results"?: number;
182
              pagingCallback?: {};
183
              size?: number;
184
            };
185
            avatarUrls?: {
186
              "16x16"?: string;
187
              "24x24"?: string;
188
              "32x32"?: string;
189
              "48x48"?: string;
190
            };
191
            displayName?: string;
192
            emailAddress?: string;
193
            expand?: string;
194
            groups?: {
195
              callback?: {};
196
              items?: { groupId?: string; name?: string; self?: string }[];
197
              "max-results"?: number;
198
              pagingCallback?: {};
199
              size?: number;
200
            };
201
            key?: string;
202
            locale?: string;
203
            name?: string;
204
            self?: string;
205
            timeZone?: string;
206
          };
207
          leadAccountId?: string;
208
          leadUserName?: string;
209
          metadata?: { [k: string]: string };
210
          name?: string;
211
          project?: string;
212
          projectId?: number;
213
          realAssignee?: {
214
            accountId?: string;
215
            accountType?: "atlassian" | "app" | "customer" | "unknown";
216
            active?: boolean;
217
            applicationRoles?: {
218
              callback?: {};
219
              items?: {
220
                defaultGroups?: string[];
221
                defaultGroupsDetails?: {
222
                  groupId?: string;
223
                  name?: string;
224
                  self?: string;
225
                }[];
226
                defined?: boolean;
227
                groupDetails?: {
228
                  groupId?: string;
229
                  name?: string;
230
                  self?: string;
231
                }[];
232
                groups?: string[];
233
                hasUnlimitedSeats?: boolean;
234
                key?: string;
235
                name?: string;
236
                numberOfSeats?: number;
237
                platform?: boolean;
238
                remainingSeats?: number;
239
                selectedByDefault?: boolean;
240
                userCount?: number;
241
                userCountDescription?: string;
242
              }[];
243
              "max-results"?: number;
244
              pagingCallback?: {};
245
              size?: number;
246
            };
247
            avatarUrls?: {
248
              "16x16"?: string;
249
              "24x24"?: string;
250
              "32x32"?: string;
251
              "48x48"?: string;
252
            };
253
            displayName?: string;
254
            emailAddress?: string;
255
            expand?: string;
256
            groups?: {
257
              callback?: {};
258
              items?: { groupId?: string; name?: string; self?: string }[];
259
              "max-results"?: number;
260
              pagingCallback?: {};
261
              size?: number;
262
            };
263
            key?: string;
264
            locale?: string;
265
            name?: string;
266
            self?: string;
267
            timeZone?: string;
268
          };
269
          realAssigneeType?:
270
            | "PROJECT_DEFAULT"
271
            | "COMPONENT_LEAD"
272
            | "PROJECT_LEAD"
273
            | "UNASSIGNED";
274
          self?: string;
275
        }[];
276
        deleted?: boolean;
277
        deletedBy?: {
278
          accountId?: string;
279
          accountType?: "atlassian" | "app" | "customer" | "unknown";
280
          active?: boolean;
281
          applicationRoles?: {
282
            callback?: {};
283
            items?: {
284
              defaultGroups?: string[];
285
              defaultGroupsDetails?: {
286
                groupId?: string;
287
                name?: string;
288
                self?: string;
289
              }[];
290
              defined?: boolean;
291
              groupDetails?: {
292
                groupId?: string;
293
                name?: string;
294
                self?: string;
295
              }[];
296
              groups?: string[];
297
              hasUnlimitedSeats?: boolean;
298
              key?: string;
299
              name?: string;
300
              numberOfSeats?: number;
301
              platform?: boolean;
302
              remainingSeats?: number;
303
              selectedByDefault?: boolean;
304
              userCount?: number;
305
              userCountDescription?: string;
306
            }[];
307
            "max-results"?: number;
308
            pagingCallback?: {};
309
            size?: number;
310
          };
311
          avatarUrls?: {
312
            "16x16"?: string;
313
            "24x24"?: string;
314
            "32x32"?: string;
315
            "48x48"?: string;
316
          };
317
          displayName?: string;
318
          emailAddress?: string;
319
          expand?: string;
320
          groups?: {
321
            callback?: {};
322
            items?: { groupId?: string; name?: string; self?: string }[];
323
            "max-results"?: number;
324
            pagingCallback?: {};
325
            size?: number;
326
          };
327
          key?: string;
328
          locale?: string;
329
          name?: string;
330
          self?: string;
331
          timeZone?: string;
332
        };
333
        deletedDate?: string;
334
        description?: string;
335
        email?: string;
336
        expand?: string;
337
        favourite?: boolean;
338
        id?: string;
339
        insight?: { lastIssueUpdateTime?: string; totalIssueCount?: number };
340
        isPrivate?: boolean;
341
        issueTypeHierarchy?: {
342
          baseLevelId?: number;
343
          levels?: {
344
            aboveLevelId?: number;
345
            belowLevelId?: number;
346
            externalUuid?: string;
347
            hierarchyLevelNumber?: number;
348
            id?: number;
349
            issueTypeIds?: number[];
350
            level?: number;
351
            name?: string;
352
            projectConfigurationId?: number;
353
          }[];
354
        };
355
        issueTypes?: {
356
          avatarId?: number;
357
          description?: string;
358
          entityId?: string;
359
          hierarchyLevel?: number;
360
          iconUrl?: string;
361
          id?: string;
362
          name?: string;
363
          scope?: {
364
            project?: {
365
              avatarUrls?: {
366
                "16x16"?: string;
367
                "24x24"?: string;
368
                "32x32"?: string;
369
                "48x48"?: string;
370
              };
371
              id?: string;
372
              key?: string;
373
              name?: string;
374
              projectCategory?: {
375
                description?: string;
376
                id?: string;
377
                name?: string;
378
                self?: string;
379
              };
380
              projectTypeKey?: "software" | "service_desk" | "business";
381
              self?: string;
382
              simplified?: boolean;
383
            };
384
            type?: "PROJECT" | "TEMPLATE";
385
            [k: string]: unknown;
386
          };
387
          self?: string;
388
          subtask?: boolean;
389
        }[];
390
        key?: string;
391
        landingPageInfo?: {
392
          attributes?: { [k: string]: string };
393
          boardId?: number;
394
          boardName?: string;
395
          projectKey?: string;
396
          projectType?: string;
397
          queueCategory?: string;
398
          queueId?: number;
399
          queueName?: string;
400
          simpleBoard?: boolean;
401
          simplified?: boolean;
402
          url?: string;
403
        };
404
        lead?: {
405
          accountId?: string;
406
          accountType?: "atlassian" | "app" | "customer" | "unknown";
407
          active?: boolean;
408
          applicationRoles?: {
409
            callback?: {};
410
            items?: {
411
              defaultGroups?: string[];
412
              defaultGroupsDetails?: {
413
                groupId?: string;
414
                name?: string;
415
                self?: string;
416
              }[];
417
              defined?: boolean;
418
              groupDetails?: {
419
                groupId?: string;
420
                name?: string;
421
                self?: string;
422
              }[];
423
              groups?: string[];
424
              hasUnlimitedSeats?: boolean;
425
              key?: string;
426
              name?: string;
427
              numberOfSeats?: number;
428
              platform?: boolean;
429
              remainingSeats?: number;
430
              selectedByDefault?: boolean;
431
              userCount?: number;
432
              userCountDescription?: string;
433
            }[];
434
            "max-results"?: number;
435
            pagingCallback?: {};
436
            size?: number;
437
          };
438
          avatarUrls?: {
439
            "16x16"?: string;
440
            "24x24"?: string;
441
            "32x32"?: string;
442
            "48x48"?: string;
443
          };
444
          displayName?: string;
445
          emailAddress?: string;
446
          expand?: string;
447
          groups?: {
448
            callback?: {};
449
            items?: { groupId?: string; name?: string; self?: string }[];
450
            "max-results"?: number;
451
            pagingCallback?: {};
452
            size?: number;
453
          };
454
          key?: string;
455
          locale?: string;
456
          name?: string;
457
          self?: string;
458
          timeZone?: string;
459
        };
460
        name?: string;
461
        permissions?: { canEdit?: boolean };
462
        projectCategory?: {
463
          description?: string;
464
          id?: string;
465
          name?: string;
466
          self?: string;
467
        };
468
        projectTypeKey?: "software" | "service_desk" | "business";
469
        properties?: { [k: string]: { [k: string]: unknown } };
470
        retentionTillDate?: string;
471
        roles?: { [k: string]: string };
472
        self?: string;
473
        simplified?: boolean;
474
        style?: "classic" | "next-gen";
475
        url?: string;
476
        uuid?: string;
477
        versions?: {
478
          approvers?: {
479
            accountId?: string;
480
            declineReason?: string;
481
            description?: string;
482
            status?: string;
483
            [k: string]: unknown;
484
          }[];
485
          archived?: boolean;
486
          description?: string;
487
          driver?: string;
488
          expand?: string;
489
          id?: string;
490
          issuesStatusForFixVersion?: {
491
            done?: number;
492
            inProgress?: number;
493
            toDo?: number;
494
            unmapped?: number;
495
            [k: string]: unknown;
496
          };
497
          moveUnfixedIssuesTo?: string;
498
          name?: string;
499
          operations?: {
500
            href?: string;
501
            iconClass?: string;
502
            id?: string;
503
            label?: string;
504
            styleClass?: string;
505
            title?: string;
506
            weight?: number;
507
          }[];
508
          overdue?: boolean;
509
          project?: string;
510
          projectId?: number;
511
          releaseDate?: string;
512
          released?: boolean;
513
          self?: string;
514
          startDate?: string;
515
          userReleaseDate?: string;
516
          userStartDate?: string;
517
        }[];
518
      };
519
      role?: {
520
        actors?: {
521
          actorGroup?: {
522
            displayName?: string;
523
            groupId?: string;
524
            name?: string;
525
          };
526
          actorUser?: { accountId?: string };
527
          avatarUrl?: string;
528
          displayName?: string;
529
          id?: number;
530
          name?: string;
531
          type?: "atlassian-group-role-actor" | "atlassian-user-role-actor";
532
        }[];
533
        admin?: boolean;
534
        currentUserRole?: boolean;
535
        default?: boolean;
536
        description?: string;
537
        id?: number;
538
        name?: string;
539
        roleConfigurable?: boolean;
540
        scope?: {
541
          project?: {
542
            avatarUrls?: {
543
              "16x16"?: string;
544
              "24x24"?: string;
545
              "32x32"?: string;
546
              "48x48"?: string;
547
            };
548
            id?: string;
549
            key?: string;
550
            name?: string;
551
            projectCategory?: {
552
              description?: string;
553
              id?: string;
554
              name?: string;
555
              self?: string;
556
            };
557
            projectTypeKey?: "software" | "service_desk" | "business";
558
            self?: string;
559
            simplified?: boolean;
560
          };
561
          type?: "PROJECT" | "TEMPLATE";
562
          [k: string]: unknown;
563
        };
564
        self?: string;
565
        translatedName?: string;
566
      };
567
      type:
568
        | "user"
569
        | "group"
570
        | "project"
571
        | "projectRole"
572
        | "global"
573
        | "loggedin"
574
        | "authenticated"
575
        | "project-unknown";
576
      user?: {
577
        accountId?: string;
578
        active?: boolean;
579
        avatarUrls?: {
580
          "16x16"?: string;
581
          "24x24"?: string;
582
          "32x32"?: string;
583
          "48x48"?: string;
584
        };
585
        displayName?: string;
586
        key?: string;
587
        name?: string;
588
        self?: string;
589
      };
590
    }[];
591
    name: string;
592
    sharePermissions: {
593
      group?: { groupId?: string; name?: string; self?: string };
594
      id?: number;
595
      project?: {
596
        archived?: boolean;
597
        archivedBy?: {
598
          accountId?: string;
599
          accountType?: "atlassian" | "app" | "customer" | "unknown";
600
          active?: boolean;
601
          applicationRoles?: {
602
            callback?: {};
603
            items?: {
604
              defaultGroups?: string[];
605
              defaultGroupsDetails?: {
606
                groupId?: string;
607
                name?: string;
608
                self?: string;
609
              }[];
610
              defined?: boolean;
611
              groupDetails?: {
612
                groupId?: string;
613
                name?: string;
614
                self?: string;
615
              }[];
616
              groups?: string[];
617
              hasUnlimitedSeats?: boolean;
618
              key?: string;
619
              name?: string;
620
              numberOfSeats?: number;
621
              platform?: boolean;
622
              remainingSeats?: number;
623
              selectedByDefault?: boolean;
624
              userCount?: number;
625
              userCountDescription?: string;
626
            }[];
627
            "max-results"?: number;
628
            pagingCallback?: {};
629
            size?: number;
630
          };
631
          avatarUrls?: {
632
            "16x16"?: string;
633
            "24x24"?: string;
634
            "32x32"?: string;
635
            "48x48"?: string;
636
          };
637
          displayName?: string;
638
          emailAddress?: string;
639
          expand?: string;
640
          groups?: {
641
            callback?: {};
642
            items?: { groupId?: string; name?: string; self?: string }[];
643
            "max-results"?: number;
644
            pagingCallback?: {};
645
            size?: number;
646
          };
647
          key?: string;
648
          locale?: string;
649
          name?: string;
650
          self?: string;
651
          timeZone?: string;
652
        };
653
        archivedDate?: string;
654
        assigneeType?: "PROJECT_LEAD" | "UNASSIGNED";
655
        avatarUrls?: {
656
          "16x16"?: string;
657
          "24x24"?: string;
658
          "32x32"?: string;
659
          "48x48"?: string;
660
        };
661
        components?: {
662
          ari?: string;
663
          assignee?: {
664
            accountId?: string;
665
            accountType?: "atlassian" | "app" | "customer" | "unknown";
666
            active?: boolean;
667
            applicationRoles?: {
668
              callback?: {};
669
              items?: {
670
                defaultGroups?: string[];
671
                defaultGroupsDetails?: {
672
                  groupId?: string;
673
                  name?: string;
674
                  self?: string;
675
                }[];
676
                defined?: boolean;
677
                groupDetails?: {
678
                  groupId?: string;
679
                  name?: string;
680
                  self?: string;
681
                }[];
682
                groups?: string[];
683
                hasUnlimitedSeats?: boolean;
684
                key?: string;
685
                name?: string;
686
                numberOfSeats?: number;
687
                platform?: boolean;
688
                remainingSeats?: number;
689
                selectedByDefault?: boolean;
690
                userCount?: number;
691
                userCountDescription?: string;
692
              }[];
693
              "max-results"?: number;
694
              pagingCallback?: {};
695
              size?: number;
696
            };
697
            avatarUrls?: {
698
              "16x16"?: string;
699
              "24x24"?: string;
700
              "32x32"?: string;
701
              "48x48"?: string;
702
            };
703
            displayName?: string;
704
            emailAddress?: string;
705
            expand?: string;
706
            groups?: {
707
              callback?: {};
708
              items?: { groupId?: string; name?: string; self?: string }[];
709
              "max-results"?: number;
710
              pagingCallback?: {};
711
              size?: number;
712
            };
713
            key?: string;
714
            locale?: string;
715
            name?: string;
716
            self?: string;
717
            timeZone?: string;
718
          };
719
          assigneeType?:
720
            | "PROJECT_DEFAULT"
721
            | "COMPONENT_LEAD"
722
            | "PROJECT_LEAD"
723
            | "UNASSIGNED";
724
          description?: string;
725
          id?: string;
726
          isAssigneeTypeValid?: boolean;
727
          lead?: {
728
            accountId?: string;
729
            accountType?: "atlassian" | "app" | "customer" | "unknown";
730
            active?: boolean;
731
            applicationRoles?: {
732
              callback?: {};
733
              items?: {
734
                defaultGroups?: string[];
735
                defaultGroupsDetails?: {
736
                  groupId?: string;
737
                  name?: string;
738
                  self?: string;
739
                }[];
740
                defined?: boolean;
741
                groupDetails?: {
742
                  groupId?: string;
743
                  name?: string;
744
                  self?: string;
745
                }[];
746
                groups?: string[];
747
                hasUnlimitedSeats?: boolean;
748
                key?: string;
749
                name?: string;
750
                numberOfSeats?: number;
751
                platform?: boolean;
752
                remainingSeats?: number;
753
                selectedByDefault?: boolean;
754
                userCount?: number;
755
                userCountDescription?: string;
756
              }[];
757
              "max-results"?: number;
758
              pagingCallback?: {};
759
              size?: number;
760
            };
761
            avatarUrls?: {
762
              "16x16"?: string;
763
              "24x24"?: string;
764
              "32x32"?: string;
765
              "48x48"?: string;
766
            };
767
            displayName?: string;
768
            emailAddress?: string;
769
            expand?: string;
770
            groups?: {
771
              callback?: {};
772
              items?: { groupId?: string; name?: string; self?: string }[];
773
              "max-results"?: number;
774
              pagingCallback?: {};
775
              size?: number;
776
            };
777
            key?: string;
778
            locale?: string;
779
            name?: string;
780
            self?: string;
781
            timeZone?: string;
782
          };
783
          leadAccountId?: string;
784
          leadUserName?: string;
785
          metadata?: { [k: string]: string };
786
          name?: string;
787
          project?: string;
788
          projectId?: number;
789
          realAssignee?: {
790
            accountId?: string;
791
            accountType?: "atlassian" | "app" | "customer" | "unknown";
792
            active?: boolean;
793
            applicationRoles?: {
794
              callback?: {};
795
              items?: {
796
                defaultGroups?: string[];
797
                defaultGroupsDetails?: {
798
                  groupId?: string;
799
                  name?: string;
800
                  self?: string;
801
                }[];
802
                defined?: boolean;
803
                groupDetails?: {
804
                  groupId?: string;
805
                  name?: string;
806
                  self?: string;
807
                }[];
808
                groups?: string[];
809
                hasUnlimitedSeats?: boolean;
810
                key?: string;
811
                name?: string;
812
                numberOfSeats?: number;
813
                platform?: boolean;
814
                remainingSeats?: number;
815
                selectedByDefault?: boolean;
816
                userCount?: number;
817
                userCountDescription?: string;
818
              }[];
819
              "max-results"?: number;
820
              pagingCallback?: {};
821
              size?: number;
822
            };
823
            avatarUrls?: {
824
              "16x16"?: string;
825
              "24x24"?: string;
826
              "32x32"?: string;
827
              "48x48"?: string;
828
            };
829
            displayName?: string;
830
            emailAddress?: string;
831
            expand?: string;
832
            groups?: {
833
              callback?: {};
834
              items?: { groupId?: string; name?: string; self?: string }[];
835
              "max-results"?: number;
836
              pagingCallback?: {};
837
              size?: number;
838
            };
839
            key?: string;
840
            locale?: string;
841
            name?: string;
842
            self?: string;
843
            timeZone?: string;
844
          };
845
          realAssigneeType?:
846
            | "PROJECT_DEFAULT"
847
            | "COMPONENT_LEAD"
848
            | "PROJECT_LEAD"
849
            | "UNASSIGNED";
850
          self?: string;
851
        }[];
852
        deleted?: boolean;
853
        deletedBy?: {
854
          accountId?: string;
855
          accountType?: "atlassian" | "app" | "customer" | "unknown";
856
          active?: boolean;
857
          applicationRoles?: {
858
            callback?: {};
859
            items?: {
860
              defaultGroups?: string[];
861
              defaultGroupsDetails?: {
862
                groupId?: string;
863
                name?: string;
864
                self?: string;
865
              }[];
866
              defined?: boolean;
867
              groupDetails?: {
868
                groupId?: string;
869
                name?: string;
870
                self?: string;
871
              }[];
872
              groups?: string[];
873
              hasUnlimitedSeats?: boolean;
874
              key?: string;
875
              name?: string;
876
              numberOfSeats?: number;
877
              platform?: boolean;
878
              remainingSeats?: number;
879
              selectedByDefault?: boolean;
880
              userCount?: number;
881
              userCountDescription?: string;
882
            }[];
883
            "max-results"?: number;
884
            pagingCallback?: {};
885
            size?: number;
886
          };
887
          avatarUrls?: {
888
            "16x16"?: string;
889
            "24x24"?: string;
890
            "32x32"?: string;
891
            "48x48"?: string;
892
          };
893
          displayName?: string;
894
          emailAddress?: string;
895
          expand?: string;
896
          groups?: {
897
            callback?: {};
898
            items?: { groupId?: string; name?: string; self?: string }[];
899
            "max-results"?: number;
900
            pagingCallback?: {};
901
            size?: number;
902
          };
903
          key?: string;
904
          locale?: string;
905
          name?: string;
906
          self?: string;
907
          timeZone?: string;
908
        };
909
        deletedDate?: string;
910
        description?: string;
911
        email?: string;
912
        expand?: string;
913
        favourite?: boolean;
914
        id?: string;
915
        insight?: { lastIssueUpdateTime?: string; totalIssueCount?: number };
916
        isPrivate?: boolean;
917
        issueTypeHierarchy?: {
918
          baseLevelId?: number;
919
          levels?: {
920
            aboveLevelId?: number;
921
            belowLevelId?: number;
922
            externalUuid?: string;
923
            hierarchyLevelNumber?: number;
924
            id?: number;
925
            issueTypeIds?: number[];
926
            level?: number;
927
            name?: string;
928
            projectConfigurationId?: number;
929
          }[];
930
        };
931
        issueTypes?: {
932
          avatarId?: number;
933
          description?: string;
934
          entityId?: string;
935
          hierarchyLevel?: number;
936
          iconUrl?: string;
937
          id?: string;
938
          name?: string;
939
          scope?: {
940
            project?: {
941
              avatarUrls?: {
942
                "16x16"?: string;
943
                "24x24"?: string;
944
                "32x32"?: string;
945
                "48x48"?: string;
946
              };
947
              id?: string;
948
              key?: string;
949
              name?: string;
950
              projectCategory?: {
951
                description?: string;
952
                id?: string;
953
                name?: string;
954
                self?: string;
955
              };
956
              projectTypeKey?: "software" | "service_desk" | "business";
957
              self?: string;
958
              simplified?: boolean;
959
            };
960
            type?: "PROJECT" | "TEMPLATE";
961
            [k: string]: unknown;
962
          };
963
          self?: string;
964
          subtask?: boolean;
965
        }[];
966
        key?: string;
967
        landingPageInfo?: {
968
          attributes?: { [k: string]: string };
969
          boardId?: number;
970
          boardName?: string;
971
          projectKey?: string;
972
          projectType?: string;
973
          queueCategory?: string;
974
          queueId?: number;
975
          queueName?: string;
976
          simpleBoard?: boolean;
977
          simplified?: boolean;
978
          url?: string;
979
        };
980
        lead?: {
981
          accountId?: string;
982
          accountType?: "atlassian" | "app" | "customer" | "unknown";
983
          active?: boolean;
984
          applicationRoles?: {
985
            callback?: {};
986
            items?: {
987
              defaultGroups?: string[];
988
              defaultGroupsDetails?: {
989
                groupId?: string;
990
                name?: string;
991
                self?: string;
992
              }[];
993
              defined?: boolean;
994
              groupDetails?: {
995
                groupId?: string;
996
                name?: string;
997
                self?: string;
998
              }[];
999
              groups?: string[];
1000
              hasUnlimitedSeats?: boolean;
1001
              key?: string;
1002
              name?: string;
1003
              numberOfSeats?: number;
1004
              platform?: boolean;
1005
              remainingSeats?: number;
1006
              selectedByDefault?: boolean;
1007
              userCount?: number;
1008
              userCountDescription?: string;
1009
            }[];
1010
            "max-results"?: number;
1011
            pagingCallback?: {};
1012
            size?: number;
1013
          };
1014
          avatarUrls?: {
1015
            "16x16"?: string;
1016
            "24x24"?: string;
1017
            "32x32"?: string;
1018
            "48x48"?: string;
1019
          };
1020
          displayName?: string;
1021
          emailAddress?: string;
1022
          expand?: string;
1023
          groups?: {
1024
            callback?: {};
1025
            items?: { groupId?: string; name?: string; self?: string }[];
1026
            "max-results"?: number;
1027
            pagingCallback?: {};
1028
            size?: number;
1029
          };
1030
          key?: string;
1031
          locale?: string;
1032
          name?: string;
1033
          self?: string;
1034
          timeZone?: string;
1035
        };
1036
        name?: string;
1037
        permissions?: { canEdit?: boolean };
1038
        projectCategory?: {
1039
          description?: string;
1040
          id?: string;
1041
          name?: string;
1042
          self?: string;
1043
        };
1044
        projectTypeKey?: "software" | "service_desk" | "business";
1045
        properties?: { [k: string]: { [k: string]: unknown } };
1046
        retentionTillDate?: string;
1047
        roles?: { [k: string]: string };
1048
        self?: string;
1049
        simplified?: boolean;
1050
        style?: "classic" | "next-gen";
1051
        url?: string;
1052
        uuid?: string;
1053
        versions?: {
1054
          approvers?: {
1055
            accountId?: string;
1056
            declineReason?: string;
1057
            description?: string;
1058
            status?: string;
1059
            [k: string]: unknown;
1060
          }[];
1061
          archived?: boolean;
1062
          description?: string;
1063
          driver?: string;
1064
          expand?: string;
1065
          id?: string;
1066
          issuesStatusForFixVersion?: {
1067
            done?: number;
1068
            inProgress?: number;
1069
            toDo?: number;
1070
            unmapped?: number;
1071
            [k: string]: unknown;
1072
          };
1073
          moveUnfixedIssuesTo?: string;
1074
          name?: string;
1075
          operations?: {
1076
            href?: string;
1077
            iconClass?: string;
1078
            id?: string;
1079
            label?: string;
1080
            styleClass?: string;
1081
            title?: string;
1082
            weight?: number;
1083
          }[];
1084
          overdue?: boolean;
1085
          project?: string;
1086
          projectId?: number;
1087
          releaseDate?: string;
1088
          released?: boolean;
1089
          self?: string;
1090
          startDate?: string;
1091
          userReleaseDate?: string;
1092
          userStartDate?: string;
1093
        }[];
1094
      };
1095
      role?: {
1096
        actors?: {
1097
          actorGroup?: {
1098
            displayName?: string;
1099
            groupId?: string;
1100
            name?: string;
1101
          };
1102
          actorUser?: { accountId?: string };
1103
          avatarUrl?: string;
1104
          displayName?: string;
1105
          id?: number;
1106
          name?: string;
1107
          type?: "atlassian-group-role-actor" | "atlassian-user-role-actor";
1108
        }[];
1109
        admin?: boolean;
1110
        currentUserRole?: boolean;
1111
        default?: boolean;
1112
        description?: string;
1113
        id?: number;
1114
        name?: string;
1115
        roleConfigurable?: boolean;
1116
        scope?: {
1117
          project?: {
1118
            avatarUrls?: {
1119
              "16x16"?: string;
1120
              "24x24"?: string;
1121
              "32x32"?: string;
1122
              "48x48"?: string;
1123
            };
1124
            id?: string;
1125
            key?: string;
1126
            name?: string;
1127
            projectCategory?: {
1128
              description?: string;
1129
              id?: string;
1130
              name?: string;
1131
              self?: string;
1132
            };
1133
            projectTypeKey?: "software" | "service_desk" | "business";
1134
            self?: string;
1135
            simplified?: boolean;
1136
          };
1137
          type?: "PROJECT" | "TEMPLATE";
1138
          [k: string]: unknown;
1139
        };
1140
        self?: string;
1141
        translatedName?: string;
1142
      };
1143
      type:
1144
        | "user"
1145
        | "group"
1146
        | "project"
1147
        | "projectRole"
1148
        | "global"
1149
        | "loggedin"
1150
        | "authenticated"
1151
        | "project-unknown";
1152
      user?: {
1153
        accountId?: string;
1154
        active?: boolean;
1155
        avatarUrls?: {
1156
          "16x16"?: string;
1157
          "24x24"?: string;
1158
          "32x32"?: string;
1159
          "48x48"?: string;
1160
        };
1161
        displayName?: string;
1162
        key?: string;
1163
        name?: string;
1164
        self?: string;
1165
      };
1166
    }[];
1167
  }
1168
) {
1169
  const url = new URL(
1170
    `https://${auth.domain}.atlassian.net/rest/api/2/dashboard`
1171
  );
1172

1173
  const response = await fetch(url, {
1174
    method: "POST",
1175
    headers: {
1176
      "Content-Type": "application/json",
1177
      Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
1178
    },
1179
    body: JSON.stringify(body),
1180
  });
1181
  if (!response.ok) {
1182
    const text = await response.text();
1183
    throw new Error(`${response.status} ${text}`);
1184
  }
1185
  return await response.json();
1186
}
1187