su-mmer / JBNU_OSS_PROJECT

오픈소스 소프트웨어 슬랙봇 개발 프로젝트(이제 CI를 곁들인)
1 stars 1 forks source link

J Slack-bot

Mocha test




What is Slack-bot?

슬랙봇은 슬랙에서 사용할 수 있는 챗봇입니다. 사용자의 입력에 따라 정해진 대답을 합니다.

슬랙봇 살아있니?

슬랙에게 아무말이나 걸어보세요. 슬랙은 항상 I'm alive.라고 대답해 자신이 동작 중임을 알려줄거에요.

image

인사

슬랙봇에게 인사를 해보세요. 사용자가 hi를 입력하면 슬랙봇이 3가지 랜덤한 대답 중 하나로 반겨줄거에요.

image

오늘 점심 뭐야?

진수당의 오늘 점심 메뉴가 궁금하신가요? 홈페이지까지 들어가 찾아보지 않아도 됩니다. 슬랙봇에게 오늘 점심 뭐야라고 물으면 오늘의 점심과 별점까지 알려줍니다. 별점은 정해진 고기 메뉴가 나오면 +1, 야채 메뉴가 나오면 -1로 설정 되어 있습니다. 1~3점 이내의 점수로 알려드릴게요.

image image

이번주 뭐 나와?

진수당의 이번주 식단이 궁금하다면 이번주 뭐 나와라고 물으면 이번주의 식단을 평가해서 알려드려요. 오늘의 식단과 마찬가지로 1~3점 이내로 알려드려요.

image

학과 사무실 안내

학과 위치가 궁금하신가요? 학과 사무실 안내를 입력하고 궁금한 학과를 입력해주세요. 오타가 나더라도 가장 비슷한 학과를 찾아서 안내해드릴게요.

image

숫자 제곱

슬랙봇에게 숫자를 알려주면 슬랙봇이 제곱수로 대답해줄거에요.

image


To start using Slack-bot

필요한 것: 서버(로컬 또는 클라우드), 슬랙 nodejs(16.x이상), python3.8 사용(3.11에서는 editdistance 작동 안함) pip install editdistance

  1. git clone 또는 zip파일을 다운 받아 주세요.

    $ git clone https://github.com/su-mmer/JBNU_OSS_PROJECT.git
  2. npm dependency를 다운 받습니다.

    $ npm install
  3. 사용 할 슬랙봇의 토큰 번호를 받아옵니다. 슬랙 > 봇 정보에서 xoxb로 시작하는 토큰 번호를 확인 할 수 있습니다.

  4. 최상위 루트에 토큰 파일을 생성합니다.

    <!-- 로컬 사용시 -->
    $ echo <토큰> > ./dev_token
    <!-- 서버 사용시 -->
    $ echo <토큰> > ./token

    이 때, 토큰 파일을 확인하여 개행이 없도록 해야합니다. 토큰 파일에는 오로지 토큰 번호만 있어야합니다.

  5. 실행

    $ npm start
  6. 이제 슬랙봇이 대답 할 수 있습니다. Ctrl+C 로 서버를 종료할 수 있습니다.


To start developing Slack-bot

필요한 것: 서버(로컬 또는 클라우드), 슬랙 nodejs(16.x이상), python3.8 사용(3.11에서는 editdistance 작동 안함) pip install editdistance

  1. GitHub에 New Issue를 등록해주세요. 양식은 Issue 생성 시에 선택하실 수 있습니다.

  2. 상단 Fork를 눌러 이 Repository를 본인 계정으로 Fork 합니다.

  3. \단계를 진행해주세요. 이 때 fork한 본인의 Repository를 clone해야합니다.

  4. 본인이 등록한 Issue 번호와 \<브랜치 타입>에 맞춰 브랜치를 생성합니다. Issue 한 개 당 브랜치는 하나를 권장합니다.

    $ git switch -c <branch_type>/<issue_number>
  5. 본인이 등록한 Issue대로 코드를 수정합니다.

  6. 완료 후 \<커밋 형식>에 맞게 커밋합니다. 커밋 시 git commit을 입력하여 커밋 규칙에 맞게 생성되는지 확인해주세요. 자동으로 <branch_name>(#issue_number):가 생성됩니다.

    image

    • 패키지에 esLint auto fix가 적용되어 있습니다. 자동으로 esLint 검사를 하고 자동으로 변경할 수 없는 부분에서 에러가 발생할 수 있으니 주의하세요!
  7. git push후에 GitHub에서 PR을 열어주세요. PR 템플릿에 맞추어 작성해주시면 됩니다. 특별한 일이 없다면 dev브랜치로 merge PR 진행해주세요.

  8. PR에 리뷰어를 최소 1명 이상 선택해주시고 이슈 번호를 달아주세요.

Git Action을 이용한 배포를 설정하고 싶다면

  1. Repository > Settings > Secrets > Actions에 아래 사항들을 등록해주세요.

    HOST > 내 서버 주소 또는 공인 IP
    USER > 서버에서 로그인 할 user name
    PASSWORD > user의 비밀번호
    PORT > 서버에 접속할 때 사용할 포트 번호 KEY > ssh-key

  2. 서버에 nodejs 16버전, python3 이상 설치되어 있어야 합니다.

자세한 사항은 아래 블로그를 참고해주세요. https://su-mmer.tistory.com/35


브랜치 타입

  • feat : 새로운 기능 추가
  • hotfix : 버그 수정
  • docs : 문서 수정
  • test : 테스트 코드 추가
  • refactor : 코드 리팩토링
  • style : 코드 포맷팅, 코드 변경이 없는 경우
  • chore : 빌드 업무 수정, 패키지 매니저 수정


커밋 형식

\<branch_type>(#이슈번호) : \<Title>

\<Body>


Contributors

qivvon, su-mmer