Skip to main content

Python wrapper for the GitHub API (http://developer.github.com/v3)

Project description

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-09-24), coverage_auth reports 92% 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/decorators      18      0   100%
github3/events          89      0   100%
github3/gists           94      0   100%
github3/git             93      0   100%
github3/github         335     53    84%
github3/issues         192      2    99%
github3/legacy          97      0   100%
github3/models         173      0   100%
github3/orgs           153      0   100%
github3/pulls          124      6    95%
github3/repos          644    119    82%
github3/users          132      4    97%
----------------------------------------
TOTAL                 2202    184    92%

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

History/Changelog

0.1: 2012-11-xx

  • Support for the complete GitHub API (accomplished)
    • Now also includes the Statuses API
    • Also covers the auto_init parameters to the Repository creation methodology
    • Limited implementation of iterators in the place of list functions.
  • 92% coverage by unit tests

Project details


Release history Release notifications

History Node

1.1.0

History Node

1.0.2

History Node

1.0.1

History Node

1.0.0

History Node

1.0.0a4

History Node

1.0.0a3

History Node

1.0.0a2

History Node

1.0.0a1

History Node

0.9.6

History Node

0.9.5

History Node

0.9.4

History Node

0.9.3

History Node

0.9.2

History Node

0.9.1

History Node

0.9.0

History Node

0.8.2

History Node

0.8.1

History Node

0.8.0

History Node

0.7.1

History Node

0.7.0

History Node

0.6.1

History Node

0.6.0

History Node

0.5.3

History Node

0.5.2

History Node

0.5.1

History Node

0.5

History Node

0.4

History Node

0.3

History Node

0.2

History Node

0.1

History Node

0.1b2

History Node

0.1b1

History Node

0.1b0

This version
History Node

0.1a8

History Node

0.1a7

History Node

0.1a6

History Node

0.1a5

History Node

0.1a4

History Node

0.1a3

History Node

0.1a2

History Node

0.1a1

History Node

0.1a

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
github3.py-0.1a8.tar.gz (42.3 kB) Copy SHA256 hash SHA256 Source None Oct 1, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page