Recent Posts
Recent Comments
Link
Today
Total
05-20 02:33
관리 메뉴

채린씨의 티스토리

[GitHub] 레포지토리의 파일 링크 README.md에 자동 업데이트 본문

Git

[GitHub] 레포지토리의 파일 링크 README.md에 자동 업데이트

채린씨 2022. 8. 1. 20:44

부트캠프에서 매일매일 TIL을 작성하라고 해서 GitHub 레포지토리를 새로 만들었다. 그런데..

 

매일매일 리드미에 링크를 추가하는 건 너무 귀찮은걸... 지난번에 레포 파일 수를 리드미에 자동 업데이트했던 코드를 조금만 수정하면 되지 않을까...👻 (참고: https://bit.ly/3zNjBf5)

 

가보자고.. (이 글은 부트캠프 동료들을 위한 것임을 알립니다.🥰)


1. 자동으로 업데이트되는 README를 적용할 레포지토리를 생성해주세요.

 각자 가지고있는 TIL용 레포만 있으면 됩니다!

이미 작업이 완료된 상태라.. workflows 뭐시기랑 utils 뭐시기는 지금부터 같이 만들어나갈거예요!

 

2. 해당 레포지토리에 utils 폴더를 만들고, 그 안에 check_files.py 파일을 생성해주세요.

아래 코드를 살짝만 수정해서 복붙하시면 됩니다!

import os


def get_file_list():
    file_list = [file for file in os.listdir("./") if "2022" in file]
    file_list = sorted(file_list)
    total_file_cnt = len(file_list)
    return file_list, total_file_cnt
  
  
def make_info(file_list, total_file_cnt):
    info = f"## TIL List\nTotal TIL Count: {total_file_cnt}개\n"
    for file in file_list:
        temp = f"- [{file}](https://github.com/chaerin-dev/connecTo_TIL/blob/main/{file})\n"
        info += temp
    return info
    

def make_read_me(info):
    return f"""# connecTo_TIL
Zerobase connecTo 프론트엔드 스쿨 1기 TIL<br><br>
{info}
"""


def update_readme():
    file_list, total_file_cnt = get_file_list()
    info = make_info(file_list, total_file_cnt)
    readme = make_read_me(info)
    return readme


if __name__ == "__main__":
    readme = update_readme()
    with open("./README.md", 'w', encoding='utf-8') as f:
        f.write(readme)
  • get_file_list(): 루트 디렉토리에서 이름에 "2022" 문자열을 포함하는 모든 파일 이름을 file_list에 저장하고 정렬한다. 모든 파일 개수를 total_file_cnt에 저장한다.
    • TIL이 다른 폴더 내부에 있을 경우 os.listdir()안의 경로를 수정해주시면 됩니다!
  • make_info(file_list, total_file_cnt):  get_file_list()에서 만들어진 file_list, total_file_cnt를 이용해 "2022" 문자열을 포함하는 모든 파일 개수, 각 파일의 링크를 info에 저장한다.
    • chaerin-dev는 본인 깃허브 유저네임으로, connecTo_TIL은 본인 레포지토리 이름으로 변경해주시면 됩니다!
  • make_read_me(info): make_info(file_list, total_file_cnt)에서 만들어진 info를 이용해 README에 보일 내용을 readme에 저장한다.

 

3. 레포지토리의 Actions 탭에서 Python application의 Configure 버튼을 눌러 python-app.yml 파일을 수정해주세요.

아래 코드를 살짝만 수정해서 복붙하시면 됩니다!

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Python application

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

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
    - name: Run Update Python Script 
      run: |
        python utils/check_files.py
    - name: Run Update README.md File
      run: |
        git add .
        git diff
        git config --local user.email "chaerin.dev@gmail.com"
        git config --local user.name "chaerin-dev"
        git commit -m "Automatically Update README.md file"
        git push
  • main branch에서 변경사항이 발생할 때 자동 업데이트가 수행되도록 했습니다.
  • user.email과 user.name 에는 본인 이메일과 깃허브 유저네임을 적어주면 됩니다!

 

4. main branch에 새로운 TIL을 추가해봅니다.

main branch에 수정사항이 발생하면 자동으로 리드미가 업데이트됩니다! (실시간으로 반영되는 건 아니고, 최대 1분 정도 소요되는 것 같아요.) 새로운 TIL파일을 생성한 이후에 Action탭에 들어가 보면 자동 업데이트가 잘 진행되는지 실시간으로 확인할 수 있어요. 오류가 생긴 경우 어떤 코드에서 오류가 발생했는지도 확인할 수도 있어요!

시행착오의 흔적

5. README가 잘 업데이트되었는지 확인합니다!

 

* .gitignore에 관련 폴더들을 추가할 경우 작동하지 않습니다!

 


 

잘 작동하지 않으면 언제든지 불러주십쇼~!

 

Comments