App and Installation API Objects

This section of the documentation covers the representations of various objects related to the Apps API.

class github3.apps.App(json, session: github3.session.GitHubSession)

An object representing a GitHub App.

New in version 1.2.0.

See also

GitHub Apps

Documentation for Apps on GitHub

GitHub Apps API Documentation

API documentation of what’s available about an App.

This object has the following attributes:

created_at

A datetime object representing the day and time the App was created.

description

The description of the App provided by the owner.

events

An array of the event types an App receives

external_url

The URL provided for the App by the owner.

html_url

The HTML URL provided for the App by the owner.

id

The unique identifier for the App. This is useful in cases where you may want to authenticate either as an App or as a specific installation of an App.

name

The display name of the App that the user sees.

node_id

A base64-encoded blob returned by the GitHub API for who knows what reason.

owner

A ShortUser object representing the GitHub user who owns the App.

permissions

A dictionary describing the permissions the App has

slug

A short string used to identify the App

updated_at

A datetime object representing the day and time the App was last updated.

as_dict()

Return the attributes for this object as a dictionary.

This is equivalent to calling:

json.loads(obj.as_json())
Returns

this object’s attributes serialized to a dictionary

Return type

dict

as_json()

Return the json data for this object.

This is equivalent to calling:

json.dumps(obj.as_dict())
Returns

this object’s attributes as a JSON string

Return type

str

classmethod from_dict(json_dict, session)

Return an instance of this class formed from json_dict.

classmethod from_json(json, session)

Return an instance of this class formed from json.

new_session()

Generate a new session.

Returns

A brand new session

Return type

GitHubSession

property ratelimit_remaining

Number of requests before GitHub imposes a ratelimit.

Returns

int

refresh(conditional: bool = False) github3.models.GitHubCore

Re-retrieve the information for this object.

The reasoning for the return value is the following example:

repos = [r.refresh() for r in g.repositories_by('kennethreitz')]

Without the return value, that would be an array of None’s and you would otherwise have to do:

repos = [r for i in g.repositories_by('kennethreitz')]
[r.refresh() for r in repos]

Which is really an anti-pattern.

Changed in version 0.5.

Parameters

conditional (bool) – If True, then we will search for a stored header (‘Last-Modified’, or ‘ETag’) on the object and send that as described in the Conditional Requests section of the docs

Returns

self

class github3.apps.Installation(json, session: github3.session.GitHubSession)

An installation of a GitHub App either on a User or Org.

New in version 1.2.0.

This has the following attributes:

access_tokens_url
account
app_id
created_at
events
html_url
id
permissions
repositories_url
repository_selection
single_file_name
target_id
target_type
updated_at
as_dict()

Return the attributes for this object as a dictionary.

This is equivalent to calling:

json.loads(obj.as_json())
Returns

this object’s attributes serialized to a dictionary

Return type

dict

as_json()

Return the json data for this object.

This is equivalent to calling:

json.dumps(obj.as_dict())
Returns

this object’s attributes as a JSON string

Return type

str

classmethod from_dict(json_dict, session)

Return an instance of this class formed from json_dict.

classmethod from_json(json, session)

Return an instance of this class formed from json.

new_session()

Generate a new session.

Returns

A brand new session

Return type

GitHubSession

property ratelimit_remaining

Number of requests before GitHub imposes a ratelimit.

Returns

int

refresh(conditional: bool = False) github3.models.GitHubCore

Re-retrieve the information for this object.

The reasoning for the return value is the following example:

repos = [r.refresh() for r in g.repositories_by('kennethreitz')]

Without the return value, that would be an array of None’s and you would otherwise have to do:

repos = [r for i in g.repositories_by('kennethreitz')]
[r.refresh() for r in repos]

Which is really an anti-pattern.

Changed in version 0.5.

Parameters

conditional (bool) – If True, then we will search for a stored header (‘Last-Modified’, or ‘ETag’) on the object and send that as described in the Conditional Requests section of the docs

Returns

self