mirror of
https://github.com/kennethreitz-archive/github2.git
synced 2026-06-05 15:40:19 +00:00
ec62e41850ef6f8d2ba286df60676e700130e191
==================================================================================
python-github2 - Github API v2 library for Python.
==================================================================================
:Authors:
Ask Solem (askh@opera.com)
:Version: 0.1.2
This is an experimental python library implementing all of the features
available in version 2 of the `Github API`_.
*Note* This software is not finished. And is likely to change in the near future.
.. _`Github API`: http://develop.github.com/
Introduction
============
You should read the developer documentation for the `Github API`_ first.
Installation
------------
You can install ``python-github2`` either via the Python Package Index (PyPI)
or from source.
To install using ``pip``,::
$ pip install github2
To install using ``easy_install``,::
$ easy_install github2
If you have downloaded a source tarball you can install it
by doing the following,::
$ python setup.py build
# python setup.py install # as root
Creating a request
------------------
>>> from github2.client import Github
>>> github = Github(username="ask", api_token=".......")
Or for an unauthenticated connection
>>> github = Github()
Users
=====
Searching
---------
>>> results = github.users.search("foo")
Getting User Information
------------------------
>>> user = github.users.show("ask")
>>> user.name
"Ask Solem"
Getting User Network
---------------------
>>> github.users.followers("ask")
['greut', 'howiworkdaily', 'emanchado', 'webiest']
>>> github.users.following("ask")
['sverrejoh',
'greut',
'jezdez',
'bradleywright',
'ericflo',
'howiworkdaily',
'emanchado',
'traviscline',
'russell']
Following Network
------------------
>>> github.users.follow("jezdez")
>>> github.users.unfollow("jezdez")
Issues
======
List a Projects Issues
----------------------
>>> github.issues.list("ask/chishop", state="open")
>>> github.issues.list("ask/chishop", state="closed")
View an Issue
-------------
>>> issue = github.issues.show("ask/chishop", 1)
>>> issue.title
'Should not be able to upload same version twice.'
View Comments on an Issue
-------------------------
>>> comments = github.issues.comments("ask/chishop", 5)
>>> comments[0].body
'Fix merged into /ask branch.'
Open and Close Issues
---------------------
>>> new_issue = github.issues.open("ask/chishop", title="New bug",
... body="This is a test bug")
>>> new_issue.number
2
>>> github.issues.close("ask/chishop", new_issue.number)
Add and Remove Labels
---------------------
>>> github.issues.add_label("ask/chishop", 2, "important")
>>> github.issues.remove_label("ask/chishop", 2, "important")
Network
=======
Network Meta
-------------
>>> github.get_network_meta("ask/chishop")
Network Data
------------
>>> github.get_network_data("schacon/simplegit",
... nethash="fa8fe264b926cdebaab36420b6501bd74402a6ff")
Repository
==========
Searching Repositories
----------------------
>>> repositories = github.repos.search("django")
Show Repo Info
--------------
>>> repo = github.repos.show("schacon/grit")
>>> repo.homepage
"http://grit.rubyforge.org/"
List All Repositories
---------------------
# By default lists all repos for the current user.
>>> repos = github.repos.list()
>>> repos = github.repos.list("schacon")
Watching Repositories
---------------------
>>> github.repos.watch("schacon/grit")
>>> github.repos.unwatch("schacon/grit")
Forking Repositories
--------------------
>>> fork = github.repos.fork("schacon/grit")
Creating and Deleting Repositories
----------------------------------
>>> new_repo = github.repos.create(name, description, homepage,
... public=True)
>>> github.repos.delete(name)
Repository Visibility
---------------------
>>> github.repos.set_private("ask/chishop")
>>> github.repos.set_public("ask/chishop")
Collaborators
-------------
>>> collabs = github.repos.list_collaborators("ask/chishop")
>>> github.repos.add_collaborator("ask/chishop", "schacon")
>>> github.repos.remove_collaborator("ask/chishop", "schacon")
Network
-------
>>> github.repos.network("ask/chishop")
Repository Refs
---------------
Get a list of tags
>>> tags = github.repos.tags("ask/chishop")
Get a list of remote branches
>>> branches = github.repos.branches("ask/chishop")
Commit
======
Listing Commits on a Branch
----------------------------
>>> commits = github.commits.list("mojombo/grit", "master")
Listing Commits for a File
--------------------------
>>> commits = github.commits.list("mojombo/grit", "master",
... file="grit.gemspec")
Showing a Specific Commit
-------------------------
>>> commit = github.commits.show("mojombo/grit",
... sha="5071bf9fbfb81778c456d62e111440fdc776f76c")
Object
======
Trees
-----
>>> tree = github.get_tree(project, tree_sha)
Blobs
-----
>>> blob = github.get_blob_info(project, tree_sha, path)
License
=======
This software is licensed under the ``New BSD License``. See the ``LICENSE``
file in the top distribution directory for the full license text.
.. # vim: syntax=rst expandtab tabstop=4 shiftwidth=4 shiftround
Description
Languages
Python
100%