DevOps/Git, GitHub

[GitHub] 깃허브 프로필에 내 블로그 최신글 링크 걸기

jamong5 2023. 6. 2. 15:23

깃허브를 돌아다니다보니 깃허브 프로필에 블로그 최신글 링크를 올리시는 분들이 계시더라구요. 저도 한번 따라해봤습니다ㅎㅎ

모든 정보는 티스토리 기준으로 작성했습니다.

 

동작 요약

이게 어떤식으로 동작하는 것이냐~

1. 블로그 글 정보를 받아와서 readme 를 통째로 새로 작성해주는 파이썬 코드를 만듭니다.

2. 깃허브에서 제공하는 action 기능으로 위 파이썬 코드를 주기적으로 실행시켜주도록 합니다.

이걸 실제로 어떻게 구현할지 코드로 확인해보겠습니다.

 

RSS 로 최신글 정보 받아오기

rss 로 공개할 글 개수를 지정해주어야합니다. 필요한 만큼만 설정해주면 될 것 같네요.

블로그 관리에서 블로그 진입
RSS 개수를 필요한 만큼 설정해주세요

 

내 블로그 RSS 확인해보기

'블로그링크'/rss 입니다. 제 블로그 rss 링크는 https://jamong-5.tistory.com/rss

블로그 RSS 가 잘 열리는지 확인해주세요.

 

RSS 로 readme 파일을 갱신하는 파이썬 코드 만들기

xml 파일을 파싱해서 필요한 정보만 빼오도록 합시다.

import feedparser

blog_url = "내 블로그 RSS 링크"
rss_feed = feedparser.parse(blog_url)

MAX_NUM = 5 # 깃허브에 보이게 할 링크 개수

latest_posts = ""

for idx, entrie in enumerate(rss_feed['entries']):
    if idx > MAX_NUM:
        break
    feed_date = entrie['published_parsed']
    latest_posts += f" - [{feed_date.tm_mon}월 {feed_date.tm_mday}일 - {entrie['title']}]({entrie['link']})\n"

preREADME = """
고정된 readme 부분 작성
"""

resultREADME = f"{preREADME}{latest_posts}"

with open("README.md", "w", encoding='utf-8') as f :
  f.write(resultREADME)

파이썬 코드를 생성해서 올려줍니다.

 

깃허브 action 설정하기

레포 네비바에서 Actions
여기서 Python application 클릭

python application 에서 아래 코드를 넣어주세요

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Python application

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
    
  schedule: # 크론 스케줄러 (분 시 일 월 년)
   - cron: "0 0 */1 * *" # 자정, 1일 단위로 반복 실행
jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.9
      uses: actions/setup-python@v2
      with:
        python-version: 3.9
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip # pip feedparser
        pip install feedparser
    - name: Run Update Python Script # 파이썬 파일 실행하기
      run: |
        python 실행할파이썬파일.py
    - name: Update README.md file
      run: |
        git pull
        git add .
        git diff
        git config --local user.email "깃 이메일"
        git config --local user.name "깃 이름"
        git commit -m "blogPost update"
        git push

 

바로 실행되는지 확인해보고 싶다면 스케줄러를 

corn "* * * * *"

 로 놓고 실행해보세요! 원하는 시간 간격의 스케줄러로 커스텀하면 됩니다.

 

완성