xbp 0.4.1

XBP is a build pack and deployment management tool to deploy, rust, nextjs etc and manage the NGINX configs below it
Documentation
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)

    # The URL to post the commit status
    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)