No description
  • Rust 98.8%
  • TypeScript 1.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
tyange eb353a5a68 feat: CMS의 모든 기능을 CLI로 — 태그·이미지·포트폴리오·하객·API 키
tyange-cms가 하는 일 중 CLI에 없던 것을 채운다.

- cms tags, cms posts --category/--search
- cms image upload (본문용·포트폴리오 아이콘, 10MB 상한을 먼저 검사)
- cms portfolio get/put/delete, section get/set (PDF 포트폴리오는 portfolio_pdf 섹션)
- cms guests (시간대별 인원, 한국 시각)
- cms keys list/create/revoke (키로는 안 되고 ID/비밀번호 로그인, 없으면 터미널에서 묻는다)
- CMS 에디터와 같은 lovelog 짧은 글 200자 규칙을 new/update/publish에 적용
- cms update --file -, 삭제 계열이 빈 본문 200 응답을 오류로 오해하던 버그 수정

쓰기 경로는 임시 DB로 띄운 로컬 cms-api로 끝까지 검증했다. 테스트 65개.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L9KMkGbEf67nvEy8rp622i
2026-10-15 15:39:42 +09:00
src feat: CMS의 모든 기능을 CLI로 — 태그·이미지·포트폴리오·하객·API 키 2026-10-15 15:39:42 +09:00
tools/extract-ink chore: 손글씨 보정 도구(extract-ink)를 tools/로 옮긴다 2026-10-15 14:28:58 +09:00
.gitignore chore: 손글씨 보정 도구(extract-ink)를 tools/로 옮긴다 2026-10-15 14:28:58 +09:00
Cargo.lock feat: CMS의 모든 기능을 CLI로 — 태그·이미지·포트폴리오·하객·API 키 2026-10-15 15:39:42 +09:00
Cargo.toml feat: CMS의 모든 기능을 CLI로 — 태그·이미지·포트폴리오·하객·API 키 2026-10-15 15:39:42 +09:00
CLAUDE.md feat: CMS의 모든 기능을 CLI로 — 태그·이미지·포트폴리오·하객·API 키 2026-10-15 15:39:42 +09:00
GUIDE.md 0단계 스켈레톤 + 1단계 스캐폴드: clap CLI, remote URL 파서 2026-09-16 20:41:23 +09:00
README.md feat: CMS의 모든 기능을 CLI로 — 태그·이미지·포트폴리오·하객·API 키 2026-10-15 15:39:42 +09:00

tyange-cli

tyange 개인 인프라(블로그, CMS, Forgejo, 24개 리포)를 다루는 잡다한 기능 모음 CLI. gh, cargo, aws-cli처럼 서브커맨드가 계속 늘어나는 구조다. "완성"이 목표가 아니라, 새 마찰이 생길 때마다 서브커맨드 하나씩 추가하는 게 목표다.

왜 이 프로젝트인가

이미 fzf/rg/fd/bat/zoxide/delta 같은 성숙한 CLI 도구를 다 쓰고 있어서, 범용 도구를 새로 만드는 건 의미가 없다. 이건 아무도 대신 만들어줄 수 없는 것만 담는다 — git.tyange.com(Forgejo), tyange-cms-api, 24개 개인 리포처럼 내 인프라에만 있는 것들.

지금 있는 것

tyange ci [--watch]            # 현재 리포의 Forgejo Actions 상태. --watch는 HEAD 커밋의 실행이 끝날 때까지
tyange ci --all [--recent]     # 모든 저장소에서 지금 돌고 있는 CI (--recent: 저장소마다 마지막 실행)
tyange cms posts|get|new|update|publish|draft|delete|tags   # 글·태그 관리
tyange cms image upload <파일>  # 이미지 업로드
tyange cms portfolio get|put|delete|section get|set   # 포트폴리오(PDF 포트폴리오 데이터 포함)
tyange cms guests               # 하객 명단·시간대별 인원
tyange cms keys list|create|revoke   # API 키 관리 (ID/비밀번호 로그인 필요)
tyange cms sync | sync-status  # Craft 폴더 동기화 즉시 실행 / 상태

모든 명령은 --json을 받는다. 설정(TYANGE_CMS_ID, TYANGE_CMS_PASSWORD, TYANGE_FORGEJO_TOKEN)은 환경변수나 ~/.config/tyange-cli/env에 둔다. 자세한 건 CLAUDE.md.

로드맵

단계 서브커맨드 상태
0 CLI 스켈레톤 ✅
1 tyange ci ✅ (Forgejo 실호출은 토큰 필요)
2 tyange ci --watch ✅ (blocking 폴링)
3 tyange repos — 여러 리포 dirty/unpushed 상태판 예정
4 tyange cms new/update/publish — 마크다운 → CMS 발행 ✅ (프론트매터 대신 플래그)
5 tyange new <name> --template <t> — 새 리포 스캐폴딩 선택

자세한 단계별 가이드는 GUIDE.md.

개발

cargo test    # 뭘 채워야 하는지는 실패하는 테스트가 알려준다
cargo run -- ci --help