Skip to main content

GitHub 프로필 자동 업데이트 방법: 초보자도 쉽게 따라하는 자동화 가이드와 실전 예제

Published 4 min readMarkdown

# 📌 서론 – GitHub 프로필 관리, 왜 이렇게 귀찮을까?

GitHub는 개발자에게 온라인 명함과 같은 존재입니다.

새로운 블로그 글을 올리면 README에 링크를 추가하고,

뉴스레터가 발행되면 최신 구독자 수를 표시하고…

이런 작은 업데이트를 매번 손으로 하면 시간 낭비일 뿐 아니라

실수로 최신 정보를 놓치기 쉽습니다.

“프로필을 최신 상태로 유지하고 싶지만, 매번 직접 수정해야 해서 귀찮다.”

이 문제를 해결하기 위해 자동화가 필요합니다.

이번 포스트에서는 GitHub API 활용과 GitHub Actions만으로

프로필을 자동으로 업데이트하는 방법을 단계별로 소개합니다.

초보자도 따라 할 수 있도록 친절하게 설명하니, 지금 바로 도전해 보세요!


# 📦 본론

# 1️⃣ 준비물 체크 – 무엇이 필요할까?

| 준비물 | 설명 |

|--------|------|

| GitHub 계정 | 자동화를 실행할 레포지토리를 만든 뒤, Personal Access Token (PAT) 을 발급합니다. |

| GitHub Actions | GitHub에서 제공하는 CI/CD 서비스로, 워크플로우 파일(.github/workflows/*.yml)만 있으면 자동 실행됩니다. |

| Node.js (또는 Python) | 자동화 스크립트를 작성할 언어. 여기서는 Node.js 예시를 사용합니다. |

| README.md | 프로필에 표시될 내용이 들어있는 파일. 자동으로 업데이트될 영역을 미리 지정해 둡니다. |

SEO 키워드: GitHub 프로필 자동화, GitHub API 활용, GitHub README 자동 업데이트


# 2️⃣ 자동화 흐름 설계 – 전체 그림 그리기

1️⃣ 새 블로그 포스트가 발행될 때 → RSS 피드 혹은 블로그 API 호출

2️⃣ 스크립트가 최신 포스트 URL을 추출 → 마크다운 형식으로 변환

3️⃣ GitHub API를 이용해 README.md에 삽입 → 기존 내용 교체

4️⃣ GitHub Actions가 자동 커밋 & 푸시 → 프로필 페이지가 즉시 업데이트

이 흐름을 구현하면 새 글을 올리는 순간 프로필이 자동으로 최신 상태가 됩니다.


# 3️⃣ GitHub Actions 워크플로우 파일 만들기

레포지토리 루트에 .github/workflows/profile-update.yml 파일을 생성합니다.

yaml

name: Update GitHub Profile

on:

  schedule:

    - cron: '0 * * * *'   # 매시간 실행 (필요에 따라 조정)

  workflow_dispatch:      # 수동 실행도 가능

jobs:

  update-profile:

    runs-on: ubuntu-latest

    steps:

      - name: Checkout repository

        uses: actions/checkout@v3

      - name: Set up Node.js

        uses: actions/setup-node@v3

        with:

          node-version: '20'

      - name: Install dependencies

        run: npm ci

      - name: Run update script

        env:

          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

          BLOG_RSS_URL: https://example.com/rss

        run: node scripts/update-readme.js

      - name: Commit & push changes

        uses: stefanzweifel/git-auto-commit-action@v4

        with:

          commit_message: '🤖 자동 업데이트: 최신 블로그 포스트 반영'

          branch: main

핵심 포인트

  • schedule 로 정기 실행을 지정해 두면 새 포스트가 언제든 반영됩니다.

  • GITHUB_TOKEN 은 기본 제공되는 토큰으로, 별도 PAT 없이도 레포에 푸시가 가능합니다.

  • BLOG_RSS_URL 은 블로그 RSS 피드 주소이며, 환경 변수로 전달해 스크립트에서 사용합니다.


# 4️⃣ 자동 업데이트 스크립트 (scripts/update-readme.js)

javascript

import fetch from 'node-fetch';

import fs from 'fs';

import path from 'path';

// 1️⃣ RSS 피드에서 최신 포스트 추출

async function getLatestPost(rssUrl) {

  const res = await fetch(rssUrl);

  const text = await res.text();

  const match = text.match(/<item>.*?<title>(.*?)<\/title>.*?<link>(.*?)<\/link>/s);

  if (!match) throw new Error('RSS 파싱 실패');

  return { title: match[1], link: match[2] };

}

// 2️⃣ README.md에 삽입할 마크다운 문자열 생성

function buildMarkdown(post) {

  return `### 📚 최신 블로그 포스트\n- [${post.title}](${post.link})`;

}

// 3️⃣ README.md 읽고, 지정된 영역 교체

function updateReadme(newSection) {

  const readmePath = path.resolve('README.md');

  let content = fs.readFileSync(readmePath, 'utf-8');

  const startTag = '<!-- AUTO-START -->';

  const endTag   = '<!-- AUTO-END -->';

  const regex = new RegExp(`${startTag}[\\s\\S]*?${endTag}`);

  const replacement = `${startTag}\n${newSection}\n${endTag}`;

  content = content.replace(regex, replacement);

  fs.writeFileSync(readmePath, content);

}

// 메인 로직

(async () => {

  const rssUrl = process.env.BLOG_RSS_URL;

  const post = await getLatestPost(rssUrl);

  const markdown = buildMarkdown(post);

  updateReadme(markdown);

})();

README.md 예시 (자동 교체 구역 포함)

markdown

# 👋 안녕하세요! 저는 Nicky

<!-- AUTO-START -->

## # 📚 최신 블로그 포스트

- [예시 포스트] (https://example.com/post)

<!-- AUTO-END -->

...

위와 같이 <!-- AUTO-START -->와 <!-- AUTO-END --> 사이에만 내용이 바뀌므로

다른 섹션은 그대로 유지됩니다.


# 5️⃣ 자동화 후 확인 및 유지 보수 팁

| 체크리스트 | 내용 |

|-----------|------|

| 액션 로그 | GitHub Actions > 워크플로우 > 실행 기록에서 오류 여부 확인 |

| README 미리보기 | https://github.com/사용자명?tab=readme 로 직접 확인 |

| RSS 피드 포맷 | 블로그 플랫폼마다 RSS 구조가 다를 수 있으니, getLatestPost 함수 수정 필요 |

| 보안 | GITHUB_TOKEN 외에 별도 API 키가 필요하면 Secrets에 추가하고 env 로 전달 |

정기적으로 액션 실행 결과를 모니터링하면, 자동화가 중단되는 상황을 빠르게 파악할 수 있습니다.


# 🎯 결론 – 지금 바로 자동화를 시작해 보세요!

GitHub 프로필을 수동으로 관리하느라 시간을 낭비하지 마세요.

위에서 소개한 GitHub Actions + Node.js 스크립트 조합만 있으면

새 블로그 글이 올라올 때마다 자동으로 최신 정보를 반영할 수 있습니다.

1️⃣ 레포에 워크플로우 파일을 추가하고,

2️⃣ 스크립트를 작성한 뒤,

3️⃣ GITHUB_TOKEN을 활용해 자동 커밋을 설정하면 끝!

행동 유도: 지금 바로 이 포스트를 북마크하고, 내 레포에 profile-update.yml을 복제해 보세요.

자동화된 GitHub 프로필이 여러분의 개발자 브랜드를 한층 더 빛나게 할 것입니다. 🚀

궁금한 점이나 오류가 발생하면 댓글로 알려 주세요. 함께 해결해 나가겠습니다!

No comments yet. Be the first to comment.

More from this blog