type Jira = {
username: string;
password: string;
domain: string;
};
/**
* Validate create workflows
* Validate the payload for bulk create workflows.
**[Permissions](#permissions) required:**
* *Administer Jira* project permission to create all, including global-scoped, workflows
* *Administer projects* project permissions to create project-scoped workflows
*/
export async function main(
auth: Jira,
body: {
payload: {
scope: { project?: { id: string }; type: "PROJECT" | "GLOBAL" };
statuses: {
description?: string;
id?: string;
name: string;
statusCategory: "TODO" | "IN_PROGRESS" | "DONE";
statusReference: string;
[k: string]: unknown;
}[];
workflows: {
description?: string;
name: string;
startPointLayout?: { x?: number; y?: number };
statuses: {
layout?: { x?: number; y?: number };
properties: { [k: string]: string };
statusReference: string;
[k: string]: unknown;
}[];
transitions: {
actions?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
}[];
conditions?: {
conditionGroups?: {}[];
conditions?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
}[];
operation: "ANY" | "ALL";
};
customIssueEventId?: string;
description?: string;
from?: { port?: number; statusReference: string }[];
id: string;
name: string;
properties?: { [k: string]: string };
to?: { port?: number; statusReference: string };
transitionScreen?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
};
triggers?: {
id?: string;
parameters: { [k: string]: string };
ruleKey: string;
}[];
type: "INITIAL" | "GLOBAL" | "DIRECTED";
validators?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
}[];
[k: string]: unknown;
}[];
}[];
};
validationOptions?: { levels?: ("WARNING" | "ERROR")[] };
}
) {
const url = new URL(
`https://${auth.domain}.atlassian.net/rest/api/2/workflows/create/validation`
);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 396 days ago
type Jira = {
username: string;
password: string;
domain: string;
};
/**
* Validate create workflows
* Validate the payload for bulk create workflows.
**[Permissions](#permissions) required:**
* *Administer Jira* project permission to create all, including global-scoped, workflows
* *Administer projects* project permissions to create project-scoped workflows
*/
export async function main(
auth: Jira,
body: {
payload: {
scope: { project?: { id: string }; type: "PROJECT" | "GLOBAL" };
statuses: {
description?: string;
id?: string;
name: string;
statusCategory: "TODO" | "IN_PROGRESS" | "DONE";
statusReference: string;
[k: string]: unknown;
}[];
workflows: {
description?: string;
name: string;
startPointLayout?: { x?: number; y?: number };
statuses: {
layout?: { x?: number; y?: number };
properties: { [k: string]: string };
statusReference: string;
[k: string]: unknown;
}[];
transitions: {
actions?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
}[];
conditions?: {
conditionGroups?: {}[];
conditions?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
}[];
operation: "ANY" | "ALL";
};
customIssueEventId?: string;
description?: string;
from?: { port?: number; statusReference: string }[];
id: string;
name: string;
properties?: { [k: string]: string };
to?: { port?: number; statusReference: string };
transitionScreen?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
};
triggers?: {
id?: string;
parameters: { [k: string]: string };
ruleKey: string;
}[];
type: "INITIAL" | "GLOBAL" | "DIRECTED";
validators?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
}[];
[k: string]: unknown;
}[];
}[];
};
validationOptions?: { levels?: ("WARNING" | "ERROR")[] };
}
) {
const url = new URL(
`https://${auth.domain}.atlassian.net/rest/api/2/workflows/create/validation`
);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 823 days ago
type Jira = {
username: string;
password: string;
domain: string;
};
/**
* Validate create workflows
* Validate the payload for bulk create workflows.
**[Permissions](#permissions) required:**
* *Administer Jira* project permission to create all, including global-scoped, workflows
* *Administer projects* project permissions to create project-scoped workflows
*/
export async function main(
auth: Jira,
body: {
payload: {
scope: { project?: { id: string }; type: "PROJECT" | "GLOBAL" };
statuses: {
description?: string;
id?: string;
name: string;
statusCategory: "TODO" | "IN_PROGRESS" | "DONE";
statusReference: string;
[k: string]: unknown;
}[];
workflows: {
description?: string;
name: string;
startPointLayout?: { x?: number; y?: number };
statuses: {
layout?: { x?: number; y?: number };
properties: { [k: string]: string };
statusReference: string;
[k: string]: unknown;
}[];
transitions: {
actions?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
}[];
conditions?: {
conditionGroups?: {}[];
conditions?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
}[];
operation: "ANY" | "ALL";
};
customIssueEventId?: string;
description?: string;
from?: { port?: number; statusReference: string }[];
id: string;
name: string;
properties?: { [k: string]: string };
to?: { port?: number; statusReference: string };
transitionScreen?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
};
triggers?: {
id?: string;
parameters: { [k: string]: string };
ruleKey: string;
}[];
type: "INITIAL" | "GLOBAL" | "DIRECTED";
validators?: {
id?: string;
parameters?: { [k: string]: string };
ruleKey: string;
}[];
[k: string]: unknown;
}[];
}[];
};
validationOptions?: {
levels?:
| []
| ["WARNING" | "ERROR"]
| ["WARNING" | "ERROR", "WARNING" | "ERROR"];
};
}
) {
const url = new URL(
`https://${auth.domain}.atlassian.net/rest/api/2/workflows/create/validation`
);
const response = await fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
},
body: JSON.stringify(body),
});
if (!response.ok) {
const text = await response.text();
throw new Error(`${response.status} ${text}`);
}
return await response.json();
}
Submitted by hugo697 948 days ago