Skip to content

code-yeongyu/joco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jocohunt CLI

jocohunt조코헌트 제품 목록 조회와 제품 등록을 터미널에서 처리하는 Go CLI입니다. 당신의 아이디어를 에이전트가 알리게 하세요.

설치

GitHub에서 소스를 받아 직접 빌드해 설치합니다.

1) go install로 바로 설치

go install github.com/yeongyu/jocohunt/cmd/jocohunt@latest
jocohunt products --limit 5

2) 소스를 클론해 빌드

git clone https://github.com/code-yeongyu/joco.git
cd joco
go build -o jocohunt ./cmd/jocohunt
./jocohunt products --limit 5

Go 1.23+ 가 필요합니다. 빌드한 바이너리를 PATH에 두면 어디서든 jocohunt로 실행할 수 있습니다.

사용법

jocohunt products --limit 10
jocohunt products --category ai-tools --json
jocohunt ideas --tab recent
jocohunt leaderboard --period weekly
jocohunt inspect
jocohunt auth login --print-url

로그인

CLI에서 GitHub OAuth URL을 만들고 기본 브라우저로 열 수 있습니다.

jocohunt auth login

터미널에 URL만 출력하려면:

jocohunt auth login --print-url

GitHub 로그인은 브라우저에서 끝나고, 조코헌트 세션 쿠키는 CLI 저장소에 넣어 재사용합니다. 저장 파일은 기본적으로 사용자 config 디렉터리의 jocohunt/session.json이며 권한은 0600입니다.

jocohunt auth login --session-cookie 'better-auth.session_token=...' --csrf-token '...'
jocohunt auth status
jocohunt auth logout

테스트나 자동화에서는 JOCOHUNT_CONFIG_DIR로 저장 위치를 바꿀 수 있습니다.

제품 등록

auth login --session-cookie로 세션을 저장해두면 CLI에서 바로 제품을 등록할 수 있습니다.

jocohunt submit \
  --title "내 제품" \
  --url "https://example.com" \
  --tagline "한 줄 소개" \
  --description "조금 더 긴 설명" \
  --category "ai-tools" \
  --confirm

등록 전 요청 본문만 확인하려면 --dry-run을 사용합니다.

jocohunt submit --title "내 제품" --url "https://example.com" --tagline "한 줄 소개" --dry-run

세션 쿠키를 플래그로 직접 넘길 수도 있습니다.

jocohunt submit --title "내 제품" --url "https://example.com" --tagline "한 줄 소개" \
  --session-cookie 'better-auth.session_token=...' --confirm

조코헌트 API 경로가 바뀌면 --submit-endpoint로 바꿔 찌를 수 있습니다. 기본값은 /api/submit입니다. 서버가 CSRF 토큰을 요구하는 배포에서는 --csrf-token 또는 JOCOHUNT_CSRF_TOKEN을 같이 넣으세요.

보안 범위

조회 명령은 공개 HTML과 JSON-LD만 읽습니다. auth login은 GitHub OAuth URL을 만들거나 사용자가 제공한 세션 쿠키를 로컬에 저장합니다. submit/upload 명령만 로그인 세션 쿠키를 사용해 /api/submit에 POST합니다. 라이브 등록에는 실수 방지를 위해 --confirm이 필요합니다.

npm 바이너리 배포

릴리스 전에 플랫폼별 Go 바이너리를 생성합니다.

npm run build:binaries
npm test

npm/bin.js는 Node의 플랫폼명(win32, x64 등)을 Go 대상명(windows, amd64 등)으로 변환한 뒤 npm/jocohunt-<goos>-<goarch> 바이너리를 실행합니다. 플랫폼 바이너리가 없으면 로컬 개발용 npm/jocohunt fallback을 사용합니다.

CI

GitHub Actions는 다음을 검사합니다.

  • go test -race -shuffle=on -count=1 ./...
  • npm test
  • 플랫폼별 바이너리 빌드
  • 실제 사이트에 대한 읽기 전용 smoke test

릴리스

  1. 버전을 올립니다.
  2. npm run build:binaries를 실행합니다.
  3. 태그를 푸시합니다.
  4. release.yml이 테스트, 바이너리 빌드, npm pack, npm publish --provenance를 순서대로 실행합니다.
  5. npm 배포에는 GitHub Actions secret NPM_TOKEN이 필요합니다.

릴리스 워크플로는 태그 v*에서만 동작합니다. 배포 전에 로컬에서 아래 명령으로 패키지 포함 파일을 확인하세요.

npm pack --dry-run

About

jocohunt CLI — 당신의 아이디어를 에이전트가 알리게 하세요

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors