https://your-server:8082/api/v1
Response (200)
{
"teamId": "backend-team",
"members": [
{
"login": "developer1",
"name": "김개발",
"totalScore": 0.72,
"riskLevel": "HIGH",
"trendDirection": "INCREASING",
"topRiskIndicator": "NIGHT_COMMIT",
"lastUpdated": "2026-03-23T09:00:00Z"
},
{
"login": "developer2",
"name": "이코딩",
"totalScore": 0.25,
"riskLevel": "LOW",
"trendDirection": "STABLE",
"topRiskIndicator": null,
"lastUpdated": "2026-03-23T09:00:00Z"
}
],
"teamAverage": 0.41,
"teamRiskLevel": "MEDIUM",
"alertCount": {
"HIGH": 1,
"CRITICAL": 0
}
}Query Parameters:
days(default: 14): 분석 기간
Response (200)
{
"login": "developer1",
"name": "김개발",
"analysisRange": {
"from": "2026-03-09",
"to": "2026-03-23"
},
"totalScore": 0.72,
"riskLevel": "HIGH",
"indicators": {
"nightCommit": {
"score": 0.85,
"weight": 0.25,
"detail": {
"totalCommits": 47,
"nightCommits": 18,
"ratio": 0.383,
"peakHour": 2
}
},
"prStale": {
"score": 0.60,
"weight": 0.25,
"detail": {
"totalPrs": 5,
"stalePrs": 2,
"ratio": 0.40,
"avgStaleHours": 96.5
}
},
"reviewDelay": {
"score": 0.45,
"weight": 0.20,
"detail": {
"avgDelayHours": 21.6,
"reviewsGiven": 8,
"fastestResponseHours": 1.2,
"slowestResponseHours": 48.0
}
},
"commitDrop": {
"score": 0.70,
"weight": 0.20,
"detail": {
"thisWeekCommits": 6,
"lastWeekCommits": 20,
"dropRate": 0.70
}
},
"weekendWork": {
"score": 0.50,
"weight": 0.10,
"detail": {
"weekendCommits": 7,
"totalCommits": 47,
"ratio": 0.149,
"holidayCommits": 2
}
}
},
"baseline": {
"personalMean": 0.35,
"personalStdDev": 0.12,
"threshold": 0.53,
"isAboveThreshold": true
}
}Response (200)
{
"login": "developer1",
"days": 90,
"weeklyScores": [
{ "weekStart": "2026-01-05", "score": 0.28, "riskLevel": "LOW" },
{ "weekStart": "2026-01-12", "score": 0.35, "riskLevel": "MEDIUM" },
{ "weekStart": "2026-01-19", "score": 0.42, "riskLevel": "MEDIUM" },
{ "weekStart": "2026-03-16", "score": 0.72, "riskLevel": "HIGH" }
],
"trendDirection": "INCREASING",
"trendSlope": 0.05,
"peakScore": { "week": "2026-03-16", "score": 0.72 }
}Headers:
X-Hub-Signature-256: HMAC-SHA256 서명X-GitHub-Event: 이벤트 유형 (push, pull_request, pull_request_review)X-GitHub-Delivery: 배송 ID
Response (200): 정상 수신
Response (401): HMAC 검증 실패
Headers:
X-Gitlab-Token: 설정된 시크릿 토큰X-Gitlab-Event: 이벤트 유형
Response (200): 정상 수신
Response (200)
{
"teamId": "backend-team",
"slackWebhookUrl": "https://hooks.slack.com/services/T.../B.../...",
"alertThresholds": {
"HIGH": true,
"CRITICAL": true,
"MEDIUM": false
},
"weeklyReportEnabled": true,
"weeklyReportDay": "MONDAY",
"weeklyReportTime": "09:00",
"emailRecipients": ["lead@company.com"]
}Request
{
"alertThresholds": {
"HIGH": true,
"CRITICAL": true,
"MEDIUM": true
},
"weeklyReportEnabled": true,
"weeklyReportDay": "MONDAY",
"weeklyReportTime": "09:00"
}Response (200)
{
"reportPeriod": {
"from": "2026-03-16",
"to": "2026-03-22"
},
"teamSummary": {
"averageScore": 0.38,
"previousWeekAverage": 0.32,
"changeDirection": "INCREASING",
"membersAtRisk": 1
},
"memberDetails": [
{
"login": "developer1",
"score": 0.72,
"riskLevel": "HIGH",
"changeFromLastWeek": 0.15,
"topContributor": "NIGHT_COMMIT"
},
{
"login": "developer2",
"score": 0.25,
"riskLevel": "LOW",
"changeFromLastWeek": -0.05,
"topContributor": null
}
],
"recommendations": [
"developer1의 심야 커밋 비율이 38%로 높습니다. 업무 시간 내 작업 배분을 확인해보세요.",
"팀 전체 PR 리뷰 응답 시간이 평균 18시간입니다. 리뷰 우선순위를 높이는 것을 권장합니다."
]
}Response (202)
{
"message": "주간 리포트가 발송 대기열에 추가되었습니다."
}Response (200)
{
"events": [
{
"id": 1,
"eventType": "PUSH",
"authorLogin": "developer1",
"timestamp": "2026-03-23T02:30:00Z",
"repository": "company/backend-api",
"commitCount": 3,
"branch": "main"
}
],
"totalCount": 47,
"page": 0,
"size": 20
}| 코드 | 설명 |
|---|---|
| 200 | 성공 |
| 202 | 비동기 요청 접수 |
| 400 | 잘못된 요청 |
| 401 | HMAC/토큰 검증 실패 |
| 404 | 리소스 없음 |
| 500 | 서버 오류 |
{
"code": "ERROR_CODE",
"message": "에러 설명",
"timestamp": "2026-03-23T09:00:00Z",
"correlationId": "gh-delivery-abc123"
}