
C2용 Git 웹 훅 터널
C2를 위한 Git 웹 후크 터널
# apt-get update && apt-get upgrade -y
# apt-get install python3-pip git -y
# pip install --upgrade pip
# pip install virtualenv
# virtualenv -p python venv
# . venv/bin/activate
# git clone https://github.com/dsnezhkov/octohook
# pip install prompt_toolkit PyGithub bottle pygments pyaml delegator.py
또는
pip install -r doc/requirements.txt
서비스 GH 계정으로 로그인하세요.
다음에 따라 앱 토큰을 생성하세요: https://github.com/settings/tokens/new
config/client.yml 및 config/server.yml에서 git_app_token: '86c0ec38b90909c4fbb1cf7f4e20c8f7f451'을(를) 업데이트하세요.
서버와 클라이언트에 에이전트 ID를 설정하세요. 예: agentid: 'b932e9f5'
keys/server.pem을 생성하세요.
첫 번째 클라이언트 또는 서버가 저장소를 생성합니다. git_repo_name: 'rendezvous'
초기 웹후크(들)을 설정하세요: https://github.com/your-id/rendezvous/settings/hooks/new
Payload URL: https://IP-or-HOST:PORT/route/을(를) 설정하세요. 여기서 IP는 OC 웹 서비스의 IP, PORT는 수신 대기 포트, /route/는 구성 파일의 hook_route: '/server/' 지시문에 지정된 후크 경로입니다.
설정: Content-type: application/json
" 기본적으로 페이로드를 전달할 때 SSL 인증서를 확인합니다. " 데모에서는 비활성화하고, 프로덕션(letsencrypt)에서는 활성화하세요.
모든 이벤트를 수신하도록 선택할 수 있지만, 'Let me select individual events'(개별 이벤트 선택)를 선택해도 됩니다.
OC에는 최소한 "Issue comment", "Issues"가 필요합니다.
웹후크 생성 시 위의 Payload URL에서 octohook 서버를 시작해야 합니다. "Active"로 설정하면 "이 후크가 트리거되면 이벤트 세부 정보를 전달합니다"라는 핑 등록 요청이 OC 서버로 전송됩니다.
웹후크에서 "녹색 체크 표시(Green checkmark)"가 보이면 등록된 것입니다. 그렇지 않으면 매개변수를 확인하고 핑을 "다시 전달(redeliver)"하세요.
필요한 경우 다른 웹후크에 대해 설정을 반복하세요(양방향 RTM 및 swarm(향후)).
python octohook.py ./config/server.yml
python octohook.py ./config/client.yml