Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Python library for interfacing with the GitHub APIv3

This branch is 1024 commits behind sigmavirus24:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
docs
github3
tests
.coveragerc
.gitignore
.travis.yml
AUTHORS.rst
CONTRIBUTING.rst
HISTORY.rst
LICENSE
MANIFEST.in
Makefile
README.rst
TODO.rst
report_issue.py
requirements.txt
setup.py
unittests.py

README.rst

github3.py

Build Status

Eventually this will be a python module to access the GitHub v3 API.

This is not stable yet and there is no backwards compatibility yet. There will likely be some changes which change behavior in the near future.

Installation

$ pip install github3.py

Dependencies

Every-day Use

Testing

License

Modified BSD license

Examples

See the docs for more detailed examples.

>>> from github3 import login
>>> gh = login(username, password)
>>> issue = gh.issue('sigmavirus24', 'Todo.txt-python', 17)
>>> issue.html_url
u'https://github.com/sigmavirus24/Todo.txt-python/issues/17'
>>> issue.state
u'open'
>>> events = issue.list_events()
>>> events
[<Issue Event [#17 - subscribed - sigmavirus24]>, <Issue Event [#17 - assigned - sigmavirus24]>,
 <Issue Event [#17 - referenced - sigmavirus24]>]
>>> events[0].actor
<User [sigmavirus24:None]>
>>> events[0].issue
<Issue [sigmavirus24/Todo.txt-python #17]>
>>> events[0].closed_at
>>> events[0].event
u'subscribed'
>>> from github3 import login
>>> g = login(username, password)
>>> repo = g.repository('sigmavirus24', 'Todo.txt-python')
>>> sha = repo.create_blob('Testing blob creation', 'utf-8')
>>> sha
u'57fad9a39b27e5eb4700f66673ce860b65b93ab8'
>>> blob = repo.blob(sha)
>>> blob.content
u'VGVzdGluZyBibG9iIGNyZWF0aW9u\n'
>>> blob.decoded
u'Testing blob creation'
>>> blob.encoding
u'base64'
>>> from github3 import login
>>> g = login(username, password)
>>> repo = g.repository('sigmavirus24', 'github3.py')
>>> tag = repo.tag('cdba84b4fede2c69cb1ee246b33f49f19475abfa')
>>> tag
<Tag [cdba84b4fede2c69cb1ee246b33f49f19475abfa]>
>>> tag.object.sha
u'24ea44d302c6394a0372dcde8fd8aed899c0034b'
>>> tag.object.type
u'commit'

Contributing

Please see the section of the documentation pertaining to this.

Testing

If you want to run the unittests with authentication, simply run:

make alltests

From the root of the repository. If you would rather see what will take place on Travis, run:

make travis
# or
make tests

To test how much of the library is covered:

make coverage_auth
# equivalently
make coverage_all
# or without authentication
make coverage

Depending on which you run, you will see different percentages reported by coverage. As of this writing (2012-10-04), coverage_auth reports 95% of the library is covered and every module has coverage >= 80%.

coverage report
Name                 Stmts   Miss  Cover
----------------------------------------
github3/__init__         8      0   100%
github3/api             50      0   100%
github3/auths           48      0   100%
github3/decorators      16      0   100%
github3/events          89      0   100%
github3/gists          101      0   100%
github3/git             93      0   100%
github3/github         359     15    96%
github3/issues         201      0   100%
github3/legacy          97      0   100%
github3/models         187      1    99%
github3/orgs           177      0   100%
github3/pulls          134      6    96%
github3/repos          782    107    86%
github3/users          162      3    98%
----------------------------------------
TOTAL                 2504    132    95%

Author

Ian Cordasco (sigmavirus24)

Contact Options

  • You may contact (via email) the author directly with questions/suggestions
  • You may send your email to github3.py@librelist.com
Something went wrong with that request. Please try again.