LLM WikiAccess-protected knowledge portal

WIKI

crawler-lib-ruby (rubycrawler)

AI Summary Purpose RubyGems 라이브러리/버전/라이선스 크롤러. LANGUAGE='ruby' , REPOSITORY='RUBYGEMS' . Key points Local path ~/labrador/crawler/crawler lib ruby . Entry src/ai/labradorlabs/app/main.py RubyCralwer .run , resync main resync.py . 운영 DB conf

경로ai/repo-notes/crawler-lib-ruby.md
카테고리Repo Note
태그#crawler #data-pipeline #lib #license #notes #repo #repo-note #ruby #security

# crawler-lib-ruby (rubycrawler)

AI Summary

Purpose:

Key points:

warning 강등 — 크롤러 본류는 기존 정리대로 error 2곳(피드 윈도우 스킵, 행 insert skip)만 유지. 시크릿 분리 완료(fb22fc7): GitHub 토큰 2곳 + libraries.io api_key(데드코드) → config.ini[COMMON]/GithubToken·LibrariesApiKey. config 에는 빈 placeholder 만 커밋, 빈 값이면 무인증 폴백. ⚠ 기존 토큰 rotate + 배포 환경 config 주입 필요.

Relevant when:

Do not read full document unless:

Linked documents:

Open Questions

Details

누락(데이터 미수집) 원인 — 2026-06-09 분석

  1. 발견 페이지/윈도우 유실 (A): getJsonRequests 가 200이 아니면(429/5xx/timeout) None 반환. run() 이 이를 "윈도우 끝"과 구분 못 해, 일시 실패 시 다음 7일 윈도우로 건너뛰고 진척을 STATUS에 기록 → 그 윈도우 잔여 페이지의 gem 전부 영구 누락.
  2. 레이트리밋 무방비 (B): 429/Retry-After 미처리(3회·백오프 없음) → A를 유발하는 실질 트리거.
  3. 조기 종료 (B): 최근 윈도우에서 빈/실패 응답이면 크롤러 전체 return.
  4. 패키지 단위 예외 드롭 (C): dataCrawling per-package try/except가 예외 시 gem을 통째로 skip. 발생원: github clone/licensee/libraries.io 네트워크, getPythonReleaseDatestrptime 예외(try/except 없음 + [:find('.')-1] 초 손상).
  5. 배치 insert 무폴백 (D): executeSql 가 예외를 삼키고, setInsertIntoDB 가 행별 폴백 없음 → 불량행 1개로 1000건 청크 전체 유실.
  6. 전체 reconciliation 부재 (E): 시간 윈도우 전진형 증분만 존재, names 전수 대조 안전망 없음 → 한번 놓치면 resync 전까지 영구.

수정 (branch fix/ruby-crawler-missing-data, commit a52d550)

데이터 포맷(컬럼/JSON 구조/값 산출)은 불변. coverage·라이선스 출처 우선순위·libraries 제거만 변경.