Skip to content

Latest commit

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Table of Contents

github

Module to interface with GitHub API

GitHubRequests Objects

classGitHubRequests()

Parent class to execute GitHub API requests

__init__

def__init__(token: str, endpoint: str, debug: bool=False)

Contructor

Arguments:

  • token: GitHub token (gotten from the user Settings page)
  • endpoint: Resource endpoint
  • debug: Debug mode

download

defdownload(url: str, output_file: str)

Download object from GitHub

Arguments:

  • url: URL
  • output_file: local file name

add_variable

defadd_variable(name: str, value: str)

Add variable

Arguments:

  • name: variable name to add
  • value: variable value

delete_variable

defdelete_variable(name: str)

Delete variable

Arguments:

  • name: variable to delete

list_variables

deflist_variables() ->dict

List variables

Returns:

variable dict

list_secrets

deflist_secrets() ->dict

List secrets

Returns:

secret dict

delete_runner

defdelete_runner(runner_id: int)

Delete runner

Arguments:

  • runner_id: runner to delete

list_runners

deflist_runners() ->dict

List runners

Returns:

runner dict

get_issues

defget_issues() ->dict

List issues

Returns:

issues dict

GitHubOrganization Objects

classGitHubOrganization(GitHubRequests)

Class to manage Organizations via GitHub API

__init__

def__init__(token: str, organization: str, debug: bool=False)

Contructor

Arguments:

  • token: GitHub token (needs the admin:org rights)
  • organization: Organization name
  • debug: Debug mode

list_repositories

deflist_repositories() ->dict

List organization repositories (generator to handle pagination)

Returns:

repository infos

get_pull_requests

defget_pull_requests(state: str, author: str=None) ->dict

Get pull requests at organization level

Arguments:

  • state: Status (open, closed)
  • author: Author (GitHub login)

Returns:

GitHub API JSON Response

find

deffind(pattern: str, path: str=None) ->dict

Get pull requests at organization level

Arguments:

  • state: Status (open, closed)
  • author: Author (GitHub login)

Returns:

GitHub API JSON Response

GitHubRepository Objects

classGitHubRepository(GitHubRequests)

Class to manage Repositories via GitHub API

__init__

def__init__(token: str, repository: str, debug: bool=False)

Contructor

Arguments:

  • token: GitHub token (needs the repo rights)
  • repository: repository name
  • debug: Debug mode

clone

defclone(destination: str=None, ref: str=None)

Clone a remote repository locally

Arguments:

  • destination: local destination directory
  • ref: remote branch or tag to clone

list_runs

deflist_runs(**kwargs) ->dict

List repository action runs (generator to handle pagination)

Returns:

run infos

get_run

defget_run(run_id: int) ->dict

Get a specific repository action run

Arguments:

  • run_id: Run ID

Returns:

run info (JSON format)

cancel_run

defcancel_run(run_id: int)

Cancel a specific run

Arguments:

  • run_id: ID of the run to cancel

list_commits

deflist_commits() ->dict

List repository commits (generator to handle pagination)

Returns:

commit infos

get_deploy_keys

defget_deploy_keys() ->dict

Get the deploy keys in a repository

Returns:

Keys (JSON format)

add_deploy_key

defadd_deploy_key(title: str,
content: str,
write_access: bool=False) ->dict

Add a new deploy key in a repository

Arguments:

  • title: Title
  • content: Key content
  • write_access: Allow write access

Returns:

Response (JSON format)

add_secret

defadd_secret(name: str, value: str) ->dict

Add Secret

Arguments:

  • name: variable name to add
  • value: secret value

Returns:

Secret in JSON format

get_commit

defget_commit(branch: str) ->dict

Get the latest commit of a specific branch

Arguments:

  • branch: branch name

Returns:

commit info (JSON format)

get_pull_request

defget_pull_request(number: int) ->dict

Get a specific pull request info

Arguments:

  • branch: pull request number

Returns:

pull request info (JSON format)

pull_request_approved

defpull_request_approved(number: int) ->bool

Get a list of pull requests reviewers

Arguments:

  • branch: pull request number

Returns:

pull request reviewers (JSON format)

browse

defbrowse(path: str) ->dict

Browse the repository file structure on the default branch

Arguments:

  • path: Path to browse

Returns:

JSON file structure

list_artifacts

deflist_artifacts(run_id: int) ->str

List of the artifacts generated by a specific run

Arguments:

  • run_id: Run ID

Returns:

JSON artifact details

execute_workflow

defexecute_workflow(workflow: str,
payload: dict,
head_sha: str=None) ->int

Execute a workflow dispatch run and return the run ID

Arguments:

  • workflow: Remote workflow file name
  • payload: Parameters to send to the workflow
  • head_sha: current HEAD SHA of the branch where the workflow is executed

Returns:

Run ID

export_variables

defexport_variables(url: str, workflow: str, output: str, prefix: str=None)

Extract variables from artifacts and fill a file with the variables

Arguments:

  • url: Remote artifact URL
  • workflow: variable name workflow
  • output: Local file name where the variables are exported
  • prefix: exported variable prefix

create_pull_request

defcreate_pull_request(branch: str,
commit_message: str,
files: dict,
target_branch: str=None) ->str

Create a pull request

Arguments:

  • branch: Source branch
  • commit_message: Commit message
  • files: Dict of {path: content}
  • target_branch: Destination branch (default: default branch)

Returns:

Pull Request URL

About

Github API Interface for Python

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages