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.
$ pip install github3.py
- requests by Kenneth Reitz
Modified BSD license
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'
Please see the section of the documentation pertaining to this.
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-05), coverage_auth
reports 98% of
the library is covered and every module has coverage >= 93%.
Name Stmts Miss Cover ---------------------------------------- github3/__init__ 8 0 100% github3/api 54 1 98% github3/auths 50 0 100% github3/decorators 27 0 100% github3/events 89 0 100% github3/gists 101 0 100% github3/git 93 0 100% github3/github 374 0 100% github3/issues 204 0 100% github3/legacy 97 0 100% github3/models 189 0 100% github3/orgs 177 0 100% github3/pulls 138 6 96% github3/repos 790 22 97% github3/users 160 0 100% ---------------------------------------- TOTAL 2551 29 99%
That one miss from github3/api
is bizarre since I know for a fact that
there's a test for it in tests/test_api
. I wouldn't know how to reproduce
it, so I won't report it to nedbat.
Ian Cordasco (sigmavirus24)
- You may contact (via email) the author directly with questions/suggestions
- You may send your email to github3.py@librelist.com