2025년 11월 기준, OSS Doctor 활성화 점수는 GitHub 리포지토리의 활동 데이터만을 사용하여 아래 방식으로 계산합니다.
(Health × 5 + Social × 2) ÷ 10 공식으로 산출한 뒤 0~1000 범위로 스케일링합니다.Health = Commits + Update Recency + Merged PRs + Closed Issues
Social = Stars + Forks + Watchers + Contributors
Total = (Health × 5 + Social × 2) ÷ 10 → 0~100 후, ×10 하여 0~1000 점수로 제공
| 구분 | 요소 | 설명 | 최대 점수 | 주요 임계값 / 조건 |
|---|---|---|---|---|
| Health | 커밋 활동 | 프로젝트 전체 커밋 수(디폴트 브랜치 기준) | 20점 | 1,024 → 4점 · 2,048 → 8점 · 4,096 → 12점 · 8,192 → 16점 · 16,384 이상 → 20점 |
| 업데이트 최근성 | 마지막 커밋 또는 릴리스 시점 | 20점 | ≤7일 20점 · 30일 16점 · 90일 12점 · 180일 8점 · 365일 4점 · >730일 0점 | |
| 병합 PR | 닫힌/병합된 Pull Request 수 | 20점 | 512 → 4점 · 1,024 → 8점 · 2,048 → 12점 · 4,096 → 16점 · 8,192 이상 → 20점 | |
| 닫힌 이슈 | 처리된 Issue 수 | 20점 | 512 → 4점 · 1,024 → 8점 · 2,048 → 12점 · 4,096 → 16점 · 8,192 이상 → 20점 | |
| Social | Star | GitHub Star 수 | 20점 | 1,024 → 4점 · 2,048 → 8점 · 4,096 → 12점 · 8,192 → 16점 · 16,384 이상 → 20점 |
| Fork | 리포지토리 Fork 수 | 20점 | 256 → 4점 · 512 → 8점 · 1,024 → 12점 · 2,048 → 16점 · 4,096 이상 → 20점 | |
| Watcher | Watching 사용자 수 | 20점 | 128 → 4점 · 256 → 8점 · 512 → 12점 · 1,024 → 16점 · 2,048 이상 → 20점 | |
| Contributor | 총 기여자 수 | 20점 | 128 → 4점 · 256 → 8점 · 512 → 12점 · 1,024 → 16점 · 2,048 이상 → 20점 |
커밋·PR·이슈는 로그 스케일을 따라 선형 보간하여 급격한 점수 상승을 방지합니다.
| 요소 | 0점 | 4점 | 8점 | 12점 | 16점 | 20점 |
|---|---|---|---|---|---|---|
| 커밋 수 | < 1,024 | 1,024 | 2,048 | 4,096 | 8,192 | 16,384 이상 |
| 병합 PR | < 512 | 512 | 1,024 | 2,048 | 4,096 | 8,192 이상 |
| 닫힌 이슈 | < 512 | 512 | 1,024 | 2,048 | 4,096 | 8,192 이상 |
| 업데이트 최근성 | > 730일 | 365일 | 180일 | 90일 | 30일 | 7일 이내 |
0점~4점 구간도 완만하게 보간하여 소규모 프로젝트라도 최근 활동이 있다면 점수가 소폭 반영됩니다.
| 요소 | 0점 | 4점 | 8점 | 12점 | 16점 | 20점 |
|---|---|---|---|---|---|---|
| Star | < 1,024 | 1,024 | 2,048 | 4,096 | 8,192 | 16,384 이상 |
| Fork | < 256 | 256 | 512 | 1,024 | 2,048 | 4,096 이상 |
| Watcher | < 128 | 128 | 256 | 512 | 1,024 | 2,048 이상 |
| Contributor | < 128 | 128 | 256 | 512 | 1,024 | 2,048 이상 |
| 값 | 점수(최대 25 기준) |
|---|---|
| ≥ 1024 | 25 |
| ≥ 512 | 20 |
| ≥ 256 | 15 |
| ≥ 128 | 10 |
| ≥ 64 | 5 |
| < 64 | 0 |
// Health = recency(25/20/15/10/5) + PR(버킷, 최대 25) + Issue(버킷, 최대 25)
// Social = Stars(버킷, 최대 25) + Forks(버킷, 최대 25) + Watchers(버킷, 최대 25)
// Total = (Health * 5 + Social * 2) / 10, clamp 0..100
// 버킷 공통: 64/128/256/512/1024 임계값 → 0/5/10/15/20/25 점
// 업데이트 최신성: ≤7/30/90/180/365일 → 25/20/15/10/5 점
가이드에 제시된 일부 항목(Contributors, Releases/Tags, Branches 등)은 현재 수집/반영하지 않습니다. 필요 시 해당 지표 수집과 산식 반영을 확장할 수 있습니다.
출처 : 대구대학교 ODOC Care 팀(OSS 개발자대회 출품작) 제안 지표 및 코드 참고