0
Create project
One script reply has been approved by the moderators Verified

Creates a project based on a project type template, as shown in the following table:

Project Type Key Project Template Key
business `com.
Created by hugo697 543 days ago Viewed 20622 times
0
Submitted by hugo697 Typescript (fetch-only)
Verified 543 days ago
1
type Jira = {
2
  username: string;
3
  password: string;
4
  domain: string;
5
};
6
/**
7
 * Create project
8
 * Creates a project based on a project type template, as shown in the following table:
9

10
| Project Type Key | Project Template Key |  
11
|--|--|  
12
| `business` | `com.
13
 */
14
export async function main(
15
  auth: Jira,
16
  body: {
17
    assigneeType?: "PROJECT_LEAD" | "UNASSIGNED";
18
    avatarId?: number;
19
    categoryId?: number;
20
    description?: string;
21
    fieldConfigurationScheme?: number;
22
    issueSecurityScheme?: number;
23
    issueTypeScheme?: number;
24
    issueTypeScreenScheme?: number;
25
    key: string;
26
    lead?: string;
27
    leadAccountId?: string;
28
    name: string;
29
    notificationScheme?: number;
30
    permissionScheme?: number;
31
    projectTemplateKey?:
32
      | "com.pyxis.greenhopper.jira:gh-simplified-agility-kanban"
33
      | "com.pyxis.greenhopper.jira:gh-simplified-agility-scrum"
34
      | "com.pyxis.greenhopper.jira:gh-simplified-basic"
35
      | "com.pyxis.greenhopper.jira:gh-simplified-kanban-classic"
36
      | "com.pyxis.greenhopper.jira:gh-simplified-scrum-classic"
37
      | "com.pyxis.greenhopper.jira:gh-cross-team-template"
38
      | "com.pyxis.greenhopper.jira:gh-cross-team-planning-template"
39
      | "com.atlassian.servicedesk:simplified-it-service-management"
40
      | "com.atlassian.servicedesk:simplified-general-service-desk"
41
      | "com.atlassian.servicedesk:simplified-general-service-desk-it"
42
      | "com.atlassian.servicedesk:simplified-general-service-desk-business"
43
      | "com.atlassian.servicedesk:simplified-internal-service-desk"
44
      | "com.atlassian.servicedesk:simplified-external-service-desk"
45
      | "com.atlassian.servicedesk:simplified-hr-service-desk"
46
      | "com.atlassian.servicedesk:simplified-facilities-service-desk"
47
      | "com.atlassian.servicedesk:simplified-legal-service-desk"
48
      | "com.atlassian.servicedesk:simplified-marketing-service-desk"
49
      | "com.atlassian.servicedesk:simplified-finance-service-desk"
50
      | "com.atlassian.servicedesk:simplified-analytics-service-desk"
51
      | "com.atlassian.servicedesk:simplified-design-service-desk"
52
      | "com.atlassian.servicedesk:simplified-sales-service-desk"
53
      | "com.atlassian.servicedesk:simplified-halp-service-desk"
54
      | "com.atlassian.servicedesk:simplified-blank-project-it"
55
      | "com.atlassian.servicedesk:simplified-blank-project-business"
56
      | "com.atlassian.servicedesk:next-gen-it-service-desk"
57
      | "com.atlassian.servicedesk:next-gen-hr-service-desk"
58
      | "com.atlassian.servicedesk:next-gen-legal-service-desk"
59
      | "com.atlassian.servicedesk:next-gen-marketing-service-desk"
60
      | "com.atlassian.servicedesk:next-gen-facilities-service-desk"
61
      | "com.atlassian.servicedesk:next-gen-general-service-desk"
62
      | "com.atlassian.servicedesk:next-gen-general-it-service-desk"
63
      | "com.atlassian.servicedesk:next-gen-general-business-service-desk"
64
      | "com.atlassian.servicedesk:next-gen-analytics-service-desk"
65
      | "com.atlassian.servicedesk:next-gen-finance-service-desk"
66
      | "com.atlassian.servicedesk:next-gen-design-service-desk"
67
      | "com.atlassian.servicedesk:next-gen-sales-service-desk"
68
      | "com.atlassian.jira-core-project-templates:jira-core-simplified-content-management"
69
      | "com.atlassian.jira-core-project-templates:jira-core-simplified-document-approval"
70
      | "com.atlassian.jira-core-project-templates:jira-core-simplified-lead-tracking"
71
      | "com.atlassian.jira-core-project-templates:jira-core-simplified-process-control"
72
      | "com.atlassian.jira-core-project-templates:jira-core-simplified-procurement"
73
      | "com.atlassian.jira-core-project-templates:jira-core-simplified-project-management"
74
      | "com.atlassian.jira-core-project-templates:jira-core-simplified-recruitment"
75
      | "com.atlassian.jira-core-project-templates:jira-core-simplified-task-";
76
    projectTypeKey?: "software" | "service_desk" | "business";
77
    url?: string;
78
    workflowScheme?: number;
79
  }
80
) {
81
  const url = new URL(
82
    `https://${auth.domain}.atlassian.net/rest/api/2/project`
83
  );
84

85
  const response = await fetch(url, {
86
    method: "POST",
87
    headers: {
88
      "Content-Type": "application/json",
89
      Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
90
    },
91
    body: JSON.stringify(body),
92
  });
93
  if (!response.ok) {
94
    const text = await response.text();
95
    throw new Error(`${response.status} ${text}`);
96
  }
97
  return await response.json();
98
}
99