sprints

Sentivex Incidents Ticket API

GET/api/sprints

스프린트 목록 조회(GET)와 신규 스프린트 생성(POST)을 처리한다.

API 라우트: /api/sprints 스프린트 목록 조회(GET)와 신규 스프린트 생성(POST)을 처리한다. 두 엔드포인트 모두 JWT 인증 + 프로젝트 멤버십 권한 검사를 수행한다. - GET /api/sprints?projectId=<uuid> : 해당 프로젝트의 스프린트 목록을 생성일 오름차순으로 반환 - POST /api/sprints : 새 스프린트를 생성하고 활동 로그를 기록한다 @author jijuta ([email protected]) @since 2026-05-03 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X GET https://sit.in-bridge.com/api/sprints \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/sprints", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();
POST/api/sprints

스프린트 목록 조회(GET)와 신규 스프린트 생성(POST)을 처리한다.

API 라우트: /api/sprints 스프린트 목록 조회(GET)와 신규 스프린트 생성(POST)을 처리한다. 두 엔드포인트 모두 JWT 인증 + 프로젝트 멤버십 권한 검사를 수행한다. - GET /api/sprints?projectId=<uuid> : 해당 프로젝트의 스프린트 목록을 생성일 오름차순으로 반환 - POST /api/sprints : 새 스프린트를 생성하고 활동 로그를 기록한다 @author jijuta ([email protected]) @since 2026-05-03 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Request body

projectIdstring<uuid>required
namestringrequired
goalstring
startDatestring
endDatestring

Responses

200 성공400 입력 검증 실패(zod)401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X POST https://sit.in-bridge.com/api/sprints \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"00000000-0000-0000-0000-000000000000","name":"string","goal":"string","startDate":"string","endDate":"string"}'
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/sprints", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "projectId": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "goal": "string",
    "startDate": "string",
    "endDate": "string"
  })
});
const data = await res.json();
PATCH/api/sprints/{sprintId}

특정 스프린트의 속성 수정 및 삭제를 담당한다.

API 라우트: PATCH/DELETE /api/sprints/[sprintId] 특정 스프린트의 속성 수정 및 삭제를 담당한다. - PATCH: 스프린트 이름, 상태(planning/active/completed), 목표, 기간을 부분 업데이트 - DELETE: 스프린트 하드 삭제 (연결된 이슈는 삭제되지 않음 — 이슈의 sprintId만 참조 해제됨) 두 메서드 모두: - 스프린트 존재 여부와 소속 프로젝트를 먼저 조회한 뒤 - requireProjectAccess로 권한을 검증하고 - activity_logs에 변경 이력을 남긴다. 권한: requireProjectAccess (프로젝트 멤버 이상) @author jijuta ([email protected]) @since 2026-05-03 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

sprintIdstringrequired

Request body

namestring
statusenum
planningactivecompleted
goalstring
startDatestring
endDatestring

Responses

200 성공400 입력 검증 실패(zod)401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X PATCH https://sit.in-bridge.com/api/sprints/{sprintId} \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","status":"planning","goal":"string","startDate":"string","endDate":"string"}'
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/sprints/{sprintId}", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "name": "string",
    "status": "planning",
    "goal": "string",
    "startDate": "string",
    "endDate": "string"
  })
});
const data = await res.json();
DELETE/api/sprints/{sprintId}

특정 스프린트의 속성 수정 및 삭제를 담당한다.

API 라우트: PATCH/DELETE /api/sprints/[sprintId] 특정 스프린트의 속성 수정 및 삭제를 담당한다. - PATCH: 스프린트 이름, 상태(planning/active/completed), 목표, 기간을 부분 업데이트 - DELETE: 스프린트 하드 삭제 (연결된 이슈는 삭제되지 않음 — 이슈의 sprintId만 참조 해제됨) 두 메서드 모두: - 스프린트 존재 여부와 소속 프로젝트를 먼저 조회한 뒤 - requireProjectAccess로 권한을 검증하고 - activity_logs에 변경 이력을 남긴다. 권한: requireProjectAccess (프로젝트 멤버 이상) @author jijuta ([email protected]) @since 2026-05-03 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

sprintIdstringrequired

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X DELETE https://sit.in-bridge.com/api/sprints/{sprintId} \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/sprints/{sprintId}", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();