github, gitlab 또는 gitea webhooks를 수신하고 그들에게 행동하기위한 플라스크 청사진을 제공하는 파이썬 라이브러리. 이 라이브러리는 자동 배포, 테스트 및 통합을 허용하는 WebHooks를 제공합니다. 그러나 청사진의 개방형 특성으로 인해이 동작은 매우 열린 종료 클래스 종속성 트리 덕분에 쉽게 사용자 정의 할 수 있습니다.
설정 중에 GIT쪽에 Webhook을 설정하십시오. 모든 종류의 비밀 키를 입력 할 수있는 기회에주의를 기울이십시오. Webhook 확인을 활성화하려면 나중에 해당 키가 필요합니다 . 이것은 내가 당신에게 큰 조언을하는 것입니다 . Github의 경우 창조 중에 제공하는 비밀 끈, 비밀 토큰이 될 gitlab 및 승인 토큰이 될 gitea의 경우.
이 패키지를 설치하십시오
PIP 사용
pip install gitAppWebhook저장소를 복제하여
git clone https://github.com/TCA166/gitWebhook.git
pip install -r gitWebhook/requirements.txt이 저장소를 서브 모듈로 포함시킴으로써
git submodule add https://github.com/example/repo.git gitWebhook
pip install -r gitWebhook/requirements.txt PIP 패키지를 다른 패키지와 같이 설치하는 동안이 repo 폴더의 다른 패키지는 로컬 패키지처럼 작동한다는 것입니다. 즉,이 repo를 프로젝트 폴더로 클로닝하면 Gitwebhook가 PIP를 통해 설치된 것처럼 gitWebhook 가져올 수 있습니다. 더 나은 일이 무엇인지 이해하는 이점이 추가 된 하위 모듈로 추가하는 것도 마찬가지입니다.
설정으로 webhookBlueprint (또는 하위 클래스 중 하나) 인스턴스를 만듭니다.
import gitWebhook
wb = gitWebhook . webhookBlueprint ( token , url_prefix = "/" )원하는 플라스크 앱에 인스턴스를 등록하십시오.
from flask import Flask
app = Flask ( __name__ )
app . register_blueprint ( wb )길을 잃었다면 공식 Github 리소스를 항상 보거나 구성된 Flask WebApp이있는 예제가있는 WSGI.py를 볼 수 있습니다.
이 라이브러리는 Webhooks와 다른 Webhook 처리 기능을 갖춘 몇몇 파생 클래스 만 수신하기위한 기본 청사진 파생 클래스를 제공합니다.
이 매우 기본적인 클래스 자체에는 Webhook 처리 기능이 없지만 Webhook을 수신하는 청사진이 도출 될 수있는 기반으로 기능합니다. Github 및 Gitlab Blueprints에 필요한 모든 검증을 완전히 구현하므로 파생해야 할 클래스가되어야합니다.
webhookBlueprint 에서 파생 된이 클래스는 서버에서 배포 및 테스트를 자동화하는 수단으로 사용됩니다. GitHub 동작을 사용하지 않으려면이 청사진이 등록 된이 블루 프린트와 함께 항상 플라스크 앱을 사용할 수 있습니다.
/ 엔드 포인트에 대한 POST 요청을 수신하면 청사진 :
git pull 수행합니다 webhookBlueprint 에서 파생 된이 클래스는 다른 서비스를 통합하는 수단으로 사용되는 것을 목표로합니다. Webhook 페이로드를 단일 인수로 호출 Callable 목록으로 초기화에 제공하며 Webhook을 받으면 이러한 기능이 요구됩니다. 따라서 Callable 에서 단순히 통합되면이 클래스와 서비스를 쉽게 통합 할 수 있습니다.
/ 엔드 포인트에 대한 POST 요청을 수신하면 청사진 :
functions 목록에 포함 된 모든 함수를 호출합니다두 가지 방법으로 원하는 수업을 쉽게 조정할 수 있습니다.
webhookToken 제공 (또는 제공하지 않음)하여 WebHook 확인을 활성화 또는 비활성화합니다.unittest.testSuite 인스턴스를 제공하여 실행하는 단위 테스트 활성화 (PullerWebHookBluePrint)logging.Logger 제공하여 로깅을 활성화합니다. logger 인스턴스receiveWebhook 와 processWebhook 두 가지 방법이 있습니다. 전자를 무시하여 원시 요청이 처리되고 확인되는 방식을 변경하십시오. Webhook이 확인되면 후자를 대체하여 수행 한 작업을 변경하십시오. 이 작업은 MIT 라이센스에 따라 라이센스가 부여됩니다.