고급 기능
고급 기능
파워 유저를 위한 기능: 파일 첨부, 커스텀 필드, JSON/CSV 파일 기반 배치 작업, 워크스페이스 전체 검색.
첨부파일
파일 업로드
bun run dev task attach TASK_ID ./document.pdf
파일은 디스크에서 스트리밍되므로 대용량 첨부파일(Asana 제한 100 MB까지)도 메모리에 모두 올리지 않고 업로드할 수 있습니다.
첨부파일 목록
bun run dev task attachment list TASK_ID
첨부파일 GID, 이름, 유형, 크기, 생성 시각이 출력됩니다.
첨부파일 다운로드
# 첨부파일의 원래 이름으로 저장
bun run dev task attachment download ATTACHMENT_ID
# 출력 경로 지정; --force는 기존 파일을 덮어씀
bun run dev task attachment download ATTACHMENT_ID --output ./downloaded.pdf --force
외부 첨부파일(예: Google Drive 링크)은 다운로드 URL이 없어 다운로드할 수 없다고 안내됩니다.
커스텀 필드
워크스페이스 커스텀 필드 목록
bun run dev custom-field list --workspace WORKSPACE_ID
--workspace를 생략하면 설정된 기본 워크스페이스를 사용합니다.
태스크의 커스텀 필드 값 목록
bun run dev task custom-field list TASK_ID
커스텀 필드 값 설정
# 텍스트 필드
bun run dev task custom-field set TASK_ID FIELD_ID "분기 리뷰"
# 숫자 필드 — 숫자로 검증됨
bun run dev task custom-field set TASK_ID FIELD_ID "42.5"
# enum 필드 — 옵션 이름(대소문자 무관) 또는 옵션 GID 사용 가능
bun run dev task custom-field set TASK_ID FIELD_ID "High"
CLI는 먼저 필드 정의를 조회한 뒤 API가 기대하는 타입으로 값을 변환합니다.
지원 타입: text, number, enum.
배치 작업
모든 배치 명령은 최대 5개의 API 호출을 동시에 실행하고, stderr에 진행률을 표시하며, 항목별 실패를 기록하되 전체 배치를 중단하지 않습니다. 실패한 항목이 있으면 종료 코드가 0이 아닙니다.
배치 업데이트 (JSON)
각 항목에는 gid가 필요하며, 나머지 키는 그대로 업데이트 API에 전달됩니다.
[
{ "gid": "1201234567890123", "completed": true },
{ "gid": "1201234567890124", "name": "이름 변경된 태스크", "due_on": "2026-07-01" }
]
bun run dev task batch-update --file tasks.json
배치 생성 (JSON 또는 CSV)
CSV 파일에는 헤더 행이 필요하며 빈 셀은 무시됩니다. project 열을 추가하면
해당 프로젝트에 태스크가 추가됩니다.
name,notes,due_on,project
런칭 글 작성,검토용 초안,2026-07-01,1209876543210987
데모 준비,,2026-07-03,
bun run dev task batch-create --file tasks.csv --workspace WORKSPACE_ID
bun run dev task batch-create --file tasks.json
배치 삭제 (텍스트 파일)
한 줄에 태스크 GID 하나씩 작성하며, 빈 줄과 # 주석은 무시됩니다.
--yes를 전달하지 않으면 대화형으로 삭제를 확인합니다.
# 삭제할 태스크
1201234567890123
1201234567890124
bun run dev task batch-delete --file task-ids.txt --yes
검색
태스크 검색
태스크 이름과 설명에 대한 전문(full-text) 검색입니다. 프리미엄 Asana
워크스페이스가 필요합니다(그렇지 않으면 API가 402 Payment Required를
반환합니다).
bun run dev search tasks "quarterly goals" --workspace WORKSPACE_ID
# 필터
bun run dev search tasks "bug" --completed false --assignee USER_ID --limit 50
Asana 검색 API는 안정적인 오프셋 페이지네이션을 지원하지 않으므로
--limit(1–100, 기본 20)으로 페이지 크기를 조절하세요.
프로젝트 검색
프로젝트 검색은 Asana의 typeahead API를 사용해 가장 관련성 높은 결과를 빠르게 반환합니다.
bun run dev search projects "Q1" --workspace WORKSPACE_ID