피드로 돌아가기
Dev.toDevOps
원문 읽기
Git Diff 기반 Hugo-to-Dev.to 자동화 Action 설계
Crossposting without the copy-paste: a GitHub Action from Hugo to dev.to
AI 요약
Context
블로그 포스팅의 수동 복제 과정에서 발생하는 Copy-paste Friction으로 인한 발행 생산성 저하 문제 발생. 단순 스크립트 방식의 레포지토리 종속성으로 인해 콘텐츠와 배포 로직의 관심사 분리가 이루어지지 않은 한계 직면.
Technical Solution
- Git Diff 기반의 Push-range 인식 로직을 통한 변경된 Hugo 포스트만 선별적으로 추출하는 효율적 스캔 구조 설계
- API 기반의 Title 중복 검사를 통한 Stateless 아키텍처 구현으로 별도의 DB 없이 Dev.to를 Source of Truth로 활용
- Draft 상태로의 Mirroring 전략을 채택하여 최종 발행 권한을 사용자에게 부여하는 Human-in-the-loop 제어 구조 설계
- fetch-depth: 0 설정을 통한 Full History 확보로 정확한 commit SHA 비교 및 git diff 동작 보장
- SemVer 기반의 Tagging 전략(@v1, @v1.x.y, @commit-sha)을 적용하여 하위 호환성과 불변성 참조를 동시에 제공하는 버전 관리 체계 구축
실천 포인트
1. 반복적 태스크 자동화 시 전체 스캔 대신 Git Diff를 통한 변경분 처리 검토
2. 외부 시스템 연동 시 상태 저장소 대신 대상 시스템의 API를 활용한 Stateless 설계 고려
3. 자동화 도구 설계 시 완전 자동화보다 최종 승인 단계를 둔 Draft 모드 제공으로 안전성 확보
4. GitHub Action 개발 시 Shallow Checkout으로 인한 Diff 오류 방지를 위해 fetch-depth 설정 확인