import requests
import json
# Set your GitHub username and repository name
username = "your-username"
repository = "your-repository"
# Generate new deploy key using GitHub API
def generate_deploy_key():
url = f"https://api.github.com/repos/{username}/{repository}/keys"
headers = {
"Accept": "application/vnd.github.v3+json",
"Authorization": "token your-token" # Replace with your GitHub access token
}
data = {
"title": "Deploy Key",
"key": "your-public-ssh-key",
"read_only": True
}
response = requests.post(url, headers=headers, data=json.dumps(data))
return response.json()
# Get list of deploy keys for a repository
def get_deploy_keys():
url = f"https://api.github.com/repos/{username}/{repository}/keys"
headers = {
"Accept": "application/vnd.github.v3+json",
"Authorization": "token your-token" # Replace with your GitHub access token
}
response = requests.get(url, headers=headers)
return response.json()
# Remove deploy key from a repository
def remove_deploy_key(key_id):
url = f"https://api.github.com/repos/{username}/{repository}/keys/{key_id}"
headers = {
"Accept": "application/vnd.github.v3+json",
"Authorization": "token your-token" # Replace with your GitHub access token
}
response = requests.delete(url, headers=headers)
return response.status_code == 204
# Examples of how to use the functions
generated_key = generate_deploy_key()
deploy_keys = get_deploy_keys()
is_removed = remove_deploy_key(key_id)
print(generated_key)
print(deploy_keys)
print(is_removed)