포함할 항목에 대한 구성 가능한 옵션으로 기존 프로젝트의 완전한 복사본을 생성합니다.
Copy page in markdown for LLMs
프로젝트 복사
프로젝트 복사 변형은 동일한 회사 내에서 또는 다른 회사로 기존 프로젝트를 복제할 수 있게 해줍니다. 이는 프로젝트 템플릿을 생성하거나 유사한 프로젝트를 설정하거나 회사 간에 프로젝트를 이동하는 데 유용합니다. 복사 작업은 대규모 프로젝트를 효율적으로 처리하기 위해 비동기적으로 실행됩니다.
기본 예제
mutation CopyProject {
copyProject(
input: {
projectId: "proj_123abc"
name: "New Project Copy"
options: {
todos: true
todoLists: true
people: true
}
}
)
}
고급 예제
mutation CopyProject {
copyProject(
input: {
projectId: "proj_123abc"
name: "Q2 Marketing Campaign"
description: "Copy of Q1 campaign with updated timeline"
imageURL: "https://example.com/campaign-logo.png"
companyId: "comp_789xyz"
options: {
assignees: true
automations: true
checklists: true
customFields: true
discussions: false
discussionComments: false
dueDates: true
files: true
forms: true
people: true
projectUserRoles: true
statusUpdates: false
statusUpdateComments: false
tags: true
todoActions: true
todoComments: false
todoLists: true
todos: true
}
}
)
}
입력 매개변수
CopyProjectInput
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
projectId |
String! | ✅ 예 | 복사할 프로젝트의 ID |
name |
String! | ✅ 예 | 새 프로젝트의 이름 (최대 50자) |
description |
String | 아니오 | 새 프로젝트의 설명 (최대 500자) |
imageURL |
String | 아니오 | 새 프로젝트의 이미지 URL |
companyId |
String | 아니오 | 새 프로젝트가 생성될 회사의 ID. 제공되지 않으면 소스 프로젝트의 회사를 사용합니다. |
options |
CopyProjectOptionsInput! | ✅ 예 | 복사할 요소에 대한 구성 |
CopyProjectOptionsInput
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
assignees |
Boolean | 아니오 | 작업 담당자 복사 (requires people: true) |
automations |
Boolean | 아니오 | 프로젝트 자동화 및 워크플로우 복사 |
checklists |
Boolean | 아니오 | 작업 체크리스트 복사 |
customFields |
Boolean | 아니오 | 사용자 정의 필드 정의 및 값 복사 |
discussions |
Boolean | 아니오 | 프로젝트 토론 복사 |
discussionComments |
Boolean | 아니오 | 토론에 대한 댓글 복사 (requires discussions: true) |
dueDates |
Boolean | 아니오 | 작업의 마감일 복사 |
files |
Boolean | 아니오 | 파일 첨부 복사 |
forms |
Boolean | 아니오 | 프로젝트 양식 복사 |
people |
Boolean | 아니오 | 프로젝트 구성원 복사 |
projectUserRoles |
Boolean | 아니오 | 사용자 역할 및 권한 복사 (requires people: true) |
statusUpdates |
Boolean | 아니오 | 프로젝트 상태 업데이트 복사 |
statusUpdateComments |
Boolean | 아니오 | 상태 업데이트에 대한 댓글 복사 (requires statusUpdates: true) |
tags |
Boolean | 아니오 | 프로젝트 태그 복사 |
todoActions |
Boolean | 아니오 | 작업 작업/하위 작업 복사 |
todoComments |
Boolean | 아니오 | 작업 댓글 복사 |
todoLists |
Boolean | 아니오 | 작업 목록/섹션 복사 |
todos |
Boolean | 아니오 | 작업 복사 |
coverConfig |
Boolean | 아니오 | 할 일 커버 이미지 구성 복사 |
응답
변형은 Boolean 값을 반환합니다:
true- 복사 작업이 성공적으로 큐에 추가되었습니다.false- 복사 작업을 시작할 수 없습니다.
복사 상태 확인
복사가 비동기적이므로 copyProjectStatus 쿼리를 사용하여 진행 상황을 확인합니다:
복사 상태 필드
| 필드 | 유형 | 설명 |
|---|---|---|
queuePosition |
Int | 복사 대기열에서의 위치 |
totalQueues |
Int | 대기열의 총 항목 수 |
isActive |
Boolean | 복사 작업이 현재 활성인지 여부 |
oldProject |
Project | 복사 중인 소스 프로젝트 |
newProjectName |
String | 생성 중인 새 프로젝트의 이름 |
isTemplate |
Boolean | 템플릿으로 복사 중인지 여부 |
oldCompany |
Company | 소스 회사 |
newCompany |
Company | 대상 회사 |
query CheckCopyStatus {
copyProjectStatus {
queuePosition
totalQueues
isActive
oldProject {
id
name
}
newProjectName
isTemplate
oldCompany {
id
name
}
newCompany {
id
name
}
}
}
필요한 권한
프로젝트를 복사하려면 소스 및 대상 위치 모두에서 적절한 권한이 필요합니다:
| 시나리오 | 필요한 권한 |
|---|---|
| Copy within same company | OWNER, ADMIN, or MEMBER role in the source project |
| Copy to different company | • OWNER, ADMIN, or MEMBER role in the source project• Must be a member of the target company |
소스 프로젝트는 복사되기 위해 활성 상태(보관되지 않음)이어야 합니다.
오류 응답
프로젝트를 찾을 수 없음
{
"errors": [{
"message": "Record not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
소스 프로젝트가 존재하지 않거나 접근 권한이 없을 때 발생합니다.
회사를 찾을 수 없음
{
"errors": [{
"message": "Record not found",
"extensions": {
"code": "COMPANY_NOT_FOUND"
}
}]
}
대상 회사가 존재하지 않거나 접근 권한이 없을 때 발생합니다.
프로젝트가 너무 큼
{
"errors": [{
"message": "Project is too large to copy",
"extensions": {
"code": "CREATE_PROJECT_LIMIT"
}
}]
}
프로젝트에 250,000개 이상의 작업이 있을 때 발생합니다.
복사가 이미 진행 중임
{
"errors": [{
"message": "Oops!"
}]
}
이미 복사 작업이 진행 중일 때 발생합니다.
중요한 노트
- 비동기 작업: 변형은 백그라운드 작업을 큐에 추가하고 즉시 반환합니다. 진행 상황을 추적하려면
copyProjectStatus를 사용하세요. - 한 번에 하나의 복사: 사용자당 한 번에 하나의 복사 작업만 활성화될 수 있습니다.
- 크기 제한: 250,000개 이상의 작업이 있는 프로젝트는 복사할 수 없습니다.
- 논리적 종속성: 일부 옵션은 함께 사용할 때 가장 잘 작동합니다:
assignees는people: true와 함께 작동합니다 (사람 없이는 담당자가 복사되지 않습니다).discussionComments는discussions: true와 함께 작동합니다.statusUpdateComments는statusUpdates: true와 함께 작동합니다.projectUserRoles는people: true와 함께 작동합니다.
- 이름 처리: 프로젝트 이름은 잘리며 모든 URL은 자동으로 제거됩니다.
- 큐 우선 순위: 엔터프라이즈 고객은 복사 대기열에서 더 높은 우선 순위를 받습니다.
- 상태 캐싱: 복사 상태는 완료 후 6시간 동안 캐시됩니다.