본문 바로가기

Git

Git action을 이용한 TIL README 작성

 최근 github을 관리하고 싶어 개발자들이 많이 하는 TIL(Today I Learned)을 작성해보고 있다. 지금은 영어 공부 때문에 개발 공부를 많이 하고 있진 않지만 github에 TIL을 작성하기에 TIL repository에 README가 필요해 보였다.

 어떤 형식으로 작성할까 살펴보던 중, Github action을 통해 간편하게 TIL README 업데이트 자동화에서 git action을 이용하여 TIL README를 자동으로 작성하는 방법을 찾았다. 이에 대해 짧게 포스팅하고자 한다.

 

+ python을 이용해서 내 입맛대로 README를 작성하는 법을 알게되어 추가로 포스팅하였다.

Git action에서 python을 활용하여 README 자동 업데이트 하기

 

Git action에서 python을 활용하여 README 자동 업데이트 하기

일전에 github action을 이용하여 TIL의 README를 자동으로 업데이트하는 법을 다뤄봤다. Git action을 이용한 TIL README 작성 Git action을 이용한 TIL README 작성 최근 github을 관리하고 싶어 개발자들이 많이

lys7aves.tistory.com

 

설정 방법

GitHub Action for Autoformatting TIL README's

 

TIL Auto-Format README - GitHub Marketplace

A GitHub action that can be used with a TIL repo to autogenerate a README.md

github.com

 위 사이트에 사용 방법에 대해 나와 있다.

 

.github/workflows/build.yml

name: Build README
on:
  push:
    branches:
    - main
    paths-ignore:
    - README.md
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Check out repo
      uses: actions/checkout@v2
      with:
        # necessary for github-action-til-autoformat-readme
        fetch-depth: 0
    - name: Autoformat README
      uses: cflynn07/github-action-til-autoformat-readme@1.2.0
      with:
        #description: |
          #A collection of concrete writeups of small things I learn daily while working
          #and researching. My goal is to work in public. I was inspired to start this
          #repository after reading Simon Wilson's [hacker new post][1], and he was
          #apparently inspired by Josh Branchaud's [TIL collection][2].
        description: |
          A collection of concrete writeups of small things I learn daily while working
          and researching.
        #footer: |
          #[1]: https://simonwillison.net/2020/Apr/20/self-rewriting-readme/
          #[2]: https://github.com/jbranchaud/til
        list_most_recent: 2 # optional, lists most recent TILS below description
        date_format: "2020 Jan 15:04" # optional, must align to https://golang.org/pkg/time/#Time.Format

 이 코드는 위 사이트에 있는 .github/workflows/build.yml 코드를 내 입맛대로 바꾼 코드이다.

 사실 크게 건드린 부분은 없다. 윗부분 branches 부분에서 나는 branch가 master가 아니라 main이기에 이 부분을 수정해주었으며, description 부분에서 쓸데없는 부분을 지우고, 지우는 과정에서 참고 링크를 가져올 필요가 없어 footer 부분을 주석 처리해 주었다.

 

auto README.md

 수정한 buil.yml을 push 해주면 위와 같이 README.md 파일이 자동으로 만들어지는 것을 확인할 수 있다.

 

시행착오

 사실 오늘 git action이란 것을 처음 알았다. 때문에 당연히 여러 가지 시행착오가 있었다.

git action 사용

 처음 파일을 작성하고 github에 올리려 하자 아래와 같은 에러가 발생하였다.

refusing to allow a Personal Access Token to create or update workflow

 이는 내가 발급한 토큰이 workflow에 접근하지 못하고 있다는 뜻이다. 따라서 발급한 토큰의 권한을 수정해주어야 한다. 이는 아래 링크에서 자신이 발급한 토큰으로 들어가 범위를 workflow에도 체크해주어야 한다.

https://github.com/settings/tokens

 

참고: [Github] refusing to allow a Personal Access Token to create or update workflow 에러 해결

 

 

README.md 에 파일이 뜨지 않는 상황 발생

 처음에 build.yml을 만들고 TIL repository에 push를 하자 README가 만들어졌다. 단번에 성공하나 싶었지만 그렇지 않았다. README 파일은 만들어졌으나 내가 올렸던 파일들이 하나도 기록되어 있지 않는 것이었다. 처음 git action을 쓰던 것이었기에 다양하게 삽을 판 후, 그 원인을 알 수 있었다.

 내가 사용하고자 하는 action에서는 폴더 안에 폴더는 인식하지 않는 듯하였다. 나의 경우 English 폴더 안에 Vocabulary 폴더를 만들어 그 안에 파일을 넣어뒀기에 English 폴더에 파일이 없는 것으로 판단한 듯하였다. Vocabulary에 있던 파일을 Vocabulary 폴더를 없애고 바로 English 폴더에 넣으니 README에 파일이 업데이트되었다. 따라서 나와 같은 문제를 겪는 사람들은 폴더를 2개 이상 쌓지 않길 바란다. (이걸 가능하게 하려면 왠지 action에 대해 더 공부해야 될 것 같아서 우선은 깔끔하지 않더라도 이렇게 사용하려고 한다. 추후 해결책을 알게 된다면 수정하도록 하겠다.)

 

 

마치며...

 TIL README를 만들어야지 만들어야지 하다가 이제야 만들어보게 되었다. 원래는 단순히 정적인 파일로 만드려 했으나, 뜻밖에 action을 사용한 README 파일을 만드는 법을 알아내서 덕분에 git action의 존재에 대해서도 알게 되었고 여러모로 재미있는 시간을 보낼 수 있었다.

 아직은 git action에 대해 잘 몰라 내가 주어진 상황에 맞추고 있지만 언젠간 git action에 대해 공부한 후, build.yml을 내 입맛에 맞게 수정할 것이다.