github todo 봇 사용하기

dasong·2021년 11월 17일

프로젝트를 만들다 보면, 미뤄놓을 작업들이나 미처 해결하지 못한 고민 사항들에 대해 주석으로 작성해 놓을 때가 많은 것 같습니다. (// todo: A와 B 중에 뭐가 더 좋을까..)

이렇게 많은 todo들이 쌓아던 와중에, 이전에 다니던 회사에서 팀원분께서 이런 것도 있다더라~ 하시면서 todo 봇을 소개해 주셨고 실제로 도입도 했었습니다.

많은 todo 봇들이 있었지만 저희는 일단 스타 수가 가장 많고 제공되는 기능도 충분해보이는 JasonEtcotodo를 사용했었습니다.

오랜만에 포트폴리오 작업을 하다가 todo 봇을 사용하게 되었는데, 구글링을 해도 이에 대해 한글로 정리해 놓은 글이 없는 것 같아 다음에 또 보기 위해 기록하고자 합니다.

todo란?

github 링크: https://github.com/JasonEtco/todo
document 링크: https://todo.jasonet.co
설치 페이지 링크: https://github.com/apps/todo

간단히 설명하자면, GitHub에 코드를 push 할 때, 코드 내에 달린 주석과 키워드들을 토대로 자동으로 이슈를 포스팅 해주는 Github 앱입니다. (Probot 기반)

간단하게 사용 예시를 먼저 살펴보도록 하겠습니다.

사용 예시

코드에 다음과 같이 작성한 후 push 하면

/**
 * @todo Take over the world
 * @body Humans are weak; Robots are strong. We must cleanse the world of the virus that is humanity.
 */
function ruleOverPunyHumans () {
  // We must strategize beep boop
}

todo 결과

이렇게 issue가 자동으로 포스팅됩니다!

사용 방법

사용 예시를 보았으니, 이제 어떻게 해야 사용할 수 있는지 더 자세하게 알아보도록 합시다.

1. github repository에 todo를 설치합니다.

https://github.com/apps/todo 에 접속하고

install 버튼을 클릭해줍니다.

설치할 repository를 선택합니다.

저는 일단 제 portfolio 레포지토리에만 적용하고 싶어서 이렇게 설정했습니다!

설치할 repository를 선택했으면 Install 버튼을 눌러줍니다.

2. 특정 키워드(디폴트는 @todoTODO)를 포함한 주석을 작성합니다.

위에서 봤던 예시와는 좀 다르게, 다음과 같이 작성해봅시다.

/**
 * This function will aid in the destruction of puny humans.
 * @param {boolean} killAllHumans - Should we kill all humans
 *
 * @todo Take over the entire world
 * @body Humans are weak; **Robots are strong**. We must cleanse the world of the virus that is humanity.
 */
function ruleOverPunyHumans (killAllHumans) {
  // We must strategize beep boop
}
 
module.exports = ruleOverPunyHumans;

3. 코드를 repository에 push 합니다. (defautl branch나 PR, 아무 데나 push 해도 상관 없습니다.)

위의 과정을 잘 따라오셨다면, 다음과 같이 코드 내 주석으로 작성한 내용이 issue로 자동 포스팅 됩니다.

참고로 todo는 JS, Go, C, C#, Ruby, Bash and Python 환경에서 테스트되었으며, 어떤 언어에도 동작할 거라고 합니다.

여기까지 기본 사용 방법에 대해 다루어 보았습니다.

옵션 설정 등 더 많은 기능들이 있기 때문에 todo를 도입해보고자 하시는 분들은 공식 문서를 확인해 보시기 바랍니다.

참고로 https://todo.jasonet.co/ 에서 직접 주석을 작성해보고, issue가 어떻게 포스팅될지 확인해 볼 수 있습니다!

profile
소비자에서 생산자로

0개의 댓글