import os
import json
import requests
from dotenv import load_dotenv
from github_jwt_key import generate_jwt, generate_installation_token
load_dotenv()
def post_commit_status(deployment, commit_status):
jwt_key = generate_jwt()
install_token = generate_installation_token(
jwt_key,
github_username=deployment.repository_owner,
github_repository_name=deployment.repository_name)
url = f"https://api.github.com/repos/{deployment.repository_owner}/{deployment.repository_name}/statuses/{deployment.sha}"
payload = json.dumps({
"state": deployment.status,
"target_url":
f"https://xylex.cloud/{deployment.organization_name}/{deployment.project_name}/deployments/{deployment.deployment_id}",
"description": commit_status,
"context": "XBP"
})
headers = {
'Content-Type': 'application/json',
'Authorization': f"Bearer {install_token}"
}
response = requests.post(url, headers=headers, data=payload)
json_response = response.json()
print(json_response)
return json_response
def post_commit_comment(deployment, comment_body):
jwt_key = generate_jwt()
install_token = generate_installation_token(jwt_key,
deployment.repository_owner,
deployment.repository_name)
url = f"https://api.github.com/repos/{deployment.repository_owner}/{deployment.repository_name}/commits/{deployment.sha}/comments"
payload = json.dumps({"body": comment_body})
headers = {
'Content-Type': 'application/json',
'Authorization': f"Bearer {install_token}",
'User-Agent': 'XBP-v0.3.7'
}
response = requests.post(url, headers=headers, data=payload)
print(response.text)