1 | type Jira = { |
2 | username: string; |
3 | password: string; |
4 | domain: string; |
5 | }; |
6 | |
7 | * Set custom field contexts default values |
8 | * Sets default for contexts of a custom field. |
9 | */ |
10 | export async function main( |
11 | auth: Jira, |
12 | fieldId: string, |
13 | body: { |
14 | defaultValues?: ( |
15 | | { |
16 | cascadingOptionId?: string; |
17 | contextId: string; |
18 | optionId: string; |
19 | type: string; |
20 | [k: string]: unknown; |
21 | } |
22 | | { |
23 | contextId: string; |
24 | optionIds: string[]; |
25 | type: string; |
26 | [k: string]: unknown; |
27 | } |
28 | | { |
29 | contextId: string; |
30 | optionId: string; |
31 | type: string; |
32 | [k: string]: unknown; |
33 | } |
34 | | { |
35 | accountId: string; |
36 | contextId: string; |
37 | type: string; |
38 | userFilter: { |
39 | enabled: boolean; |
40 | groups?: string[]; |
41 | roleIds?: number[]; |
42 | [k: string]: unknown; |
43 | }; |
44 | [k: string]: unknown; |
45 | } |
46 | | { |
47 | accountIds: string[]; |
48 | contextId: string; |
49 | type: string; |
50 | [k: string]: unknown; |
51 | } |
52 | | { |
53 | contextId: string; |
54 | groupId: string; |
55 | type: string; |
56 | [k: string]: unknown; |
57 | } |
58 | | { |
59 | contextId: string; |
60 | groupIds: string[]; |
61 | type: string; |
62 | [k: string]: unknown; |
63 | } |
64 | | { |
65 | date?: string; |
66 | type: string; |
67 | useCurrent?: boolean; |
68 | [k: string]: unknown; |
69 | } |
70 | | { |
71 | dateTime?: string; |
72 | type: string; |
73 | useCurrent?: boolean; |
74 | [k: string]: unknown; |
75 | } |
76 | | { contextId: string; type: string; url: string; [k: string]: unknown } |
77 | | { |
78 | contextId: string; |
79 | projectId: string; |
80 | type: string; |
81 | [k: string]: unknown; |
82 | } |
83 | | { number: number; type: string; [k: string]: unknown } |
84 | | { labels: string[]; type: string; [k: string]: unknown } |
85 | | { text?: string; type: string; [k: string]: unknown } |
86 | | { text?: string; type: string; [k: string]: unknown } |
87 | | { text?: string; type: string; [k: string]: unknown } |
88 | | { |
89 | type: string; |
90 | versionId: string; |
91 | versionOrder?: string; |
92 | [k: string]: unknown; |
93 | } |
94 | | { |
95 | type: string; |
96 | versionIds: string[]; |
97 | versionOrder?: string; |
98 | [k: string]: unknown; |
99 | } |
100 | | { contextId: string; text?: string; type: string; [k: string]: unknown } |
101 | | { type: string; values?: string[]; [k: string]: unknown } |
102 | | { |
103 | object?: { [k: string]: unknown }; |
104 | type: string; |
105 | [k: string]: unknown; |
106 | } |
107 | | { |
108 | contextId: string; |
109 | dateTime?: string; |
110 | type: string; |
111 | useCurrent?: boolean; |
112 | [k: string]: unknown; |
113 | } |
114 | | { |
115 | contextId: string; |
116 | groupId: string; |
117 | type: string; |
118 | [k: string]: unknown; |
119 | } |
120 | | { |
121 | contextId: string; |
122 | groupIds: string[]; |
123 | type: string; |
124 | [k: string]: unknown; |
125 | } |
126 | | { |
127 | contextId: string; |
128 | number: number; |
129 | type: string; |
130 | [k: string]: unknown; |
131 | } |
132 | | { |
133 | accountId: string; |
134 | contextId: string; |
135 | type: string; |
136 | userFilter: { |
137 | enabled: boolean; |
138 | groups?: string[]; |
139 | roleIds?: number[]; |
140 | [k: string]: unknown; |
141 | }; |
142 | [k: string]: unknown; |
143 | } |
144 | | { |
145 | accountIds: string[]; |
146 | contextId: string; |
147 | type: string; |
148 | [k: string]: unknown; |
149 | } |
150 | )[]; |
151 | } |
152 | ) { |
153 | const url = new URL( |
154 | `https://${auth.domain}.atlassian.net/rest/api/2/field/${fieldId}/context/defaultValue` |
155 | ); |
156 |
|
157 | const response = await fetch(url, { |
158 | method: "PUT", |
159 | headers: { |
160 | "Content-Type": "application/json", |
161 | Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`), |
162 | }, |
163 | body: JSON.stringify(body), |
164 | }); |
165 | if (!response.ok) { |
166 | const text = await response.text(); |
167 | throw new Error(`${response.status} ${text}`); |
168 | } |
169 | return await response.json(); |
170 | } |
171 |
|