Velog 포스트 자동 백업하기(특정 시리즈) - GitHub Actions로 구현하는 GraphQL API를 이용한 동기화

cheringring·2025년 5월 12일

github

목록 보기
3/4
post-thumbnail

하고 싶어서 찾아봤더니 아무도 한 사람이 없어서 구현해보는 ...

  1. 구현 기능

    • Velog 시리즈별 포스트 동기화
    • 마크다운 형식 자동 변환
    • 6시간마다 자동 업데이트
  2. 구현 방법

    • GitHub 저장소 설정
    • GitHub Actions 워크플로우 작성
    • Python 스크립트 작성
  3. 사용 방법

    • 초기 설정 방법
    • 자동 동기화 확인
    • 수동 동기화 방법
  4. 추가 커스터마이징

    • 다른 시리즈 동기화
    • 동기화 주기 변경
    • 마크다운 형식 수정


1. 원본 저장소 생성



2. git clone <저장소 명> or codespace 들어감.

git clone 할 시

git clone <저장소 >
cd <저장소 >



3. .github/workflows 디렉토리 생성

mkdir -p .github/workflows



4. .github/workflows/velog-sync.yml 파일 작성


5. 특정 시리즈 동기화 스크립트 작성

이렇게 되면 내가 쓴 velog 이름대로 posts 폴더에 .md 형태로 저장된다


디렉토리 구조




GitHub Actions 실행 확인

1. GitHub 저장소의 Actions 탭 -> 좌측 Sync Velog GitHub Series Posts 워크플로우 확인

Sync Velog~ 클릭 후 Run workflow


run 완료한 화면

sync Velog GitHub Series Posts 액션 클릭하면

이런 창이 뜨는데

Syns Posts에 이런 화면이 뜨면 완전하게 된거다.
후후

Actions 권한 설정 확인

1. 저장소 Settings → Actions → General

2. Workflow permissions에서 Read and write permissions 선택하고 Save




12차 시도만에 했습니다. git commit이랑 push 무진장함 ㅎㅎ
log보면서 계속 뜯어 고쳤네요.


짠 !

이렇게 완전히 스크래핑 된 화면을 볼 수 있다.
아주 유용하게 쓰고 있어서 기분이 좋다.

코드를 보시다시피 6시간마다 자동으로 동기화 되고, 그냥 업로딩 하고 싶으면 Action들어가셔서 workflow 클릭하시면 posts 에 md 형식으로 마크다운 되어 있을겁니다.

깃허브 Posts 디렉토리 안에 표시되는 .md 제목은 벨로그 링크 주소 이름이 표시됩니다.

원래 제목으로 했는데 이렇게 하는 이유는 URL slug는 고유하고 안정적이고, 특수문자나 공백이 없어 파일 시스템에 안전합니다.

그리고 가장 큰 이유는 포스트의 제목이 변경되어도 동일한 파일을 유지할 수 있습니다.

profile
체은 Github:@cheringring

0개의 댓글