Skip to content

🤖 Simple GitHub Organization Invitation Bot in Slack

License

Notifications You must be signed in to change notification settings

geultto/gitvite

Repository files navigation

Gitvite 📨

목차 📚

소개 🎉

소개

Gitvite는 깃헙 조직에 사람을 간단하게 초대하기 위한 대화형 파이썬 애플리케이션입니다.

본 애플리케이션은 글또 멤버들을 효과적으로 조직에 초대하기 위해 만들어졌습니다.

⬆️ Back to Top

디렉토리 구조

본 애플리케이션의 디렉토리 구조는 아래와 같습니다.

이때 소스 코드가 들어있는 디렉토리는 src 폴더입니다.

.
├── LICENSE
├── README.md
├── examples
│   └── example.env
├── images
│   ├── 1.gif
│   └── 2.gif
├── .flake8
├── .pre-commit-config.yaml
├── poetry.lock
├── pyproject.toml
└── src
    ├── core
    ├── main.py
    ├── schema
    │   ├── __init__.py
    │   ├── information.py
    │   └── response.py
    ├── test
    │   └── __init__.py
    └── util
        ├── __init__.py
        ├── cli.py
        ├── github.py
        └── worker.py

⬆️ Back to Top

기능 🚀

패키지 설치

패키지 관리는 Poetry를 활용합니다.

만약 Poetry가 따로 설치되어 있지 않다면 아래와 같은 명령문으로 설치 가능합니다.

pip install poetry

Poetry 설치와 관련된 더 자세한 내용은 공식 문서 중 설치 부분을 통해 확인 가능합니다.

Poetry 설치가 되어 있거나 새로 설치를 완료하였다면 pyproject.toml 파일이 존재하는 위치에서 아래와 같은 명령문을 입력합니다.

poetry install

만약 개발 단계에 사용되는 패키지를 다운로드 받지 않길 원한다면 아래와 같은 명령문을 입력합니다.

poetry install --no-dev

사용되는 패키지는 아래와 같습니다.

  • typer
  • pandas
  • pydantic
  • requests
  • email-validator
  • python-dotenv
  • openpyxl

개발 단계에서 사용되는 패키지는 아래와 같습니다.

  • pre-commit
  • flake8
  • black
  • isort
  • mypy
  • types-requests

포매팅 관련한 값이 설정되어 있는 파일은 .pre-commit-config.yaml 파일과 .flake8 파일, 그리고 pyproject.toml 파일입니다.

⬆️ Back to Top

실행 방법

패키지 설치가 완료되었다면 아래와 같은 명령문으로 애플리케이션을 실행 가능합니다.

해당 명령문은 src/main.py 파일 내에 존재하는 app() 함수를 타겟으로 하여 실행합니다.

poetry run python -m src.main

애플리케이션을 실행하면 아래 이미지와 같습니다.

Main GIF

⬆️ Back to Top

깃헙 액세스 토큰 생성

본 애플리케이션을 이용하기 위해서는 깃헙 서비스에서 Developer settings 페이지에 들어가 액세스 토큰을 발급 받아야 합니다.

이때 아래 이미지와 같이 admin:org 부분 중 write:orgread:org 권한을 허가해야 조직 초대가 가능해집니다.

⬆️ Back to Top

.env 파일 활용

.env 파일에 입력되어야 할 항목은 아래와 같습니다. 해당 부분은 example.env 파일에서도 확인 가능합니다.

이때 유의해야 할 사항은 .env 파일이 해당 애플리케이션 디렉토리의 최상단에 존재해야 한다는 것입니다.

# examples/example.env

FILE_TYPE=
FILE_PATH=

GITHUB_ACCOUNT_COLUMN_NAME=
GITHUB_ORGANIZATION_TEAMS_COLUMN_NAME=

GITHUB_ACCESS_TOKEN=
GITHUB_ORGANIZATION_NAME=
GITHUB_ORGANIZATION_TEAM_NAME=

이때 각각의 항목은 아래와 같은 의미를 같습니다

  • FILE_TYPE : 대상이되는 파일의 종류입니다. 현재 1CSV , 2EXCEL 파일을 의미합니다.
  • FILE_PATH : 대상이 되는 파일의 경로입니다. 이때 절대경로 및 상대경로 모두 가능합니다.
  • GITHUB_ACCOUNT_COLUMN_NAME : 파일 속 사용자들의 깃헙 계정이 저장되어 있는 컬럼명입니다.
  • GITHUB_ORGANIZATION_TEAMS_COLUMN_NAME : 파일 속 사용자를 초대하려는 깃헙 조직 정보가 저장되어 있는 컬럼명입니다.
  • GITHUB_ACCESS_TOKEN : 깃헙 서비스에서 발급 받은 액세스 토큰 값입니다.
  • GITHUB_ORGANIZATION_NAME : 사용자를 초대하려는 깃헙 조직의 이름입니다.
  • GITHUB_ORGANIZATION_TEAM_NAME : 사용자를 초대하려는 깃헙 조직의 팀 이름입니다.

만약 .env 파일이 존재하지 않거나 필수적으로 요구가 되는데 입력되지 않은 값이 존재하면 아래와 같이 터미널에서 대화형으로 값을 입력합니다.

Environment Configuration GIF

⬆️ Back to Top

라이선스 📜

본 애플리케이션 및 소스 코드는 MIT 라이선스 정책을 따릅니다.

⬆️ Back to Top

수정일자 📆

2022. 07. 07. 목요일

  • 최초 등록

⬆️ Back to Top

About

🤖 Simple GitHub Organization Invitation Bot in Slack

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages