actions/create-project/create-project.mjs
import linearApp from "../../linear_app.app.mjs"; export default { key: "linear_app-create-project", name: "Create Project", description: "Create a project in Linear. [See the documentation](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference/inputs/ProjectCreateInput).", type: "action", version: "0.0.1", annotations: { destructiveHint: false, openWorldHint: true, readOnlyHint: false, }, props: { linearApp, teamId: { propDefinition: [ linearApp, "teamId", ], }, name: { type: "string", label: "Name", description: "The name of the project", }, description: { type: "string", label: "Description", description: "The description of the project", optional: true, }, statusId: { propDefinition: [ linearApp, "projectStatusId", ], }, priority: { propDefinition: [ linearApp, "projectPriority", ], }, memberIds: { propDefinition: [ linearApp, "assigneeId", ], type: "string[]", label: "Member IDs", description: "The IDs of the members of the project", optional: true, }, startDate: { type: "string", label: "Start Date", description: "The start date of the project in ISO 8601 format", optional: true, }, targetDate: { type: "string", label: "Target Date", description: "The target date of the project in ISO 8601 format", optional: true, }, labelIds: { propDefinition: [ linearApp, "projectLabelIds", ], }, }, async run({ $ }) { const response = await this.linearApp.client().createProject({ teamIds: [ this.teamId, ], name: this.name, description: this.description, statusId: this.statusId, priority: this.priority, memberIds: this.memberIds, startDate: this.startDate, targetDate: this.targetDate, labelIds: this.labelIds, }); $.export("$summary", `Successfully created project with ID ${response._project.id}`); return response; }, };