Notifications

This part of the documentation covers the Thread and Subscription objects.

Notification Objects

class github3.notifications.Thread(notif, session=None)

The Thread object wraps notification threads. This contains information about the repository generating the notification, the subject, and the reason.

Two thread instances can be checked like so:

t1 == t2
t1 != t2

And is equivalent to:

t1.id == t2.id
t1.id != t2.id

See also: http://developer.github.com/v3/activity/notifications/#view-a-single-thread

comment = None

Comment responsible for the notification

delete_subscription()

Delete subscription for this thread.

Returns:bool
from_json(json)

Return an instance of cls formed from json.

id = None

Id of the thread

is_unread()

Tells you if the thread is unread or not.

last_read_at = None

datetime object representing the last time the user read the thread

mark()

Mark the thread as read.

Returns:bool
ratelimit_remaining

Number of requests before GitHub imposes a ratelimit.

Returns:int
reason = None

The reason you’re receiving the notification

refresh(conditional=False)

Re-retrieve the information for this object and returns the refreshed instance.

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

The reasoning for the return value is the following example:

repos = [r.refresh() for r in g.iter_repos('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.iter_repos('kennethreitz')]
[r.refresh() for r in repos]

Which is really an anti-pattern.

Changed in version 0.5.

repository = None

Repository the comment was made on

set_subscription(subscribed, ignored)

Set the user’s subscription for this thread

Parameters:
  • subscribed (bool) – (required), determines if notifications should be received from this thread.
  • ignored (bool) – (required), determines if notifications should be ignored from this thread.
Returns:

Subscription

subject = None

Subject of the Notification, e.g., which issue/pull/diff is this in relation to. This is a dictionary

subscription()

Checks the status of the user’s subscription to this thread.

Returns:Subscription
thread = None

Thread information

to_json()

Return the json representing this object.

updated_at = None

When the thread was last updated

urls = None

Dictionary of urls for the thread


class github3.notifications.Subscription(sub, session=None)

The Subscription object wraps thread and repository subscription information.

See also: http://developer.github.com/v3/activity/notifications/#get-a-thread-subscription

created_at = None

datetime representation of when the subscription was created

from_json(json)

Return an instance of cls formed from json.

ratelimit_remaining

Number of requests before GitHub imposes a ratelimit.

Returns:int
reason = None

reason user is subscribed to this thread/repository

refresh(conditional=False)

Re-retrieve the information for this object and returns the refreshed instance.

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

The reasoning for the return value is the following example:

repos = [r.refresh() for r in g.iter_repos('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.iter_repos('kennethreitz')]
[r.refresh() for r in repos]

Which is really an anti-pattern.

Changed in version 0.5.

repository_url = None

API url of the repository if it exists

set(subscribed, ignored)

Set the user’s subscription for this subscription

Parameters:
  • subscribed (bool) – (required), determines if notifications should be received from this thread.
  • ignored (bool) – (required), determines if notifications should be ignored from this thread.
thread_url = None

API url of the thread if it exists

to_json()

Return the json representing this object.