728x90
우선 다음과 같이 Slash Commands가 설정되어 있는 상태
Slash command > Request url > ngrok 화면과 코드 내 정보를 request url 에 넣어준다.
Request URL에는 실행되고 있는 ngrok url + 코드 내 @app.route 다음 텍스트를 입력해 준다
https://{ngrok_number}.ngrok-free.app/unittest
다음과 같이 뒤에 파라미터가 붙는 경우,
다음과 같은 코드를 통해 파라미터를 받아올 수 있다. request.form.get('text')
@app.route('/unittest', methods=['POST', 'GET'])
def unit_test():
command_text = request.form.get('text')
return make_response(f'{command_text} + {url} > OK', response.status_code)
받아온 데이터를 다시 명령어로 출력하는 모습
이를 이용해 파라미터에 따라 다른 젠킨스 job 빌드를 실행할 수 있다.
@app.route('/ordercancle', methods=['POST', 'GET'])
def driver_order_cancle():
command_text = request.form.get('text')
client = command_text.split(" ")[0]
c_value = command_text.split(" ")[1]
if client == "차주" :
url = f"http://10.75.142.35:8080/job/driverOrderCancel/buildWithParameters?driverId={c_value}"
else :
url = f"http://10.75.142.35:8080/job/ownerOrderCancel/buildWithParameters?ownerId={c_value}"
headers = {
"Jenkins-Crumb": "{jenkins-crumb}"
}
# Basic Auth를 위한 사용자명과 비밀번호 입력
username = "{username}"
password = "{password}"
response = requests.post(url, headers=headers, auth=HTTPBasicAuth(username, password))
if response.status_code == 201:
print("Job triggered successfully!")
else:
print(f"Failed to trigger job. Status code: {response.status_code}")
return make_response(f'{command_text} + {url} > OK', response.status_code)
+ jenkins 파라미터와 함께 빌드 api 요청
http://{jenkins_url}:8080/job/driverOrderCancel/buildWithParameters?driverId={c_value}
'CI+CD > Slack 연동' 카테고리의 다른 글
Jenkins + Slack 연동 - 5 (dialog 띄우기 + Interactivity & Shortcuts 설정) (0) | 2024.11.29 |
---|---|
Jenkins + Slack 연동 - 3 (Slash commands/Ngrok/Python Flask) (1) | 2024.10.22 |
Jenkins + Slack 연동 - 1 (Jenkins CI 통합 앱 연동) (0) | 2024.07.14 |
Jenkins + Slack 연동 - 2 (Incoming Webhooks) (0) | 2024.07.14 |
댓글