[QA] NotionAPI to SlackAPI 긁어서 파이썬으로 슬랙 주기적으로 보내기 with PythonAnywhere

2023. 6. 29. 18:26QA

728x90
반응형

 

목적

이렇게 Daily로 일정 Sync를 하면서 업무를 Check 하는 중인데요.
이걸 매일 Sync하는 QA Engineer는 매일 들어와서 확인을 하지만,
현재 QA팀의 리소스가 얼마나 있는지
다른 유관부서 및 이해관계자들은 쉽게 인지하기가 힘든 게 사실입니다.

그래서 생각을 해보았는데요!

보통의 같이 협업을 하는 사람들은 대부분 실시간으로 Slack 을 사용을 하고 있었습니다.

그래서 Slack 에 QA팀의 현재 일감 진행 상황이나 일이 무엇이 있는지 Slack으로 공유를 하게되면

QA의 리소스 관리도 도움이 되고, QA요청 할 때도 Slack 에서 일정을 파악하고 Communication 을 할 수 있습니다.

실제로 이렇게 일감을 공유하는 것을 도입을 했을 때 협업 시 이미 QA팀의 업무 일정을 알고 요청을 주셔서

Communication 비용이 많이 줄어든 것을 많이 느꼈습니다.

그래서 이 글에서는 아래 흐름의 동작이 될 수 있도록 합니다.

1. Notion의 일정표를 Notion 공식 API를 사용하여 Python으로 가져온다.

2. Python에서는 json 으로 가져와서 dict에 예쁘게 담아서 데이터를 가공합니다.

3. 가공된 dict Data를 Slack API를 통해서 채널에 예쁘게 공유 합니다.

4. 이렇게 완성된 기능을 Server Hosting 서비스를 이용하여 매일 공유할 수 있도록 동작합니다.

물론 상세한 코드는 여기에서 다루지는 않고, 4번 항목에 대한 방법을 가이드합니다.

 

 

1. PythonAnyWhere에 접속 한다.

https://www.pythonanywhere.com/

  • 회원가입

2. 파일을 업로드 합니다.

※ 대시보드 Files 에서는 하나의 파일만 업로드 할 수 있습니다.

하지만 zip 파일로 올리면 끝!

2. 대시보드에서 Bash 를 엽니다.

ex) pjt zip 파일 이름이 sunbae.zip 이라면

  • 업로드 한 프로젝트 경로로 이동합니다.
unzip sunbae.zip
cd sunbae
  • python 가상 환경을 만들고 실행에 필요한 라이브러리들을 설치 합니다.
virtualenv --python=python3.8 myvenv
source myvenv/bin/activate
pip install -r requirements.txt



3. 스케쥴링을 하기 위해 Tasks 이동합니다.

원하는 시간에 맞춰서 추가하면 되는데요. 서버 시간은 UTC 라서 계산을 잘 해서 진행하면 될 것 같아요

command의 경우에는 직접 실행할 파일을 지정하면 되는데 bash에서 수동으로 실행을 해보고, 되는지 확인하고 추가하면 될 것 같습니다.

workon myvenv && python ~/sunbae/QA_Notion_To_Python/main.py
# 저의 경우는 위의 경로 입니다.

pip install -r requirements.txt 로 모두 필요한 라이브러리를 설치했음에도 ModuleNotFoundError: No module named 'slack_sdk' 와 비슷하게 발생된다면 아래 명령어를 통해 가상환경을 만들어야 합니다.

cd sunbae
mkvirtualenv myvenv
pip install -r requirments.txt

이제 모든 설정이 끝났습니다.



+ 추가 고민

requirements.txt 로 설치를하다보니 확실하게 필요하지 않은 라이브러리들도 같이 설치되는 것 같아서

실제 필요한 라이브러리들만 포함될 수 있게 최적화 후 설치를 해야겠다.

(무료 버전이라서 .... )













 

728x90
반응형