diff --git a/.gitignore b/.gitignore index de35dbe..241d83f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,17 @@ -.DS_Store -.coverage -.noseids -.ropeproject/ -.tox/ -*.pyc -*~ -*.sqlite -*.sqlite-journal -settings_local.py -local_settings.py +*.egg-info/ + .*.sw[po] +*.py[co] + +build/ dist/ -*.egg-info doc/.build/ -build/ -locale/ +.ropeproject/ +.tox/ + +ChangeLog pip-log.txt + +.DS_Store +.coverage +.noseids diff --git a/.ucopy.cfg b/.ucopy.cfg new file mode 100644 index 0000000..530185a --- /dev/null +++ b/.ucopy.cfg @@ -0,0 +1,21 @@ +[repo] +name = python-github2 +license-from = bsd-3 +vcs = git + +[files] +ignore-from = git +ignore-glob = COPYING, README.rst, .keep, test/data/github.com,api* + +[patch] +unicode = python + +[author-override] +Ask Solem = +Chris Vale = +Claudio B. = +Daniel Greenfeld = +Donald von Stufft = +Michael Basnight = +Sameer Al-Sakran = +Stéphane Angel = diff --git a/AUTHORS b/AUTHORS index d917daf..5e14ae3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,29 +1,38 @@ -Ask Solem -Mark Paschal -Donald von Stufft -Maximillian Dornseif +python-github2 was written by: + +Ask Solem + +with contributions from the following people: + +Adam Vandenberg Asheesh Laroia -Rick Harris -Cody Soyland -Fernando Perez -Evan Broder -Scott Torborg -Claudio B. +Barthelemy Dagenais Chris Vale -Adam Vandenberg -Kenneth Reitz +Christopher MacGown +Claudio B. +Cody Soyland Daniel Greenfeld +Donald von Stufft +Evan Broder +Fernando Perez +Ionuț Arțăriși +James Rowe +Jens Ohlig Jeremy Dunck Jonas Obrist -Sameer Al-Sakran -Vincent Driessen -James Rowe Josh Weinberg -Barthelemy Dagenais -Surajram Kumarave -broderboy -Patryk Zawadzki +Justin Quick +Kenneth Reitz +Mark Paschal +Maximillian Dornseif Michael Basnight -Christopher MacGown +Patryk Zawadzki +Rick Harris Rok Garbas -Ionuț Arțăriși +Sameer Al-Sakran +Scott Torborg +Stéphane Angel +Surajram Kumaravel +Vincent Driessen +broderboy +modocache diff --git a/MANIFEST.in b/MANIFEST.in index ac52cc3..e77f35d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,6 @@ recursive-include examples * + +include ChangeLog include NEWS.rst include README.rst include AUTHORS diff --git a/NEWS.rst b/NEWS.rst index 7a8b477..eaa874c 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -1,7 +1,41 @@ User-visible changes ==================== -.. contents:: +This file lists only the most important changes that may be visible to users, +look at the `git repository`_ for the full project history. + +.. _git repository: https://github.com/ask/python-github2/ + +0.6.2 - 2012-06-11 +------------------ + +* Updated dependencies to handle recent ``python-dateutil`` releases +* Fixed ``simplejson`` dependencies for Python 2.4 + +0.6.1 - 2012-02-28 +------------------ + +* Support for `GitHub:Enterprise`_ using the ``github_url`` parameter when + creating a client +* Adds SSH key management +* Support reading SSL certificates from the location set in ``CURL_CA_BUNDLE``, + if all else fails + +.. _GitHub:Enterprise: https://enterprise.github.com/ + +0.6.0 - 2011-12-21 +------------------ + +* Now uses system certificates for SSL validation where possible +* Python 3 is supported directly, without a separate ``2to3`` build step + +0.5.2 - 2011-09-02 +------------------ + +* Functions that returned `dict` objects have been deprecated, enable + DeprecationWarning_ support to see if you're affected + +.. _DeprecationWarning: http://docs.python.org/library/warnings.html 0.5.1 - 2011-06-11 ------------------ diff --git a/README.rst b/README.rst index d28c84e..a91633f 100644 --- a/README.rst +++ b/README.rst @@ -1,18 +1,29 @@ ================================================================================ -github2 - Github API v2 library for Python. +github2 - GitHub API v2 library for Python. ================================================================================ :Authors: Ask Solem (askh@opera.com) -:Version: 0.5.1 +:Version: 0.6.2 + +.. warning:: + + GitHub have marked API v2 as deprecated, you should be looking to replace + your usage of ``github2`` in the near future. + + Both remoteobjects_ and micromodels_ provide easy-to-use functionality for + creating bindings to remote APIs, and should significantly reduce the amount + of work needed in moving away from GitHub's API v2. This is a Python library implementing all of the features available in version 2 -of the `Github API`_. +of the `GitHub API`_. See the ``doc/`` directory for installation instructions and usage information. If you prefer you can also read the `documentation online`_. -.. _Github API: http://develop.github.com/ +.. _remoteobjects: https://github.com/saymedia/remoteobjects +.. _micromodels: https://github.com/j4mie/micromodels +.. _GitHub API: http://develop.github.com/ .. _documentation online: http://packages.python.org/github2 License diff --git a/doc/.templates/layout.html b/doc/.templates/layout.html index 3560b06..b251a03 100644 --- a/doc/.templates/layout.html +++ b/doc/.templates/layout.html @@ -1,3 +1,10 @@ +{# + Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. +#} {% extends "!layout.html" %} {% block extrahead %} diff --git a/doc/api/client.rst b/doc/api/client.rst index 4edc07b..1cf0ea9 100644 --- a/doc/api/client.rst +++ b/doc/api/client.rst @@ -1,3 +1,11 @@ +.. Copyright (C) 2011-2012 James Rowe + Michael Basnight + modocache + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.client Creating a client @@ -42,12 +50,25 @@ API calls are limited by github.com to 1 per second by default. To have the >>> github = Github(username="ask", api_token=".......", ... requests_per_second=1) -If you wish to use a HTTP proxy you can pass in the ``proxy_host`` and -``proxy_port`` settings to enable it. The default for ``proxy_port``, if not -given, is 8080:: +By default, :pypi:`httplib2 (0.7.4)` will use the proxies set in the +:envvar:`http_proxy` andr :envvar:`https_proxy` environment variables. This +means that well configured systems shouldn't need any manual configuration for +proxy support. + +If you wish to manually configure a HTTP proxy you can pass in the +``proxy_host`` and ``proxy_port`` settings to enable it. The default for +``proxy_port``, if not given, is 8080:: >>> from github2.client import Github >>> github = Github(username="ask", api_token=".......", ... proxy_host="my.proxy.com", proxy_port=9000) +You may specify a GitHub Enterprise URL by passing in the ``github_url`` +setting. If you do not specify ``github_url``, requests will be made to +https://github.com/. + + >>> from github2.client import Github + >>> github = Github(username="modocache", api_token=".......", + ... github_url="http://your-github-enterprise-url.com/") + .. _OAuth service: http://develop.github.com/p/oauth.html diff --git a/doc/api/commit.rst b/doc/api/commit.rst index 7a37e07..ffca1a2 100644 --- a/doc/api/commit.rst +++ b/doc/api/commit.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.commits Commit @@ -21,6 +27,10 @@ Listing Commits on a Branch >>> commits = github.commits.list("mojombo/grit", "master") +By default the first page of results is returned, you can return further results +with the ``page`` parameter: + + >>> commits = github.commits.list("mojombo/grit", "master", page=2) Listing Commits for a File '''''''''''''''''''''''''' diff --git a/doc/api/core.rst b/doc/api/core.rst index bb96daf..1e26d09 100644 --- a/doc/api/core.rst +++ b/doc/api/core.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.core Core @@ -30,10 +36,10 @@ Core .. autofunction:: repr_string -.. autoclass:: GithubCommand(type) +.. autoclass:: GithubCommand -.. autoclass:: Attribute(type) +.. autoclass:: Attribute -.. autoclass:: DateAttribute(type) +.. autoclass:: DateAttribute(help, format) -.. autoclass:: BaseDataType(type) +.. autoclass:: BaseData() diff --git a/doc/api/index.rst b/doc/api/index.rst index cbe2c5c..36fa3a0 100644 --- a/doc/api/index.rst +++ b/doc/api/index.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + API documentation ================= diff --git a/doc/api/issues.rst b/doc/api/issues.rst index 6ba740c..1f2dcfb 100644 --- a/doc/api/issues.rst +++ b/doc/api/issues.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.issues Issues diff --git a/doc/api/network.rst b/doc/api/network.rst index f07baa9..1d7312d 100644 --- a/doc/api/network.rst +++ b/doc/api/network.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. currentmodule:: github2.client Network diff --git a/doc/api/object.rst b/doc/api/object.rst index 79842c7..106b685 100644 --- a/doc/api/object.rst +++ b/doc/api/object.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. currentmodule:: github2.client Object diff --git a/doc/api/organizations.rst b/doc/api/organizations.rst index fc46950..b4fb0f6 100644 --- a/doc/api/organizations.rst +++ b/doc/api/organizations.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.organizations Organizations diff --git a/doc/api/pull_requests.rst b/doc/api/pull_requests.rst index a2748cc..ee6f518 100644 --- a/doc/api/pull_requests.rst +++ b/doc/api/pull_requests.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.pull_requests Pull requests @@ -19,6 +25,11 @@ Listing pull requests >>> results = github.pull_requests.list("ask/python-github2") +By default the first page of results is returned, you can return further results +with the ``page`` parameter: + + >>> results = github.pull_requests.list("ask/python-github2", page=2) + View a pull request ''''''''''''''''''' diff --git a/doc/api/repos.rst b/doc/api/repos.rst index 45c4b4a..1d96337 100644 --- a/doc/api/repos.rst +++ b/doc/api/repos.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.repositories Repository @@ -32,11 +38,13 @@ Show Repo Info List All Repositories ''''''''''''''''''''' - # By default lists all repos for the current user. - >>> repos = github.repos.list() - >>> repos = github.repos.list("schacon") +By default the first page of results is returned, you can return further results +with the ``page`` parameter: + + >>> repos = github.repos.list("schacon", page=2) + Watching Repositories ''''''''''''''''''''' diff --git a/doc/api/request.rst b/doc/api/request.rst index 395f39f..b3ffc49 100644 --- a/doc/api/request.rst +++ b/doc/api/request.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.request Requests @@ -8,7 +14,10 @@ Requests of the :mod:`github2` package, but it is documented to aid contributors to the package. -.. autodata:: GITHUB_URL +.. autodata:: DEFAULT_GITHUB_URL + +.. autodata:: SYSTEM_CERTS +.. autodata:: CURL_CERTS .. autoexception:: GithubError diff --git a/doc/api/teams.rst b/doc/api/teams.rst index dc2102b..4e72746 100644 --- a/doc/api/teams.rst +++ b/doc/api/teams.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.teams Teams diff --git a/doc/api/users.rst b/doc/api/users.rst index 36f086d..d9ac95d 100644 --- a/doc/api/users.rst +++ b/doc/api/users.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + .. module:: github2.users Users @@ -13,6 +19,8 @@ Users .. autoclass:: Users(type) +.. autoclass:: Key(type) + Examples -------- diff --git a/doc/bugs.rst b/doc/bugs.rst index 2226397..1c838a1 100644 --- a/doc/bugs.rst +++ b/doc/bugs.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + Reporting bugs ============== @@ -24,7 +30,7 @@ or a deficiency in the API. You can check which URLs your code is requesting by enabling :data:`~logging.DEBUG` level output in your logger, see the -:mod:`python:logging` for more information. +:mod:`python:logging` documentation for details. If the bug you've found is outside the reach of this project an issue should be opened in GitHub's `API support forum`_. It doesn't hurt to `report an issue`_ @@ -45,10 +51,10 @@ A good bug report will have the following: * A minimal test-case to reproduce the error * A list of solutions you've already tried -Simon Tatham has an excellent essay titled `How to Report Bugs Effectively`_, +Simon Tatham wrote aa fantastic essay titled `How to Report Bugs Effectively`_, with some excellent tips on filing good bug reports. -.. [#] The content of :data:`github2.__version__` if you're using an official +.. [#] The value of :data:`github2.__version__` if you're using an official release, or the output of :command:`git describe` if you're using the git repository directly. diff --git a/doc/conf.py b/doc/conf.py index 2f2b3bf..d74babe 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -3,7 +3,8 @@ # python-github2 documentation build configuration file, created by # sphinx-quickstart on Mon Apr 11 16:16:25 2011. # -# This file is execfile()d with the current directory set to its containing dir. +# This file is execfile()d with the current directory set to its containing +# dir. # # Note that not all possible configuration values are present in this # autogenerated file. @@ -11,7 +12,10 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import sys, os +import os +import sys + +from sphinx.util import inspect import cloud_sptheme as csp @@ -20,15 +24,16 @@ # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('..')) -# -- General configuration ----------------------------------------------------- +# -- General configuration ---------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ["sphinx.ext.%s" % ext - for ext in ["autodoc", "todo", "intersphinx", "viewcode"]] + \ + for ext in ["autodoc", "todo", "intersphinx", "viewcode", + "coverage"]] + \ ["sphinxcontrib.%s" % ext for ext in ["cheeseshop", ]] # Add any paths that contain templates here, relative to this directory. @@ -45,7 +50,7 @@ # General information about the project. project = u'github2' -copyright = u'2011, Ask Solem' +copyright = u'2009-2012, Ask Solem' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -71,7 +76,8 @@ # directories to ignore when looking for source files. exclude_patterns = ['.build'] -# The reST default role (used for this markup: `text`) to use for all documents. +# The reST default role (used for this markup: `text`) to use for all +# documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. @@ -92,7 +98,7 @@ #modindex_common_prefix = [] -# -- Options for HTML output --------------------------------------------------- +# -- Options for HTML output -------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. @@ -174,7 +180,7 @@ htmlhelp_basename = 'github2doc' -# -- Options for LaTeX output -------------------------------------------------- +# -- Options for LaTeX output ------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' @@ -183,7 +189,8 @@ #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). +# (source start file, target name, title, author, +# documentclass [howto/manual]). latex_documents = [ ('index', 'github2.tex', u'github2 Documentation', u'Ask Solem', 'manual'), @@ -213,7 +220,7 @@ #latex_domain_indices = True -# -- Options for manual page output -------------------------------------------- +# -- Options for manual page output ------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). @@ -222,9 +229,22 @@ [u'Ask Solem'], 1) ] -autoclass_content = "init" +autoclass_content = "class" autodoc_default_flags = ['members', ] intersphinx_mapping = { 'python': ('http://docs.python.org/', os.getenv('SPHINX_PYTHON_OBJECTS')) } + + +# Horrific nastiness to generate correct function signature for decorated +# objects. Close your eyes... Now! +orig_getargspec = inspect.getargspec + + +def getargspec(func): + if hasattr(func, '__orig_func__'): + return orig_getargspec(func.__orig_func__) + else: + return orig_getargspec(func) +inspect.getargspec = getargspec diff --git a/doc/contributing.rst b/doc/contributing.rst index ad3f31c..d307ba3 100644 --- a/doc/contributing.rst +++ b/doc/contributing.rst @@ -1,12 +1,18 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + Contributing ============ Patches for :mod:`github2` are most welcome! Forks on GitHub_ and patches attached to issues are both great ways to -contribute. If you're comfortable with ``git`` using a fork hosted on GitHub is -probably the simpler solution, both for the package maintainers and you as a -contributor. +contribute. If you're comfortable with ``git`` then using a fork hosted on +GitHub is probably the simpler solution, both for the :mod:`github2` maintainers +and for you as a contributor. Following the simple guidelines below makes it easier to review and integrate your changes: @@ -71,9 +77,9 @@ Many assertions, such as :meth:`~unittest.TestCase.assertIn` and The simple workaround is to evaluate an expression to test with :meth:`~unittest.TestCase.assertTrue` -The incredibly functions for skipping tests(:func:`~unittest.skip`) and marking -expected failures(:func:`~unittest.expectedFailure`) were only added in 2.7, and -unfortunately can't be used. +The incredibly useful functions for skipping tests(:func:`~unittest.skip`) and +marking expected failures(:func:`~unittest.expectedFailure`) were only added in +2.7, and unfortunately can't be used. .. todo:: Add topic branches and pull request usage examples, but most git users are diff --git a/doc/index.rst b/doc/index.rst index 8656174..963e6a2 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,7 +1,8 @@ -.. python-github2 documentation master file, created by - sphinx-quickstart on Mon Apr 11 16:16:25 2011. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. .. If you prefer you can also read the pre-built documentation at @@ -10,23 +11,35 @@ .. module:: github2 :synopsis: GitHub API v2 library for Python -``github2`` - Github API v2 library for Python +``github2`` - GitHub API v2 library for Python ============================================== +.. warning:: + + GitHub have marked API v2 as deprecated, you should be looking to replace + your usage of ``github2`` in the near future. + + Both remoteobjects_ and micromodels_ provide easy-to-use functionality for + creating bindings to remote APIs, and should significantly reduce the amount + of work needed in moving away from GitHub's API v2. + +.. _remoteobjects: https://github.com/saymedia/remoteobjects +.. _micromodels: https://github.com/j4mie/micromodels + .. pypi-release:: github2 :prefix: Download :class: sidebar This is a Python library implementing all of the features available in version 2 -of the `Github API`_. +of the `GitHub API`_. -You should read the developer documentation for the `Github API`_ first. +You should read the developer documentation for the `GitHub API`_ first. :Git repository: https://github.com/ask/python-github2/ :Issue tracker: https://github.com/ask/python-github2/issues/ :Contributors: https://github.com/ask/python-github2/contributors/ -.. _Github API: http://develop.github.com/ +.. _GitHub API: http://develop.github.com/ Contents -------- @@ -41,6 +54,7 @@ Contents bugs contributing wild + release license Indices and tables diff --git a/doc/install.rst b/doc/install.rst index 8d309ee..7eb1aa6 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -1,3 +1,10 @@ +.. Copyright (C) 2011-2012 James Rowe + Michael Basnight + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + Installation ------------ @@ -26,5 +33,6 @@ handling [#]_. :pypi:`simplejson` is also required when using :mod:`github2` with Python 2.4 or 2.5. If you install via :pypi:`pip` or :pypi:`easy_install ` the dependencies should be installed automatically for you. -.. [#] You must use :pypi:`python-dateutil` 1.x when working with Python 2.x, - the latest 2.x releases are for Python 3.x installations only. +.. [#] You must use :pypi:`python-dateutil` 1.x when working with Python 2.5 or + earlier, the latest 2.x releases are for Python 2.6 and newer + installations only. diff --git a/doc/license.rst b/doc/license.rst index 7e1c1b4..316b2ae 100644 --- a/doc/license.rst +++ b/doc/license.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + License ======= diff --git a/doc/problems.rst b/doc/problems.rst index 90021af..31d3052 100644 --- a/doc/problems.rst +++ b/doc/problems.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + Solving problems ================ @@ -35,14 +41,14 @@ response from GitHub, here the user data of ``JNRowe``. Rate limiting ''''''''''''' -If rate limiting is enabled, with the ``requests_per_second`` when creating a -:class:`~github2.client.Github` object, then you'll see a ``WARNING`` level -message when a request has been delayed. +If rate limiting is enabled, with the ``requests_per_second`` parameter when +creating a :class:`~github2.client.Github` object, then you'll see a ``WARNING`` +level message when a request has been delayed. - >>> github = Github(requests_per_second=0.2, debug=True) + >>> github = Github(requests_per_second=0.2) >>> user = github.users.show("JNRowe") >>> user = github.users.show("JNRowe") - delaying API call 4.99773 + WARNING:github2.request:delaying API call 4.997032 second(s) Here we have defined a rate limit of one call every five seconds, and doing so has imposed an almost 5 second delay before completing the second request. diff --git a/doc/quickstart.rst b/doc/quickstart.rst index bb41f5e..ff54b29 100644 --- a/doc/quickstart.rst +++ b/doc/quickstart.rst @@ -1,3 +1,9 @@ +.. Copyright (C) 2011-2012 James Rowe + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + Quickstart ========== @@ -7,6 +13,7 @@ package. Create an unauthenticated client object:: + >>> from github2.client import Github >>> github = Github() .. note:: @@ -22,6 +29,7 @@ Read the description of the ``python-github2`` project:: >>> repo = github.repos.show("ask/python-github2") >>> repo.description + u'github client in python, with issues support.' We can take advantage of Python's :func:`dir` to explore the package a little more:: diff --git a/doc/release.rst b/doc/release.rst new file mode 100644 index 0000000..745d419 --- /dev/null +++ b/doc/release.rst @@ -0,0 +1,69 @@ +.. Copyright (C) 2012 James Rowe + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + +Release HOWTO +============= + +.. highlight:: sh + +.. + Much of this stuff is automated locally, but I'm describing the process for + other people who will not have access to the same release tools I use. The + first thing I recommend that you do is find/write a tool that allows you to + automate all of this, or you're going to miss important steps at some point. + +Test +---- + +In the general case tests can be run via :pypi:`nose`'s :pypi:`distribute` +integration:: + + $ ./setup.py nosetests + +When preparing a release it is important to check that :mod:`github2` works with +all currently supported Python versions, and that the documentation is correct. +To that end you can use :pypi:`tox` to run the full testsuite:: + + $ tox -v + +This will test :mod:`github2` with Python 2.4 → 3.2, check that the ``reST`` +syntax is valid and also that the :pypi:`sphinx` documentation builds correctly. +You can run a subset of these options too, see the ``tox`` documentation for +more information. + +Prepare release +--------------- + +With the tests passing, perform the following steps + +* Update the version data in :file:`github2/_version.py`, and also the + reference in :file:`README.rst` +* Update :file:`NEWS.rst`, if there are any user visible changes +* Commit the release notes and version changes +* Create a signed tag for the release +* Push the changes, including the new tag, to the GitHub repository + +Update PyPI +----------- + +.. + This is the section you're especially likely to get wrong at some point if you + try to handle all of this manually ;) + +Create and upload the new release tarballs to PyPI:: + + $ ./setup.py sdist --formats=bztar,gztar register upload --sign + +You should also update the hosted documentation too:: + + $ ./setup.py build_sphinx && ./setup.py upload_docs + +Fetch the uploaded tarballs, and check for errors. + +You should also perform test installations from PyPI, to check the experience +:mod:`github2` users will have. + +.. highlight:: python diff --git a/doc/wild.rst b/doc/wild.rst index 6c83ed3..07bd653 100644 --- a/doc/wild.rst +++ b/doc/wild.rst @@ -1,3 +1,10 @@ +.. Copyright (C) 2011-2012 James Rowe + Stéphane Angel + + This file is part of python-github2, and is licensed under the 3-clause BSD + License. See the LICENSE file in the top distribution directory for the full + license text. + In the wild ----------- @@ -10,12 +17,34 @@ listed on this page. :mod:`github2`? Add it to this list! Just `open an issue`_ or click the ``Fork and edit this file`` button on the `project website`_ +``applause`` +'''''''''''' + + Applause when a bug gets closed. Extra cheering for old bugs. + +:PyPI project: :pypi:`applause` + ``bitbucket2github`` '''''''''''''''''''' Mirrors all public repos of a BitBucket account to GitHub and vice versa. -:PyPI page: :pypi:`bitbucket2github` +:PyPI project: :pypi:`bitbucket2github` + +``bugwarrior`` +'''''''''''''' + + Pull tickets from github, bitbucket, and trac into `taskwarrior + `__ + +:PyPI project: :pypi:`bugwarrior` + +``cligh`` +''''''''' + + A simple command-line interface to the facilities of GitHub. + +:GitHub project: https://github.com/CMB/cligh ``forkfeed`` '''''''''''' @@ -23,7 +52,7 @@ listed on this page. Utility to build atom feeds for all commits in all forks of your projects on GitHub. -:PyPI page: :pypi:`forkfeed` +:PyPI project: :pypi:`forkfeed` ``ghmiles`` ''''''''''' @@ -31,7 +60,37 @@ listed on this page. ``ghmiles`` is a Python library that generates a milestone model from the issues in a GitHub repository. -:PyPI page: :pypi:`ghmiles` +:PyPI project: :pypi:`ghmiles` + +``ghsync`` +'''''''''' + + GitHub Syncer. Clones or Pulls all GitHub repos. + +:PyPI project: :pypi:`ghsync` + +``github-issues`` +''''''''''''''''' + + github-issues allows you to create, close, show, list, and comment on + issues on your github project - that's it. + +:GitHub project: https://github.com/kashifrazzaqui/github-issues + +``github-issues-export`` +'''''''''''''''''''''''' + + Script to liberate issues from github issues in case you would like to have + your data free. + +:GitHub project: https://github.com/mcepl/github-issues-export + +``github-plots`` +'''''''''''''''' + + Alternative plots from GitHub stats. + +:PyPI project: :pypi:`github-plots` ``hubugs`` '''''''''' @@ -39,17 +98,33 @@ listed on this page. ``hubugs`` is a very simple client for working with `GitHub's issue tracker`_. -:PyPI page: :pypi:`hubugs` +:PyPI project: :pypi:`hubugs` .. _GitHub's issue tracker: http://github.com/blog/411-github-issue-tracker +``humble`` +'''''''''' + + Shows stats on a given GitHub user. + +:PyPI project: :pypi:`humble` + +``Repos.io`` +'''''''''''' + + The source code of the Repos.io site, a site to help you manage all your + repositories (your own, and watched/liked/followed ones) hosted by different + providers (github, bitbucket) + +:GitHub project: https://github.com/twidi/Repos.io + ``roundabout`` '''''''''''''' ``Roundabout`` is a tool that automatically prevents code with failing tests from being merged into a github repository. -:Git repository: https://github.com/ChristopherMacGown/roundabout +:GitHub project: https://github.com/ChristopherMacGown/roundabout .. _open an issue: https://github.com/ask/python-github2/issues/ .. _project website: https://github.com/ask/python-github2/blob/master/doc/wild.rst diff --git a/examples/friend-or-follow.py b/examples/friend-or-follow.py index ccef96a..7b87edc 100644 --- a/examples/friend-or-follow.py +++ b/examples/friend-or-follow.py @@ -1,3 +1,8 @@ +# Copyright (C) 2010-2012 Ask Solem +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + import sys import optparse from subprocess import Popen, PIPE @@ -10,10 +15,10 @@ OPTION_LIST = ( optparse.make_option('-t', '--api-token', default=None, action="store", dest="api_token", type="str", - help="Github API token. Default is to find this from git config"), + help="GitHub API token. Default is to find this from git config"), optparse.make_option('-u', '--api-user', default=None, action="store", dest="api_user", type="str", - help="Github Username. Default is to find this from git config"), + help="GitHub Username. Default is to find this from git config"), ) BY_LOWER = lambda value: value.lower() diff --git a/extra/requirements-doc.txt b/extra/requirements-doc.txt new file mode 100644 index 0000000..709ee46 --- /dev/null +++ b/extra/requirements-doc.txt @@ -0,0 +1,4 @@ +-r requirements.txt +cloud_sptheme>=1.2 +sphinx>=1.1 +sphinxcontrib-cheeseshop diff --git a/extra/requirements-py25.txt b/extra/requirements-py25.txt new file mode 100644 index 0000000..45bfac5 --- /dev/null +++ b/extra/requirements-py25.txt @@ -0,0 +1,3 @@ +httplib2 >= 0.7.0 +python-dateutil < 2.0, >= 2.1 +simplejson >= 2.0.9 diff --git a/extra/requirements-test.txt b/extra/requirements-test.txt new file mode 100644 index 0000000..d271169 --- /dev/null +++ b/extra/requirements-test.txt @@ -0,0 +1,4 @@ +-r requirements.txt +coverage>=3.5 +mock>=0.7.1 +nose>=1.1.2 diff --git a/extra/requirements.txt b/extra/requirements.txt new file mode 100644 index 0000000..5115300 --- /dev/null +++ b/extra/requirements.txt @@ -0,0 +1,2 @@ +httplib2 >= 0.7.0 +python-dateutil < 2.0 diff --git a/github2/__init__.py b/github2/__init__.py index b65a729..f098fc2 100644 --- a/github2/__init__.py +++ b/github2/__init__.py @@ -1,7 +1,16 @@ -"Github API v2 library for Python" -VERSION = (0, 5, 1) +"GitHub API v2 library for Python." +# Copyright (C) 2009-2012 Ask Solem +# James Rowe +# Maximillian Dornseif +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + +from github2 import _version + +VERSION = _version.tuple __author__ = "Ask Solem" __contact__ = "askh@opera.com" __homepage__ = "http://github.com/ask/python-github2" -__version__ = ".".join(map(str, VERSION)) +__version__ = _version.dotted diff --git a/github2/_version.py b/github2/_version.py new file mode 100644 index 0000000..6e26b1f --- /dev/null +++ b/github2/_version.py @@ -0,0 +1,9 @@ +# This is github2 version 0.6.2 (2012-06-11) +# pylint: disable=C0103, C0111, C0121, W0622 + +dotted = "0.6.2" +libtool = "6:22" +hex = 0x000602 +date = "2012-06-11" +tuple = (0, 6, 2) +web = "github2/0.6.2" diff --git a/github2/bin/__init__.py b/github2/bin/__init__.py index 792d600..6c5b974 100644 --- a/github2/bin/__init__.py +++ b/github2/bin/__init__.py @@ -1 +1,5 @@ # +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. diff --git a/github2/bin/manage_collaborators.py b/github2/bin/manage_collaborators.py index ca59df5..b63ab6c 100755 --- a/github2/bin/manage_collaborators.py +++ b/github2/bin/manage_collaborators.py @@ -8,16 +8,38 @@ """ # Created by Maximillian Dornseif on 2009-12-31 for HUDORA. -# Copyright (c) 2009 HUDORA. All rights reserved. -# BSD licensed +# Copyright (C) 2009-2012 James Rowe +# Maximillian Dornseif +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. import logging +import sys + from optparse import OptionParser + import github2.client +#: Running under Python 3 +PY3K = sys.version_info[0] == 3 and True or False + + +def print_(text): + """Python 2 & 3 compatible print function. + + We support <2.6, so can't use __future__.print_function + + """ + if PY3K: + print(text) + else: + sys.stdout.write(text + '\n') + + def parse_commandline(): - """Parse the comandline and return parsed options.""" + """Parse the command line and return parsed options.""" parser = OptionParser() parser.description = __doc__ @@ -41,11 +63,14 @@ def parse_commandline(): if len(args) not in [1, 2]: parser.error('wrong number of arguments') if (len(args) == 1 and args[0] in ['add', 'remove']): - parser.error('%r needs a collaborator name as second parameter\n' % args[0]) + parser.error('%r needs a collaborator name as second parameter\n' + % args[0]) elif (len(args) == 1 and args[0] != 'list'): - parser.error('unknown command %r. Try "list", "add" or "remove"\n' % args[0]) + parser.error('unknown command %r. Try "list", "add" or "remove"\n' + % args[0]) if (len(args) == 2 and args[0] not in ['add', 'remove']): - parser.error('unknown command %r. Try "list", "add" or "remove"\n' % args[0]) + parser.error('unknown command %r. Try "list", "add" or "remove"\n' + % args[0]) if not options.login: parser.error('you must provide --login information\n') @@ -53,7 +78,7 @@ def parse_commandline(): def main(): - """This implements the actual program functionality""" + """Implement the actual program functionality.""" options, args = parse_commandline() @@ -71,20 +96,23 @@ def main(): datefmt="%Y-%m-%dT%H:%M:%S") if len(args) == 1: for repos in github.repos.list(options.account): - fullreposname = github.project_for_user_repo(options.account, repos.name) - print "%s: %s" % (repos.name, ' '.join(github.repos.list_collaborators(fullreposname))) + fullreposname = github.project_for_user_repo(options.account, + repos.name) + collabs = github.repos.list_collaborators(fullreposname) + print_("%s: %s" % (repos.name, ' '.join(collabs))) elif len(args) == 2: command, collaborator = args for repos in github.repos.list(options.account): - fullreposname = github.project_for_user_repo(options.account, repos.name) + fullreposname = github.project_for_user_repo(options.account, + repos.name) if collaborator in github.repos.list_collaborators(fullreposname): if command == 'remove': github.repos.remove_collaborator(repos.name, collaborator) - print "removed %r from %r" % (collaborator, repos.name) + print_("removed %r from %r" % (collaborator, repos.name)) else: if command == 'add': github.repos.add_collaborator(repos.name, collaborator) - print "added %r to %r" % (collaborator, repos.name) + print_("added %r to %r" % (collaborator, repos.name)) logging.shutdown() diff --git a/github2/bin/search_repos.py b/github2/bin/search_repos.py index 75b295c..1023e2c 100755 --- a/github2/bin/search_repos.py +++ b/github2/bin/search_repos.py @@ -1,6 +1,10 @@ #! /usr/bin/env python # coding: utf-8 """github_search_repos - search for repositories on GitHub""" +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. import logging @@ -12,8 +16,24 @@ import github2.client +#: Running under Python 3 +PY3K = sys.version_info[0] == 3 and True or False + + +def print_(text): + """Python 2 & 3 compatible print function. + + We support <2.6, so can't use __future__.print_function + + """ + if PY3K: + print(text) + else: + sys.stdout.write(text + '\n') + + def parse_commandline(): - """Parse the comandline and return parsed options.""" + """Parse the command line and return parsed options.""" parser = OptionParser() parser.description = __doc__ @@ -32,7 +52,7 @@ def parse_commandline(): def main(): - """This implements the actual program functionality""" + """Implement the actual program functionality.""" return_value = 0 options, term = parse_commandline() @@ -47,14 +67,14 @@ def main(): repos = github.repos.search(term) if not repos: - print 'No repos found!' + print_('No repos found!') return_value = 255 else: for repo in repos: - print repo.project + print(repo.project) if repo.description: - print '\n'.join(wrap(repo.description, initial_indent=' ', - subsequent_indent=' ')) + print_('\n'.join(wrap(repo.description, initial_indent=' ', + subsequent_indent=' '))) logging.shutdown() return return_value diff --git a/github2/client.py b/github2/client.py index a26210d..d0a3f2b 100644 --- a/github2/client.py +++ b/github2/client.py @@ -1,3 +1,18 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009-2012 Ask Solem +# Christopher MacGown +# Evan Broder +# James Rowe +# Jeremy Dunck +# Michael Basnight +# Patryk Zawadzki +# Surajram Kumaravel +# Vincent Driessen +# modocache +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + from github2.request import GithubRequest from github2.issues import Issues from github2.repositories import Repositories @@ -10,12 +25,12 @@ class Github(object): + """Interface to GitHub's API v2.""" + def __init__(self, username=None, api_token=None, requests_per_second=None, access_token=None, cache=None, proxy_host=None, - proxy_port=8080): - """ - An interface to GitHub's API: - http://develop.github.com/ + proxy_port=8080, github_url=None): + """Setup GitHub API object. .. versionadded:: 0.2.0 The ``requests_per_second`` parameter @@ -23,6 +38,8 @@ def __init__(self, username=None, api_token=None, requests_per_second=None, The ``cache`` and ``access_token`` parameters .. versionadded:: 0.4.0 The ``proxy_host`` and ``proxy_port`` parameters + .. versionadded:: 0.7.0 + The ``github_url`` parameter :param str username: your own GitHub username. :param str api_token: can be found at https://github.com/account @@ -38,13 +55,17 @@ def __init__(self, username=None, api_token=None, requests_per_second=None, :param str proxy_host: the hostname for the HTTP proxy, if needed. :param str proxy_port: the hostname for the HTTP proxy, if needed (will default to 8080 if a proxy_host is set and no port is set). + :param str github_url: the hostname to connect to, for GitHub + Enterprise support + """ self.request = GithubRequest(username=username, api_token=api_token, requests_per_second=requests_per_second, access_token=access_token, cache=cache, proxy_host=proxy_host, - proxy_port=proxy_port) + proxy_port=proxy_port, + github_url=github_url) self.issues = Issues(self.request) self.users = Users(self.request) self.repos = Repositories(self.request) @@ -54,59 +75,65 @@ def __init__(self, username=None, api_token=None, requests_per_second=None, self.pull_requests = PullRequests(self.request) def project_for_user_repo(self, user, repo): - """Return Github identifier for a user's repository + """Return GitHub identifier for a user's repository. :param str user: repository owner :param str repo: repository name + """ return "/".join([user, repo]) def get_all_blobs(self, project, tree_sha): - """Get a list of all blobs for a specific tree + """Get a list of all blobs for a specific tree. .. versionadded:: 0.3.0 :param str project: GitHub project :param str tree_sha: object ID of tree + """ blobs = self.request.get("blob/all", project, tree_sha) return blobs.get("blobs") def get_blob_info(self, project, tree_sha, path): - """Get the blob for a file within a specific tree + """Get the blob for a file within a specific tree. :param str project: GitHub project :param str tree_sha: object ID of tree :param str path: path within tree to fetch blob for + """ blob = self.request.get("blob/show", project, tree_sha, path) return blob.get("blob") def get_tree(self, project, tree_sha): - """Get tree information for a specifc tree + """Get tree information for a specific tree. :param str project: GitHub project :param str tree_sha: object ID of tree + """ tree = self.request.get("tree/show", project, tree_sha) return tree.get("tree", []) def get_network_meta(self, project): - """Get Github metadata associated with a project + """Get GitHub metadata associated with a project. :param str project: GitHub project + """ return self.request.raw_request("/".join([self.request.github_url, project, "network_meta"]), {}) def get_network_data(self, project, nethash, start=None, end=None): - """Get chunk of Github network data + """Get chunk of GitHub network data. :param str project: GitHub project - :param str nethash: identifier provided by ``get_network_meta`` + :param str nethash: identifier provided by :meth:`get_network_meta` :param int start: optional start point for data :param int stop: optional end point for data + """ data = {"nethash": nethash} if start: diff --git a/github2/commits.py b/github2/commits.py index a671901..40e6a8e 100644 --- a/github2/commits.py +++ b/github2/commits.py @@ -1,8 +1,20 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009-2012 Ask Solem +# James Rowe +# Stéphane Angel +# Vincent Driessen +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + from github2.core import (BaseData, GithubCommand, Attribute, DateAttribute, repr_string) class Commit(BaseData): + + """Commit container.""" + message = Attribute("Commit message.") parents = Attribute("List of parents for this commit.") url = Attribute("Canonical URL for this commit.") @@ -25,10 +37,13 @@ def __repr__(self): class Commits(GithubCommand): + + """GitHub API commits functionality.""" + domain = "commits" - def list(self, project, branch="master", file=None): - """List commits on a project + def list(self, project, branch="master", file=None, page=1): + """List commits on a project. .. warning:: Not all projects use ``master`` as their default branch, you can @@ -38,15 +53,18 @@ def list(self, project, branch="master", file=None): :param str project: project name :param str branch: branch name, or ``master`` if not given :param str file: optional file filter + :param int page: optional page number + """ - return self.get_values("list", project, branch, file, - filter="commits", datatype=Commit) + return self.get_values("list", project, branch, file, filter="commits", + datatype=Commit, page=page) def show(self, project, sha): - """Get a specific commit + """Get a specific commit. :param str project: project name :param str sha: commit id + """ return self.get_value("show", project, sha, filter="commit", datatype=Commit) diff --git a/github2/core.py b/github2/core.py index cb6bddc..86d4788 100644 --- a/github2/core.py +++ b/github2/core.py @@ -1,11 +1,31 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009-2012 Ask Solem +# Fernando Perez +# James Rowe +# Mark Paschal +# Patryk Zawadzki +# Sameer Al-Sakran +# Stéphane Angel +# Vincent Driessen +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + +import logging import sys from datetime import datetime from dateutil import (parser, tz) +#: Logger for core module +LOGGER = logging.getLogger('github2.core') + #: Running under Python 3 -PY3K = sys.version_info[0] == 3 and True or False +PY3K = sys.version_info[0] == 3 + +#: Running under Python 2.7, or newer +PY27 = sys.version_info[:2] >= (2, 7) GITHUB_DATE_FORMAT = "%Y/%m/%d %H:%M:%S %z" # We need to manually mangle the timezone for commit date formatting because it @@ -20,9 +40,10 @@ def string_to_datetime(string): - """Convert a string to Python datetime + """Convert a string to Python datetime. :param str github_date: date string to parse + """ parsed = parser.parse(string) if NAIVE: @@ -31,9 +52,10 @@ def string_to_datetime(string): def _handle_naive_datetimes(f): - """Decorator to make datetime arguments use GitHub timezone + """Decorator to make datetime arguments use GitHub timezone. :param func f: Function to wrap + """ def wrapper(datetime_): if not datetime_.tzinfo: @@ -52,18 +74,20 @@ def wrapper(datetime_): @_handle_naive_datetimes def datetime_to_ghdate(datetime_): - """Convert Python datetime to Github date string + """Convert Python datetime to GitHub date string. :param datetime datetime_: datetime object to convert + """ return datetime_.strftime(GITHUB_DATE_FORMAT) @_handle_naive_datetimes def datetime_to_commitdate(datetime_): - """Convert Python datetime to Github date string + """Convert Python datetime to GitHub date string. :param datetime datetime_: datetime object to convert + """ date_without_tz = datetime_.strftime(COMMIT_DATE_FORMAT) utcoffset = GITHUB_TZ.utcoffset(datetime_) @@ -73,7 +97,7 @@ def datetime_to_commitdate(datetime_): def datetime_to_isodate(datetime_): - """Convert Python datetime to Github date string + """Convert Python datetime to GitHub date string. :param str datetime_: datetime object to convert @@ -87,38 +111,43 @@ def datetime_to_isodate(datetime_): class AuthError(Exception): - """Requires authentication""" + + """Requires authentication.""" def requires_auth(f): - """Decorate to check a function call for authentication + """Decorate to check a function call for authentication. Sets a ``requires_auth`` attribute on functions, for use in introspection. :param func f: Function to wrap :raises AuthError: If function called without an authenticated session + """ - # When Python 2.4 support is dropped move straight to functools.wraps, don't - # pass go and don't collect $200. + # When Python 2.4 support is dropped move straight to functools.wraps, + # don't pass go and don't collect $200. def wrapper(self, *args, **kwargs): if not self.request.access_token and not self.request.api_token: raise AuthError("%r requires an authenticated session" % f.__name__) return f(self, *args, **kwargs) wrapped = wrapper + wrapped.__orig_func__ = f wrapped.__name__ = f.__name__ wrapped.__doc__ = f.__doc__ + """\n.. warning:: Requires authentication""" + wrapped.__module__ = f.__module__ wrapped.requires_auth = True return wrapped def enhanced_by_auth(f): - """Decorator to mark a function as enhanced by authentication + """Decorator to mark a function as enhanced by authentication. Sets a ``enhanced_by_auth`` attribute on functions, for use in introspection. :param func f: Function to wrap + """ f.enhanced_by_auth = True f.__doc__ += """\n.. note:: This call is enhanced with authentication""" @@ -127,20 +156,42 @@ def enhanced_by_auth(f): class GithubCommand(object): + """Main API binding interface.""" + def __init__(self, request): + """Setup command object. + + :param github2.request.GithubRequest request: HTTP request handler + + """ self.request = request def make_request(self, command, *args, **kwargs): + """Make an API request. + + Various options are supported if they exist in ``kwargs``: + + * The value of a ``method`` argument will define the HTTP method + to perform for this request, the default is ``GET`` + * The value of a ``filter`` argument will restrict the response to that + data + * The value of a ``page`` argument will be used to fetch a specific + page of results, default of 1 is assumed if not given + + """ filter = kwargs.get("filter") post_data = kwargs.get("post_data") or {} - method = kwargs.get("method", "GET") - if method.upper() in ("POST", "GET") and post_data: + page = kwargs.pop("page", 1) + if page and not page == 1: + post_data["page"] = page + method = kwargs.get("method", "GET").upper() + if method == "POST" or method == "GET" and post_data: response = self.request.post(self.domain, command, *args, **post_data) - elif method.upper() == "PUT": + elif method == "PUT": response = self.request.put(self.domain, command, *args, **post_data) - elif method.upper() == "DELETE": + elif method == "DELETE": response = self.request.delete(self.domain, command, *args, **post_data) else: @@ -150,32 +201,52 @@ def make_request(self, command, *args, **kwargs): return response def get_value(self, *args, **kwargs): + """Process a single-value response from the API. + + If a ``datatype`` parameter is given it defines the + :class:`BaseData`-derived class we should build from the provided data + + """ datatype = kwargs.pop("datatype", None) value = self.make_request(*args, **kwargs) if datatype: - # unicode keys are not accepted as kwargs by python, see: - #http://mail-archives.apache.org/mod_mbox/qpid-dev/200609.mbox/%3C1159389941.4505.10.camel@localhost.localdomain%3E - # So we make a local dict with the same keys but as strings: - return datatype(**dict((str(k), v) for (k, v) in value.iteritems())) + if not PY27: + # unicode keys are not accepted as kwargs by python, until 2.7: + # http://bugs.python.org/issue2646 + # So we make a local dict with the same keys but as strings: + return datatype(**dict((str(k), v) + for (k, v) in value.items())) + else: + return datatype(**value) return value def get_values(self, *args, **kwargs): + """Process a multi-value response from the API. + + :see: :meth:`get_value` + + """ datatype = kwargs.pop("datatype", None) values = self.make_request(*args, **kwargs) if datatype: - # Same as above, unicode keys will blow up in **args, so we need to - # create a new 'values' dict with string keys - return [datatype(**dict((str(k), v) for (k, v) in value.iteritems())) - for value in values] + if not PY27: + # Same as above, unicode keys will blow up in **args, so we + # need to create a new 'values' dict with string keys + return [datatype(**dict((str(k), v) + for (k, v) in value.items())) + for value in values] + else: + return [datatype(**value) for value in values] else: return values def doc_generator(docstring, attributes): - """Utility function to augment BaseDataType docstring + """Utility function to augment BaseDataType docstring. :param str docstring: docstring to augment :param dict attributes: attributes to add to docstring + """ docstring = docstring or "" @@ -189,7 +260,14 @@ def bullet(title, text): class Attribute(object): + """Generic object attribute for use with :class:`BaseData`.""" + def __init__(self, help): + """Setup Attribute object. + + :param str help: Attribute description + + """ self.help = help def to_python(self, value): @@ -199,6 +277,9 @@ def to_python(self, value): class DateAttribute(Attribute): + + """Date handling attribute for use with :class:`BaseData`.""" + format = "github" converter_for_format = { "github": datetime_to_ghdate, @@ -208,6 +289,12 @@ class DateAttribute(Attribute): } def __init__(self, *args, **kwargs): + """Setup DateAttribute object. + + :param str format: The date format to support, see + :data:`convertor_for_format` for supported options + + """ self.format = kwargs.pop("format", self.format) super(DateAttribute, self).__init__(*args, **kwargs) @@ -228,15 +315,14 @@ def __new__(cls, name, bases, attrs): super_new = super(BaseDataType, cls).__new__ _meta = dict([(attr_name, attr_value) - for attr_name, attr_value in attrs.items() - if isinstance(attr_value, Attribute)]) + for attr_name, attr_value in attrs.items() + if isinstance(attr_value, Attribute)]) attrs["_meta"] = _meta attributes = _meta.keys() - attrs.update(dict([(attr_name, None) - for attr_name in attributes])) + attrs.update(dict([(attr_name, None) for attr_name in attributes])) def _contribute_method(name, func): - func.func_name = name + func.__name__ = name attrs[name] = func def constructor(self, **kwargs): @@ -258,15 +344,50 @@ def iterate(self): return result_cls -class BaseData(object): - __metaclass__ = BaseDataType +# Ugly base class definition for Python 2 and 3 compatibility, where metaclass +# syntax is incompatible +class BaseData(BaseDataType('BaseData', (object, ), {})): + + """Wrapper for API responses. + + .. warning:: + Supports subscript attribute access purely for backwards compatibility, + you shouldn't rely on that functionality in new code + + """ + + def __getitem__(self, key): + """Access objects's attribute using subscript notation. + + This is here purely to maintain compatibility when switching ``dict`` + responses to ``BaseData`` derived objects. + + """ + LOGGER.warning("Subscript access on %r is deprecated, use object " + "attributes" % self.__class__.__name__) + if not key in self._meta.keys(): + raise KeyError(key) + return getattr(self, key) + + def __setitem__(self, key, value): + """Update object's attribute using subscript notation. + + :see: :meth:`BaseData.__getitem__` + + """ + LOGGER.warning("Subscript access on %r is deprecated, use object " + "attributes" % self.__class__.__name__) + if not key in self._meta.keys(): + raise KeyError(key) + setattr(self, key, value) def repr_string(string): - """Shorten string for use in repr() output + """Shorten string for use in repr() output. :param str string: string to operate on :return: string, with maximum length of 20 characters + """ if len(string) > 20: string = string[:17] + '...' diff --git a/github2/issues.py b/github2/issues.py index c7cc74d..fa87098 100644 --- a/github2/issues.py +++ b/github2/issues.py @@ -1,10 +1,26 @@ -import urllib +# Copyright (C) 2009-2012 Adam Vandenberg +# Ask Solem +# Barthelemy Dagenais +# Fernando Perez +# James Rowe +# Scott Torborg +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + +try: + from urllib.parse import quote_plus # For Python 3 +except ImportError: + from urllib import quote_plus # NOQA from github2.core import (GithubCommand, BaseData, Attribute, DateAttribute, repr_string, requires_auth) class Issue(BaseData): + + """Issue container.""" + position = Attribute("The position of this issue in a list.") number = Attribute("The issue number (unique for project).") votes = Attribute("Number of votes for this issue.") @@ -25,6 +41,9 @@ def __repr__(self): class Comment(BaseData): + + """Comment container.""" + created_at = DateAttribute("The date this comment was created.") updated_at = DateAttribute("The date when this comment was last updated.") body = Attribute("The full text of this comment.") @@ -36,6 +55,9 @@ def __repr__(self): class Issues(GithubCommand): + + """GitHub API issues functionality.""" + domain = "issues" def search(self, project, term, state="open"): @@ -45,17 +67,18 @@ def search(self, project, term, state="open"): :param str project: GitHub project :param str term: term to search issues for - :param str state: can be either ``open`` or ``closed``. + :param str state: can be either ``open`` or ``closed`` + """ - return self.get_values("search", project, state, - urllib.quote_plus(term), filter="issues", - datatype=Issue) + return self.get_values("search", project, state, quote_plus(term), + filter="issues", datatype=Issue) def list(self, project, state="open"): """Get all issues for project with given state. :param str project: GitHub project - :param str state: can be either ``open`` or ``closed``. + :param str state: can be either ``open`` or ``closed`` + """ return self.get_values("list", project, state, filter="issues", datatype=Issue) @@ -66,10 +89,11 @@ def list_by_label(self, project, label): .. versionadded:: 0.3.0 :param str project: GitHub project - :param str label: a string representing a label (e.g., ``bug``). + :param str label: a string representing a label (e.g., ``bug``) + """ - return self.get_values("list", project, "label", label, filter="issues", - datatype=Issue) + return self.get_values("list", project, "label", label, + filter="issues", datatype=Issue) def list_labels(self, project): """Get all labels for project. @@ -77,6 +101,7 @@ def list_labels(self, project): .. versionadded:: 0.3.0 :param str project: GitHub project + """ return self.get_values("labels", project, filter="labels") @@ -84,7 +109,8 @@ def show(self, project, number): """Get all the data for issue by issue-number. :param str project: GitHub project - :param int number: issue number in the Github database + :param int number: issue number in the GitHub database + """ return self.get_value("show", project, str(number), filter="issue", datatype=Issue) @@ -96,6 +122,7 @@ def open(self, project, title, body): :param str project: GitHub project :param str title: title for issue :param str body: body for issue + """ issue_data = {"title": title, "body": body} return self.get_value("open", project, post_data=issue_data, @@ -103,36 +130,39 @@ def open(self, project, title, body): @requires_auth def close(self, project, number): - """Close an issue + """Close an issue. :param str project: GitHub project - :param int number: issue number in the Github database + :param int number: issue number in the GitHub database + """ return self.get_value("close", project, str(number), filter="issue", datatype=Issue, method="POST") @requires_auth def reopen(self, project, number): - """Reopen a closed issue + """Reopen a closed issue. .. versionadded:: 0.3.0 :param str project: GitHub project - :param int number: issue number in the Github database + :param int number: issue number in the GitHub database + """ return self.get_value("reopen", project, str(number), filter="issue", datatype=Issue, method="POST") @requires_auth def edit(self, project, number, title, body): - """Edit an existing issue + """Edit an existing issue. .. versionadded:: 0.3.0 :param str project: GitHub project - :param int number: issue number in the Github database + :param int number: issue number in the GitHub database :param str title: title for issue :param str body: body for issue + """ issue_data = {"title": title, "body": body} return self.get_value("edit", project, str(number), @@ -141,44 +171,47 @@ def edit(self, project, number, title, body): @requires_auth def add_label(self, project, number, label): - """Add a label to an issue + """Add a label to an issue. :param str project: GitHub project - :param int number: issue number in the Github database + :param int number: issue number in the GitHub database :param str label: label to attach to issue + """ - return self.make_request("label/add", project, label, str(number), - filter="labels", method="POST") + return self.get_values("label/add", project, label, str(number), + filter="labels", method="POST") @requires_auth def remove_label(self, project, number, label): - """Remove an existing label from an issue + """Remove an existing label from an issue. :param str project: GitHub project - :param int number: issue number in the Github database + :param int number: issue number in the GitHub database :param str label: label to remove from issue + """ - return self.make_request("label/remove", project, label, str(number), - filter="labels", method="POST") + return self.get_values("label/remove", project, label, str(number), + filter="labels", method="POST") @requires_auth def comment(self, project, number, comment): """Comment on an issue. :param str project: GitHub project - :param int number: issue number in the Github database + :param int number: issue number in the GitHub database :param str comment: comment to attach to issue + """ comment_data = {'comment': comment} - return self.make_request("comment", project, str(number), - post_data=comment_data, - filter='comment') + return self.get_value("comment", project, str(number), + post_data=comment_data, filter='comment', + datatype=Comment) def comments(self, project, number): """View comments on an issue. :param str project: GitHub project - :param int number: issue number in the Github database + """ return self.get_values("comments", project, str(number), filter="comments", datatype=Comment) diff --git a/github2/organizations.py b/github2/organizations.py index 25df990..d11f9c4 100644 --- a/github2/organizations.py +++ b/github2/organizations.py @@ -1,11 +1,25 @@ -from github2.core import BaseData, GithubCommand, Attribute, DateAttribute +# Copyright (C) 2011-2012 James Rowe +# Patryk Zawadzki +# Rok Garbas +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + +from github2.core import (BaseData, GithubCommand, Attribute, DateAttribute, + requires_auth) from github2.repositories import Repository from github2.teams import Team from github2.users import User class Organization(BaseData): - """.. versionadded:: 0.4.0""" + + """Organization container. + + .. versionadded:: 0.4.0 + + """ + id = Attribute("The organization id.") name = Attribute("The full name of the organization.") blog = Attribute("The organization's blog.") @@ -16,10 +30,13 @@ class Organization(BaseData): company = Attribute("The organization's company name.") created_at = DateAttribute("The date the organization was created.", format="commit") - following_count = Attribute("Number of users the organization is following.") + following_count = Attribute("Number of users the organization is " + "following.") followers_count = Attribute("Number of users following this organization.") - public_gist_count = Attribute("Organization's number of active public gists.") - public_repo_count = Attribute("Organization's number of active repositories.") + public_gist_count = Attribute("Organization's number of active public " + "gists.") + public_repo_count = Attribute("Organization's number of active " + "repositories.") permission = Attribute("Permissions within this organization.") plan = Attribute("GitHub plan for this organization.") @@ -31,53 +48,80 @@ def __repr__(self): class Organizations(GithubCommand): - """.. versionadded:: 0.4.0""" + + """GitHub API organizations functionality. + + .. versionadded:: 0.4.0 + + """ + domain = "organizations" def show(self, organization): - """Get information on organization + """Get information on organization. :param str organization: organization to show + """ return self.get_value(organization, filter="organization", datatype=Organization) def list(self): - """Get list of all of your organizations""" + """Get list of all of your organizations.""" return self.get_values('', filter="organizations", datatype=Organization) def repositories(self, organization=''): - """Get list of all repositories in an organization + """Get list of all repositories in an organization. If organization is not given, or is empty, then this will list repositories for all organizations the authenticated user belongs to. :param: str organization: organization to list repositories for + """ return self.get_values(organization, 'repositories', filter="repositories", datatype=Repository) def public_repositories(self, organization): - """Get list of public repositories in an organization + """Get list of public repositories in an organization. :param str organization: organization to list public repositories for + """ return self.get_values(organization, 'public_repositories', filter="repositories", datatype=Repository) def public_members(self, organization): - """Get list of public members in an organization + """Get list of public members in an organization. :param str organization: organization to list members for + """ return self.get_values(organization, 'public_members', filter="users", datatype=User) def teams(self, organization): - """Get list of teams in an organization + """Get list of teams in an organization. :param str organization: organization to list teams for + """ return self.get_values(organization, 'teams', filter="teams", datatype=Team) + + @requires_auth + def add_team(self, organization, name, permission='pull', projects=None): + """Add a team to an organization. + + :param str organization: organization to add team to + :param str team: name of team to add + :param str permission: permissions for team(push, pull or admin) + :param list projects: optional GitHub projects for this team + + """ + team_data = {'team[name]': name, 'team[permission]': permission} + if projects: + team_data['team[repo_names][]'] = projects + return self.get_value(organization, 'teams', post_data=team_data, + method='POST', filter='team', datatype=Team) diff --git a/github2/pull_requests.py b/github2/pull_requests.py index 09f92e5..d4ea6e9 100644 --- a/github2/pull_requests.py +++ b/github2/pull_requests.py @@ -1,12 +1,24 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2010-2012 Christopher MacGown +# Ionuț Arțăriși +# James Rowe +# Stéphane Angel +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + from github2.core import (BaseData, GithubCommand, Attribute, DateAttribute, repr_string) class PullRequest(BaseData): - """Pull request encapsulation + + """Pull request container. .. versionadded:: 0.5.0 + """ + state = Attribute("The pull request state") base = Attribute("The base repo") head = Attribute("The head of the pull request") @@ -22,14 +34,14 @@ class PullRequest(BaseData): patch_url = Attribute("The URL to the downloadable patch.") labels = Attribute("A list of labels attached to the pull request.") html_url = Attribute("The URL to the pull request.") - issue_created_at = DateAttribute("The date the issue for this pull request was opened.", - format='iso') - issue_updated_at = DateAttribute("The date the issue for this pull request was last updated.", - format='iso') + issue_created_at = DateAttribute("The date the issue for this pull " + "request was opened.", format='iso') + issue_updated_at = DateAttribute("The date the issue for this pull " + "request was last updated.", format='iso') created_at = DateAttribute("The date when this pull request was created.", format='iso') - updated_at = DateAttribute("The date when this pull request was last updated.", - format='iso') + updated_at = DateAttribute("The date when this pull request was last " + "updated.", format='iso') closed_at = DateAttribute("The date when this pull request was closed", format='iso') discussion = Attribute("Discussion thread for the pull request.") @@ -40,25 +52,29 @@ def __repr__(self): class PullRequests(GithubCommand): - """Operations on pull requests + + """GitHub API pull request functionality. .. versionadded:: 0.5.0 + """ + domain = "pulls" def create(self, project, base, head, title=None, body=None, issue=None): - """Create a new pull request + """Create a new pull request. Pull requests can be created from scratch, or attached to an existing issue. If an ``issue`` parameter is supplied the pull request is attached to that issue, else a new pull request is created. - :param str project: the Github project to send the pull request to + :param str project: the GitHub project to send the pull request to :param str base: branch changes should be pulled into :param str head: branch of the changes to be pulled :param str title: title for pull request :param str body: optional body for pull request :param str issue: existing issue to attach pull request to + """ post_data = {"base": base, "head": head} if issue: @@ -73,22 +89,25 @@ def create(self, project, base, head, title=None, body=None, issue=None): "pull request should be attached.") pull_request_data = [("pull[%s]" % k, v) for k, v in post_data.items()] return self.get_value(project, post_data=dict(pull_request_data), - filter="pull", datatype=PullRequest) + filter="pull", datatype=PullRequest) def show(self, project, number): - """Show a single pull request + """Show a single pull request. + + :param str project: GitHub project + :param int number: pull request number in the GitHub database - :param str project: Github project - :param int number: pull request number in the Github database """ return self.get_value(project, str(number), filter="pull", datatype=PullRequest) - def list(self, project, state="open"): - """List all pull requests for a project + def list(self, project, state="open", page=1): + """List all pull requests for a project. - :param str project: Github project + :param str project: GitHub project :param str state: can be either ``open`` or ``closed`` + :param int page: optional page number + """ return self.get_values(project, state, filter="pulls", - datatype=PullRequest) + datatype=PullRequest, page=page) diff --git a/github2/repositories.py b/github2/repositories.py index 17476f1..bb84bcf 100644 --- a/github2/repositories.py +++ b/github2/repositories.py @@ -1,3 +1,20 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009-2012 Ask Solem +# Claudio B. +# Daniel Greenfeld +# James Rowe +# Jens Ohlig +# Jeremy Dunck +# Jonas Obrist +# Kenneth Reitz +# Mark Paschal +# Maximillian Dornseif +# Sameer Al-Sakran +# Stéphane Angel +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + from github2.core import (BaseData, GithubCommand, Attribute, DateAttribute, requires_auth) @@ -5,6 +22,9 @@ class Repository(BaseData): + + """Repository container.""" + name = Attribute("Name of repository.") description = Attribute("Repository description.") forks = Attribute("Number of forks of this repository.") @@ -14,7 +34,7 @@ class Repository(BaseData): fork = Attribute("If True, this is a fork of another repository.") owner = Attribute("Username of the user owning this repository.") homepage = Attribute("Homepage for this project.") - master_branch = Attribute("Default branch, if set.") + master_branch = Attribute("Default branch, if set.") integration_branch = Attribute("Integration branch, if set.") open_issues = Attribute("List of open issues for this repository.") created_at = DateAttribute("Datetime the repository was created.") @@ -23,6 +43,8 @@ class Repository(BaseData): has_wiki = Attribute("If True, this repository has a wiki.") has_issues = Attribute("If True, this repository has an issue tracker.") language = Attribute("Primary language for the repository.") + parent = Attribute("The parent project of this fork.") + source = Attribute("The root project of this fork") def _project(self): return self.owner + "/" + self.name @@ -33,12 +55,18 @@ def __repr__(self): class Repositories(GithubCommand): + """GitHub API repository functionality.""" + domain = "repos" def search(self, query): """Get all repositories that match term. + .. warning: + Returns at most 100 repositories + :param str query: term to search issues for + """ return self.get_values("search", query, filter="repositories", datatype=Repository) @@ -47,6 +75,7 @@ def show(self, project): """Get repository object for project. :param str project: GitHub project + """ return self.get_value("show", project, filter="repository", datatype=Repository) @@ -56,57 +85,66 @@ def pushable(self): """Return a list of repos you can push to that are not your own. .. versionadded:: 0.3.0 - """ - return self.get_values("pushable", filter="repositories", datatype=Repository) + """ + return self.get_values("pushable", filter="repositories", + datatype=Repository) - def list(self, user=None): + def list(self, user=None, page=1): """Return a list of all repositories for a user. - .. deprecated: 0.4.0 + .. deprecated:: 0.4.0 Previous releases would attempt to display repositories for the logged-in user when ``user`` wasn't supplied. This functionality is brittle and will be removed in a future release! - :param str user: Github user name to list repositories for + :param str user: GitHub user name to list repositories for + :param int page: optional page number + """ user = user or self.request.username return self.get_values("show", user, filter="repositories", - datatype=Repository) + datatype=Repository, page=page) @requires_auth def watch(self, project): - """Watch a project + """Watch a project. :param str project: GitHub project + """ - return self.make_request("watch", project) + return self.get_value("watch", project, filter='repository', + datatype=Repository) @requires_auth def unwatch(self, project): - """Unwatch a project + """Unwatch a project. :param str project: GitHub project + """ - return self.make_request("unwatch", project) + return self.get_value("unwatch", project, filter='repository', + datatype=Repository) @requires_auth def fork(self, project): - """Fork a project + """Fork a project. :param str project: GitHub project + """ return self.get_value("fork", project, filter="repository", datatype=Repository) @requires_auth def create(self, project, description=None, homepage=None, public=True): - """Create a repository + """Create a repository. :param str project: new project name :param str description: optional project description :param str homepage: optional project homepage :param bool public: whether to make a public project + """ repo_data = {"name": project, "description": description, "homepage": homepage, "public": str(int(public))} @@ -115,9 +153,10 @@ def create(self, project, description=None, homepage=None, public=True): @requires_auth def delete(self, project): - """Delete a repository + """Delete a repository. :param str project: project name to delete + """ # Two-step delete mechanism. We must echo the delete_token value back # to GitHub to actually delete a repository @@ -126,98 +165,111 @@ def delete(self, project): @requires_auth def set_private(self, project): - """Mark repository as private + """Mark repository as private. :param str project: project name to set as private + """ return self.make_request("set/private", project) @requires_auth def set_public(self, project): - """Mark repository as public + """Mark repository as public. :param str project: project name to set as public + """ return self.make_request("set/public", project) def list_collaborators(self, project): - """Lists all the collaborators in a project + """List all the collaborators in a project. :param str project: GitHub project + """ - return self.make_request("show", project, "collaborators", - filter="collaborators") + return self.get_values("show", project, "collaborators", + filter="collaborators") @requires_auth def add_collaborator(self, project, username): - """Adds an add_collaborator to a repo + """Add an add_collaborator to a repo. + + :param str project: GitHub project + :param str username: GitHub user to add as collaborator - :param str project: Github project - :param str username: Github user to add as collaborator """ - return self.make_request("collaborators", project, "add", username) + return self.make_request("collaborators", project, "add", username, + method="POST") @requires_auth def remove_collaborator(self, project, username): - """Removes an add_collaborator from a repo + """Remove a collaborator from a repo. + + :param str project: GitHub project + :param str username: GitHub user to add as collaborator - :param str project: Github project - :param str username: Github user to add as collaborator """ return self.make_request("collaborators", project, "remove", username, method="POST") def network(self, project): - """Get network data for project + """Get network data for project. + + :param str project: GitHub project - :param str project: Github project """ - return self.make_request("show", project, "network", filter="network") + return self.get_values("show", project, "network", filter="network", + datatype=Repository) def languages(self, project): - """Get programming language data for project + """Get programming language data for project. + + :param str project: GitHub project - :param str project: Github project """ - return self.make_request("show", project, "languages", - filter="languages") + return self.get_values("show", project, "languages", + filter="languages") def tags(self, project): - """Get tags for project + """Get tags for project. + + :param str project: GitHub project - :param str project: Github project """ - return self.make_request("show", project, "tags", filter="tags") + return self.get_values("show", project, "tags", filter="tags") def branches(self, project): - """Get branch names for project + """Get branch names for project. + + :param str project: GitHub project - :param str project: Github project """ - return self.make_request("show", project, "branches", - filter="branches") + return self.get_values("show", project, "branches", filter="branches") def watchers(self, project): - """Get list of watchers for project + """Get list of watchers for project. + + :param str project: GitHub project - :param str project: Github project """ - return self.make_request("show", project, "watchers", - filter="watchers") + return self.get_values("show", project, "watchers", filter="watchers") + + def watching(self, for_user=None, page=None): + """List all the repos a user is watching. - def watching(self, for_user=None): - """Lists all the repos a user is watching + :param str for_user: optional GitHub user name to list repositories for + :param int page: optional page number - :param str for_user: optional Github user name to list repositories for """ for_user = for_user or self.request.username return self.get_values("watched", for_user, filter="repositories", - datatype=Repository) + datatype=Repository, page=page) def list_contributors(self, project): - """Lists all the contributors in a project + """List all the contributors in a project. + + :param str project: GitHub project - :param str project: Github project """ return self.get_values("show", project, "contributors", filter="contributors", datatype=User) diff --git a/github2/request.py b/github2/request.py index 6d0a1d8..5961471 100644 --- a/github2/request.py +++ b/github2/request.py @@ -1,33 +1,102 @@ +# Copyright (C) 2009-2012 Adam Vandenberg +# Asheesh Laroia +# Ask Solem +# Chris Vale +# Daniel Greenfeld +# Evan Broder +# James Rowe +# Jeremy Dunck +# Josh Weinberg +# Mark Paschal +# Maximillian Dornseif +# Michael Basnight +# Patryk Zawadzki +# Rick Harris +# Sameer Al-Sakran +# Vincent Driessen +# modocache +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + import datetime import logging import re +import sys import time -import httplib2 + +try: + # For Python 3 + from http.client import responses +except ImportError: # For Python 2.5-2.7 + try: + from httplib import responses # NOQA + except ImportError: # For Python 2.4 + from BaseHTTPServer import BaseHTTPRequestHandler as _BHRH + responses = dict([(k, v[0]) for k, v in _BHRH.responses.items()]) # NOQA try: - import json as simplejson # For Python 2.6 + import json as simplejson # For Python 2.6+ except ImportError: - import simplejson -from os import path -from urlparse import (urlsplit, urlunsplit) + import simplejson # NOQA +from os import (getenv, path) try: - from urlparse import parse_qs + # For Python 3 + from urllib.parse import (parse_qs, quote, urlencode, urlsplit, urlunsplit) except ImportError: - from cgi import parse_qs -from urllib import urlencode, quote + from urlparse import (urlsplit, urlunsplit) # NOQA + try: + from urlparse import parse_qs # NOQA + except ImportError: + from cgi import parse_qs # NOQA + from urllib import urlencode, quote # NOQA + +import httplib2 #: Hostname for API access -GITHUB_URL = "https://github.com" +DEFAULT_GITHUB_URL = "https://github.com" #: Logger for requests module LOGGER = logging.getLogger('github2.request') +# Fetch actual path for httplib2's default cert bundle, for distributions that +# symlink their system certs +_HTTPLIB2_BUNDLE = path.realpath(path.dirname(httplib2.CA_CERTS)) +#: Whether github2 is using the system's certificates for SSL connections +SYSTEM_CERTS = not _HTTPLIB2_BUNDLE.startswith(path.dirname(httplib2.__file__)) +CA_CERTS = None +#: Whether github2 is using the cert's from the file given in $CURL_CA_BUNDLE +CURL_CERTS = False +if not SYSTEM_CERTS and sys.platform.startswith('linux'): + for cert_file in ['/etc/ssl/certs/ca-certificates.crt', + '/etc/pki/tls/certs/ca-bundle.crt']: + if path.exists(cert_file): + CA_CERTS = cert_file + SYSTEM_CERTS = True + break +elif not SYSTEM_CERTS and sys.platform.startswith('freebsd'): + if path.exists('/usr/local/share/certs/ca-root-nss.crt'): + CA_CERTS = '/usr/local/share/certs/ca-root-nss.crt' + SYSTEM_CERTS = True +elif path.exists(getenv('CURL_CA_BUNDLE', '')): + CA_CERTS = getenv('CURL_CA_BUNDLE') + CURL_CERTS = True +if not SYSTEM_CERTS and not CURL_CERTS: + CA_CERTS = path.join(path.dirname(path.abspath(__file__)), + "DigiCert_High_Assurance_EV_Root_CA.crt") + + +# Common missing entries from the HTTP status code dict, basically anything +# GitHub reports that isn't basic HTTP/1.1. +responses[422] = 'Unprocessable Entity' + def charset_from_headers(headers): - """Parse charset from headers + """Parse charset from headers. :param httplib2.Response headers: Request headers :return: Defined encoding, or default to ASCII + """ match = re.search("charset=([^ ;]+)", headers.get('content-type', "")) if match: @@ -38,11 +107,42 @@ def charset_from_headers(headers): class GithubError(Exception): - """An error occured when making a request to the Github API.""" + + """An error occurred when making a request to the GitHub API.""" + + +class HttpError(RuntimeError): + + """A HTTP error occurred when making a request to the GitHub API.""" + + def __init__(self, message, content, code): + """Create a HttpError exception. + + :param str message: Exception string + :param str content: Full content of HTTP request + :param int code: HTTP status code + + """ + self.args = (message, content, code) + self.message = message + self.content = content + self.code = code + if code in responses: + self.code_reason = responses[code] + else: + self.code_reason = "" + LOGGER.warning('Unknown HTTP status %r, please file an issue', + code) class GithubRequest(object): - github_url = GITHUB_URL + + """Make an API request. + + :see: :class:`github2.client.Github` + + """ + url_format = "%(github_url)s/api/%(api_version)s/%(api_format)s" api_version = "v2" api_format = "json" @@ -50,15 +150,16 @@ class GithubRequest(object): def __init__(self, username=None, api_token=None, url_prefix=None, requests_per_second=None, access_token=None, - cache=None, proxy_host=None, proxy_port=None): - """Make an API request. - - :see: :class:`github2.client.Github` - """ + cache=None, proxy_host=None, proxy_port=None, + github_url=None): self.username = username self.api_token = api_token self.access_token = access_token self.url_prefix = url_prefix + if github_url is None: + self.github_url = DEFAULT_GITHUB_URL + else: + self.github_url = github_url if requests_per_second is None: self.delay = 0 else: @@ -70,25 +171,33 @@ def __init__(self, username=None, api_token=None, url_prefix=None, "api_version": self.api_version, "api_format": self.api_format, } - digicert_ha_cert = path.join(path.dirname(path.abspath(__file__ )), - "DigiCert_High_Assurance_EV_Root_CA.crt") if proxy_host is None: - self._http = httplib2.Http(cache=cache, ca_certs=digicert_ha_cert) + self._http = httplib2.Http(cache=cache) else: proxy_info = httplib2.ProxyInfo(httplib2.socks.PROXY_TYPE_HTTP, proxy_host, proxy_port) - self._http = httplib2.Http(proxy_info=proxy_info, cache=cache, - ca_certs=digicert_ha_cert) + self._http = httplib2.Http(proxy_info=proxy_info, cache=cache) + self._http.ca_certs = CA_CERTS + if SYSTEM_CERTS: + LOGGER.info('Using system certificates in %r', CA_CERTS) + elif CURL_CERTS: + LOGGER.info("Using cURL's certificates in %r", CA_CERTS) + else: + LOGGER.warning('Using bundled certificate for HTTPS connections') def encode_authentication_data(self, extra_post_data): + post_data = [] if self.access_token: - post_data = {"access_token": self.access_token} + post_data.append(("access_token", self.access_token)) elif self.username and self.api_token: - post_data = {"login": self.username, - "token": self.api_token} - else: - post_data = {} - post_data.update(extra_post_data) + post_data.append(("login", self.username)) + post_data.append(("token", self.api_token)) + for key, value in extra_post_data.items(): + if isinstance(value, list): + for elem in value: + post_data.append((key, elem)) + else: + post_data.append((key, value)) return urlencode(post_data) def get(self, *path_components): @@ -112,11 +221,10 @@ def delete(self, *path_components, **extra_post_data): def make_request(self, path, extra_post_data=None, method="GET"): if self.delay: - since_last = (datetime.datetime.now() - self.last_request) - since_last_in_seconds = (since_last.days * 24 * 60 * 60) + since_last.seconds + (since_last.microseconds/1000000.0) - if since_last_in_seconds < self.delay: - duration = self.delay - since_last_in_seconds - LOGGER.warning("delaying API call %s second(s)", duration) + since_last = (datetime.datetime.utcnow() - self.last_request) + if since_last.days == 0 and since_last.seconds < self.delay: + duration = self.delay - since_last.seconds + LOGGER.warning("delaying API call %g second(s)", duration) time.sleep(duration) extra_post_data = extra_post_data or {} @@ -124,14 +232,13 @@ def make_request(self, path, extra_post_data=None, method="GET"): result = self.raw_request(url, extra_post_data, method=method) if self.delay: - self.last_request = datetime.datetime.now() + self.last_request = datetime.datetime.utcnow() return result def raw_request(self, url, extra_post_data, method="GET"): scheme, netloc, path, query, fragment = urlsplit(url) post_data = None headers = self.http_headers - headers["Accept"] = "text/html" method = method.upper() if extra_post_data or method == "POST": post_data = self.encode_authentication_data(extra_post_data) @@ -144,8 +251,9 @@ def raw_request(self, url, extra_post_data, method="GET"): logging.debug("URL: %r POST_DATA: %r RESPONSE_TEXT: %r", url, post_data, content) if response.status >= 400: - raise RuntimeError("unexpected response from github.com %d: %r" % ( - response.status, content)) + raise HttpError("Unexpected response from github.com %d: %r" + % (response.status, content), content, + response.status) json = simplejson.loads(content.decode(charset_from_headers(response))) if json.get("error"): raise self.GithubError(json["error"][0]["error"]) @@ -154,5 +262,7 @@ def raw_request(self, url, extra_post_data, method="GET"): @property def http_headers(self): - return {"User-Agent": "pygithub2 v1", - "Accept-Encoding": "application/json"} + return { + "User-Agent": "pygithub2 v1", + "Accept": "application/json", + } diff --git a/github2/teams.py b/github2/teams.py index 9332b67..ca423c9 100644 --- a/github2/teams.py +++ b/github2/teams.py @@ -1,10 +1,22 @@ -from github2.core import BaseData, GithubCommand, Attribute +# Copyright (C) 2011-2012 James Rowe +# Patryk Zawadzki +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + +from github2.core import BaseData, GithubCommand, Attribute, requires_auth from github2.repositories import Repository from github2.users import User class Team(BaseData): - """.. versionadded:: 0.4.0""" + + """Team container. + + .. versionadded:: 0.4.0 + + """ + id = Attribute("The team id") name = Attribute("Name of the team") permission = Attribute("Permissions of the team") @@ -14,52 +26,77 @@ def __repr__(self): class Teams(GithubCommand): - """.. versionadded:: 0.4.0""" + + """GitHub API teams functionality. + + .. versionadded:: 0.4.0 + + """ + domain = "teams" def show(self, team_id): - """Get information on team_id + """Get information on team_id. :param int team_id: team to get information for + """ return self.get_value(str(team_id), filter="team", datatype=Team) def members(self, team_id): - """Get list of all team members + """Get list of all team members. :param int team_id: team to get information for + """ return self.get_values(str(team_id), "members", filter="users", datatype=User) + @requires_auth + def add_member(self, team_id, username): + """Add a new member to a team. + + :param int team_id: team to add new member to + :param str username: GitHub username to add to team + + """ + return self.get_values(str(team_id), 'members', method='POST', + post_data={'name': username}, filter='users', + datatype=User) + def repositories(self, team_id): - """Get list of all team members + """Get list of all team repositories. :param int team_id: team to get information for + """ return self.get_values(str(team_id), "repositories", filter="repositories", datatype=Repository) + @requires_auth def add_project(self, team_id, project): - """Add a project to a team + """Add a project to a team. :param int team_id: team to add repository to :param str project: GitHub project + """ if isinstance(project, Repository): project = project.project - return self.make_request(str(team_id), "repositories", method="POST", - post_data={'name': project}, - filter="repositories", datatype=Repository) + return self.get_values(str(team_id), "repositories", method="POST", + post_data={'name': project}, + filter="repositories", datatype=Repository) + @requires_auth def remove_project(self, team_id, project): - """Remove a project to a team + """Remove a project to a team. :param int team_id: team to remove project from :param str project: GitHub project + """ if isinstance(project, Repository): project = project.project - return self.make_request(str(team_id), "repositories", method="DELETE", - post_data={'name': project}, - filter="repositories", datatype=Repository) + return self.get_values(str(team_id), "repositories", method="DELETE", + post_data={'name': project}, + filter="repositories", datatype=Repository) diff --git a/github2/users.py b/github2/users.py index 7196a22..805fed4 100644 --- a/github2/users.py +++ b/github2/users.py @@ -1,9 +1,37 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2009-2012 Ask Solem +# James Rowe +# Sameer Al-Sakran +# Stéphane Angel +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + +try: + from urllib.parse import quote_plus # For Python 3 +except ImportError: + from urllib import quote_plus # NOQA + from github2.core import (BaseData, GithubCommand, DateAttribute, Attribute, enhanced_by_auth, requires_auth) -import urllib + + +class Key(BaseData): + + """SSH key container.""" + + id = Attribute('The key id') + key = Attribute('The SSH key data') + title = Attribute('The title for the SSH key') + + def __repr__(self): + return "" % self.id class User(BaseData): + + """GitHub user container.""" + id = Attribute("The user id") login = Attribute("The login username") name = Attribute("The users full name") @@ -28,9 +56,11 @@ class User(BaseData): format="user") def is_authenticated(self): - """Test for user auththenication + """Test for user authentication. + + :return bool: ``True`` if user is authenticated - :return bool: ``True`` if user is authenticated""" + """ return self.plan is not None def __repr__(self): @@ -38,60 +68,100 @@ def __repr__(self): class Users(GithubCommand): + + """GitHub API user functionality.""" + domain = "user" def search(self, query): - """Search for users + """Search for users. + + .. warning: + Returns at most 100 users :param str query: term to search for + """ - return self.get_values("search", urllib.quote_plus(query), - filter="users", datatype=User) + return self.get_values("search", quote_plus(query), filter="users", + datatype=User) def search_by_email(self, query): - """Search for users by email address + """Search for users by email address. :param str query: email to search for + """ return self.get_value("email", query, filter="user", datatype=User) @enhanced_by_auth def show(self, username): - """Get information on Github user + """Get information on GitHub user. if ``username`` is ``None`` or an empty string information for the currently authenticated user is returned. - :param str username: Github user name + """ return self.get_value("show", username, filter="user", datatype=User) def followers(self, username): - """Get list of Github user's followers + """Get list of GitHub user's followers. + + :param str username: GitHub user name - :param str username: Github user name """ - return self.make_request("show", username, "followers", filter="users") + return self.get_values("show", username, "followers", filter="users") def following(self, username): - """Get list of users a Github user is following + """Get list of users a GitHub user is following. + + :param str username: GitHub user name - :param str username: Github user name """ - return self.make_request("show", username, "following", filter="users") + return self.get_values("show", username, "following", filter="users") @requires_auth def follow(self, other_user): - """Follow a Github user + """Follow a GitHub user. + + :param str other_user: GitHub user name - :param str other_user: Github user name """ - return self.make_request("follow", other_user) + return self.get_values("follow", other_user, method="POST") @requires_auth def unfollow(self, other_user): - """Unfollow a Github user + """Unfollow a GitHub user. + + :param str other_user: GitHub user name + + """ + return self.get_values("unfollow", other_user, method="POST") + + @requires_auth + def list_keys(self): + """Get list of SSH keys for the authenticated user.""" + return self.get_values('keys', filter='public_keys', datatype=Key) + + @requires_auth + def add_key(self, key, title=''): + """Add a SSH key for the authenticated user. + + :param str key: SSH key identifier + :param str title: Optional title for the SSH key + + """ + return self.get_values("key/add", + post_data={'key': key, 'title': title}, + method="POST", filter='public_keys', + datatype=Key) + + @requires_auth + def remove_key(self, key_id): + """Remove a SSH key for the authenticated user. + + :param int key_id: SSH key's GitHub identifier - :param str other_user: Github user name """ - return self.make_request("unfollow", other_user) + return self.get_values('key/remove', post_data={'id': str(key_id)}, + filter='public_keys', datatype=Key) diff --git a/setup.py b/setup.py index 0abb26b..b72d775 100755 --- a/setup.py +++ b/setup.py @@ -1,5 +1,15 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +# Copyright (C) 2009-2012 Ask Solem +# Cody Soyland +# Donald von Stufft +# James Rowe +# Maximillian Dornseif +# Michael Basnight +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + import codecs import sys @@ -9,16 +19,22 @@ install_requires = ['httplib2 >= 0.7.0', ] -# simplejson is included in the standard library since Python 2.6 as json. -if sys.version_info[:2] < (2, 6): + +# simplejson is included in the standard library since Python 2.6 as json +if sys.version_info < (2, 5): + # 2.1 drops support for 2.4 + install_requires.append('simplejson >= 2.0.9, < 2.1') +elif sys.version_info[:2] < (2, 6): install_requires.append('simplejson >= 2.0.9') -extra = {} -if sys.version_info >= (3,): - install_requires.append('python-dateutil >= 2.0') - extra['use_2to3'] = True -else: +# dateutil supports python 2.x in dateutil-1, python 3.x in dateutil-2.0 and +# python 2.6+ in dateutil-2.1. Exciting… +if sys.version_info[:2] <= (2, 5): install_requires.append('python-dateutil < 2.0') +elif sys.version_info < (3, ): + install_requires.append('python-dateutil < 2.0, >= 2.1') +else: + install_requires.append('python-dateutil > 2.0') long_description = (codecs.open('README.rst', "r", "utf-8").read() + "\n" + codecs.open('NEWS.rst', "r", "utf-8").read()) @@ -64,5 +80,4 @@ "Topic :: Software Development", "Topic :: Software Development :: Libraries", ], - **extra ) diff --git a/tests/_setup.py b/tests/_setup.py deleted file mode 100644 index c410274..0000000 --- a/tests/_setup.py +++ /dev/null @@ -1,6 +0,0 @@ -import sys - -# Forcibly insert path for `setup.py build` output, so that we import from the -# ``2to3`` converted sources. This is an ugly hack, but it saves an enormous -# amount of grief in handling Python 2 and 3. -sys.path.insert(0, 'build/lib') diff --git a/tests/data/github.com,api,v2,json,commits,list,JNRowe,jnrowe-misc,master,a252487bd992cdfc8247b3c41d0cb9fa b/tests/data/github.com,api,v2,json,commits,list,JNRowe,jnrowe-misc,master,a252487bd992cdfc8247b3c41d0cb9fa new file mode 100644 index 0000000..b88099b --- /dev/null +++ b/tests/data/github.com,api,v2,json,commits,list,JNRowe,jnrowe-misc,master,a252487bd992cdfc8247b3c41d0cb9fa @@ -0,0 +1,17 @@ +status: 200 +x-ratelimit-remaining: 59 +content-location: https://github.com/api/v2/json/commits/list/JNRowe/jnrowe-misc/master?page=2 +-content-encoding: gzip + path=/; expires=Fri, 01 Jan 2021 00:00:00 GMT; secure; HttpOnly +connection: keep-alive +content-length: 22608 +server: nginx/1.0.4 +x-runtime: 76ms +x-ratelimit-limit: 60 +etag: "c08770df8de8932404acd85ac90b5ec1" +cache-control: private, max-age=0, must-revalidate +date: Wed, 19 Oct 2011 08:33:37 GMT +x-frame-options: deny +content-type: application/json; charset=utf-8 + +{"commits":[{"parents":[{"id":"243c33a2060d5cd51290d52195e1715ac29b2b58"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/1f5ad2c3206bafc4aca9e6ce50f5c605befdb3d6","id":"1f5ad2c3206bafc4aca9e6ce50f5c605befdb3d6","committed_date":"2011-10-12T16:07:14-07:00","authored_date":"2011-10-12T16:07:14-07:00","message":"Pushed hammertime stabilisation back 90 days.\n\nWaiting on upstream to stabilise git-python.","tree":"677ba94fca78e6d1430a49c2c1cd27e05a209eaf","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"5514efe6f3f2e9f7a58f0049521c8384a1c8ceb2"},{"id":"4b85ff1be7b73b1a1a3d11cc9de56e6dfd42540f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/243c33a2060d5cd51290d52195e1715ac29b2b58","id":"243c33a2060d5cd51290d52195e1715ac29b2b58","committed_date":"2011-10-10T18:18:42-07:00","authored_date":"2011-10-10T18:18:42-07:00","message":"Merge branch 'maint/x86_keywording'\n\n* maint/x86_keywording:\n notmuch-0.7-r1 keyworded x86.\n gitflow-0.4.1-r1 keyworded x86.\n\nConflicts:\n\tmetadata/cache/mail-client/notmuch-0.7\n\tmetadata/cache/mail-client/notmuch-0.7-r1","tree":"7886c72264760286420375d3e85c865fdfb8defc","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"902317c71edc00f69edec774c5cce281c2cd9fbe"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/4b85ff1be7b73b1a1a3d11cc9de56e6dfd42540f","id":"4b85ff1be7b73b1a1a3d11cc9de56e6dfd42540f","committed_date":"2011-10-10T18:17:28-07:00","authored_date":"2011-10-10T18:16:47-07:00","message":"notmuch-0.7-r1 keyworded x86.\n\n(Portage version: 2.1.10.11/git/Linux x86, signed Manifest commit with key C0174749)","tree":"d1595b60f8341cf8dbbf8deff3952ff16163462e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ca357f4dbfd0fb84b1e69f21319834a4231a32d6"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/902317c71edc00f69edec774c5cce281c2cd9fbe","id":"902317c71edc00f69edec774c5cce281c2cd9fbe","committed_date":"2011-10-10T18:16:22-07:00","authored_date":"2011-10-10T18:16:07-07:00","message":"gitflow-0.4.1-r1 keyworded x86.\n\n(Portage version: 2.1.10.11/git/Linux x86, signed Manifest commit with key C0174749)","tree":"524a4017fb63380d0aee437a65a31f2a6d6d0d47","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e40f04082fd0d65779b4dc4ff183228678da3a48"},{"id":"116b9861acf29a2cf0161008d372e46d8ecd6b94"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/ca357f4dbfd0fb84b1e69f21319834a4231a32d6","id":"ca357f4dbfd0fb84b1e69f21319834a4231a32d6","committed_date":"2011-10-10T18:15:11-07:00","authored_date":"2011-10-10T18:15:11-07:00","message":"Merge branch 'maint/amd64_keywording' into maint/x86_keywording\n\n* maint/amd64_keywording:\n notmuch-0.7-r1 keyworded amd64.\n gitflow-0.4.1-r1 keyworded amd64.","tree":"af0f14bb6eaa8acfedf8e3f2e6dd2a7de4c1b7fb","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f7b6644a57cc3ea0032bf39a0adef64474335bc4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/5514efe6f3f2e9f7a58f0049521c8384a1c8ceb2","id":"5514efe6f3f2e9f7a58f0049521c8384a1c8ceb2","committed_date":"2011-10-10T12:58:52-07:00","authored_date":"2011-10-10T12:58:52-07:00","message":"Synced metadata cache for upstream's ruby eclass changes.","tree":"7b475d494eaa1fc176a200ed265af02ff772fb19","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b0d6bf4cec00418a08c1cd8250260742ad78de72"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/f7b6644a57cc3ea0032bf39a0adef64474335bc4","id":"f7b6644a57cc3ea0032bf39a0adef64474335bc4","committed_date":"2011-10-10T12:58:44-07:00","authored_date":"2011-10-10T12:58:44-07:00","message":"Synced metadata cache for upstream's python eclass changes.","tree":"0871aa5e0e17acbd82845416990bb8e4711ee2a0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b7a2bc11de398d17a584cbaa6d997fe72629f1d0"},{"id":"116b9861acf29a2cf0161008d372e46d8ecd6b94"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/b0d6bf4cec00418a08c1cd8250260742ad78de72","id":"b0d6bf4cec00418a08c1cd8250260742ad78de72","committed_date":"2011-10-10T12:57:08-07:00","authored_date":"2011-10-10T12:57:08-07:00","message":"Merge branch 'maint/amd64_keywording'\n\n* maint/amd64_keywording:\n notmuch-0.7-r1 keyworded amd64.\n gitflow-0.4.1-r1 keyworded amd64.","tree":"af0f14bb6eaa8acfedf8e3f2e6dd2a7de4c1b7fb","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d6461d1383c27228fbb95e13adb92f32f98585bb"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/116b9861acf29a2cf0161008d372e46d8ecd6b94","id":"116b9861acf29a2cf0161008d372e46d8ecd6b94","committed_date":"2011-10-10T12:56:57-07:00","authored_date":"2011-10-10T12:56:18-07:00","message":"notmuch-0.7-r1 keyworded amd64.\n\n(Portage version: 2.1.10.11/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"af0f14bb6eaa8acfedf8e3f2e6dd2a7de4c1b7fb","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b7a2bc11de398d17a584cbaa6d997fe72629f1d0"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/d6461d1383c27228fbb95e13adb92f32f98585bb","id":"d6461d1383c27228fbb95e13adb92f32f98585bb","committed_date":"2011-10-10T12:55:54-07:00","authored_date":"2011-10-10T12:55:40-07:00","message":"gitflow-0.4.1-r1 keyworded amd64.\n\n(Portage version: 2.1.10.11/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"cb7b49317a7c3d0f0c4de862a074f5c165162b56","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"baa8903ad5083ac52a344000f104e00f6add0607"},{"id":"e40f04082fd0d65779b4dc4ff183228678da3a48"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/b7a2bc11de398d17a584cbaa6d997fe72629f1d0","id":"b7a2bc11de398d17a584cbaa6d997fe72629f1d0","committed_date":"2011-10-06T13:51:44-07:00","authored_date":"2011-10-06T13:51:44-07:00","message":"Merge branch 'maint/x86_keywording'\n\n* maint/x86_keywording:\n Pushed hubugs stabilisation back 30 days.\n virtualenvwrapper-2.9 keyworded x86.\n sphinxcontrib-issuetracker-0.9 keyworded x86.\n Pushed github2 stabilisation back 30 days.\n argh-0.14.1 keyworded x86.\n Pushed hubugs stabilisation back 30 days.\n virtualenvwrapper-2.9 keyworded amd64.\n sphinxcontrib-issuetracker-0.9 keyworded amd64.\n Pushed github2 stabilisation back 30 days.\n argh-0.14.1 keyworded amd64.","tree":"f9d4490139bd84f62e00bde0f7655bc69f827d2d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8f07dc29d4f3f882a95f75bfef58e5b3b5f846a3"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/e40f04082fd0d65779b4dc4ff183228678da3a48","id":"e40f04082fd0d65779b4dc4ff183228678da3a48","committed_date":"2011-10-06T13:51:37-07:00","authored_date":"2011-10-06T13:51:37-07:00","message":"Pushed hubugs stabilisation back 30 days.\n\nWaiting on upstream to stabilise httplib2 for github2.","tree":"f9d4490139bd84f62e00bde0f7655bc69f827d2d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"39ec48f45cc57d9dbf14ad2194d718afdaa80257"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/8f07dc29d4f3f882a95f75bfef58e5b3b5f846a3","id":"8f07dc29d4f3f882a95f75bfef58e5b3b5f846a3","committed_date":"2011-10-06T13:51:20-07:00","authored_date":"2011-10-06T13:51:13-07:00","message":"virtualenvwrapper-2.9 keyworded x86.\n\n(Portage version: 2.1.10.11/git/Linux x86, signed Manifest commit with key C0174749)","tree":"97d75cbb684ff4ba8d1c5810c7055e9450b7f9c1","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"12879c35cb79a3cc162c39f3fbddf22d8b74f1d3"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/39ec48f45cc57d9dbf14ad2194d718afdaa80257","id":"39ec48f45cc57d9dbf14ad2194d718afdaa80257","committed_date":"2011-10-06T13:50:38-07:00","authored_date":"2011-10-06T13:50:27-07:00","message":"sphinxcontrib-issuetracker-0.9 keyworded x86.\n\n(Portage version: 2.1.10.11/git/Linux x86, signed Manifest commit with key C0174749)","tree":"b918414c2d44d0ad8d3c40cf37c1eb163926c23e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"5a10ee7f895b5262c5608ce81d4c65c921d3c048"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/12879c35cb79a3cc162c39f3fbddf22d8b74f1d3","id":"12879c35cb79a3cc162c39f3fbddf22d8b74f1d3","committed_date":"2011-10-06T13:49:57-07:00","authored_date":"2011-10-06T13:49:57-07:00","message":"Pushed github2 stabilisation back 30 days.\n\nWaiting on upstream to stabilise httplib2.","tree":"286d652bf585eea95950c80569642d788d01d8a2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f5d532003b18bf6bab2a3f6b87732058d46d2153"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/5a10ee7f895b5262c5608ce81d4c65c921d3c048","id":"5a10ee7f895b5262c5608ce81d4c65c921d3c048","committed_date":"2011-10-06T13:49:25-07:00","authored_date":"2011-10-06T13:49:13-07:00","message":"argh-0.14.1 keyworded x86.\n\n(Portage version: 2.1.10.11/git/Linux x86, signed Manifest commit with key C0174749)","tree":"0a4249ac47d63c6d882442cadaad66936547a61d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"4bd60274bbb6ee0fa3448191b55c0f8e55e326d2"},{"id":"fecae2825deeebbbb4b0315f6cc74c5ac909f396"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/f5d532003b18bf6bab2a3f6b87732058d46d2153","id":"f5d532003b18bf6bab2a3f6b87732058d46d2153","committed_date":"2011-10-06T13:45:29-07:00","authored_date":"2011-10-06T13:45:29-07:00","message":"Merge branch 'maint/amd64_keywording' into maint/x86_keywording\n\n* maint/amd64_keywording:\n Pushed hubugs stabilisation back 30 days.\n virtualenvwrapper-2.9 keyworded amd64.\n sphinxcontrib-issuetracker-0.9 keyworded amd64.\n Pushed github2 stabilisation back 30 days.\n argh-0.14.1 keyworded amd64.","tree":"38b6893bc9dfe17c95bc9726580f7f7848b780ab","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6201dc6d93c4f9ebf1d6a78ce77cb010edc9bb92"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/fecae2825deeebbbb4b0315f6cc74c5ac909f396","id":"fecae2825deeebbbb4b0315f6cc74c5ac909f396","committed_date":"2011-10-06T12:35:41-07:00","authored_date":"2011-10-06T12:35:41-07:00","message":"Pushed hubugs stabilisation back 30 days.\n\nWaiting on upstream to stabilise httplib2 for github2.","tree":"38b6893bc9dfe17c95bc9726580f7f7848b780ab","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"37fed3c9c8cf3760c5f3b620307cb75998ca43fd"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/6201dc6d93c4f9ebf1d6a78ce77cb010edc9bb92","id":"6201dc6d93c4f9ebf1d6a78ce77cb010edc9bb92","committed_date":"2011-10-06T12:34:52-07:00","authored_date":"2011-10-06T12:34:41-07:00","message":"virtualenvwrapper-2.9 keyworded amd64.\n\n(Portage version: 2.1.10.11/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"746f31efe1f0a235715f226e1546077a5604cac9","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"dce45a46cfac68218770173a3ea85d6e5c8c8738"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/37fed3c9c8cf3760c5f3b620307cb75998ca43fd","id":"37fed3c9c8cf3760c5f3b620307cb75998ca43fd","committed_date":"2011-10-06T12:34:11-07:00","authored_date":"2011-10-06T12:33:53-07:00","message":"sphinxcontrib-issuetracker-0.9 keyworded amd64.\n\n(Portage version: 2.1.10.11/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"4c442627b85f14891bbc9ad433e70fbf608f4bfd","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d5bc5958475581d429e7a5fe3d8a5ea32cf36c14"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/dce45a46cfac68218770173a3ea85d6e5c8c8738","id":"dce45a46cfac68218770173a3ea85d6e5c8c8738","committed_date":"2011-10-06T12:33:12-07:00","authored_date":"2011-10-06T12:33:06-07:00","message":"Pushed github2 stabilisation back 30 days.\n\nWaiting on upstream to stabilise >httplib2-0.7.","tree":"a94c7c50c583ea077aea940605f8917b809021c9","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"baa8903ad5083ac52a344000f104e00f6add0607"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/d5bc5958475581d429e7a5fe3d8a5ea32cf36c14","id":"d5bc5958475581d429e7a5fe3d8a5ea32cf36c14","committed_date":"2011-10-06T12:32:14-07:00","authored_date":"2011-10-06T12:31:53-07:00","message":"argh-0.14.1 keyworded amd64.\n\n(Portage version: 2.1.10.11/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"b75f02ad8ecf5461d834fceccea3054a36113616","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"fdf889cbecf352d2a128ac571679f18fdbe13358"},{"id":"4bd60274bbb6ee0fa3448191b55c0f8e55e326d2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/baa8903ad5083ac52a344000f104e00f6add0607","id":"baa8903ad5083ac52a344000f104e00f6add0607","committed_date":"2011-10-05T15:27:54-07:00","authored_date":"2011-10-05T15:27:54-07:00","message":"Merge branch 'maint/x86_keywording'\n\n* maint/x86_keywording:\n poster-0.8.1-r1 keyworded x86.\n Pushed pycparser stabilisation back 120 days.\n Pushed mnemosyne stabilisation back 120 days.\n poster-0.8.1-r1 keyworded amd64.\n Pushed pycparser stabilisation back 120 days.\n Pushed mnemosyne stabilisation back 120 days.","tree":"ea91858ca8eacb66b5740d714d4c6fe2d21de420","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d04abe67da0a7e20eeab22627e7a3b9763f45894"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/4bd60274bbb6ee0fa3448191b55c0f8e55e326d2","id":"4bd60274bbb6ee0fa3448191b55c0f8e55e326d2","committed_date":"2011-10-05T15:27:24-07:00","authored_date":"2011-10-05T15:27:14-07:00","message":"poster-0.8.1-r1 keyworded x86.\n\n(Portage version: 2.1.10.11/git/Linux x86, signed Manifest commit with key C0174749)","tree":"ea91858ca8eacb66b5740d714d4c6fe2d21de420","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6d6527c2c8fe0811b571886047d56da51ea54da4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/d04abe67da0a7e20eeab22627e7a3b9763f45894","id":"d04abe67da0a7e20eeab22627e7a3b9763f45894","committed_date":"2011-10-05T15:26:32-07:00","authored_date":"2011-10-05T15:26:32-07:00","message":"Pushed pycparser stabilisation back 120 days.\n\nWaiting on upstream to stabilise ply.","tree":"d93a8a679e59ec246d8b50473614d72b85e408be","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"c2803c6976c504e3ceb84b51393181f88b7ba206"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/6d6527c2c8fe0811b571886047d56da51ea54da4","id":"6d6527c2c8fe0811b571886047d56da51ea54da4","committed_date":"2011-10-05T15:26:03-07:00","authored_date":"2011-10-05T15:26:03-07:00","message":"Pushed mnemosyne stabilisation back 120 days.\n\nWaiting on upstream to stabilise kid.","tree":"d045483f6281a9794ded4ecafed72dd54fe3852e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"acdf46261919b8244acdc36b323c9f8139f0b72b"},{"id":"4f472c1925b03eb936c424a65555be09c45d1a23"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/c2803c6976c504e3ceb84b51393181f88b7ba206","id":"c2803c6976c504e3ceb84b51393181f88b7ba206","committed_date":"2011-10-05T15:25:27-07:00","authored_date":"2011-10-05T15:25:27-07:00","message":"Merge branch 'maint/amd64_keywording' into maint/x86_keywording\n\n* maint/amd64_keywording:\n poster-0.8.1-r1 keyworded amd64.\n Pushed pycparser stabilisation back 120 days.\n Pushed mnemosyne stabilisation back 120 days.","tree":"e1fb02fb2adc92e006c25d7e2795e269fc32a9c1","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e6ca71e08bb48a7f1d5aebdaa21eb41404e57124"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/4f472c1925b03eb936c424a65555be09c45d1a23","id":"4f472c1925b03eb936c424a65555be09c45d1a23","committed_date":"2011-10-05T06:12:54-07:00","authored_date":"2011-10-05T06:12:39-07:00","message":"poster-0.8.1-r1 keyworded amd64.\n\n(Portage version: 2.1.10.11/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"e1fb02fb2adc92e006c25d7e2795e269fc32a9c1","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"c8e0a78296e4da35a999939484e2949115116aac"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/e6ca71e08bb48a7f1d5aebdaa21eb41404e57124","id":"e6ca71e08bb48a7f1d5aebdaa21eb41404e57124","committed_date":"2011-10-05T06:11:42-07:00","authored_date":"2011-10-05T06:11:42-07:00","message":"Pushed pycparser stabilisation back 120 days.\n\nWaiting on upstream to stabilise ply.","tree":"854e90ed4557a301e50313762fc7611c971db4c2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"fdf889cbecf352d2a128ac571679f18fdbe13358"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/c8e0a78296e4da35a999939484e2949115116aac","id":"c8e0a78296e4da35a999939484e2949115116aac","committed_date":"2011-10-05T06:11:04-07:00","authored_date":"2011-10-05T06:11:04-07:00","message":"Pushed mnemosyne stabilisation back 120 days.\n\nWaiting on upstream to stabilise kid.","tree":"883c3796c8a3f023b247e2513267e23731fe69d7","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"a676eb056510cc903a441289bda41a75261dd9c4"},{"id":"acdf46261919b8244acdc36b323c9f8139f0b72b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/fdf889cbecf352d2a128ac571679f18fdbe13358","id":"fdf889cbecf352d2a128ac571679f18fdbe13358","committed_date":"2011-10-01T12:55:17-07:00","authored_date":"2011-10-01T12:55:17-07:00","message":"Merge branch 'maint/x86_keywording'\n\n* maint/x86_keywording:\n Pushed termtool stabilisation back 30 days.","tree":"0f94ddc8cfcb53350d9fe268dfcc43092f6b3edc","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"38e453da5deea4142a3e46ce8c271f1237185b7d"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/acdf46261919b8244acdc36b323c9f8139f0b72b","id":"acdf46261919b8244acdc36b323c9f8139f0b72b","committed_date":"2011-10-01T12:55:10-07:00","authored_date":"2011-10-01T12:55:10-07:00","message":"Pushed termtool stabilisation back 30 days.\n\nWaiting on upstream to stabilise progressbar.","tree":"0f94ddc8cfcb53350d9fe268dfcc43092f6b3edc","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"c0a7946e57249619437d4c47207cb99ae2741cb6"},{"id":"70dbab11e092872fe402c9108497695b013770f2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/38e453da5deea4142a3e46ce8c271f1237185b7d","id":"38e453da5deea4142a3e46ce8c271f1237185b7d","committed_date":"2011-09-30T13:50:05-07:00","authored_date":"2011-09-30T13:50:05-07:00","message":"Merge branch 'maint/amd64_keywording' into maint/x86_keywording\n\n* maint/amd64_keywording:\n Pushed termtool stabilisation back 30 days.","tree":"3b4bf1f427190c36f1f91801021c7a1c436ddab0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"31729c497b6bee3a36f20168fae12e2651cfd94b"},{"id":"70dbab11e092872fe402c9108497695b013770f2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/a676eb056510cc903a441289bda41a75261dd9c4","id":"a676eb056510cc903a441289bda41a75261dd9c4","committed_date":"2011-09-30T13:49:20-07:00","authored_date":"2011-09-30T13:49:20-07:00","message":"Merge branch 'maint/amd64_keywording'\n\n* maint/amd64_keywording:\n Pushed termtool stabilisation back 30 days.","tree":"3b4bf1f427190c36f1f91801021c7a1c436ddab0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"31729c497b6bee3a36f20168fae12e2651cfd94b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/jnrowe-misc/commit/70dbab11e092872fe402c9108497695b013770f2","id":"70dbab11e092872fe402c9108497695b013770f2","committed_date":"2011-09-30T13:48:48-07:00","authored_date":"2011-09-30T13:48:48-07:00","message":"Pushed termtool stabilisation back 30 days.\n\nWaiting on upstream to stabilise progressbar.","tree":"3b4bf1f427190c36f1f91801021c7a1c436ddab0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,gh-pages,d0ce7ae70e44f7f396a93485a24b3423 b/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,gh-pages,d0ce7ae70e44f7f396a93485a24b3423 index 7d9f455..b15f434 100644 --- a/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,gh-pages,d0ce7ae70e44f7f396a93485a24b3423 +++ b/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,gh-pages,d0ce7ae70e44f7f396a93485a24b3423 @@ -1,14 +1,16 @@ status: 200 -content-length: 19508 +x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/commits/list/JNRowe/misc-overlay/gh-pages -set-cookie: _gh_sess=BAh7BzoRbG9jYWxlX2d1ZXNzMCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--719def2ab2d99283383e374327fcdbb716c45c12; +-content-encoding: gzip path=/; expires=Fri, 01 Jan 2021 00:00:00 GMT; secure; HttpOnly -x-runtime: 74ms -server: nginx/0.7.67 connection: keep-alive -etag: "f853c8c431fcb88f7d265f942abcb2a1" +content-length: 19508 +server: nginx/1.0.4 +x-runtime: 90ms +x-ratelimit-limit: 60 +etag: "39dd7030e2a0f6ca6c81ecbaec0945b8" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 20:51:32 GMT +date: Thu, 25 Aug 2011 06:47:19 GMT content-type: application/json; charset=utf-8 -{"commits":[{"parents":[{"id":"dc510f30d64636acec23adb685f75216b2a5c536"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/482f657443df4b701137a3025ae08476cddd2b7d","id":"482f657443df4b701137a3025ae08476cddd2b7d","committed_date":"2011-05-22T00:24:02-07:00","authored_date":"2011-05-22T00:24:02-07:00","message":"Regenerated to master@37233b357d1a3648434ffda8f569ce96b3bcbf53.","tree":"1001c361f15bd70b4cb1d8675d46cbe2f869d922","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"c900486c92de886e204de0de9ab7ebb025300796"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/dc510f30d64636acec23adb685f75216b2a5c536","id":"dc510f30d64636acec23adb685f75216b2a5c536","committed_date":"2011-05-20T11:24:57-07:00","authored_date":"2011-05-20T11:24:57-07:00","message":"Regenerated to master@77174d5106157dd497a38152ff694616a6569e67.","tree":"120a08b10c9c39457c89a489e3c61cdf6150eb73","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"42f6555b92064d9517c4c01786dd2d1a726267ba"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/c900486c92de886e204de0de9ab7ebb025300796","id":"c900486c92de886e204de0de9ab7ebb025300796","committed_date":"2011-05-18T06:19:40-07:00","authored_date":"2011-05-18T06:19:40-07:00","message":"Regenerated to master@ddcad38eea125d5e0748b5c9a3c39d05269bd584.","tree":"7176d813fcd92e06e7cf63bbc4a489da0f0d6a96","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d54b3e1f44ffc0f1bbd3f7797957ff8908c3e7f4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/42f6555b92064d9517c4c01786dd2d1a726267ba","id":"42f6555b92064d9517c4c01786dd2d1a726267ba","committed_date":"2011-05-18T06:19:33-07:00","authored_date":"2011-05-18T06:19:33-07:00","message":"Regenerated to master@6e36ba0f2163cbd918fae302944b2cf5f4cf0ec2.","tree":"a764431dd319a830a6ebcfae3899b914f9f27a3a","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"22d7a0ea8bd62a4ed6740568e401be59a024e909"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d54b3e1f44ffc0f1bbd3f7797957ff8908c3e7f4","id":"d54b3e1f44ffc0f1bbd3f7797957ff8908c3e7f4","committed_date":"2011-05-18T06:19:26-07:00","authored_date":"2011-05-18T06:19:26-07:00","message":"Regenerated to master@07bfd80949820c9215e48ebb5e11d2fd48923e5a.","tree":"471163e95ce3c23d2b732bd001d56bca759c2420","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"883e534ed48b3f672d6377d7804d55bb6dd8619b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/22d7a0ea8bd62a4ed6740568e401be59a024e909","id":"22d7a0ea8bd62a4ed6740568e401be59a024e909","committed_date":"2011-05-18T06:19:19-07:00","authored_date":"2011-05-18T06:19:19-07:00","message":"Regenerated to master@944386cde5c100e699d0c2cb0ce403bf7e9cb8e7.","tree":"17dc717577ffc2c6f021efd65ec08ff3042b3e15","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8f1416b80d2d8b1400561c62caa3a8c419d565c8"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/883e534ed48b3f672d6377d7804d55bb6dd8619b","id":"883e534ed48b3f672d6377d7804d55bb6dd8619b","committed_date":"2011-05-18T06:19:12-07:00","authored_date":"2011-05-18T06:19:12-07:00","message":"Regenerated to master@dc40235add8b9cecd18b8d62a932ead301351075.","tree":"a070f9ccff562fd99bfdc30dcab3636e5787c493","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"bc629a169cf2c39391f07d4a8280d72926a5cf37"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/8f1416b80d2d8b1400561c62caa3a8c419d565c8","id":"8f1416b80d2d8b1400561c62caa3a8c419d565c8","committed_date":"2011-05-18T06:19:03-07:00","authored_date":"2011-05-18T06:19:03-07:00","message":"Regenerated to master@472da1f32f55d219286b106c97fa25dab1c33758.","tree":"4634dd6b341f04f5f030ab7a6f8ec04780b03ddc","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"663d32bc6d0644762cc5c80b29ee407efaeaaa14"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/bc629a169cf2c39391f07d4a8280d72926a5cf37","id":"bc629a169cf2c39391f07d4a8280d72926a5cf37","committed_date":"2011-05-18T06:18:55-07:00","authored_date":"2011-05-18T06:18:55-07:00","message":"Regenerated to master@79c0fb209d27eded8947eb4ffa5c74db4379abfe.","tree":"94957a98dc1f3898806ad9a6639dc2f634372120","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6ad4ec38eb73bd783fd068e5fbbcde532e07c2a1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/663d32bc6d0644762cc5c80b29ee407efaeaaa14","id":"663d32bc6d0644762cc5c80b29ee407efaeaaa14","committed_date":"2011-05-18T06:18:48-07:00","authored_date":"2011-05-18T06:18:48-07:00","message":"Regenerated to master@0dac8c2a2410325d5095cf5c290fae441843eec6.","tree":"c722d5bc095b3c6db4ebdcb8411d23ae0aa8c753","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"26adf3dcc7b90cdfab3eeff91240d2736e0f6aa0"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6ad4ec38eb73bd783fd068e5fbbcde532e07c2a1","id":"6ad4ec38eb73bd783fd068e5fbbcde532e07c2a1","committed_date":"2011-05-18T06:18:41-07:00","authored_date":"2011-05-18T06:18:41-07:00","message":"Regenerated to master@de547eab8229243de4906826a622b9305c5b972d.","tree":"553e39c28587b664b0ee28b7426cfa82f3800d17","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ec2ab762a5ff82e176593ee9ed41c1d7ef3908a3"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/26adf3dcc7b90cdfab3eeff91240d2736e0f6aa0","id":"26adf3dcc7b90cdfab3eeff91240d2736e0f6aa0","committed_date":"2011-05-18T06:18:34-07:00","authored_date":"2011-05-18T06:18:34-07:00","message":"Regenerated to master@c5a0736ee365ff994ba415a42622c26016e98201.","tree":"d8d7fc2e2da5cdb910e1c501c872656f25368012","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"481f71c738fbf5e85d0f91a6641af5fe2be58b51"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ec2ab762a5ff82e176593ee9ed41c1d7ef3908a3","id":"ec2ab762a5ff82e176593ee9ed41c1d7ef3908a3","committed_date":"2011-05-18T06:17:38-07:00","authored_date":"2011-05-18T06:17:38-07:00","message":"Regenerated to master@01b36090e191bfa74da5199d322c6028b15f0c86.","tree":"919c8aad024b7877ef1165026372be223d31f40d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f0b4cf728581a2810191e04f95969460dce9846c"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/481f71c738fbf5e85d0f91a6641af5fe2be58b51","id":"481f71c738fbf5e85d0f91a6641af5fe2be58b51","committed_date":"2011-05-18T05:49:29-07:00","authored_date":"2011-05-18T05:49:29-07:00","message":"Regenerated to master@9bd07338404171f18dcbb99b6bf351fbb6c3a8f1.","tree":"719716dfa3d81d214ce3b968c6a8f8b67511b7f8","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"30a0291143512c66f3ad2811c008262e3f9c14c5"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f0b4cf728581a2810191e04f95969460dce9846c","id":"f0b4cf728581a2810191e04f95969460dce9846c","committed_date":"2011-05-18T05:49:21-07:00","authored_date":"2011-05-18T05:49:21-07:00","message":"Regenerated to master@4654ab67b1767f066e38cfb55910095bbd797b2e.","tree":"671d07f1dcd6f4cb9b3ed7ec0c0a64c15cff924f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"901eae55af985825b5052e52892170f895f35d26"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/30a0291143512c66f3ad2811c008262e3f9c14c5","id":"30a0291143512c66f3ad2811c008262e3f9c14c5","committed_date":"2011-05-18T05:49:09-07:00","authored_date":"2011-05-18T05:49:09-07:00","message":"Regenerated to master@7fb4cf687ade6bfaffd22fc5fc06a77c2b706719.","tree":"3bc5da3e1815beaf6aaa0eee080b0f31c3464282","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f5afc160a71e9f2197de1665a0a50d72395f97c1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/901eae55af985825b5052e52892170f895f35d26","id":"901eae55af985825b5052e52892170f895f35d26","committed_date":"2011-05-18T05:48:23-07:00","authored_date":"2011-05-18T05:48:23-07:00","message":"Regenerated to master@6a328b3b4b1171de211dd2db765b1b403dea8e3a.","tree":"d6e0d83186ae524b7a3f6192601b726537adbb12","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"3e0c3a8997a3943db26f9b29551a07ac2dd273e7"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f5afc160a71e9f2197de1665a0a50d72395f97c1","id":"f5afc160a71e9f2197de1665a0a50d72395f97c1","committed_date":"2011-05-18T05:48:11-07:00","authored_date":"2011-05-18T05:48:11-07:00","message":"Regenerated to master@af39c23bbd4abab5b663c66d2cd1a81f3128c4f0.","tree":"d17e07f72894905ac6dd27052222cbeeb2c0b89d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8763c79257d40461b24427ba90cc9f49c353bce7"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/3e0c3a8997a3943db26f9b29551a07ac2dd273e7","id":"3e0c3a8997a3943db26f9b29551a07ac2dd273e7","committed_date":"2011-05-18T05:47:59-07:00","authored_date":"2011-05-18T05:47:59-07:00","message":"Regenerated to master@3fe9cb3de79b132e461c397176138abff39c6a28.","tree":"a440bb9b08d4cd7eb6a4a8b6c61cfb7311e8478d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f5f5e47c236cd5846a8b466b64fbc495946297e4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/8763c79257d40461b24427ba90cc9f49c353bce7","id":"8763c79257d40461b24427ba90cc9f49c353bce7","committed_date":"2011-05-18T05:47:12-07:00","authored_date":"2011-05-18T05:47:12-07:00","message":"Regenerated to master@6c8484ef6186c06093553f44c830597eff01b59e.","tree":"16361af013b2f41803fdcd20907c479c9052df30","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"38a34ed6c0f72157438e576a2cabd855dba2f98f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f5f5e47c236cd5846a8b466b64fbc495946297e4","id":"f5f5e47c236cd5846a8b466b64fbc495946297e4","committed_date":"2011-05-17T15:05:40-07:00","authored_date":"2011-05-17T15:05:40-07:00","message":"Regenerated to master@2db3879ca018193235c8967562ce9f4853202943.","tree":"89666ab4f20f6bdd272025aa5dc10d2432bd29a0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"29d1172e655664ebd8f8df783f39972bb78a5740"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/38a34ed6c0f72157438e576a2cabd855dba2f98f","id":"38a34ed6c0f72157438e576a2cabd855dba2f98f","committed_date":"2011-05-17T15:04:22-07:00","authored_date":"2011-05-17T15:04:22-07:00","message":"Regenerated to master@6b86595f9a5f049b52d359b3c9c56895851ef021.","tree":"020f7ad66cb5a84900f89ee2dff620c83f022c76","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e982c08b1c4d96cd9b734c677f1f023dd4380685"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/29d1172e655664ebd8f8df783f39972bb78a5740","id":"29d1172e655664ebd8f8df783f39972bb78a5740","committed_date":"2011-05-17T15:04:14-07:00","authored_date":"2011-05-17T15:04:14-07:00","message":"Regenerated to master@abb405c5b3cec29acf471cc5170f03b834106a6d.","tree":"a117c14f4a64eccf95c7d310e6059d3dd0b11bcb","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"7319a81f15c5a99203c01f7438959ca021334179"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/e982c08b1c4d96cd9b734c677f1f023dd4380685","id":"e982c08b1c4d96cd9b734c677f1f023dd4380685","committed_date":"2011-05-17T06:11:23-07:00","authored_date":"2011-05-17T06:11:23-07:00","message":"Regenerated to master@f72c51b7f65ada1bd377298c0e462fed499afcee.","tree":"a0139a1fd72f0062fafe128784a352e633df8f56","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9691bcc215a8fe204661044c625d97c55f1f8653"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7319a81f15c5a99203c01f7438959ca021334179","id":"7319a81f15c5a99203c01f7438959ca021334179","committed_date":"2011-05-17T06:11:16-07:00","authored_date":"2011-05-17T06:11:16-07:00","message":"Regenerated to master@48b55622c5c478bb5e6ffa0426c37f16029e6637.","tree":"8950bf04f5a650e1b354c234e8bab6529efbb683","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e5b1a93b37350421766cda46b90cabdd2171d197"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9691bcc215a8fe204661044c625d97c55f1f8653","id":"9691bcc215a8fe204661044c625d97c55f1f8653","committed_date":"2011-05-17T06:11:06-07:00","authored_date":"2011-05-17T06:11:06-07:00","message":"Regenerated to master@0e5d390672e7713ce9d6882820477fa26a2403a8.","tree":"1fc1562e7607848761d3af82fdf8cc3f25664c09","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"373157918971c6f5e313491ef6006c67fd50d497"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/e5b1a93b37350421766cda46b90cabdd2171d197","id":"e5b1a93b37350421766cda46b90cabdd2171d197","committed_date":"2011-05-17T06:10:59-07:00","authored_date":"2011-05-17T06:10:59-07:00","message":"Regenerated to master@aadb8c461bcff5f98d2629791a6526319ebedebf.","tree":"990626dece365eaa5894e07972eb72ee584133ff","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ac185a94dd7f5190ac317ee16042244ff0e24783"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/373157918971c6f5e313491ef6006c67fd50d497","id":"373157918971c6f5e313491ef6006c67fd50d497","committed_date":"2011-05-17T06:10:47-07:00","authored_date":"2011-05-17T06:10:47-07:00","message":"Regenerated to master@938698435b6feaeb5798b0b8265dec3c86a79f21.","tree":"0f91836cab86969d1e17ff2c4d1756788bac1bdf","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"39dfbb9ff704c4d0c86b48deccdf35c013b45871"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ac185a94dd7f5190ac317ee16042244ff0e24783","id":"ac185a94dd7f5190ac317ee16042244ff0e24783","committed_date":"2011-05-17T06:10:38-07:00","authored_date":"2011-05-17T06:10:38-07:00","message":"Regenerated to master@1a81af79e9448cc17cb962e6e554d2f95627e48a.","tree":"170fa4eb3372c8fae99c757c9e881b16d9f42b4f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"cb4e460851da323c1821b83b3ee9431e7961bb90"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/39dfbb9ff704c4d0c86b48deccdf35c013b45871","id":"39dfbb9ff704c4d0c86b48deccdf35c013b45871","committed_date":"2011-05-17T06:10:23-07:00","authored_date":"2011-05-17T06:10:23-07:00","message":"Regenerated to master@a42f9cc6206d3ab898d7e3f128d9435bccec36f3.","tree":"27d6c775e3514cb0047bdf37e1e0d4d62a49b86e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ac10f735a5ff397403cdb5336ee7361eba00a2ee"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/cb4e460851da323c1821b83b3ee9431e7961bb90","id":"cb4e460851da323c1821b83b3ee9431e7961bb90","committed_date":"2011-05-17T06:10:14-07:00","authored_date":"2011-05-17T06:10:14-07:00","message":"Regenerated to master@f305a8e19072faa41332ff771eef352d99b720dd.","tree":"4016b7b079894de95c66bc3d8e7afe2e594daccd","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"c7cb7d1931711ced912190193d53e26cac72d0b8"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ac10f735a5ff397403cdb5336ee7361eba00a2ee","id":"ac10f735a5ff397403cdb5336ee7361eba00a2ee","committed_date":"2011-05-17T06:10:05-07:00","authored_date":"2011-05-17T06:10:05-07:00","message":"Regenerated to master@0f13d2e4f32191aa0f2c5429666f0afb31934aee.","tree":"e316a4711d80f71e10a4ee2a4540908ace2b2944","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f3b0693d68e84ccfd0974b0d6e1ab4c8e983d809"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/c7cb7d1931711ced912190193d53e26cac72d0b8","id":"c7cb7d1931711ced912190193d53e26cac72d0b8","committed_date":"2011-05-17T06:09:57-07:00","authored_date":"2011-05-17T06:09:57-07:00","message":"Regenerated to master@44e4062f93c5d19d41f9d2158a382991f71b1142.","tree":"7791fcaf2992e7f762caf65bb8b7fc6756ca6a4f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"495b96a92c6d673c462011284cca1e8c273eeb0c"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f3b0693d68e84ccfd0974b0d6e1ab4c8e983d809","id":"f3b0693d68e84ccfd0974b0d6e1ab4c8e983d809","committed_date":"2011-05-17T06:09:36-07:00","authored_date":"2011-05-17T06:09:36-07:00","message":"Regenerated to master@f96f3d6df6e5c7be94957be247ddc0c569e99ed1.","tree":"b8e0182e827097942590d66e39bab525ec4c7cbf","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e4740d92686cf0bd2f1b745a1fbcff7d6f67f282"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/495b96a92c6d673c462011284cca1e8c273eeb0c","id":"495b96a92c6d673c462011284cca1e8c273eeb0c","committed_date":"2011-05-17T06:09:26-07:00","authored_date":"2011-05-17T06:09:26-07:00","message":"Regenerated to master@7c4ab2b4bcc82b1a6e80c8aa6b66128eecbbd59a.","tree":"9b5aeceb9c96dd4483f3cfa6e9d89c2a4b48947c","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}]} \ No newline at end of file +{"commits":[{"parents":[{"id":"0a98287afb6659dccb1e24d62244c94f945c757d"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/025148bdaa6fb6bdac9c3522d481fadf1c0a456f","id":"025148bdaa6fb6bdac9c3522d481fadf1c0a456f","committed_date":"2011-08-24T16:52:47-07:00","authored_date":"2011-08-24T16:52:47-07:00","message":"Regenerated to master@89a8193a669ad3ea96e4d0aeb00a12a366df5733.","tree":"6c70f9ace4bdcb5607a3bf59cd92bcd096d4e481","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"58986b8a454d299a02a80d6f739a8439d9715bf6"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/0a98287afb6659dccb1e24d62244c94f945c757d","id":"0a98287afb6659dccb1e24d62244c94f945c757d","committed_date":"2011-08-24T16:52:39-07:00","authored_date":"2011-08-24T16:52:39-07:00","message":"Regenerated to master@f192c08d43d64f6b7aec405963223d583ef8a040.","tree":"2a9be0b4c654cb10c17e69142f2c93a687679bf4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"079dbbe7bb20f5e22c2bf25c8b403810268949a1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/58986b8a454d299a02a80d6f739a8439d9715bf6","id":"58986b8a454d299a02a80d6f739a8439d9715bf6","committed_date":"2011-08-24T16:52:32-07:00","authored_date":"2011-08-24T16:52:32-07:00","message":"Regenerated to master@88b910c15ec1da485a24a4806c7021bfee218472.","tree":"6c70f9ace4bdcb5607a3bf59cd92bcd096d4e481","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"af8bd58ce3bd2d6e99f153acdb1fc7cf05983868"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/079dbbe7bb20f5e22c2bf25c8b403810268949a1","id":"079dbbe7bb20f5e22c2bf25c8b403810268949a1","committed_date":"2011-08-24T16:52:24-07:00","authored_date":"2011-08-24T16:52:24-07:00","message":"Regenerated to master@9d87ea27ba57d33d4f81e798b9dfee501f92418a.","tree":"17ca2418dde910a810a2079d7257d0218fcfa3c3","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"3b7c29bc9fe0c530f3ba78ee3bee8270f59578d9"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/af8bd58ce3bd2d6e99f153acdb1fc7cf05983868","id":"af8bd58ce3bd2d6e99f153acdb1fc7cf05983868","committed_date":"2011-08-23T13:19:27-07:00","authored_date":"2011-08-23T13:19:27-07:00","message":"Regenerated to master@56c2ffa6f33bb6d19a424735e2be56d4b94a64ba.","tree":"1d5784c3762e929008d0124f3fe64baf7ee00e0e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"57c7bd5ffc5a88310014d84edb0f03c5f1763b42"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/3b7c29bc9fe0c530f3ba78ee3bee8270f59578d9","id":"3b7c29bc9fe0c530f3ba78ee3bee8270f59578d9","committed_date":"2011-08-23T13:19:19-07:00","authored_date":"2011-08-23T13:19:19-07:00","message":"Regenerated to master@da7a75fd6c1fc4e3f7a54e946f5a99d7517a5a2d.","tree":"f7e528a6ae9301e14ae2cd632b4413aa4b8d6ae8","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"12a50df4c4b101c04ec0c1b0f478be28434696a1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/57c7bd5ffc5a88310014d84edb0f03c5f1763b42","id":"57c7bd5ffc5a88310014d84edb0f03c5f1763b42","committed_date":"2011-08-23T13:19:11-07:00","authored_date":"2011-08-23T13:19:11-07:00","message":"Regenerated to master@e1656e0222fedbbe7fc9995975d598629dc03d09.","tree":"656503e84cd1b0270934be1f382637fb65917b51","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"0cff89aa8ffb4ad17a0ddecfb21cd47dd92dd51b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/12a50df4c4b101c04ec0c1b0f478be28434696a1","id":"12a50df4c4b101c04ec0c1b0f478be28434696a1","committed_date":"2011-08-23T13:19:04-07:00","authored_date":"2011-08-23T13:19:04-07:00","message":"Regenerated to master@2f90ca3bbada2b5cd0bd29f1d6464eabcf8e0f16.","tree":"8b968a6af9e041abe0e19c38ef80d521ae7c2309","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"2ede8b05e71baff32374225c9f3575194ebd44e6"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/0cff89aa8ffb4ad17a0ddecfb21cd47dd92dd51b","id":"0cff89aa8ffb4ad17a0ddecfb21cd47dd92dd51b","committed_date":"2011-08-23T13:18:56-07:00","authored_date":"2011-08-23T13:18:56-07:00","message":"Regenerated to master@b0bf53ab02e9094419eb44103959375e6e636fa3.","tree":"6c7aeffe9c7252cab3070713df3a3e2b31e56926","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8014a2be87434a8216a45fc7ec8c64a7ecfc6e3b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/2ede8b05e71baff32374225c9f3575194ebd44e6","id":"2ede8b05e71baff32374225c9f3575194ebd44e6","committed_date":"2011-08-23T13:18:47-07:00","authored_date":"2011-08-23T13:18:47-07:00","message":"Regenerated to master@1c55b62c24ed3e1375c4aced8e7107cb5827ccc3.","tree":"885e5359e6efd5a7854f00a467a5850e4c1cebab","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6b053125f7d622ceec82b985cb9871307442b27a"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/8014a2be87434a8216a45fc7ec8c64a7ecfc6e3b","id":"8014a2be87434a8216a45fc7ec8c64a7ecfc6e3b","committed_date":"2011-08-19T12:35:56-07:00","authored_date":"2011-08-19T12:35:56-07:00","message":"Regenerated to master@7ac8c6196d6cd3aa5065afa3ee8e98e57491e3be.","tree":"9936a48eb2fdc5d460026287b0fe2c3bd0acf6b1","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ad427cb2d0abcb61c3fa5ea7358f8140e8ba6c8d"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6b053125f7d622ceec82b985cb9871307442b27a","id":"6b053125f7d622ceec82b985cb9871307442b27a","committed_date":"2011-08-19T12:35:49-07:00","authored_date":"2011-08-19T12:35:49-07:00","message":"Regenerated to master@be3e2ccbf0fa5a0fece6f1302bae3e0315744cef.","tree":"459fce756ba135f4c62d73b00a84e0957079bf8e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"784ca6695918ceadefe57552c349326e61af46ff"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ad427cb2d0abcb61c3fa5ea7358f8140e8ba6c8d","id":"ad427cb2d0abcb61c3fa5ea7358f8140e8ba6c8d","committed_date":"2011-08-19T12:35:41-07:00","authored_date":"2011-08-19T12:35:41-07:00","message":"Regenerated to master@23bf78b74bbd599715d54e7f34c844b2b5c0fe7c.","tree":"1b19f17a3280ade55a1c1ac314afe151fb48b866","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d55b6e7f638b713322417f01ad4156307cf2e439"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/784ca6695918ceadefe57552c349326e61af46ff","id":"784ca6695918ceadefe57552c349326e61af46ff","committed_date":"2011-08-19T12:35:33-07:00","authored_date":"2011-08-19T12:35:33-07:00","message":"Regenerated to master@8a710aaaeb7b82a01a815506f1697015cb89aad4.","tree":"0dba32a98aa1be0a1f442b19cff6716b3c4034f2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"91153a3dddd41eb52a7e55b211ba81ba7f3c6b4f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d55b6e7f638b713322417f01ad4156307cf2e439","id":"d55b6e7f638b713322417f01ad4156307cf2e439","committed_date":"2011-08-19T12:35:26-07:00","authored_date":"2011-08-19T12:35:26-07:00","message":"Regenerated to master@928830b0f2fb1708247096caa0f1a72953875ffa.","tree":"d5cbf9139337b682cfbd6c29197c37bbdf444aa3","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d8a0f3e2e8fa535b66c87fe0de984fe80098f99e"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/91153a3dddd41eb52a7e55b211ba81ba7f3c6b4f","id":"91153a3dddd41eb52a7e55b211ba81ba7f3c6b4f","committed_date":"2011-08-19T12:35:18-07:00","authored_date":"2011-08-19T12:35:18-07:00","message":"Regenerated to master@773007162c8597e8c3e738e4a856229d2ae87259.","tree":"c036284978961e0f3c97f4d5b5c23b198b4783d4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"598dcf108432672009ed6acae24c4f238eec0a07"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d8a0f3e2e8fa535b66c87fe0de984fe80098f99e","id":"d8a0f3e2e8fa535b66c87fe0de984fe80098f99e","committed_date":"2011-08-19T12:35:11-07:00","authored_date":"2011-08-19T12:35:11-07:00","message":"Regenerated to master@75889df6dc91f167cb370e0878dc51929e87d8cb.","tree":"b8bbad457d65c05545d7711d38d7413184c1ee4f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d4b3f4f6aa519d08d4f37474dd6f7ff0900682ed"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/598dcf108432672009ed6acae24c4f238eec0a07","id":"598dcf108432672009ed6acae24c4f238eec0a07","committed_date":"2011-08-19T12:35:03-07:00","authored_date":"2011-08-19T12:35:03-07:00","message":"Regenerated to master@16cb35e13c89606f8e1cab4843d37459314adb8d.","tree":"d8f7b6bfaef75becad304ad1a7d1ed42a1fffce7","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"38485affd5caa72fb8bcf5859b4cfb2d00940aff"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d4b3f4f6aa519d08d4f37474dd6f7ff0900682ed","id":"d4b3f4f6aa519d08d4f37474dd6f7ff0900682ed","committed_date":"2011-08-19T12:34:48-07:00","authored_date":"2011-08-19T12:34:48-07:00","message":"Regenerated to master@92b1180ef9bea3bf383375680d2673ad4d172885.","tree":"53d4a394a858e932c9ae09f00d84bec7a0ea54b2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ba496a6dbce08b29f4022fe7239ed5ce5d28a0f1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/38485affd5caa72fb8bcf5859b4cfb2d00940aff","id":"38485affd5caa72fb8bcf5859b4cfb2d00940aff","committed_date":"2011-08-19T12:34:40-07:00","authored_date":"2011-08-19T12:34:40-07:00","message":"Regenerated to master@9e4bfcedd81742b417b77672436322ea68c5a250.","tree":"f360eb1580f3cb0eccea8aef1f24124d8386654a","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"639c26b3bca543bc6b0614c6a515b91b66e3c97a"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ba496a6dbce08b29f4022fe7239ed5ce5d28a0f1","id":"ba496a6dbce08b29f4022fe7239ed5ce5d28a0f1","committed_date":"2011-08-19T12:34:32-07:00","authored_date":"2011-08-19T12:34:32-07:00","message":"Regenerated to master@02d98678efb443df5fd182644dfe07362ade1f57.","tree":"be30084dd3fcfe945313ce170251ebf43c2d88c2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9f523e62120f9e5ccf3b55760ecf1bf1005ae453"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/639c26b3bca543bc6b0614c6a515b91b66e3c97a","id":"639c26b3bca543bc6b0614c6a515b91b66e3c97a","committed_date":"2011-08-19T12:34:23-07:00","authored_date":"2011-08-19T12:34:23-07:00","message":"Regenerated to master@53af340852055e21c9fd7ab95bfd02413a529ade.","tree":"ca9f5cb320b0ecf9089263826bb02cbc62ba9b94","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"607dd0092327152b65ecda9963a8dff173ca4aa8"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9f523e62120f9e5ccf3b55760ecf1bf1005ae453","id":"9f523e62120f9e5ccf3b55760ecf1bf1005ae453","committed_date":"2011-08-19T12:34:16-07:00","authored_date":"2011-08-19T12:34:16-07:00","message":"Regenerated to master@1cc2ddacda2f10e66c4e03d1ce57899ad6ec4d94.","tree":"5f400c344b33caced42ac9030beb278dd1839864","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"de67c8990c15397f58bed3abe161eca428631a17"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/607dd0092327152b65ecda9963a8dff173ca4aa8","id":"607dd0092327152b65ecda9963a8dff173ca4aa8","committed_date":"2011-08-19T12:34:08-07:00","authored_date":"2011-08-19T12:34:08-07:00","message":"Regenerated to master@113dbf403732cb0444d1d37502765fc985127173.","tree":"fae4168d424646b499d5d91c7927557aecc54911","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"94c89874b44d1ebbde6391280385fafec672c1c1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/de67c8990c15397f58bed3abe161eca428631a17","id":"de67c8990c15397f58bed3abe161eca428631a17","committed_date":"2011-08-19T12:34:00-07:00","authored_date":"2011-08-19T12:34:00-07:00","message":"Regenerated to master@01fbfddc984dffa94f97acc068a747ce5d1d6242.","tree":"fa42288107ec5d2210823e803c8bf3fcfe25ed9c","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6141eeb28597258a8d4d09fe8930b43faca17174"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/94c89874b44d1ebbde6391280385fafec672c1c1","id":"94c89874b44d1ebbde6391280385fafec672c1c1","committed_date":"2011-08-19T12:33:52-07:00","authored_date":"2011-08-19T12:33:52-07:00","message":"Regenerated to master@bbf0339749b25336a4d6907f69b2557ba4f65adf.","tree":"f21c7bb062828ac6ed8829d408e05476eaef1538","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"76adb634ca9c4282cfdc6fde888a01b2eefe2b7c"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6141eeb28597258a8d4d09fe8930b43faca17174","id":"6141eeb28597258a8d4d09fe8930b43faca17174","committed_date":"2011-08-18T13:09:15-07:00","authored_date":"2011-08-18T13:09:15-07:00","message":"Regenerated to master@38619c8162e40a86d2edf81acd488a4ae71b8225.","tree":"857cab31f23ccf7e68d528fb4b2d5119b0d69eab","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"49dda674f0bf768fbeaaeccc865db824c2299866"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/76adb634ca9c4282cfdc6fde888a01b2eefe2b7c","id":"76adb634ca9c4282cfdc6fde888a01b2eefe2b7c","committed_date":"2011-08-18T13:08:58-07:00","authored_date":"2011-08-18T13:08:58-07:00","message":"Regenerated to master@151b0f7b09dc0ed9ee1fdc0a6ac5a6ab50bfee44.","tree":"c4676c96343948e653b7570d48f9539e80642b03","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"477929046f2952a4d52d54703c6c9e45777ee07e"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/49dda674f0bf768fbeaaeccc865db824c2299866","id":"49dda674f0bf768fbeaaeccc865db824c2299866","committed_date":"2011-08-18T13:08:44-07:00","authored_date":"2011-08-18T13:08:44-07:00","message":"Regenerated to master@62f854f04fa00f8eef9e125486f9841117beac3a.","tree":"4eb4676b7db1a4b616040c82c989cd5051c6d3f4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b9a2a28b630932493d86c23843a6e00e8d8ee1a8"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/477929046f2952a4d52d54703c6c9e45777ee07e","id":"477929046f2952a4d52d54703c6c9e45777ee07e","committed_date":"2011-08-18T13:08:28-07:00","authored_date":"2011-08-18T13:08:28-07:00","message":"Regenerated to master@99cc3c9af871eed65227fc7eff4803016f335b4a.","tree":"2aab1d103f2f6e381e7ffb867759bc3d818565d4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b542c7d9611a09ef4460b92ca0af79e767d873f5"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/b9a2a28b630932493d86c23843a6e00e8d8ee1a8","id":"b9a2a28b630932493d86c23843a6e00e8d8ee1a8","committed_date":"2011-08-18T13:08:13-07:00","authored_date":"2011-08-18T13:08:13-07:00","message":"Regenerated to master@5df5f3c4fa6a75ffd263770e0f0151aa88db69bd.","tree":"28a7fce63f8ddd3fde928fe5dd1cd211a55f65aa","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d0e4182e3402bcd3566813552afba7b05b333b26"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/b542c7d9611a09ef4460b92ca0af79e767d873f5","id":"b542c7d9611a09ef4460b92ca0af79e767d873f5","committed_date":"2011-08-18T13:08:01-07:00","authored_date":"2011-08-18T13:08:01-07:00","message":"Regenerated to master@6af177d7fad34ad2b2454d972eecd9165bc1aab1.","tree":"9be8a02e3032eb5712d1de02fe7b4de8266a08af","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"be5cf5ae473749bf9224276d0042fa482218d43f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d0e4182e3402bcd3566813552afba7b05b333b26","id":"d0e4182e3402bcd3566813552afba7b05b333b26","committed_date":"2011-08-18T13:07:53-07:00","authored_date":"2011-08-18T13:07:53-07:00","message":"Regenerated to master@d7405761dd5f6bc5ec5fb44915d921f52fdae535.","tree":"7ef67ab69af9746592f8d5cd43a9f35721223dfc","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"a28246baeacb186293335316b6ba73b1956493b1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/be5cf5ae473749bf9224276d0042fa482218d43f","id":"be5cf5ae473749bf9224276d0042fa482218d43f","committed_date":"2011-08-18T13:07:45-07:00","authored_date":"2011-08-18T13:07:45-07:00","message":"Regenerated to master@8ca70949a7bbd6b3dab125a1aa334e3682b10ce9.","tree":"1eebd7cb1afd4500e845bd356a46febd7ba08dd4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ec1607f0668354d20a389961bd39492f23077367"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/a28246baeacb186293335316b6ba73b1956493b1","id":"a28246baeacb186293335316b6ba73b1956493b1","committed_date":"2011-08-18T13:07:38-07:00","authored_date":"2011-08-18T13:07:38-07:00","message":"Regenerated to master@7054ad152fe698b8a9e7255f2b89c56f4438706b.","tree":"377c85d6fa2cf52d809ceff2c583ceeb63517357","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,gh-pages,packages,dev-python.html,8622bc5e052f03439528cc9b7bf3fea2 b/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,gh-pages,packages,dev-python.html,8622bc5e052f03439528cc9b7bf3fea2 index 03bed3e..a55f85d 100644 --- a/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,gh-pages,packages,dev-python.html,8622bc5e052f03439528cc9b7bf3fea2 +++ b/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,gh-pages,packages,dev-python.html,8622bc5e052f03439528cc9b7bf3fea2 @@ -1,14 +1,16 @@ status: 200 -content-length: 19508 +x-ratelimit-remaining: 58 content-location: https://github.com/api/v2/json/commits/list/JNRowe/misc-overlay/gh-pages/packages/dev-python.html -set-cookie: _gh_sess=BAh7BzoRbG9jYWxlX2d1ZXNzMCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--719def2ab2d99283383e374327fcdbb716c45c12; +-content-encoding: gzip path=/; expires=Fri, 01 Jan 2021 00:00:00 GMT; secure; HttpOnly -x-runtime: 90ms -server: nginx/0.7.67 connection: keep-alive -etag: "f853c8c431fcb88f7d265f942abcb2a1" +content-length: 19508 +server: nginx/1.0.4 +x-runtime: 114ms +x-ratelimit-limit: 60 +etag: "39dd7030e2a0f6ca6c81ecbaec0945b8" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 20:54:07 GMT +date: Thu, 25 Aug 2011 06:48:02 GMT content-type: application/json; charset=utf-8 -{"commits":[{"parents":[{"id":"dc510f30d64636acec23adb685f75216b2a5c536"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/482f657443df4b701137a3025ae08476cddd2b7d","id":"482f657443df4b701137a3025ae08476cddd2b7d","committed_date":"2011-05-22T00:24:02-07:00","authored_date":"2011-05-22T00:24:02-07:00","message":"Regenerated to master@37233b357d1a3648434ffda8f569ce96b3bcbf53.","tree":"1001c361f15bd70b4cb1d8675d46cbe2f869d922","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"c900486c92de886e204de0de9ab7ebb025300796"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/dc510f30d64636acec23adb685f75216b2a5c536","id":"dc510f30d64636acec23adb685f75216b2a5c536","committed_date":"2011-05-20T11:24:57-07:00","authored_date":"2011-05-20T11:24:57-07:00","message":"Regenerated to master@77174d5106157dd497a38152ff694616a6569e67.","tree":"120a08b10c9c39457c89a489e3c61cdf6150eb73","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d54b3e1f44ffc0f1bbd3f7797957ff8908c3e7f4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/42f6555b92064d9517c4c01786dd2d1a726267ba","id":"42f6555b92064d9517c4c01786dd2d1a726267ba","committed_date":"2011-05-18T06:19:33-07:00","authored_date":"2011-05-18T06:19:33-07:00","message":"Regenerated to master@6e36ba0f2163cbd918fae302944b2cf5f4cf0ec2.","tree":"a764431dd319a830a6ebcfae3899b914f9f27a3a","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"22d7a0ea8bd62a4ed6740568e401be59a024e909"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d54b3e1f44ffc0f1bbd3f7797957ff8908c3e7f4","id":"d54b3e1f44ffc0f1bbd3f7797957ff8908c3e7f4","committed_date":"2011-05-18T06:19:26-07:00","authored_date":"2011-05-18T06:19:26-07:00","message":"Regenerated to master@07bfd80949820c9215e48ebb5e11d2fd48923e5a.","tree":"471163e95ce3c23d2b732bd001d56bca759c2420","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"883e534ed48b3f672d6377d7804d55bb6dd8619b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/22d7a0ea8bd62a4ed6740568e401be59a024e909","id":"22d7a0ea8bd62a4ed6740568e401be59a024e909","committed_date":"2011-05-18T06:19:19-07:00","authored_date":"2011-05-18T06:19:19-07:00","message":"Regenerated to master@944386cde5c100e699d0c2cb0ce403bf7e9cb8e7.","tree":"17dc717577ffc2c6f021efd65ec08ff3042b3e15","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6ad4ec38eb73bd783fd068e5fbbcde532e07c2a1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/663d32bc6d0644762cc5c80b29ee407efaeaaa14","id":"663d32bc6d0644762cc5c80b29ee407efaeaaa14","committed_date":"2011-05-18T06:18:48-07:00","authored_date":"2011-05-18T06:18:48-07:00","message":"Regenerated to master@0dac8c2a2410325d5095cf5c290fae441843eec6.","tree":"c722d5bc095b3c6db4ebdcb8411d23ae0aa8c753","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"26adf3dcc7b90cdfab3eeff91240d2736e0f6aa0"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6ad4ec38eb73bd783fd068e5fbbcde532e07c2a1","id":"6ad4ec38eb73bd783fd068e5fbbcde532e07c2a1","committed_date":"2011-05-18T06:18:41-07:00","authored_date":"2011-05-18T06:18:41-07:00","message":"Regenerated to master@de547eab8229243de4906826a622b9305c5b972d.","tree":"553e39c28587b664b0ee28b7426cfa82f3800d17","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ec2ab762a5ff82e176593ee9ed41c1d7ef3908a3"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/26adf3dcc7b90cdfab3eeff91240d2736e0f6aa0","id":"26adf3dcc7b90cdfab3eeff91240d2736e0f6aa0","committed_date":"2011-05-18T06:18:34-07:00","authored_date":"2011-05-18T06:18:34-07:00","message":"Regenerated to master@c5a0736ee365ff994ba415a42622c26016e98201.","tree":"d8d7fc2e2da5cdb910e1c501c872656f25368012","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"481f71c738fbf5e85d0f91a6641af5fe2be58b51"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ec2ab762a5ff82e176593ee9ed41c1d7ef3908a3","id":"ec2ab762a5ff82e176593ee9ed41c1d7ef3908a3","committed_date":"2011-05-18T06:17:38-07:00","authored_date":"2011-05-18T06:17:38-07:00","message":"Regenerated to master@01b36090e191bfa74da5199d322c6028b15f0c86.","tree":"919c8aad024b7877ef1165026372be223d31f40d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f0b4cf728581a2810191e04f95969460dce9846c"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/481f71c738fbf5e85d0f91a6641af5fe2be58b51","id":"481f71c738fbf5e85d0f91a6641af5fe2be58b51","committed_date":"2011-05-18T05:49:29-07:00","authored_date":"2011-05-18T05:49:29-07:00","message":"Regenerated to master@9bd07338404171f18dcbb99b6bf351fbb6c3a8f1.","tree":"719716dfa3d81d214ce3b968c6a8f8b67511b7f8","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"901eae55af985825b5052e52892170f895f35d26"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/30a0291143512c66f3ad2811c008262e3f9c14c5","id":"30a0291143512c66f3ad2811c008262e3f9c14c5","committed_date":"2011-05-18T05:49:09-07:00","authored_date":"2011-05-18T05:49:09-07:00","message":"Regenerated to master@7fb4cf687ade6bfaffd22fc5fc06a77c2b706719.","tree":"3bc5da3e1815beaf6aaa0eee080b0f31c3464282","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f5afc160a71e9f2197de1665a0a50d72395f97c1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/901eae55af985825b5052e52892170f895f35d26","id":"901eae55af985825b5052e52892170f895f35d26","committed_date":"2011-05-18T05:48:23-07:00","authored_date":"2011-05-18T05:48:23-07:00","message":"Regenerated to master@6a328b3b4b1171de211dd2db765b1b403dea8e3a.","tree":"d6e0d83186ae524b7a3f6192601b726537adbb12","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"3e0c3a8997a3943db26f9b29551a07ac2dd273e7"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f5afc160a71e9f2197de1665a0a50d72395f97c1","id":"f5afc160a71e9f2197de1665a0a50d72395f97c1","committed_date":"2011-05-18T05:48:11-07:00","authored_date":"2011-05-18T05:48:11-07:00","message":"Regenerated to master@af39c23bbd4abab5b663c66d2cd1a81f3128c4f0.","tree":"d17e07f72894905ac6dd27052222cbeeb2c0b89d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8763c79257d40461b24427ba90cc9f49c353bce7"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/3e0c3a8997a3943db26f9b29551a07ac2dd273e7","id":"3e0c3a8997a3943db26f9b29551a07ac2dd273e7","committed_date":"2011-05-18T05:47:59-07:00","authored_date":"2011-05-18T05:47:59-07:00","message":"Regenerated to master@3fe9cb3de79b132e461c397176138abff39c6a28.","tree":"a440bb9b08d4cd7eb6a4a8b6c61cfb7311e8478d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f5f5e47c236cd5846a8b466b64fbc495946297e4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/8763c79257d40461b24427ba90cc9f49c353bce7","id":"8763c79257d40461b24427ba90cc9f49c353bce7","committed_date":"2011-05-18T05:47:12-07:00","authored_date":"2011-05-18T05:47:12-07:00","message":"Regenerated to master@6c8484ef6186c06093553f44c830597eff01b59e.","tree":"16361af013b2f41803fdcd20907c479c9052df30","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e982c08b1c4d96cd9b734c677f1f023dd4380685"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/29d1172e655664ebd8f8df783f39972bb78a5740","id":"29d1172e655664ebd8f8df783f39972bb78a5740","committed_date":"2011-05-17T15:04:14-07:00","authored_date":"2011-05-17T15:04:14-07:00","message":"Regenerated to master@abb405c5b3cec29acf471cc5170f03b834106a6d.","tree":"a117c14f4a64eccf95c7d310e6059d3dd0b11bcb","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"7319a81f15c5a99203c01f7438959ca021334179"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/e982c08b1c4d96cd9b734c677f1f023dd4380685","id":"e982c08b1c4d96cd9b734c677f1f023dd4380685","committed_date":"2011-05-17T06:11:23-07:00","authored_date":"2011-05-17T06:11:23-07:00","message":"Regenerated to master@f72c51b7f65ada1bd377298c0e462fed499afcee.","tree":"a0139a1fd72f0062fafe128784a352e633df8f56","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9691bcc215a8fe204661044c625d97c55f1f8653"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7319a81f15c5a99203c01f7438959ca021334179","id":"7319a81f15c5a99203c01f7438959ca021334179","committed_date":"2011-05-17T06:11:16-07:00","authored_date":"2011-05-17T06:11:16-07:00","message":"Regenerated to master@48b55622c5c478bb5e6ffa0426c37f16029e6637.","tree":"8950bf04f5a650e1b354c234e8bab6529efbb683","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"39dfbb9ff704c4d0c86b48deccdf35c013b45871"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ac185a94dd7f5190ac317ee16042244ff0e24783","id":"ac185a94dd7f5190ac317ee16042244ff0e24783","committed_date":"2011-05-17T06:10:38-07:00","authored_date":"2011-05-17T06:10:38-07:00","message":"Regenerated to master@1a81af79e9448cc17cb962e6e554d2f95627e48a.","tree":"170fa4eb3372c8fae99c757c9e881b16d9f42b4f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ac10f735a5ff397403cdb5336ee7361eba00a2ee"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/cb4e460851da323c1821b83b3ee9431e7961bb90","id":"cb4e460851da323c1821b83b3ee9431e7961bb90","committed_date":"2011-05-17T06:10:14-07:00","authored_date":"2011-05-17T06:10:14-07:00","message":"Regenerated to master@f305a8e19072faa41332ff771eef352d99b720dd.","tree":"4016b7b079894de95c66bc3d8e7afe2e594daccd","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f3b0693d68e84ccfd0974b0d6e1ab4c8e983d809"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/c7cb7d1931711ced912190193d53e26cac72d0b8","id":"c7cb7d1931711ced912190193d53e26cac72d0b8","committed_date":"2011-05-17T06:09:57-07:00","authored_date":"2011-05-17T06:09:57-07:00","message":"Regenerated to master@44e4062f93c5d19d41f9d2158a382991f71b1142.","tree":"7791fcaf2992e7f762caf65bb8b7fc6756ca6a4f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"495b96a92c6d673c462011284cca1e8c273eeb0c"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f3b0693d68e84ccfd0974b0d6e1ab4c8e983d809","id":"f3b0693d68e84ccfd0974b0d6e1ab4c8e983d809","committed_date":"2011-05-17T06:09:36-07:00","authored_date":"2011-05-17T06:09:36-07:00","message":"Regenerated to master@f96f3d6df6e5c7be94957be247ddc0c569e99ed1.","tree":"b8e0182e827097942590d66e39bab525ec4c7cbf","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e4740d92686cf0bd2f1b745a1fbcff7d6f67f282"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/495b96a92c6d673c462011284cca1e8c273eeb0c","id":"495b96a92c6d673c462011284cca1e8c273eeb0c","committed_date":"2011-05-17T06:09:26-07:00","authored_date":"2011-05-17T06:09:26-07:00","message":"Regenerated to master@7c4ab2b4bcc82b1a6e80c8aa6b66128eecbbd59a.","tree":"9b5aeceb9c96dd4483f3cfa6e9d89c2a4b48947c","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8832aeb528b781e4ee15517b72fb8c12c953b3ca"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7e1731965a19c2c70b1a10b42cf01b9007291b40","id":"7e1731965a19c2c70b1a10b42cf01b9007291b40","committed_date":"2011-05-17T06:08:39-07:00","authored_date":"2011-05-17T06:08:39-07:00","message":"Regenerated to master@a487ce90671d5ef3244d742d7fbe5ddb450802c0.","tree":"eff57796660ae68d5223ef4faba4d37ad37b9e74","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6c0ecbe11add1596cf0420f07f8e5b1ceb396df3"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/207d15e62a7ddb2d540da908b85437e87978a1e1","id":"207d15e62a7ddb2d540da908b85437e87978a1e1","committed_date":"2011-05-16T12:54:56-07:00","authored_date":"2011-05-16T12:54:56-07:00","message":"Regenerated to master@6b4a857ed3a0326fe543d5a41f49c942bae93420.","tree":"83534523596feaf881abfcc7eef1af92aba2e624","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d464c1dbe8de864da90423bca39f09d8a469782b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6c0ecbe11add1596cf0420f07f8e5b1ceb396df3","id":"6c0ecbe11add1596cf0420f07f8e5b1ceb396df3","committed_date":"2011-05-16T12:49:24-07:00","authored_date":"2011-05-16T12:49:24-07:00","message":"Regenerated to master@67da4a90939757514ef5b8907b1cc30da088372e.","tree":"9f1fc9939b7cb42eee18adb48303b9b550ed7a9f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"c3676fcd73c1811abe26290dd4cd2da808468567"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/3cb5e43810e2c96551a501172ac2c7afe1c635a2","id":"3cb5e43810e2c96551a501172ac2c7afe1c635a2","committed_date":"2011-05-14T06:07:04-07:00","authored_date":"2011-05-14T06:07:04-07:00","message":"Regenerated to master@d0ca7960c54b7c9a3ffd98e9ed5b430de4f1cf8f.","tree":"70fc54533649a0243cc2eee24e10f2889b984154","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d5711d508b6abdf75db245e4a019d5e231c45b66"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d19310d2a984e62f9d384c1af162d628f2d328e2","id":"d19310d2a984e62f9d384c1af162d628f2d328e2","committed_date":"2011-05-14T06:06:18-07:00","authored_date":"2011-05-14T06:06:18-07:00","message":"Regenerated to master@832382c82969074291673c3e4aba05fdcef11515.","tree":"953ca90550e721f055c2a08aab45757805079817","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"7380a4c52a9c3442fa2e975e04479499bf96216f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d5711d508b6abdf75db245e4a019d5e231c45b66","id":"d5711d508b6abdf75db245e4a019d5e231c45b66","committed_date":"2011-05-14T04:26:35-07:00","authored_date":"2011-05-14T04:26:35-07:00","message":"Regenerated to master@8b8ca395b5c01fec3335480aab6eec667a680248.","tree":"1bffb4fe8b6ee8e2ab8aaad5481323023c9972ee","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9837e052d55f730afea7dfbec5ff649b81eb9552"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/99ca4e94afa0a0cdbde5172e16230305c90ae7dc","id":"99ca4e94afa0a0cdbde5172e16230305c90ae7dc","committed_date":"2011-05-14T04:25:57-07:00","authored_date":"2011-05-14T04:25:57-07:00","message":"Regenerated to master@41ef19778b0b975cf7942ae88deec19ee3a7245e.","tree":"32295f76ecec241b4ca6521342dac97a52949804","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6a011c235d25a97fee032317fda4afafac3c06b0"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/fc439c18008715db78150e3df88b57d77d3372f1","id":"fc439c18008715db78150e3df88b57d77d3372f1","committed_date":"2011-05-13T12:34:28-07:00","authored_date":"2011-05-13T12:34:28-07:00","message":"Regenerated to master@1413f01349c6187c6ed25896d1d90f9164783784.","tree":"bf901c86ac99a79697dd0b7689e6744c95fb3dd3","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b42902c7d26c539d52afcdf8ea6e8e1193bcdf5d"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6a011c235d25a97fee032317fda4afafac3c06b0","id":"6a011c235d25a97fee032317fda4afafac3c06b0","committed_date":"2011-05-13T02:36:40-07:00","authored_date":"2011-05-13T02:36:40-07:00","message":"Regenerated to master@b276cdf6dc077f988fbf422ae150c518a0cf5c66.","tree":"d622cbf0065e5f8a2376b3e97ae4e30a8d11765f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ad818893ed1df55fa9fd2176fedea03c857e8fb3"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/b42902c7d26c539d52afcdf8ea6e8e1193bcdf5d","id":"b42902c7d26c539d52afcdf8ea6e8e1193bcdf5d","committed_date":"2011-05-12T08:50:32-07:00","authored_date":"2011-05-12T08:50:32-07:00","message":"Regenerated to master@2f09d163876dcc7832509844a7e6160598c8ed75.","tree":"ad8128fb4ba0d9ca26000b7153f4705d0c8abe58","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d91631eaf1d6351060123b79489df9663f60aa8e"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ad818893ed1df55fa9fd2176fedea03c857e8fb3","id":"ad818893ed1df55fa9fd2176fedea03c857e8fb3","committed_date":"2011-05-12T07:21:30-07:00","authored_date":"2011-05-12T07:21:30-07:00","message":"Regenerated to master@709bad1bf4e70b735b1c1284f11db4b89d8a6936.","tree":"e36c66980818c31f574f74cb55f38baafdf5f706","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d67fc99da1a396f8bbe918900af741c2ab6eb219"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d91631eaf1d6351060123b79489df9663f60aa8e","id":"d91631eaf1d6351060123b79489df9663f60aa8e","committed_date":"2011-05-12T07:21:16-07:00","authored_date":"2011-05-12T07:21:16-07:00","message":"Regenerated to master@0934e9be7d28a79de1ebd8374cf146d6cca61e87.","tree":"99c251d931dbe690b41b4c062ec09960b5aa5743","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}]} \ No newline at end of file +{"commits":[{"parents":[{"id":"0a98287afb6659dccb1e24d62244c94f945c757d"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/025148bdaa6fb6bdac9c3522d481fadf1c0a456f","id":"025148bdaa6fb6bdac9c3522d481fadf1c0a456f","committed_date":"2011-08-24T16:52:47-07:00","authored_date":"2011-08-24T16:52:47-07:00","message":"Regenerated to master@89a8193a669ad3ea96e4d0aeb00a12a366df5733.","tree":"6c70f9ace4bdcb5607a3bf59cd92bcd096d4e481","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"58986b8a454d299a02a80d6f739a8439d9715bf6"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/0a98287afb6659dccb1e24d62244c94f945c757d","id":"0a98287afb6659dccb1e24d62244c94f945c757d","committed_date":"2011-08-24T16:52:39-07:00","authored_date":"2011-08-24T16:52:39-07:00","message":"Regenerated to master@f192c08d43d64f6b7aec405963223d583ef8a040.","tree":"2a9be0b4c654cb10c17e69142f2c93a687679bf4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"079dbbe7bb20f5e22c2bf25c8b403810268949a1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/58986b8a454d299a02a80d6f739a8439d9715bf6","id":"58986b8a454d299a02a80d6f739a8439d9715bf6","committed_date":"2011-08-24T16:52:32-07:00","authored_date":"2011-08-24T16:52:32-07:00","message":"Regenerated to master@88b910c15ec1da485a24a4806c7021bfee218472.","tree":"6c70f9ace4bdcb5607a3bf59cd92bcd096d4e481","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"af8bd58ce3bd2d6e99f153acdb1fc7cf05983868"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/079dbbe7bb20f5e22c2bf25c8b403810268949a1","id":"079dbbe7bb20f5e22c2bf25c8b403810268949a1","committed_date":"2011-08-24T16:52:24-07:00","authored_date":"2011-08-24T16:52:24-07:00","message":"Regenerated to master@9d87ea27ba57d33d4f81e798b9dfee501f92418a.","tree":"17ca2418dde910a810a2079d7257d0218fcfa3c3","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"3b7c29bc9fe0c530f3ba78ee3bee8270f59578d9"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/af8bd58ce3bd2d6e99f153acdb1fc7cf05983868","id":"af8bd58ce3bd2d6e99f153acdb1fc7cf05983868","committed_date":"2011-08-23T13:19:27-07:00","authored_date":"2011-08-23T13:19:27-07:00","message":"Regenerated to master@56c2ffa6f33bb6d19a424735e2be56d4b94a64ba.","tree":"1d5784c3762e929008d0124f3fe64baf7ee00e0e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"57c7bd5ffc5a88310014d84edb0f03c5f1763b42"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/3b7c29bc9fe0c530f3ba78ee3bee8270f59578d9","id":"3b7c29bc9fe0c530f3ba78ee3bee8270f59578d9","committed_date":"2011-08-23T13:19:19-07:00","authored_date":"2011-08-23T13:19:19-07:00","message":"Regenerated to master@da7a75fd6c1fc4e3f7a54e946f5a99d7517a5a2d.","tree":"f7e528a6ae9301e14ae2cd632b4413aa4b8d6ae8","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"12a50df4c4b101c04ec0c1b0f478be28434696a1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/57c7bd5ffc5a88310014d84edb0f03c5f1763b42","id":"57c7bd5ffc5a88310014d84edb0f03c5f1763b42","committed_date":"2011-08-23T13:19:11-07:00","authored_date":"2011-08-23T13:19:11-07:00","message":"Regenerated to master@e1656e0222fedbbe7fc9995975d598629dc03d09.","tree":"656503e84cd1b0270934be1f382637fb65917b51","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"0cff89aa8ffb4ad17a0ddecfb21cd47dd92dd51b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/12a50df4c4b101c04ec0c1b0f478be28434696a1","id":"12a50df4c4b101c04ec0c1b0f478be28434696a1","committed_date":"2011-08-23T13:19:04-07:00","authored_date":"2011-08-23T13:19:04-07:00","message":"Regenerated to master@2f90ca3bbada2b5cd0bd29f1d6464eabcf8e0f16.","tree":"8b968a6af9e041abe0e19c38ef80d521ae7c2309","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"2ede8b05e71baff32374225c9f3575194ebd44e6"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/0cff89aa8ffb4ad17a0ddecfb21cd47dd92dd51b","id":"0cff89aa8ffb4ad17a0ddecfb21cd47dd92dd51b","committed_date":"2011-08-23T13:18:56-07:00","authored_date":"2011-08-23T13:18:56-07:00","message":"Regenerated to master@b0bf53ab02e9094419eb44103959375e6e636fa3.","tree":"6c7aeffe9c7252cab3070713df3a3e2b31e56926","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"784ca6695918ceadefe57552c349326e61af46ff"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ad427cb2d0abcb61c3fa5ea7358f8140e8ba6c8d","id":"ad427cb2d0abcb61c3fa5ea7358f8140e8ba6c8d","committed_date":"2011-08-19T12:35:41-07:00","authored_date":"2011-08-19T12:35:41-07:00","message":"Regenerated to master@23bf78b74bbd599715d54e7f34c844b2b5c0fe7c.","tree":"1b19f17a3280ade55a1c1ac314afe151fb48b866","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d55b6e7f638b713322417f01ad4156307cf2e439"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/784ca6695918ceadefe57552c349326e61af46ff","id":"784ca6695918ceadefe57552c349326e61af46ff","committed_date":"2011-08-19T12:35:33-07:00","authored_date":"2011-08-19T12:35:33-07:00","message":"Regenerated to master@8a710aaaeb7b82a01a815506f1697015cb89aad4.","tree":"0dba32a98aa1be0a1f442b19cff6716b3c4034f2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d8a0f3e2e8fa535b66c87fe0de984fe80098f99e"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/91153a3dddd41eb52a7e55b211ba81ba7f3c6b4f","id":"91153a3dddd41eb52a7e55b211ba81ba7f3c6b4f","committed_date":"2011-08-19T12:35:18-07:00","authored_date":"2011-08-19T12:35:18-07:00","message":"Regenerated to master@773007162c8597e8c3e738e4a856229d2ae87259.","tree":"c036284978961e0f3c97f4d5b5c23b198b4783d4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"598dcf108432672009ed6acae24c4f238eec0a07"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d8a0f3e2e8fa535b66c87fe0de984fe80098f99e","id":"d8a0f3e2e8fa535b66c87fe0de984fe80098f99e","committed_date":"2011-08-19T12:35:11-07:00","authored_date":"2011-08-19T12:35:11-07:00","message":"Regenerated to master@75889df6dc91f167cb370e0878dc51929e87d8cb.","tree":"b8bbad457d65c05545d7711d38d7413184c1ee4f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"639c26b3bca543bc6b0614c6a515b91b66e3c97a"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ba496a6dbce08b29f4022fe7239ed5ce5d28a0f1","id":"ba496a6dbce08b29f4022fe7239ed5ce5d28a0f1","committed_date":"2011-08-19T12:34:32-07:00","authored_date":"2011-08-19T12:34:32-07:00","message":"Regenerated to master@02d98678efb443df5fd182644dfe07362ade1f57.","tree":"be30084dd3fcfe945313ce170251ebf43c2d88c2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9f523e62120f9e5ccf3b55760ecf1bf1005ae453"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/639c26b3bca543bc6b0614c6a515b91b66e3c97a","id":"639c26b3bca543bc6b0614c6a515b91b66e3c97a","committed_date":"2011-08-19T12:34:23-07:00","authored_date":"2011-08-19T12:34:23-07:00","message":"Regenerated to master@53af340852055e21c9fd7ab95bfd02413a529ade.","tree":"ca9f5cb320b0ecf9089263826bb02cbc62ba9b94","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"de67c8990c15397f58bed3abe161eca428631a17"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/607dd0092327152b65ecda9963a8dff173ca4aa8","id":"607dd0092327152b65ecda9963a8dff173ca4aa8","committed_date":"2011-08-19T12:34:08-07:00","authored_date":"2011-08-19T12:34:08-07:00","message":"Regenerated to master@113dbf403732cb0444d1d37502765fc985127173.","tree":"fae4168d424646b499d5d91c7927557aecc54911","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"94c89874b44d1ebbde6391280385fafec672c1c1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/de67c8990c15397f58bed3abe161eca428631a17","id":"de67c8990c15397f58bed3abe161eca428631a17","committed_date":"2011-08-19T12:34:00-07:00","authored_date":"2011-08-19T12:34:00-07:00","message":"Regenerated to master@01fbfddc984dffa94f97acc068a747ce5d1d6242.","tree":"fa42288107ec5d2210823e803c8bf3fcfe25ed9c","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"49dda674f0bf768fbeaaeccc865db824c2299866"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/76adb634ca9c4282cfdc6fde888a01b2eefe2b7c","id":"76adb634ca9c4282cfdc6fde888a01b2eefe2b7c","committed_date":"2011-08-18T13:08:58-07:00","authored_date":"2011-08-18T13:08:58-07:00","message":"Regenerated to master@151b0f7b09dc0ed9ee1fdc0a6ac5a6ab50bfee44.","tree":"c4676c96343948e653b7570d48f9539e80642b03","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b542c7d9611a09ef4460b92ca0af79e767d873f5"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/b9a2a28b630932493d86c23843a6e00e8d8ee1a8","id":"b9a2a28b630932493d86c23843a6e00e8d8ee1a8","committed_date":"2011-08-18T13:08:13-07:00","authored_date":"2011-08-18T13:08:13-07:00","message":"Regenerated to master@5df5f3c4fa6a75ffd263770e0f0151aa88db69bd.","tree":"28a7fce63f8ddd3fde928fe5dd1cd211a55f65aa","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ec1607f0668354d20a389961bd39492f23077367"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/a28246baeacb186293335316b6ba73b1956493b1","id":"a28246baeacb186293335316b6ba73b1956493b1","committed_date":"2011-08-18T13:07:38-07:00","authored_date":"2011-08-18T13:07:38-07:00","message":"Regenerated to master@7054ad152fe698b8a9e7255f2b89c56f4438706b.","tree":"377c85d6fa2cf52d809ceff2c583ceeb63517357","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"272f0bb8b317decf1ffb03fd7101786b274d0a98"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/79b8cb8482c22a1740b71ff519abc96a2280b9cf","id":"79b8cb8482c22a1740b71ff519abc96a2280b9cf","committed_date":"2011-08-18T13:07:14-07:00","authored_date":"2011-08-18T13:07:14-07:00","message":"Regenerated to master@098c2e4bf47f68f0a36b095141d8514d1d589b39.","tree":"e8e7f9cf2d23fc6e48e20629e5edc6f828d6f8d9","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"a5f93825dacf7dcdefd754599cd9ee1463c40dfd"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/10f305f30bf9ff11f2e7c68b54f46155c887a5a1","id":"10f305f30bf9ff11f2e7c68b54f46155c887a5a1","committed_date":"2011-08-18T13:06:27-07:00","authored_date":"2011-08-18T13:06:27-07:00","message":"Regenerated to master@be19793759e71ac355f0ce2d60875f90e1355e19.","tree":"62c404fef8c24360795b74a6cbf17a20bcbf9704","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"2bfdfae0156708575fd656ece737435ffb0bb948"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/170cb19167779bdee5dc06cde2f4f6f2f2c7a5bd","id":"170cb19167779bdee5dc06cde2f4f6f2f2c7a5bd","committed_date":"2011-08-18T13:05:56-07:00","authored_date":"2011-08-18T13:05:56-07:00","message":"Regenerated to master@5ed9bf737383c4338b81974fe9f347c71afbe298.","tree":"9b6fb94063fd8c0a247b55c84cf1122c9108e8af","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9919d4b9eb1d2718e70a331bb63c77a8cbc3d95b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/0b112a67e44aa2777d53f3911a8eb900fea27706","id":"0b112a67e44aa2777d53f3911a8eb900fea27706","committed_date":"2011-08-18T13:05:25-07:00","authored_date":"2011-08-18T13:05:25-07:00","message":"Regenerated to master@be6ac09388ea7b360bc4a71a91f2633ce931276b.","tree":"0573c9fffcc251a0dac03a7802542a02712f43b4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"4452d8f121a85a2810409cd87965ec8d4e1ed728"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9919d4b9eb1d2718e70a331bb63c77a8cbc3d95b","id":"9919d4b9eb1d2718e70a331bb63c77a8cbc3d95b","committed_date":"2011-08-18T13:05:17-07:00","authored_date":"2011-08-18T13:05:17-07:00","message":"Regenerated to master@9021f373b0ad17def7eb7de03954cc68710945a5.","tree":"a79410b99ec16f8de250815b8a29d466ccd898ff","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"3aa8429a97a40c44c789006008568db35b9a4a18"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ec44714039cf1687d3e78671129ed9fddfbea1c3","id":"ec44714039cf1687d3e78671129ed9fddfbea1c3","committed_date":"2011-08-18T13:05:01-07:00","authored_date":"2011-08-18T13:05:01-07:00","message":"Regenerated to master@7c6cb75cb7a1712c5dcc3e6198815983bd904025.","tree":"a3487b1b439fc6e669e3ec4c095ec2fa21f49db1","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"bdb3ca90891ab29ad93442449d32a2ea66c3f097"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/3aa8429a97a40c44c789006008568db35b9a4a18","id":"3aa8429a97a40c44c789006008568db35b9a4a18","committed_date":"2011-08-16T15:32:29-07:00","authored_date":"2011-08-16T15:32:29-07:00","message":"Regenerated to master@be19793759e71ac355f0ce2d60875f90e1355e19.","tree":"4406db2633866b87e64d2ef3741c87c53a4cef05","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e029937f9ca2f98cb1d2fa73f3ad55635c9f4ab5"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/587166b8a1bcf2fa060f51a0d46e9f09bb3fdae1","id":"587166b8a1bcf2fa060f51a0d46e9f09bb3fdae1","committed_date":"2011-08-16T15:31:58-07:00","authored_date":"2011-08-16T15:31:58-07:00","message":"Regenerated to master@5ed9bf737383c4338b81974fe9f347c71afbe298.","tree":"a957560e977674b11bc437081b5564fd610179fe","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b2c1c3b0d2de6263683068fa857ea62f24021d71"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f17e016dc993b09bd258dfee95d302cb4d364aa0","id":"f17e016dc993b09bd258dfee95d302cb4d364aa0","committed_date":"2011-08-11T07:30:55-07:00","authored_date":"2011-08-11T07:30:55-07:00","message":"Regenerated to master@be6ac09388ea7b360bc4a71a91f2633ce931276b.","tree":"f095e295083b4ff29543d9e40585d4051ec9fd5d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"5162c4bc66efd03fc1b4191390e8d7778287978c"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/b2c1c3b0d2de6263683068fa857ea62f24021d71","id":"b2c1c3b0d2de6263683068fa857ea62f24021d71","committed_date":"2011-08-11T07:30:47-07:00","authored_date":"2011-08-11T07:30:47-07:00","message":"Regenerated to master@9021f373b0ad17def7eb7de03954cc68710945a5.","tree":"0bc07339aa56abb528d954fe3924bdc3029fdd04","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"205fe69e3426c84256c58211f5ea7b1c38127d9f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f5bfc136f50fc1fef3c86c72b6ba0f99a5492c0e","id":"f5bfc136f50fc1fef3c86c72b6ba0f99a5492c0e","committed_date":"2011-08-11T07:30:21-07:00","authored_date":"2011-08-11T07:30:21-07:00","message":"Regenerated to master@4a1bbcfa9d946db7c719e95af4d4911d96fe1551.","tree":"e0539f4cfd8272e0726c5f5c353bd8f4e7be1bae","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"041fae6b20b4a40e94109f633fa0ca8cda004029"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/205fe69e3426c84256c58211f5ea7b1c38127d9f","id":"205fe69e3426c84256c58211f5ea7b1c38127d9f","committed_date":"2011-08-11T07:30:03-07:00","authored_date":"2011-08-11T07:30:03-07:00","message":"Regenerated to master@6379e79a11f0dbdc8ad98201e8de03634811a03b.","tree":"0db5d904b66d909c11f9d12923f50ad02fec3b59","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"80bf5ca3cd41d53aeb20df02b5b9cbb6f0cc9318"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/229133b961d3580f26a7d7fee3ce13dd0183c168","id":"229133b961d3580f26a7d7fee3ce13dd0183c168","committed_date":"2011-08-11T07:29:39-07:00","authored_date":"2011-08-11T07:29:39-07:00","message":"Regenerated to master@9d279e279dfd06b3d5a85ebc65bac701ab027a2a.","tree":"70f8faacfc27ea2d4d25817956c1acdedbae4140","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"83ec12cd8d99f7799b78d5d6183c18965dd8c8a0"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/80bf5ca3cd41d53aeb20df02b5b9cbb6f0cc9318","id":"80bf5ca3cd41d53aeb20df02b5b9cbb6f0cc9318","committed_date":"2011-08-11T07:29:31-07:00","authored_date":"2011-08-11T07:29:31-07:00","message":"Regenerated to master@86b044f91d9a16b221acfdc2f79593fd857e256f.","tree":"0901c65d8ea594e8272e098798c4a3e241da0b85","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6d9c66cf0def5fa6cb5b1b45f9308077e9354ac9"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/83ec12cd8d99f7799b78d5d6183c18965dd8c8a0","id":"83ec12cd8d99f7799b78d5d6183c18965dd8c8a0","committed_date":"2011-08-11T07:29:22-07:00","authored_date":"2011-08-11T07:29:22-07:00","message":"Regenerated to master@9653614dc45f297c0d913b5804f153696dc8083f.","tree":"70f8faacfc27ea2d4d25817956c1acdedbae4140","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,master,Makefile,75d9a1e41e76c3b924420d48b56dc756 b/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,master,Makefile,75d9a1e41e76c3b924420d48b56dc756 index 57d90d1..d420f44 100644 --- a/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,master,Makefile,75d9a1e41e76c3b924420d48b56dc756 +++ b/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,master,Makefile,75d9a1e41e76c3b924420d48b56dc756 @@ -1,14 +1,16 @@ status: 200 -content-length: 17134 +x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/commits/list/JNRowe/misc-overlay/master/Makefile -set-cookie: _gh_sess=BAh7BzoRbG9jYWxlX2d1ZXNzMCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--719def2ab2d99283383e374327fcdbb716c45c12; +-content-encoding: gzip path=/; expires=Fri, 01 Jan 2021 00:00:00 GMT; secure; HttpOnly -x-runtime: 372ms -server: nginx/0.7.67 connection: keep-alive -etag: "306a5ce3acb78b41e3e36ad181c44754" +content-length: 19364 +server: nginx/1.0.4 +x-runtime: 368ms +x-ratelimit-limit: 60 +etag: "9b36e2e64adcddc23c36dbefbfaf7adf" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 20:53:40 GMT +date: Thu, 25 Aug 2011 06:48:47 GMT content-type: application/json; charset=utf-8 -{"commits":[{"parents":[{"id":"8f24d1b91d885b3ce52dd8e7cc5e18b369c5867e"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/41bcd985139189763256a8c82b8f0fcbe150eb03","id":"41bcd985139189763256a8c82b8f0fcbe150eb03","committed_date":"2011-04-29T21:17:59-07:00","authored_date":"2011-04-29T21:17:59-07:00","message":"Revert \"Write org-mode compatible removal reminders.\"\n\nThis reverts commit 4343c1c3ee6a353ed51ea863a8b213a05d5f5b80.\n\nConflicts:\n\n\tMakefile\n\tsupport/gen_removal.py","tree":"4ed8c0153f80d68fa68e434e6e12d8e2eec76281","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"4343c1c3ee6a353ed51ea863a8b213a05d5f5b80"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/90ecd07cc7f08d43f441d44c020bc91a49f0b9c6","id":"90ecd07cc7f08d43f441d44c020bc91a49f0b9c6","committed_date":"2011-03-07T00:36:47-08:00","authored_date":"2011-03-07T00:02:09-08:00","message":"Switched to org-mode syntax for stabilisation reminders.","tree":"92c0eaeb7b29036393c05c3ee3142d879067e865","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f9be28146dce6fd69e36d7dd72b8ecf5bc9bbd1f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/4343c1c3ee6a353ed51ea863a8b213a05d5f5b80","id":"4343c1c3ee6a353ed51ea863a8b213a05d5f5b80","committed_date":"2011-03-07T00:36:25-08:00","authored_date":"2011-03-07T00:01:41-08:00","message":"Write org-mode compatible removal reminders.\n\nNo longer using remind for this task.","tree":"f7f12bd835b4ae09e6bfc82bf04f8115e628aa85","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"639727a4d533288fdadcd68b8bde2dc84c26812c"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7fe50fe7294204120a23c4199d575313d89cc1dd","id":"7fe50fe7294204120a23c4199d575313d89cc1dd","committed_date":"2011-02-10T14:17:41-08:00","authored_date":"2011-02-10T14:17:41-08:00","message":"Small formatting and indentation fix.","tree":"02ad5b7e568f63ee9fe7d4244755451035bda02b","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9e60846c4692cccb38361f5eb93347ed1ad782bc"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/639727a4d533288fdadcd68b8bde2dc84c26812c","id":"639727a4d533288fdadcd68b8bde2dc84c26812c","committed_date":"2011-02-10T14:17:16-08:00","authored_date":"2011-02-10T14:17:16-08:00","message":"Don't fail Manifest generation with unset SIGN_KEY.","tree":"17251ab93e3d9d7f1a204c9387495a4658418257","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"0d519f8110843158a21d14c01d852b2ceef9f21f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9e60846c4692cccb38361f5eb93347ed1ad782bc","id":"9e60846c4692cccb38361f5eb93347ed1ad782bc","committed_date":"2011-02-10T14:15:32-08:00","authored_date":"2011-02-10T14:15:32-08:00","message":"Don't regenerate categories list for packages.","tree":"19153dc4562525730e67753b3c3dd3149b5376b6","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"50ab7577069d92f97634aff0a491a8a6fba11d71"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/fa7796f65f38ad5e6587f1e6a85fd03f53d14023","id":"fa7796f65f38ad5e6587f1e6a85fd03f53d14023","committed_date":"2011-02-04T03:12:25-08:00","authored_date":"2011-02-04T03:12:25-08:00","message":"Generate doc/thanks.rst from README.rst.\n\nReally shouldn't be manually maintaining lists.","tree":"25c92e68f1083444c6d7db6dbe597bea027aef8d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"2f3b0f35fdf24af9246f237843240915a18e9aa3"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f55f382d4f395d0d0e807c77495776224c0e1a23","id":"f55f382d4f395d0d0e807c77495776224c0e1a23","committed_date":"2011-02-02T09:31:51-08:00","authored_date":"2011-02-02T09:19:13-08:00","message":"Fixed categories generation, should overwrite and not append.","tree":"7228d33c816d69d5e9a5cbc63c421366e3304319","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"a99c6a599adbce66f69437515182ec205ebe1123"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/053c83cd2413d36b25413279eb1065c89e3e048d","id":"053c83cd2413d36b25413279eb1065c89e3e048d","committed_date":"2011-02-01T05:35:07-08:00","authored_date":"2011-02-01T05:35:07-08:00","message":"Moved news signing comment out of rule, it shouldn't be displayed.","tree":"860eadb5d60fe8f30553b72da214fd46601c6b05","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"074eedb9c02842a0196b4b9ad3ee386bc6182a84"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/a99c6a599adbce66f69437515182ec205ebe1123","id":"a99c6a599adbce66f69437515182ec205ebe1123","committed_date":"2011-02-01T05:29:13-08:00","authored_date":"2011-02-01T05:29:13-08:00","message":"Added rule to re-generate HTML documentation.","tree":"9e9d6df5fa81a759adcd6b8fc2197baa8fa75938","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"cb2234e17ebf226097321873cbb52d3ab924cf52"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/e76c3c8c8bce857ae0084b413e0c6e9b73c613dd","id":"e76c3c8c8bce857ae0084b413e0c6e9b73c613dd","committed_date":"2011-01-29T23:49:11-08:00","authored_date":"2011-01-29T23:49:11-08:00","message":"Validate reST syntax with check rule.","tree":"90fede79cf4777fc9f0deb7a47f7696d5c0afbbd","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"764c5aa41de29e22ff23c45c7278234ca1802795"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/cb2234e17ebf226097321873cbb52d3ab924cf52","id":"cb2234e17ebf226097321873cbb52d3ab924cf52","committed_date":"2011-01-29T23:46:05-08:00","authored_date":"2011-01-29T23:46:05-08:00","message":"No need to loop for profiles/categories generation.","tree":"92ed35edc1c4ca1072204a3b60087c3c2f4b5523","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"19838ee7086f5517bb5722986bca825e803d6304"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/764c5aa41de29e22ff23c45c7278234ca1802795","id":"764c5aa41de29e22ff23c45c7278234ca1802795","committed_date":"2011-01-29T23:45:40-08:00","authored_date":"2011-01-29T23:45:40-08:00","message":"Delete stale signatures, if SIGN_KEY is not set.","tree":"7f3546c7fbbda89b5e73c76b12c2b2d69e63530a","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"7dbadeef727224b9d72bf9373bbc15fba4ccb7ed"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f81e2b6b85169e487ec462864ea0d27ca25fefdd","id":"f81e2b6b85169e487ec462864ea0d27ca25fefdd","committed_date":"2011-01-12T05:38:07-08:00","authored_date":"2011-01-12T05:38:06-08:00","message":"Updated cupage-check rule to check for watch file existence.","tree":"56e1a14e263c3fac5f199abcb9966300f7cf106e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d1f839991b272875e0c5589bfdb3dd75668a72f2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7dbadeef727224b9d72bf9373bbc15fba4ccb7ed","id":"7dbadeef727224b9d72bf9373bbc15fba4ccb7ed","committed_date":"2011-01-12T05:37:43-08:00","authored_date":"2011-01-12T05:37:43-08:00","message":"Generate cupage.conf from watch files.","tree":"c0e404e5a8ebf36bcef6c580622c2b645820533c","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"af5f536666b22b864d1012b7b02258cf745d89ae"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/4f01f61e35439c1458a01e389f1c8dbe3496e3bf","id":"4f01f61e35439c1458a01e389f1c8dbe3496e3bf","committed_date":"2010-12-06T03:39:29-08:00","authored_date":"2010-12-06T03:39:29-08:00","message":"Manifests depend on ChangeLogs and metadata.xml.","tree":"b999161e481624d61f446d7fa4fdc32db6def3c3","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6b58cfa8600da5ad54b382067ad7c6e270845ea0"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/af5f536666b22b864d1012b7b02258cf745d89ae","id":"af5f536666b22b864d1012b7b02258cf745d89ae","committed_date":"2010-12-06T03:37:30-08:00","authored_date":"2010-12-06T03:37:30-08:00","message":"Read repository name from profiles/repo_name.","tree":"99244aa4b9404b64af0dea365cc54ad809cf9b35","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"60ba3e0f33576cebbfcea06307dabd7394164541"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6adf9d861925c5f66c0c1883e6c70c423bd409d4","id":"6adf9d861925c5f66c0c1883e6c70c423bd409d4","committed_date":"2010-12-06T03:26:08-08:00","authored_date":"2010-12-06T03:26:08-08:00","message":"Switched to egencache for use.local.desc generation.","tree":"a29b65e2faaf6481fb2d5a6388e890b3524836e1","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"31792887bcee17be39401fa59f681c243a2a2519"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/290fec4694bddde6ca54584cfd26c04b69e3dd6e","id":"290fec4694bddde6ca54584cfd26c04b69e3dd6e","committed_date":"2010-11-01T09:20:53-07:00","authored_date":"2010-11-01T09:20:53-07:00","message":"Fixed generation of news file signatures.","tree":"34c9f3041b226619376375f3e4b4444372ca0642","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"cc66dc063bd13810a3f8fb093a1080052e426f82"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/128ac9109ac751a569588ae056dffa336e21a1d2","id":"128ac9109ac751a569588ae056dffa336e21a1d2","committed_date":"2010-08-24T21:49:06-07:00","authored_date":"2010-08-24T21:49:06-07:00","message":"Regenerate removal.remind if gen_removal.py changes.","tree":"cf67a412f9596e7712f55cfe91eea755c0f61a88","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"826fee37fa53cf2073d27424913291d2bdb11b78"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7434a9050a915925004bf7b4467026525d55bfe7","id":"7434a9050a915925004bf7b4467026525d55bfe7","committed_date":"2010-06-17T23:46:20-07:00","authored_date":"2010-06-17T23:30:53-07:00","message":"Added layman XML validation checks.","tree":"999127b0d3eaf319bcc6b927c44c51bf5706193d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6d38719b62decff9bbae5596a26fbfb5188cc629"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ffce8932c08076b1025bdc4c9fb77ac14ba7894c","id":"ffce8932c08076b1025bdc4c9fb77ac14ba7894c","committed_date":"2010-04-19T02:07:06-07:00","authored_date":"2010-04-19T02:07:06-07:00","message":"Use --strict with rst2html conversions.","tree":"7b4938d419aceee60d2d010b5554af168c17e897","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"42118bbee7a86a310da541bc13e629c9e91bb709"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6ea418cd008b59f8176477fbff773ac1bc5fbaad","id":"6ea418cd008b59f8176477fbff773ac1bc5fbaad","committed_date":"2010-03-30T08:25:12-07:00","authored_date":"2010-03-30T08:22:33-07:00","message":"Added tool to generate package removal reminders.\n\nThe display of removal reminders is called with the default make target. The\npackage.mask file is updated to use gen_removal.py compliant syntax.","tree":"c7eefd7905c26b8c952cbd2dd2a4e0c74aaf6e15","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8f7c8303f62595e425a352218116f5ae35e809c2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/42118bbee7a86a310da541bc13e629c9e91bb709","id":"42118bbee7a86a310da541bc13e629c9e91bb709","committed_date":"2010-03-30T05:59:00-07:00","authored_date":"2010-03-30T05:59:00-07:00","message":"Warn if PORTAGE_GPG_KEY is not set.","tree":"87ee1dafb47c4eb1aed0a4760d282ccae9aee7cb","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f1efe654295570a296d5b657e6e163db7279ee06"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/8f7c8303f62595e425a352218116f5ae35e809c2","id":"8f7c8303f62595e425a352218116f5ae35e809c2","committed_date":"2010-03-30T05:55:42-07:00","authored_date":"2010-03-30T05:55:42-07:00","message":"Added rule to sign news files.","tree":"c1232c5b6ace06f681f16319fdb67dc5de3f4977","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e973103cd372c22f7b5cc9d6b7d4ead3b43babe4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f2ce27bd70042cd6266070a3a2d439f1c187c56a","id":"f2ce27bd70042cd6266070a3a2d439f1c187c56a","committed_date":"2009-11-11T22:11:39-08:00","authored_date":"2009-11-11T21:18:41-08:00","message":"Added rule to check for cupage.conf entries.","tree":"93765109726896a83fe424b0ca8c9c39ebea61ca","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"edb40795241f945055e368c27295248124bfcec5"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/22071b1b529d3abfefd6b4aeb573789aea2ad531","id":"22071b1b529d3abfefd6b4aeb573789aea2ad531","committed_date":"2009-10-06T05:35:30-07:00","authored_date":"2009-10-06T05:35:30-07:00","message":"List stablisation reminders in default make target.","tree":"15d8e6e263955e8f597b597243294fe1fb9fb6f2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"58aadc74c7f6f1e9f7b89e86924cc005096696da"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/acda9182a87201afb828ae7f00da6657507f0556","id":"acda9182a87201afb828ae7f00da6657507f0556","committed_date":"2009-10-06T05:31:55-07:00","authored_date":"2009-10-06T05:27:51-07:00","message":"Added reminder file for stabilisation.","tree":"1dbcebdaaaade95b4f3ae67d5eee38c4c4b65321","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d00f6fece38fa7e2effe0865856ac20e4e3698c4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9ddef3d603782269a91dfa1fb36a4a1e5b6a956b","id":"9ddef3d603782269a91dfa1fb36a4a1e5b6a956b","committed_date":"2009-09-21T19:49:02-07:00","authored_date":"2009-09-21T19:46:16-07:00","message":"[583: Fixed] Added script to generate profiles/use.local.desc files.","tree":"8997af31834c449576b5e3c734349a6b9428c0a0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8315eb308b260edce84ff2546d3ed5237888b2e4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/08432266614581afb2a93fa9a69a3b6f9411b076","id":"08432266614581afb2a93fa9a69a3b6f9411b076","committed_date":"2009-05-26T14:59:48-07:00","authored_date":"2009-05-26T14:59:18-07:00","message":"Fixed quoting in gnupg key check.","tree":"96d960aca7a65a6f327b09d5304c33bbc5dba9d0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"aaee60ccf8cd8f50e8445e40a51ab90df9269178"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/e2702ebdddb7ef5291fcba44d62a1f0f12e6223f","id":"e2702ebdddb7ef5291fcba44d62a1f0f12e6223f","committed_date":"2009-05-24T00:14:26-07:00","authored_date":"2009-05-24T00:14:26-07:00","message":"Added Makefile with simple repo maintenance rules.","tree":"52e9206f8f4c7801ba59b5d81945ab54922761de","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}]} \ No newline at end of file +{"commits":[{"parents":[{"id":"eab53d5966b5473386cbb888b1497b2f7c63e496"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/fc12b924d34dc38c8ce76d27a866221faa88cb72","id":"fc12b924d34dc38c8ce76d27a866221faa88cb72","committed_date":"2011-06-17T00:39:08-07:00","authored_date":"2011-06-17T00:37:47-07:00","message":"Added initial cake conversion.","tree":"54d3bce5ce074a12a033ee0a22a70cf87a391817","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"fdb9c0e5ec6c0a93ab3c692622146c41fc51b495"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/eab53d5966b5473386cbb888b1497b2f7c63e496","id":"eab53d5966b5473386cbb888b1497b2f7c63e496","committed_date":"2011-06-16T23:15:09-07:00","authored_date":"2011-06-16T23:15:09-07:00","message":"Fixed Manifest generation rule for make 3.82.","tree":"c13c9fd0e7311ed50b4ec325571ac2510338226a","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"3458f20fa446e143dbbd676b8088e0ded4dcaa64"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/a4d178e71444c5ba4f0d2c172e0840346335ace0","id":"a4d178e71444c5ba4f0d2c172e0840346335ace0","committed_date":"2011-06-02T13:16:55-07:00","authored_date":"2011-06-02T13:16:55-07:00","message":"Revert \"Revert \"Write org-mode compatible removal reminders.\"\"\n\nThis reverts commit 41bcd985139189763256a8c82b8f0fcbe150eb03.","tree":"38a0f798931cdcb4d41807fef61cc873fb30231b","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6563182337987d694a94afd5a7e5d99bde44d68d"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/14723140d18fdbb0a7e577d441bee09bcb578f28","id":"14723140d18fdbb0a7e577d441bee09bcb578f28","committed_date":"2011-06-02T12:42:28-07:00","authored_date":"2011-06-02T12:42:28-07:00","message":"Fixed sorting in profiles/categories generation.","tree":"3a9ebf3081d1aeacc8b22d4a4c0728d4ea6e3215","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8f24d1b91d885b3ce52dd8e7cc5e18b369c5867e"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/41bcd985139189763256a8c82b8f0fcbe150eb03","id":"41bcd985139189763256a8c82b8f0fcbe150eb03","committed_date":"2011-04-29T21:17:59-07:00","authored_date":"2011-04-29T21:17:59-07:00","message":"Revert \"Write org-mode compatible removal reminders.\"\n\nThis reverts commit 4343c1c3ee6a353ed51ea863a8b213a05d5f5b80.\n\nConflicts:\n\n\tMakefile\n\tsupport/gen_removal.py","tree":"4ed8c0153f80d68fa68e434e6e12d8e2eec76281","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"4343c1c3ee6a353ed51ea863a8b213a05d5f5b80"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/90ecd07cc7f08d43f441d44c020bc91a49f0b9c6","id":"90ecd07cc7f08d43f441d44c020bc91a49f0b9c6","committed_date":"2011-03-07T00:36:47-08:00","authored_date":"2011-03-07T00:02:09-08:00","message":"Switched to org-mode syntax for stabilisation reminders.","tree":"92c0eaeb7b29036393c05c3ee3142d879067e865","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f9be28146dce6fd69e36d7dd72b8ecf5bc9bbd1f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/4343c1c3ee6a353ed51ea863a8b213a05d5f5b80","id":"4343c1c3ee6a353ed51ea863a8b213a05d5f5b80","committed_date":"2011-03-07T00:36:25-08:00","authored_date":"2011-03-07T00:01:41-08:00","message":"Write org-mode compatible removal reminders.\n\nNo longer using remind for this task.","tree":"f7f12bd835b4ae09e6bfc82bf04f8115e628aa85","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"639727a4d533288fdadcd68b8bde2dc84c26812c"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7fe50fe7294204120a23c4199d575313d89cc1dd","id":"7fe50fe7294204120a23c4199d575313d89cc1dd","committed_date":"2011-02-10T14:17:41-08:00","authored_date":"2011-02-10T14:17:41-08:00","message":"Small formatting and indentation fix.","tree":"02ad5b7e568f63ee9fe7d4244755451035bda02b","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9e60846c4692cccb38361f5eb93347ed1ad782bc"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/639727a4d533288fdadcd68b8bde2dc84c26812c","id":"639727a4d533288fdadcd68b8bde2dc84c26812c","committed_date":"2011-02-10T14:17:16-08:00","authored_date":"2011-02-10T14:17:16-08:00","message":"Don't fail Manifest generation with unset SIGN_KEY.","tree":"17251ab93e3d9d7f1a204c9387495a4658418257","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"0d519f8110843158a21d14c01d852b2ceef9f21f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9e60846c4692cccb38361f5eb93347ed1ad782bc","id":"9e60846c4692cccb38361f5eb93347ed1ad782bc","committed_date":"2011-02-10T14:15:32-08:00","authored_date":"2011-02-10T14:15:32-08:00","message":"Don't regenerate categories list for packages.","tree":"19153dc4562525730e67753b3c3dd3149b5376b6","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"50ab7577069d92f97634aff0a491a8a6fba11d71"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/fa7796f65f38ad5e6587f1e6a85fd03f53d14023","id":"fa7796f65f38ad5e6587f1e6a85fd03f53d14023","committed_date":"2011-02-04T03:12:25-08:00","authored_date":"2011-02-04T03:12:25-08:00","message":"Generate doc/thanks.rst from README.rst.\n\nReally shouldn't be manually maintaining lists.","tree":"25c92e68f1083444c6d7db6dbe597bea027aef8d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"2f3b0f35fdf24af9246f237843240915a18e9aa3"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f55f382d4f395d0d0e807c77495776224c0e1a23","id":"f55f382d4f395d0d0e807c77495776224c0e1a23","committed_date":"2011-02-02T09:31:51-08:00","authored_date":"2011-02-02T09:19:13-08:00","message":"Fixed categories generation, should overwrite and not append.","tree":"7228d33c816d69d5e9a5cbc63c421366e3304319","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"a99c6a599adbce66f69437515182ec205ebe1123"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/053c83cd2413d36b25413279eb1065c89e3e048d","id":"053c83cd2413d36b25413279eb1065c89e3e048d","committed_date":"2011-02-01T05:35:07-08:00","authored_date":"2011-02-01T05:35:07-08:00","message":"Moved news signing comment out of rule, it shouldn't be displayed.","tree":"860eadb5d60fe8f30553b72da214fd46601c6b05","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"074eedb9c02842a0196b4b9ad3ee386bc6182a84"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/a99c6a599adbce66f69437515182ec205ebe1123","id":"a99c6a599adbce66f69437515182ec205ebe1123","committed_date":"2011-02-01T05:29:13-08:00","authored_date":"2011-02-01T05:29:13-08:00","message":"Added rule to re-generate HTML documentation.","tree":"9e9d6df5fa81a759adcd6b8fc2197baa8fa75938","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"cb2234e17ebf226097321873cbb52d3ab924cf52"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/e76c3c8c8bce857ae0084b413e0c6e9b73c613dd","id":"e76c3c8c8bce857ae0084b413e0c6e9b73c613dd","committed_date":"2011-01-29T23:49:11-08:00","authored_date":"2011-01-29T23:49:11-08:00","message":"Validate reST syntax with check rule.","tree":"90fede79cf4777fc9f0deb7a47f7696d5c0afbbd","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"764c5aa41de29e22ff23c45c7278234ca1802795"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/cb2234e17ebf226097321873cbb52d3ab924cf52","id":"cb2234e17ebf226097321873cbb52d3ab924cf52","committed_date":"2011-01-29T23:46:05-08:00","authored_date":"2011-01-29T23:46:05-08:00","message":"No need to loop for profiles/categories generation.","tree":"92ed35edc1c4ca1072204a3b60087c3c2f4b5523","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"19838ee7086f5517bb5722986bca825e803d6304"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/764c5aa41de29e22ff23c45c7278234ca1802795","id":"764c5aa41de29e22ff23c45c7278234ca1802795","committed_date":"2011-01-29T23:45:40-08:00","authored_date":"2011-01-29T23:45:40-08:00","message":"Delete stale signatures, if SIGN_KEY is not set.","tree":"7f3546c7fbbda89b5e73c76b12c2b2d69e63530a","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"7dbadeef727224b9d72bf9373bbc15fba4ccb7ed"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f81e2b6b85169e487ec462864ea0d27ca25fefdd","id":"f81e2b6b85169e487ec462864ea0d27ca25fefdd","committed_date":"2011-01-12T05:38:07-08:00","authored_date":"2011-01-12T05:38:06-08:00","message":"Updated cupage-check rule to check for watch file existence.","tree":"56e1a14e263c3fac5f199abcb9966300f7cf106e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d1f839991b272875e0c5589bfdb3dd75668a72f2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7dbadeef727224b9d72bf9373bbc15fba4ccb7ed","id":"7dbadeef727224b9d72bf9373bbc15fba4ccb7ed","committed_date":"2011-01-12T05:37:43-08:00","authored_date":"2011-01-12T05:37:43-08:00","message":"Generate cupage.conf from watch files.","tree":"c0e404e5a8ebf36bcef6c580622c2b645820533c","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"af5f536666b22b864d1012b7b02258cf745d89ae"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/4f01f61e35439c1458a01e389f1c8dbe3496e3bf","id":"4f01f61e35439c1458a01e389f1c8dbe3496e3bf","committed_date":"2010-12-06T03:39:29-08:00","authored_date":"2010-12-06T03:39:29-08:00","message":"Manifests depend on ChangeLogs and metadata.xml.","tree":"b999161e481624d61f446d7fa4fdc32db6def3c3","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6b58cfa8600da5ad54b382067ad7c6e270845ea0"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/af5f536666b22b864d1012b7b02258cf745d89ae","id":"af5f536666b22b864d1012b7b02258cf745d89ae","committed_date":"2010-12-06T03:37:30-08:00","authored_date":"2010-12-06T03:37:30-08:00","message":"Read repository name from profiles/repo_name.","tree":"99244aa4b9404b64af0dea365cc54ad809cf9b35","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"60ba3e0f33576cebbfcea06307dabd7394164541"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6adf9d861925c5f66c0c1883e6c70c423bd409d4","id":"6adf9d861925c5f66c0c1883e6c70c423bd409d4","committed_date":"2010-12-06T03:26:08-08:00","authored_date":"2010-12-06T03:26:08-08:00","message":"Switched to egencache for use.local.desc generation.","tree":"a29b65e2faaf6481fb2d5a6388e890b3524836e1","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"31792887bcee17be39401fa59f681c243a2a2519"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/290fec4694bddde6ca54584cfd26c04b69e3dd6e","id":"290fec4694bddde6ca54584cfd26c04b69e3dd6e","committed_date":"2010-11-01T09:20:53-07:00","authored_date":"2010-11-01T09:20:53-07:00","message":"Fixed generation of news file signatures.","tree":"34c9f3041b226619376375f3e4b4444372ca0642","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"cc66dc063bd13810a3f8fb093a1080052e426f82"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/128ac9109ac751a569588ae056dffa336e21a1d2","id":"128ac9109ac751a569588ae056dffa336e21a1d2","committed_date":"2010-08-24T21:49:06-07:00","authored_date":"2010-08-24T21:49:06-07:00","message":"Regenerate removal.remind if gen_removal.py changes.","tree":"cf67a412f9596e7712f55cfe91eea755c0f61a88","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"826fee37fa53cf2073d27424913291d2bdb11b78"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7434a9050a915925004bf7b4467026525d55bfe7","id":"7434a9050a915925004bf7b4467026525d55bfe7","committed_date":"2010-06-17T23:46:20-07:00","authored_date":"2010-06-17T23:30:53-07:00","message":"Added layman XML validation checks.","tree":"999127b0d3eaf319bcc6b927c44c51bf5706193d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6d38719b62decff9bbae5596a26fbfb5188cc629"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ffce8932c08076b1025bdc4c9fb77ac14ba7894c","id":"ffce8932c08076b1025bdc4c9fb77ac14ba7894c","committed_date":"2010-04-19T02:07:06-07:00","authored_date":"2010-04-19T02:07:06-07:00","message":"Use --strict with rst2html conversions.","tree":"7b4938d419aceee60d2d010b5554af168c17e897","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"42118bbee7a86a310da541bc13e629c9e91bb709"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6ea418cd008b59f8176477fbff773ac1bc5fbaad","id":"6ea418cd008b59f8176477fbff773ac1bc5fbaad","committed_date":"2010-03-30T08:25:12-07:00","authored_date":"2010-03-30T08:22:33-07:00","message":"Added tool to generate package removal reminders.\n\nThe display of removal reminders is called with the default make target. The\npackage.mask file is updated to use gen_removal.py compliant syntax.","tree":"c7eefd7905c26b8c952cbd2dd2a4e0c74aaf6e15","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8f7c8303f62595e425a352218116f5ae35e809c2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/42118bbee7a86a310da541bc13e629c9e91bb709","id":"42118bbee7a86a310da541bc13e629c9e91bb709","committed_date":"2010-03-30T05:59:00-07:00","authored_date":"2010-03-30T05:59:00-07:00","message":"Warn if PORTAGE_GPG_KEY is not set.","tree":"87ee1dafb47c4eb1aed0a4760d282ccae9aee7cb","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f1efe654295570a296d5b657e6e163db7279ee06"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/8f7c8303f62595e425a352218116f5ae35e809c2","id":"8f7c8303f62595e425a352218116f5ae35e809c2","committed_date":"2010-03-30T05:55:42-07:00","authored_date":"2010-03-30T05:55:42-07:00","message":"Added rule to sign news files.","tree":"c1232c5b6ace06f681f16319fdb67dc5de3f4977","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e973103cd372c22f7b5cc9d6b7d4ead3b43babe4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f2ce27bd70042cd6266070a3a2d439f1c187c56a","id":"f2ce27bd70042cd6266070a3a2d439f1c187c56a","committed_date":"2009-11-11T22:11:39-08:00","authored_date":"2009-11-11T21:18:41-08:00","message":"Added rule to check for cupage.conf entries.","tree":"93765109726896a83fe424b0ca8c9c39ebea61ca","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"edb40795241f945055e368c27295248124bfcec5"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/22071b1b529d3abfefd6b4aeb573789aea2ad531","id":"22071b1b529d3abfefd6b4aeb573789aea2ad531","committed_date":"2009-10-06T05:35:30-07:00","authored_date":"2009-10-06T05:35:30-07:00","message":"List stablisation reminders in default make target.","tree":"15d8e6e263955e8f597b597243294fe1fb9fb6f2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"58aadc74c7f6f1e9f7b89e86924cc005096696da"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/acda9182a87201afb828ae7f00da6657507f0556","id":"acda9182a87201afb828ae7f00da6657507f0556","committed_date":"2009-10-06T05:31:55-07:00","authored_date":"2009-10-06T05:27:51-07:00","message":"Added reminder file for stabilisation.","tree":"1dbcebdaaaade95b4f3ae67d5eee38c4c4b65321","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d00f6fece38fa7e2effe0865856ac20e4e3698c4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9ddef3d603782269a91dfa1fb36a4a1e5b6a956b","id":"9ddef3d603782269a91dfa1fb36a4a1e5b6a956b","committed_date":"2009-09-21T19:49:02-07:00","authored_date":"2009-09-21T19:46:16-07:00","message":"[583: Fixed] Added script to generate profiles/use.local.desc files.","tree":"8997af31834c449576b5e3c734349a6b9428c0a0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8315eb308b260edce84ff2546d3ed5237888b2e4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/08432266614581afb2a93fa9a69a3b6f9411b076","id":"08432266614581afb2a93fa9a69a3b6f9411b076","committed_date":"2009-05-26T14:59:48-07:00","authored_date":"2009-05-26T14:59:18-07:00","message":"Fixed quoting in gnupg key check.","tree":"96d960aca7a65a6f327b09d5304c33bbc5dba9d0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"aaee60ccf8cd8f50e8445e40a51ab90df9269178"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/e2702ebdddb7ef5291fcba44d62a1f0f12e6223f","id":"e2702ebdddb7ef5291fcba44d62a1f0f12e6223f","committed_date":"2009-05-24T00:14:26-07:00","authored_date":"2009-05-24T00:14:26-07:00","message":"Added Makefile with simple repo maintenance rules.","tree":"52e9206f8f4c7801ba59b5d81945ab54922761de","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,master,bfb4f990e48c87dab73d988a81318d69 b/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,master,bfb4f990e48c87dab73d988a81318d69 index 4975802..e6d80d7 100644 --- a/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,master,bfb4f990e48c87dab73d988a81318d69 +++ b/tests/data/github.com,api,v2,json,commits,list,JNRowe,misc-overlay,master,bfb4f990e48c87dab73d988a81318d69 @@ -1,14 +1,16 @@ status: 200 -content-length: 22233 +x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/commits/list/JNRowe/misc-overlay/master -set-cookie: _gh_sess=BAh7BzoRbG9jYWxlX2d1ZXNzMCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--719def2ab2d99283383e374327fcdbb716c45c12; +-content-encoding: gzip path=/; expires=Fri, 01 Jan 2021 00:00:00 GMT; secure; HttpOnly -x-runtime: 149ms -server: nginx/0.7.67 connection: keep-alive -etag: "0f46540a52ac460fe1eba437c8ebd2d4" +content-length: 23425 +server: nginx/1.0.4 +x-runtime: 113ms +x-ratelimit-limit: 60 +etag: "c97cc3a646b424d1c6222c9540761a96" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 20:47:57 GMT +date: Mon, 15 Aug 2011 20:00:19 GMT content-type: application/json; charset=utf-8 -{"commits":[{"parents":[{"id":"4faa329f56b4c0470db03eaa42b318a83ca889c4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/37233b357d1a3648434ffda8f569ce96b3bcbf53","id":"37233b357d1a3648434ffda8f569ce96b3bcbf53","committed_date":"2011-05-22T00:23:30-07:00","authored_date":"2011-05-22T00:22:41-07:00","message":"socksipy-1.01 keyworded ~x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"8adbb3bc1878b5a1307a39a4d23ca776a4f3adeb","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"809ed8d37fd3736e88ceb222174cea50540b9156"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/4faa329f56b4c0470db03eaa42b318a83ca889c4","id":"4faa329f56b4c0470db03eaa42b318a83ca889c4","committed_date":"2011-05-20T11:32:11-07:00","authored_date":"2011-05-20T11:31:49-07:00","message":"Added missing watch file for nwdiag.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"a289368450d5de2aa1e91a47a8eff493b68b0031","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f5f94a5d296b13f9a6c9110ad174051900a16e83"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/809ed8d37fd3736e88ceb222174cea50540b9156","id":"809ed8d37fd3736e88ceb222174cea50540b9156","committed_date":"2011-05-20T11:30:58-07:00","authored_date":"2011-05-20T11:28:38-07:00","message":"Initial socksipy ebuild.\n\nRequired for testing python-github2, and will be a USE=socks dep in new\nreleases.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"64914a9ef2b148ce4e1c4f978c09a26b0fce1a44","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9bd07338404171f18dcbb99b6bf351fbb6c3a8f1"},{"id":"ddcad38eea125d5e0748b5c9a3c39d05269bd584"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f5f94a5d296b13f9a6c9110ad174051900a16e83","id":"f5f94a5d296b13f9a6c9110ad174051900a16e83","committed_date":"2011-05-18T06:16:59-07:00","authored_date":"2011-05-18T06:16:59-07:00","message":"Merge branch 'maint/x86_keywording'\n\n* maint/x86_keywording:\n pw-0.1.4 keyworded x86.\n plac-0.8.1 keyworded x86.\n pdbpp-0.7 keyworded x86.\n github2-0.3.1 keyworded x86.\n nwdiag-0.2.3 keyworded ~x86.\n cake-0.2 keyworded ~x86.\n jsonpipe-0.0.7 keyworded ~x86.\n vanity-1.0 keyworded ~x86.\n sure-0.4.0 keyworded ~x86.\n stencil-0.1 keyworded ~x86.\n calabash-0.0.3 keyworded ~x86.","tree":"12bf21b11693ffcb64a9df56d1e8446e45e9e648","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6e36ba0f2163cbd918fae302944b2cf5f4cf0ec2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ddcad38eea125d5e0748b5c9a3c39d05269bd584","id":"ddcad38eea125d5e0748b5c9a3c39d05269bd584","committed_date":"2011-05-18T06:16:23-07:00","authored_date":"2011-05-18T06:16:14-07:00","message":"pw-0.1.4 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"12bf21b11693ffcb64a9df56d1e8446e45e9e648","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"07bfd80949820c9215e48ebb5e11d2fd48923e5a"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6e36ba0f2163cbd918fae302944b2cf5f4cf0ec2","id":"6e36ba0f2163cbd918fae302944b2cf5f4cf0ec2","committed_date":"2011-05-18T06:15:45-07:00","authored_date":"2011-05-18T06:15:16-07:00","message":"plac-0.8.1 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"19eafacfe02a2dd65a51c91ac503d22a6bc83631","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"944386cde5c100e699d0c2cb0ce403bf7e9cb8e7"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/07bfd80949820c9215e48ebb5e11d2fd48923e5a","id":"07bfd80949820c9215e48ebb5e11d2fd48923e5a","committed_date":"2011-05-18T06:14:12-07:00","authored_date":"2011-05-18T06:14:02-07:00","message":"pdbpp-0.7 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"efb47845dde6468625ba06605c2dcc7bac9f2b8b","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"dc40235add8b9cecd18b8d62a932ead301351075"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/944386cde5c100e699d0c2cb0ce403bf7e9cb8e7","id":"944386cde5c100e699d0c2cb0ce403bf7e9cb8e7","committed_date":"2011-05-18T06:12:52-07:00","authored_date":"2011-05-18T06:12:45-07:00","message":"github2-0.3.1 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"ae1c66f72254b9833f7d19393d82fee02dc37c76","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"472da1f32f55d219286b106c97fa25dab1c33758"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/dc40235add8b9cecd18b8d62a932ead301351075","id":"dc40235add8b9cecd18b8d62a932ead301351075","committed_date":"2011-05-18T06:10:57-07:00","authored_date":"2011-05-18T06:10:46-07:00","message":"nwdiag-0.2.3 keyworded ~x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"3d566ba9cfecd799b4d4fa858b3d95ac6aa873a4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"79c0fb209d27eded8947eb4ffa5c74db4379abfe"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/472da1f32f55d219286b106c97fa25dab1c33758","id":"472da1f32f55d219286b106c97fa25dab1c33758","committed_date":"2011-05-18T06:10:08-07:00","authored_date":"2011-05-18T06:09:58-07:00","message":"cake-0.2 keyworded ~x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"1f4ddf23029be3cfbccce1f41bfa3199a91af175","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"0dac8c2a2410325d5095cf5c290fae441843eec6"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/79c0fb209d27eded8947eb4ffa5c74db4379abfe","id":"79c0fb209d27eded8947eb4ffa5c74db4379abfe","committed_date":"2011-05-18T06:08:37-07:00","authored_date":"2011-05-18T06:08:17-07:00","message":"jsonpipe-0.0.7 keyworded ~x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"ec644f779e6a9abc0d726ffff01668999691097f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"de547eab8229243de4906826a622b9305c5b972d"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/0dac8c2a2410325d5095cf5c290fae441843eec6","id":"0dac8c2a2410325d5095cf5c290fae441843eec6","committed_date":"2011-05-18T06:06:14-07:00","authored_date":"2011-05-18T06:06:05-07:00","message":"vanity-1.0 keyworded ~x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"faa00aaea5faebbdc0d90086c3980b3f2a71b3f4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"c5a0736ee365ff994ba415a42622c26016e98201"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/de547eab8229243de4906826a622b9305c5b972d","id":"de547eab8229243de4906826a622b9305c5b972d","committed_date":"2011-05-18T06:04:14-07:00","authored_date":"2011-05-18T06:03:54-07:00","message":"sure-0.4.0 keyworded ~x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"a125da9dffea83d1e4311f4a99876f810c3bcbe4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"01b36090e191bfa74da5199d322c6028b15f0c86"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/c5a0736ee365ff994ba415a42622c26016e98201","id":"c5a0736ee365ff994ba415a42622c26016e98201","committed_date":"2011-05-18T06:02:48-07:00","authored_date":"2011-05-18T06:02:17-07:00","message":"stencil-0.1 keyworded ~x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"ea6febd89f9e82963562156fd9b25b80b866f61e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9bd07338404171f18dcbb99b6bf351fbb6c3a8f1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/01b36090e191bfa74da5199d322c6028b15f0c86","id":"01b36090e191bfa74da5199d322c6028b15f0c86","committed_date":"2011-05-18T06:00:45-07:00","authored_date":"2011-05-18T05:59:53-07:00","message":"calabash-0.0.3 keyworded ~x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"08d452208de4b47c16242c65653cd54a5b89fb4f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"3fe9cb3de79b132e461c397176138abff39c6a28"},{"id":"4654ab67b1767f066e38cfb55910095bbd797b2e"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9bd07338404171f18dcbb99b6bf351fbb6c3a8f1","id":"9bd07338404171f18dcbb99b6bf351fbb6c3a8f1","committed_date":"2011-05-18T05:42:54-07:00","authored_date":"2011-05-18T05:42:54-07:00","message":"Merge branch 'maint/amd64_keywording'\n\n* maint/amd64_keywording:\n pw-0.1.4 keyworded amd64.\n plac-0.8.1 keyworded amd64.\n pdbpp-0.7 keyworded amd64.\n github2-0.3.1 keyworded amd64.\n\nConflicts:\n\tsupport/stabilisation.remind","tree":"8741a00f0bc0c6342ea4cc7ae21fdac93a769854","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6c8484ef6186c06093553f44c830597eff01b59e"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/3fe9cb3de79b132e461c397176138abff39c6a28","id":"3fe9cb3de79b132e461c397176138abff39c6a28","committed_date":"2011-05-18T05:42:18-07:00","authored_date":"2011-05-18T05:41:41-07:00","message":"Removed stale twython ebuild.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"dca1153895f7bc40acb730a35dcf8699b908e7a7","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"2db3879ca018193235c8967562ce9f4853202943"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6c8484ef6186c06093553f44c830597eff01b59e","id":"6c8484ef6186c06093553f44c830597eff01b59e","committed_date":"2011-05-18T05:41:06-07:00","authored_date":"2011-05-18T05:41:03-07:00","message":"Pushed twython stabilisation back 90 days.\n\nStill waiting on upstream to stabilise dev-python/oauth2.","tree":"787fde8bb8cc31ebe8b19dab8aee7c2d95514ac1","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"7fb4cf687ade6bfaffd22fc5fc06a77c2b706719"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/4654ab67b1767f066e38cfb55910095bbd797b2e","id":"4654ab67b1767f066e38cfb55910095bbd797b2e","committed_date":"2011-05-18T05:38:42-07:00","authored_date":"2011-05-18T05:38:32-07:00","message":"pw-0.1.4 keyworded amd64.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"8fbac38110dbb73bb7204ca9797c4fa7acf44463","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6a328b3b4b1171de211dd2db765b1b403dea8e3a"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7fb4cf687ade6bfaffd22fc5fc06a77c2b706719","id":"7fb4cf687ade6bfaffd22fc5fc06a77c2b706719","committed_date":"2011-05-18T05:38:13-07:00","authored_date":"2011-05-18T05:38:00-07:00","message":"plac-0.8.1 keyworded amd64.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"975b3b667d27dd1734fa4992cc2244a2eac036a9","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"af39c23bbd4abab5b663c66d2cd1a81f3128c4f0"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6a328b3b4b1171de211dd2db765b1b403dea8e3a","id":"6a328b3b4b1171de211dd2db765b1b403dea8e3a","committed_date":"2011-05-18T05:37:39-07:00","authored_date":"2011-05-18T05:37:25-07:00","message":"pdbpp-0.7 keyworded amd64.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"a161646c769641fe645121ad479676b6c10b29f4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"2db3879ca018193235c8967562ce9f4853202943"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/af39c23bbd4abab5b663c66d2cd1a81f3128c4f0","id":"af39c23bbd4abab5b663c66d2cd1a81f3128c4f0","committed_date":"2011-05-18T05:36:38-07:00","authored_date":"2011-05-18T05:36:08-07:00","message":"github2-0.3.1 keyworded amd64.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"6db921005c57b50d9f2ade0b9bc754316b1e78fc","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"6b86595f9a5f049b52d359b3c9c56895851ef021"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/2db3879ca018193235c8967562ce9f4853202943","id":"2db3879ca018193235c8967562ce9f4853202943","committed_date":"2011-05-17T15:05:16-07:00","authored_date":"2011-05-17T14:59:00-07:00","message":"Masked vicious for removal.\n\nThe maintenance burden of shadowing an upstream ebuild is too high, for too\nlittle gain. Sorry, if you have trouble migrating.","tree":"2d5fef6cf947cf7921bf8b32e5b17ae20b4ac682","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"abb405c5b3cec29acf471cc5170f03b834106a6d"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6b86595f9a5f049b52d359b3c9c56895851ef021","id":"6b86595f9a5f049b52d359b3c9c56895851ef021","committed_date":"2011-05-17T14:52:27-07:00","authored_date":"2011-05-17T14:52:01-07:00","message":"media-gfx/seqdiag-0.3.3 version bump.\n\nCloses #370.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"0b7df5f5e26c2d367c2ffb5e4f83eaf138c58f7b","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"546c70884c3692f17eafa53f29ed7925ab9dcf3f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/abb405c5b3cec29acf471cc5170f03b834106a6d","id":"abb405c5b3cec29acf471cc5170f03b834106a6d","committed_date":"2011-05-17T14:48:49-07:00","authored_date":"2011-05-17T14:48:12-07:00","message":"dev-python/pyscss-1.0.8 version bump.\n\nCloses #369.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"3691f00deee4b003db09cfec6f2abbb42e8010e7","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"a42f9cc6206d3ab898d7e3f128d9435bccec36f3"},{"id":"f72c51b7f65ada1bd377298c0e462fed499afcee"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/546c70884c3692f17eafa53f29ed7925ab9dcf3f","id":"546c70884c3692f17eafa53f29ed7925ab9dcf3f","committed_date":"2011-05-17T05:42:35-07:00","authored_date":"2011-05-17T05:42:35-07:00","message":"Merge branch 'maint/x86_keywording'\n\n* maint/x86_keywording:\n python-osmgpsmap-0.7.3 keyworded x86.\n dexml-0.4.0 keyworded x86.\n cupage-0.5.5 keyworded x86.\n osm-gps-map-0.7.3 keyworded x86.\n Term-Animation-0.2.6 keyworded x86.\n lettuce-0.1.25 keyworded x86.","tree":"8df1051a7b7a1e0c0576043aa3fe34f4e91f49e6","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"48b55622c5c478bb5e6ffa0426c37f16029e6637"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f72c51b7f65ada1bd377298c0e462fed499afcee","id":"f72c51b7f65ada1bd377298c0e462fed499afcee","committed_date":"2011-05-17T05:42:26-07:00","authored_date":"2011-05-17T05:42:17-07:00","message":"python-osmgpsmap-0.7.3 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"8df1051a7b7a1e0c0576043aa3fe34f4e91f49e6","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"0e5d390672e7713ce9d6882820477fa26a2403a8"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/48b55622c5c478bb5e6ffa0426c37f16029e6637","id":"48b55622c5c478bb5e6ffa0426c37f16029e6637","committed_date":"2011-05-17T05:41:49-07:00","authored_date":"2011-05-17T05:41:41-07:00","message":"dexml-0.4.0 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"fb4428443fc8cacde6c3a3aa5509503ffd63bf06","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"aadb8c461bcff5f98d2629791a6526319ebedebf"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/0e5d390672e7713ce9d6882820477fa26a2403a8","id":"0e5d390672e7713ce9d6882820477fa26a2403a8","committed_date":"2011-05-17T05:41:16-07:00","authored_date":"2011-05-17T05:39:50-07:00","message":"cupage-0.5.5 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"4535e52b40718ba2adf17926605b504d28676d84","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"938698435b6feaeb5798b0b8265dec3c86a79f21"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/aadb8c461bcff5f98d2629791a6526319ebedebf","id":"aadb8c461bcff5f98d2629791a6526319ebedebf","committed_date":"2011-05-17T05:38:50-07:00","authored_date":"2011-05-17T05:38:43-07:00","message":"osm-gps-map-0.7.3 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"630850a2b4d6af7886aa4979d261f9f4b5bd9e44","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"1a81af79e9448cc17cb962e6e554d2f95627e48a"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/938698435b6feaeb5798b0b8265dec3c86a79f21","id":"938698435b6feaeb5798b0b8265dec3c86a79f21","committed_date":"2011-05-17T05:37:28-07:00","authored_date":"2011-05-17T05:37:17-07:00","message":"Term-Animation-0.2.6 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"86b67e7be739710b4a0dcd3c116e6789f617649c","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"a42f9cc6206d3ab898d7e3f128d9435bccec36f3"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/1a81af79e9448cc17cb962e6e554d2f95627e48a","id":"1a81af79e9448cc17cb962e6e554d2f95627e48a","committed_date":"2011-05-17T05:36:49-07:00","authored_date":"2011-05-17T05:35:41-07:00","message":"lettuce-0.1.25 keyworded x86.\n\n(Portage version: 2.1.9.42/git/Linux x86, signed Manifest commit with key C0174749)","tree":"febaaf0a9ef70fe4393f783c0ced6ecdf758d28f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f305a8e19072faa41332ff771eef352d99b720dd"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/a42f9cc6206d3ab898d7e3f128d9435bccec36f3","id":"a42f9cc6206d3ab898d7e3f128d9435bccec36f3","committed_date":"2011-05-17T04:36:30-07:00","authored_date":"2011-05-17T04:35:37-07:00","message":"Pushed Net-Twitter-Lite stabilisation back 90 days.\n\nStill waiting on upstream to stabilise dev-perl/JSON-Any.","tree":"0bf98e75b14cbba85cd9d33723816d85a12630ff","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"0f13d2e4f32191aa0f2c5429666f0afb31934aee"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f305a8e19072faa41332ff771eef352d99b720dd","id":"f305a8e19072faa41332ff771eef352d99b720dd","committed_date":"2011-05-17T04:36:30-07:00","authored_date":"2011-05-17T04:35:04-07:00","message":"Pushed pycparser stabilisation back 90 days.\n\nStill waiting on upstream to stabilise dev-python/ply.","tree":"9699c4e28bcca4e7c9e60b0f6dfc19e6c49f5e43","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"44e4062f93c5d19d41f9d2158a382991f71b1142"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/0f13d2e4f32191aa0f2c5429666f0afb31934aee","id":"0f13d2e4f32191aa0f2c5429666f0afb31934aee","committed_date":"2011-05-17T04:36:22-07:00","authored_date":"2011-05-17T04:34:03-07:00","message":"Removed stale Net-Twitter-Lite ebuild.\n\n(Portage version: 2.1.9.42/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"9fd3fc814c8a76bde8e525caa1dd3271d4312209","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}]} \ No newline at end of file +{"commits":[{"parents":[{"id":"85247d6de9d2d35dfd7eea3c23c894ea9aa263e4"},{"id":"be6ac09388ea7b360bc4a71a91f2633ce931276b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/4de0834d58b37ef3020c49df43c95649217a2def","id":"4de0834d58b37ef3020c49df43c95649217a2def","committed_date":"2011-08-11T07:11:14-07:00","authored_date":"2011-08-11T07:11:14-07:00","message":"Merge branch 'maint/x86_keywording'\n\n* maint/x86_keywording:\n cloud_sptheme-1.2 keyworded x96.\n cloud_sptheme-1.2 keyworded amd64.","tree":"02813cd1ea16d6284abf816169957441648c551e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9021f373b0ad17def7eb7de03954cc68710945a5"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/be6ac09388ea7b360bc4a71a91f2633ce931276b","id":"be6ac09388ea7b360bc4a71a91f2633ce931276b","committed_date":"2011-08-11T07:11:03-07:00","authored_date":"2011-08-11T07:10:48-07:00","message":"cloud_sptheme-1.2 keyworded x96.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"02813cd1ea16d6284abf816169957441648c551e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"85247d6de9d2d35dfd7eea3c23c894ea9aa263e4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9021f373b0ad17def7eb7de03954cc68710945a5","id":"9021f373b0ad17def7eb7de03954cc68710945a5","committed_date":"2011-08-11T03:51:40-07:00","authored_date":"2011-08-11T03:51:26-07:00","message":"cloud_sptheme-1.2 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"eb5b14b29cc928de40f066a49bd6b572f8673b34","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"3c173e4dc67fff74aab98e3a5ca98bb1f1401456"},{"id":"7c6cb75cb7a1712c5dcc3e6198815983bd904025"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/85247d6de9d2d35dfd7eea3c23c894ea9aa263e4","id":"85247d6de9d2d35dfd7eea3c23c894ea9aa263e4","committed_date":"2011-08-10T09:16:59-07:00","authored_date":"2011-08-10T09:16:59-07:00","message":"Merge branch 'maint/amd64_keywording'\n\n* maint/amd64_keywording:\n metrics-0.1_alpha3 keyworded amd64.\n pycallgraph-0.5.1 keyworded amd64.","tree":"66341bf3f80b46fc332d6c50ed25a4c4ce6fb491","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"4a1bbcfa9d946db7c719e95af4d4911d96fe1551"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7c6cb75cb7a1712c5dcc3e6198815983bd904025","id":"7c6cb75cb7a1712c5dcc3e6198815983bd904025","committed_date":"2011-08-10T09:16:51-07:00","authored_date":"2011-08-10T09:16:41-07:00","message":"metrics-0.1_alpha3 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"66341bf3f80b46fc332d6c50ed25a4c4ce6fb491","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"3c173e4dc67fff74aab98e3a5ca98bb1f1401456"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/4a1bbcfa9d946db7c719e95af4d4911d96fe1551","id":"4a1bbcfa9d946db7c719e95af4d4911d96fe1551","committed_date":"2011-08-10T09:16:19-07:00","authored_date":"2011-08-10T09:16:05-07:00","message":"pycallgraph-0.5.1 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"98d909db4b977f42033ed14966302b11e755b201","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9d279e279dfd06b3d5a85ebc65bac701ab027a2a"},{"id":"6379e79a11f0dbdc8ad98201e8de03634811a03b"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/3c173e4dc67fff74aab98e3a5ca98bb1f1401456","id":"3c173e4dc67fff74aab98e3a5ca98bb1f1401456","committed_date":"2011-08-08T13:45:57-07:00","authored_date":"2011-08-08T13:45:57-07:00","message":"Merge branch 'maint/x86_keywording'\n\n* maint/x86_keywording:\n pycallgraph-0.5.1 keyworded ~x86.\n metrics-0.1_alpha3 keyworded ~x86.\n html2rest-0.2.1 keyworded ~x86.","tree":"a60bcfc6ecce9a85108a5c05f478f5bcc471c19d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"34efdfb28d809350a41498222a87ae8630622e87"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/6379e79a11f0dbdc8ad98201e8de03634811a03b","id":"6379e79a11f0dbdc8ad98201e8de03634811a03b","committed_date":"2011-08-08T13:45:49-07:00","authored_date":"2011-08-08T13:44:37-07:00","message":"pycallgraph-0.5.1 keyworded ~x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"a60bcfc6ecce9a85108a5c05f478f5bcc471c19d","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d3f3838a08eb022594420137525c871c44220495"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/34efdfb28d809350a41498222a87ae8630622e87","id":"34efdfb28d809350a41498222a87ae8630622e87","committed_date":"2011-08-08T13:45:46-07:00","authored_date":"2011-08-08T13:43:51-07:00","message":"metrics-0.1_alpha3 keyworded ~x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"d8d8fbf768a040b27af02a0840eda061a60bc19e","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9653614dc45f297c0d913b5804f153696dc8083f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d3f3838a08eb022594420137525c871c44220495","id":"d3f3838a08eb022594420137525c871c44220495","committed_date":"2011-08-08T13:45:42-07:00","authored_date":"2011-08-08T13:42:30-07:00","message":"html2rest-0.2.1 keyworded ~x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"f1135c9e215876e697023ee7f1d52ca584affe08","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"86b044f91d9a16b221acfdc2f79593fd857e256f"},{"id":"9653614dc45f297c0d913b5804f153696dc8083f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9d279e279dfd06b3d5a85ebc65bac701ab027a2a","id":"9d279e279dfd06b3d5a85ebc65bac701ab027a2a","committed_date":"2011-08-08T13:41:47-07:00","authored_date":"2011-08-08T13:41:47-07:00","message":"Merge branch 'maint/x86_keywording'\n\n* maint/x86_keywording:\n tox-1.1 keyworded x86.\n sure-0.6 keyworded x86.\n sphinxcontrib-httpdomain-0.1.5 keyworded x86.\n sphinxcontrib-googlechart-0.1.4 keyworded x86.\n sphinxcontrib-ansi-0.6 keyworded x86.\n seqdiag-0.3.7 keyworded x86.\n pgmagick-0.4 keyworded x86.\n nwdiag-0.2.7 keyworded x86.\n notmuch-0.6 keyworded x86.\n html-1.16 keyworded x86.\n gitdb-0.5.4 keyworded x86.\n blockdiag-0.8.4 keyworded x86.\n webcolors-1.3.1 keyworded x86.\n actdiag-0.1.7 keyworded x86.\n Pushed rstctl stabilisation back 90 days.","tree":"013bb4b3d14d6033fec487e25fd4edc5fa33dd66","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"36072788c7714fc804b71477bef5756e5b503686"},{"id":"7f535736c7cc92032fc3e000eb49e033a500ad85"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/86b044f91d9a16b221acfdc2f79593fd857e256f","id":"86b044f91d9a16b221acfdc2f79593fd857e256f","committed_date":"2011-08-08T13:41:44-07:00","authored_date":"2011-08-08T13:41:44-07:00","message":"Merge branch 'maint/amd64_keywording'\n\n* maint/amd64_keywording:\n tox-1.1 keyworded amd64.\n sure-0.6 keyworded amd64.\n sphinxcontrib-httpdomain-0.1.5 keyworded amd64.\n sphinxcontrib-googlechart-0.1.4 keyworded amd64.\n sphinxcontrib-ansi-0.6 keyworded amd64.\n seqdiag-0.3.7 keyworded amd64.\n pgmagick-0.4 keyworded amd64.\n nwdiag-0.2.7 keyworded amd64.\n notmuch-0.6 keyworded amd64.\n html-0.16 keyworded amd64.\n gitdb-0.5.4 keyworded amd64.\n blockdiag-0.8.4 keyworded amd64.\n webcolors-1.3.1 keyworded amd64.\n actdiag-0.1.7 keyworded amd64.\n Pushed rstctl stabilisation back 90 days.","tree":"065e156553982ed5c8c5430b11c53494b897a717","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b697694822e52e371d7ed39bedfc240e4e11dcf2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/9653614dc45f297c0d913b5804f153696dc8083f","id":"9653614dc45f297c0d913b5804f153696dc8083f","committed_date":"2011-08-08T13:41:35-07:00","authored_date":"2011-08-08T13:38:32-07:00","message":"tox-1.1 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"013bb4b3d14d6033fec487e25fd4edc5fa33dd66","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"76e3af7354c0de85771f17af004d3e0c428e50a2"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/b697694822e52e371d7ed39bedfc240e4e11dcf2","id":"b697694822e52e371d7ed39bedfc240e4e11dcf2","committed_date":"2011-08-08T13:41:34-07:00","authored_date":"2011-08-08T13:37:56-07:00","message":"sure-0.6 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"bc64b8a5e0b40226119edac879d336c1e5fdf2c5","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f0a9c03882fa92001869f2eb930d807408738c0d"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/76e3af7354c0de85771f17af004d3e0c428e50a2","id":"76e3af7354c0de85771f17af004d3e0c428e50a2","committed_date":"2011-08-08T13:41:33-07:00","authored_date":"2011-08-08T13:37:33-07:00","message":"sphinxcontrib-httpdomain-0.1.5 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"abf592f48a7e2ad9f22ea78618a3e0ab456d589b","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"d1cdabe1cc4aa53bc334607665249c8bea03fda8"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f0a9c03882fa92001869f2eb930d807408738c0d","id":"f0a9c03882fa92001869f2eb930d807408738c0d","committed_date":"2011-08-08T13:41:32-07:00","authored_date":"2011-08-08T13:37:02-07:00","message":"sphinxcontrib-googlechart-0.1.4 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"2379ef9ba93db2f719ebec1796c983522aacab37","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"e1e608d71309c02a572631108a95ca75ce9513e7"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/d1cdabe1cc4aa53bc334607665249c8bea03fda8","id":"d1cdabe1cc4aa53bc334607665249c8bea03fda8","committed_date":"2011-08-08T13:41:29-07:00","authored_date":"2011-08-08T13:35:37-07:00","message":"sphinxcontrib-ansi-0.6 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"028250871750a79b598197fb13f34618f191383f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"f5cd151be2a612875d311db2ffed04dfd760827f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/e1e608d71309c02a572631108a95ca75ce9513e7","id":"e1e608d71309c02a572631108a95ca75ce9513e7","committed_date":"2011-08-08T13:40:28-07:00","authored_date":"2011-08-08T13:34:16-07:00","message":"seqdiag-0.3.7 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"5f2eac33e42893dcf62770ce597072d90d03703a","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"62ffa4958619aced3a04bd7edda935cacfe46ad4"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/f5cd151be2a612875d311db2ffed04dfd760827f","id":"f5cd151be2a612875d311db2ffed04dfd760827f","committed_date":"2011-08-08T13:39:43-07:00","authored_date":"2011-08-08T13:33:47-07:00","message":"pgmagick-0.4 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"993a303618ce8cba057088100008ed10a01e59d2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"bc77a39dbc61e30ac712114fad1f25d8cd9efafa"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/62ffa4958619aced3a04bd7edda935cacfe46ad4","id":"62ffa4958619aced3a04bd7edda935cacfe46ad4","committed_date":"2011-08-08T13:39:39-07:00","authored_date":"2011-08-08T13:33:10-07:00","message":"nwdiag-0.2.7 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"e45dfd3427dd1f73f77bb620d6766bb243dd90da","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"97fb801046805bec82398c8dcbb1cc901a162631"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/bc77a39dbc61e30ac712114fad1f25d8cd9efafa","id":"bc77a39dbc61e30ac712114fad1f25d8cd9efafa","committed_date":"2011-08-08T13:39:37-07:00","authored_date":"2011-08-08T13:32:40-07:00","message":"notmuch-0.6 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"5e02cd9526189e3ddda11d0e5f469ee8e5cccd9f","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"b53f10f90d35338a52a77ed261914e7c5231e710"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/97fb801046805bec82398c8dcbb1cc901a162631","id":"97fb801046805bec82398c8dcbb1cc901a162631","committed_date":"2011-08-08T13:39:35-07:00","authored_date":"2011-08-08T13:32:04-07:00","message":"html-1.16 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"4d6158007976a55807667c7e9bf4079a711b12b4","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"c60fefb7c493b68fec49f6532fb482d94ad82afb"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/b53f10f90d35338a52a77ed261914e7c5231e710","id":"b53f10f90d35338a52a77ed261914e7c5231e710","committed_date":"2011-08-08T13:39:32-07:00","authored_date":"2011-08-08T13:31:32-07:00","message":"gitdb-0.5.4 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"405d3a20a2e678a04795661f4468f72adf44bdb1","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"8fbdffdbb4c7fa41480005a64ea4050848eaf957"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/c60fefb7c493b68fec49f6532fb482d94ad82afb","id":"c60fefb7c493b68fec49f6532fb482d94ad82afb","committed_date":"2011-08-08T13:39:29-07:00","authored_date":"2011-08-08T13:31:04-07:00","message":"blockdiag-0.8.4 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"216174a1d38635ce910eb4b09c56d3d6eafb1804","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"7ca5fd4143d3ba24ca7167a0151233bc6bbe360f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/8fbdffdbb4c7fa41480005a64ea4050848eaf957","id":"8fbdffdbb4c7fa41480005a64ea4050848eaf957","committed_date":"2011-08-08T13:39:26-07:00","authored_date":"2011-08-08T13:30:36-07:00","message":"webcolors-1.3.1 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"7338cc0a184ff2d1b28ab848935d0289afeaac41","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"ec56adae8d604fb30e169b058f0ebb227bf1b157"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7ca5fd4143d3ba24ca7167a0151233bc6bbe360f","id":"7ca5fd4143d3ba24ca7167a0151233bc6bbe360f","committed_date":"2011-08-08T13:39:23-07:00","authored_date":"2011-08-08T13:30:08-07:00","message":"actdiag-0.1.7 keyworded x86.\n\n(Portage version: 2.1.10.3/git/Linux x86, signed Manifest commit with key C0174749)","tree":"06b3f9742f2c531a931bf69ff04d7b0426f2b8bc","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"1ad6dacf95f19da9cccd511443a5212e1e870672"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/ec56adae8d604fb30e169b058f0ebb227bf1b157","id":"ec56adae8d604fb30e169b058f0ebb227bf1b157","committed_date":"2011-08-08T13:29:22-07:00","authored_date":"2011-08-08T13:29:22-07:00","message":"Pushed rstctl stabilisation back 90 days.\n\nStill waiting on upstream to stabilise pastescript.","tree":"d456b0bf965aaf1f849612e301f7b3ab767a8402","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"9dcf33553857afa0dd32b4222ca805c0add7249a"},{"id":"7f535736c7cc92032fc3e000eb49e033a500ad85"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/1ad6dacf95f19da9cccd511443a5212e1e870672","id":"1ad6dacf95f19da9cccd511443a5212e1e870672","committed_date":"2011-08-08T13:28:39-07:00","authored_date":"2011-08-08T13:28:39-07:00","message":"Merge branch 'maint/amd64_keywording' into maint/x86_keywording\n\n* maint/amd64_keywording:\n tox-1.1 keyworded amd64.\n sure-0.6 keyworded amd64.\n sphinxcontrib-httpdomain-0.1.5 keyworded amd64.\n sphinxcontrib-googlechart-0.1.4 keyworded amd64.\n sphinxcontrib-ansi-0.6 keyworded amd64.\n seqdiag-0.3.7 keyworded amd64.\n pgmagick-0.4 keyworded amd64.\n nwdiag-0.2.7 keyworded amd64.\n notmuch-0.6 keyworded amd64.\n html-0.16 keyworded amd64.\n gitdb-0.5.4 keyworded amd64.\n blockdiag-0.8.4 keyworded amd64.\n webcolors-1.3.1 keyworded amd64.\n actdiag-0.1.7 keyworded amd64.\n Pushed rstctl stabilisation back 90 days.\n html2rest-0.2.1 keyworded amd64.\n Pushed ditz stabilisation back 90 days.","tree":"065e156553982ed5c8c5430b11c53494b897a717","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"dd9340879777d4642ff7e025e6d2569599e7272f"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/7f535736c7cc92032fc3e000eb49e033a500ad85","id":"7f535736c7cc92032fc3e000eb49e033a500ad85","committed_date":"2011-08-08T13:22:29-07:00","authored_date":"2011-08-08T13:21:53-07:00","message":"tox-1.1 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"065e156553982ed5c8c5430b11c53494b897a717","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"96db5d30ddc886429618c8ea002243c4d4146659"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/dd9340879777d4642ff7e025e6d2569599e7272f","id":"dd9340879777d4642ff7e025e6d2569599e7272f","committed_date":"2011-08-08T13:22:29-07:00","authored_date":"2011-08-08T13:21:24-07:00","message":"sure-0.6 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"979b63e1deee4731ba6290c7a89b7bb5f7f1d21a","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"4fbb3e8b7109e217e417a19a9ede20c3eb4ebe73"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/96db5d30ddc886429618c8ea002243c4d4146659","id":"96db5d30ddc886429618c8ea002243c4d4146659","committed_date":"2011-08-08T13:22:29-07:00","authored_date":"2011-08-08T13:20:53-07:00","message":"sphinxcontrib-httpdomain-0.1.5 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"4ed313a70faad4a0888956c47a25d0e178c676e2","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"2e57f31917ca081838d4ef7406107bd9c843b8fa"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/4fbb3e8b7109e217e417a19a9ede20c3eb4ebe73","id":"4fbb3e8b7109e217e417a19a9ede20c3eb4ebe73","committed_date":"2011-08-08T13:22:28-07:00","authored_date":"2011-08-08T13:20:23-07:00","message":"sphinxcontrib-googlechart-0.1.4 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"8548f7bf7cf76d705dd117e7194480664a9b5c1a","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"27ff4013a0d780b739c2ca5240c9c644c7e04ab9"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/2e57f31917ca081838d4ef7406107bd9c843b8fa","id":"2e57f31917ca081838d4ef7406107bd9c843b8fa","committed_date":"2011-08-08T13:22:28-07:00","authored_date":"2011-08-08T13:19:38-07:00","message":"sphinxcontrib-ansi-0.6 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"906a81b9ab4106b58b5d1db0bf28e39fc92e26b0","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"a16eecb18e2499bf0376080bbfd55272dfcc4ab1"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/27ff4013a0d780b739c2ca5240c9c644c7e04ab9","id":"27ff4013a0d780b739c2ca5240c9c644c7e04ab9","committed_date":"2011-08-08T13:22:28-07:00","authored_date":"2011-08-08T13:19:03-07:00","message":"seqdiag-0.3.7 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"e11362ea5928230d4ba856a7cceab97cc1bdd378","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}},{"parents":[{"id":"cdad2422fb73adeb752220c5d489673f8a91b8ba"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/JNRowe/misc-overlay/commit/a16eecb18e2499bf0376080bbfd55272dfcc4ab1","id":"a16eecb18e2499bf0376080bbfd55272dfcc4ab1","committed_date":"2011-08-08T13:22:28-07:00","authored_date":"2011-08-08T13:18:36-07:00","message":"pgmagick-0.4 keyworded amd64.\n\n(Portage version: 2.1.10.3/git/Linux x86_64, signed Manifest commit with key C0174749)","tree":"ff6404094d6f6cf7308654430df25e02d94c7dae","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,commits,show,ask,python-github2,1c83cde9b5a7c396a01af1007fb7b88765b9ae45,a4f58221c8131c4e0975cd806f13d76c b/tests/data/github.com,api,v2,json,commits,show,ask,python-github2,1c83cde9b5a7c396a01af1007fb7b88765b9ae45,a4f58221c8131c4e0975cd806f13d76c index a1a5c48..e7cf6dc 100644 --- a/tests/data/github.com,api,v2,json,commits,show,ask,python-github2,1c83cde9b5a7c396a01af1007fb7b88765b9ae45,a4f58221c8131c4e0975cd806f13d76c +++ b/tests/data/github.com,api,v2,json,commits,show,ask,python-github2,1c83cde9b5a7c396a01af1007fb7b88765b9ae45,a4f58221c8131c4e0975cd806f13d76c @@ -1,14 +1,16 @@ status: 200 -content-length: 1578 +x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/commits/show/ask/python-github2/1c83cde9b5a7c396a01af1007fb7b88765b9ae45 -set-cookie: _gh_sess=BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--ed7eadd474fd37850b68bd3c08a5c55ad0c3c833; +-content-encoding: gzip path=/; expires=Fri, 01 Jan 2021 00:00:00 GMT; secure; HttpOnly -x-runtime: 38ms -server: nginx/0.7.67 connection: keep-alive -etag: "567523fc76cd6ee4352ee33b178781af" +content-length: 1578 +server: nginx/1.0.4 +x-runtime: 32ms +x-ratelimit-limit: 60 +etag: "848c200dc06e8b9b766294e99f795601" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:43:09 GMT +date: Mon, 15 Aug 2011 19:59:15 GMT content-type: application/json; charset=utf-8 {"commit":{"modified":[{"diff":"--- a/github2/bin/manage_collaborators.py\n+++ b/github2/bin/manage_collaborators.py\n@@ -25,6 +25,8 @@ def parse_commandline():\n '\\nTry %prog --help for details.')\n parser.add_option('-d', '--debug', action='store_true',\n help='Enables debugging mode')\n+ parser.add_option('-c', '--cache', default=None,\n+ help='Location for network cache [default: None]')\n parser.add_option('-l', '--login',\n help='Username to login with')\n parser.add_option('-a', '--account',\n@@ -59,7 +61,7 @@ def main():\n \n github = github2.client.Github(username=options.login,\n api_token=options.apitoken,\n- debug=options.debug)\n+ debug=options.debug, cache=options.cache)\n \n if len(args) == 1:\n for repos in github.repos.list(options.account):","filename":"github2/bin/manage_collaborators.py"}],"parents":[{"id":"7d1c855d2f44a55e4b90b40017be697cf70cb4a0"}],"author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"url":"/ask/python-github2/commit/1c83cde9b5a7c396a01af1007fb7b88765b9ae45","id":"1c83cde9b5a7c396a01af1007fb7b88765b9ae45","committed_date":"2011-06-06T16:13:50-07:00","authored_date":"2011-06-06T16:13:50-07:00","message":"Added cache support to manage_collaborators.","tree":"f48fcc1a0b8ea97f3147dc42cf7cdb6683493e94","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"}}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,issues,comments,ask,python-github2,24,fd493a9ada4c1de1cd592293f9c2049e b/tests/data/github.com,api,v2,json,issues,comments,ask,python-github2,24,fd493a9ada4c1de1cd592293f9c2049e index c16be20..4b819b2 100644 --- a/tests/data/github.com,api,v2,json,issues,comments,ask,python-github2,24,fd493a9ada4c1de1cd592293f9c2049e +++ b/tests/data/github.com,api,v2,json,issues,comments,ask,python-github2,24,fd493a9ada4c1de1cd592293f9c2049e @@ -1,14 +1,15 @@ status: 200 -x-ratelimit-remaining: 57 +x-ratelimit-remaining: 58 content-location: https://github.com/api/v2/json/issues/comments/ask/python-github2/24 -x-runtime: 17ms -content-length: 9146 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 9146 +server: nginx/1.0.4 +x-runtime: 29ms x-ratelimit-limit: 60 -etag: "cf41a767767e5b6a2c8af3b6eb6e36df" +etag: "e72eb1f693f00e16b71da10917f2893b" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:42:33 GMT +date: Thu, 25 Aug 2011 06:54:09 GMT content-type: application/json; charset=utf-8 {"comments":[{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","created_at":"2010/12/09 22:37:26 -0800","body":"Great addition! Could you please implement the paging stuff for all API routes that support paging? Having paging for route A, but not for route B might be confusing and nobody exactly knows which API routes have been covered already.\r\n\r\nThanks in advance,\r\nVincent\r\n","updated_at":"2010/12/09 22:37:26 -0800","id":601871,"user":"nvie"},{"gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","created_at":"2010/12/09 23:48:23 -0800","body":"Sure, but I have another idea.\r\n\r\nList methods could return not a list but an iterable object just like Django ORM's QuerySet, which supports slicing. And this iterable object will hide internal github's paging implementation from the end user of the python-github2.\r\n\r\nFor example, they could iterate over all commits using:\r\n\r\n for commit in gh.commits.list('django/django'):\r\n process(commit)\r\n\r\nAnd github2 will make as many requests to the GitHub as required.\r\n\r\nOr user coul only fetch first 100 commits:\r\n\r\n for commit in gh.commits.list('django/django')[:100]:\r\n process(commit)\r\n\r\nAnd github2 will do no more than 3 requests to the GitHub behind the scene?\r\n\r\nI see only one con against this approach. It is backward incompartible with the previous code and to convert old code which uses github2 to work with new library, you have to use limits and perhaps lists:\r\n\r\nIf previously you wrote `commits = hg.commits.list('django/django')` and receive no more than 30 items in the list, then now you will have to write `commits = gh.commits.list('django/django')[:LIMIT]` or, if you really need a list here: `commits = list(gh.commits.list('django/django')[:LIMIT])`.\r\n\r\nI suggest this implementation because without that, many developers who using github2, will have to implement same logic in their own code. For example, here is my curren implementation of the generator:\r\n\r\n def get_commits(*params):\r\n \"\"\" Generator which fetches commits from\r\n given repository until LIMIT\r\n will be reached.\r\n \"\"\"\r\n page = 1 \r\n limit = config.LIMIT\r\n\r\n commits = gh.commits.list(page = page, *params)\r\n while commits:\r\n for commit in commits:\r\n yield commit\r\n limit -= 1\r\n if limit == 0:\r\n raise StopIteration\r\n page += 1\r\n commits = gh.commits.list(page = page, *params)\r\n\r\nBy the way, such generator could be generalized to use with any listable github's object if it will support the page argument in it's list method. And this will allow us to keep backward compatibility. But this approach is a compromise :( ","updated_at":"2010/12/09 23:48:23 -0800","id":601937,"user":"svetlyak40wt"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","created_at":"2010/12/13 01:15:05 -0800","body":"I think the addition of an iterator hiding the details of paging is a great fit for this library. The backward incompatibility is a bit tricky, so I'm not too fond of changing the list method. Instead, we could solve this by providing an `iter()` method instead of `list()`? Then `list()` can keep its current semantics and people can use an iterator in the case they prefer that.\r\n\r\nBy the way: in your code sample you call `gh.commits.list('django/django')[:LIMIT]`, but AFAIK iterators aren't subscriptable. (Subscript semantics on iterators is really hard, since they involve state.) Using islice could do the trick like this, however:\r\n\r\n islice(gh.commits.list('django/django'), None, LIMIT)\r\n","updated_at":"2010/12/13 01:15:05 -0800","id":607643,"user":"nvie"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","created_at":"2010/12/13 01:28:05 -0800","body":"We could even let the `iter()` method return the islice'd iterator:\r\n\r\n def iter(self, start=None, stop=None):\r\n ...\r\n return islice(commits, start, stop)\r\n\r\nThat way, you can simply call:\r\n\r\n # iter over all commits\r\n for c in gh.commits.iter():\r\n ...\r\n \r\n # iter over a subset\r\n for c in gh.commits.iter(25, 100):\r\n ...\r\n","updated_at":"2010/12/13 01:28:05 -0800","id":607666,"user":"nvie"},{"gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","created_at":"2010/12/13 03:37:50 -0800","body":"Of cause, you can't apply [:LIMIT] to an iterator, but you can do this with any _iterable_ object. This will look like this for end user:\r\n\r\n for c in gh.commits.iter('django/django')[:50]:\r\n ...\r\n\r\nI'll try to write the implementation within few days, and will send you another pull request.","updated_at":"2010/12/13 03:37:50 -0800","id":607829,"user":"svetlyak40wt"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","created_at":"2010/12/13 07:27:50 -0800","body":"Yeah, what I meant is that (lazy) iterables are not subscriptable (at least not up until Python 2.6), so the above code yields a syntax error. See this:\r\n\r\n >>> def count(): \r\n ... i = 0 \r\n ... while True: \r\n ... yield i \r\n ... i += 1 \r\n ... \r\n >>> for i in count()[:50]: \r\n ... print i \r\n ... \r\n Traceback (most recent call last): \r\n File \"\", line 1, in \r\n TypeError: 'generator' object is unsubscriptable \r\n >>>\r\n\r\nHowever, if you wrap it in an islice wrapper, you can subscript these kinds of infinite lists:\r\n\r\n >>> from itertools import islice\r\n >>> for i in islice(count(), None, 7):\r\n ... print i\r\n ...\r\n 0\r\n 1\r\n 2\r\n 3\r\n 4\r\n 5\r\n 6\r\n\r\nAn alternative is to resolve the iterator's elements, which looses the laziness (and therefore doesn't work with infinite lists).\r\n\r\n for c in list(gh.commits.iter())[:50]:\r\n ....\r\n\r\nThis would effectively fetch *ALL* commit objects in GitHub in one big list and then slice the first 50 out of that result.","updated_at":"2010/12/13 07:27:50 -0800","id":608217,"user":"nvie"},{"gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","created_at":"2010/12/13 08:19:17 -0800","body":"Generators like this one are not subscribtable, but this does not mean, that I can't return in immediate object from `iter` method which will support slicing and iteration. Wait for the patch, ok? :)","updated_at":"2010/12/13 08:19:17 -0800","id":608365,"user":"svetlyak40wt"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","created_at":"2010/12/21 14:21:14 -0800","body":"Hey Alexander, how's your patch progressing?","updated_at":"2010/12/21 14:21:14 -0800","id":628461,"user":"nvie"},{"gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","created_at":"2010/12/21 14:30:26 -0800","body":"Hi. Sorry for delay. It is hard to do this in stable manner, because there is no any documentation from the GitHub and I found no way to tell GitHub the page size.\r\n\r\nBy default, page size is 35 items. I need to know that this value will never changed or (better) to specify it myself. Without this, I can't to implement a reliable slicing.\r\n\r\nIf you want, I could try to implement it and hardcode that page's size is 35 items, but it could be broken someday.","updated_at":"2010/12/21 14:30:26 -0800","id":628486,"user":"svetlyak40wt"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","created_at":"2010/12/22 12:40:18 -0800","body":"You can safely use the static page size, [technoweenie](https://github.com/technoweenie) himself [promised me](http://twitter.com/technoweenie/status/17676244548059136) it won't change for the v2 API.","updated_at":"2010/12/22 12:40:18 -0800","id":630757,"user":"nvie"},{"gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","created_at":"2011/01/04 16:26:06 -0800","body":"Ok, I wrote this helper, to solve this task: https://github.com/svetlyak40wt/pagerator\r\nIt is generalized and could be used anywhere else, to iterate over any paged results.\r\n\r\nFor our case, gh.commits.iter() method should return be:\r\n\r\n def iter(self, project, branch=\"master\", file=None):\r\n return pagerator.IterableQuery(\r\n lambda page: self.get_values(\r\n \"list\", project, branch, file,\r\n filter=\"commits\", datatype=Commit,\r\n post_data=dict(page=page+1)\r\n ), \r\n 35 # page_size hardcoded in the GitHub\r\n )\r\n\r\nBut I can't test it right now, because I receive \"api route not recognized\" error from the GitHub, even for list method which worked previously. Do you know how to fix it?","updated_at":"2011/01/04 16:26:06 -0800","id":653676,"user":"svetlyak40wt"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,issues,labels,JNRowe,misc-overlay,b81a30109b72cf3356114dcc6e2e29ca b/tests/data/github.com,api,v2,json,issues,labels,JNRowe,misc-overlay,b81a30109b72cf3356114dcc6e2e29ca index 84de95f..5c09af0 100644 --- a/tests/data/github.com,api,v2,json,issues,labels,JNRowe,misc-overlay,b81a30109b72cf3356114dcc6e2e29ca +++ b/tests/data/github.com,api,v2,json,issues,labels,JNRowe,misc-overlay,b81a30109b72cf3356114dcc6e2e29ca @@ -1,14 +1,15 @@ status: 200 x-ratelimit-remaining: 58 content-location: https://github.com/api/v2/json/issues/labels/JNRowe/misc-overlay -x-runtime: 10ms -content-length: 35 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 44 +server: nginx/1.0.4 +x-runtime: 7ms x-ratelimit-limit: 60 -etag: "a97c4b6aaa3d373f86315a8577170b10" +etag: "966c6e8f6191c75088f7aeb71f8e458a" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:42:11 GMT +date: Thu, 25 Aug 2011 06:49:36 GMT content-type: application/json; charset=utf-8 -{"labels":["feature","bug","task"]} \ No newline at end of file +{"labels":["feature","bug","task","test_2"]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,issues,list,JNRowe,misc-overlay,label,bug,79a89664a2d4783ee9089d29f99b660e b/tests/data/github.com,api,v2,json,issues,list,JNRowe,misc-overlay,label,bug,79a89664a2d4783ee9089d29f99b660e new file mode 100644 index 0000000..e865e18 --- /dev/null +++ b/tests/data/github.com,api,v2,json,issues,list,JNRowe,misc-overlay,label,bug,79a89664a2d4783ee9089d29f99b660e @@ -0,0 +1,16 @@ +status: 200 +x-ratelimit-remaining: 59 +content-location: https://github.com/api/v2/json/issues/list/JNRowe/misc-overlay/label/bug +connection: keep-alive +x-next: https://github.com/api/v2/json/issues/list/JNRowe/misc-overlay/label/bug?page=2 +content-length: 15566 +server: nginx/0.7.67 +date: Wed, 08 Jun 2011 13:42:00 GMT +x-runtime: 138ms +x-ratelimit-limit: 60 +etag: "f625ba2e14adae8f3b8960c00d60e9eb" +cache-control: private, max-age=0, must-revalidate +x-last: https://github.com/api/v2/json/issues/list/JNRowe/misc-overlay/label/bug?page=2 +content-type: application/json; charset=utf-8 + +{"issues":[{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":1.0,"number":3,"votes":0,"created_at":"2010/09/14 17:51:13 -0700","comments":1,"body":"\n---\n`ditz-id`: `05d00a48cdce80119a2b26f7c6f0e25894ff8537`\n\n`ditz-event-time`: `2010-03-04T19:21:01.799951Z`","title":"app-text/gist file locations have changed in git repo.","updated_at":"2010/09/14 17:51:17 -0700","closed_at":"2010/09/14 17:51:17 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/3","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":4.0,"number":9,"votes":0,"created_at":"2010/09/14 17:52:17 -0700","comments":1,"body":"\n---\n`ditz-id`: `0fdb57d80db65f2370811df882adbc8e958e5d8a`\n\n`ditz-event-time`: `2009-12-21T17:53:02.947952Z`","title":"fossil uses internal copy of sqlite.","updated_at":"2010/09/14 17:52:21 -0700","closed_at":"2010/09/14 17:52:21 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/9","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":6.0,"number":11,"votes":0,"created_at":"2010/09/14 17:52:40 -0700","comments":1,"body":"\n---\n`ditz-id`: `137ec0032fe83918fd0570e125dc1f2991a37676`\n\n`ditz-event-time`: `2010-03-04T19:37:23.671948Z`","title":"dev-python/pycukes fails with recent distutills.eclass changes.","updated_at":"2010/09/14 17:52:44 -0700","closed_at":"2010/09/14 17:52:44 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/11","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":19.0,"number":24,"votes":0,"created_at":"2010/09/14 17:54:52 -0700","comments":1,"body":"\n---\n`ditz-id`: `2ca7641993a1f7a1a8cb7ab01d5cde6b874e118a`\n\n`ditz-event-time`: `2009-12-14T10:32:37.855964Z`","title":"app-text/apvlv-0.0.8.1 has automagic djvu dependency.","updated_at":"2010/09/14 17:54:57 -0700","closed_at":"2010/09/14 17:54:57 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/24","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":24.0,"number":29,"votes":0,"created_at":"2010/09/14 17:55:30 -0700","comments":2,"body":"Reported by Dennis Bruce.\n\n---\n`ditz-id`: `32197e2725b7a973e0a66f3ecaf0efbbfb966c1e`\n\n`ditz-event-time`: `2010-03-04T17:43:17.471958Z`","title":"dev-util/ccontrol fails in src_test.","updated_at":"2010/09/14 17:55:35 -0700","closed_at":"2010/09/14 17:55:35 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/29","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":25.0,"number":30,"votes":0,"created_at":"2010/09/14 17:55:37 -0700","comments":1,"body":"\n---\n`ditz-id`: `337caa2e1f972335878906cc1fbfd6091a96d633`\n\n`ditz-event-time`: `2010-03-05T21:27:08.459986Z`","title":"python.eclass changes emit warnings with jnrowe-pypi:module_script_wrapper().","updated_at":"2010/09/14 17:55:46 -0700","closed_at":"2010/09/14 17:55:46 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/30","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":28.0,"number":33,"votes":0,"created_at":"2010/09/14 17:55:59 -0700","comments":1,"body":"\n---\n`ditz-id`: `35cca70ded236159c5a3a18bf816c2af345bc811`\n\n`ditz-event-time`: `2010-07-05T17:16:15.503883Z`","title":"dev-libs/ctpl cupage check blocked by robots.txt.","updated_at":"2010/09/14 17:56:03 -0700","closed_at":"2010/09/14 17:56:03 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/33","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":29.0,"number":34,"votes":0,"created_at":"2010/09/14 17:56:06 -0700","comments":1,"body":"\n---\n`ditz-id`: `362778bbc4dd3a91ab4149f33868039c75ccc7d6`\n\n`ditz-event-time`: `2010-02-14T07:36:28.091756Z`","title":"dev-python/html doesn't work with Python 2.4.","updated_at":"2010/09/14 17:56:10 -0700","closed_at":"2010/09/14 17:56:10 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/34","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":33.0,"number":38,"votes":0,"created_at":"2010/09/14 17:56:28 -0700","comments":1,"body":"\n---\n`ditz-id`: `3a12af55a7e27b7a87cf0432c7285e4e32ace4fe`\n\n`ditz-event-time`: `2009-12-06T06:21:55.723974Z`","title":"Invalid man page install path in apvlv.","updated_at":"2010/09/14 17:56:38 -0700","closed_at":"2010/09/14 17:56:38 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/38","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":34.0,"number":39,"votes":0,"created_at":"2010/09/14 17:56:44 -0700","comments":1,"body":"\n---\n`ditz-id`: `3a3471c3a9218713445122c21458c5d7f1b72e30`\n\n`ditz-event-time`: `2010-03-04T17:44:37.431956Z`","title":"dev-util/gitserve fails with recent distutills.eclass changes.","updated_at":"2010/09/14 17:56:49 -0700","closed_at":"2010/09/14 17:56:49 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/39","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":35.0,"number":40,"votes":0,"created_at":"2010/09/14 17:56:51 -0700","comments":1,"body":"The download page has changed layout.\n\n---\n`ditz-id`: `408d842ddd5caef873f5bedcaf4e71cee992d058`\n\n`ditz-event-time`: `2009-12-31T03:25:36.464053Z`","title":"matwm2 cupage entry broken.","updated_at":"2010/09/14 17:56:56 -0700","closed_at":"2010/09/14 17:56:56 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/40","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":40.0,"number":45,"votes":0,"created_at":"2010/09/14 17:57:35 -0700","comments":1,"body":"- /usr/share/doc/apvlv-0.0.7.4/reg.png - /usr/share/doc/apvlv-0.0.7.4/dir.png - /usr/share/doc/apvlv-0.0.7.4/pdf.png\n\n---\n`ditz-id`: `48578b8bac650dad93271d2880de33140768b4f0`\n\n`ditz-event-time`: `2009-11-14T06:53:02.847996Z`","title":"apvlv stores datafiles in docdir.","updated_at":"2010/09/14 17:57:39 -0700","closed_at":"2010/09/14 17:57:39 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/45","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":49.0,"number":54,"votes":0,"created_at":"2010/09/14 17:59:00 -0700","comments":1,"body":"Some of the plugins reference the build system's default document path, which is overridden at install time. This isn't just cosmetic, it breaks help functionality in the interface.\n\n---\n`ditz-id`: `54418badf2a50f642b919f458dd561e559083e7b`\n\n`ditz-event-time`: `2010-06-20T12:35:08.378462Z`","title":"Invalid doc path used in geany-plugins-0.19.","updated_at":"2010/09/14 17:59:10 -0700","closed_at":"2010/09/14 17:59:10 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/54","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":81.0,"number":86,"votes":0,"created_at":"2010/09/14 18:08:09 -0700","comments":1,"body":"ebuild and cupage entry need updating.\n\n---\n`ditz-id`: `81ea1ed5020396c7114643281ad2bf554133f9d6`\n\n`ditz-event-time`: `2009-11-16T05:25:05.255933Z`","title":"x11-wm/parti has moved to Google's code hosting.","updated_at":"2010/09/14 18:08:13 -0700","closed_at":"2010/09/14 18:08:13 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/86","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":97.0,"number":102,"votes":0,"created_at":"2010/09/14 18:11:24 -0700","comments":6,"body":"\n---\n`ditz-id`: `971e2fc2ad70b118b79adfe1a3745e5c551932bf`\n\n`ditz-event-time`: `2009-11-12T04:40:21.007927Z`","title":"Packages missing cupage config entries.","updated_at":"2010/09/14 18:11:37 -0700","closed_at":"2010/09/14 18:11:37 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/102","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":113.0,"number":118,"votes":0,"created_at":"2010/09/14 18:13:58 -0700","comments":1,"body":"\n---\n`ditz-id`: `a7598bb237c7bb2c402c4ff4c6a4e59d543e998f`\n\n`ditz-event-time`: `2010-03-04T19:17:31.451916Z`","title":"dev-python/restview fails with recent distutills.eclass changes.","updated_at":"2010/09/14 18:14:02 -0700","closed_at":"2010/09/14 18:14:02 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/118","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":117.0,"number":122,"votes":0,"created_at":"2010/09/14 18:14:23 -0700","comments":1,"body":"\n---\n`ditz-id`: `afa05d6a5f6ccdebcdaebec759d408d61888e729`\n\n`ditz-event-time`: `2010-07-05T17:21:11.219887Z`","title":"www-client/opera-remote cupage check blocked by robots.txt.","updated_at":"2010/09/14 18:14:28 -0700","closed_at":"2010/09/14 18:14:28 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/122","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":122.0,"number":127,"votes":0,"created_at":"2010/09/14 18:15:29 -0700","comments":1,"body":"\n---\n`ditz-id`: `b48295c6d581976a0c95f26c2190865c493fc081`\n\n`ditz-event-time`: `2010-07-05T17:17:40.083880Z`","title":"dev-libs/luaposix cupage check blocked by robots.txt.","updated_at":"2010/09/14 18:15:39 -0700","closed_at":"2010/09/14 18:15:39 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/127","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":0.0,"number":141,"votes":0,"created_at":"2010/09/14 18:17:45 -0700","comments":3,"body":"\n---\n`ditz-id`: `c8d8078898af58f80139f986306433a4c4efd397`\n\n`ditz-event-time`: `2010-07-05T17:23:22.063887Z`","title":"media-gfx/psplash cupage check raises 403.","updated_at":"2011/02/25 22:13:20 -0800","closed_at":"2011/02/25 22:13:20 -0800","html_url":"https://github.com/JNRowe/misc-overlay/issues/141","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":150.0,"number":155,"votes":0,"created_at":"2010/09/14 18:20:01 -0700","comments":1,"body":"Uses incorrect path.\n\n---\n`ditz-id`: `d3ba89ca556458709fe431eb3ad43989722cf274`\n\n`ditz-event-time`: `2010-06-22T18:17:54.823885Z`","title":"net-misc/bleeter-0.5.0 manpage generation broken.","updated_at":"2010/09/14 18:20:12 -0700","closed_at":"2010/09/14 18:20:12 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/155","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":166.0,"number":171,"votes":0,"created_at":"2010/09/14 18:22:48 -0700","comments":1,"body":"\n---\n`ditz-id`: `f86c46636c26fd30d5d812fc207a8ea9107c7bdc`\n\n`ditz-event-time`: `2009-12-13T11:35:43.211823Z`","title":"taskwarrior overrides user CFLAGS settings.","updated_at":"2010/09/14 18:22:53 -0700","closed_at":"2010/09/14 18:22:53 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/171","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":11.0,"number":199,"votes":0,"created_at":"2010/10/07 18:17:27 -0700","comments":2,"body":"This pypi entry seems to have been deleted. Leave this bug open for a few weeks to see if it is re-added, if not look for alternatives.","title":"dev-python/termstyle cupage check raises 404.","updated_at":"2010/11/05 05:53:12 -0700","closed_at":"2010/11/05 05:53:12 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/199","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":177.0,"number":200,"votes":0,"created_at":"2010/10/08 04:06:56 -0700","comments":1,"body":"Thanks to Daniel Brew for reporting.","title":"media-gfx/sng won't build with libpng-1.4.","updated_at":"2010/10/08 04:33:06 -0700","closed_at":"2010/10/08 04:33:06 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/200","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":18.0,"number":258,"votes":0,"created_at":"2011/01/09 22:53:39 -0800","comments":2,"body":"Recent sourceforge changes have broken matcher.","title":"sci-geosciences/gpsfeed cupage check fails.","updated_at":"2011/01/10 23:47:24 -0800","closed_at":"2011/01/10 23:47:24 -0800","html_url":"https://github.com/JNRowe/misc-overlay/issues/258","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":19.0,"number":259,"votes":0,"created_at":"2011/01/09 23:02:37 -0800","comments":2,"body":"Recent sourceforge changes have broken matcher.","title":"media-gfx/sng cupage check fails.","updated_at":"2011/01/10 22:04:52 -0800","closed_at":"2011/01/10 22:04:52 -0800","html_url":"https://github.com/JNRowe/misc-overlay/issues/259","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":20.0,"number":261,"votes":0,"created_at":"2011/01/09 23:04:31 -0800","comments":2,"body":"Recent sourceforge changes have broken matcher.","title":"dev-tcltk/tcludp cupage check fails.","updated_at":"2011/01/10 22:04:52 -0800","closed_at":"2011/01/10 22:04:52 -0800","html_url":"https://github.com/JNRowe/misc-overlay/issues/261","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":6.0,"number":262,"votes":0,"created_at":"2011/01/09 23:44:53 -0800","comments":2,"body":"If `USE=!examples` the links in the documentation will be broken.\r\n\r\nThis obviously also applies to `mail-filter/maildirproc-python2`.","title":"mail-filter/maildirproc documentation should link to upstream for examples","updated_at":"2011/01/10 23:47:24 -0800","closed_at":"2011/01/10 23:47:24 -0800","html_url":"https://github.com/JNRowe/misc-overlay/issues/262","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":0.0,"number":284,"votes":0,"created_at":"2011/02/14 03:00:42 -0800","comments":2,"body":"Upstream appears to have redesigned their site, so the cupage check needs updating.","title":"dev-python/texttable cupage check raises 404.","updated_at":"2011/02/15 05:54:47 -0800","closed_at":"2011/02/15 05:54:47 -0800","html_url":"https://github.com/JNRowe/misc-overlay/issues/284","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":9.0,"number":327,"votes":0,"created_at":"2011/04/04 21:42:38 -0700","comments":1,"body":"Appears to have switched to PyPI for listings.","title":"dev-python/feedcache cupage entry broken.","updated_at":"2011/04/05 03:59:24 -0700","closed_at":"2011/04/05 03:59:24 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/327","user":"JNRowe","labels":["bug"],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":10.0,"number":328,"votes":0,"created_at":"2011/04/04 21:44:12 -0700","comments":1,"body":"Files have been repackaged and renamed.","title":"app-misc/libeatmydata cupage entry broken.","updated_at":"2011/04/05 03:59:24 -0700","closed_at":"2011/04/05 03:59:24 -0700","html_url":"https://github.com/JNRowe/misc-overlay/issues/328","user":"JNRowe","labels":["bug"],"state":"closed"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,issues,list,ask,python-github2,closed,3662da90eba27809e7bff7600392ec94 b/tests/data/github.com,api,v2,json,issues,list,ask,python-github2,closed,3662da90eba27809e7bff7600392ec94 index eec6517..e8a53e5 100644 --- a/tests/data/github.com,api,v2,json,issues,list,ask,python-github2,closed,3662da90eba27809e7bff7600392ec94 +++ b/tests/data/github.com,api,v2,json,issues,list,ask,python-github2,closed,3662da90eba27809e7bff7600392ec94 @@ -1,14 +1,15 @@ -status: 304 -x-ratelimit-remaining: 57 +status: 200 +x-ratelimit-remaining: 58 content-location: https://github.com/api/v2/json/issues/list/ask/python-github2/closed +-content-encoding: gzip connection: keep-alive -content-length: 46568 -server: nginx/0.7.67 -x-runtime: 233ms +content-length: 52973 +server: nginx/1.0.4 +x-runtime: 342ms x-ratelimit-limit: 60 -etag: "99198abdc7b302c3eb2571030f4bee4c" +etag: "4a2070617d134387326d466eb9068195" cache-control: private, max-age=0, must-revalidate -date: Tue, 31 May 2011 13:57:50 GMT +date: Thu, 25 Aug 2011 06:51:25 GMT content-type: application/json; charset=utf-8 -{"issues":[{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":52.0,"number":52,"votes":0,"created_at":"2011/05/28 02:03:37 -0700","comments":0,"body":"\nSee [this bug](https://github.com/ask/python-github2/issues/51#issuecomment-1253464)","title":"Document purpose, and use, of ``debug`` attributes.","updated_at":"2011/05/28 06:40:00 -0700","closed_at":"2011/05/28 06:40:00 -0700","html_url":"https://github.com/ask/python-github2/issues/52","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":51.0,"number":51,"votes":0,"created_at":"2011/05/28 01:09:46 -0700","comments":12,"body":"```pycon \r\n>>> github.repos.watch(\"schacon/grit\")\r\nTraceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/repositories.py\", line 69, in watch\r\n return self.make_request(\"watch\", project)\r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/core.py\", line 58, in make_request\r\n response = self.request.get(self.domain, command, *args)\r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 70, in get\r\n return self.make_request(\"/\".join(path_components))\r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 89, in make_request\r\n result = self.raw_request(url, extra_post_data, method=method)\r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 113, in raw_request\r\n response.status, content))\r\nRuntimeError: unexpected response from github.com 401: '{\"error\":\"invalid repository to watch\"}'\r\n\r\n```\r\n\r\nI can't seem to watch that repository. I used the OAuth key to get the github object. ","title":"Watching repositories doesn't work","updated_at":"2011/05/28 20:30:12 -0700","closed_at":"2011/05/28 20:30:11 -0700","html_url":"https://github.com/ask/python-github2/issues/51","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":50.0,"number":50,"votes":0,"created_at":"2011/05/23 18:05:57 -0700","comments":2,"body":"","title":"Fixing the init of the proxy code.","updated_at":"2011/05/23 21:09:45 -0700","diff_url":"https://github.com/ask/python-github2/pull/50.diff","patch_url":"https://github.com/ask/python-github2/pull/50.patch","pull_request_url":"https://github.com/ask/python-github2/pull/50","closed_at":"2011/05/23 20:43:20 -0700","html_url":"https://github.com/ask/python-github2/issues/50","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":49.0,"number":49,"votes":0,"created_at":"2011/05/20 11:46:19 -0700","comments":8,"body":"I am was wondering if you could better document the Mocks being used for testing. I wouldn't mind writing up the test cases, if you could comment the testing code that is currently present. Increase the robustness of the project. \n\nThoughts? Even a link to the background knowledge needed to understand what you are doing. I am tried creating a couple of tests in my branch but unable to get anything but errors. \n\nMaybe a wiki describing setup and what needs to be done. ","title":"Testing Documentation/Wiki","updated_at":"2011/05/22 14:25:06 -0700","closed_at":"2011/05/22 14:25:06 -0700","html_url":"https://github.com/ask/python-github2/issues/49","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":48.0,"number":48,"votes":0,"created_at":"2011/05/19 08:40:47 -0700","comments":3,"body":"* Added basic proxy support documentation","title":"Add proxy documentation","updated_at":"2011/05/19 15:12:47 -0700","diff_url":"https://github.com/ask/python-github2/pull/48.diff","patch_url":"https://github.com/ask/python-github2/pull/48.patch","pull_request_url":"https://github.com/ask/python-github2/pull/48","closed_at":"2011/05/19 15:09:09 -0700","html_url":"https://github.com/ask/python-github2/issues/48","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":47.0,"number":47,"votes":0,"created_at":"2011/05/18 18:40:20 -0700","comments":1,"body":"Made the socks stuff optional. I wasnt able to test the extras_require portion of the setup.py (im not terribly well versed in setuptools) but i tested manually by uninstalling/reinstalling the socks lib and watching the error raised.","title":"Updated Add Proxy Support - now optional","updated_at":"2011/05/18 19:04:30 -0700","diff_url":"https://github.com/ask/python-github2/pull/47.diff","patch_url":"https://github.com/ask/python-github2/pull/47.patch","pull_request_url":"https://github.com/ask/python-github2/pull/47","closed_at":"2011/05/18 19:04:29 -0700","html_url":"https://github.com/ask/python-github2/issues/47","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":46.0,"number":46,"votes":0,"created_at":"2011/05/18 09:37:00 -0700","comments":12,"body":"Adding HTTP proxy settings to the client, as well as to the request to allow github2 to be used behind a HTTP proxy","title":"Adding HTTP Proxy support to the Request and Client","updated_at":"2011/05/23 18:06:30 -0700","diff_url":"https://github.com/ask/python-github2/pull/46.diff","patch_url":"https://github.com/ask/python-github2/pull/46.patch","pull_request_url":"https://github.com/ask/python-github2/pull/46","closed_at":"2011/05/19 07:59:05 -0700","html_url":"https://github.com/ask/python-github2/issues/46","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":45.0,"number":45,"votes":0,"created_at":"2011/05/18 08:47:38 -0700","comments":1,"body":"Adding HTTP proxy settings to the client, as well as to the request to allow github2 to be used behind a HTTP proxy","title":"Adding HTTP Proxy support to the Request and Client","updated_at":"2011/05/18 09:07:34 -0700","diff_url":"https://github.com/ask/python-github2/pull/45.diff","patch_url":"https://github.com/ask/python-github2/pull/45.patch","pull_request_url":"https://github.com/ask/python-github2/pull/45","closed_at":"2011/05/18 09:07:33 -0700","html_url":"https://github.com/ask/python-github2/issues/45","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":44.0,"number":44,"votes":0,"created_at":"2011/05/14 20:43:34 -0700","comments":13,"body":"When getting the commits for repositories that have '.' it can't seem to find the repository.\n\n``` pycon\n>>> commits += github.commits.list('kennethreitz/osxpython.org')\nTraceback (most recent call last):\n File \"\", line 1, in \n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/commits.py\", line 37, in list\n filter=\"commits\", datatype=Commit)\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/core.py\", line 75, in get_values\n values = self.make_request(*args, **kwargs)\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/core.py\", line 58, in make_request\n response = self.request.get(self.domain, command, *args)\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 70, in get\n return self.make_request(\"/\".join(path_components))\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 89, in make_request\n result = self.raw_request(url, extra_post_data, method=method)\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 113, in raw_request\n response.status, content))\nRuntimeError: unexpected response from github.com 404: '{\"error\":\"Not Found\"}'\n```","title":"repositories with '.' are not found","updated_at":"2011/05/26 23:46:28 -0700","closed_at":"2011/05/26 18:03:57 -0700","html_url":"https://github.com/ask/python-github2/issues/44","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"2028496e3344d92d8b3af64eb0d9e19e","position":43.0,"number":43,"votes":0,"created_at":"2011/05/09 20:51:03 -0700","comments":8,"body":"The docs are already using Sphinx. It'd be much more convenient if they were hosted.\r\n\r\nhttp://Readthedocs.org is free and sphinx powered, getting them up there should be easy.\r\n\r\nFun even.","title":"Read the Docs","updated_at":"2011/05/11 07:02:48 -0700","closed_at":"2011/05/11 06:44:44 -0700","html_url":"https://github.com/ask/python-github2/issues/43","user":"GraylinKim","labels":[],"state":"closed"},{"gravatar_id":"b7699be15e710c4be309f9d537fb252b","position":42.0,"number":42,"votes":0,"created_at":"2011/05/09 08:24:36 -0700","comments":12,"body":"This is my just running 2to3 over the library, and fixing one or two things with json. Don't know if you want or need it. I'm using it for some blogofile stuff, which just bumped to python 3 for all main development, and wanted to keep using your work with my site.","title":"Python3","updated_at":"2011/05/23 00:55:08 -0700","diff_url":"https://github.com/ask/python-github2/pull/42.diff","patch_url":"https://github.com/ask/python-github2/pull/42.patch","pull_request_url":"https://github.com/ask/python-github2/pull/42","closed_at":"2011/05/19 15:19:30 -0700","html_url":"https://github.com/ask/python-github2/issues/42","user":"goosemo","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":41.0,"number":41,"votes":0,"created_at":"2011/04/24 09:35:15 -0700","comments":3,"body":"","title":"Easy way to call tests from cli","updated_at":"2011/04/27 09:45:11 -0700","diff_url":"https://github.com/ask/python-github2/pull/41.diff","patch_url":"https://github.com/ask/python-github2/pull/41.patch","pull_request_url":"https://github.com/ask/python-github2/pull/41","closed_at":"2011/04/27 09:45:11 -0700","html_url":"https://github.com/ask/python-github2/issues/41","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"464f76c5577389c5ca29e3d7cca133d5","position":40.0,"number":40,"votes":0,"created_at":"2011/04/22 12:26:50 -0700","comments":3,"body":"https://github.com/broderboy/python-github2/commit/48d85d517b4e51652217b71b264c866caa5ca874\r\n\r\nI'm not sure why git put that as a full file change\r\nline changed: prune doc/.build\r\n\r\nThanks\r\n\r\nOriginal Error: \r\nrunning install\r\nrunning bdist_egg\r\nrunning egg_info\r\nwriting requirements to github2.egg-info\\requires.txt\r\nwriting github2.egg-info\\PKG-INFO\r\nwriting top-level names to github2.egg-info\\top_level.txt\r\nwriting dependency_links to github2.egg-info\\dependency_links.txt\r\nwriting requirements to github2.egg-info\\requires.txt\r\nwriting github2.egg-info\\PKG-INFO\r\nwriting top-level names to github2.egg-info\\top_level.txt\r\nwriting dependency_links to github2.egg-info\\dependency_links.txt\r\nreading manifest file 'github2.egg-info\\SOURCES.txt'\r\nreading manifest template 'MANIFEST.in'\r\nTraceback (most recent call last):\r\n File \".\\setup.py\", line 46, in \r\n \"Topic :: Software Development :: Libraries\",\r\n File \"C:\\Python26\\lib\\distutils\\core.py\", line 152, in setup\r\n dist.run_commands()\r\n File \"C:\\Python26\\lib\\distutils\\dist.py\", line 975, in run_commands\r\n self.run_command(cmd)\r\n File \"C:\\Python26\\lib\\distutils\\dist.py\", line 995, in run_command\r\n cmd_obj.run()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\install.py\", line 73, in run\r\n self.do_egg_install()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\install.py\", line 93, in do_egg_install\r\n self.run_command('bdist_egg')\r\n File \"C:\\Python26\\lib\\distutils\\cmd.py\", line 333, in run_command\r\n self.distribution.run_command(command)\r\n File \"C:\\Python26\\lib\\distutils\\dist.py\", line 995, in run_command\r\n cmd_obj.run()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\bdist_egg.py\", line 167, in run\r\n self.run_command(\"egg_info\")\r\n File \"C:\\Python26\\lib\\distutils\\cmd.py\", line 333, in run_command\r\n self.distribution.run_command(command)\r\n File \"C:\\Python26\\lib\\distutils\\dist.py\", line 995, in run_command\r\n cmd_obj.run()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\egg_info.py\", line 179, in run\r\n self.find_sources()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\egg_info.py\", line 254, in find_sources\r\n mm.run()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\egg_info.py\", line 310, in run\r\n self.read_template()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\sdist.py\", line 204, in read_template\r\n _sdist.read_template(self)\r\n File \"C:\\Python26\\lib\\distutils\\command\\sdist.py\", line 336, in read_template\r\n self.filelist.process_template_line(line)\r\n File \"C:\\Python26\\lib\\distutils\\filelist.py\", line 129, in process_template_line\r\n (action, patterns, dir, dir_pattern) = self._parse_template_line(line)\r\n File \"C:\\Python26\\lib\\distutils\\filelist.py\", line 112, in _parse_template_line\r\n dir_pattern = convert_path(words[1])\r\n File \"C:\\Python26\\lib\\distutils\\util.py\", line 201, in convert_path\r\n raise ValueError, \"path '%s' cannot end with '/'\" % pathname\r\nValueError: path 'doc/.build/' cannot end with '/'","title":"Modified MANIFEST.in. It wasn't installing on Windows","updated_at":"2011/04/23 07:18:49 -0700","diff_url":"https://github.com/ask/python-github2/pull/40.diff","patch_url":"https://github.com/ask/python-github2/pull/40.patch","pull_request_url":"https://github.com/ask/python-github2/pull/40","closed_at":"2011/04/23 04:53:48 -0700","html_url":"https://github.com/ask/python-github2/issues/40","user":"broderboy","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":38.0,"number":38,"votes":0,"created_at":"2011/04/17 17:11:51 -0700","comments":9,"body":"e.g when I am using the call \r\n\r\nGithub(access_token=oauthtoken) -- it seems to work fine for all calls expect, the following call \r\n\r\nproject being repo.project\r\n\r\ncommits += self.client.commits.list(str(project))\r\n\r\n\r\nI get the follow exception\r\n\r\nunexpected response from github.com 401: '{\"error\":\"Couldn\\'t authenticate you\"}'\r\n\r\nI managed to work around this issue by creating the self.client using the following instantiation \r\n\r\nGithub(self.oauthtoken)\r\n\r\nIt probably not being pass down the OAuth token on the particular call. \r\n","title":"OAuth token isn't being passed down","updated_at":"2011/05/11 09:48:20 -0700","closed_at":"2011/05/11 09:48:20 -0700","html_url":"https://github.com/ask/python-github2/issues/38","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"2c8089a78bf15883302e9ac5b4367895","position":37.0,"number":37,"votes":0,"created_at":"2011/04/14 17:19:33 -0700","comments":2,"body":"The current [Commits API](http://develop.github.com/p/commits.html) specifies a user_id in the pathspec:\n\n`commits/list/:user_id/:repository/:branch`\n`commits/list/:user_id/:repository/:branch/*path`\n\nThis parameter was not present in the `list` or `show` methods of the `Commits` class, consequently requesting commits was not possible (as far as I could tell)\n\n","title":"added user_id to commits path spec","updated_at":"2011/04/15 05:13:56 -0700","diff_url":"https://github.com/ask/python-github2/pull/37.diff","patch_url":"https://github.com/ask/python-github2/pull/37.patch","pull_request_url":"https://github.com/ask/python-github2/pull/37","closed_at":"2011/04/15 05:13:56 -0700","html_url":"https://github.com/ask/python-github2/issues/37","user":"loganlinn","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":36.0,"number":36,"votes":0,"created_at":"2011/04/12 03:47:52 -0700","comments":2,"body":"@ask and interested others,\r\n\r\nYou said to treat the repo like home, but I just wanted to run this past you in case you have objections.\r\n\r\nThe changes are quite invasive. It strips out the examples from `README.rst`(it is a bit cluttered IMO), reformats many docstrings for use with Sphinx's [autodoc](http://sphinx.pocoo.org/tutorial.html#autodoc), fiddles with the cool `Attribute` docstring generator, etc.\r\n\r\nOpinions? If part of it is okay, say which part and I'll remove/rework the rest. If you hate it all just say so, it won't hurt my feelings I promise ;)\r\n\r\nThanks,\r\n\r\nJames","title":"Using Sphinx doc for documentation","updated_at":"2011/04/13 13:06:16 -0700","diff_url":"https://github.com/ask/python-github2/pull/36.diff","patch_url":"https://github.com/ask/python-github2/pull/36.patch","pull_request_url":"https://github.com/ask/python-github2/pull/36","closed_at":"2011/04/13 13:01:44 -0700","html_url":"https://github.com/ask/python-github2/issues/36","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"1ee6b40a1acbcc00eb32e306e0e94037","position":35.0,"number":35,"votes":0,"created_at":"2011/04/10 18:02:50 -0700","comments":1,"body":"I added a function to get all blobs as a dictionary between the path & sha for a given tree. ","title":"Get All Blobs","updated_at":"2011/04/11 02:38:53 -0700","diff_url":"https://github.com/ask/python-github2/pull/35.diff","patch_url":"https://github.com/ask/python-github2/pull/35.patch","pull_request_url":"https://github.com/ask/python-github2/pull/35","closed_at":"2011/04/11 02:38:53 -0700","html_url":"https://github.com/ask/python-github2/issues/35","user":"surajram","labels":[],"state":"closed"},{"gravatar_id":"3aa27c0add742f542848af3b8a9e980c","position":34.0,"number":34,"votes":0,"created_at":"2011/03/26 10:57:22 -0700","comments":4,"body":"e.g. github.repos.list() specifies following behaviour: \"If no user is given, repositoris for the currently logged in user are returned.\"\r\n\r\nHowever this works only if using username for authentication but with OAuth2 access token following error is thrown:\r\n\r\nRuntimeError: unexpected response from github.com 401: '{\"error\":\"api route not recognized\"}'\r\n\r\nWorkaround for this is to request current username using following pattern:\r\n\r\nuser = github.users.show(\"\")\r\n\r\nand then use returned username as an parameter for list(). \r\n\r\nI guess we need to populate the internal username in a constructor via show API when username is not given or is there better solution?\r\n\r\n\r\n\r\n\r\n\r\n","title":"Getting \"currently logged in user data\" when using access_token","updated_at":"2011/05/10 06:57:46 -0700","diff_url":"https://github.com/ask/python-github2/pull/34.diff","patch_url":"https://github.com/ask/python-github2/pull/34.patch","pull_request_url":"https://github.com/ask/python-github2/pull/34","closed_at":"2011/05/10 06:57:46 -0700","html_url":"https://github.com/ask/python-github2/issues/34","user":"pmuilu","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":33.0,"number":33,"votes":0,"created_at":"2011/03/03 09:26:59 -0800","comments":7,"body":"A few months ago when playing with `python-github2` I switched to using `httplib2` for network requests. I hadn't really planned on opening a pull request, but I've been using it as my full time branch so I've changed my mind :).\r\n\r\nThe benefits of `httplib2` are the (imo) simplification of the request handling, built-in caching support with effortless `ETag` handling and free HTTP compression support should GitHub enable it at some point..\r\n\r\nI'm just curious how you guys feel about it. Maybe there are some changes to be made to make it pullable, maybe you just don't like the idea of another external dependency or .\r\n\r\nThanks,\r\n\r\nJames","title":"RFC: httplib2 usage","updated_at":"2011/04/11 02:41:30 -0700","diff_url":"https://github.com/ask/python-github2/pull/33.diff","patch_url":"https://github.com/ask/python-github2/pull/33.patch","pull_request_url":"https://github.com/ask/python-github2/pull/33","closed_at":"2011/04/11 02:41:30 -0700","html_url":"https://github.com/ask/python-github2/issues/33","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"1dc7387cedba30b9a3d12792084b4b4a","position":32.0,"number":32,"votes":0,"created_at":"2011/02/19 07:18:36 -0800","comments":1,"body":"Added two operations in the issues module: list labels and search issues by label.","title":"List labels and Search Issues by Label","updated_at":"2011/04/09 10:25:23 -0700","diff_url":"https://github.com/ask/python-github2/pull/32.diff","patch_url":"https://github.com/ask/python-github2/pull/32.patch","pull_request_url":"https://github.com/ask/python-github2/pull/32","closed_at":"2011/04/09 10:25:23 -0700","html_url":"https://github.com/ask/python-github2/issues/32","user":"bartdag","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":31.0,"number":31,"votes":0,"created_at":"2011/02/16 06:44:12 -0800","comments":1,"body":"Adding or removing labels has recently broken, this small change to force `POST` fixes it.\r\n\r\nThanks,\r\n\r\nJames","title":"Fix issue label addition/removal.","updated_at":"2011/04/09 10:36:11 -0700","diff_url":"https://github.com/ask/python-github2/pull/31.diff","patch_url":"https://github.com/ask/python-github2/pull/31.patch","pull_request_url":"https://github.com/ask/python-github2/pull/31","closed_at":"2011/04/09 10:36:11 -0700","html_url":"https://github.com/ask/python-github2/issues/31","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"377e59815b7b7d6dfc23c808f0d07f05","position":30.0,"number":30,"votes":1,"created_at":"2011/02/15 12:30:09 -0800","comments":1,"body":"From:\r\n\r\nhttp://develop.github.com/p/repo.html\r\n\r\nrepos.delete returns a dictionary with a delete_token key. This key then needs to be POST'd back to the same URL. The repos.delete method as it is does nothing with this key and does not accept a post_data dictionary as a keyword argument.","title":"repos.delete not functional","updated_at":"2011/04/13 13:01:43 -0700","closed_at":"2011/04/13 13:01:43 -0700","html_url":"https://github.com/ask/python-github2/issues/30","user":"sxalexander","labels":[],"state":"closed"},{"gravatar_id":"d7ed4dc5ad80ffecb3aed70fc7190e52","position":29.0,"number":29,"votes":0,"created_at":"2011/01/25 07:13:12 -0800","comments":1,"body":"Steps to reproduce:\n\nfrom github2.client import Github\nclient = Github(username='', api_token='', requests_per_second=1)\npull_req = client.request.get('pulls', 'username/repo_name', '')\n\nThis works fine for most pull requests. However, if a commit associated with the pull request has 'line notes', it seems to fail.\nAs an example, you can try this on one of my pull requests:\n\npull_req = client.request.get('pulls', 'larsbutler/roundabout', '1')","title":"\"Github Server Error\" when trying to get pull requests which include line notes","updated_at":"2011/01/25 08:16:09 -0800","closed_at":"2011/01/25 08:16:09 -0800","html_url":"https://github.com/ask/python-github2/issues/29","user":"larsbutler","labels":[],"state":"closed"},{"gravatar_id":"4174216c1dc0f223ce608d5a3b66a585","position":28.0,"number":28,"votes":0,"created_at":"2010/12/30 10:28:59 -0800","comments":8,"body":"This implements the github API pull requests functionality. ","title":"Pull requests","updated_at":"2011/05/29 08:27:58 -0700","diff_url":"https://github.com/ask/python-github2/pull/28.diff","patch_url":"https://github.com/ask/python-github2/pull/28.patch","pull_request_url":"https://github.com/ask/python-github2/pull/28","closed_at":"2011/05/29 08:27:23 -0700","html_url":"https://github.com/ask/python-github2/issues/28","user":"ChristopherMacGown","labels":[],"state":"closed"},{"gravatar_id":"cf04727870245c17f455fb05b25f9f8e","position":27.0,"number":27,"votes":0,"created_at":"2010/12/21 12:37:06 -0800","comments":0,"body":"The URL wasn't escaped properly when labels included a space \"This is a label\" during the add_label request.","title":"Failed to add a label with a space to an issue ","updated_at":"2011/04/09 09:47:50 -0700","diff_url":"https://github.com/ask/python-github2/pull/27.diff","patch_url":"https://github.com/ask/python-github2/pull/27.patch","pull_request_url":"https://github.com/ask/python-github2/pull/27","closed_at":"2011/04/09 09:47:50 -0700","html_url":"https://github.com/ask/python-github2/issues/27","user":"jweinberg","labels":[],"state":"closed"},{"gravatar_id":"4174216c1dc0f223ce608d5a3b66a585","position":26.0,"number":26,"votes":0,"created_at":"2010/12/16 13:59:45 -0800","comments":1,"body":"","title":"Patch to add organizations and teams.","updated_at":"2010/12/30 10:30:53 -0800","diff_url":"https://github.com/ask/python-github2/pull/26.diff","patch_url":"https://github.com/ask/python-github2/pull/26.patch","pull_request_url":"https://github.com/ask/python-github2/pull/26","closed_at":"2010/12/30 10:30:53 -0800","html_url":"https://github.com/ask/python-github2/issues/26","user":"ChristopherMacGown","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":25.0,"number":25,"votes":0,"created_at":"2010/12/10 23:18:57 -0800","comments":1,"body":"As [nvie](http://github.com/nvie) rightly pointed out in [my other pull request](https://github.com/ask/python-github2/pull/14#issuecomment-601878), I hadn't added any documentation for my changes... here that is.\r\n\r\nI've also fixed issue searches for multiple words. I only spotted the problem as a result of adding the entry to `README.rst`, so I should probably learn something from that ;)\r\n\r\nFinally, there is some slight reformatting of the documentation. *Most* of the text was wrapped at ~80 characters and code samples indented 4 spaces, the [final commit](https://github.com/JNRowe/python-github2/commit/ff9132f9054bcc3827c94fd927c30cf257d84954) just makes that consistent across the rest of the documentation. I realise that may be controversial, but wrapped or not wrapped it should at least be consistent.\r\n\r\nThanks,\r\n\r\nJames","title":"Fix for issue searching and documentation updates.","updated_at":"2010/12/12 23:27:36 -0800","diff_url":"https://github.com/ask/python-github2/pull/25.diff","patch_url":"https://github.com/ask/python-github2/pull/25.patch","pull_request_url":"https://github.com/ask/python-github2/pull/25","closed_at":"2010/12/12 23:27:36 -0800","html_url":"https://github.com/ask/python-github2/issues/25","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","position":23.0,"number":23,"votes":0,"created_at":"2010/12/08 00:17:49 -0800","comments":4,"body":"See the docs at http://develop.github.com/p/orgs.html","title":"Add support for the new Organizations API","updated_at":"2011/05/10 06:53:12 -0700","closed_at":"2011/05/10 06:12:12 -0700","html_url":"https://github.com/ask/python-github2/issues/23","user":"nvie","labels":[],"state":"closed"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","position":22.0,"number":22,"votes":0,"created_at":"2010/12/06 21:28:03 -0800","comments":0,"body":"Hi Ask,\r\n\r\nI added support for authenticating using Github's OAuth service. When you do this, you get an access_token, which you can now use instead of the username/api_token combination. You pass it in to the Github constructor like this:\r\n\r\n github = Github(access_token=\"...\")\r\n\r\nIt puts the access_token on the GET request, like described in the third bullet under [Web Application Flow](https://gist.github.com/419219).\r\n\r\nIts use is documented in the README file.\r\n\r\nCheers,\r\nVincent\r\n","title":"Added support for Github's OAuth-based URL requests","updated_at":"2010/12/08 00:16:25 -0800","diff_url":"https://github.com/ask/python-github2/pull/22.diff","patch_url":"https://github.com/ask/python-github2/pull/22.patch","pull_request_url":"https://github.com/ask/python-github2/pull/22","closed_at":"2010/12/08 00:16:25 -0800","html_url":"https://github.com/ask/python-github2/issues/22","user":"nvie","labels":[],"state":"closed"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","position":21.0,"number":21,"votes":0,"created_at":"2010/12/06 13:10:09 -0800","comments":1,"body":"Hi Ask,\r\n\r\nToday, I commited several patches. First of all, I added support for authenticating using `Github(access_token=\"...\")` GET requests instead of `Github(username=\"foo\", api_token=\"...\")` POST requests. This is the way Github API v2 URLs need to be called when using their (experimental) OAuth model.\r\n\r\nFurthermore, while I was testing this, the Github API seems to have changed the format of all dates to be nice UTC dates with timezone info. This makes the special conversion hoops and tricks unnecessary, so I removed them. For safety, I kept the \"flexible date conversion function lookup\" construct around, but maybe this could be removed as a whole. I'll leave this judgement up to you.\r\n\r\nHave a blast!\r\n\r\nCheers,\r\nVincent\r\n","title":"Add support for OAuth URLs, and a fix for date format","updated_at":"2010/12/06 21:28:42 -0800","diff_url":"https://github.com/ask/python-github2/pull/21.diff","patch_url":"https://github.com/ask/python-github2/pull/21.patch","pull_request_url":"https://github.com/ask/python-github2/pull/21","closed_at":"2010/12/06 21:28:42 -0800","html_url":"https://github.com/ask/python-github2/issues/21","user":"nvie","labels":[],"state":"closed"},{"gravatar_id":"9de3f3969367fffe2051c2b405b79810","position":20.0,"number":20,"votes":0,"created_at":"2010/11/25 16:07:26 -0800","comments":1,"body":"http://develop.github.com/p/repo.html:\r\n\r\n\"To get a list of repos you can push to that are not your own, GET\r\n\r\nrepos/pushable\"\r\n\r\nI was surprised not to find this, so I added it.","title":"Added github.repos.pushable() as described in the API documentation.","updated_at":"2010/11/26 13:37:12 -0800","diff_url":"https://github.com/ask/python-github2/pull/20.diff","patch_url":"https://github.com/ask/python-github2/pull/20.patch","pull_request_url":"https://github.com/ask/python-github2/pull/20","closed_at":"2010/11/26 13:37:12 -0800","html_url":"https://github.com/ask/python-github2/issues/20","user":"johl","labels":[],"state":"closed"},{"gravatar_id":"f3794e603ef53b0513ab45b6565ee457","position":19.0,"number":19,"votes":0,"created_at":"2010/11/19 21:23:56 -0800","comments":5,"body":"I realized I didn't include fractions of a second in my earlier api-limits change. This one does. \r\n\r\nThis pull includes my commits from repo-project as well.","title":"Api limits","updated_at":"2010/11/26 13:25:25 -0800","diff_url":"https://github.com/ask/python-github2/pull/19.diff","patch_url":"https://github.com/ask/python-github2/pull/19.patch","pull_request_url":"https://github.com/ask/python-github2/pull/19","closed_at":"2010/11/26 13:25:25 -0800","html_url":"https://github.com/ask/python-github2/issues/19","user":"jdunck","labels":[],"state":"closed"},{"gravatar_id":"f3794e603ef53b0513ab45b6565ee457","position":18.0,"number":18,"votes":0,"created_at":"2010/11/19 21:00:10 -0800","comments":0,"body":"Hey Ask, I added a Repo.project property - in my client code, I'm fairly often having to pass the project string to methods, and writing owner+'/'+name is getting boring. :-)","title":"Repo project","updated_at":"2010/11/20 12:08:27 -0800","diff_url":"https://github.com/ask/python-github2/pull/18.diff","patch_url":"https://github.com/ask/python-github2/pull/18.patch","pull_request_url":"https://github.com/ask/python-github2/pull/18","closed_at":"2010/11/20 12:08:27 -0800","html_url":"https://github.com/ask/python-github2/issues/18","user":"jdunck","labels":[],"state":"closed"},{"gravatar_id":"ad448ae5b261e252ddaeeccf5c69a4ba","position":17.0,"number":17,"votes":1,"created_at":"2010/11/12 04:14:24 -0800","comments":1,"body":"This is very useful and provided by the underlying api and I would like to use it for my cmd line tool - https://github.com/kashifrazzaqui/github-issues\r\n\r\nIf you will please add this.\r\nThanks.","title":"List does not allow filteration by label","updated_at":"2011/04/09 10:51:59 -0700","closed_at":"2011/04/09 10:51:59 -0700","html_url":"https://github.com/ask/python-github2/issues/17","user":"kashifrazzaqui","labels":[],"state":"closed"},{"gravatar_id":"67e05420d4dd3492097aeb77f44f7867","position":16.0,"number":16,"votes":0,"created_at":"2010/11/04 17:26:33 -0700","comments":0,"body":"Fixes https://github.com/ask/python-github2/issues#issue/15\r\n\r\nThis was caused by github switching to HTTPS. Is in production at http://djangopackages.com","title":"Changed over to HTTPS","updated_at":"2010/11/24 06:10:48 -0800","diff_url":"https://github.com/ask/python-github2/pull/16.diff","patch_url":"https://github.com/ask/python-github2/pull/16.patch","pull_request_url":"https://github.com/ask/python-github2/pull/16","closed_at":"2010/11/24 06:10:48 -0800","html_url":"https://github.com/ask/python-github2/issues/16","user":"pydanny","labels":[],"state":"closed"},{"gravatar_id":"67e05420d4dd3492097aeb77f44f7867","position":15.0,"number":15,"votes":0,"created_at":"2010/11/04 16:56:50 -0700","comments":1,"body":"The API seems to work when I do curl. But it breaks via python-github2. \r\n\r\n >>> gh.commits.list(\"mojombo/grit\", \"master\")\r\n Traceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/commits.py\", line 31, in list\r\n filter=\"commits\", datatype=Commit)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/core.py\", line 60, in get_values\r\n values = self.make_request(*args, **kwargs)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/core.py\", line 43, in make_request\r\n response = self.request.get(self.domain, command, *args)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/request.py\", line 53, in get\r\n return self.make_request(\"/\".join(path_components))\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/request.py\", line 63, in make_request\r\n return self.raw_request(url, extra_post_data, method=method)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/request.py\", line 91, in raw_request\r\n json = simplejson.loads(response_text)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/lib/python2.6/site-packages/simplejson/__init__.py\", line 384, in loads\r\n return _default_decoder.decode(s)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/lib/python2.6/site-packages/simplejson/decoder.py\", line 402, in decode\r\n obj, end = self.raw_decode(s, idx=_w(s, 0).end())\r\n File \"/Users/pydanny/projects/djangopackages/envdp/lib/python2.6/site-packages/simplejson/decoder.py\", line 420, in raw_decode\r\n raise JSONDecodeError(\"No JSON object could be decoded\", s, idx)\r\n JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)","title":"commits API is broken","updated_at":"2010/11/04 17:27:00 -0700","closed_at":"2010/11/04 17:27:00 -0700","html_url":"https://github.com/ask/python-github2/issues/15","user":"pydanny","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":14.0,"number":14,"votes":0,"created_at":"2010/11/02 13:17:42 -0700","comments":2,"body":"Hi, \r\n\r\nJust a couple of small commits to fix minor problems I've found, and add support for some missing issues features. If you prefer to receive changes in a different way, please just say and I'll rework these(and any future ones) to fit.\r\n\r\nI'll take this opportunity to say thanks for releasing this package, I've found it very useful when playing with the github API.\r\n\r\nThanks,\r\n\r\nJames.\r\n","title":"Small fixes and more support for issues","updated_at":"2010/12/09 22:41:52 -0800","diff_url":"https://github.com/ask/python-github2/pull/14.diff","patch_url":"https://github.com/ask/python-github2/pull/14.patch","pull_request_url":"https://github.com/ask/python-github2/pull/14","closed_at":"2010/12/10 06:32:31 -0800","html_url":"https://github.com/ask/python-github2/issues/14","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"b4f902096ea2ccfce71443d1d8fee5b3","position":13.0,"number":13,"votes":0,"created_at":"2010/10/20 09:38:43 -0700","comments":0,"body":"I added some more fields that are in the API but not on github2 Repositories:\r\n\r\n- created_at\r\n- pushed_at\r\n- has_wiki\r\n- has_issues\r\n- has_downloads","title":"More information on Repository","updated_at":"2010/10/29 03:23:50 -0700","diff_url":"https://github.com/ask/python-github2/pull/13.diff","patch_url":"https://github.com/ask/python-github2/pull/13.patch","pull_request_url":"https://github.com/ask/python-github2/pull/13","closed_at":"2010/10/29 03:23:50 -0700","html_url":"https://github.com/ask/python-github2/issues/13","user":"ojii","labels":[],"state":"closed"},{"gravatar_id":"4053d6caab18829c4e8d393b6afa8ad8","position":12.0,"number":12,"votes":0,"created_at":"2010/10/15 15:45:16 -0700","comments":1,"body":".. this directory is also used by the `pastedeploy` package\r\nhttp://twitter.com/ActiveState/status/27484677815\r\nPut it in site-packages/github2/tests instead.\r\n\r\n ~/Library/Python/2.7/bin \r\n ~/Library/Python/2.7/bin/github_manage_collaborators \r\n ~/Library/Python/2.7/lib \r\n ~/Library/Python/2.7/lib/python \r\n ~/Library/Python/2.7/lib/python/site-packages \r\n ~/Library/Python/2.7/lib/python/site-packages/github2 \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info/PKG-INFO \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info/SOURCES.txt \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info/dependency_links.txt \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info/top_level.txt \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/__init__.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/client.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/commits.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/core.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/issues.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/repositories.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/request.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/users.py \r\n ~/Library/Python/2.7/lib/python/site-packages/tests \r\n ~/Library/Python/2.7/lib/python/site-packages/tests/__init__.py \r\n ~/Library/Python/2.7/lib/python/site-packages/tests/unit.py ","title":"Avoiding polluting site-packages/tests/ directory","updated_at":"2010/12/09 22:39:34 -0800","closed_at":"2010/12/09 22:39:34 -0800","html_url":"https://github.com/ask/python-github2/issues/12","user":"srid","labels":[],"state":"closed"},{"gravatar_id":"9bfcdf9a72021d081a4cebf69a49ada8","position":11.0,"number":11,"votes":0,"created_at":"2010/10/15 04:42:12 -0700","comments":1,"body":"Python's timedelta did not have a 'total_seconds' method before python 2.7. This patches calculates seconds as documented at http://docs.python.org/library/datetime.html#datetime.timedelta.total_seconds.\n\nThis makes github2 compatible with python2.6 at least.\n\nPatch here: http://gist.github.com/628061","title":"Incompatibility for python 2.6: timedelta total_seconds","updated_at":"2011/04/13 13:06:54 -0700","closed_at":"2011/04/13 13:06:54 -0700","html_url":"https://github.com/ask/python-github2/issues/11","user":"arthur-debert","labels":[],"state":"closed"},{"gravatar_id":"f3794e603ef53b0513ab45b6565ee457","position":10.0,"number":10,"votes":0,"created_at":"2010/09/20 21:32:49 -0700","comments":1,"body":"I added a param to the Github class which enforces rate limits by sleeping the thread if requests are occurring too fast.\r\n\r\nIt's backwards compatible because delays only happen if requests_per_second is passed in. Includes a test, some docstrings, and an updated README.\r\n","title":"Api limits","updated_at":"2010/09/20 22:55:16 -0700","diff_url":"https://github.com/ask/python-github2/pull/10.diff","patch_url":"https://github.com/ask/python-github2/pull/10.patch","pull_request_url":"https://github.com/ask/python-github2/pull/10","closed_at":"2010/09/21 05:55:06 -0700","html_url":"https://github.com/ask/python-github2/issues/10","user":"jdunck","labels":[],"state":"closed"},{"gravatar_id":"5b45540ae377ec54a071f313b7193a27","position":9.0,"number":9,"votes":0,"created_at":"2010/07/28 12:56:51 -0700","comments":2,"body":" Traceback (most recent call last):\r\n File \"migrate_to_github.py\", line 74, in \r\n gh = Github()\r\n TypeError: __init__() takes at least 3 arguments (1 given)\r\n","title":"Doesn't support unauthenticated session","updated_at":"2011/04/18 07:04:50 -0700","closed_at":"2011/04/18 07:04:50 -0700","html_url":"https://github.com/ask/python-github2/issues/9","user":"dabrahams","labels":[],"state":"closed"},{"gravatar_id":"71c4e8223f5bddfbcce0607d387d2125","position":8.0,"number":8,"votes":1,"created_at":"2010/06/20 06:13:37 -0700","comments":1,"body":"There is a cool new way to do Github authentication: http://github.com/blog/656-github-oauth2-support","title":"support for the new OAuth2 authentication","updated_at":"2011/04/26 06:31:50 -0700","closed_at":"2011/04/26 06:31:50 -0700","html_url":"https://github.com/ask/python-github2/issues/8","user":"tarpas","labels":[],"state":"closed"},{"gravatar_id":"7ea0cc75793eb2b1ada4abc953a41592","position":7.0,"number":7,"votes":0,"created_at":"2010/05/26 17:08:41 -0700","comments":3,"body":"Python 2.6 includes simplejson (renaming to just json), removing the need for the external dep. To work on 2.5 and 2.6, use try:import:\r\nhttp://github.com/adamv/python-github2/commit/5b2f09d89420aac0d071522b3fbed9b026af6def\r\n","title":"Use json instead of simplejson on Python 2.6","updated_at":"2011/04/09 10:46:22 -0700","closed_at":"2011/04/09 10:46:22 -0700","html_url":"https://github.com/ask/python-github2/issues/7","user":"adamv","labels":[],"state":"closed"},{"gravatar_id":"7ea0cc75793eb2b1ada4abc953a41592","position":6.0,"number":6,"votes":0,"created_at":"2010/05/25 21:59:37 -0700","comments":2,"body":"An object's __repr__ in Python 2.x is required to be ASCII. Various objects in this API return unicode values, as unicode is returned from titles, etc. from the web calls, and those are used in __repr__.\r\n\r\nIn my particular case, I got an error printing Issues that happened to contain non-ASCII characters.\r\n\r\nI'll probably add a commit to this bug tomorrow/later.","title":"__repr__ should return ASCII on Python 2.x","updated_at":"2010/12/08 19:46:28 -0800","closed_at":"2010/12/08 19:46:28 -0800","html_url":"https://github.com/ask/python-github2/issues/6","user":"adamv","labels":[],"state":"closed"},{"gravatar_id":"2e47ce8a038f8eaf3fe80c069e380814","position":4.0,"number":4,"votes":0,"created_at":"2010/04/17 17:24:29 -0700","comments":1,"body":"This package isn't on PyPi near as I can tell.\r\n\r\n* http://pypi.python.org/pypi/github2 \r\n* http://pypi.python.org/pypi/python-github2\r\n\r\nResponse from easy_install:\r\nNo local packages or download links found for python-github2","title":"Not installable via easy_install","updated_at":"2010/04/19 02:26:01 -0700","closed_at":"2010/04/19 02:26:01 -0700","html_url":"https://github.com/ask/python-github2/issues/4","user":"joestump","labels":[],"state":"closed"},{"gravatar_id":"d819f7576d53088db65789b9732141b3","position":3.0,"number":3,"votes":0,"created_at":"2009/11/12 21:16:20 -0800","comments":2,"body":"In your README, your import path says\r\n\r\n >>> from github.client import Github\r\n\r\nbut it should really be\r\n\r\n >>> from github2.client import Github","title":"README has improper imports","updated_at":"2009/11/13 03:32:29 -0800","closed_at":"2009/11/13 03:32:29 -0800","html_url":"https://github.com/ask/python-github2/issues/3","user":"justinlilly","labels":[],"state":"closed"},{"gravatar_id":"d819f7576d53088db65789b9732141b3","position":2.0,"number":2,"votes":0,"created_at":"2009/11/12 21:15:17 -0800","comments":1,"body":"When searching repos for django, I get an error caused by the emdash in the description of http://github.com/brosner/django \r\n\r\n Traceback: \r\n >>> github.repos.search('django')\r\n Traceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/repositories.py\", line 21, in search\r\n return self.make_request(\"search\", query, filter=\"repositories\")\r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/core.py\", line 42, in make_request\r\n response = self.request.get(self.domain, command, *args)\r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/request.py\", line 46, in get\r\n return self.make_request(\"/\".join(path_components))\r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/request.py\", line 55, in make_request\r\n return self.raw_request(url, extra_post_data)\r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/request.py\", line 71, in raw_request\r\n response_text = response.read().encode(\"utf-8\")\r\n UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 7065: ordinal not in range(128)\r\n","title":"Unicode handling error","updated_at":"2009/11/13 03:32:29 -0800","closed_at":"2009/11/13 03:32:29 -0800","html_url":"https://github.com/ask/python-github2/issues/2","user":"justinlilly","labels":[],"state":"closed"}]} \ No newline at end of file +{"issues":[{"gravatar_id":"2b3629571060965b03e885ba93c078fc","position":1.0,"number":59,"votes":0,"created_at":"2011/07/29 19:04:58 -0700","comments":2,"body":"I want to use raw_request to complete the OAuth flow, but it doesn't respond correctly unless the Accept header is correct.","title":"Fix the Accept header.","updated_at":"2011/08/15 13:03:53 -0700","diff_url":"https://github.com/ask/python-github2/pull/59.diff","patch_url":"https://github.com/ask/python-github2/pull/59.patch","pull_request_url":"https://github.com/ask/python-github2/pull/59","closed_at":"2011/08/15 13:03:53 -0700","html_url":"https://github.com/ask/python-github2/issues/59","user":"wadey","labels":[],"state":"closed"},{"gravatar_id":"68546566350063c9017dfeae5000f6b1","position":1.0,"number":57,"votes":0,"created_at":"2011/07/12 02:48:53 -0700","comments":6,"body":"I spent a good amount of time trying to figure out the proper way to call the PullRequests.create method. I'm raising a TypeError because if the user doesn't specify a title, a NoneType error will be raised later. \r\n\r\nMaybe it would be a good idea to also write an example of the call with the format for the project name. For now I've just tried to make it more obvious which project the 'project' parameter refers to.","title":"pull-requests - raise TypeError and better docs","updated_at":"2011/07/12 09:52:23 -0700","diff_url":"https://github.com/ask/python-github2/pull/57.diff","patch_url":"https://github.com/ask/python-github2/pull/57.patch","pull_request_url":"https://github.com/ask/python-github2/pull/57","closed_at":"2011/07/12 08:32:30 -0700","html_url":"https://github.com/ask/python-github2/issues/57","user":"mapleoin","labels":[],"state":"closed"},{"gravatar_id":"2d13e27bf46a6160e0bf3d455aa7fd68","position":1.0,"number":56,"votes":0,"created_at":"2011/07/09 16:50:28 -0700","comments":5,"body":"The quickstart example in the documentation fails with \r\n\r\n>>> len(github.repos.watchers(\"ask/python-github2\"))\r\nSSLHandshakeError: [Errno 1] _ssl.c:480: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed\r\n\r\nand I cannot find any information on what to do in either the error message nor the documentation.","title":"SSL certificate verify failed","updated_at":"2011/07/10 15:34:54 -0700","diff_url":"https://github.com/ask/python-github2/pull/56.diff","patch_url":"https://github.com/ask/python-github2/pull/56.patch","pull_request_url":"https://github.com/ask/python-github2/pull/56","closed_at":"2011/07/10 15:34:23 -0700","html_url":"https://github.com/ask/python-github2/issues/56","user":"ukoethe","labels":[],"state":"closed"},{"gravatar_id":"9124210529f6eb59754932c413dd3c69","position":1.0,"number":54,"votes":0,"created_at":"2011/06/29 16:05:17 -0700","comments":1,"body":"","title":"added possibility to list all repositories of certain organization","updated_at":"2011/06/30 09:43:40 -0700","diff_url":"https://github.com/ask/python-github2/pull/54.diff","patch_url":"https://github.com/ask/python-github2/pull/54.patch","pull_request_url":"https://github.com/ask/python-github2/pull/54","closed_at":"2011/06/30 09:43:40 -0700","html_url":"https://github.com/ask/python-github2/issues/54","user":"garbas","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":53.0,"number":53,"votes":0,"created_at":"2011/05/28 22:15:49 -0700","comments":2,"body":"It would make more sense, and be easy to filter wanted data, if debug info was handled with the `logging` module. Side effect being the output will change significantly, but does it matter for debugging output anyway?","title":"Use logging for debug information.","updated_at":"2011/06/20 09:43:44 -0700","closed_at":"2011/06/20 09:43:44 -0700","html_url":"https://github.com/ask/python-github2/issues/53","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":52.0,"number":52,"votes":0,"created_at":"2011/05/28 02:03:37 -0700","comments":0,"body":"\nSee [this bug](https://github.com/ask/python-github2/issues/51#issuecomment-1253464)","title":"Document purpose, and use, of ``debug`` attributes.","updated_at":"2011/05/28 06:40:00 -0700","closed_at":"2011/05/28 06:40:00 -0700","html_url":"https://github.com/ask/python-github2/issues/52","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":51.0,"number":51,"votes":0,"created_at":"2011/05/28 01:09:46 -0700","comments":14,"body":"```pycon \r\n>>> github.repos.watch(\"schacon/grit\")\r\nTraceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/repositories.py\", line 69, in watch\r\n return self.make_request(\"watch\", project)\r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/core.py\", line 58, in make_request\r\n response = self.request.get(self.domain, command, *args)\r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 70, in get\r\n return self.make_request(\"/\".join(path_components))\r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 89, in make_request\r\n result = self.raw_request(url, extra_post_data, method=method)\r\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 113, in raw_request\r\n response.status, content))\r\nRuntimeError: unexpected response from github.com 401: '{\"error\":\"invalid repository to watch\"}'\r\n\r\n```\r\n\r\nI can't seem to watch that repository. I used the OAuth key to get the github object. ","title":"Watching repositories doesn't work","updated_at":"2011/06/02 07:57:47 -0700","closed_at":"2011/05/28 20:30:11 -0700","html_url":"https://github.com/ask/python-github2/issues/51","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":50.0,"number":50,"votes":0,"created_at":"2011/05/23 18:05:57 -0700","comments":2,"body":"","title":"Fixing the init of the proxy code.","updated_at":"2011/05/23 21:09:45 -0700","diff_url":"https://github.com/ask/python-github2/pull/50.diff","patch_url":"https://github.com/ask/python-github2/pull/50.patch","pull_request_url":"https://github.com/ask/python-github2/pull/50","closed_at":"2011/05/23 20:43:20 -0700","html_url":"https://github.com/ask/python-github2/issues/50","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":49.0,"number":49,"votes":0,"created_at":"2011/05/20 11:46:19 -0700","comments":8,"body":"I am was wondering if you could better document the Mocks being used for testing. I wouldn't mind writing up the test cases, if you could comment the testing code that is currently present. Increase the robustness of the project. \n\nThoughts? Even a link to the background knowledge needed to understand what you are doing. I am tried creating a couple of tests in my branch but unable to get anything but errors. \n\nMaybe a wiki describing setup and what needs to be done. ","title":"Testing Documentation/Wiki","updated_at":"2011/05/22 14:25:06 -0700","closed_at":"2011/05/22 14:25:06 -0700","html_url":"https://github.com/ask/python-github2/issues/49","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":48.0,"number":48,"votes":0,"created_at":"2011/05/19 08:40:47 -0700","comments":3,"body":"* Added basic proxy support documentation","title":"Add proxy documentation","updated_at":"2011/05/19 15:12:47 -0700","diff_url":"https://github.com/ask/python-github2/pull/48.diff","patch_url":"https://github.com/ask/python-github2/pull/48.patch","pull_request_url":"https://github.com/ask/python-github2/pull/48","closed_at":"2011/05/19 15:09:09 -0700","html_url":"https://github.com/ask/python-github2/issues/48","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":47.0,"number":47,"votes":0,"created_at":"2011/05/18 18:40:20 -0700","comments":1,"body":"Made the socks stuff optional. I wasnt able to test the extras_require portion of the setup.py (im not terribly well versed in setuptools) but i tested manually by uninstalling/reinstalling the socks lib and watching the error raised.","title":"Updated Add Proxy Support - now optional","updated_at":"2011/05/18 19:04:30 -0700","diff_url":"https://github.com/ask/python-github2/pull/47.diff","patch_url":"https://github.com/ask/python-github2/pull/47.patch","pull_request_url":"https://github.com/ask/python-github2/pull/47","closed_at":"2011/05/18 19:04:29 -0700","html_url":"https://github.com/ask/python-github2/issues/47","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":46.0,"number":46,"votes":0,"created_at":"2011/05/18 09:37:00 -0700","comments":12,"body":"Adding HTTP proxy settings to the client, as well as to the request to allow github2 to be used behind a HTTP proxy","title":"Adding HTTP Proxy support to the Request and Client","updated_at":"2011/05/23 18:06:30 -0700","diff_url":"https://github.com/ask/python-github2/pull/46.diff","patch_url":"https://github.com/ask/python-github2/pull/46.patch","pull_request_url":"https://github.com/ask/python-github2/pull/46","closed_at":"2011/05/19 07:59:05 -0700","html_url":"https://github.com/ask/python-github2/issues/46","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"2f3f68f62f5fc642f0b716b355071176","position":45.0,"number":45,"votes":0,"created_at":"2011/05/18 08:47:38 -0700","comments":1,"body":"Adding HTTP proxy settings to the client, as well as to the request to allow github2 to be used behind a HTTP proxy","title":"Adding HTTP Proxy support to the Request and Client","updated_at":"2011/05/18 09:07:34 -0700","diff_url":"https://github.com/ask/python-github2/pull/45.diff","patch_url":"https://github.com/ask/python-github2/pull/45.patch","pull_request_url":"https://github.com/ask/python-github2/pull/45","closed_at":"2011/05/18 09:07:33 -0700","html_url":"https://github.com/ask/python-github2/issues/45","user":"hub-cap","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":44.0,"number":44,"votes":0,"created_at":"2011/05/14 20:43:34 -0700","comments":13,"body":"When getting the commits for repositories that have '.' it can't seem to find the repository.\n\n``` pycon\n>>> commits += github.commits.list('kennethreitz/osxpython.org')\nTraceback (most recent call last):\n File \"\", line 1, in \n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/commits.py\", line 37, in list\n filter=\"commits\", datatype=Commit)\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/core.py\", line 75, in get_values\n values = self.make_request(*args, **kwargs)\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/core.py\", line 58, in make_request\n response = self.request.get(self.domain, command, *args)\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 70, in get\n return self.make_request(\"/\".join(path_components))\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 89, in make_request\n result = self.raw_request(url, extra_post_data, method=method)\n File \"/srv/python-environments/prologger/lib/python2.6/site-packages/github2/request.py\", line 113, in raw_request\n response.status, content))\nRuntimeError: unexpected response from github.com 404: '{\"error\":\"Not Found\"}'\n```","title":"repositories with '.' are not found","updated_at":"2011/05/26 23:46:28 -0700","closed_at":"2011/05/26 18:03:57 -0700","html_url":"https://github.com/ask/python-github2/issues/44","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"2028496e3344d92d8b3af64eb0d9e19e","position":43.0,"number":43,"votes":0,"created_at":"2011/05/09 20:51:03 -0700","comments":8,"body":"The docs are already using Sphinx. It'd be much more convenient if they were hosted.\r\n\r\nhttp://Readthedocs.org is free and sphinx powered, getting them up there should be easy.\r\n\r\nFun even.","title":"Read the Docs","updated_at":"2011/05/11 07:02:48 -0700","closed_at":"2011/05/11 06:44:44 -0700","html_url":"https://github.com/ask/python-github2/issues/43","user":"GraylinKim","labels":[],"state":"closed"},{"gravatar_id":"b7699be15e710c4be309f9d537fb252b","position":42.0,"number":42,"votes":0,"created_at":"2011/05/09 08:24:36 -0700","comments":12,"body":"This is my just running 2to3 over the library, and fixing one or two things with json. Don't know if you want or need it. I'm using it for some blogofile stuff, which just bumped to python 3 for all main development, and wanted to keep using your work with my site.","title":"Python3","updated_at":"2011/05/23 00:55:08 -0700","diff_url":"https://github.com/ask/python-github2/pull/42.diff","patch_url":"https://github.com/ask/python-github2/pull/42.patch","pull_request_url":"https://github.com/ask/python-github2/pull/42","closed_at":"2011/05/19 15:19:30 -0700","html_url":"https://github.com/ask/python-github2/issues/42","user":"goosemo","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":41.0,"number":41,"votes":0,"created_at":"2011/04/24 09:35:15 -0700","comments":3,"body":"","title":"Easy way to call tests from cli","updated_at":"2011/04/27 09:45:11 -0700","diff_url":"https://github.com/ask/python-github2/pull/41.diff","patch_url":"https://github.com/ask/python-github2/pull/41.patch","pull_request_url":"https://github.com/ask/python-github2/pull/41","closed_at":"2011/04/27 09:45:11 -0700","html_url":"https://github.com/ask/python-github2/issues/41","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"464f76c5577389c5ca29e3d7cca133d5","position":40.0,"number":40,"votes":0,"created_at":"2011/04/22 12:26:50 -0700","comments":3,"body":"https://github.com/broderboy/python-github2/commit/48d85d517b4e51652217b71b264c866caa5ca874\r\n\r\nI'm not sure why git put that as a full file change\r\nline changed: prune doc/.build\r\n\r\nThanks\r\n\r\nOriginal Error: \r\nrunning install\r\nrunning bdist_egg\r\nrunning egg_info\r\nwriting requirements to github2.egg-info\\requires.txt\r\nwriting github2.egg-info\\PKG-INFO\r\nwriting top-level names to github2.egg-info\\top_level.txt\r\nwriting dependency_links to github2.egg-info\\dependency_links.txt\r\nwriting requirements to github2.egg-info\\requires.txt\r\nwriting github2.egg-info\\PKG-INFO\r\nwriting top-level names to github2.egg-info\\top_level.txt\r\nwriting dependency_links to github2.egg-info\\dependency_links.txt\r\nreading manifest file 'github2.egg-info\\SOURCES.txt'\r\nreading manifest template 'MANIFEST.in'\r\nTraceback (most recent call last):\r\n File \".\\setup.py\", line 46, in \r\n \"Topic :: Software Development :: Libraries\",\r\n File \"C:\\Python26\\lib\\distutils\\core.py\", line 152, in setup\r\n dist.run_commands()\r\n File \"C:\\Python26\\lib\\distutils\\dist.py\", line 975, in run_commands\r\n self.run_command(cmd)\r\n File \"C:\\Python26\\lib\\distutils\\dist.py\", line 995, in run_command\r\n cmd_obj.run()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\install.py\", line 73, in run\r\n self.do_egg_install()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\install.py\", line 93, in do_egg_install\r\n self.run_command('bdist_egg')\r\n File \"C:\\Python26\\lib\\distutils\\cmd.py\", line 333, in run_command\r\n self.distribution.run_command(command)\r\n File \"C:\\Python26\\lib\\distutils\\dist.py\", line 995, in run_command\r\n cmd_obj.run()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\bdist_egg.py\", line 167, in run\r\n self.run_command(\"egg_info\")\r\n File \"C:\\Python26\\lib\\distutils\\cmd.py\", line 333, in run_command\r\n self.distribution.run_command(command)\r\n File \"C:\\Python26\\lib\\distutils\\dist.py\", line 995, in run_command\r\n cmd_obj.run()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\egg_info.py\", line 179, in run\r\n self.find_sources()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\egg_info.py\", line 254, in find_sources\r\n mm.run()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\egg_info.py\", line 310, in run\r\n self.read_template()\r\n File \"C:\\Python26\\lib\\site-packages\\distribute-0.6.10-py2.6.egg\\setuptools\\command\\sdist.py\", line 204, in read_template\r\n _sdist.read_template(self)\r\n File \"C:\\Python26\\lib\\distutils\\command\\sdist.py\", line 336, in read_template\r\n self.filelist.process_template_line(line)\r\n File \"C:\\Python26\\lib\\distutils\\filelist.py\", line 129, in process_template_line\r\n (action, patterns, dir, dir_pattern) = self._parse_template_line(line)\r\n File \"C:\\Python26\\lib\\distutils\\filelist.py\", line 112, in _parse_template_line\r\n dir_pattern = convert_path(words[1])\r\n File \"C:\\Python26\\lib\\distutils\\util.py\", line 201, in convert_path\r\n raise ValueError, \"path '%s' cannot end with '/'\" % pathname\r\nValueError: path 'doc/.build/' cannot end with '/'","title":"Modified MANIFEST.in. It wasn't installing on Windows","updated_at":"2011/04/23 07:18:49 -0700","diff_url":"https://github.com/ask/python-github2/pull/40.diff","patch_url":"https://github.com/ask/python-github2/pull/40.patch","pull_request_url":"https://github.com/ask/python-github2/pull/40","closed_at":"2011/04/23 04:53:48 -0700","html_url":"https://github.com/ask/python-github2/issues/40","user":"broderboy","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":39.0,"number":39,"votes":0,"created_at":"2011/04/18 08:25:47 -0700","comments":4,"body":"\nFeeble brainstorming session...\n\nI've just been bitten quite badly by the lack of timezone handling, the cause is the use of naive datetime objects in the 'GitHub' timezone(`America/Los_Angeles`). While processing some tasks that span the PST/PDT changeover the ordering of events is broken.\n\nOptions are:\n\n1. Leave alone and try to process the datetime objects externally, somewhat easy but not a good solution as it requires duplication in each project that requires accurate date handling\n2. Start producing non-naive datetime objects, breaks any caller who is not prepared for it.\n3. Introduce a setting to toggle naive object availability, defaulting to naive objects to maintain backwards compatibility\n\n[python-dateutil](http://labix.org/python-dateutil) makes handling option 1 quite easy, and also simplifies the handling of option 3 at the cost of another external dependency. Option 2 is just pure evil, or pure stupidity depending on point of view.\n\nOption 3 results in a parsing using something like the following entirely untested code:\n\n datetime_ = parser.parse(github_date)\n if NAIVE:\n datetime_.replace(tzinfo=None)\n return datetime_\n\nAnd similarly producing GitHub compatible date strings would require handling of naive formats with equally untested code such as:\n\n if NAIVE:\n datetime_ = datetime_.replace(tz.gettz(\"America/Los_Angeles\"))\n return datetime_.strftime(\"%Y/%m/%d %H:%M:%S %z\")","title":"Datetime timezone handling.","updated_at":"2011/06/23 02:33:57 -0700","diff_url":"https://github.com/ask/python-github2/pull/39.diff","patch_url":"https://github.com/ask/python-github2/pull/39.patch","pull_request_url":"https://github.com/ask/python-github2/pull/39","closed_at":"2011/06/23 02:33:57 -0700","html_url":"https://github.com/ask/python-github2/issues/39","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"fab591eb34c76cbd0716024ce22d4906","position":38.0,"number":38,"votes":0,"created_at":"2011/04/17 17:11:51 -0700","comments":9,"body":"e.g when I am using the call \r\n\r\nGithub(access_token=oauthtoken) -- it seems to work fine for all calls expect, the following call \r\n\r\nproject being repo.project\r\n\r\ncommits += self.client.commits.list(str(project))\r\n\r\n\r\nI get the follow exception\r\n\r\nunexpected response from github.com 401: '{\"error\":\"Couldn\\'t authenticate you\"}'\r\n\r\nI managed to work around this issue by creating the self.client using the following instantiation \r\n\r\nGithub(self.oauthtoken)\r\n\r\nIt probably not being pass down the OAuth token on the particular call. \r\n","title":"OAuth token isn't being passed down","updated_at":"2011/05/11 09:48:20 -0700","closed_at":"2011/05/11 09:48:20 -0700","html_url":"https://github.com/ask/python-github2/issues/38","user":"myusuf3","labels":[],"state":"closed"},{"gravatar_id":"2c8089a78bf15883302e9ac5b4367895","position":37.0,"number":37,"votes":0,"created_at":"2011/04/14 17:19:33 -0700","comments":2,"body":"The current [Commits API](http://develop.github.com/p/commits.html) specifies a user_id in the pathspec:\n\n`commits/list/:user_id/:repository/:branch`\n`commits/list/:user_id/:repository/:branch/*path`\n\nThis parameter was not present in the `list` or `show` methods of the `Commits` class, consequently requesting commits was not possible (as far as I could tell)\n\n","title":"added user_id to commits path spec","updated_at":"2011/04/15 05:13:56 -0700","diff_url":"https://github.com/ask/python-github2/pull/37.diff","patch_url":"https://github.com/ask/python-github2/pull/37.patch","pull_request_url":"https://github.com/ask/python-github2/pull/37","closed_at":"2011/04/15 05:13:56 -0700","html_url":"https://github.com/ask/python-github2/issues/37","user":"loganlinn","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":36.0,"number":36,"votes":0,"created_at":"2011/04/12 03:47:52 -0700","comments":2,"body":"@ask and interested others,\r\n\r\nYou said to treat the repo like home, but I just wanted to run this past you in case you have objections.\r\n\r\nThe changes are quite invasive. It strips out the examples from `README.rst`(it is a bit cluttered IMO), reformats many docstrings for use with Sphinx's [autodoc](http://sphinx.pocoo.org/tutorial.html#autodoc), fiddles with the cool `Attribute` docstring generator, etc.\r\n\r\nOpinions? If part of it is okay, say which part and I'll remove/rework the rest. If you hate it all just say so, it won't hurt my feelings I promise ;)\r\n\r\nThanks,\r\n\r\nJames","title":"Using Sphinx doc for documentation","updated_at":"2011/04/13 13:06:16 -0700","diff_url":"https://github.com/ask/python-github2/pull/36.diff","patch_url":"https://github.com/ask/python-github2/pull/36.patch","pull_request_url":"https://github.com/ask/python-github2/pull/36","closed_at":"2011/04/13 13:01:44 -0700","html_url":"https://github.com/ask/python-github2/issues/36","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"1ee6b40a1acbcc00eb32e306e0e94037","position":35.0,"number":35,"votes":0,"created_at":"2011/04/10 18:02:50 -0700","comments":1,"body":"I added a function to get all blobs as a dictionary between the path & sha for a given tree. ","title":"Get All Blobs","updated_at":"2011/04/11 02:38:53 -0700","diff_url":"https://github.com/ask/python-github2/pull/35.diff","patch_url":"https://github.com/ask/python-github2/pull/35.patch","pull_request_url":"https://github.com/ask/python-github2/pull/35","closed_at":"2011/04/11 02:38:53 -0700","html_url":"https://github.com/ask/python-github2/issues/35","user":"surajram","labels":[],"state":"closed"},{"gravatar_id":"3aa27c0add742f542848af3b8a9e980c","position":34.0,"number":34,"votes":0,"created_at":"2011/03/26 10:57:22 -0700","comments":4,"body":"e.g. github.repos.list() specifies following behaviour: \"If no user is given, repositoris for the currently logged in user are returned.\"\r\n\r\nHowever this works only if using username for authentication but with OAuth2 access token following error is thrown:\r\n\r\nRuntimeError: unexpected response from github.com 401: '{\"error\":\"api route not recognized\"}'\r\n\r\nWorkaround for this is to request current username using following pattern:\r\n\r\nuser = github.users.show(\"\")\r\n\r\nand then use returned username as an parameter for list(). \r\n\r\nI guess we need to populate the internal username in a constructor via show API when username is not given or is there better solution?\r\n\r\n\r\n\r\n\r\n\r\n","title":"Getting \"currently logged in user data\" when using access_token","updated_at":"2011/05/10 06:57:46 -0700","diff_url":"https://github.com/ask/python-github2/pull/34.diff","patch_url":"https://github.com/ask/python-github2/pull/34.patch","pull_request_url":"https://github.com/ask/python-github2/pull/34","closed_at":"2011/05/10 06:57:46 -0700","html_url":"https://github.com/ask/python-github2/issues/34","user":"pmuilu","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":33.0,"number":33,"votes":0,"created_at":"2011/03/03 09:26:59 -0800","comments":7,"body":"A few months ago when playing with `python-github2` I switched to using `httplib2` for network requests. I hadn't really planned on opening a pull request, but I've been using it as my full time branch so I've changed my mind :).\r\n\r\nThe benefits of `httplib2` are the (imo) simplification of the request handling, built-in caching support with effortless `ETag` handling and free HTTP compression support should GitHub enable it at some point..\r\n\r\nI'm just curious how you guys feel about it. Maybe there are some changes to be made to make it pullable, maybe you just don't like the idea of another external dependency or .\r\n\r\nThanks,\r\n\r\nJames","title":"RFC: httplib2 usage","updated_at":"2011/04/11 02:41:30 -0700","diff_url":"https://github.com/ask/python-github2/pull/33.diff","patch_url":"https://github.com/ask/python-github2/pull/33.patch","pull_request_url":"https://github.com/ask/python-github2/pull/33","closed_at":"2011/04/11 02:41:30 -0700","html_url":"https://github.com/ask/python-github2/issues/33","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"1dc7387cedba30b9a3d12792084b4b4a","position":32.0,"number":32,"votes":0,"created_at":"2011/02/19 07:18:36 -0800","comments":1,"body":"Added two operations in the issues module: list labels and search issues by label.","title":"List labels and Search Issues by Label","updated_at":"2011/04/09 10:25:23 -0700","diff_url":"https://github.com/ask/python-github2/pull/32.diff","patch_url":"https://github.com/ask/python-github2/pull/32.patch","pull_request_url":"https://github.com/ask/python-github2/pull/32","closed_at":"2011/04/09 10:25:23 -0700","html_url":"https://github.com/ask/python-github2/issues/32","user":"bartdag","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":31.0,"number":31,"votes":0,"created_at":"2011/02/16 06:44:12 -0800","comments":1,"body":"Adding or removing labels has recently broken, this small change to force `POST` fixes it.\r\n\r\nThanks,\r\n\r\nJames","title":"Fix issue label addition/removal.","updated_at":"2011/04/09 10:36:11 -0700","diff_url":"https://github.com/ask/python-github2/pull/31.diff","patch_url":"https://github.com/ask/python-github2/pull/31.patch","pull_request_url":"https://github.com/ask/python-github2/pull/31","closed_at":"2011/04/09 10:36:11 -0700","html_url":"https://github.com/ask/python-github2/issues/31","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"377e59815b7b7d6dfc23c808f0d07f05","position":30.0,"number":30,"votes":1,"created_at":"2011/02/15 12:30:09 -0800","comments":1,"body":"From:\r\n\r\nhttp://develop.github.com/p/repo.html\r\n\r\nrepos.delete returns a dictionary with a delete_token key. This key then needs to be POST'd back to the same URL. The repos.delete method as it is does nothing with this key and does not accept a post_data dictionary as a keyword argument.","title":"repos.delete not functional","updated_at":"2011/04/13 13:01:43 -0700","closed_at":"2011/04/13 13:01:43 -0700","html_url":"https://github.com/ask/python-github2/issues/30","user":"sxalexander","labels":[],"state":"closed"},{"gravatar_id":"d7ed4dc5ad80ffecb3aed70fc7190e52","position":29.0,"number":29,"votes":0,"created_at":"2011/01/25 07:13:12 -0800","comments":1,"body":"Steps to reproduce:\n\nfrom github2.client import Github\nclient = Github(username='', api_token='', requests_per_second=1)\npull_req = client.request.get('pulls', 'username/repo_name', '')\n\nThis works fine for most pull requests. However, if a commit associated with the pull request has 'line notes', it seems to fail.\nAs an example, you can try this on one of my pull requests:\n\npull_req = client.request.get('pulls', 'larsbutler/roundabout', '1')","title":"\"Github Server Error\" when trying to get pull requests which include line notes","updated_at":"2011/01/25 08:16:09 -0800","closed_at":"2011/01/25 08:16:09 -0800","html_url":"https://github.com/ask/python-github2/issues/29","user":"larsbutler","labels":[],"state":"closed"},{"gravatar_id":"4174216c1dc0f223ce608d5a3b66a585","position":28.0,"number":28,"votes":0,"created_at":"2010/12/30 10:28:59 -0800","comments":8,"body":"This implements the github API pull requests functionality. ","title":"Pull requests","updated_at":"2011/05/29 08:27:58 -0700","diff_url":"https://github.com/ask/python-github2/pull/28.diff","patch_url":"https://github.com/ask/python-github2/pull/28.patch","pull_request_url":"https://github.com/ask/python-github2/pull/28","closed_at":"2011/05/29 08:27:23 -0700","html_url":"https://github.com/ask/python-github2/issues/28","user":"ChristopherMacGown","labels":[],"state":"closed"},{"gravatar_id":"cf04727870245c17f455fb05b25f9f8e","position":27.0,"number":27,"votes":0,"created_at":"2010/12/21 12:37:06 -0800","comments":0,"body":"The URL wasn't escaped properly when labels included a space \"This is a label\" during the add_label request.","title":"Failed to add a label with a space to an issue ","updated_at":"2011/04/09 09:47:50 -0700","diff_url":"https://github.com/ask/python-github2/pull/27.diff","patch_url":"https://github.com/ask/python-github2/pull/27.patch","pull_request_url":"https://github.com/ask/python-github2/pull/27","closed_at":"2011/04/09 09:47:50 -0700","html_url":"https://github.com/ask/python-github2/issues/27","user":"jweinberg","labels":[],"state":"closed"},{"gravatar_id":"4174216c1dc0f223ce608d5a3b66a585","position":26.0,"number":26,"votes":0,"created_at":"2010/12/16 13:59:45 -0800","comments":1,"body":"","title":"Patch to add organizations and teams.","updated_at":"2010/12/30 10:30:53 -0800","diff_url":"https://github.com/ask/python-github2/pull/26.diff","patch_url":"https://github.com/ask/python-github2/pull/26.patch","pull_request_url":"https://github.com/ask/python-github2/pull/26","closed_at":"2010/12/30 10:30:53 -0800","html_url":"https://github.com/ask/python-github2/issues/26","user":"ChristopherMacGown","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":25.0,"number":25,"votes":0,"created_at":"2010/12/10 23:18:57 -0800","comments":1,"body":"As [nvie](http://github.com/nvie) rightly pointed out in [my other pull request](https://github.com/ask/python-github2/pull/14#issuecomment-601878), I hadn't added any documentation for my changes... here that is.\r\n\r\nI've also fixed issue searches for multiple words. I only spotted the problem as a result of adding the entry to `README.rst`, so I should probably learn something from that ;)\r\n\r\nFinally, there is some slight reformatting of the documentation. *Most* of the text was wrapped at ~80 characters and code samples indented 4 spaces, the [final commit](https://github.com/JNRowe/python-github2/commit/ff9132f9054bcc3827c94fd927c30cf257d84954) just makes that consistent across the rest of the documentation. I realise that may be controversial, but wrapped or not wrapped it should at least be consistent.\r\n\r\nThanks,\r\n\r\nJames","title":"Fix for issue searching and documentation updates.","updated_at":"2010/12/12 23:27:36 -0800","diff_url":"https://github.com/ask/python-github2/pull/25.diff","patch_url":"https://github.com/ask/python-github2/pull/25.patch","pull_request_url":"https://github.com/ask/python-github2/pull/25","closed_at":"2010/12/12 23:27:36 -0800","html_url":"https://github.com/ask/python-github2/issues/25","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","position":23.0,"number":23,"votes":0,"created_at":"2010/12/08 00:17:49 -0800","comments":4,"body":"See the docs at http://develop.github.com/p/orgs.html","title":"Add support for the new Organizations API","updated_at":"2011/05/10 06:53:12 -0700","closed_at":"2011/05/10 06:12:12 -0700","html_url":"https://github.com/ask/python-github2/issues/23","user":"nvie","labels":[],"state":"closed"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","position":22.0,"number":22,"votes":0,"created_at":"2010/12/06 21:28:03 -0800","comments":0,"body":"Hi Ask,\r\n\r\nI added support for authenticating using Github's OAuth service. When you do this, you get an access_token, which you can now use instead of the username/api_token combination. You pass it in to the Github constructor like this:\r\n\r\n github = Github(access_token=\"...\")\r\n\r\nIt puts the access_token on the GET request, like described in the third bullet under [Web Application Flow](https://gist.github.com/419219).\r\n\r\nIts use is documented in the README file.\r\n\r\nCheers,\r\nVincent\r\n","title":"Added support for Github's OAuth-based URL requests","updated_at":"2010/12/08 00:16:25 -0800","diff_url":"https://github.com/ask/python-github2/pull/22.diff","patch_url":"https://github.com/ask/python-github2/pull/22.patch","pull_request_url":"https://github.com/ask/python-github2/pull/22","closed_at":"2010/12/08 00:16:25 -0800","html_url":"https://github.com/ask/python-github2/issues/22","user":"nvie","labels":[],"state":"closed"},{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","position":21.0,"number":21,"votes":0,"created_at":"2010/12/06 13:10:09 -0800","comments":1,"body":"Hi Ask,\r\n\r\nToday, I commited several patches. First of all, I added support for authenticating using `Github(access_token=\"...\")` GET requests instead of `Github(username=\"foo\", api_token=\"...\")` POST requests. This is the way Github API v2 URLs need to be called when using their (experimental) OAuth model.\r\n\r\nFurthermore, while I was testing this, the Github API seems to have changed the format of all dates to be nice UTC dates with timezone info. This makes the special conversion hoops and tricks unnecessary, so I removed them. For safety, I kept the \"flexible date conversion function lookup\" construct around, but maybe this could be removed as a whole. I'll leave this judgement up to you.\r\n\r\nHave a blast!\r\n\r\nCheers,\r\nVincent\r\n","title":"Add support for OAuth URLs, and a fix for date format","updated_at":"2010/12/06 21:28:42 -0800","diff_url":"https://github.com/ask/python-github2/pull/21.diff","patch_url":"https://github.com/ask/python-github2/pull/21.patch","pull_request_url":"https://github.com/ask/python-github2/pull/21","closed_at":"2010/12/06 21:28:42 -0800","html_url":"https://github.com/ask/python-github2/issues/21","user":"nvie","labels":[],"state":"closed"},{"gravatar_id":"9de3f3969367fffe2051c2b405b79810","position":20.0,"number":20,"votes":0,"created_at":"2010/11/25 16:07:26 -0800","comments":1,"body":"http://develop.github.com/p/repo.html:\r\n\r\n\"To get a list of repos you can push to that are not your own, GET\r\n\r\nrepos/pushable\"\r\n\r\nI was surprised not to find this, so I added it.","title":"Added github.repos.pushable() as described in the API documentation.","updated_at":"2010/11/26 13:37:12 -0800","diff_url":"https://github.com/ask/python-github2/pull/20.diff","patch_url":"https://github.com/ask/python-github2/pull/20.patch","pull_request_url":"https://github.com/ask/python-github2/pull/20","closed_at":"2010/11/26 13:37:12 -0800","html_url":"https://github.com/ask/python-github2/issues/20","user":"johl","labels":[],"state":"closed"},{"gravatar_id":"f3794e603ef53b0513ab45b6565ee457","position":19.0,"number":19,"votes":0,"created_at":"2010/11/19 21:23:56 -0800","comments":5,"body":"I realized I didn't include fractions of a second in my earlier api-limits change. This one does. \r\n\r\nThis pull includes my commits from repo-project as well.","title":"Api limits","updated_at":"2010/11/26 13:25:25 -0800","diff_url":"https://github.com/ask/python-github2/pull/19.diff","patch_url":"https://github.com/ask/python-github2/pull/19.patch","pull_request_url":"https://github.com/ask/python-github2/pull/19","closed_at":"2010/11/26 13:25:25 -0800","html_url":"https://github.com/ask/python-github2/issues/19","user":"jdunck","labels":[],"state":"closed"},{"gravatar_id":"f3794e603ef53b0513ab45b6565ee457","position":18.0,"number":18,"votes":0,"created_at":"2010/11/19 21:00:10 -0800","comments":0,"body":"Hey Ask, I added a Repo.project property - in my client code, I'm fairly often having to pass the project string to methods, and writing owner+'/'+name is getting boring. :-)","title":"Repo project","updated_at":"2010/11/20 12:08:27 -0800","diff_url":"https://github.com/ask/python-github2/pull/18.diff","patch_url":"https://github.com/ask/python-github2/pull/18.patch","pull_request_url":"https://github.com/ask/python-github2/pull/18","closed_at":"2010/11/20 12:08:27 -0800","html_url":"https://github.com/ask/python-github2/issues/18","user":"jdunck","labels":[],"state":"closed"},{"gravatar_id":"ad448ae5b261e252ddaeeccf5c69a4ba","position":17.0,"number":17,"votes":1,"created_at":"2010/11/12 04:14:24 -0800","comments":1,"body":"This is very useful and provided by the underlying api and I would like to use it for my cmd line tool - https://github.com/kashifrazzaqui/github-issues\r\n\r\nIf you will please add this.\r\nThanks.","title":"List does not allow filteration by label","updated_at":"2011/04/09 10:51:59 -0700","closed_at":"2011/04/09 10:51:59 -0700","html_url":"https://github.com/ask/python-github2/issues/17","user":"kashifrazzaqui","labels":[],"state":"closed"},{"gravatar_id":"67e05420d4dd3492097aeb77f44f7867","position":16.0,"number":16,"votes":0,"created_at":"2010/11/04 17:26:33 -0700","comments":0,"body":"Fixes https://github.com/ask/python-github2/issues#issue/15\r\n\r\nThis was caused by github switching to HTTPS. Is in production at http://djangopackages.com","title":"Changed over to HTTPS","updated_at":"2010/11/24 06:10:48 -0800","diff_url":"https://github.com/ask/python-github2/pull/16.diff","patch_url":"https://github.com/ask/python-github2/pull/16.patch","pull_request_url":"https://github.com/ask/python-github2/pull/16","closed_at":"2010/11/24 06:10:48 -0800","html_url":"https://github.com/ask/python-github2/issues/16","user":"pydanny","labels":[],"state":"closed"},{"gravatar_id":"67e05420d4dd3492097aeb77f44f7867","position":15.0,"number":15,"votes":0,"created_at":"2010/11/04 16:56:50 -0700","comments":1,"body":"The API seems to work when I do curl. But it breaks via python-github2. \r\n\r\n >>> gh.commits.list(\"mojombo/grit\", \"master\")\r\n Traceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/commits.py\", line 31, in list\r\n filter=\"commits\", datatype=Commit)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/core.py\", line 60, in get_values\r\n values = self.make_request(*args, **kwargs)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/core.py\", line 43, in make_request\r\n response = self.request.get(self.domain, command, *args)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/request.py\", line 53, in get\r\n return self.make_request(\"/\".join(path_components))\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/request.py\", line 63, in make_request\r\n return self.raw_request(url, extra_post_data, method=method)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/src/python-github2/github2/request.py\", line 91, in raw_request\r\n json = simplejson.loads(response_text)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/lib/python2.6/site-packages/simplejson/__init__.py\", line 384, in loads\r\n return _default_decoder.decode(s)\r\n File \"/Users/pydanny/projects/djangopackages/envdp/lib/python2.6/site-packages/simplejson/decoder.py\", line 402, in decode\r\n obj, end = self.raw_decode(s, idx=_w(s, 0).end())\r\n File \"/Users/pydanny/projects/djangopackages/envdp/lib/python2.6/site-packages/simplejson/decoder.py\", line 420, in raw_decode\r\n raise JSONDecodeError(\"No JSON object could be decoded\", s, idx)\r\n JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)","title":"commits API is broken","updated_at":"2010/11/04 17:27:00 -0700","closed_at":"2010/11/04 17:27:00 -0700","html_url":"https://github.com/ask/python-github2/issues/15","user":"pydanny","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":14.0,"number":14,"votes":0,"created_at":"2010/11/02 13:17:42 -0700","comments":2,"body":"Hi, \r\n\r\nJust a couple of small commits to fix minor problems I've found, and add support for some missing issues features. If you prefer to receive changes in a different way, please just say and I'll rework these(and any future ones) to fit.\r\n\r\nI'll take this opportunity to say thanks for releasing this package, I've found it very useful when playing with the github API.\r\n\r\nThanks,\r\n\r\nJames.\r\n","title":"Small fixes and more support for issues","updated_at":"2010/12/09 22:41:52 -0800","diff_url":"https://github.com/ask/python-github2/pull/14.diff","patch_url":"https://github.com/ask/python-github2/pull/14.patch","pull_request_url":"https://github.com/ask/python-github2/pull/14","closed_at":"2010/12/10 06:32:31 -0800","html_url":"https://github.com/ask/python-github2/issues/14","user":"JNRowe","labels":[],"state":"closed"},{"gravatar_id":"b4f902096ea2ccfce71443d1d8fee5b3","position":13.0,"number":13,"votes":0,"created_at":"2010/10/20 09:38:43 -0700","comments":0,"body":"I added some more fields that are in the API but not on github2 Repositories:\r\n\r\n- created_at\r\n- pushed_at\r\n- has_wiki\r\n- has_issues\r\n- has_downloads","title":"More information on Repository","updated_at":"2010/10/29 03:23:50 -0700","diff_url":"https://github.com/ask/python-github2/pull/13.diff","patch_url":"https://github.com/ask/python-github2/pull/13.patch","pull_request_url":"https://github.com/ask/python-github2/pull/13","closed_at":"2010/10/29 03:23:50 -0700","html_url":"https://github.com/ask/python-github2/issues/13","user":"ojii","labels":[],"state":"closed"},{"gravatar_id":"4053d6caab18829c4e8d393b6afa8ad8","position":12.0,"number":12,"votes":0,"created_at":"2010/10/15 15:45:16 -0700","comments":1,"body":".. this directory is also used by the `pastedeploy` package\r\nhttp://twitter.com/ActiveState/status/27484677815\r\nPut it in site-packages/github2/tests instead.\r\n\r\n ~/Library/Python/2.7/bin \r\n ~/Library/Python/2.7/bin/github_manage_collaborators \r\n ~/Library/Python/2.7/lib \r\n ~/Library/Python/2.7/lib/python \r\n ~/Library/Python/2.7/lib/python/site-packages \r\n ~/Library/Python/2.7/lib/python/site-packages/github2 \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info/PKG-INFO \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info/SOURCES.txt \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info/dependency_links.txt \r\n ~/Library/Python/2.7/lib/python/site-packages/github2-0.1.3-py2.7.egg-info/top_level.txt \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/__init__.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/client.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/commits.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/core.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/issues.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/repositories.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/request.py \r\n ~/Library/Python/2.7/lib/python/site-packages/github2/users.py \r\n ~/Library/Python/2.7/lib/python/site-packages/tests \r\n ~/Library/Python/2.7/lib/python/site-packages/tests/__init__.py \r\n ~/Library/Python/2.7/lib/python/site-packages/tests/unit.py ","title":"Avoiding polluting site-packages/tests/ directory","updated_at":"2010/12/09 22:39:34 -0800","closed_at":"2010/12/09 22:39:34 -0800","html_url":"https://github.com/ask/python-github2/issues/12","user":"srid","labels":[],"state":"closed"},{"gravatar_id":"9bfcdf9a72021d081a4cebf69a49ada8","position":11.0,"number":11,"votes":0,"created_at":"2010/10/15 04:42:12 -0700","comments":1,"body":"Python's timedelta did not have a 'total_seconds' method before python 2.7. This patches calculates seconds as documented at http://docs.python.org/library/datetime.html#datetime.timedelta.total_seconds.\n\nThis makes github2 compatible with python2.6 at least.\n\nPatch here: http://gist.github.com/628061","title":"Incompatibility for python 2.6: timedelta total_seconds","updated_at":"2011/04/13 13:06:54 -0700","closed_at":"2011/04/13 13:06:54 -0700","html_url":"https://github.com/ask/python-github2/issues/11","user":"arthur-debert","labels":[],"state":"closed"},{"gravatar_id":"f3794e603ef53b0513ab45b6565ee457","position":10.0,"number":10,"votes":0,"created_at":"2010/09/20 21:32:49 -0700","comments":1,"body":"I added a param to the Github class which enforces rate limits by sleeping the thread if requests are occurring too fast.\r\n\r\nIt's backwards compatible because delays only happen if requests_per_second is passed in. Includes a test, some docstrings, and an updated README.\r\n","title":"Api limits","updated_at":"2010/09/20 22:55:16 -0700","diff_url":"https://github.com/ask/python-github2/pull/10.diff","patch_url":"https://github.com/ask/python-github2/pull/10.patch","pull_request_url":"https://github.com/ask/python-github2/pull/10","closed_at":"2010/09/21 05:55:06 -0700","html_url":"https://github.com/ask/python-github2/issues/10","user":"jdunck","labels":[],"state":"closed"},{"gravatar_id":"5b45540ae377ec54a071f313b7193a27","position":9.0,"number":9,"votes":0,"created_at":"2010/07/28 12:56:51 -0700","comments":2,"body":" Traceback (most recent call last):\r\n File \"migrate_to_github.py\", line 74, in \r\n gh = Github()\r\n TypeError: __init__() takes at least 3 arguments (1 given)\r\n","title":"Doesn't support unauthenticated session","updated_at":"2011/04/18 07:04:50 -0700","closed_at":"2011/04/18 07:04:50 -0700","html_url":"https://github.com/ask/python-github2/issues/9","user":"dabrahams","labels":[],"state":"closed"},{"gravatar_id":"71c4e8223f5bddfbcce0607d387d2125","position":8.0,"number":8,"votes":1,"created_at":"2010/06/20 06:13:37 -0700","comments":1,"body":"There is a cool new way to do Github authentication: http://github.com/blog/656-github-oauth2-support","title":"support for the new OAuth2 authentication","updated_at":"2011/04/26 06:31:50 -0700","closed_at":"2011/04/26 06:31:50 -0700","html_url":"https://github.com/ask/python-github2/issues/8","user":"tarpas","labels":[],"state":"closed"},{"gravatar_id":"7ea0cc75793eb2b1ada4abc953a41592","position":7.0,"number":7,"votes":0,"created_at":"2010/05/26 17:08:41 -0700","comments":3,"body":"Python 2.6 includes simplejson (renaming to just json), removing the need for the external dep. To work on 2.5 and 2.6, use try:import:\r\nhttp://github.com/adamv/python-github2/commit/5b2f09d89420aac0d071522b3fbed9b026af6def\r\n","title":"Use json instead of simplejson on Python 2.6","updated_at":"2011/04/09 10:46:22 -0700","closed_at":"2011/04/09 10:46:22 -0700","html_url":"https://github.com/ask/python-github2/issues/7","user":"adamv","labels":[],"state":"closed"},{"gravatar_id":"7ea0cc75793eb2b1ada4abc953a41592","position":6.0,"number":6,"votes":0,"created_at":"2010/05/25 21:59:37 -0700","comments":2,"body":"An object's __repr__ in Python 2.x is required to be ASCII. Various objects in this API return unicode values, as unicode is returned from titles, etc. from the web calls, and those are used in __repr__.\r\n\r\nIn my particular case, I got an error printing Issues that happened to contain non-ASCII characters.\r\n\r\nI'll probably add a commit to this bug tomorrow/later.","title":"__repr__ should return ASCII on Python 2.x","updated_at":"2010/12/08 19:46:28 -0800","closed_at":"2010/12/08 19:46:28 -0800","html_url":"https://github.com/ask/python-github2/issues/6","user":"adamv","labels":[],"state":"closed"},{"gravatar_id":"2e47ce8a038f8eaf3fe80c069e380814","position":4.0,"number":4,"votes":0,"created_at":"2010/04/17 17:24:29 -0700","comments":1,"body":"This package isn't on PyPi near as I can tell.\r\n\r\n* http://pypi.python.org/pypi/github2 \r\n* http://pypi.python.org/pypi/python-github2\r\n\r\nResponse from easy_install:\r\nNo local packages or download links found for python-github2","title":"Not installable via easy_install","updated_at":"2010/04/19 02:26:01 -0700","closed_at":"2010/04/19 02:26:01 -0700","html_url":"https://github.com/ask/python-github2/issues/4","user":"joestump","labels":[],"state":"closed"},{"gravatar_id":"d819f7576d53088db65789b9732141b3","position":3.0,"number":3,"votes":0,"created_at":"2009/11/12 21:16:20 -0800","comments":2,"body":"In your README, your import path says\r\n\r\n >>> from github.client import Github\r\n\r\nbut it should really be\r\n\r\n >>> from github2.client import Github","title":"README has improper imports","updated_at":"2009/11/13 03:32:29 -0800","closed_at":"2009/11/13 03:32:29 -0800","html_url":"https://github.com/ask/python-github2/issues/3","user":"justinlilly","labels":[],"state":"closed"},{"gravatar_id":"d819f7576d53088db65789b9732141b3","position":2.0,"number":2,"votes":0,"created_at":"2009/11/12 21:15:17 -0800","comments":1,"body":"When searching repos for django, I get an error caused by the emdash in the description of http://github.com/brosner/django \r\n\r\n Traceback: \r\n >>> github.repos.search('django')\r\n Traceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/repositories.py\", line 21, in search\r\n return self.make_request(\"search\", query, filter=\"repositories\")\r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/core.py\", line 42, in make_request\r\n response = self.request.get(self.domain, command, *args)\r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/request.py\", line 46, in get\r\n return self.make_request(\"/\".join(path_components))\r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/request.py\", line 55, in make_request\r\n return self.raw_request(url, extra_post_data)\r\n File \"/Users/jlilly/src/githubgraphs/env/lib/python2.5/site-packages/github2/request.py\", line 71, in raw_request\r\n response_text = response.read().encode(\"utf-8\")\r\n UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 7065: ordinal not in range(128)\r\n","title":"Unicode handling error","updated_at":"2009/11/13 03:32:29 -0800","closed_at":"2009/11/13 03:32:29 -0800","html_url":"https://github.com/ask/python-github2/issues/2","user":"justinlilly","labels":[],"state":"closed"},{"gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","position":1.0,"number":1,"votes":0,"created_at":"2009/04/18 13:04:09 -0700","comments":1,"body":"This to support getting raw blob/tree data as specified in http://develop.github.com/p/object.html.","title":"option to make_request so it doesn't parse the response as json.","updated_at":"2011/06/20 09:37:30 -0700","closed_at":"2011/06/20 09:37:30 -0700","html_url":"https://github.com/ask/python-github2/issues/1","user":"ask","labels":[],"state":"closed"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,issues,list,ask,python-github2,open,fe32d5f6ebc81579886964c4c353403e b/tests/data/github.com,api,v2,json,issues,list,ask,python-github2,open,fe32d5f6ebc81579886964c4c353403e index 61ad1b6..0220f62 100644 --- a/tests/data/github.com,api,v2,json,issues,list,ask,python-github2,open,fe32d5f6ebc81579886964c4c353403e +++ b/tests/data/github.com,api,v2,json,issues,list,ask,python-github2,open,fe32d5f6ebc81579886964c4c353403e @@ -1,14 +1,15 @@ status: 200 -x-ratelimit-remaining: 57 +x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/issues/list/ask/python-github2/open -x-runtime: 36ms -content-length: 4100 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 3875 +server: nginx/1.0.4 +x-runtime: 42ms x-ratelimit-limit: 60 -etag: "d4fc8ccc95a538f78b061f48e21b40e2" +etag: "d04e0fd72601ec3f5a1d0440189bd216" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:41:36 GMT +date: Thu, 25 Aug 2011 06:50:48 GMT content-type: application/json; charset=utf-8 -{"issues":[{"gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","position":1.0,"number":1,"votes":0,"created_at":"2009/04/18 13:04:09 -0700","comments":0,"body":"This to support getting raw blob/tree data as specified in http://develop.github.com/p/object.html.","title":"option to make_request so it doesn't parse the response as json.","updated_at":"2009/04/18 13:04:09 -0700","html_url":"https://github.com/ask/python-github2/issues/1","user":"ask","labels":[],"state":"open"},{"gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","position":5.0,"number":5,"votes":1,"created_at":"2010/05/18 06:10:36 -0700","comments":1,"body":"Goes without saying...","title":"This project needs tests!","updated_at":"2010/06/20 05:47:06 -0700","html_url":"https://github.com/ask/python-github2/issues/5","user":"ask","labels":[],"state":"open"},{"gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","position":24.0,"number":24,"votes":0,"created_at":"2010/12/08 23:50:26 -0800","comments":11,"body":"Hi, I added an optional 'page' argument to receive not only last 35 commits, but all others too. Think, such approach could be useful for other list operations too.","title":"Pagination support for commits.","updated_at":"2011/01/04 16:26:07 -0800","diff_url":"https://github.com/ask/python-github2/pull/24.diff","patch_url":"https://github.com/ask/python-github2/pull/24.patch","pull_request_url":"https://github.com/ask/python-github2/pull/24","html_url":"https://github.com/ask/python-github2/issues/24","user":"svetlyak40wt","labels":[],"state":"open"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":39.0,"number":39,"votes":0,"created_at":"2011/04/18 08:25:47 -0700","comments":3,"body":"\nFeeble brainstorming session...\n\nI've just been bitten quite badly by the lack of timezone handling, the cause is the use of naive datetime objects in the 'GitHub' timezone(`America/Los_Angeles`). While processing some tasks that span the PST/PDT changeover the ordering of events is broken.\n\nOptions are:\n\n1. Leave alone and try to process the datetime objects externally, somewhat easy but not a good solution as it requires duplication in each project that requires accurate date handling\n2. Start producing non-naive datetime objects, breaks any caller who is not prepared for it.\n3. Introduce a setting to toggle naive object availability, defaulting to naive objects to maintain backwards compatibility\n\n[python-dateutil](http://labix.org/python-dateutil) makes handling option 1 quite easy, and also simplifies the handling of option 3 at the cost of another external dependency. Option 2 is just pure evil, or pure stupidity depending on point of view.\n\nOption 3 results in a parsing using something like the following entirely untested code:\n\n datetime_ = parser.parse(github_date)\n if NAIVE:\n datetime_.replace(tzinfo=None)\n return datetime_\n\nAnd similarly producing GitHub compatible date strings would require handling of naive formats with equally untested code such as:\n\n if NAIVE:\n datetime_ = datetime_.replace(tz.gettz(\"America/Los_Angeles\"))\n return datetime_.strftime(\"%Y/%m/%d %H:%M:%S %z\")","title":"Datetime timezone handling.","updated_at":"2011/05/29 08:37:08 -0700","diff_url":"https://github.com/ask/python-github2/pull/39.diff","patch_url":"https://github.com/ask/python-github2/pull/39.patch","pull_request_url":"https://github.com/ask/python-github2/pull/39","html_url":"https://github.com/ask/python-github2/issues/39","user":"JNRowe","labels":[],"state":"open"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":53.0,"number":53,"votes":0,"created_at":"2011/05/28 22:15:49 -0700","comments":1,"body":"It would make more sense, and be easy to filter wanted data, if debug info was handled with the `logging` module. Side effect being the output will change significantly, but does it matter for debugging output anyway?","title":"Use logging for debug information.","updated_at":"2011/06/06 16:17:26 -0700","html_url":"https://github.com/ask/python-github2/issues/53","user":"JNRowe","labels":[],"state":"open"}]} \ No newline at end of file +{"issues":[{"gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","position":5.0,"number":5,"votes":1,"created_at":"2010/05/18 06:10:36 -0700","comments":1,"body":"Goes without saying...","title":"This project needs tests!","updated_at":"2010/06/20 05:47:06 -0700","html_url":"https://github.com/ask/python-github2/issues/5","user":"ask","labels":[],"state":"open"},{"gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","position":24.0,"number":24,"votes":0,"created_at":"2010/12/08 23:50:26 -0800","comments":11,"body":"Hi, I added an optional 'page' argument to receive not only last 35 commits, but all others too. Think, such approach could be useful for other list operations too.","title":"Pagination support for commits.","updated_at":"2011/01/04 16:26:07 -0800","diff_url":"https://github.com/ask/python-github2/pull/24.diff","patch_url":"https://github.com/ask/python-github2/pull/24.patch","pull_request_url":"https://github.com/ask/python-github2/pull/24","html_url":"https://github.com/ask/python-github2/issues/24","user":"svetlyak40wt","labels":[],"state":"open"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":1.0,"number":55,"votes":0,"created_at":"2011/06/30 09:41:09 -0700","comments":0,"body":"\nSee \"Listing Organization Memberships\" section in\nhttp://develop.github.com/p/orgs.html.","title":"Organisation repository listings should support owned/public filters.","updated_at":"2011/06/30 09:41:09 -0700","html_url":"https://github.com/ask/python-github2/issues/55","user":"JNRowe","labels":[],"state":"open"},{"gravatar_id":"390ea42c23c2c383f973abdafa24bb07","position":1.0,"number":58,"votes":0,"created_at":"2011/07/25 11:52:30 -0700","comments":3,"body":"Hi there,\r\n\r\nI was just trying to test this :\r\nhttp://packages.python.org/github2/quickstart.html\r\n\r\nAnd I got that :\r\n\r\n```bash\r\nTraceback (most recent call last):\r\n File \"\", line 1, in \r\n File \"build/bdist.macosx-10.7-intel/egg/github2/repositories.py\", line 206, in watchers\r\n File \"build/bdist.macosx-10.7-intel/egg/github2/core.py\", line 147, in make_request\r\n File \"build/bdist.macosx-10.7-intel/egg/github2/request.py\", line 96, in get\r\n File \"build/bdist.macosx-10.7-intel/egg/github2/request.py\", line 124, in make_request\r\n File \"build/bdist.macosx-10.7-intel/egg/github2/request.py\", line 142, in raw_request\r\n File \"/Library/Python/2.7/site-packages/httplib2/__init__.py\", line 1436, in request\r\n (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)\r\n File \"/Library/Python/2.7/site-packages/httplib2/__init__.py\", line 1188, in _request\r\n (response, content) = self._conn_request(conn, request_uri, method, body, headers)\r\n File \"/Library/Python/2.7/site-packages/httplib2/__init__.py\", line 1123, in _conn_request\r\n conn.connect()\r\n File \"/Library/Python/2.7/site-packages/httplib2/__init__.py\", line 890, in connect\r\n self.disable_ssl_certificate_validation, self.ca_certs)\r\n File \"/Library/Python/2.7/site-packages/httplib2/__init__.py\", line 76, in _ssl_wrap_socket\r\n cert_reqs=cert_reqs, ca_certs=ca_certs)\r\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py\", line 344, in wrap_socket\r\n ciphers=ciphers)\r\n File \"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py\", line 119, in __init__\r\n ciphers)\r\nssl.SSLError: [Errno 185090050] _ssl.c:336: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib\r\n```\r\n\r\nAny hints would be nice as the errors are totally cryptic.","title":"Python httplib2 cause error with certificate routine","updated_at":"2011/08/13 05:59:36 -0700","html_url":"https://github.com/ask/python-github2/issues/58","user":"gabrielstuff","labels":[],"state":"open"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,issues,search,ask,python-github2,closed,timezone,ca6c06a1218893c7591a54352d1dc532 b/tests/data/github.com,api,v2,json,issues,search,ask,python-github2,closed,timezone,ca6c06a1218893c7591a54352d1dc532 new file mode 100644 index 0000000..7083a70 --- /dev/null +++ b/tests/data/github.com,api,v2,json,issues,search,ask,python-github2,closed,timezone,ca6c06a1218893c7591a54352d1dc532 @@ -0,0 +1,15 @@ +status: 200 +x-ratelimit-remaining: 59 +content-location: https://github.com/api/v2/json/issues/search/ask/python-github2/closed/timezone +-content-encoding: gzip +connection: keep-alive +content-length: 3425 +server: nginx/1.0.4 +x-runtime: 115ms +x-ratelimit-limit: 60 +etag: "bfda19659b7735d883284fd23fd703ea" +cache-control: private, max-age=0, must-revalidate +date: Thu, 25 Aug 2011 06:53:44 GMT +content-type: application/json; charset=utf-8 + +{"issues":[{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","position":21.0,"number":21,"votes":0,"created_at":"2010/12/06 13:10:09 -0800","comments":1,"body":"Hi Ask,\r\n\r\nToday, I commited several patches. First of all, I added support for authenticating using `Github(access_token=\"...\")` GET requests instead of `Github(username=\"foo\", api_token=\"...\")` POST requests. This is the way Github API v2 URLs need to be called when using their (experimental) OAuth model.\r\n\r\nFurthermore, while I was testing this, the Github API seems to have changed the format of all dates to be nice UTC dates with timezone info. This makes the special conversion hoops and tricks unnecessary, so I removed them. For safety, I kept the \"flexible date conversion function lookup\" construct around, but maybe this could be removed as a whole. I'll leave this judgement up to you.\r\n\r\nHave a blast!\r\n\r\nCheers,\r\nVincent\r\n","title":"Add support for OAuth URLs, and a fix for date format","updated_at":"2010/12/06 21:28:42 -0800","diff_url":"https://github.com/ask/python-github2/pull/21.diff","patch_url":"https://github.com/ask/python-github2/pull/21.patch","pull_request_url":"https://github.com/ask/python-github2/pull/21","closed_at":"2010/12/06 21:28:42 -0800","html_url":"https://github.com/ask/python-github2/issues/21","user":"nvie","labels":[],"state":"closed"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":39.0,"number":39,"votes":0,"created_at":"2011/04/18 08:25:47 -0700","comments":4,"body":"\nFeeble brainstorming session...\n\nI've just been bitten quite badly by the lack of timezone handling, the cause is the use of naive datetime objects in the 'GitHub' timezone(`America/Los_Angeles`). While processing some tasks that span the PST/PDT changeover the ordering of events is broken.\n\nOptions are:\n\n1. Leave alone and try to process the datetime objects externally, somewhat easy but not a good solution as it requires duplication in each project that requires accurate date handling\n2. Start producing non-naive datetime objects, breaks any caller who is not prepared for it.\n3. Introduce a setting to toggle naive object availability, defaulting to naive objects to maintain backwards compatibility\n\n[python-dateutil](http://labix.org/python-dateutil) makes handling option 1 quite easy, and also simplifies the handling of option 3 at the cost of another external dependency. Option 2 is just pure evil, or pure stupidity depending on point of view.\n\nOption 3 results in a parsing using something like the following entirely untested code:\n\n datetime_ = parser.parse(github_date)\n if NAIVE:\n datetime_.replace(tzinfo=None)\n return datetime_\n\nAnd similarly producing GitHub compatible date strings would require handling of naive formats with equally untested code such as:\n\n if NAIVE:\n datetime_ = datetime_.replace(tz.gettz(\"America/Los_Angeles\"))\n return datetime_.strftime(\"%Y/%m/%d %H:%M:%S %z\")","title":"Datetime timezone handling.","updated_at":"2011/06/23 02:33:57 -0700","diff_url":"https://github.com/ask/python-github2/pull/39.diff","patch_url":"https://github.com/ask/python-github2/pull/39.patch","pull_request_url":"https://github.com/ask/python-github2/pull/39","closed_at":"2011/06/23 02:33:57 -0700","html_url":"https://github.com/ask/python-github2/issues/39","user":"JNRowe","labels":[],"state":"closed"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,issues,search,ask,python-github2,open,timezone,e8e32dc210586a68a9d7e0a88b74214f b/tests/data/github.com,api,v2,json,issues,search,ask,python-github2,open,timezone,e8e32dc210586a68a9d7e0a88b74214f deleted file mode 100644 index eb6514d..0000000 --- a/tests/data/github.com,api,v2,json,issues,search,ask,python-github2,open,timezone,e8e32dc210586a68a9d7e0a88b74214f +++ /dev/null @@ -1,14 +0,0 @@ -status: 200 -x-ratelimit-remaining: 58 -content-location: https://github.com/api/v2/json/issues/search/ask/python-github2/open/timezone -x-runtime: 786ms -content-length: 2831 -server: nginx/0.7.67 -connection: keep-alive -x-ratelimit-limit: 60 -etag: "7ad27323679884e25d6250c231999fbf" -cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:41:21 GMT -content-type: application/json; charset=utf-8 - -{"issues":[{"gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","position":1.0,"number":1,"votes":0,"created_at":"2009/04/18 13:04:09 -0700","comments":0,"body":"This to support getting raw blob/tree data as specified in http://develop.github.com/p/object.html.","title":"option to make_request so it doesn't parse the response as json.","updated_at":"2009/04/18 13:04:09 -0700","html_url":"https://github.com/ask/python-github2/issues/1","user":"ask","labels":[],"state":"open"},{"gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","position":5.0,"number":5,"votes":1,"created_at":"2010/05/18 06:10:36 -0700","comments":1,"body":"Goes without saying...","title":"This project needs tests!","updated_at":"2010/06/20 05:47:06 -0700","html_url":"https://github.com/ask/python-github2/issues/5","user":"ask","labels":[],"state":"open"},{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":39.0,"number":39,"votes":0,"created_at":"2011/04/18 08:25:47 -0700","comments":3,"body":"\nFeeble brainstorming session...\n\nI've just been bitten quite badly by the lack of timezone handling, the cause is the use of naive datetime objects in the 'GitHub' timezone(`America/Los_Angeles`). While processing some tasks that span the PST/PDT changeover the ordering of events is broken.\n\nOptions are:\n\n1. Leave alone and try to process the datetime objects externally, somewhat easy but not a good solution as it requires duplication in each project that requires accurate date handling\n2. Start producing non-naive datetime objects, breaks any caller who is not prepared for it.\n3. Introduce a setting to toggle naive object availability, defaulting to naive objects to maintain backwards compatibility\n\n[python-dateutil](http://labix.org/python-dateutil) makes handling option 1 quite easy, and also simplifies the handling of option 3 at the cost of another external dependency. Option 2 is just pure evil, or pure stupidity depending on point of view.\n\nOption 3 results in a parsing using something like the following entirely untested code:\n\n datetime_ = parser.parse(github_date)\n if NAIVE:\n datetime_.replace(tzinfo=None)\n return datetime_\n\nAnd similarly producing GitHub compatible date strings would require handling of naive formats with equally untested code such as:\n\n if NAIVE:\n datetime_ = datetime_.replace(tz.gettz(\"America/Los_Angeles\"))\n return datetime_.strftime(\"%Y/%m/%d %H:%M:%S %z\")","title":"Datetime timezone handling.","updated_at":"2011/05/29 08:37:08 -0700","diff_url":"https://github.com/ask/python-github2/pull/39.diff","patch_url":"https://github.com/ask/python-github2/pull/39.patch","pull_request_url":"https://github.com/ask/python-github2/pull/39","html_url":"https://github.com/ask/python-github2/issues/39","user":"JNRowe","labels":[],"state":"open"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,issues,show,ask,python-github2,24,5b0c4463c84fc26a94bc1bfaa191fed5 b/tests/data/github.com,api,v2,json,issues,show,ask,python-github2,24,5b0c4463c84fc26a94bc1bfaa191fed5 index f7e70e5..c09772b 100644 --- a/tests/data/github.com,api,v2,json,issues,show,ask,python-github2,24,5b0c4463c84fc26a94bc1bfaa191fed5 +++ b/tests/data/github.com,api,v2,json,issues,show,ask,python-github2,24,5b0c4463c84fc26a94bc1bfaa191fed5 @@ -1,14 +1,15 @@ status: 200 x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/issues/show/ask/python-github2/24 -x-runtime: 54ms -content-length: 717 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 717 +server: nginx/1.0.4 +x-runtime: 18ms x-ratelimit-limit: 60 -etag: "4bf7a5d7cb406c99f66a0110a1828a7b" +etag: "bb0d68a4d27526c9254b59bae43068fd" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:40:55 GMT +date: Thu, 25 Aug 2011 06:52:22 GMT content-type: application/json; charset=utf-8 {"issue":{"gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","position":24.0,"number":24,"votes":0,"created_at":"2010/12/08 23:50:26 -0800","comments":11,"body":"Hi, I added an optional 'page' argument to receive not only last 35 commits, but all others too. Think, such approach could be useful for other list operations too.","title":"Pagination support for commits.","updated_at":"2011/01/04 16:26:07 -0800","diff_url":"https://github.com/ask/python-github2/pull/24.diff","patch_url":"https://github.com/ask/python-github2/pull/24.patch","pull_request_url":"https://github.com/ask/python-github2/pull/24","html_url":"https://github.com/ask/python-github2/issues/24","user":"svetlyak40wt","labels":[],"state":"open"}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,organizations,JNRowe-test-org,teams,6869b96ae6fbaa7511d92aa73803898b b/tests/data/github.com,api,v2,json,organizations,JNRowe-test-org,teams,6869b96ae6fbaa7511d92aa73803898b new file mode 100644 index 0000000..969ee88 --- /dev/null +++ b/tests/data/github.com,api,v2,json,organizations,JNRowe-test-org,teams,6869b96ae6fbaa7511d92aa73803898b @@ -0,0 +1,14 @@ +status: 200 +x-ratelimit-remaining: 60 +content-location: https://github.com/api/v2/json/organizations/JNRowe-test-org/teams +x-runtime: 20ms +content-length: 61 +server: nginx/1.0.4 +connection: keep-alive +x-ratelimit-limit: 58 +etag: "0ea8a446a00b4d7894676a34bd8d501f" +cache-control: private, max-age=0, must-revalidate +date: Mon, 19 Dec 2011 20:50:41 GMT +content-type: application/json; charset=utf-8 + +{"team":{"name":"team_pull","id":121678,"permission":"pull"}} diff --git a/tests/data/github.com,api,v2,json,organizations,github,d8f16b26260e5cb408a092d5071996ca b/tests/data/github.com,api,v2,json,organizations,github,d8f16b26260e5cb408a092d5071996ca index f69777d..32ad149 100644 --- a/tests/data/github.com,api,v2,json,organizations,github,d8f16b26260e5cb408a092d5071996ca +++ b/tests/data/github.com,api,v2,json,organizations,github,d8f16b26260e5cb408a092d5071996ca @@ -1,14 +1,15 @@ -status: 304 -x-ratelimit-remaining: 58 +status: 200 +x-ratelimit-remaining: 57 content-location: https://github.com/api/v2/json/organizations/github +-content-encoding: gzip connection: keep-alive content-length: 387 -server: nginx/0.7.67 -x-runtime: 21ms +server: nginx/1.0.4 +x-runtime: 23ms x-ratelimit-limit: 60 -etag: "f02044d4890b2b09977b7b9e75053b1e" +etag: "8a6bd525c73aaa95dbb493788a45e183" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:46:30 GMT +date: Thu, 25 Aug 2011 06:54:20 GMT content-type: application/json; charset=utf-8 -{"organization":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","company":null,"name":"GitHub","created_at":"2008-05-10T21:37:31-07:00","location":"San Francisco, CA","public_repo_count":26,"public_gist_count":0,"blog":"https://github.com/about","following_count":0,"id":9919,"type":"Organization","permission":null,"followers_count":571,"login":"github","email":"support@github.com"}} \ No newline at end of file +{"organization":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","company":null,"name":"GitHub","created_at":"2008-05-10T21:37:31-07:00","location":"San Francisco, CA","public_repo_count":31,"public_gist_count":0,"blog":"https://github.com/about","following_count":0,"id":9919,"type":"Organization","permission":null,"followers_count":591,"login":"github","email":"support@github.com"}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,organizations,github,public_members,01d1fb446743540669e4773bf8cf53c3 b/tests/data/github.com,api,v2,json,organizations,github,public_members,01d1fb446743540669e4773bf8cf53c3 index 924af5f..4b2ecd6 100644 --- a/tests/data/github.com,api,v2,json,organizations,github,public_members,01d1fb446743540669e4773bf8cf53c3 +++ b/tests/data/github.com,api,v2,json,organizations,github,public_members,01d1fb446743540669e4773bf8cf53c3 @@ -1,14 +1,15 @@ status: 200 -x-ratelimit-remaining: 56 +x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/organizations/github/public_members -x-runtime: 2059ms -content-length: 12105 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 12867 +server: nginx/1.0.4 +x-runtime: 744ms x-ratelimit-limit: 60 -etag: "defe4971b2099cdb3aafc77717bc32f7" +etag: "0174ac52c3b274340f5dd5bd0a372282" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:46:58 GMT +date: Thu, 25 Aug 2011 06:54:57 GMT content-type: application/json; charset=utf-8 -{"users":[{"gravatar_id":"7f67284c12b6d38fa1c8590911fd58a0","company":"GitHub","name":"Petros Amiridis","created_at":"2008/10/13 14:19:57 -0700","location":"Thessaloniki, Greece","public_repo_count":12,"public_gist_count":19,"blog":"amiridis.net","following_count":50,"id":28818,"type":"User","permission":null,"followers_count":32,"login":"amiridis","email":"petros@amiridis.net"},{"gravatar_id":"a86224d72ce21cd9f5bee6784d4b06c7","company":"GitHub","name":"Corey Donohoe","created_at":"2008/01/22 01:14:11 -0800","location":"Potrero, SF","public_repo_count":85,"public_gist_count":145,"blog":"http://www.atmos.org","following_count":161,"id":38,"type":"User","permission":null,"followers_count":313,"login":"atmos","email":"atmos@atmos.org"},{"gravatar_id":"4d1c9dad17af98e55cb65b4efce27c42","company":"GitHub","name":"Ben Burkert","created_at":"2008/01/28 15:44:14 -0800","location":"SF","public_repo_count":50,"public_gist_count":23,"blog":"http://benburkert.com","following_count":16,"id":77,"type":"User","permission":null,"followers_count":75,"login":"benburkert","email":"ben@benburkert.com"},{"gravatar_id":"4f237ee952d1af0c47028bfda53664a8","company":"Github, Inc. ","name":"Beth Newland","created_at":"2011/06/06 15:11:41 -0700","location":"San Francisco, CA","public_repo_count":0,"public_gist_count":0,"blog":null,"following_count":0,"id":833804,"type":"User","permission":null,"followers_count":0,"login":"bethnewland","email":"beth@github.com"},{"gravatar_id":"aeb22e809b34e9c8a5623ba6c4738a63","company":"GitHub, Inc.","name":"Ben Bleikamp","created_at":"2008/09/22 13:28:53 -0700","location":"San Francisco, CA","public_repo_count":5,"public_gist_count":14,"blog":"http://bleikamp.com","following_count":36,"id":25792,"type":"User","permission":null,"followers_count":38,"login":"bleikamp","email":"ben@github.com"},{"gravatar_id":"c9f60c0cb1d941fa8e93bbfcb907c27e","company":"GitHub","name":"Brian Lopez","created_at":"2008/05/26 15:54:55 -0700","location":"San Francisco, Ca","public_repo_count":43,"public_gist_count":118,"blog":"http://github.com","following_count":141,"id":11571,"type":"User","permission":null,"followers_count":172,"login":"brianmario","email":"seniorlopez@gmail.com"},{"gravatar_id":"edad3aaefdd499ab37b910aded54e1b3","company":"GitHub, Inc. / Revyver, Inc.","name":"Bryan Veloso","created_at":"2008/02/27 14:57:03 -0800","location":"Los Angeles, CA","public_repo_count":19,"public_gist_count":30,"blog":"http://avalonstar.com","following_count":109,"id":1258,"type":"User","permission":null,"followers_count":192,"login":"bryanveloso","email":"bryan@github.com"},{"gravatar_id":"a79ff2bb7da84e275361857d2feb2b1b","company":"GitHub","name":"Cameron McEfee","created_at":"2009/04/11 23:16:59 -0700","location":"San Francisco","public_repo_count":3,"public_gist_count":0,"blog":"http://www.cameronmcefee.com","following_count":3,"id":72919,"type":"User","permission":null,"followers_count":39,"login":"cameronmcefee","email":"cameron@github.com"},{"gravatar_id":"b8dbb1987e8e5318584865f880036796","company":"GitHub","name":"Chris Wanstrath","created_at":"2007/10/19 22:24:19 -0700","location":"San Francisco","public_repo_count":93,"public_gist_count":277,"blog":"http://chriswanstrath.com/","following_count":211,"id":2,"type":"User","permission":null,"followers_count":2760,"login":"defunkt","email":"chris@wanstrath.com"},{"gravatar_id":"fd923a707b3e788b3d6b0e8f84cfbbe3","company":"GitHub","name":"Alex Malinovich","created_at":"2008/04/15 00:17:51 -0700","location":"San Francisco, CA","public_repo_count":15,"public_gist_count":12,"blog":"http://www.the-love-shack.net","following_count":8,"id":7385,"type":"User","permission":null,"followers_count":22,"login":"demonbane","email":"alex@github.com"},{"gravatar_id":"eb6845de9b94082d7d90a0603d91ff42","company":"GitHub","name":"Heather A. Baldry","created_at":"2011/05/03 14:39:07 -0700","location":"San Francisco, CA","public_repo_count":0,"public_gist_count":0,"blog":null,"following_count":10,"id":766591,"type":"User","permission":null,"followers_count":5,"login":"Foggybtmgirl","email":"heather@github.com"},{"gravatar_id":"6f63cde8b16b035280ca615f621a6c8c","company":"GitHub","name":"Zach Holman","created_at":"2008/03/10 09:32:37 -0700","location":"San Francisco, CA","public_repo_count":33,"public_gist_count":12,"blog":"http://zachholman.com/about","following_count":65,"id":2723,"type":"User","permission":null,"followers_count":278,"login":"holman","email":"hello@zachholman.com"},{"gravatar_id":"bbe5dc8dcf248706525ab76f46185520","company":"GitHub","name":"Joshua Peek","created_at":"2008/02/03 14:05:54 -0800","location":"Chicago, IL","public_repo_count":71,"public_gist_count":50,"blog":"http://joshpeek.com/","following_count":33,"id":137,"type":"User","permission":null,"followers_count":561,"login":"josh","email":"josh@joshpeek.com"},{"gravatar_id":"62e8c8bfaa8d755cab82accb48d335c8","company":"GitHub","name":"Josh Abernathy","created_at":"2008/06/14 17:25:05 -0700","location":"Seattle, WA","public_repo_count":13,"public_gist_count":4,"blog":"http://twitter.com/joshaber","following_count":23,"id":13760,"type":"User","permission":null,"followers_count":166,"login":"joshaber","email":"josh@github.com"},{"gravatar_id":"e650a773fc40f042e46d1e36b326e4e1","company":"GitHub Inc.","name":"Jason Costello","created_at":"2010/09/26 12:46:13 -0700","location":"San Francisco, CA","public_repo_count":0,"public_gist_count":0,"blog":"jason-costello.com","following_count":6,"id":416727,"type":"User","permission":null,"followers_count":18,"login":"jsncostello","email":"jason@github.com"},{"gravatar_id":"28bda3f5dfcc92365efe4eecc0b38eb8","company":"GitHub","name":"Kami","created_at":"2010/10/17 13:21:26 -0700","location":"San Francisco, CA","public_repo_count":4,"public_gist_count":0,"blog":null,"following_count":47,"id":443094,"type":"User","permission":null,"followers_count":30,"login":"kamzilla","email":"kami@github.com"},{"gravatar_id":"4e3f068bcac207404306e790c0d662ed","company":"GitHub Inc.","name":"Kevin Sawicki","created_at":"2011/03/15 09:46:18 -0700","location":"Redwood City, CA","public_repo_count":8,"public_gist_count":4,"blog":null,"following_count":10,"id":671378,"type":"User","permission":null,"followers_count":48,"login":"kevinsawicki","email":"kevin@github.com"},{"gravatar_id":"5f2da528927a2ec9ba4fec2069cbc958","company":"GitHub, Inc.","name":"Kyle Neath","created_at":"2008/02/27 16:48:15 -0800","location":"San Francisco, CA","public_repo_count":21,"public_gist_count":32,"blog":"http://warpspire.com","following_count":40,"id":1354,"type":"User","permission":null,"followers_count":304,"login":"kneath","email":"kyle@github.com"},{"gravatar_id":"17fc534665d54bcd8b4d2676d709aa99","company":"GitHub","name":"Melissa Severini","created_at":"2009/03/19 16:48:58 -0700","location":"San Francisco, CA","public_repo_count":2,"public_gist_count":0,"blog":"http://luckiestmonkey.tumblr.com/","following_count":12,"id":65087,"type":"User","permission":null,"followers_count":58,"login":"luckiestmonkey","email":"luckiest.monkey@gmail.com"},{"gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","company":"GitHub, Inc.","name":"Tom Preston-Werner","created_at":"2007/10/19 22:24:19 -0700","location":"San Francisco","public_repo_count":50,"public_gist_count":66,"blog":"http://tom.preston-werner.com","following_count":11,"id":1,"type":"User","permission":null,"followers_count":1960,"login":"mojombo","email":"tom@github.com"},{"gravatar_id":"b6861bc75bff3c594212338a914a39ad","company":"Highgroove Studios","name":"Matt Todd","created_at":"2008/02/10 22:28:43 -0800","location":"Atlanta, GA","public_repo_count":89,"public_gist_count":93,"blog":"http://maraby.org/","following_count":175,"id":182,"type":"User","permission":null,"followers_count":102,"login":"mtodd","email":"mtodd@highgroove.com"},{"gravatar_id":"63027897db609fdbe6ac820fa12736b9","company":null,"name":"Jeff King","created_at":"2009/01/12 01:29:10 -0800","location":null,"public_repo_count":7,"public_gist_count":2,"blog":null,"following_count":0,"id":45925,"type":"User","permission":null,"followers_count":31,"login":"peff","email":"peff@peff.net"},{"gravatar_id":"947c333c75de1dc54a711a400d575c8c","company":"GitHub, Inc.","name":"PJ Hyett","created_at":"2008/01/07 09:54:22 -0800","location":"San Francisco, CA","public_repo_count":16,"public_gist_count":23,"blog":"http://twitter.com/pjhyett","following_count":23,"id":3,"type":"User","permission":null,"followers_count":824,"login":"pjhyett","email":"pj@github.com"},{"gravatar_id":"ac65e62b7ad42e9bc5fdf391d0e250a7","company":"mystery","name":"Corey Johnson","created_at":"2008/02/21 14:07:26 -0800","location":"San Francisco","public_repo_count":18,"public_gist_count":57,"blog":"","following_count":1,"id":596,"type":"User","permission":null,"followers_count":134,"login":"probablycorey","email":"cj@github.com"},{"gravatar_id":"920e60e81da4fb61eaeb95fa9d7c3b70","company":"GitHub","name":"Tim Sharpe","created_at":"2009/05/03 20:28:14 -0700","location":"Sydney :: Australia","public_repo_count":29,"public_gist_count":8,"blog":"","following_count":0,"id":80629,"type":"User","permission":null,"followers_count":43,"login":"rodjek","email":"tim@github.com"},{"gravatar_id":"abfc88b96ae18c85ba7aac3bded2ec5e","company":"GitHub","name":"Ryan Tomayko","created_at":"2008/02/18 19:30:53 -0800","location":"San Francisco","public_repo_count":34,"public_gist_count":81,"blog":"http://tomayko.com/about","following_count":79,"id":404,"type":"User","permission":null,"followers_count":870,"login":"rtomayko","email":"r@tomayko.com"},{"gravatar_id":"9375a9529679f1b42b567a640d775e7d","company":"GitHub","name":"Scott Chacon","created_at":"2008/01/27 09:19:28 -0800","location":"San Francisco, CA","public_repo_count":124,"public_gist_count":69,"blog":"http://scottchacon.com","following_count":17,"id":70,"type":"User","permission":null,"followers_count":1479,"login":"schacon","email":"schacon@gmail.com"},{"gravatar_id":"8cf17bf55c4d16cf52480619bb0b6c92","company":"GitHub","name":"Simon Rozet","created_at":"2008/01/29 12:37:53 -0800","location":"Brussels, Belgium","public_repo_count":91,"public_gist_count":52,"blog":"http://atonie.org","following_count":166,"id":90,"type":"User","permission":null,"followers_count":270,"login":"sr","email":"simon@rozet.name"},{"gravatar_id":"6804f1775cb4babfcc3851298566fbce","company":"GitHub","name":"Vicent Martí","created_at":"2008/12/26 12:21:00 -0800","location":"Mainly Europe","public_repo_count":12,"public_gist_count":2,"blog":null,"following_count":20,"id":42793,"type":"User","permission":null,"followers_count":72,"login":"tanoku","email":"vicent@github.com"},{"gravatar_id":"2f4861b27dc35663ed271d39f5358261","company":"GitHub","name":"Tim Clem","created_at":"2009/10/07 13:26:53 -0700","location":"San Francisco, CA","public_repo_count":10,"public_gist_count":3,"blog":"http://timclem.wordpress.com","following_count":1,"id":136521,"type":"User","permission":null,"followers_count":31,"login":"tclem","email":"timothy.clem@gmail.com"},{"gravatar_id":"821395fe70906c8290df7f18ac4ac6cf","company":"GitHub","name":"rick","created_at":"2008/01/13 20:33:35 -0800","location":"sf","public_repo_count":120,"public_gist_count":83,"blog":"http://techno-weenie.net","following_count":14,"id":21,"type":"User","permission":null,"followers_count":1478,"login":"technoweenie","email":"technoweenie@gmail.com"},{"gravatar_id":"495abe87ebbc36e70c8db98680ec8a46","company":null,"name":"Tekkub","created_at":"2008/02/23 13:14:45 -0800","location":"Denver, CO","public_repo_count":132,"public_gist_count":204,"blog":"tekkub.net","following_count":0,"id":706,"type":"User","permission":null,"followers_count":327,"login":"tekkub","email":null},{"gravatar_id":"d47656e20ff5e42f125fc5ea0fd636c6","company":"GitHub, Inc.","name":"Aman Gupta","created_at":"2008/03/07 18:10:31 -0800","location":"San Francisco, CA","public_repo_count":67,"public_gist_count":92,"blog":"http://twitter.com/tmm1","following_count":129,"id":2567,"type":"User","permission":null,"followers_count":537,"login":"tmm1","email":"aman@tmm1.net"}]} \ No newline at end of file +{"users":[{"gravatar_id":"7f67284c12b6d38fa1c8590911fd58a0","company":"GitHub","name":"Petros Amiridis","created_at":"2008/10/13 14:19:57 -0700","location":"Thessaloniki, Greece","public_repo_count":25,"public_gist_count":20,"blog":"amiridis.net","following_count":53,"id":28818,"type":"User","permission":null,"followers_count":47,"login":"amiridis","email":"petros@amiridis.net"},{"gravatar_id":"a86224d72ce21cd9f5bee6784d4b06c7","company":"GitHub","name":"Corey Donohoe","created_at":"2008/01/22 01:14:11 -0800","location":"Potrero, SF","public_repo_count":87,"public_gist_count":146,"blog":"http://www.atmos.org","following_count":161,"id":38,"type":"User","permission":null,"followers_count":333,"login":"atmos","email":"atmos@atmos.org"},{"gravatar_id":"4d1c9dad17af98e55cb65b4efce27c42","company":"GitHub","name":"Ben Burkert","created_at":"2008/01/28 15:44:14 -0800","location":"SF","public_repo_count":57,"public_gist_count":24,"blog":"http://benburkert.com","following_count":16,"id":77,"type":"User","permission":null,"followers_count":80,"login":"benburkert","email":"ben@benburkert.com"},{"gravatar_id":"4f237ee952d1af0c47028bfda53664a8","company":"Github, Inc. ","name":"Beth Newland","created_at":"2011/06/06 15:11:41 -0700","location":"San Francisco, CA","public_repo_count":0,"public_gist_count":0,"blog":null,"following_count":0,"id":833804,"type":"User","permission":null,"followers_count":4,"login":"bethnewland","email":"beth@github.com"},{"gravatar_id":"aeb22e809b34e9c8a5623ba6c4738a63","company":"GitHub, Inc.","name":"Ben Bleikamp","created_at":"2008/09/22 13:28:53 -0700","location":"San Francisco, CA","public_repo_count":9,"public_gist_count":14,"blog":"http://bleikamp.com","following_count":43,"id":25792,"type":"User","permission":null,"followers_count":42,"login":"bleikamp","email":"ben@github.com"},{"gravatar_id":"c9f60c0cb1d941fa8e93bbfcb907c27e","company":"GitHub","name":"Brian Lopez","created_at":"2008/05/26 15:54:55 -0700","location":"San Francisco, Ca","public_repo_count":46,"public_gist_count":118,"blog":"http://github.com","following_count":144,"id":11571,"type":"User","permission":null,"followers_count":188,"login":"brianmario","email":"seniorlopez@gmail.com"},{"gravatar_id":"edad3aaefdd499ab37b910aded54e1b3","company":"GitHub, Inc. / Revyver, Inc.","name":"Bryan Veloso","created_at":"2008/02/27 14:57:03 -0800","location":"Los Angeles, CA","public_repo_count":19,"public_gist_count":31,"blog":"http://avalonstar.com","following_count":110,"id":1258,"type":"User","permission":null,"followers_count":199,"login":"bryanveloso","email":"bryan@github.com"},{"gravatar_id":"a79ff2bb7da84e275361857d2feb2b1b","company":"GitHub","name":"Cameron McEfee","created_at":"2009/04/11 23:16:59 -0700","location":"San Francisco","public_repo_count":3,"public_gist_count":0,"blog":"http://www.cameronmcefee.com","following_count":4,"id":72919,"type":"User","permission":null,"followers_count":67,"login":"cameronmcefee","email":"cameron@github.com"},{"gravatar_id":"b8dbb1987e8e5318584865f880036796","company":"GitHub","name":"Chris Wanstrath","created_at":"2007/10/19 22:24:19 -0700","location":"San Francisco","public_repo_count":93,"public_gist_count":279,"blog":"http://chriswanstrath.com/","following_count":212,"id":2,"type":"User","permission":null,"followers_count":3516,"login":"defunkt","email":"chris@wanstrath.com"},{"gravatar_id":"fd923a707b3e788b3d6b0e8f84cfbbe3","company":"GitHub","name":"Alex Malinovich","created_at":"2008/04/15 00:17:51 -0700","location":"San Francisco, CA","public_repo_count":15,"public_gist_count":13,"blog":"http://www.the-love-shack.net","following_count":8,"id":7385,"type":"User","permission":null,"followers_count":24,"login":"demonbane","email":"alex@github.com"},{"gravatar_id":"eb6845de9b94082d7d90a0603d91ff42","company":"GitHub","name":"Heather A. Baldry","created_at":"2011/05/03 14:39:07 -0700","location":"San Francisco, CA","public_repo_count":0,"public_gist_count":0,"blog":null,"following_count":11,"id":766591,"type":"User","permission":null,"followers_count":7,"login":"Foggybtmgirl","email":"heather@github.com"},{"gravatar_id":"6f63cde8b16b035280ca615f621a6c8c","company":"GitHub","name":"Zach Holman","created_at":"2008/03/10 09:32:37 -0700","location":"San Francisco, CA","public_repo_count":37,"public_gist_count":12,"blog":"http://zachholman.com/about","following_count":69,"id":2723,"type":"User","permission":null,"followers_count":401,"login":"holman","email":"hello@zachholman.com"},{"gravatar_id":"bbe5dc8dcf248706525ab76f46185520","company":"GitHub","name":"Joshua Peek","created_at":"2008/02/03 14:05:54 -0800","location":"Chicago, IL","public_repo_count":76,"public_gist_count":57,"blog":"http://joshpeek.com/","following_count":37,"id":137,"type":"User","permission":null,"followers_count":631,"login":"josh","email":"josh@joshpeek.com"},{"gravatar_id":"62e8c8bfaa8d755cab82accb48d335c8","company":"GitHub","name":"Josh Abernathy","created_at":"2008/06/14 17:25:05 -0700","location":"Seattle, WA","public_repo_count":18,"public_gist_count":5,"blog":"http://twitter.com/joshaber","following_count":28,"id":13760,"type":"User","permission":null,"followers_count":197,"login":"joshaber","email":"josh@github.com"},{"gravatar_id":"e650a773fc40f042e46d1e36b326e4e1","company":"GitHub Inc.","name":"Jason Costello","created_at":"2010/09/26 12:46:13 -0700","location":"San Francisco, CA","public_repo_count":0,"public_gist_count":0,"blog":"jason-costello.com","following_count":8,"id":416727,"type":"User","permission":null,"followers_count":21,"login":"jsncostello","email":"jason@github.com"},{"gravatar_id":"28bda3f5dfcc92365efe4eecc0b38eb8","company":"GitHub","name":"Kami","created_at":"2010/10/17 13:21:26 -0700","location":"San Francisco, CA","public_repo_count":5,"public_gist_count":3,"blog":null,"following_count":53,"id":443094,"type":"User","permission":null,"followers_count":49,"login":"kamzilla","email":"kami@github.com"},{"gravatar_id":"4e3f068bcac207404306e790c0d662ed","company":"GitHub Inc.","name":"Kevin Sawicki","created_at":"2011/03/15 09:46:18 -0700","location":"Redwood City, CA","public_repo_count":23,"public_gist_count":5,"blog":null,"following_count":10,"id":671378,"type":"User","permission":null,"followers_count":55,"login":"kevinsawicki","email":"kevin@github.com"},{"gravatar_id":"5f2da528927a2ec9ba4fec2069cbc958","company":"GitHub, Inc.","name":"Kyle Neath","created_at":"2008/02/27 16:48:15 -0800","location":"San Francisco, CA","public_repo_count":22,"public_gist_count":32,"blog":"http://warpspire.com","following_count":40,"id":1354,"type":"User","permission":null,"followers_count":347,"login":"kneath","email":"kyle@github.com"},{"gravatar_id":"17fc534665d54bcd8b4d2676d709aa99","company":"GitHub","name":"Melissa Severini","created_at":"2009/03/19 16:48:58 -0700","location":"San Francisco, CA","public_repo_count":2,"public_gist_count":0,"blog":"http://luckiestmonkey.tumblr.com/","following_count":12,"id":65087,"type":"User","permission":null,"followers_count":62,"login":"luckiestmonkey","email":"luckiest.monkey@gmail.com"},{"gravatar_id":"366472c969c9754ae2b8079e42fed1ca","company":"GitHub, Inc.","name":"Jon Maddox","created_at":"2008/02/13 15:33:31 -0800","location":"Richmond, Va","public_repo_count":56,"public_gist_count":62,"blog":"http://jonmaddox.com","following_count":8,"id":260,"type":"User","permission":null,"followers_count":184,"login":"maddox","email":"jon@jonmaddox.com"},{"gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","company":"GitHub, Inc.","name":"Tom Preston-Werner","created_at":"2007/10/19 22:24:19 -0700","location":"San Francisco","public_repo_count":52,"public_gist_count":66,"blog":"http://tom.preston-werner.com","following_count":11,"id":1,"type":"User","permission":null,"followers_count":2745,"login":"mojombo","email":"tom@github.com"},{"gravatar_id":"b6861bc75bff3c594212338a914a39ad","company":"GitHub","name":"Matt Todd","created_at":"2008/02/10 22:28:43 -0800","location":"San Francisco, CA","public_repo_count":97,"public_gist_count":94,"blog":"http://maraby.org/","following_count":177,"id":182,"type":"User","permission":null,"followers_count":121,"login":"mtodd","email":"matt@github.com"},{"gravatar_id":"63027897db609fdbe6ac820fa12736b9","company":null,"name":"Jeff King","created_at":"2009/01/12 01:29:10 -0800","location":null,"public_repo_count":7,"public_gist_count":2,"blog":null,"following_count":0,"id":45925,"type":"User","permission":null,"followers_count":40,"login":"peff","email":"peff@peff.net"},{"gravatar_id":"947c333c75de1dc54a711a400d575c8c","company":"GitHub, Inc.","name":"PJ Hyett","created_at":"2008/01/07 09:54:22 -0800","location":"San Francisco, CA","public_repo_count":16,"public_gist_count":23,"blog":"http://twitter.com/pjhyett","following_count":23,"id":3,"type":"User","permission":null,"followers_count":1279,"login":"pjhyett","email":"pj@github.com"},{"gravatar_id":"ac65e62b7ad42e9bc5fdf391d0e250a7","company":"mystery","name":"Corey Johnson","created_at":"2008/02/21 14:07:26 -0800","location":"San Francisco","public_repo_count":22,"public_gist_count":63,"blog":"","following_count":2,"id":596,"type":"User","permission":null,"followers_count":145,"login":"probablycorey","email":"cj@github.com"},{"gravatar_id":"920e60e81da4fb61eaeb95fa9d7c3b70","company":"GitHub","name":"Tim Sharpe","created_at":"2009/05/03 20:28:14 -0700","location":"Sydney :: Australia","public_repo_count":33,"public_gist_count":9,"blog":"","following_count":0,"id":80629,"type":"User","permission":null,"followers_count":57,"login":"rodjek","email":"tim@github.com"},{"gravatar_id":"abfc88b96ae18c85ba7aac3bded2ec5e","company":"GitHub","name":"Ryan Tomayko","created_at":"2008/02/18 19:30:53 -0800","location":"San Francisco","public_repo_count":37,"public_gist_count":81,"blog":"http://tomayko.com/about","following_count":79,"id":404,"type":"User","permission":null,"followers_count":933,"login":"rtomayko","email":"r@tomayko.com"},{"gravatar_id":"9375a9529679f1b42b567a640d775e7d","company":"GitHub","name":"Scott Chacon","created_at":"2008/01/27 09:19:28 -0800","location":"San Francisco, CA","public_repo_count":131,"public_gist_count":76,"blog":"http://scottchacon.com","following_count":17,"id":70,"type":"User","permission":null,"followers_count":2068,"login":"schacon","email":"schacon@gmail.com"},{"gravatar_id":"8cf17bf55c4d16cf52480619bb0b6c92","company":"GitHub","name":"Simon Rozet","created_at":"2008/01/29 12:37:53 -0800","location":"Brussels, Belgium","public_repo_count":97,"public_gist_count":52,"blog":"http://twitter.com/sr","following_count":166,"id":90,"type":"User","permission":null,"followers_count":282,"login":"sr","email":"simon@rozet.name"},{"gravatar_id":"6804f1775cb4babfcc3851298566fbce","company":"GitHub","name":"Vicent Martí","created_at":"2008/12/26 12:21:00 -0800","location":"Mainly Europe","public_repo_count":16,"public_gist_count":3,"blog":"http://twitter.com/tanoku","following_count":20,"id":42793,"type":"User","permission":null,"followers_count":98,"login":"tanoku","email":"vicent@github.com"},{"gravatar_id":"2f4861b27dc35663ed271d39f5358261","company":"GitHub","name":"Tim Clem","created_at":"2009/10/07 13:26:53 -0700","location":"San Francisco, CA","public_repo_count":11,"public_gist_count":3,"blog":"http://timclem.wordpress.com","following_count":6,"id":136521,"type":"User","permission":null,"followers_count":41,"login":"tclem","email":"timothy.clem@gmail.com"},{"gravatar_id":"821395fe70906c8290df7f18ac4ac6cf","company":"GitHub","name":"rick","created_at":"2008/01/13 20:33:35 -0800","location":"San Francisco","public_repo_count":87,"public_gist_count":86,"blog":"http://techno-weenie.net","following_count":14,"id":21,"type":"User","permission":null,"followers_count":1536,"login":"technoweenie","email":"technoweenie@gmail.com"},{"gravatar_id":"495abe87ebbc36e70c8db98680ec8a46","company":null,"name":"Tekkub","created_at":"2008/02/23 13:14:45 -0800","location":"Denver, CO","public_repo_count":136,"public_gist_count":205,"blog":"tekkub.net","following_count":0,"id":706,"type":"User","permission":null,"followers_count":353,"login":"tekkub","email":null},{"gravatar_id":"d47656e20ff5e42f125fc5ea0fd636c6","company":"GitHub, Inc.","name":"Aman Gupta","created_at":"2008/03/07 18:10:31 -0800","location":"San Francisco, CA","public_repo_count":79,"public_gist_count":93,"blog":"http://twitter.com/tmm1","following_count":129,"id":2567,"type":"User","permission":null,"followers_count":585,"login":"tmm1","email":"aman@tmm1.net"},{"gravatar_id":"8de583685d3e68f79917ec82253185d8","company":"GitHub","name":"Paul Betts","created_at":"2008/02/27 18:26:12 -0800","location":"Seattle","public_repo_count":29,"public_gist_count":37,"blog":"http://blog.paulbetts.org","following_count":1,"id":1396,"type":"User","permission":null,"followers_count":53,"login":"xpaulbettsx","email":"paul@paulbetts.org"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,organizations,github,public_repositories,f3e3e76ac876947b47b43a16fa0e44e5 b/tests/data/github.com,api,v2,json,organizations,github,public_repositories,f3e3e76ac876947b47b43a16fa0e44e5 index 995ca97..27015a8 100644 --- a/tests/data/github.com,api,v2,json,organizations,github,public_repositories,f3e3e76ac876947b47b43a16fa0e44e5 +++ b/tests/data/github.com,api,v2,json,organizations,github,public_repositories,f3e3e76ac876947b47b43a16fa0e44e5 @@ -1,14 +1,15 @@ status: 200 -x-ratelimit-remaining: 57 +x-ratelimit-remaining: 58 content-location: https://github.com/api/v2/json/organizations/github/public_repositories -x-runtime: 62ms -content-length: 11291 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 13453 +server: nginx/1.0.4 +x-runtime: 79ms x-ratelimit-limit: 60 -etag: "1f0d429e423a830166d933f216bfd508" +etag: "245b1ac3569e7232afff40d5ddc21c49" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:46:47 GMT +date: Thu, 25 Aug 2011 06:55:32 GMT content-type: application/json; charset=utf-8 -{"repositories":[{"watchers":61,"has_downloads":true,"organization":"github","homepage":"https://github.com/","pushed_at":"2011/05/31 16:40:29 -0700","created_at":"2008/03/09 15:43:49 -0700","fork":false,"has_wiki":false,"open_issues":0,"url":"https://github.com/github/media","forks":6,"size":128,"private":false,"name":"media","owner":"github","has_issues":false,"description":"Media files for use in your GitHub integration projects"},{"watchers":101,"has_downloads":false,"organization":"github","homepage":"","pushed_at":"2011/04/19 17:45:38 -0700","created_at":"2008/05/10 21:45:03 -0700","fork":false,"has_wiki":false,"open_issues":0,"url":"https://github.com/github/albino","forks":12,"size":1296,"private":false,"language":"Ruby","name":"albino","owner":"github","has_issues":true,"description":"Ruby wrapper for the Pygments syntax highlighter."},{"watchers":42,"has_downloads":false,"organization":"github","homepage":"","pushed_at":"2008/05/10 21:52:00 -0700","created_at":"2008/05/10 21:45:18 -0700","fork":false,"has_wiki":false,"open_issues":1,"url":"https://github.com/github/hubahuba","forks":9,"size":0,"private":false,"language":"Ruby","name":"hubahuba","owner":"github","has_issues":true,"description":"Ruby and Rails core extensions used by GitHub."},{"watchers":50,"has_downloads":false,"organization":"github","homepage":"","pushed_at":"2008/05/10 21:52:22 -0700","created_at":"2008/05/10 21:45:31 -0700","fork":false,"has_wiki":false,"open_issues":1,"url":"https://github.com/github/jquery-hotkeys","forks":7,"size":0,"private":false,"name":"jquery-hotkeys","owner":"github","has_issues":true,"description":"jQuery hotkeys plugin."},{"watchers":72,"has_downloads":false,"organization":"github","homepage":"","pushed_at":"2008/05/10 21:52:38 -0700","created_at":"2008/05/10 21:45:52 -0700","fork":false,"has_wiki":false,"open_issues":2,"url":"https://github.com/github/jquery-relatize_date","forks":9,"size":0,"private":false,"name":"jquery-relatize_date","owner":"github","has_issues":true,"description":"jQuery version of technoweenie's relative date js library."},{"watchers":11,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2008/12/30 13:04:00 -0800","created_at":"2008/05/10 21:46:10 -0700","fork":false,"has_wiki":true,"open_issues":0,"url":"https://github.com/github/request_timer","forks":0,"size":140,"private":false,"language":"Ruby","name":"request_timer","owner":"github","has_issues":true,"description":"Simple Rails request timer with even simpler js bookmarklet."},{"watchers":27,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2008/05/10 21:53:11 -0700","created_at":"2008/05/10 21:46:27 -0700","fork":false,"has_wiki":true,"open_issues":0,"url":"https://github.com/github/will_paginate_with_hotkeys","forks":1,"size":0,"private":false,"language":"Ruby","name":"will_paginate_with_hotkeys","owner":"github","has_issues":true,"description":"Evil twin plugin version of will_paginate to work with jQuery hotkeys plugin."},{"watchers":25,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2008/11/03 20:54:57 -0800","created_at":"2008/10/24 15:29:32 -0700","fork":false,"has_wiki":true,"open_issues":0,"url":"https://github.com/github/gem-builder","forks":3,"size":76,"private":false,"language":"Ruby","name":"gem-builder","owner":"github","has_issues":true,"description":"The scripts used to build RubyGems on GitHub"},{"watchers":4,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2009/04/08 17:36:30 -0700","created_at":"2009/02/10 19:56:17 -0800","fork":false,"has_wiki":true,"open_issues":0,"url":"https://github.com/github/safegem","forks":0,"size":1024,"private":false,"language":"Ruby","name":"safegem","owner":"github","has_issues":true,"description":"GitHub's safe gem eval web service"},{"watchers":135,"has_downloads":false,"organization":"github","homepage":"http://develop.github.com","pushed_at":"2011/06/01 20:54:15 -0700","created_at":"2009/02/17 15:51:23 -0800","master_branch":"gh-pages","fork":false,"has_wiki":false,"open_issues":34,"url":"https://github.com/github/develop.github.com","forks":45,"size":112,"private":false,"language":"JavaScript","name":"develop.github.com","owner":"github","has_issues":true,"description":"API Documentation for GitHub"},{"watchers":69,"has_downloads":true,"organization":"github","homepage":"http://github.github.com/github-flavored-markdown/","pushed_at":"2011/04/28 04:10:37 -0700","created_at":"2009/04/10 16:01:43 -0700","master_branch":"gh-pages","fork":false,"has_wiki":true,"open_issues":20,"url":"https://github.com/github/github-flavored-markdown","forks":14,"size":232,"private":false,"language":"JavaScript","name":"github-flavored-markdown","owner":"github","has_issues":true,"description":""},{"watchers":314,"has_downloads":false,"organization":"github","homepage":"","pushed_at":"2011/04/03 11:21:14 -0700","created_at":"2009/10/30 18:02:46 -0700","fork":false,"has_wiki":false,"open_issues":41,"url":"https://github.com/github/markup","forks":66,"size":384,"private":false,"language":"Python","name":"markup","owner":"github","has_issues":true,"description":"The code we use to render README.your_favorite_markup"},{"watchers":1209,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2011/06/07 23:44:52 -0700","created_at":"2010/03/29 11:30:53 -0700","fork":false,"has_wiki":true,"open_issues":87,"url":"https://github.com/github/gollum","forks":136,"size":4812,"private":false,"language":"JavaScript","name":"gollum","owner":"github","has_issues":true,"description":"A simple, Git-powered wiki with a sweet API and local frontend."},{"watchers":23,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2010/08/01 01:04:46 -0700","created_at":"2010/04/02 21:50:46 -0700","fork":false,"has_wiki":true,"open_issues":2,"url":"https://github.com/github/upload","forks":4,"size":276,"private":false,"language":"Ruby","name":"upload","owner":"github","has_issues":true,"description":"Script to upload files to non-repo storage from the command line"},{"watchers":312,"has_downloads":false,"organization":"github","homepage":"http://github.com/blog/53-github-services-ipo","pushed_at":"2011/06/06 16:57:52 -0700","created_at":"2010/05/14 13:07:36 -0700","fork":false,"has_wiki":false,"open_issues":27,"url":"https://github.com/github/github-services","forks":334,"size":128,"private":false,"language":"Ruby","name":"github-services","owner":"github","has_issues":true,"description":"Official GitHub Services Integration - You can set these up in your repo admin screen under Service Hooks"},{"watchers":154,"has_downloads":false,"organization":"github","homepage":"http://help.github.com","pushed_at":"2011/06/07 09:55:45 -0700","created_at":"2010/05/17 00:25:56 -0700","master_branch":"gh-pages","fork":false,"has_wiki":false,"open_issues":8,"url":"https://github.com/github/help.github.com","forks":107,"size":424,"private":false,"language":"JavaScript","name":"help.github.com","owner":"github","has_issues":false,"description":"GitHub help guides"},{"watchers":1,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2010/08/24 12:41:38 -0700","created_at":"2010/08/24 12:16:26 -0700","fork":true,"has_wiki":true,"open_issues":0,"url":"https://github.com/github/project","forks":1,"size":296,"private":false,"language":"Ruby","name":"project","owner":"github","has_issues":false,"description":"test project for tutorial"},{"watchers":8,"has_downloads":true,"organization":"github","homepage":"http://git-scm.com","pushed_at":"2010/12/13 15:34:29 -0800","created_at":"2010/10/14 15:25:49 -0700","master_branch":"dup-post-receive-refs","fork":true,"has_wiki":true,"open_issues":0,"url":"https://github.com/github/git","forks":0,"size":292,"private":false,"language":"C","name":"git","owner":"github","has_issues":false,"description":"Git Source Code Mirror"},{"watchers":6,"has_downloads":true,"organization":"github","homepage":"http://rubyonrails.org","pushed_at":"2011/02/16 02:11:39 -0800","created_at":"2010/10/15 17:01:48 -0700","master_branch":"github","fork":true,"has_wiki":false,"open_issues":0,"url":"https://github.com/github/rails","forks":1,"size":460,"private":false,"language":"Ruby","name":"rails","owner":"github","has_issues":false,"integrate_branch":"master","description":"Ruby on Rails + GitHub patches"},{"watchers":2132,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2011/04/29 02:06:53 -0700","created_at":"2010/11/08 12:17:14 -0800","fork":false,"has_wiki":false,"open_issues":22,"url":"https://github.com/github/gitignore","forks":268,"size":520,"private":false,"name":"gitignore","owner":"github","has_issues":false,"description":"A collection of useful .gitignore templates"},{"watchers":2,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2010/11/17 18:25:38 -0800","created_at":"2010/11/17 18:06:38 -0800","fork":false,"has_wiki":true,"open_issues":0,"url":"https://github.com/github/testrepo","forks":3,"size":168,"private":false,"language":"C","name":"testrepo","owner":"github","has_issues":false,"description":"my test repo (used for nodeload tests)"},{"watchers":406,"has_downloads":true,"organization":"github","homepage":"http://help.github.com/dmca","pushed_at":"2011/06/07 16:24:20 -0700","created_at":"2011/01/28 15:58:38 -0800","fork":false,"has_wiki":false,"open_issues":0,"url":"https://github.com/github/dmca","forks":8,"size":148,"private":false,"name":"dmca","owner":"github","has_issues":false,"description":"DMCA takedowns GitHub has received"},{"watchers":3,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2011/02/19 17:38:14 -0800","created_at":"2011/02/19 17:37:40 -0800","fork":false,"has_wiki":true,"open_issues":0,"url":"https://github.com/github/pong","forks":1,"size":108,"private":false,"name":"pong","owner":"github","has_issues":true,"description":"Auxiliary repository for external ping checks"},{"watchers":484,"has_downloads":true,"organization":"github","homepage":"https://github.com/blog/799-win-a-ticket-to-pycon-us-2011","pushed_at":"2011/02/24 13:04:06 -0800","created_at":"2011/02/21 12:28:39 -0800","fork":false,"has_wiki":false,"open_issues":3,"url":"https://github.com/github/pycon2011","forks":271,"size":172,"private":false,"language":"Python","name":"pycon2011","owner":"github","has_issues":false,"description":"Fork me to win a ticket to PyCon 2011!"},{"watchers":39,"has_downloads":true,"organization":"github","homepage":"","pushed_at":"2011/03/17 00:28:10 -0700","created_at":"2011/02/22 18:13:11 -0800","fork":false,"has_wiki":true,"open_issues":0,"url":"https://github.com/github/email_reply_parser","forks":3,"size":844,"private":false,"language":"Ruby","name":"email_reply_parser","owner":"github","has_issues":true,"description":""},{"watchers":14,"has_downloads":true,"organization":"github","homepage":"http://developer.github.com","pushed_at":"2011/06/07 12:03:35 -0700","created_at":"2011/04/26 12:20:56 -0700","fork":false,"has_wiki":true,"open_issues":2,"url":"https://github.com/github/developer.github.com","forks":4,"size":220,"private":false,"language":"Ruby","name":"developer.github.com","owner":"github","has_issues":true,"description":"GitHub API documentation"}]} \ No newline at end of file +{"repositories":[{"description":"Media files for use in your GitHub integration projects","forks":7,"pushed_at":"2011/08/19 12:52:33 -0700","has_downloads":true,"created_at":"2008/03/09 15:43:49 -0700","organization":"github","homepage":"https://github.com/","watchers":67,"fork":false,"has_wiki":false,"size":132,"private":false,"open_issues":0,"name":"media","url":"https://github.com/github/media","owner":"github","has_issues":false},{"description":"Ruby wrapper for the Pygments syntax highlighter.","forks":19,"pushed_at":"2011/07/20 07:47:19 -0700","has_downloads":false,"created_at":"2008/05/10 21:45:03 -0700","organization":"github","homepage":"","watchers":150,"fork":false,"language":"Ruby","has_wiki":false,"size":136,"private":false,"open_issues":1,"name":"albino","url":"https://github.com/github/albino","owner":"github","has_issues":true},{"description":"Ruby and Rails core extensions used by GitHub.","forks":10,"pushed_at":"2008/05/10 21:52:00 -0700","has_downloads":false,"created_at":"2008/05/10 21:45:18 -0700","organization":"github","homepage":"","watchers":45,"fork":false,"language":"Ruby","has_wiki":false,"size":0,"private":false,"open_issues":1,"name":"hubahuba","url":"https://github.com/github/hubahuba","owner":"github","has_issues":true},{"description":"jQuery hotkeys plugin.","forks":7,"pushed_at":"2008/05/10 21:52:22 -0700","has_downloads":false,"created_at":"2008/05/10 21:45:31 -0700","organization":"github","homepage":"","watchers":55,"fork":false,"has_wiki":false,"size":0,"private":false,"open_issues":0,"name":"jquery-hotkeys","url":"https://github.com/github/jquery-hotkeys","owner":"github","has_issues":true},{"description":"jQuery version of technoweenie's relative date js library.","forks":10,"pushed_at":"2008/05/10 21:52:38 -0700","has_downloads":false,"created_at":"2008/05/10 21:45:52 -0700","organization":"github","homepage":"","watchers":79,"fork":false,"has_wiki":false,"size":0,"private":false,"open_issues":2,"name":"jquery-relatize_date","url":"https://github.com/github/jquery-relatize_date","owner":"github","has_issues":true},{"description":"Simple Rails request timer with even simpler js bookmarklet.","forks":0,"pushed_at":"2008/12/30 13:04:00 -0800","has_downloads":true,"created_at":"2008/05/10 21:46:10 -0700","organization":"github","homepage":"","watchers":11,"fork":false,"language":"Ruby","has_wiki":true,"size":140,"private":false,"open_issues":0,"name":"request_timer","url":"https://github.com/github/request_timer","owner":"github","has_issues":true},{"description":"Evil twin plugin version of will_paginate to work with jQuery hotkeys plugin.","forks":1,"pushed_at":"2008/05/10 21:53:11 -0700","has_downloads":true,"created_at":"2008/05/10 21:46:27 -0700","organization":"github","homepage":"","watchers":27,"fork":false,"language":"Ruby","has_wiki":true,"size":0,"private":false,"open_issues":0,"name":"will_paginate_with_hotkeys","url":"https://github.com/github/will_paginate_with_hotkeys","owner":"github","has_issues":true},{"description":"The scripts used to build RubyGems on GitHub","forks":3,"pushed_at":"2008/11/03 20:54:57 -0800","has_downloads":true,"created_at":"2008/10/24 15:29:32 -0700","organization":"github","homepage":"","watchers":26,"fork":false,"language":"Ruby","has_wiki":true,"size":76,"private":false,"open_issues":0,"name":"gem-builder","url":"https://github.com/github/gem-builder","owner":"github","has_issues":true},{"description":"GitHub's safe gem eval web service","forks":0,"pushed_at":"2009/04/08 17:36:30 -0700","has_downloads":true,"created_at":"2009/02/10 19:56:17 -0800","organization":"github","homepage":"","watchers":5,"fork":false,"language":"Ruby","has_wiki":true,"size":1024,"private":false,"open_issues":0,"name":"safegem","url":"https://github.com/github/safegem","owner":"github","has_issues":true},{"description":"API Documentation for GitHub","forks":50,"pushed_at":"2011/08/22 19:07:27 -0700","has_downloads":false,"created_at":"2009/02/17 15:51:23 -0800","organization":"github","homepage":"http://develop.github.com","watchers":147,"fork":false,"language":"JavaScript","has_wiki":false,"size":292,"private":false,"open_issues":38,"name":"develop.github.com","url":"https://github.com/github/develop.github.com","owner":"github","has_issues":true,"master_branch":"gh-pages"},{"description":"","forks":18,"pushed_at":"2011/08/10 13:56:42 -0700","has_downloads":true,"created_at":"2009/04/10 16:01:43 -0700","organization":"github","homepage":"http://github.github.com/github-flavored-markdown/","watchers":88,"fork":false,"language":"JavaScript","has_wiki":true,"size":272,"private":false,"open_issues":21,"name":"github-flavored-markdown","url":"https://github.com/github/github-flavored-markdown","owner":"github","has_issues":true,"master_branch":"gh-pages"},{"description":"The code we use to render README.your_favorite_markup","forks":84,"pushed_at":"2011/08/24 02:41:45 -0700","has_downloads":false,"created_at":"2009/10/30 18:02:46 -0700","organization":"github","homepage":"","watchers":373,"fork":false,"language":"Python","has_wiki":false,"size":500,"private":false,"open_issues":51,"name":"markup","url":"https://github.com/github/markup","owner":"github","has_issues":true},{"description":"A simple, Git-powered wiki with a sweet API and local frontend.","forks":152,"pushed_at":"2011/08/08 15:46:02 -0700","has_downloads":true,"created_at":"2010/03/29 11:30:53 -0700","organization":"github","homepage":"","watchers":1366,"fork":false,"language":"JavaScript","has_wiki":true,"size":608,"private":false,"open_issues":96,"name":"gollum","url":"https://github.com/github/gollum","owner":"github","has_issues":true},{"description":"Script to upload files to non-repo storage from the command line","forks":6,"pushed_at":"2010/08/01 01:04:46 -0700","has_downloads":true,"created_at":"2010/04/02 21:50:46 -0700","organization":"github","homepage":"","watchers":26,"fork":false,"language":"Ruby","has_wiki":true,"size":276,"private":false,"open_issues":2,"name":"upload","url":"https://github.com/github/upload","owner":"github","has_issues":true},{"description":"Official GitHub Services Integration - You can set these up in your repo admin screen under Service Hooks","forks":358,"pushed_at":"2011/08/24 08:01:45 -0700","has_downloads":false,"created_at":"2010/05/14 13:07:36 -0700","organization":"github","homepage":"http://github.com/blog/53-github-services-ipo","watchers":428,"fork":false,"language":"Ruby","has_wiki":false,"size":1028,"private":false,"open_issues":23,"name":"github-services","url":"https://github.com/github/github-services","owner":"github","has_issues":true},{"description":"GitHub help guides","forks":153,"pushed_at":"2011/08/22 19:52:54 -0700","has_downloads":false,"created_at":"2010/05/17 00:25:56 -0700","organization":"github","homepage":"http://help.github.com","watchers":234,"fork":false,"language":"JavaScript","has_wiki":false,"size":696,"private":false,"open_issues":16,"name":"help.github.com","url":"https://github.com/github/help.github.com","owner":"github","has_issues":false,"master_branch":"gh-pages"},{"description":"test project for tutorial","forks":1,"pushed_at":"2010/08/24 12:41:38 -0700","has_downloads":true,"created_at":"2010/08/24 12:16:26 -0700","organization":"github","homepage":"","watchers":1,"fork":true,"language":"Ruby","has_wiki":true,"size":296,"private":false,"open_issues":0,"name":"project","url":"https://github.com/github/project","owner":"github","has_issues":false},{"description":"Git Source Code Mirror","forks":1,"pushed_at":"2011/08/16 16:59:50 -0700","has_downloads":true,"created_at":"2010/10/14 15:25:49 -0700","organization":"github","homepage":"http://git-scm.com","watchers":10,"fork":true,"language":"C","has_wiki":true,"size":212,"private":false,"open_issues":0,"name":"git","url":"https://github.com/github/git","owner":"github","has_issues":false,"master_branch":"dup-post-receive-refs"},{"description":"Ruby on Rails + GitHub patches","forks":2,"pushed_at":"2011/02/16 02:11:39 -0800","has_downloads":true,"created_at":"2010/10/15 17:01:48 -0700","organization":"github","homepage":"http://rubyonrails.org","watchers":8,"fork":true,"language":"Ruby","has_wiki":false,"size":460,"private":false,"open_issues":0,"name":"rails","url":"https://github.com/github/rails","owner":"github","has_issues":false,"integrate_branch":"master","master_branch":"github"},{"description":"A collection of useful .gitignore templates","forks":336,"pushed_at":"2011/08/20 09:38:11 -0700","has_downloads":true,"created_at":"2010/11/08 12:17:14 -0800","organization":"github","homepage":"","watchers":2630,"fork":false,"has_wiki":false,"size":520,"private":false,"open_issues":47,"name":"gitignore","url":"https://github.com/github/gitignore","owner":"github","has_issues":false},{"description":"DMCA takedowns GitHub has received","forks":8,"pushed_at":"2011/07/03 12:25:15 -0700","has_downloads":true,"created_at":"2011/01/28 15:58:38 -0800","organization":"github","homepage":"http://help.github.com/dmca","watchers":436,"fork":false,"has_wiki":false,"size":136,"private":false,"open_issues":0,"name":"dmca","url":"https://github.com/github/dmca","owner":"github","has_issues":false},{"description":"Auxiliary repository for external ping checks","forks":1,"pushed_at":"2011/02/19 17:38:14 -0800","has_downloads":true,"created_at":"2011/02/19 17:37:40 -0800","organization":"github","homepage":"","watchers":3,"fork":false,"has_wiki":true,"size":108,"private":false,"open_issues":0,"name":"pong","url":"https://github.com/github/pong","owner":"github","has_issues":true},{"description":"Fork me to win a ticket to PyCon 2011!","forks":233,"pushed_at":"2011/02/24 13:04:06 -0800","has_downloads":true,"created_at":"2011/02/21 12:28:39 -0800","organization":"github","homepage":"https://github.com/blog/799-win-a-ticket-to-pycon-us-2011","watchers":462,"fork":false,"language":"Python","has_wiki":false,"size":172,"private":false,"open_issues":3,"name":"pycon2011","url":"https://github.com/github/pycon2011","owner":"github","has_issues":false},{"description":"","forks":3,"pushed_at":"2011/08/23 16:18:47 -0700","has_downloads":true,"created_at":"2011/02/22 18:13:11 -0800","organization":"github","homepage":"","watchers":46,"fork":false,"language":"Ruby","has_wiki":true,"size":116,"private":false,"open_issues":0,"name":"email_reply_parser","url":"https://github.com/github/email_reply_parser","owner":"github","has_issues":true},{"description":"GitHub API documentation","forks":22,"pushed_at":"2011/08/22 20:06:11 -0700","has_downloads":true,"created_at":"2011/04/26 12:20:56 -0700","organization":"github","homepage":"http://developer.github.com","watchers":59,"fork":false,"language":"Ruby","has_wiki":true,"size":256,"private":false,"open_issues":14,"name":"developer.github.com","url":"https://github.com/github/developer.github.com","owner":"github","has_issues":true},{"description":"Language Savant","forks":61,"pushed_at":"2011/08/23 10:42:19 -0700","has_downloads":true,"created_at":"2011/05/09 15:53:13 -0700","organization":"github","homepage":"","watchers":552,"fork":false,"language":"JavaScript","has_wiki":false,"size":664,"private":false,"open_issues":0,"name":"linguist","url":"https://github.com/github/linguist","owner":"github","has_issues":true},{"description":"github terminal","forks":2,"pushed_at":"2011/07/06 21:18:47 -0700","has_downloads":true,"created_at":"2011/05/25 09:13:15 -0700","organization":"github","homepage":"https://ghterm.heroku.com","watchers":21,"fork":false,"language":"JavaScript","has_wiki":true,"size":192,"private":false,"open_issues":5,"name":"ghterm","url":"https://github.com/github/ghterm","owner":"github","has_issues":true},{"description":"DON'T DELETE THIS. USED FOR MONITORING AND WHATNOT.","forks":1,"pushed_at":"2011/06/23 13:36:23 -0700","has_downloads":true,"created_at":"2011/06/23 13:34:49 -0700","organization":"github","homepage":"","watchers":3,"fork":false,"has_wiki":true,"size":0,"private":false,"open_issues":0,"name":"testrepo","url":"https://github.com/github/testrepo","owner":"github","has_issues":true},{"description":"node.js client for Etsy'd StatsD server","forks":0,"pushed_at":"2011/08/02 20:04:55 -0700","has_downloads":true,"created_at":"2011/08/01 16:04:48 -0700","organization":"github","homepage":"","watchers":1,"fork":true,"language":"JavaScript","has_wiki":true,"size":112,"private":false,"open_issues":0,"name":"node-statsd","url":"https://github.com/github/node-statsd","owner":"github","has_issues":false},{"description":"A Ruby Statsd client that isn't a direct port of the Python example code. Because Ruby isn't Python.","forks":0,"pushed_at":"2011/08/10 09:29:51 -0700","has_downloads":true,"created_at":"2011/08/10 08:35:44 -0700","organization":"github","homepage":"","watchers":1,"fork":true,"language":"Ruby","has_wiki":false,"size":120,"private":false,"open_issues":0,"name":"statsd-ruby","url":"https://github.com/github/statsd-ruby","owner":"github","has_issues":false},{"description":"Grit gives you object oriented read/write access to Git repositories via Ruby.","forks":0,"pushed_at":"2011/08/19 22:50:44 -0700","has_downloads":true,"created_at":"2011/08/18 09:43:26 -0700","organization":"github","homepage":"http://grit.rubyforge.org/","watchers":2,"fork":true,"language":"Ruby","has_wiki":true,"size":120,"private":false,"open_issues":0,"name":"grit","url":"https://github.com/github/grit","owner":"github","has_issues":false}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,pulls,ask,python-github2,39,599fd11f8dd1b224e0c640d3f70f34c8 b/tests/data/github.com,api,v2,json,pulls,ask,python-github2,39,599fd11f8dd1b224e0c640d3f70f34c8 index 1bdbf22..cda75fa 100644 --- a/tests/data/github.com,api,v2,json,pulls,ask,python-github2,39,599fd11f8dd1b224e0c640d3f70f34c8 +++ b/tests/data/github.com,api,v2,json,pulls,ask,python-github2,39,599fd11f8dd1b224e0c640d3f70f34c8 @@ -1,14 +1,15 @@ status: 200 x-ratelimit-remaining: 57 content-location: https://github.com/api/v2/json/pulls/ask/python-github2/39 -x-runtime: 149ms -content-length: 12398 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 12222 +server: nginx/1.0.4 +x-runtime: 106ms x-ratelimit-limit: 60 -etag: "0226e420f8447aaca8f8eb4add9a6167" +etag: "6139ed3c079c5dc3080cedd92858edf7" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:45:25 GMT +date: Thu, 25 Aug 2011 06:55:51 GMT content-type: application/json; charset=utf-8 -{"pull":{"html_url":"https://github.com/ask/python-github2/pull/39","issue_updated_at":"2011-05-29T15:37:08Z","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":39.0,"number":39,"votes":0,"issue_user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"comments":3,"body":"\nFeeble brainstorming session...\n\nI've just been bitten quite badly by the lack of timezone handling, the cause is the use of naive datetime objects in the 'GitHub' timezone(`America/Los_Angeles`). While processing some tasks that span the PST/PDT changeover the ordering of events is broken.\n\nOptions are:\n\n1. Leave alone and try to process the datetime objects externally, somewhat easy but not a good solution as it requires duplication in each project that requires accurate date handling\n2. Start producing non-naive datetime objects, breaks any caller who is not prepared for it.\n3. Introduce a setting to toggle naive object availability, defaulting to naive objects to maintain backwards compatibility\n\n[python-dateutil](http://labix.org/python-dateutil) makes handling option 1 quite easy, and also simplifies the handling of option 3 at the cost of another external dependency. Option 2 is just pure evil, or pure stupidity depending on point of view.\n\nOption 3 results in a parsing using something like the following entirely untested code:\n\n datetime_ = parser.parse(github_date)\n if NAIVE:\n datetime_.replace(tzinfo=None)\n return datetime_\n\nAnd similarly producing GitHub compatible date strings would require handling of naive formats with equally untested code such as:\n\n if NAIVE:\n datetime_ = datetime_.replace(tz.gettz(\"America/Los_Angeles\"))\n return datetime_.strftime(\"%Y/%m/%d %H:%M:%S %z\")","title":"Datetime timezone handling.","diff_url":"https://github.com/ask/python-github2/pull/39.diff","updated_at":"2011-06-07T13:56:50Z","created_at":"2011-04-30T12:37:40Z","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"base":{"label":"ask:master","user":{"name":"Ask Solem Hoel","company":"RabbitMQ, VMware, Inc.","gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","location":"London, UK","type":"User","login":"ask","email":"ask@celeryproject.org"},"ref":"master","repository":{"watchers":143,"has_downloads":true,"homepage":"http://packages.python.org/github2","pushed_at":"2011/06/06 16:15:04 -0700","created_at":"2009/04/18 08:31:12 -0700","fork":false,"has_wiki":true,"open_issues":5,"url":"https://github.com/ask/python-github2","forks":50,"size":112,"private":false,"language":"Python","name":"python-github2","owner":"ask","has_issues":true,"description":"github client in python, with issues support."},"sha":"6a79f43f174acd3953ced69263c06d311a6bda56"},"mergeable":false,"patch_url":"https://github.com/ask/python-github2/pull/39.patch","discussion":[{"type":"IssueComment","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","created_at":"2011/04/18 08:28:10 -0700","body":"The lack of timezone handling also exhibits itself for any consumers who use a timedelta to convert to local time for the duration of any gap between GitHub's switch to DST and their own. On the order of 2-4 weeks a year for regions that I personally care about ;)","updated_at":"2011/04/18 08:28:10 -0700","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":1021613},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"6738adaf013cef84fb58d2aa755557e5358d122b"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"458c90b9f07c00c1a988d6f420130ee8bbf6503c","committed_date":"2011-04-30T03:03:06-07:00","authored_date":"2011-04-30T03:03:06-07:00","message":"Added feature spec for naive date handling.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"f2a5b3896a543e1b0f3381d3c35c93d068e168fd"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"458c90b9f07c00c1a988d6f420130ee8bbf6503c"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"8cca6a3d9815f84f61d0435c6592685a95c303c5","committed_date":"2011-04-30T03:06:07-07:00","authored_date":"2011-04-30T03:06:07-07:00","message":"Added feature spec for timezone-aware date handling.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"152153130dce24262d76b40286bd88a5ce3141fd"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"8cca6a3d9815f84f61d0435c6592685a95c303c5"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"ced596c31261c89a16df9b818836ff4e63022939","committed_date":"2011-04-30T03:07:35-07:00","authored_date":"2011-04-30T03:07:35-07:00","message":"Added step definitions for date handling support.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"04616bd15ea48dc3ab786e7edfb594c0856be38f"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"ced596c31261c89a16df9b818836ff4e63022939"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"0ca5486e583a3220cd3702f8520a8664f7969b57","committed_date":"2011-04-30T03:19:32-07:00","authored_date":"2011-04-30T03:19:32-07:00","message":"Added naive datetime implementation.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"bc78b38d34d87c3489fa296bc83462d060fa1aaf"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"0ca5486e583a3220cd3702f8520a8664f7969b57"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"fb70d0ada52ece6b0a345c203ac0a488e80acd21","committed_date":"2011-04-30T03:21:36-07:00","authored_date":"2011-04-30T03:21:36-07:00","message":"Added timezone-aware datetime implementation.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"02f98c58ea4acdbcd32e5813c8ceda57d956d545"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"fb70d0ada52ece6b0a345c203ac0a488e80acd21"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"8a7d44bf92c082312280d4e86c47aeee6d570e25","committed_date":"2011-04-30T03:27:30-07:00","authored_date":"2011-04-30T03:27:30-07:00","message":"Document core.NAIVE.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"141c8f0f37f9a3cb1a545c809806fec41e8ceeb7"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"8a7d44bf92c082312280d4e86c47aeee6d570e25"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"db2ac5452e81fb691b99aa307b3b0b25b2e729ff","committed_date":"2011-04-30T03:30:36-07:00","authored_date":"2011-04-30T03:30:36-07:00","message":"Added python-dateutil to requirements.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"bcd8843e10e8c4a4b8ee982476f371dc0764ea8e"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"db2ac5452e81fb691b99aa307b3b0b25b2e729ff"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"b3e405b246fd15ced629a12ec19ad5a282e2bfd9","committed_date":"2011-04-30T04:23:16-07:00","authored_date":"2011-04-30T04:23:00-07:00","message":"Require python-dateutil lower than v2.0.\n\nv2.0 only works with Python 3.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"b73cbceb5b54f99aec6e45e76e11ef95d292d8db"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"b3e405b246fd15ced629a12ec19ad5a282e2bfd9"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"a2c2b287f7863109c83636542c699d509e6c485f","committed_date":"2011-04-30T04:24:20-07:00","authored_date":"2011-04-30T04:24:20-07:00","message":"Run lettuce tests with tox.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"27c5c5bcc58b572e9c186caeddfa2b5166fd568b"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"a2c2b287f7863109c83636542c699d509e6c485f"}],"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":"a31cfb70343d3ac9d6330e6328008c0bc690a5a1","committed_date":"2011-04-30T04:31:45-07:00","authored_date":"2011-04-30T04:31:43-07:00","message":"Don't run lettuce with Python 2.4.\n\nLooks like I've been running a patched version, and didn't realise Python 2.4\nwasn't supported upstream.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"299dca4efab1cc0d76ee30f2335258ace888fc5c"},{"type":"IssueComment","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","created_at":"2011/04/30 05:41:09 -0700","body":"First-run implementation of option 3 from above. Works, but needs some refactoring.","updated_at":"2011/04/30 05:41:58 -0700","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":1080583},{"type":"IssueComment","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","created_at":"2011/05/29 08:37:08 -0700","body":"With the [pull request merge](https://github.com/ask/python-github2/pull/28) there is a new issue of handling timezones because pull requests don't use the \"GitHub timezone\".","updated_at":"2011/05/29 08:37:08 -0700","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"id":1257226}],"issue_created_at":"2011-04-18T15:25:47Z","labels":[],"head":{"label":"JNRowe:timezone_support","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"ref":"timezone_support","repository":{"watchers":3,"has_downloads":true,"homepage":"","pushed_at":"2011/06/06 16:14:48 -0700","created_at":"2010/10/31 01:03:09 -0700","fork":true,"has_wiki":true,"open_issues":0,"url":"https://github.com/JNRowe/python-github2","forks":0,"size":156,"private":false,"language":"Python","name":"python-github2","owner":"JNRowe","has_issues":false,"description":"github client in python, with issues support."},"sha":"a31cfb70343d3ac9d6330e6328008c0bc690a5a1"},"state":"open"}} \ No newline at end of file +{"pull":{"issue_updated_at":"2011-06-23T09:33:57Z","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":39.0,"number":39,"votes":0,"html_url":"https://github.com/ask/python-github2/pull/39","mergeable":true,"created_at":"2011-06-20T16:51:24Z","comments":4,"body":"\nFeeble brainstorming session...\n\nI've just been bitten quite badly by the lack of timezone handling, the cause is the use of naive datetime objects in the 'GitHub' timezone(`America/Los_Angeles`). While processing some tasks that span the PST/PDT changeover the ordering of events is broken.\n\nOptions are:\n\n1. Leave alone and try to process the datetime objects externally, somewhat easy but not a good solution as it requires duplication in each project that requires accurate date handling\n2. Start producing non-naive datetime objects, breaks any caller who is not prepared for it.\n3. Introduce a setting to toggle naive object availability, defaulting to naive objects to maintain backwards compatibility\n\n[python-dateutil](http://labix.org/python-dateutil) makes handling option 1 quite easy, and also simplifies the handling of option 3 at the cost of another external dependency. Option 2 is just pure evil, or pure stupidity depending on point of view.\n\nOption 3 results in a parsing using something like the following entirely untested code:\n\n datetime_ = parser.parse(github_date)\n if NAIVE:\n datetime_.replace(tzinfo=None)\n return datetime_\n\nAnd similarly producing GitHub compatible date strings would require handling of naive formats with equally untested code such as:\n\n if NAIVE:\n datetime_ = datetime_.replace(tz.gettz(\"America/Los_Angeles\"))\n return datetime_.strftime(\"%Y/%m/%d %H:%M:%S %z\")","title":"Datetime timezone handling.","diff_url":"https://github.com/ask/python-github2/pull/39.diff","head":{"sha":"5438e41d9c390f53089ed3fa0842831fafc73d8e","label":"ask:5438e41d9c390f53089ed3fa0842831fafc73d8e","repository":{"description":"github client in python, with issues support.","forks":55,"pushed_at":"2011/08/15 13:20:40 -0700","has_downloads":true,"created_at":"2009/04/18 08:31:12 -0700","homepage":"http://packages.python.org/github2","watchers":149,"fork":false,"language":"Python","has_wiki":true,"size":476,"private":false,"open_issues":4,"name":"python-github2","url":"https://github.com/ask/python-github2","owner":"ask","has_issues":true},"user":{"name":"Ask Solem Hoel","company":"RabbitMQ, VMware","gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","location":"London, UK","type":"User","login":"ask","email":"ask@celeryproject.org"},"ref":"5438e41d9c390f53089ed3fa0842831fafc73d8e"},"issue_user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"base":{"sha":"0786a96c80afad7bbd0747df590f649eaa46ca04","label":"ask:master","repository":{"description":"github client in python, with issues support.","forks":55,"pushed_at":"2011/08/15 13:20:40 -0700","has_downloads":true,"created_at":"2009/04/18 08:31:12 -0700","homepage":"http://packages.python.org/github2","watchers":149,"fork":false,"language":"Python","has_wiki":true,"size":476,"private":false,"open_issues":4,"name":"python-github2","url":"https://github.com/ask/python-github2","owner":"ask","has_issues":true},"user":{"name":"Ask Solem Hoel","company":"RabbitMQ, VMware","gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","location":"London, UK","type":"User","login":"ask","email":"ask@celeryproject.org"},"ref":"master"},"patch_url":"https://github.com/ask/python-github2/pull/39.patch","discussion":[{"type":"IssueComment","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","created_at":"2011/04/18 08:28:10 -0700","body":"The lack of timezone handling also exhibits itself for any consumers who use a timedelta to convert to local time for the duration of any gap between GitHub's switch to DST and their own. On the order of 2-4 weeks a year for regions that I personally care about ;)","updated_at":"2011/04/18 08:28:10 -0700","id":1021613,"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"}},{"type":"IssueComment","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","created_at":"2011/04/30 05:41:09 -0700","body":"First-run implementation of option 3 from above. Works, but needs some refactoring.","updated_at":"2011/04/30 05:41:58 -0700","id":1080583,"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"}},{"type":"IssueComment","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","created_at":"2011/05/29 08:37:08 -0700","body":"With the [pull request merge](https://github.com/ask/python-github2/pull/28) there is a new issue of handling timezones because pull requests don't use the \"GitHub timezone\".","updated_at":"2011/05/29 08:37:08 -0700","id":1257226,"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"}},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"d5d2e0e86d67d29e47e8d6761deeed07e9780f44"}],"id":"bf35a12199ae8431bf321fa6e4ee6e596b5137ba","committed_date":"2011-06-12T18:41:43-07:00","authored_date":"2011-04-30T03:19:32-07:00","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"message":"Added naive datetime implementation.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"ea8747e3cb0c4e375e8b1a5ad594bc8fbaf5ba44"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"bf35a12199ae8431bf321fa6e4ee6e596b5137ba"}],"id":"5019b5f0dd27619bfc99162637d709dc1a5e32e6","committed_date":"2011-06-12T19:02:40-07:00","authored_date":"2011-04-30T03:21:36-07:00","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"message":"Added timezone-aware datetime implementation.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"64682f561d53986ff30d422d3862b65cb28c858a"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"69676d331f6a0b38eb373dbf6026a60dbac44c41"}],"id":"a6ec7be62110eab205f23a799a78e05b821b51ca","committed_date":"2011-06-12T19:02:41-07:00","authored_date":"2011-04-30T04:23:00-07:00","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"message":"Require python-dateutil lower than v2.0.\n\nv2.0 only works with Python 3.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"d8a4ed6f73e6c96775f4bee61a7527ef5d080d7e"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"5019b5f0dd27619bfc99162637d709dc1a5e32e6"}],"id":"606db7c1d930c111d5766f21c49e8d66f1faf353","committed_date":"2011-06-12T19:02:41-07:00","authored_date":"2011-04-30T03:27:30-07:00","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"message":"Document core.NAIVE.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"666b5a96a8efc5f2b1e71427d0a10167d529e859"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"606db7c1d930c111d5766f21c49e8d66f1faf353"}],"id":"69676d331f6a0b38eb373dbf6026a60dbac44c41","committed_date":"2011-06-12T19:02:41-07:00","authored_date":"2011-04-30T03:30:36-07:00","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"message":"Added python-dateutil to requirements.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"6c35929758727315b0896dd6dc0c2a52a9638361"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"a6ec7be62110eab205f23a799a78e05b821b51ca"}],"id":"1b8ceff9d9787e61b0c562109bc5f977b0fe2b07","committed_date":"2011-06-12T19:04:57-07:00","authored_date":"2011-06-12T19:02:14-07:00","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"message":"Added tests for timezone-aware datetimes.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"cc1667b0b89fe21b4e8032bcaee864d2775918ee"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"1b8ceff9d9787e61b0c562109bc5f977b0fe2b07"}],"id":"69e7bc54160de7ee2534e6dc57331724678afcf2","committed_date":"2011-06-12T19:16:50-07:00","authored_date":"2011-06-12T19:15:02-07:00","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"message":"Refactoring of datetime parsing.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"39f2d9a7ceeb6ca25d95758fff8f0c4119c5e17b"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"69e7bc54160de7ee2534e6dc57331724678afcf2"}],"id":"6e91ec332f144ede1bebdbac12f0eb7d8e37b802","committed_date":"2011-06-12T19:27:53-07:00","authored_date":"2011-06-12T19:26:45-07:00","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"message":"Remove duplicate timezone mangling in datetime handling.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"54765bb6953d64b02117e2a041e9fc2910e67680"},{"type":"Commit","author":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"parents":[{"id":"6e91ec332f144ede1bebdbac12f0eb7d8e37b802"}],"id":"5438e41d9c390f53089ed3fa0842831fafc73d8e","committed_date":"2011-06-12T19:39:16-07:00","authored_date":"2011-06-12T19:39:16-07:00","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"message":"Document core.GITHUB_TZ.","committer":{"name":"James Rowe","login":"JNRowe","email":"jnrowe@gmail.com"},"tree":"839e75243afd3707e0060b96a188a41e92a14bd9"},{"type":"IssueComment","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","created_at":"2011/06/20 09:53:42 -0700","body":"The mostly new commits now listed in this pull request(`JNRowe/python-github2 feat/timezone_support`) are what I'm planning to merge RSN.","updated_at":"2011/06/20 09:53:42 -0700","id":1404012,"user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"}}],"closed_at":"2011-06-23T09:33:57Z","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"updated_at":"2011-06-23T09:28:42Z","issue_created_at":"2011-04-18T15:25:47Z","labels":[],"state":"closed"}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,pulls,ask,python-github2,open,80fdb1a6835888c7811257428c93eef4 b/tests/data/github.com,api,v2,json,pulls,ask,python-github2,open,80fdb1a6835888c7811257428c93eef4 index e9dc3d0..4b68b12 100644 --- a/tests/data/github.com,api,v2,json,pulls,ask,python-github2,open,80fdb1a6835888c7811257428c93eef4 +++ b/tests/data/github.com,api,v2,json,pulls,ask,python-github2,open,80fdb1a6835888c7811257428c93eef4 @@ -1,14 +1,15 @@ status: 200 -x-ratelimit-remaining: 58 +x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/pulls/ask/python-github2/open -x-runtime: 44ms -content-length: 6535 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 2644 +server: nginx/1.0.4 +x-runtime: 37ms x-ratelimit-limit: 60 -etag: "e579ac09b626d198c687da824b39edc2" +etag: "a210795488a95b7c56c4c42cb4467065" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:44:58 GMT +date: Thu, 25 Aug 2011 06:56:02 GMT content-type: application/json; charset=utf-8 -{"pulls":[{"html_url":"https://github.com/ask/python-github2/pull/39","issue_updated_at":"2011-05-29T15:37:08Z","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","position":39.0,"number":39,"votes":0,"issue_user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"comments":3,"body":"\nFeeble brainstorming session...\n\nI've just been bitten quite badly by the lack of timezone handling, the cause is the use of naive datetime objects in the 'GitHub' timezone(`America/Los_Angeles`). While processing some tasks that span the PST/PDT changeover the ordering of events is broken.\n\nOptions are:\n\n1. Leave alone and try to process the datetime objects externally, somewhat easy but not a good solution as it requires duplication in each project that requires accurate date handling\n2. Start producing non-naive datetime objects, breaks any caller who is not prepared for it.\n3. Introduce a setting to toggle naive object availability, defaulting to naive objects to maintain backwards compatibility\n\n[python-dateutil](http://labix.org/python-dateutil) makes handling option 1 quite easy, and also simplifies the handling of option 3 at the cost of another external dependency. Option 2 is just pure evil, or pure stupidity depending on point of view.\n\nOption 3 results in a parsing using something like the following entirely untested code:\n\n datetime_ = parser.parse(github_date)\n if NAIVE:\n datetime_.replace(tzinfo=None)\n return datetime_\n\nAnd similarly producing GitHub compatible date strings would require handling of naive formats with equally untested code such as:\n\n if NAIVE:\n datetime_ = datetime_.replace(tz.gettz(\"America/Los_Angeles\"))\n return datetime_.strftime(\"%Y/%m/%d %H:%M:%S %z\")","title":"Datetime timezone handling.","diff_url":"https://github.com/ask/python-github2/pull/39.diff","updated_at":"2011-06-07T13:56:50Z","created_at":"2011-04-30T12:37:40Z","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"base":{"label":"ask:master","user":{"name":"Ask Solem Hoel","company":"RabbitMQ, VMware, Inc.","gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","location":"London, UK","type":"User","login":"ask","email":"ask@celeryproject.org"},"ref":"master","repository":{"watchers":143,"has_downloads":true,"homepage":"http://packages.python.org/github2","pushed_at":"2011/06/06 16:15:04 -0700","created_at":"2009/04/18 08:31:12 -0700","fork":false,"has_wiki":true,"open_issues":5,"url":"https://github.com/ask/python-github2","forks":50,"size":112,"private":false,"language":"Python","name":"python-github2","owner":"ask","has_issues":true,"description":"github client in python, with issues support."},"sha":"6a79f43f174acd3953ced69263c06d311a6bda56"},"mergeable":false,"patch_url":"https://github.com/ask/python-github2/pull/39.patch","issue_created_at":"2011-04-18T15:25:47Z","labels":[],"head":{"label":"JNRowe:timezone_support","user":{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},"ref":"timezone_support","repository":{"watchers":3,"has_downloads":true,"homepage":"","pushed_at":"2011/06/06 16:14:48 -0700","created_at":"2010/10/31 01:03:09 -0700","fork":true,"has_wiki":true,"open_issues":0,"url":"https://github.com/JNRowe/python-github2","forks":0,"size":156,"private":false,"language":"Python","name":"python-github2","owner":"JNRowe","has_issues":false,"description":"github client in python, with issues support."},"sha":"a31cfb70343d3ac9d6330e6328008c0bc690a5a1"},"state":"open"},{"html_url":"https://github.com/ask/python-github2/pull/24","issue_updated_at":"2011-01-05T00:26:07Z","gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","position":24.0,"number":24,"votes":0,"issue_user":{"name":"Alexander Artemenko","company":"Yandex","gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","location":"Moscow","blog":"http://dev.svetlyak.ru","type":"User","login":"svetlyak40wt","email":"github@svetlyak.ru"},"comments":11,"body":"Hi, I added an optional 'page' argument to receive not only last 35 commits, but all others too. Think, such approach could be useful for other list operations too.","title":"Pagination support for commits.","diff_url":"https://github.com/ask/python-github2/pull/24.diff","updated_at":"2011-05-22T07:56:37Z","created_at":"2010-12-09T07:50:26Z","user":{"name":"Alexander Artemenko","company":"Yandex","gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","location":"Moscow","blog":"http://dev.svetlyak.ru","type":"User","login":"svetlyak40wt","email":"github@svetlyak.ru"},"base":{"label":"ask:master","user":{"name":"Ask Solem Hoel","company":"RabbitMQ, VMware, Inc.","gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","location":"London, UK","type":"User","login":"ask","email":"ask@celeryproject.org"},"ref":"master","repository":{"watchers":143,"has_downloads":true,"homepage":"http://packages.python.org/github2","pushed_at":"2011/06/06 16:15:04 -0700","created_at":"2009/04/18 08:31:12 -0700","fork":false,"has_wiki":true,"open_issues":5,"url":"https://github.com/ask/python-github2","forks":50,"size":112,"private":false,"language":"Python","name":"python-github2","owner":"ask","has_issues":true,"description":"github client in python, with issues support."},"sha":"6a79f43f174acd3953ced69263c06d311a6bda56"},"mergeable":null,"patch_url":"https://github.com/ask/python-github2/pull/24.patch","issue_created_at":"2010-12-09T07:50:26Z","labels":[],"head":{"label":"svetlyak40wt:master","user":{"name":"Alexander Artemenko","company":"Yandex","gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","location":"Moscow","blog":"http://dev.svetlyak.ru","type":"User","login":"svetlyak40wt","email":"github@svetlyak.ru"},"ref":"master","repository":{"watchers":1,"has_downloads":true,"homepage":"","pushed_at":"2011/01/04 16:32:23 -0800","created_at":"2010/12/08 10:39:12 -0800","fork":true,"has_wiki":true,"open_issues":0,"url":"https://github.com/svetlyak40wt/python-github2","forks":0,"size":176,"private":false,"name":"python-github2","owner":"svetlyak40wt","has_issues":false,"description":"github client in python, with issues support."},"sha":"f337f3c7b48e85dda72744f7696c693fe8d5fee0"},"state":"open"}]} \ No newline at end of file +{"pulls":[{"issue_updated_at":"2011-01-05T00:26:07Z","gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","position":24.0,"number":24,"votes":0,"html_url":"https://github.com/ask/python-github2/pull/24","mergeable":null,"created_at":"2010-12-09T07:50:26Z","comments":11,"body":"Hi, I added an optional 'page' argument to receive not only last 35 commits, but all others too. Think, such approach could be useful for other list operations too.","title":"Pagination support for commits.","diff_url":"https://github.com/ask/python-github2/pull/24.diff","head":{"sha":"f337f3c7b48e85dda72744f7696c693fe8d5fee0","label":"svetlyak40wt:master","repository":{"description":"github client in python, with issues support.","forks":0,"pushed_at":"2011/01/04 16:32:23 -0800","has_downloads":true,"created_at":"2010/12/08 10:39:12 -0800","homepage":"","watchers":1,"fork":true,"has_wiki":true,"size":176,"private":false,"open_issues":0,"name":"python-github2","url":"https://github.com/svetlyak40wt/python-github2","owner":"svetlyak40wt","has_issues":false},"user":{"name":"Alexander Artemenko","company":"Yandex","gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","location":"Moscow","blog":"http://dev.svetlyak.ru","type":"User","login":"svetlyak40wt","email":"github@svetlyak.ru"},"ref":"master"},"issue_user":{"name":"Alexander Artemenko","company":"Yandex","gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","location":"Moscow","blog":"http://dev.svetlyak.ru","type":"User","login":"svetlyak40wt","email":"github@svetlyak.ru"},"base":{"sha":"6a79f43f174acd3953ced69263c06d311a6bda56","label":"ask:master","repository":{"description":"github client in python, with issues support.","forks":55,"pushed_at":"2011/08/15 13:20:40 -0700","has_downloads":true,"created_at":"2009/04/18 08:31:12 -0700","homepage":"http://packages.python.org/github2","watchers":149,"fork":false,"language":"Python","has_wiki":true,"size":476,"private":false,"open_issues":4,"name":"python-github2","url":"https://github.com/ask/python-github2","owner":"ask","has_issues":true},"user":{"name":"Ask Solem Hoel","company":"RabbitMQ, VMware","gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","location":"London, UK","type":"User","login":"ask","email":"ask@celeryproject.org"},"ref":"master"},"patch_url":"https://github.com/ask/python-github2/pull/24.patch","user":{"name":"Alexander Artemenko","company":"Yandex","gravatar_id":"5b3558b0fd5ca9c08d9061a6e51b555a","location":"Moscow","blog":"http://dev.svetlyak.ru","type":"User","login":"svetlyak40wt","email":"github@svetlyak.ru"},"updated_at":"2011-05-22T07:56:37Z","issue_created_at":"2010-12-09T07:50:26Z","labels":[],"state":"open"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,pulls,robbyrussell,oh-my-zsh,open,b0f946d4b280dcc6f7b65dd7fddeea6b b/tests/data/github.com,api,v2,json,pulls,robbyrussell,oh-my-zsh,open,b0f946d4b280dcc6f7b65dd7fddeea6b new file mode 100644 index 0000000..7e87993 --- /dev/null +++ b/tests/data/github.com,api,v2,json,pulls,robbyrussell,oh-my-zsh,open,b0f946d4b280dcc6f7b65dd7fddeea6b @@ -0,0 +1,16 @@ +status: 200 +x-ratelimit-remaining: 57 +content-location: https://github.com/api/v2/json/pulls/robbyrussell/oh-my-zsh/open?page=2 +-content-encoding: gzip +connection: keep-alive +content-length: 161938 +server: nginx/1.0.4 +x-runtime: 2179ms +x-ratelimit-limit: 60 +etag: "3ac026d624c5fb42df721ef6074f8e23" +cache-control: private, max-age=0, must-revalidate +date: Wed, 19 Oct 2011 08:41:49 GMT +x-frame-options: deny +content-type: application/json; charset=utf-8 + +{"pulls":[{"issue_updated_at":"2011-06-12T16:09:05Z","gravatar_id":"8357260cb0018190686f892ff6c05dab","position":421.0,"number":422,"votes":0,"user":{"name":"Simon","gravatar_id":"8357260cb0018190686f892ff6c05dab","type":"User","login":"else"},"comments":0,"body":"I've modified the install.sh script to check if zsh is installed.\r\n\r\n--Simon","title":"checking if zsh is installed before switching to the awesomeness","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/422.diff","updated_at":"2011-10-10T12:51:01Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/422","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/422.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ed990f61ff66a5c409ef2d8a444820cecf098188","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Simon","gravatar_id":"8357260cb0018190686f892ff6c05dab","type":"User","login":"else"},"created_at":"2011-06-12T16:04:16Z","head":{"user":{"name":"Simon","gravatar_id":"8357260cb0018190686f892ff6c05dab","type":"User","login":"else"},"ref":"zshcheck","sha":"7e3f2342eb548d8c1870864335a2051bc58f15d0","label":"else:zshcheck","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/06/12 09:02:55 -0700","url":"https://github.com/else/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 70 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":768,"private":false,"name":"oh-my-zsh","owner":"else","created_at":"2011/03/24 01:48:09 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2011-06-12T16:04:16Z","labels":[],"state":"open"},{"issue_updated_at":"2011-06-09T22:22:26Z","gravatar_id":"7f81fd5c7792dabca22c433abbfbf0cb","position":415.0,"number":416,"votes":0,"user":{"name":"Danish Khan","company":"Engine Yard","gravatar_id":"7f81fd5c7792dabca22c433abbfbf0cb","location":"San Francisco, CA","blog":"http://danishkhan.org","type":"User","login":"danishkhan","email":"danishkhan@danishkhan.org"},"comments":0,"body":"","title":"Added my own custom theme","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/416.diff","updated_at":"2011-10-10T12:51:00Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/416","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/416.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ed990f61ff66a5c409ef2d8a444820cecf098188","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Danish Khan","company":"Engine Yard","gravatar_id":"7f81fd5c7792dabca22c433abbfbf0cb","location":"San Francisco, CA","blog":"http://danishkhan.org","type":"User","login":"danishkhan","email":"danishkhan@danishkhan.org"},"created_at":"2011-06-09T22:22:26Z","head":{"user":{"name":"Danish Khan","company":"Engine Yard","gravatar_id":"7f81fd5c7792dabca22c433abbfbf0cb","location":"San Francisco, CA","blog":"http://danishkhan.org","type":"User","login":"danishkhan","email":"danishkhan@danishkhan.org"},"ref":"master","sha":"a635ad5bfc3ec28c73b8f446cf0f06cd346fc17c","label":"danishkhan:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/06/10 11:51:40 -0700","url":"https://github.com/danishkhan/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":164,"private":false,"name":"oh-my-zsh","owner":"danishkhan","created_at":"2011/06/09 15:01:14 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-06-09T22:22:26Z","labels":[],"state":"open"},{"issue_updated_at":"2011-10-12T13:09:59Z","gravatar_id":"e49e4471a176ee8b633c44835e301238","position":412.0,"number":413,"votes":0,"user":{"name":"Lowe Schmidt","company":"Unibet","gravatar_id":"e49e4471a176ee8b633c44835e301238","location":"Stockholm, Sweden","blog":"http://loweschmidt.se","type":"User","login":"lsc","email":"lowe.schmidt@gmail.com"},"comments":1,"body":"Inspired by my old one and the one called arrow.\r\nHas return status to far left, cwd + git status to the far right.\r\n\r\nScreenshots\r\nhttp://nobelium.se/frost-theme-clean.png\r\nhttp://nobelium.se/frost-theme-dirty.png\r\n\r\nNot the nicest pull request I know, shout if it needs fixing. ","title":"Yet another theme.","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/413.diff","updated_at":"2011-10-12T13:09:59Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/413","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/413.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ed990f61ff66a5c409ef2d8a444820cecf098188","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Lowe Schmidt","company":"Unibet","gravatar_id":"e49e4471a176ee8b633c44835e301238","location":"Stockholm, Sweden","blog":"http://loweschmidt.se","type":"User","login":"lsc","email":"lowe.schmidt@gmail.com"},"created_at":"2011-06-06T13:05:51Z","head":{"user":{"name":"Lowe Schmidt","company":"Unibet","gravatar_id":"e49e4471a176ee8b633c44835e301238","location":"Stockholm, Sweden","blog":"http://loweschmidt.se","type":"User","login":"lsc","email":"lowe.schmidt@gmail.com"},"ref":"master","sha":"8c8883880ecfcb2d35c0223779e129d4c902c5c4","label":"lsc:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/06/06 05:42:27 -0700","url":"https://github.com/lsc/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":164,"private":false,"name":"oh-my-zsh","owner":"lsc","created_at":"2011/06/02 11:13:07 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-06-06T13:05:51Z","labels":[],"state":"open"},{"issue_updated_at":"2011-06-07T23:00:16Z","gravatar_id":"d12c4dde141a2caed9afe67bbab2295b","position":410.0,"number":411,"votes":0,"user":{"name":"Jesse B. Hannah","gravatar_id":"d12c4dde141a2caed9afe67bbab2295b","location":"Tempe, AZ","blog":"http://jbhannah.net/","type":"User","login":"jbhannah","email":"jesse@jbhannah.net"},"comments":4,"body":"Using the `gems` command from the RVM plugin on Ubuntu 11.04 was not working correctly—all it would do was show the GNU `sed` help output. Some playing around showed that the repeated `-E` option was causing that to happen, so removing all `-E`s after the first one returned what appears to be the correct output. I don't remember this same problem occurring on my Mac (latest 10.6, `zsh` from `brew`), and I don't have it with me to test this or to see if the output is the same as what it's supposed to be originally, but this does at least fix the radically unexpected behavior when using GNU `sed` in Ubuntu 11.04.","title":"Fixed(?) RVM gem list helper","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/411.diff","updated_at":"2011-10-10T12:51:00Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/411","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/411.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ed990f61ff66a5c409ef2d8a444820cecf098188","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Jesse B. Hannah","gravatar_id":"d12c4dde141a2caed9afe67bbab2295b","location":"Tempe, AZ","blog":"http://jbhannah.net/","type":"User","login":"jbhannah","email":"jesse@jbhannah.net"},"created_at":"2011-06-06T03:39:45Z","head":{"user":{"name":"Jesse B. Hannah","gravatar_id":"d12c4dde141a2caed9afe67bbab2295b","location":"Tempe, AZ","blog":"http://jbhannah.net/","type":"User","login":"jbhannah","email":"jesse@jbhannah.net"},"ref":"rvm","sha":"69277bd5905479583c040063c5ac3874ccaad1a4","label":"jbhannah:rvm","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/08/04 07:53:46 -0700","url":"https://github.com/jbhannah/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":false,"size":120,"private":false,"name":"oh-my-zsh","owner":"jbhannah","created_at":"2011/06/05 18:19:42 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-06-06T03:39:45Z","labels":[],"state":"open"},{"issue_updated_at":"2011-06-06T02:20:30Z","gravatar_id":"c59b979bdf791fa8cacd6cc7d3e28553","position":409.0,"number":410,"votes":0,"user":{"name":"Kien Tran","gravatar_id":"c59b979bdf791fa8cacd6cc7d3e28553","location":"Arlington, Texas","blog":"http://www.kientran.com","type":"User","login":"kientran","email":"kien@kientran.com"},"comments":0,"body":"Please pull in my theme \"kientran\" into the main repo.\r\n\r\nI also make a tweak to the RVM plugin. It will now only display the RVM gemset if it is not the default one. Before it was still showing a blank set of \"()\" when it was on the default system ruby. Please verify and consider pulling that!\r\n\r\nThanks!","title":"Add my personal theme + RVM plugin tweak","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/410.diff","updated_at":"2011-10-10T12:50:59Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/410","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/410.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ed990f61ff66a5c409ef2d8a444820cecf098188","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Kien Tran","gravatar_id":"c59b979bdf791fa8cacd6cc7d3e28553","location":"Arlington, Texas","blog":"http://www.kientran.com","type":"User","login":"kientran","email":"kien@kientran.com"},"created_at":"2011-06-06T02:20:30Z","head":{"user":{"name":"Kien Tran","gravatar_id":"c59b979bdf791fa8cacd6cc7d3e28553","location":"Arlington, Texas","blog":"http://www.kientran.com","type":"User","login":"kientran","email":"kien@kientran.com"},"ref":"master","sha":"18dbdc3e7343ea37746514f6b1edcbcfb0b1b67f","label":"kientran:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/06/06 13:20:49 -0700","url":"https://github.com/kientran/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":164,"private":false,"name":"oh-my-zsh","owner":"kientran","created_at":"2011/06/05 19:06:06 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-06-06T02:20:30Z","labels":[],"state":"open"},{"issue_updated_at":"2011-06-05T23:57:59Z","gravatar_id":"232657bc369e6379b6a8801452d2507f","position":408.0,"number":409,"votes":0,"user":{"name":"Maxim Filatov","company":"Exectum LLC","gravatar_id":"232657bc369e6379b6a8801452d2507f","location":"Saint Petersburg, Russia","blog":"","type":"User","login":"Bregor","email":"pipopolam@gmail.com"},"comments":0,"body":"Dollar sign instead of percent in unprivileged user prompt (as in real gentoo)","title":"Dollar sign instead of percent in unprivileged user prompt (as in real ge","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/409.diff","updated_at":"2011-10-10T12:50:59Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/409","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/409.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ed990f61ff66a5c409ef2d8a444820cecf098188","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Maxim Filatov","company":"Exectum LLC","gravatar_id":"232657bc369e6379b6a8801452d2507f","location":"Saint Petersburg, Russia","blog":"","type":"User","login":"Bregor","email":"pipopolam@gmail.com"},"created_at":"2011-06-05T23:57:59Z","head":{"user":{"name":"Maxim Filatov","company":"Exectum LLC","gravatar_id":"232657bc369e6379b6a8801452d2507f","location":"Saint Petersburg, Russia","blog":"","type":"User","login":"Bregor","email":"pipopolam@gmail.com"},"ref":"patch-1","sha":"f0451195f63b3607461bda1570c5fb2a4e429b3e","label":"Bregor:patch-1","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/06/05 16:57:21 -0700","url":"https://github.com/Bregor/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":124,"private":false,"name":"oh-my-zsh","owner":"Bregor","created_at":"2011/06/05 16:56:25 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-06-05T23:57:59Z","labels":[],"state":"open"},{"issue_updated_at":"2011-07-28T05:08:23Z","gravatar_id":"40f08b15afb1b17d7d39730c993be8a8","position":401.0,"number":402,"votes":0,"user":{"name":"Mark Walling","company":"","gravatar_id":"40f08b15afb1b17d7d39730c993be8a8","location":"Schenectady, NY","blog":"markwalling.org","type":"User","login":"mwalling","email":"mark@markwalling.org"},"comments":1,"body":"Plugin provides completion for fabric targets from the `fab` command line.\r\n\r\nI think what I did is a major hack (at least it feels that way), comments very welcome.","title":"Added completion support for fabric targets","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/402.diff","updated_at":"2011-10-10T12:50:59Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/402","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/402.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"e8bd400bffc51c83e0ef6671ecb5f364dc2f5065","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Mark Walling","company":"","gravatar_id":"40f08b15afb1b17d7d39730c993be8a8","location":"Schenectady, NY","blog":"markwalling.org","type":"User","login":"mwalling","email":"mark@markwalling.org"},"created_at":"2011-06-04T20:45:05Z","head":{"user":{"name":"Mark Walling","company":"","gravatar_id":"40f08b15afb1b17d7d39730c993be8a8","location":"Schenectady, NY","blog":"markwalling.org","type":"User","login":"mwalling","email":"mark@markwalling.org"},"ref":"fabric-completion","sha":"19cea6c4435ec4fbbe7c66de6140f51348fc67bd","label":"mwalling:fabric-completion","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/06/04 13:42:25 -0700","url":"https://github.com/mwalling/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":136,"private":false,"name":"oh-my-zsh","owner":"mwalling","created_at":"2011/06/04 13:39:53 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-06-04T20:45:05Z","labels":[],"state":"open"},{"issue_updated_at":"2011-06-04T15:17:10Z","gravatar_id":"cd9ac7713c79d5e108ee1755c9d7b5cf","position":397.0,"number":398,"votes":0,"user":{"name":"Luke Lee","gravatar_id":"cd9ac7713c79d5e108ee1755c9d7b5cf","location":"Houston, TX","blog":"www.lukelee.net","type":"User","login":"durden"},"comments":1,"body":"I really wanted to ability maintain a small set of themes I like and randomize through them. It could be as easy as removing those themes that I don't like, but then you'd might have to be careful when merging changes and collaborating, etc.\r\n\r\nInstead, I thought just creating a simple shell function to make a symlink in another directory would be an easy way to keep track of 'liked' themes. This way there isn't really any overhead because the themes aren't be copied, and removing favorites or 'unliking' themes is as easy as remove the symlink.\r\n\r\nGoes along with Issue #397","title":"Add ability to 'like' and 'unlike' themes and maintain list of favorite themes","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/398.diff","updated_at":"2011-10-10T12:50:59Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/398","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/398.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"e8bd400bffc51c83e0ef6671ecb5f364dc2f5065","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Luke Lee","gravatar_id":"cd9ac7713c79d5e108ee1755c9d7b5cf","location":"Houston, TX","blog":"www.lukelee.net","type":"User","login":"durden"},"created_at":"2011-06-04T15:13:38Z","head":{"user":{"name":"Luke Lee","gravatar_id":"cd9ac7713c79d5e108ee1755c9d7b5cf","location":"Houston, TX","blog":"www.lukelee.net","type":"User","login":"durden"},"ref":"master","sha":"2e203cb1d3edc69ceda8590983da566aa97d69f3","label":"durden:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/06/04 08:08:53 -0700","url":"https://github.com/durden/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":376,"private":false,"name":"oh-my-zsh","owner":"durden","created_at":"2011/06/03 16:55:16 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-06-04T15:13:38Z","labels":[],"state":"open"},{"issue_updated_at":"2011-08-31T19:30:09Z","gravatar_id":"9ed1beafd217429d03af5afb05e33469","position":395.0,"number":396,"votes":0,"user":{"name":"Andrew Hodges","company":"Vitrue, Inc.","gravatar_id":"9ed1beafd217429d03af5afb05e33469","location":"Norcross, GA","blog":"http://betawaffle.com/","type":"User","login":"betawaffle","email":"betawaffle@gmail.com"},"comments":3,"body":"Ok, I've made improvements to #393. Now the code looks (a bit) nicer, and it's easier to change if you don't like some decision I've made.\r\n\r\nEnjoy!","title":"Colorize Uninstall, Improve Colorization of Install and Upgrade","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/396.diff","updated_at":"2011-10-10T12:50:58Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/396","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/396.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ed990f61ff66a5c409ef2d8a444820cecf098188","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Andrew Hodges","company":"Vitrue, Inc.","gravatar_id":"9ed1beafd217429d03af5afb05e33469","location":"Norcross, GA","blog":"http://betawaffle.com/","type":"User","login":"betawaffle","email":"betawaffle@gmail.com"},"created_at":"2011-06-04T12:54:25Z","head":{"user":{"name":"Andrew Hodges","company":"Vitrue, Inc.","gravatar_id":"9ed1beafd217429d03af5afb05e33469","location":"Norcross, GA","blog":"http://betawaffle.com/","type":"User","login":"betawaffle","email":"betawaffle@gmail.com"},"ref":"colorize-install","sha":"3e6d6df4fef5fa526e00db198dd6a509e57da6f8","label":"betawaffle:colorize-install","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/06/09 05:19:26 -0700","url":"https://github.com/betawaffle/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"Fork of robbyrussell's community-driven framework for zsh configuration.","has_wiki":false,"size":204,"private":false,"name":"oh-my-zsh","owner":"betawaffle","created_at":"2011/05/15 09:42:42 -0700","open_issues":0,"master_branch":"custom","homepage":""}},"issue_created_at":"2011-06-04T12:54:25Z","labels":[],"state":"open"},{"issue_updated_at":"2011-06-05T12:13:46Z","gravatar_id":"9ed1beafd217429d03af5afb05e33469","position":391.0,"number":392,"votes":0,"user":{"name":"Andrew Hodges","company":"Vitrue, Inc.","gravatar_id":"9ed1beafd217429d03af5afb05e33469","location":"Norcross, GA","blog":"http://betawaffle.com/","type":"User","login":"betawaffle","email":"betawaffle@gmail.com"},"comments":1,"body":"Modify directory listing aliases to make more sense. Remove conflicting helper\r\nfunction (mcd conflicts with mtools).\r\n\r\nRebased and reopened. Used to be #369","title":"Directory listing aliases and removal of mcd","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/392.diff","updated_at":"2011-10-10T12:50:58Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/392","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/392.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ed990f61ff66a5c409ef2d8a444820cecf098188","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Andrew Hodges","company":"Vitrue, Inc.","gravatar_id":"9ed1beafd217429d03af5afb05e33469","location":"Norcross, GA","blog":"http://betawaffle.com/","type":"User","login":"betawaffle","email":"betawaffle@gmail.com"},"created_at":"2011-06-03T17:08:34Z","head":{"user":{"name":"Andrew Hodges","company":"Vitrue, Inc.","gravatar_id":"9ed1beafd217429d03af5afb05e33469","location":"Norcross, GA","blog":"http://betawaffle.com/","type":"User","login":"betawaffle","email":"betawaffle@gmail.com"},"ref":"pull-001","sha":"25adbe81a55664335e0166c202b8d8424a67c8aa","label":"betawaffle:pull-001","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/06/09 05:19:26 -0700","url":"https://github.com/betawaffle/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"Fork of robbyrussell's community-driven framework for zsh configuration.","has_wiki":false,"size":204,"private":false,"name":"oh-my-zsh","owner":"betawaffle","created_at":"2011/05/15 09:42:42 -0700","open_issues":0,"master_branch":"custom","homepage":""}},"issue_created_at":"2011-06-03T17:08:34Z","labels":[],"state":"open"},{"issue_updated_at":"2011-08-13T19:09:40Z","gravatar_id":"7e042c238dffcc90a7535ccb682e47be","position":371.0,"number":372,"votes":0,"user":{"name":"Will Leinweber","company":"heroku","gravatar_id":"7e042c238dffcc90a7535ccb682e47be","location":"San Francisco, CA","blog":"http://bitfission.com","type":"User","login":"will","email":"will@bitfission.com"},"comments":2,"body":"before, custom plugins were getting the wrong fpath set","title":"correctly add custom/plugin plugins to fpath","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/372.diff","updated_at":"2011-10-10T12:50:58Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/372","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/372.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"142c03dbd223683fd2d99f878b68f0f075cf33fb","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Will Leinweber","company":"heroku","gravatar_id":"7e042c238dffcc90a7535ccb682e47be","location":"San Francisco, CA","blog":"http://bitfission.com","type":"User","login":"will","email":"will@bitfission.com"},"created_at":"2011-05-30T01:12:42Z","head":{"user":{"name":"Will Leinweber","company":"heroku","gravatar_id":"7e042c238dffcc90a7535ccb682e47be","location":"San Francisco, CA","blog":"http://bitfission.com","type":"User","login":"will","email":"will@bitfission.com"},"ref":"patch-1","sha":"1ec4a83bf1779379f0f353888978e3c8f696ae53","label":"will:patch-1","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/05/29 18:12:14 -0700","url":"https://github.com/will/oh-my-zsh","has_downloads":true,"forks":1,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":284,"private":false,"name":"oh-my-zsh","owner":"will","created_at":"2010/07/02 16:05:30 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2011-05-30T01:12:42Z","labels":["Plugins"],"state":"open"},{"issue_updated_at":"2011-10-10T12:11:53Z","gravatar_id":"a0c7542c45873945d9e76b76c6006c56","position":366.0,"number":367,"votes":0,"user":{"name":"Reza","gravatar_id":"a0c7542c45873945d9e76b76c6006c56","type":"User","login":"ryco","email":""},"comments":4,"body":"Made it compatible with Capistrano 2.x show tasks.","title":"Fixed cap plugin","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/367.diff","updated_at":"2011-10-10T12:50:57Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/367","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/367.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ab2a7b51a8c3ead55a272fba58232d0823e519a2","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Reza","gravatar_id":"a0c7542c45873945d9e76b76c6006c56","type":"User","login":"ryco","email":""},"created_at":"2011-05-28T21:39:16Z","head":{"user":{"name":"Reza","gravatar_id":"a0c7542c45873945d9e76b76c6006c56","type":"User","login":"ryco","email":""},"ref":"cap_plugin","sha":"efa5593f88e552fbd3fde850b283fa43d36f481c","label":"ryco:cap_plugin","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/08/16 14:00:28 -0700","url":"https://github.com/ryco/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":false,"size":116,"private":false,"name":"oh-my-zsh","owner":"ryco","created_at":"2010/11/13 06:51:20 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-05-28T21:39:16Z","labels":["Plugins"],"state":"open"},{"issue_updated_at":"2011-05-26T04:27:37Z","gravatar_id":"c5386d8b7cee5f9474cfc01c2a68fa48","position":355.0,"number":356,"votes":0,"user":{"name":"Nicolas Pinto","company":"MIT","gravatar_id":"c5386d8b7cee5f9474cfc01c2a68fa48","location":"Boston, MA","type":"User","login":"npinto","email":"pinto@mit.edu"},"comments":0,"body":"First of all, thanks a ton for oh-my-zsh, exactly what I needed !\r\n\r\nMay I ask you to merge my theme in your repo ?\r\n\r\nThanks in advance.\r\n\r\nNicolas","title":"Add npinto theme.","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/356.diff","updated_at":"2011-10-10T12:50:57Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/356","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/356.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"f9e2af2bd7e567114724c4ca7f4a1727a656e7e2","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Nicolas Pinto","company":"MIT","gravatar_id":"c5386d8b7cee5f9474cfc01c2a68fa48","location":"Boston, MA","type":"User","login":"npinto","email":"pinto@mit.edu"},"created_at":"2011-05-26T04:27:37Z","head":{"user":{"name":"Nicolas Pinto","company":"MIT","gravatar_id":"c5386d8b7cee5f9474cfc01c2a68fa48","location":"Boston, MA","type":"User","login":"npinto","email":"pinto@mit.edu"},"ref":"develop","sha":"792680131b0df0e56645df54463b95f4df450144","label":"npinto:develop","repository":{"has_issues":false,"language":"Shell","watchers":2,"pushed_at":"2011/10/03 20:29:13 -0700","url":"https://github.com/npinto/oh-my-zsh","has_downloads":true,"forks":1,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 80 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":116,"private":false,"name":"oh-my-zsh","owner":"npinto","created_at":"2011/05/25 21:14:08 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-05-26T04:27:37Z","labels":["Idea","Themes"],"state":"open"},{"issue_updated_at":"2011-08-18T02:55:15Z","gravatar_id":"4625b7404fa2b2377a4818d027ba7678","position":351.0,"number":352,"votes":0,"user":{"name":"Alexander Simonov","company":"","gravatar_id":"4625b7404fa2b2377a4818d027ba7678","location":"Kiev, Ukraine","blog":"http://simonov.me","type":"User","login":"simonoff","email":"alex@simonov.me"},"comments":2,"body":"","title":"new theme and rvm theming support","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/352.diff","updated_at":"2011-10-10T12:50:57Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/352","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/352.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"7c3d12c7de1c2d8efdefe09b02349e24106e36c6","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Alexander Simonov","company":"","gravatar_id":"4625b7404fa2b2377a4818d027ba7678","location":"Kiev, Ukraine","blog":"http://simonov.me","type":"User","login":"simonoff","email":"alex@simonov.me"},"created_at":"2011-05-24T08:12:48Z","head":{"user":{"name":"Alexander Simonov","company":"","gravatar_id":"4625b7404fa2b2377a4818d027ba7678","location":"Kiev, Ukraine","blog":"http://simonov.me","type":"User","login":"simonoff","email":"alex@simonov.me"},"ref":"master","sha":"ea55e5128eb88b4834627dadc69853341caf68a0","label":"simonoff:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/05/24 01:11:56 -0700","url":"https://github.com/simonoff/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 80 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":1548,"private":false,"name":"oh-my-zsh","owner":"simonoff","created_at":"2011/05/21 00:47:57 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-05-24T08:12:48Z","labels":["Idea","Themes"],"state":"open"},{"issue_updated_at":"2011-05-26T08:20:29Z","gravatar_id":"faf3701bf886a19fd2643810999d287e","position":343.0,"number":344,"votes":0,"user":{"name":"Paul Gideon Dann","gravatar_id":"faf3701bf886a19fd2643810999d287e","location":"Birmingham, UK","blog":"http://paulandsophiedann.co.uk","type":"User","login":"giddie","email":"pdgiddie@gmail.com"},"comments":2,"body":"Oh-my-zsh currently breaks if the \"custom\" directory is empty. This fixes that problem, but maybe there's a better way than invoking \"find\"?\r\n\r\nContext: for tidiness, I've removed the custom/example.zsh script from my fork of oh-my-zsh. I don't like simply deleting the file after a fresh clone, because that results in the file appearing as \"deleted\" in git-status from then on. Hence the empty \"custom\" directory after a fresh clone :)","title":"Don't break when there are no files in \"custom\"","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/344.diff","updated_at":"2011-10-10T12:50:57Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/344","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/344.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"7c3d12c7de1c2d8efdefe09b02349e24106e36c6","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Paul Gideon Dann","gravatar_id":"faf3701bf886a19fd2643810999d287e","location":"Birmingham, UK","blog":"http://paulandsophiedann.co.uk","type":"User","login":"giddie","email":"pdgiddie@gmail.com"},"created_at":"2011-05-19T10:24:52Z","head":{"user":{"name":"Paul Gideon Dann","gravatar_id":"faf3701bf886a19fd2643810999d287e","location":"Birmingham, UK","blog":"http://paulandsophiedann.co.uk","type":"User","login":"giddie","email":"pdgiddie@gmail.com"},"ref":"allow-empty-custom","sha":"903206abf46a25f6f345eaa71db7559f8a7658c3","label":"giddie:allow-empty-custom","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/09/27 07:48:48 -0700","url":"https://github.com/giddie/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 80 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":116,"private":false,"name":"oh-my-zsh","owner":"giddie","created_at":"2011/05/18 08:13:25 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-05-19T10:24:52Z","labels":["Annoyance"],"state":"open"},{"issue_updated_at":"2011-09-21T09:01:21Z","gravatar_id":"faf3701bf886a19fd2643810999d287e","position":342.0,"number":343,"votes":0,"user":{"name":"Paul Gideon Dann","gravatar_id":"faf3701bf886a19fd2643810999d287e","location":"Birmingham, UK","blog":"http://paulandsophiedann.co.uk","type":"User","login":"giddie","email":"pdgiddie@gmail.com"},"comments":18,"body":"I need to use WOL for a few machines. This simple plugin helps by reducing this:\r\n\r\n# wakeonlan -f ~/.wakeonlan/mypc\r\n\r\n...to this:\r\n\r\n# wake mypc","title":"Plugin to make WOL nice & easy","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/343.diff","updated_at":"2011-10-10T12:50:56Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/343","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/343.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"7c3d12c7de1c2d8efdefe09b02349e24106e36c6","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Paul Gideon Dann","gravatar_id":"faf3701bf886a19fd2643810999d287e","location":"Birmingham, UK","blog":"http://paulandsophiedann.co.uk","type":"User","login":"giddie","email":"pdgiddie@gmail.com"},"created_at":"2011-05-19T10:01:38Z","head":{"user":{"name":"Paul Gideon Dann","gravatar_id":"faf3701bf886a19fd2643810999d287e","location":"Birmingham, UK","blog":"http://paulandsophiedann.co.uk","type":"User","login":"giddie","email":"pdgiddie@gmail.com"},"ref":"plugin-wakeonlan","sha":"7ba54d197dac8d5ae380271259ba4d8843f01b4f","label":"giddie:plugin-wakeonlan","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/09/27 07:48:48 -0700","url":"https://github.com/giddie/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 80 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":116,"private":false,"name":"oh-my-zsh","owner":"giddie","created_at":"2011/05/18 08:13:25 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-05-19T10:01:38Z","labels":["Plugins"],"state":"open"},{"issue_updated_at":"2011-05-16T16:34:45Z","gravatar_id":"64fec2287666363ff9697ea37f0c3412","position":339.0,"number":340,"votes":0,"user":{"name":"Lori Holden","company":"Comverge","gravatar_id":"64fec2287666363ff9697ea37f0c3412","location":"Broomfield, CO","blog":"http://loriholden.com","type":"User","login":"lholden","email":"email@loriholden.com"},"comments":0,"body":"","title":"Just my theme :)","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/340.diff","updated_at":"2011-10-10T12:50:56Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/340","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/340.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"7c3d12c7de1c2d8efdefe09b02349e24106e36c6","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Lori Holden","company":"Comverge","gravatar_id":"64fec2287666363ff9697ea37f0c3412","location":"Broomfield, CO","blog":"http://loriholden.com","type":"User","login":"lholden","email":"email@loriholden.com"},"created_at":"2011-05-16T16:34:45Z","head":{"user":{"name":"Lori Holden","company":"Comverge","gravatar_id":"64fec2287666363ff9697ea37f0c3412","location":"Broomfield, CO","blog":"http://loriholden.com","type":"User","login":"lholden","email":"email@loriholden.com"},"ref":"master","sha":"b6182e923fb75bdf2f059c849eb56d5473735134","label":"lholden:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/05/16 09:55:36 -0700","url":"https://github.com/lholden/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 80 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":1492,"private":false,"name":"oh-my-zsh","owner":"lholden","created_at":"2011/05/16 09:32:33 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-05-16T16:34:45Z","labels":["Themes"],"state":"open"},{"issue_updated_at":"2011-05-16T07:25:01Z","gravatar_id":"3eae0b6c37b4ee8cc974798f79c2aff5","position":338.0,"number":339,"votes":0,"user":{"name":"Andrew Nutter-Upham","gravatar_id":"3eae0b6c37b4ee8cc974798f79c2aff5","location":"Cambridge, MA","type":"User","login":"andynu"},"comments":0,"body":"This is my first pull request. Should I have branched first?\r\n\r\nThank you so much for this project. I've been managing all my dot files in a similar fashion in svn for years and this has pushed me over the edge to convert it all to git.\r\n\r\nThe deb plugin made me smile (the only difference between my aliases and those in the plugin are capital As). I have loads of shell tweaks, and thanks to the nice structure here I'll have more pull requests as I migrate them from custom to plugin.\r\n\r\nCheers,\r\n--\r\nAndy","title":"zsh-theme function (with completion), and another theme.","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/339.diff","updated_at":"2011-10-10T12:50:56Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/339","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/339.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"7c3d12c7de1c2d8efdefe09b02349e24106e36c6","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Andrew Nutter-Upham","gravatar_id":"3eae0b6c37b4ee8cc974798f79c2aff5","location":"Cambridge, MA","type":"User","login":"andynu"},"created_at":"2011-05-16T07:25:01Z","head":{"user":{"name":"Andrew Nutter-Upham","gravatar_id":"3eae0b6c37b4ee8cc974798f79c2aff5","location":"Cambridge, MA","type":"User","login":"andynu"},"ref":"master","sha":"31425d1600c0689f0f83b1d610fde2401512d075","label":"andynu:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/05/16 00:11:10 -0700","url":"https://github.com/andynu/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 80 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":1480,"private":false,"name":"oh-my-zsh","owner":"andynu","created_at":"2011/05/15 23:08:42 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-05-16T07:25:01Z","labels":["Themes"],"state":"open"},{"issue_updated_at":"2011-05-13T17:10:24Z","gravatar_id":"dbce141f7e94c123f0e9909f21541670","position":334.0,"number":335,"votes":0,"user":{"name":"Ashley Dev","gravatar_id":"dbce141f7e94c123f0e9909f21541670","type":"User","login":"ashleydev"},"comments":0,"body":"The ashleydev theme has some optimizations and ideas that should probably make their way into lib/git.zsh for making the git prompt faster and more feature-full.\r\n\r\nI've added more aliases for git cmds (see commit description).","title":"add ashleydev theme; update git plugin","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/335.diff","updated_at":"2011-10-10T12:50:56Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/335","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/335.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"3552423de3d5ae439dc815b7f9c4cbeab3fbebe8","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Ashley Dev","gravatar_id":"dbce141f7e94c123f0e9909f21541670","type":"User","login":"ashleydev"},"created_at":"2011-05-13T17:10:24Z","head":{"user":{"name":"Ashley Dev","gravatar_id":"dbce141f7e94c123f0e9909f21541670","type":"User","login":"ashleydev"},"ref":"master","sha":"78e8fe3337e4985c9d22a03027be06be250cf309","label":"ashleydev:master","repository":{"has_issues":false,"language":"Shell","watchers":3,"pushed_at":"2011/09/29 04:23:06 -0700","url":"https://github.com/ashleydev/oh-my-zsh","has_downloads":true,"forks":1,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":132,"private":false,"name":"oh-my-zsh","owner":"ashleydev","created_at":"2011/05/14 10:14:46 -0700","open_issues":1,"homepage":""}},"issue_created_at":"2011-05-13T17:10:24Z","labels":["Themes"],"state":"open"},{"issue_updated_at":"2011-05-26T23:05:12Z","gravatar_id":"3a5b19932cfbe1c8387d7dc8f9baa5d6","position":327.0,"number":328,"votes":0,"user":{"name":"Dave Lee","company":"Gray101","gravatar_id":"3a5b19932cfbe1c8387d7dc8f9baa5d6","location":"St. Louis, MO","blog":"camperdave.github.com","type":"User","login":"camperdave","email":"dave@gray101.com"},"comments":2,"body":"Hey, I've been tinkering with this awesome script for a bit, and I've decided to make this script for myself called full-upgrade. It handles automatic updates to a lot of things, as well as making it easier to setup your custom changes on multiple machines.\r\n\r\nBasically, it performs a regular upgrade (via the stock script), then looks to see if the user's git repository has a remote named \"custom-overlay\". If it does, it pulls down that remote's \"custom-overlay\" branch. For an example of how that can be used, check out my other repository, over here.\r\n\r\nOnce those files are pulled down, it checks each subdirectory in the plugins folder for a .git folder inside that. That indicates that the plugin in that folder is distributed outside the main oh-my-zsh repository, and it therefore pulls down the latest changes from that repository as well.\r\n\r\nSome of the code may not be perfect. The system sometimes complains if you pull down a custom-overlay and have untracked versions of the files lying around - in that case, it prompts you to delete them before it pulls the new ones down. You can always cancel and do it manually if you want to see the differences :)\r\n\r\nHopefully this fits into your vision for this awesome piece of software. If not, I'll just use it myself :)","title":"Full update","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/328.diff","updated_at":"2011-10-10T12:50:55Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/328","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/328.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"7c3d12c7de1c2d8efdefe09b02349e24106e36c6","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Dave Lee","company":"Gray101","gravatar_id":"3a5b19932cfbe1c8387d7dc8f9baa5d6","location":"St. Louis, MO","blog":"camperdave.github.com","type":"User","login":"camperdave","email":"dave@gray101.com"},"created_at":"2011-05-08T21:54:56Z","head":{"user":{"name":"Dave Lee","company":"Gray101","gravatar_id":"3a5b19932cfbe1c8387d7dc8f9baa5d6","location":"St. Louis, MO","blog":"camperdave.github.com","type":"User","login":"camperdave","email":"dave@gray101.com"},"ref":"full-update","sha":"b4036c3aff1c63fef143d5071124c7e078cbbc7e","label":"camperdave:full-update","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/07/06 19:34:56 -0700","url":"https://github.com/camperdave/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 80 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":184,"private":false,"name":"oh-my-zsh","owner":"camperdave","created_at":"2011/05/06 16:29:40 -0700","open_issues":0,"master_branch":"full-update","homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-05-08T21:54:56Z","labels":[],"state":"open"},{"issue_updated_at":"2011-05-08T16:27:13Z","gravatar_id":"a10db193524d6a5f9d0f6bd74614436b","position":326.0,"number":327,"votes":0,"user":{"name":"Will St. Clair","company":"Obama for America","gravatar_id":"a10db193524d6a5f9d0f6bd74614436b","location":"Chicago, IL","blog":"willstclair.com","type":"User","login":"wsc","email":"will@willstclair.com"},"comments":1,"body":"Hyphenated git commands were deprecated 5 years ago, and are non-functional on the Ubuntu git packages unless you add something to your $PATH.\r\n\r\nhttp://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.0.txt","title":"Hyphenated commands are deprecated/don't work","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/327.diff","updated_at":"2011-10-10T12:50:55Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/327","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/327.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"0365ef0529ddfb912ca8202773e45916c55fdf4f","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Will St. Clair","company":"Obama for America","gravatar_id":"a10db193524d6a5f9d0f6bd74614436b","location":"Chicago, IL","blog":"willstclair.com","type":"User","login":"wsc","email":"will@willstclair.com"},"created_at":"2011-05-07T22:31:10Z","head":{"user":{"name":"Will St. Clair","company":"Obama for America","gravatar_id":"a10db193524d6a5f9d0f6bd74614436b","location":"Chicago, IL","blog":"willstclair.com","type":"User","login":"wsc","email":"will@willstclair.com"},"ref":"hyphens","sha":"8d7a68bd4ce3b08d32b481ff1cb09f12dffee4aa","label":"wsc:hyphens","repository":null},"issue_created_at":"2011-05-07T22:31:10Z","labels":[],"state":"open"},{"issue_updated_at":"2011-06-04T18:39:45Z","gravatar_id":"589f0b0dd5c19c7f42fd89a91221e6a6","position":317.0,"number":318,"votes":0,"user":{"name":"Thiago Avelino","company":"Trianguli","gravatar_id":"589f0b0dd5c19c7f42fd89a91221e6a6","location":"Brasil - São Paulo / SP","blog":"http://avelino.us","type":"User","login":"avelino","email":"thiagoavelinoster@gmail.com"},"comments":1,"body":"Alias for Python and Django","title":"Add new plugin Python and Django","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/318.diff","updated_at":"2011-10-10T12:50:55Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/318","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/318.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"a525993f6b62f3c5acec0afd204ff517408b6f29","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Thiago Avelino","company":"Trianguli","gravatar_id":"589f0b0dd5c19c7f42fd89a91221e6a6","location":"Brasil - São Paulo / SP","blog":"http://avelino.us","type":"User","login":"avelino","email":"thiagoavelinoster@gmail.com"},"created_at":"2011-04-30T20:12:57Z","head":{"user":{"name":"Thiago Avelino","company":"Trianguli","gravatar_id":"589f0b0dd5c19c7f42fd89a91221e6a6","location":"Brasil - São Paulo / SP","blog":"http://avelino.us","type":"User","login":"avelino","email":"thiagoavelinoster@gmail.com"},"ref":"master","sha":"653db8fbe99084e9e0d80857fab2dfc2b2e24584","label":"avelino:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/04/30 13:20:30 -0700","url":"https://github.com/avelino/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 80 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":1420,"private":false,"name":"oh-my-zsh","owner":"avelino","created_at":"2011/04/30 12:49:39 -0700","open_issues":0,"homepage":"http://twitter.com/ohmyzsh"}},"issue_created_at":"2011-04-30T20:12:57Z","labels":["Plugins"],"state":"open"},{"issue_updated_at":"2011-09-02T20:45:27Z","gravatar_id":"e08e1c732a835527370881c93f83d517","position":315.0,"number":316,"votes":0,"user":{"name":"Pat Regan","gravatar_id":"e08e1c732a835527370881c93f83d517","location":"Scranton, PA","blog":"blog.patshead.com","type":"User","login":"oknowton","email":"thehead@patshead.com"},"comments":20,"body":"Things are a getting a bit too fast to consistently benchmark now... \r\n\r\nI ran 20 consecutive benchmarks with and without this commit. Without this change zsh takes between 0.11 and 0.15 seconds to start up. With this change it clocks between 0.09 and 0.13 seconds.\r\n\r\nWhen something causes ~/.zcompdump to change the startup time for me is about 0.45 seconds. This shouldn't happen very often, I think only when something in the fpath changes.\r\n","title":"Compile ~/.zcompdump when it has been modified, for another minor speed up","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/316.diff","updated_at":"2011-10-10T12:50:55Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/316","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/316.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"7c3d12c7de1c2d8efdefe09b02349e24106e36c6","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Pat Regan","gravatar_id":"e08e1c732a835527370881c93f83d517","location":"Scranton, PA","blog":"blog.patshead.com","type":"User","login":"oknowton","email":"thehead@patshead.com"},"created_at":"2011-04-30T02:58:43Z","head":{"user":{"name":"Pat Regan","gravatar_id":"e08e1c732a835527370881c93f83d517","location":"Scranton, PA","blog":"blog.patshead.com","type":"User","login":"oknowton","email":"thehead@patshead.com"},"ref":"master","sha":"5b2e24173c865aa71dd5c9c1b80484cadd64e87b","label":"oknowton:master","repository":{"has_issues":false,"language":"Shell","watchers":2,"pushed_at":"2011/05/18 15:18:19 -0700","url":"https://github.com/oknowton/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 70 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":1324,"private":false,"name":"oh-my-zsh","owner":"oknowton","created_at":"2011/04/08 07:03:43 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2011-04-30T02:58:43Z","labels":[],"state":"open"},{"issue_updated_at":"2011-04-29T12:28:03Z","gravatar_id":"85eaedd1b833c73e1656ee21a267e59e","position":312.0,"number":313,"votes":0,"user":{"name":"Vikram Verma","gravatar_id":"85eaedd1b833c73e1656ee21a267e59e","location":"Singapore","blog":"http://vikramverma.com","type":"User","login":"vikramverma","email":"me@vikramverma.com"},"comments":0,"body":"","title":"Added 'basic' zsh theme.","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/313.diff","updated_at":"2011-10-10T12:50:54Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/313","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/313.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"784c56cd09842c28df9a2e78279dd0667db8da47","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Vikram Verma","gravatar_id":"85eaedd1b833c73e1656ee21a267e59e","location":"Singapore","blog":"http://vikramverma.com","type":"User","login":"vikramverma","email":"me@vikramverma.com"},"created_at":"2011-04-29T12:28:02Z","head":{"user":{"name":"Vikram Verma","gravatar_id":"85eaedd1b833c73e1656ee21a267e59e","location":"Singapore","blog":"http://vikramverma.com","type":"User","login":"vikramverma","email":"me@vikramverma.com"},"ref":"master","sha":"7d172696988b029c0ff6a7a5b052e02f943fe693","label":"vikramverma:master","repository":null},"issue_created_at":"2011-04-29T12:28:03Z","labels":[],"state":"open"},{"issue_updated_at":"2011-04-28T19:08:52Z","gravatar_id":"793789919cd04697f099e9ef1ecd6de1","position":305.0,"number":306,"votes":0,"user":{"name":"Justin Riley","gravatar_id":"793789919cd04697f099e9ef1ecd6de1","location":"Boston, MA","blog":"http://web.mit.edu/starcluster","type":"User","login":"jtriley"},"comments":0,"body":"I find the http://github.com/olivierverdier/zsh-git-prompt prompt extremely useful when working inside of git repos. I've added it as a plugin called 'git-prompt' in my oh-my-zsh.","title":"add git-prompt plugin from olivierverdier/zsh-git-prompt","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/306.diff","updated_at":"2011-10-10T12:50:54Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/306","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/306.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"70d0beae22e7d97d4380af32dae1618f45e3dd4b","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Justin Riley","gravatar_id":"793789919cd04697f099e9ef1ecd6de1","location":"Boston, MA","blog":"http://web.mit.edu/starcluster","type":"User","login":"jtriley"},"created_at":"2011-04-28T19:08:52Z","head":{"user":{"name":"Justin Riley","gravatar_id":"793789919cd04697f099e9ef1ecd6de1","location":"Boston, MA","blog":"http://web.mit.edu/starcluster","type":"User","login":"jtriley"},"ref":"git-prompt","sha":"e5f77b8f0496e5915383f2f456f91a20f5ff4ace","label":"jtriley:git-prompt","repository":{"has_issues":false,"language":"Shell","watchers":2,"pushed_at":"2011/05/09 07:19:54 -0700","url":"https://github.com/jtriley/oh-my-zsh","has_downloads":true,"forks":1,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 70 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":1372,"private":false,"name":"oh-my-zsh","owner":"jtriley","created_at":"2011/04/21 20:18:21 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2011-04-28T19:08:52Z","labels":[],"state":"open"},{"issue_updated_at":"2011-04-26T16:53:06Z","gravatar_id":"54169a64eca05a858bdf95173915ed79","position":291.0,"number":292,"votes":0,"user":{"name":"Sorin Ionescu","gravatar_id":"54169a64eca05a858bdf95173915ed79","blog":"http://blog.tweefari.com","type":"User","login":"sorin-ionescu","email":"sorin.ionescu@gmail.com"},"comments":4,"body":"Do not call `grep` for basic expressions. Use built-in ZSH regex. This also fixes a couple of bugs where certain repository changes were not indicated properly.","title":"ZSH has built-in regex support; use it!","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/292.diff","updated_at":"2011-10-10T12:50:54Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/292","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/292.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"3bb21afa88f136c18073808852118dedd7e21fbf","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Sorin Ionescu","gravatar_id":"54169a64eca05a858bdf95173915ed79","blog":"http://blog.tweefari.com","type":"User","login":"sorin-ionescu","email":"sorin.ionescu@gmail.com"},"created_at":"2011-04-20T03:51:37Z","head":{"user":{"name":"Sorin Ionescu","gravatar_id":"54169a64eca05a858bdf95173915ed79","blog":"http://blog.tweefari.com","type":"User","login":"sorin-ionescu","email":"sorin.ionescu@gmail.com"},"ref":"lib-git","sha":"c55256b8b227c905e9022ba028535ed9f9e30aa7","label":"sorin-ionescu:lib-git","repository":{"has_issues":false,"language":"Shell","watchers":11,"pushed_at":"2011/09/21 05:14:06 -0700","url":"https://github.com/sorin-ionescu/oh-my-zsh","has_downloads":true,"forks":3,"fork":true,"description":"A community-driven framework for managing ZSH.","has_wiki":false,"size":252,"private":false,"name":"oh-my-zsh","owner":"sorin-ionescu","created_at":"2010/12/16 00:07:04 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-04-20T03:51:37Z","labels":[],"state":"open"},{"issue_updated_at":"2011-06-14T01:07:36Z","gravatar_id":"d116c69ed16fb1af875c0fda8d1295f5","position":290.0,"number":291,"votes":0,"user":{"name":"Gareth Owen","gravatar_id":"d116c69ed16fb1af875c0fda8d1295f5","type":"User","login":"gwjo"},"comments":2,"body":"* Fix the gdv function, as reported in #282\r\n* Skip the _ (alias for sudo) when displaying the running command in the term title\r\n* Unset locally created variables at the end of oh-my-zsh.sh\r\n* Don't overwrite existing environment variables for grep, pager and local (fixes #425)","title":"A couple of minor fixes","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/291.diff","updated_at":"2011-10-10T12:50:54Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/291","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/291.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ed990f61ff66a5c409ef2d8a444820cecf098188","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Gareth Owen","gravatar_id":"d116c69ed16fb1af875c0fda8d1295f5","type":"User","login":"gwjo"},"created_at":"2011-04-20T00:16:49Z","head":{"user":{"name":"Gareth Owen","gravatar_id":"d116c69ed16fb1af875c0fda8d1295f5","type":"User","login":"gwjo"},"ref":"fixes","sha":"533760df9f605cb621d250e56eb69004dbe35d81","label":"gwjo:fixes","repository":{"has_issues":false,"language":"Shell","watchers":2,"pushed_at":"2011/08/02 17:36:27 -0700","url":"https://github.com/gwjo/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":false,"size":136,"private":false,"name":"oh-my-zsh","owner":"gwjo","created_at":"2010/09/16 17:10:00 -0700","integrate_branch":"fork-queue","open_issues":0,"master_branch":"custom","homepage":""}},"issue_created_at":"2011-04-20T00:16:49Z","labels":[],"state":"open"},{"issue_updated_at":"2011-04-19T19:34:46Z","gravatar_id":"c0944a93ae347ad93150020f52d5432b","position":288.0,"number":289,"votes":0,"user":{"name":"Benjamin Martinez","gravatar_id":"c0944a93ae347ad93150020f52d5432b","blog":"http://cruznick.github.com","type":"User","login":"cruznick","email":"cruznickbjm@gmail"},"comments":1,"body":"I created a new theme based on nanotech theme\r\n\r\n\r\nalso added a battery plugin for linux based systems that shows batt percent\r\nadded mercurial plugin\r\nand 2 distro specific plugins (chakra linux and archlinux)","title":"New theme and 4 more plugins","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/289.diff","updated_at":"2011-10-10T12:50:53Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/289","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/289.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"971b071dc67f423d8b2a6f476e1dd58819049f41","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Benjamin Martinez","gravatar_id":"c0944a93ae347ad93150020f52d5432b","blog":"http://cruznick.github.com","type":"User","login":"cruznick","email":"cruznickbjm@gmail"},"created_at":"2011-04-19T15:17:53Z","head":{"user":{"name":"Benjamin Martinez","gravatar_id":"c0944a93ae347ad93150020f52d5432b","blog":"http://cruznick.github.com","type":"User","login":"cruznick","email":"cruznickbjm@gmail"},"ref":"master","sha":"f34fb9cc04cb36adc693810bcc32749837f72bcd","label":"cruznick:master","repository":null},"issue_created_at":"2011-04-19T15:17:53Z","labels":["Themes"],"state":"open"},{"issue_updated_at":"2011-04-19T01:38:55Z","gravatar_id":"e0718b33da5851b64caffcddf99aa36d","position":285.0,"number":286,"votes":0,"user":{"gravatar_id":"e0718b33da5851b64caffcddf99aa36d","type":"User","login":"hjz"},"comments":0,"body":"","title":"New theme that shows # of background and suspended jobs","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/286.diff","updated_at":"2011-10-10T12:50:53Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/286","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/286.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"3552423de3d5ae439dc815b7f9c4cbeab3fbebe8","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"gravatar_id":"e0718b33da5851b64caffcddf99aa36d","type":"User","login":"hjz"},"created_at":"2011-04-18T06:46:29Z","head":{"user":{"gravatar_id":"e0718b33da5851b64caffcddf99aa36d","type":"User","login":"hjz"},"ref":"master","sha":"617b15179ba6b8bcfcf836c8fccee6bc289e12e5","label":"hjz:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/07/10 02:59:08 -0700","url":"https://github.com/hjz/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":false,"size":124,"private":false,"name":"oh-my-zsh","owner":"hjz","created_at":"2011/07/10 01:11:53 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2011-04-18T06:46:29Z","labels":["Themes"],"state":"open"},{"issue_updated_at":"2011-04-18T01:47:34Z","gravatar_id":"274a52c00e4f37979f33423fc8acf371","position":284.0,"number":285,"votes":0,"user":{"name":"Carter Tazio Schonwald","gravatar_id":"274a52c00e4f37979f33423fc8acf371","location":"The Northeast, USA","blog":"www.carter.schonwald.org","type":"User","login":"cartazio","email":"first name dot last name at the google mail thing"},"comments":0,"body":"its a modification of some other code so that theres a single new tab command that work on both iterm and terminal apps. \r\n\r\ni can't seem to seperate out the style file commits, and perhaps theres some naming that could be fixed up, but the command works better than the previous one, and it interacts more robustly with how to sanely embed apple script within a zsh script","title":"iterm and terminal app new tab command that works correctly","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/285.diff","updated_at":"2011-10-10T12:50:53Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/285","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/285.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"9f46eafae0bed7df50a0004fca5d25539425ff85","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Carter Tazio Schonwald","gravatar_id":"274a52c00e4f37979f33423fc8acf371","location":"The Northeast, USA","blog":"www.carter.schonwald.org","type":"User","login":"cartazio","email":"first name dot last name at the google mail thing"},"created_at":"2011-04-18T01:47:34Z","head":{"user":{"name":"Carter Tazio Schonwald","gravatar_id":"274a52c00e4f37979f33423fc8acf371","location":"The Northeast, USA","blog":"www.carter.schonwald.org","type":"User","login":"cartazio","email":"first name dot last name at the google mail thing"},"ref":"master","sha":"21fb7e419fddc7c19435de88e4b336bc66ab9a5a","label":"cartazio:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/09/01 19:14:25 -0700","url":"https://github.com/cartazio/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":116,"private":false,"name":"oh-my-zsh","owner":"cartazio","created_at":"2011/02/19 10:08:22 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-04-18T01:47:34Z","labels":[],"state":"open"},{"issue_updated_at":"2011-09-12T15:54:23Z","gravatar_id":"d116c69ed16fb1af875c0fda8d1295f5","position":282.0,"number":283,"votes":0,"user":{"name":"Gareth Owen","gravatar_id":"d116c69ed16fb1af875c0fda8d1295f5","type":"User","login":"gwjo"},"comments":5,"body":"usage:\n\n growl \"Notification Text\"\n\n\nYou can use \\n and \\t to add newlines and tabs respectively, or add \\a to make it beep. I find this useful to let me know when a long command, such as a compile completes...\n\n make ; growl \"Make finished\\a\"\n\n","title":"Add growl command for iTerm/iTerm2","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/283.diff","updated_at":"2011-10-10T12:50:52Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/283","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/283.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"971b071dc67f423d8b2a6f476e1dd58819049f41","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Gareth Owen","gravatar_id":"d116c69ed16fb1af875c0fda8d1295f5","type":"User","login":"gwjo"},"created_at":"2011-04-17T23:09:32Z","head":{"user":{"name":"Gareth Owen","gravatar_id":"d116c69ed16fb1af875c0fda8d1295f5","type":"User","login":"gwjo"},"ref":"osx","sha":"27cee97228e6d662e4ad5f1c08cde44cfdd0483a","label":"gwjo:osx","repository":{"has_issues":false,"language":"Shell","watchers":2,"pushed_at":"2011/08/02 17:36:27 -0700","url":"https://github.com/gwjo/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":false,"size":136,"private":false,"name":"oh-my-zsh","owner":"gwjo","created_at":"2010/09/16 17:10:00 -0700","integrate_branch":"fork-queue","open_issues":0,"master_branch":"custom","homepage":""}},"issue_created_at":"2011-04-17T23:09:32Z","labels":[],"state":"open"},{"issue_updated_at":"2011-04-08T22:43:24Z","gravatar_id":"9c3620f41b41a013dfc20fbc90eb19ed","position":267.0,"number":268,"votes":0,"user":{"name":"Jared Hancock","gravatar_id":"9c3620f41b41a013dfc20fbc90eb19ed","location":"Louisiana, USA","type":"User","login":"greezybacon"},"comments":2,"body":"There is a bit more work that could be done to unify the various workarounds implemented in the plugins for VCS's, but this at least adds support for any VCS by adding a plugin that defines four functions. I added a Mercurial plugin to illustriate the idea. I also upgraded all the themes to use the slightly different style so that they can all work with any VCS under the hood.\r\n\r\nCheers","title":"Use a generic \"vcs\" library to support any VCS in the prompt","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/268.diff","updated_at":"2011-10-10T12:50:52Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/268","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/268.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"2e9492969b0ea90932ad3f4298330b75ef8cf2ce","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Jared Hancock","gravatar_id":"9c3620f41b41a013dfc20fbc90eb19ed","location":"Louisiana, USA","type":"User","login":"greezybacon"},"created_at":"2011-04-08T04:00:53Z","head":{"user":{"name":"Jared Hancock","gravatar_id":"9c3620f41b41a013dfc20fbc90eb19ed","location":"Louisiana, USA","type":"User","login":"greezybacon"},"ref":"master","sha":"46ffcda777a3fa3b587897a22a5726f8c24ef957","label":"greezybacon:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/04/07 21:05:49 -0700","url":"https://github.com/greezybacon/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 70 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":792,"private":false,"name":"oh-my-zsh","owner":"greezybacon","created_at":"2011/04/07 20:57:57 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2011-04-08T04:00:53Z","labels":[],"state":"open"},{"issue_updated_at":"2011-03-29T17:38:15Z","gravatar_id":"f9116c42e95b260f995680d301695a84","position":260.0,"number":261,"votes":0,"user":{"name":"Ben Langfeld","company":"MyStudioTools Ltd","gravatar_id":"f9116c42e95b260f995680d301695a84","location":"Preston, UK","blog":"langfeld.me","type":"User","login":"benlangfeld","email":"ben@langfeld.me"},"comments":0,"body":"Please feel free to come up with an inventive name for this","title":"Add custom tweaked version of dallas theme","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/261.diff","updated_at":"2011-10-10T12:50:52Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/261","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/261.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"2497c57976b1e5002ebecd7ffa5c35bc87ada903","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Ben Langfeld","company":"MyStudioTools Ltd","gravatar_id":"f9116c42e95b260f995680d301695a84","location":"Preston, UK","blog":"langfeld.me","type":"User","login":"benlangfeld","email":"ben@langfeld.me"},"created_at":"2011-03-29T17:38:15Z","head":{"user":{"name":"Ben Langfeld","company":"MyStudioTools Ltd","gravatar_id":"f9116c42e95b260f995680d301695a84","location":"Preston, UK","blog":"langfeld.me","type":"User","login":"benlangfeld","email":"ben@langfeld.me"},"ref":"custom-theme","sha":"154640c5256bcd21696fa5784053c85a5a64c401","label":"benlangfeld:custom-theme","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/04/10 07:07:39 -0700","url":"https://github.com/benlangfeld/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":776,"private":false,"name":"oh-my-zsh","owner":"benlangfeld","created_at":"2010/11/22 01:13:38 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-03-29T17:38:15Z","labels":["Themes"],"state":"open"},{"issue_updated_at":"2011-03-29T17:35:49Z","gravatar_id":"f9116c42e95b260f995680d301695a84","position":259.0,"number":260,"votes":0,"user":{"name":"Ben Langfeld","company":"MyStudioTools Ltd","gravatar_id":"f9116c42e95b260f995680d301695a84","location":"Preston, UK","blog":"langfeld.me","type":"User","login":"benlangfeld","email":"ben@langfeld.me"},"comments":0,"body":"* As described here: http://ryan.mcgeary.org/2011/02/09/vendor-everything-still-applies/","title":"Update the bundler plugin to follow the \"vendor everything\" routine","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/260.diff","updated_at":"2011-10-10T12:50:52Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/260","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/260.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"2497c57976b1e5002ebecd7ffa5c35bc87ada903","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Ben Langfeld","company":"MyStudioTools Ltd","gravatar_id":"f9116c42e95b260f995680d301695a84","location":"Preston, UK","blog":"langfeld.me","type":"User","login":"benlangfeld","email":"ben@langfeld.me"},"created_at":"2011-03-29T17:35:49Z","head":{"user":{"name":"Ben Langfeld","company":"MyStudioTools Ltd","gravatar_id":"f9116c42e95b260f995680d301695a84","location":"Preston, UK","blog":"langfeld.me","type":"User","login":"benlangfeld","email":"ben@langfeld.me"},"ref":"bundler-plugin","sha":"43af3cb51342c85db08abae26b562021426d6b85","label":"benlangfeld:bundler-plugin","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/04/10 07:07:39 -0700","url":"https://github.com/benlangfeld/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":776,"private":false,"name":"oh-my-zsh","owner":"benlangfeld","created_at":"2010/11/22 01:13:38 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-03-29T17:35:49Z","labels":[],"state":"open"},{"issue_updated_at":"2011-03-24T04:27:14Z","gravatar_id":"9c2ccd0119fd43ec68aaf4fdd0a5d4d8","position":255.0,"number":256,"votes":0,"user":{"name":"Lorrin Nelson","company":"Multifarious, Inc.","gravatar_id":"9c2ccd0119fd43ec68aaf4fdd0a5d4d8","location":"Seattle","blog":"http://www.lorrin.org","type":"User","login":"lorrin"},"comments":0,"body":"","title":"Make command-not-found no-op when support not available (e.g. not on Ubuntu)","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/256.diff","updated_at":"2011-10-10T12:50:51Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/256","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/256.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"52df85440ee8ead8f17d3aa3e1fedf187162313c","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Lorrin Nelson","company":"Multifarious, Inc.","gravatar_id":"9c2ccd0119fd43ec68aaf4fdd0a5d4d8","location":"Seattle","blog":"http://www.lorrin.org","type":"User","login":"lorrin"},"created_at":"2011-03-24T04:27:14Z","head":{"user":{"name":"Lorrin Nelson","company":"Multifarious, Inc.","gravatar_id":"9c2ccd0119fd43ec68aaf4fdd0a5d4d8","location":"Seattle","blog":"http://www.lorrin.org","type":"User","login":"lorrin"},"ref":"no-op_command-not-found","sha":"e8a7a31ef66093f1b1ab034e84e01a147fa8b28a","label":"lorrin:no-op_command-not-found","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/10/13 16:10:32 -0700","url":"https://github.com/lorrin/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":112,"private":false,"name":"oh-my-zsh","owner":"lorrin","created_at":"2011/01/27 16:21:14 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-03-24T04:27:14Z","labels":[],"state":"open"},{"issue_updated_at":"2011-08-01T05:24:02Z","gravatar_id":"20171a64471be602e50c8ba7662313af","position":252.0,"number":253,"votes":0,"user":{"name":"James Smith","company":"Heyzap","gravatar_id":"20171a64471be602e50c8ba7662313af","location":"San Francisco, CA","blog":"http://loopj.com","type":"User","login":"loopj"},"comments":1,"body":"I've added function git_remote_status to lib/git.zsh which extracts if the local branch is ahead/behind/diverged from remote. Also included is my current theme \"intheloop\" which demonstrates how to use git_remote_status.","title":"Added function git_remote_status to lib/git.zsh which extracts if the local branch is ahead/behind/diverged from remote","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/253.diff","updated_at":"2011-10-10T12:50:51Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/253","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/253.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"a738ca9b645c3cc53bdb01e8676202ceca449ccf","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"James Smith","company":"Heyzap","gravatar_id":"20171a64471be602e50c8ba7662313af","location":"San Francisco, CA","blog":"http://loopj.com","type":"User","login":"loopj"},"created_at":"2011-03-20T00:53:22Z","head":{"user":{"name":"James Smith","company":"Heyzap","gravatar_id":"20171a64471be602e50c8ba7662313af","location":"San Francisco, CA","blog":"http://loopj.com","type":"User","login":"loopj"},"ref":"master","sha":"0ba398f9e1aaf05e72406d5c840f013eebb6b260","label":"loopj:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/08/01 00:45:02 -0700","url":"https://github.com/loopj/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), nearly 70 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":772,"private":false,"name":"oh-my-zsh","owner":"loopj","created_at":"2011/03/19 17:39:00 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2011-03-20T00:53:22Z","labels":[],"state":"open"},{"issue_updated_at":"2011-08-22T19:19:22Z","gravatar_id":"c6b62e8457dbdd18bd3c578c769497ae","position":238.0,"number":239,"votes":0,"user":{"name":"Fredrik Appelberg","gravatar_id":"c6b62e8457dbdd18bd3c578c769497ae","location":"Uppsala, Sweden","blog":"mulli.nu","type":"User","login":"fred-o"},"comments":10,"body":"Hi, I've added plugins for Maven and GNU Screen, based mostly on code I found on the web. \r\n\r\nCheers,\r\n-- Fredrik","title":"Maven and GNU Screen plugins","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/239.diff","updated_at":"2011-10-10T12:50:51Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/239","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/239.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"971b071dc67f423d8b2a6f476e1dd58819049f41","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Fredrik Appelberg","gravatar_id":"c6b62e8457dbdd18bd3c578c769497ae","location":"Uppsala, Sweden","blog":"mulli.nu","type":"User","login":"fred-o"},"created_at":"2011-03-11T09:38:59Z","head":{"user":{"name":"Fredrik Appelberg","gravatar_id":"c6b62e8457dbdd18bd3c578c769497ae","location":"Uppsala, Sweden","blog":"mulli.nu","type":"User","login":"fred-o"},"ref":"master","sha":"0a896119214b5211d26be6446d5e98af7634c5ae","label":"fred-o:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/04/17 05:03:27 -0700","url":"https://github.com/fred-o/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":744,"private":false,"name":"oh-my-zsh","owner":"fred-o","created_at":"2011/02/11 00:00:32 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-03-11T09:38:59Z","labels":["Plugins"],"state":"open"},{"issue_updated_at":"2011-02-07T22:40:30Z","gravatar_id":"2fb7f7dfb58d70107a2efc774badb256","position":213.0,"number":214,"votes":0,"user":{"name":"Allan Caffee","gravatar_id":"2fb7f7dfb58d70107a2efc774badb256","type":"User","login":"allancaffee"},"comments":0,"body":"I've added completion for the vm names.","title":"Improved completion for vagrant","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/214.diff","updated_at":"2011-10-10T12:50:51Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/214","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/214.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"01b0366f3e27cf30f3882870100f14625fc267d1","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Allan Caffee","gravatar_id":"2fb7f7dfb58d70107a2efc774badb256","type":"User","login":"allancaffee"},"created_at":"2011-02-07T22:40:30Z","head":{"user":{"name":"Allan Caffee","gravatar_id":"2fb7f7dfb58d70107a2efc774badb256","type":"User","login":"allancaffee"},"ref":"master","sha":"8aec32b48bb88e980150a43586e7e02b9156e165","label":"allancaffee:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/02/07 12:37:44 -0800","url":"https://github.com/allancaffee/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":420,"private":false,"name":"oh-my-zsh","owner":"allancaffee","created_at":"2011/02/07 12:28:02 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-02-07T22:40:30Z","labels":[],"state":"open"},{"issue_updated_at":"2011-02-06T02:57:21Z","gravatar_id":"4e17e0dd05911f4bcd69f8aafabf1b48","position":211.0,"number":212,"votes":0,"user":{"name":"Alex Ray","company":"North Carolina State University","gravatar_id":"4e17e0dd05911f4bcd69f8aafabf1b48","location":"Raleigh, NC","blog":"machinaut.posterous.com","type":"User","login":"ajray","email":"ajray@ncsu.edu"},"comments":0,"body":"this is something actually from trabianmatt's fork of oh-my-zsh but it didnt look like he put in a pull request for it.\r\n\r\nI was just looking for a fix to my problem and i found it in his oh-my-zsh fork.","title":"Simple rvm plugin to fix the ~rvm-cwd errors","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/212.diff","updated_at":"2011-10-10T12:50:50Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/212","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/212.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"01b0366f3e27cf30f3882870100f14625fc267d1","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Alex Ray","company":"North Carolina State University","gravatar_id":"4e17e0dd05911f4bcd69f8aafabf1b48","location":"Raleigh, NC","blog":"machinaut.posterous.com","type":"User","login":"ajray","email":"ajray@ncsu.edu"},"created_at":"2011-02-06T02:57:21Z","head":{"user":{"name":"Alex Ray","company":"North Carolina State University","gravatar_id":"4e17e0dd05911f4bcd69f8aafabf1b48","location":"Raleigh, NC","blog":"machinaut.posterous.com","type":"User","login":"ajray","email":"ajray@ncsu.edu"},"ref":"master","sha":"202215a3c956450d0e2a515d3e1b8791d0b1b982","label":"ajray:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/05/26 12:13:13 -0700","url":"https://github.com/ajray/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":708,"private":false,"name":"oh-my-zsh","owner":"ajray","created_at":"2011/02/05 18:53:29 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-02-06T02:57:21Z","labels":["Plugins"],"state":"open"},{"issue_updated_at":"2011-02-04T04:13:50Z","gravatar_id":"54169a64eca05a858bdf95173915ed79","position":208.0,"number":209,"votes":0,"user":{"name":"Sorin Ionescu","gravatar_id":"54169a64eca05a858bdf95173915ed79","blog":"http://blog.tweefari.com","type":"User","login":"sorin-ionescu","email":"sorin.ionescu@gmail.com"},"comments":0,"body":"The inconsistent casing was confusing me as I read the man page to see what each option does; so, I fixed it.","title":"Fixed inconsistent casing in history.zsh","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/209.diff","updated_at":"2011-10-10T12:50:50Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/209","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/209.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"3bb21afa88f136c18073808852118dedd7e21fbf","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Sorin Ionescu","gravatar_id":"54169a64eca05a858bdf95173915ed79","blog":"http://blog.tweefari.com","type":"User","login":"sorin-ionescu","email":"sorin.ionescu@gmail.com"},"created_at":"2011-02-04T04:13:50Z","head":{"user":{"name":"Sorin Ionescu","gravatar_id":"54169a64eca05a858bdf95173915ed79","blog":"http://blog.tweefari.com","type":"User","login":"sorin-ionescu","email":"sorin.ionescu@gmail.com"},"ref":"lib-history","sha":"e9dc19988c88f0ff83cb5e8fd9d2f62627f5403d","label":"sorin-ionescu:lib-history","repository":{"has_issues":false,"language":"Shell","watchers":11,"pushed_at":"2011/09/21 05:14:06 -0700","url":"https://github.com/sorin-ionescu/oh-my-zsh","has_downloads":true,"forks":3,"fork":true,"description":"A community-driven framework for managing ZSH.","has_wiki":false,"size":252,"private":false,"name":"oh-my-zsh","owner":"sorin-ionescu","created_at":"2010/12/16 00:07:04 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-02-04T04:13:50Z","labels":[],"state":"open"},{"issue_updated_at":"2011-03-21T15:22:11Z","gravatar_id":"53e3d1467d76485f11f104efa03ceb93","position":200.0,"number":201,"votes":0,"user":{"name":"Alex Satrapa","gravatar_id":"53e3d1467d76485f11f104efa03ceb93","type":"User","login":"AlexSatrapa"},"comments":1,"body":"My theme is based on \"arrow\" and pulls the exit code display trick from \"dieter\".\r\n\r\nThe Mercurial status is very primitive, based on the git status library.","title":"Added Mercurial status, along with a theme to illustrate the usage","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/201.diff","updated_at":"2011-10-10T12:50:50Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/201","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/201.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"01b0366f3e27cf30f3882870100f14625fc267d1","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Alex Satrapa","gravatar_id":"53e3d1467d76485f11f104efa03ceb93","type":"User","login":"AlexSatrapa"},"created_at":"2011-02-03T02:51:37Z","head":{"user":{"name":"Alex Satrapa","gravatar_id":"53e3d1467d76485f11f104efa03ceb93","type":"User","login":"AlexSatrapa"},"ref":"master","sha":"b52a7b74a14f808a93a43524023c78bf73c7a8ca","label":"AlexSatrapa:master","repository":{"has_issues":false,"language":"Shell","watchers":2,"pushed_at":"2011/06/08 21:04:19 -0700","url":"https://github.com/AlexSatrapa/oh-my-zsh","has_downloads":true,"forks":1,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":528,"private":false,"name":"oh-my-zsh","owner":"AlexSatrapa","created_at":"2011/02/02 18:41:58 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-02-03T02:51:37Z","labels":[],"state":"open"},{"issue_updated_at":"2011-02-22T05:58:36Z","gravatar_id":"6b4a65af011809338ec6ac746b48f6c3","position":197.0,"number":198,"votes":0,"user":{"name":"vlad","company":"self","gravatar_id":"6b4a65af011809338ec6ac746b48f6c3","location":"Kyiv","type":"User","login":"sumskyi","email":"sumskyi@gmail.com"},"comments":1,"body":"","title":"cap plugin fix","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/198.diff","updated_at":"2011-10-10T12:50:50Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/198","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/198.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"01b0366f3e27cf30f3882870100f14625fc267d1","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"vlad","company":"self","gravatar_id":"6b4a65af011809338ec6ac746b48f6c3","location":"Kyiv","type":"User","login":"sumskyi","email":"sumskyi@gmail.com"},"created_at":"2011-01-27T11:10:50Z","head":{"user":{"name":"vlad","company":"self","gravatar_id":"6b4a65af011809338ec6ac746b48f6c3","location":"Kyiv","type":"User","login":"sumskyi","email":"sumskyi@gmail.com"},"ref":"master","sha":"955b89388dfae9726bcc73ae1a9edfe3ebc6ad3a","label":"sumskyi:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/01/27 03:03:07 -0800","url":"https://github.com/sumskyi/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":408,"private":false,"name":"oh-my-zsh","owner":"sumskyi","created_at":"2011/01/27 02:37:52 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-01-27T11:10:50Z","labels":["Plugins"],"state":"open"},{"issue_updated_at":"2011-07-23T16:27:12Z","gravatar_id":"0024a11ba1af1a5e8fa7c48ba50698bc","position":193.0,"number":194,"votes":0,"user":{"name":"Joseph Booker","company":"Neoturbine","gravatar_id":"0024a11ba1af1a5e8fa7c48ba50698bc","location":"Chicago","blog":"","type":"User","login":"sargas","email":"joe@neoturbine.net"},"comments":1,"body":"This change only modifies the upgrade.sh script to see if the origin is still left at robby's repo. If it isn't, it detects if an \"upstream\" remote is already created, and if not adds it. One way or another, the upgrade.sh script now merges the latest upstream code.*\r\n\r\n\r\n\r\n(*well, hopefull)","title":"Extend upgrade script to be useful to people maintaining forks","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/194.diff","updated_at":"2011-10-10T12:50:49Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/194","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/194.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"01b0366f3e27cf30f3882870100f14625fc267d1","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Joseph Booker","company":"Neoturbine","gravatar_id":"0024a11ba1af1a5e8fa7c48ba50698bc","location":"Chicago","blog":"","type":"User","login":"sargas","email":"joe@neoturbine.net"},"created_at":"2011-01-17T20:02:25Z","head":{"user":{"name":"Joseph Booker","company":"Neoturbine","gravatar_id":"0024a11ba1af1a5e8fa7c48ba50698bc","location":"Chicago","blog":"","type":"User","login":"sargas","email":"joe@neoturbine.net"},"ref":"joerc","sha":"fdb53851228da17d7536fc6c036c3a0e7535fd84","label":"sargas:joerc","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/01/17 11:58:14 -0800","url":"https://github.com/sargas/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":132,"private":false,"name":"oh-my-zsh","owner":"sargas","created_at":"2010/11/03 14:13:41 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2011-01-17T20:02:25Z","labels":[],"state":"open"},{"issue_updated_at":"2011-01-10T17:00:14Z","gravatar_id":"aa9576161bb251ce62ead1d545c203fa","position":184.0,"number":185,"votes":0,"user":{"gravatar_id":"aa9576161bb251ce62ead1d545c203fa","type":"User","login":"RobinRamael"},"comments":0,"body":"Hi,\r\n\r\nI took the liberty to create some infrastructure to allow for the prompt to display info of several scms, without the theme having to excplicitly mention each scm. This is how it is used:\r\n\r\nFor users:\r\nthis works the same as plugins: the scms variable is set in ~/.zshrc with a list of SCM for which info should be displayed in the prompt, as simple as that.\r\n\r\nfor theme developers:\r\ninstead of calling the git_prompt_info function, you can call the get_scm_prompt, which will display info for all the scms in the scms variable.\r\nthe following variables can be used in the old git-way:\r\n\r\nZSH_THEME_SCM_PROMPT_PREFIX: before everything but the scm's name (svn, git, ..)\r\nZSH_THEME_SCM_PROMPT_SUFFIX: after everything\r\nZSH_THEME_SCM_PROMPT_DIRTY: displayed when the repo is dirty\r\nZSH_THEME_SCM_PROMPT_CLEAN: displated when the repo is clean\r\nby default, the name of the scm (git, svn, ...) is not displayed before the scm info, but this can be changed by setting the ZSH_THEME_SCM_DISPLAY_NAME to 1.\r\n\r\nfor scm-plugin developers:\r\nto make an scm plugin with the name 'foo':\r\nadd a script called 'foo.scm.zsh' in to the scm folder. this script has to contain two functions:\r\n\r\nscm_in_foo_repo: checks wether we are in a foo repo, usually by checking if a .foo folder is present\r\nscm_foo_prompt_info: returns the prompt which follows the rules outlined above (in the \"for theme developers\"-section)\r\nSuggestions and criticism welcome!\r\n\r\nPS: this branch also includes a small change to the .gitignore file, making it ignore everything in custom/, not only the zshell scripts. I needed this for myself, because I keep other stuff like my pythonrc there, but I think it would be sensible to change this everywhere.\r\n\r\ncheers \r\n\r\nRobin","title":"Implemented scm plugin system and added scmplugins for git and svn","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/185.diff","updated_at":"2011-10-10T12:50:49Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/185","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/185.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"7a9cc198196cb0c935afe96e1de249c3a05ad413","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"gravatar_id":"aa9576161bb251ce62ead1d545c203fa","type":"User","login":"RobinRamael"},"created_at":"2011-01-10T17:00:13Z","head":{"user":{"gravatar_id":"aa9576161bb251ce62ead1d545c203fa","type":"User","login":"RobinRamael"},"ref":"scm","sha":"fe4504cef92440f36b7fdcad9be6e7365bd89878","label":"RobinRamael:scm","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/08/07 04:01:36 -0700","url":"https://github.com/RobinRamael/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":316,"private":false,"name":"oh-my-zsh","owner":"RobinRamael","created_at":"2011/01/10 08:49:30 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2011-01-10T17:00:14Z","labels":[],"state":"open"},{"issue_updated_at":"2011-06-05T03:00:54Z","gravatar_id":"ede5e59165e3efc98c7a8c268b0d8f3d","position":172.0,"number":173,"votes":0,"user":{"name":"Florent Thoumie","company":"Facebook","gravatar_id":"ede5e59165e3efc98c7a8c268b0d8f3d","location":"Dublin, Ireland","blog":"http://blog.xbsd.org/","type":"User","login":"flz","email":"flz@xbsd.org"},"comments":5,"body":"Here are two commits:\r\n- one to support LS_COLORS automatically in zsh completion,\r\n- the other to add vcs_info_prompt(), a more generic version of git_prompt_info().","title":"Merge candidates","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/173.diff","updated_at":"2011-10-10T12:50:49Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/173","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/173.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"4fadc302472f9b02e386da3e7182c1397ee3cd5c","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Florent Thoumie","company":"Facebook","gravatar_id":"ede5e59165e3efc98c7a8c268b0d8f3d","location":"Dublin, Ireland","blog":"http://blog.xbsd.org/","type":"User","login":"flz","email":"flz@xbsd.org"},"created_at":"2010-12-29T14:02:11Z","head":{"user":{"name":"Florent Thoumie","company":"Facebook","gravatar_id":"ede5e59165e3efc98c7a8c268b0d8f3d","location":"Dublin, Ireland","blog":"http://blog.xbsd.org/","type":"User","login":"flz","email":"flz@xbsd.org"},"ref":"merge-candidates","sha":"53411d03d68b93a903300ca14ba9b775450127d2","label":"flz:merge-candidates","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2010/12/29 06:44:47 -0800","url":"https://github.com/flz/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":104,"private":false,"name":"oh-my-zsh","owner":"flz","created_at":"2010/12/29 03:33:38 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2010-12-29T14:02:11Z","labels":[],"state":"open"},{"issue_updated_at":"2010-12-20T09:15:53Z","gravatar_id":"429fa73ee46e8cf341c1a36aa918484f","position":161.0,"number":162,"votes":0,"user":{"name":"Kristaps Kūlis","company":"truevision","gravatar_id":"429fa73ee46e8cf341c1a36aa918484f","location":"Rīga, Latvia","blog":"","type":"User","login":"krikulis","email":"kristaps.kulis@gmail.com"},"comments":0,"body":"new theme, based on arrow with hostname prefixed (to avoid confusion between numerous sshd terminals)","title":"theme","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/162.diff","updated_at":"2011-10-10T12:50:48Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/162","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/162.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"4fadc302472f9b02e386da3e7182c1397ee3cd5c","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Kristaps Kūlis","company":"truevision","gravatar_id":"429fa73ee46e8cf341c1a36aa918484f","location":"Rīga, Latvia","blog":"","type":"User","login":"krikulis","email":"kristaps.kulis@gmail.com"},"created_at":"2010-12-20T09:15:53Z","head":{"user":{"name":"Kristaps Kūlis","company":"truevision","gravatar_id":"429fa73ee46e8cf341c1a36aa918484f","location":"Rīga, Latvia","blog":"","type":"User","login":"krikulis","email":"kristaps.kulis@gmail.com"},"ref":"master","sha":"86b7349ae245a7684028593798f9851bca823cdb","label":"krikulis:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2010/12/20 01:14:09 -0800","url":"https://github.com/krikulis/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":156,"private":false,"name":"oh-my-zsh","owner":"krikulis","created_at":"2010/12/20 01:12:03 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2010-12-20T09:15:53Z","labels":["Themes"],"state":"open"},{"issue_updated_at":"2010-12-06T00:56:31Z","gravatar_id":"b05542985d6d1ec0d1824283c614fd80","position":154.0,"number":155,"votes":0,"user":{"name":"Anton Stroganov","gravatar_id":"b05542985d6d1ec0d1824283c614fd80","location":"San Francisco, CA","blog":"http://aeontech.tumblr.com","type":"User","login":"Aeon","email":"stroganov.a@gmail.com"},"comments":0,"body":"Not sure what happened to the old Rake plugin, this fixes the cap plugin problems and adds the rake plugin back in.","title":"Fix Capistrano plugin and add Rake plugin","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/155.diff","updated_at":"2011-10-10T12:50:48Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/155","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/155.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"762b55bb2bc0452ce3f5f2f21bc22b61936ef704","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Anton Stroganov","gravatar_id":"b05542985d6d1ec0d1824283c614fd80","location":"San Francisco, CA","blog":"http://aeontech.tumblr.com","type":"User","login":"Aeon","email":"stroganov.a@gmail.com"},"created_at":"2010-12-06T00:56:30Z","head":{"user":{"name":"Anton Stroganov","gravatar_id":"b05542985d6d1ec0d1824283c614fd80","location":"San Francisco, CA","blog":"http://aeontech.tumblr.com","type":"User","login":"Aeon","email":"stroganov.a@gmail.com"},"ref":"master","sha":"25527d5a4b9fb275c5088eae6c4288308f398538","label":"Aeon:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2011/09/13 13:16:38 -0700","url":"https://github.com/Aeon/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":116,"private":false,"name":"oh-my-zsh","owner":"Aeon","created_at":"2010/12/04 16:17:37 -0800","open_issues":0,"homepage":""}},"issue_created_at":"2010-12-06T00:56:31Z","labels":["Plugins"],"state":"open"},{"issue_updated_at":"2010-11-30T22:12:11Z","gravatar_id":"b0369eeb7dc9a214418dc59ab0c682d7","position":147.0,"number":148,"votes":0,"user":{"gravatar_id":"b0369eeb7dc9a214418dc59ab0c682d7","type":"User","login":"danbaatar"},"comments":0,"body":"I made a \"new\" theme by modifying the candy theme. It's not revolutionary: I just wanted something informative, but short.\r\n\r\nThe prompt format is:\r\n\r\nname@host:hours.mins.secs:current_dir>\r\n\r\nAdditionally, if the previous shell command failed, a bright red X is added to the end of the prompt.\r\n\r\n--dan","title":"New theme \"compact\" for oh-my-zsh","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/148.diff","updated_at":"2011-10-10T12:50:47Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/148","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/148.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"4fadc302472f9b02e386da3e7182c1397ee3cd5c","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"gravatar_id":"b0369eeb7dc9a214418dc59ab0c682d7","type":"User","login":"danbaatar"},"created_at":"2010-11-30T22:12:11Z","head":{"user":{"gravatar_id":"b0369eeb7dc9a214418dc59ab0c682d7","type":"User","login":"danbaatar"},"ref":"master","sha":"151c6410e086c0b9f0a77723f01b630bd99e52ff","label":"danbaatar:master","repository":null},"issue_created_at":"2010-11-30T22:12:11Z","labels":["Themes"],"state":"open"},{"issue_updated_at":"2010-12-02T18:30:26Z","gravatar_id":"609b69cbb09257883a4e32d7d5aff098","position":143.0,"number":144,"votes":0,"user":{"name":"Guillaume Hain","gravatar_id":"609b69cbb09257883a4e32d7d5aff098","location":"France","type":"User","login":"zedtux","email":"zedtux@zedroot.org"},"comments":4,"body":"Hello,\r\n\r\nAs you requested me, here is my pull request that include my own zsh theme, based on eastwood, with rvm, git and bazaar integration.","title":"My own zsh theme","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/144.diff","updated_at":"2011-10-10T12:50:47Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/144","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/144.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"583c984a864969579a0c258528ae93f9529308d4","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Guillaume Hain","gravatar_id":"609b69cbb09257883a4e32d7d5aff098","location":"France","type":"User","login":"zedtux","email":"zedtux@zedroot.org"},"created_at":"2010-11-25T18:10:10Z","head":{"user":{"name":"Guillaume Hain","gravatar_id":"609b69cbb09257883a4e32d7d5aff098","location":"France","type":"User","login":"zedtux","email":"zedtux@zedroot.org"},"ref":"master","sha":"7caa6df18a209aa8259e1cdf3fdc5e0c3f0e5acb","label":"zedtux:master","repository":null},"issue_created_at":"2010-11-25T18:10:10Z","labels":["Themes"],"state":"open"},{"issue_updated_at":"2010-10-28T23:48:03Z","gravatar_id":"9289db62d5c34afb4f277a5215e05c83","position":121.0,"number":122,"votes":0,"user":{"name":"Irakli Gozalishvili","company":"Mozilla","gravatar_id":"9289db62d5c34afb4f277a5215e05c83","location":"Paris, France","blog":"http://jeditoolkit.com/","type":"User","login":"Gozala","email":"rfobic@gmail.com"},"comments":1,"body":"Hi,\r\n\r\nI've added port of `__git_ps1` function that comes with git's bash_completion. It's basically smarter version of already existing `current_branch` function. In contrast to `current_branch` `__git_ps1` can does things like:\r\n\r\n(bb8f98d...) <- if you checkout non branched commit\r\n(master|REBASE) <- if on rebase of your master are run into confilct \r\n(master|MERGING) <- if on merge you got a merge-conflict\r\n","title":"port of __git_ps1 that comes with git's bash_completion","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/122.diff","updated_at":"2011-10-10T12:50:47Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/122","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/122.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"dc12853b0c3e5af9e42f44cb9efdf57d44d20711","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Irakli Gozalishvili","company":"Mozilla","gravatar_id":"9289db62d5c34afb4f277a5215e05c83","location":"Paris, France","blog":"http://jeditoolkit.com/","type":"User","login":"Gozala","email":"rfobic@gmail.com"},"created_at":"2010-10-25T16:21:02Z","head":{"user":{"name":"Irakli Gozalishvili","company":"Mozilla","gravatar_id":"9289db62d5c34afb4f277a5215e05c83","location":"Paris, France","blog":"http://jeditoolkit.com/","type":"User","login":"Gozala","email":"rfobic@gmail.com"},"ref":"master","sha":"79305256b9b9480304233ac01e624151c9409b82","label":"Gozala:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2010/10/25 09:10:13 -0700","url":"https://github.com/Gozala/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":1004,"private":false,"name":"oh-my-zsh","owner":"Gozala","created_at":"2010/10/08 16:24:48 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2010-10-25T16:21:02Z","labels":[],"state":"open"},{"issue_updated_at":"2011-09-16T17:54:20Z","gravatar_id":"9e857848a61366860a1b23ba584817e8","position":120.0,"number":121,"votes":1,"user":{"name":"Ryan Phillips","company":"","gravatar_id":"9e857848a61366860a1b23ba584817e8","location":"Austin, TX","blog":"","type":"User","login":"rphillips","email":""},"comments":26,"body":"Fixes issue 43.\r\n\r\nI believe it would be better to remove the lib/git.zsh support in favor of the vcsinfo plugin. Native zsh has support for bzr, cdv, cvs, darcs, git, hg, mtn, p4, svk, svn, tla, git-p4, and git-svn. This makes for a more flexible SCM solution within oh-my-zsh. \r\n\r\nRegards,\r\nRyan\r\n\r\nhttp://zsh.sourceforge.net/Doc/Release/User-Contributions.html#SEC273","title":"Add vcsinfo plugin","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/121.diff","updated_at":"2011-10-10T12:50:47Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/121","mergeable":false,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/121.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"ab2a7b51a8c3ead55a272fba58232d0823e519a2","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Ryan Phillips","company":"","gravatar_id":"9e857848a61366860a1b23ba584817e8","location":"Austin, TX","blog":"","type":"User","login":"rphillips","email":""},"created_at":"2010-10-19T04:47:04Z","head":{"user":{"name":"Ryan Phillips","company":"","gravatar_id":"9e857848a61366860a1b23ba584817e8","location":"Austin, TX","blog":"","type":"User","login":"rphillips","email":""},"ref":"master","sha":"1e709d00e77d1bfa5342cde142607ff625a726de","label":"rphillips:master","repository":{"has_issues":false,"language":"Shell","watchers":4,"pushed_at":"2011/05/26 08:45:17 -0700","url":"https://github.com/rphillips/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":188,"private":false,"name":"oh-my-zsh","owner":"rphillips","created_at":"2010/10/18 21:11:21 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2010-10-19T04:47:04Z","labels":["Plugins"],"state":"open"},{"issue_updated_at":"2010-10-13T13:02:24Z","gravatar_id":"dcbf676f860477e44b275cae5d6318a4","position":110.0,"number":111,"votes":0,"user":{"name":"Piotr Usewicz","company":"layer|twenty|two","gravatar_id":"dcbf676f860477e44b275cae5d6318a4","location":"London","blog":"www.layer22.com","type":"User","login":"pusewicz","email":"piotr@layer22.com"},"comments":0,"body":"Add ZSH_THEME_RVM_PROMPT_{PREFIX|SUFFIX}\r\nAdd pete theme","title":"Add ZSH_THEME_RVM_PROMPT_{PREFIX|SUFFIX} and new theme","diff_url":"https://github.com/robbyrussell/oh-my-zsh/pull/111.diff","updated_at":"2011-10-10T12:50:47Z","html_url":"https://github.com/robbyrussell/oh-my-zsh/pull/111","mergeable":true,"patch_url":"https://github.com/robbyrussell/oh-my-zsh/pull/111.patch","base":{"user":{"name":"Robby Russell","company":"Planet Argon, LLC","gravatar_id":"a82ba1167f4d4a8d1de63820e576a87f","location":"Paris, France","blog":"http://planetargon.com/who-we-are/robby-russell","type":"User","login":"robbyrussell","email":""},"ref":"master","sha":"dc12853b0c3e5af9e42f44cb9efdf57d44d20711","label":"robbyrussell:master","repository":{"has_issues":true,"language":"Shell","watchers":3035,"pushed_at":"2011/10/18 17:18:37 -0700","url":"https://github.com/robbyrussell/oh-my-zsh","has_downloads":true,"forks":1258,"fork":false,"description":"A community-driven framework for managing your zsh configuration. Includes 40+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 80 terminal themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.","has_wiki":true,"size":3080,"private":false,"name":"oh-my-zsh","owner":"robbyrussell","created_at":"2009/08/28 11:15:37 -0700","open_issues":213,"homepage":"http://twitter.com/ohmyzsh"}},"issue_user":{"name":"Piotr Usewicz","company":"layer|twenty|two","gravatar_id":"dcbf676f860477e44b275cae5d6318a4","location":"London","blog":"www.layer22.com","type":"User","login":"pusewicz","email":"piotr@layer22.com"},"created_at":"2010-10-13T13:02:24Z","head":{"user":{"name":"Piotr Usewicz","company":"layer|twenty|two","gravatar_id":"dcbf676f860477e44b275cae5d6318a4","location":"London","blog":"www.layer22.com","type":"User","login":"pusewicz","email":"piotr@layer22.com"},"ref":"master","sha":"bf5a53e2eae35a55c8dc8d88fbd99411153977ad","label":"pusewicz:master","repository":{"has_issues":false,"language":"Shell","watchers":1,"pushed_at":"2010/10/13 05:59:58 -0700","url":"https://github.com/pusewicz/oh-my-zsh","has_downloads":true,"forks":0,"fork":true,"description":"A community-driven framework for managing your zsh configuration. Includes optional plugins for various tools (rails, git, OSX, brew,...), over 40 terminal themes, and an auto-updating tool so that you can keep up with the latest improvements from the community.","has_wiki":true,"size":324,"private":false,"name":"oh-my-zsh","owner":"pusewicz","created_at":"2010/10/13 05:05:02 -0700","open_issues":0,"homepage":""}},"issue_created_at":"2010-10-13T13:02:24Z","labels":["Themes"],"state":"open"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,search,surfraw,ef28b342b173c62c8b892fffb6509c84 b/tests/data/github.com,api,v2,json,repos,search,surfraw,ef28b342b173c62c8b892fffb6509c84 index 8ada865..1986340 100644 --- a/tests/data/github.com,api,v2,json,repos,search,surfraw,ef28b342b173c62c8b892fffb6509c84 +++ b/tests/data/github.com,api,v2,json,repos,search,surfraw,ef28b342b173c62c8b892fffb6509c84 @@ -1,14 +1,15 @@ status: 200 x-ratelimit-remaining: 58 content-location: https://github.com/api/v2/json/repos/search/surfraw -x-runtime: 160ms -content-length: 4419 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 4418 +server: nginx/1.0.4 +x-runtime: 236ms x-ratelimit-limit: 60 -etag: "4caafca018e434384ec7081baae373c8" +etag: "be8fa2627c87a9ed0c21f0f0e4636cff" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:37:04 GMT +date: Thu, 25 Aug 2011 06:58:39 GMT content-type: application/json; charset=utf-8 -{"repositories":[{"type":"repo","watchers":3,"has_wiki":true,"owner":"JNRowe","open_issues":0,"followers":3,"url":"https://github.com/JNRowe/surfraw","homepage":"http://surfraw.alioth.debian.org/","has_issues":true,"pushed_at":"2011/06/01 01:36:06 -0700","username":"JNRowe","pushed":"2011/06/01 01:36:06 -0700","fork":false,"size":4716,"has_downloads":true,"language":"PHP","score":6.5386825,"name":"surfraw","forks":1,"created":"2010/01/26 03:49:55 -0800","description":"Mirror of the upstream git repository","private":false,"created_at":"2010/01/26 03:49:55 -0800"},{"type":"repo","watchers":1,"has_wiki":true,"owner":"sykora","open_issues":0,"followers":1,"url":"https://github.com/sykora/surfraw","homepage":"http://surfraw.alioth.debian.org/","has_issues":true,"username":"sykora","pushed":null,"language":"","fork":false,"size":0,"has_downloads":true,"score":14.106668,"name":"surfraw","forks":1,"created":"2009/11/13 06:00:42 -0800","description":"A fork of surfraw, and my attempts at adding new elvi.","private":false,"created_at":"2009/11/13 06:00:42 -0800"},{"type":"repo","watchers":1,"has_wiki":true,"owner":"gnufs","open_issues":0,"followers":1,"url":"https://github.com/gnufs/surfraw-elvis","homepage":"","has_issues":true,"pushed_at":"2010/10/11 19:57:51 -0700","username":"gnufs","pushed":"2010/10/11 19:57:51 -0700","language":"","fork":false,"size":256,"has_downloads":true,"score":8.397954,"name":"surfraw-elvis","forks":1,"created":"2010/10/11 19:50:26 -0700","description":"custom elvis for surfraw","private":false,"created_at":"2010/10/11 19:50:26 -0700"},{"type":"repo","watchers":1,"has_wiki":true,"owner":"kisom","open_issues":0,"followers":1,"url":"https://github.com/kisom/surfraw","homepage":"http://surfraw.alioth.debian.org/","has_issues":true,"pushed_at":"2011/01/12 10:32:09 -0800","username":"kisom","pushed":"2011/01/12 10:32:09 -0800","language":"","fork":false,"size":1364,"has_downloads":true,"score":14.259327,"name":"surfraw","forks":1,"created":"2011/01/02 21:37:38 -0800","description":"local changes to surfraw - local edits prior to sending updates to surfraw-devel","private":false,"created_at":"2011/01/02 21:37:38 -0800"},{"type":"repo","watchers":1,"has_wiki":false,"owner":"twinshadow","open_issues":0,"followers":1,"url":"https://github.com/twinshadow/Surfraw","homepage":"http://surfraw.alioth.debian.org","has_issues":true,"pushed_at":"2011/02/20 02:52:58 -0800","username":"twinshadow","pushed":"2011/02/20 02:52:58 -0800","language":"","fork":false,"size":720,"has_downloads":true,"score":6.5386825,"name":"Surfraw","forks":1,"created":"2011/01/23 19:03:21 -0800","description":"Shell Users' Revolutionary Front Rage Against the Web","private":false,"created_at":"2011/01/23 19:03:21 -0800"},{"type":"repo","watchers":1,"has_wiki":true,"owner":"twinshadow","open_issues":0,"followers":1,"url":"https://github.com/twinshadow/surfraw-elvi","homepage":"","has_issues":true,"pushed_at":"2011/02/24 15:59:30 -0800","username":"twinshadow","pushed":"2011/02/24 15:59:30 -0800","language":"","fork":false,"size":196,"has_downloads":true,"score":8.1655445,"name":"surfraw-elvi","forks":1,"created":"2011/02/24 15:58:58 -0800","description":"Twinshadow's personal collection of Elvi for Surfraw","private":false,"created_at":"2011/02/24 15:58:58 -0800"},{"type":"repo","watchers":1,"has_wiki":true,"owner":"gnufs","open_issues":0,"followers":1,"url":"https://github.com/gnufs/rawdog-config-aligunduz.org","homepage":"http://aligunduz.org/planet","has_issues":true,"pushed_at":"2011/04/01 04:57:22 -0700","username":"gnufs","pushed":"2011/04/01 04:57:22 -0700","language":"","fork":false,"size":296,"has_downloads":true,"score":0.7137631,"name":"rawdog-config-aligunduz.org","forks":1,"created":"2010/10/11 20:22:39 -0700","description":"Surfraw configuration of \"Ali's Hive Mind\" on http://aligunduz.org/planet","private":false,"created_at":"2010/10/11 20:22:39 -0700"},{"type":"repo","watchers":1,"has_wiki":true,"owner":"xabbu42","open_issues":0,"followers":1,"url":"https://github.com/xabbu42/psr","homepage":"","has_issues":true,"pushed_at":"2011/04/04 02:52:28 -0700","username":"xabbu42","pushed":"2011/04/04 02:52:28 -0700","language":"","fork":false,"size":730,"has_downloads":true,"score":1.0623765,"name":"psr","forks":1,"created":"2011/01/20 18:00:47 -0800","description":"perl surfraw like script","private":false,"created_at":"2011/01/20 18:00:47 -0800"}]} \ No newline at end of file +{"repositories":[{"type":"repo","description":"Mirror of the upstream git repository","username":"JNRowe","forks":1,"has_wiki":true,"open_issues":0,"created_at":"2010/01/26 03:49:55 -0800","homepage":"http://surfraw.alioth.debian.org/","has_issues":true,"pushed_at":"2011/08/23 13:23:14 -0700","watchers":3,"fork":false,"language":"Shell","score":6.625599,"followers":3,"size":4876,"private":false,"name":"surfraw","url":"https://github.com/JNRowe/surfraw","owner":"JNRowe","has_downloads":true,"pushed":"2011/08/23 13:23:14 -0700","created":"2010/01/26 03:49:55 -0800"},{"type":"repo","description":"A fork of surfraw, and my attempts at adding new elvi.","username":"sykora","forks":1,"has_wiki":true,"open_issues":0,"created_at":"2009/11/13 06:00:42 -0800","homepage":"http://surfraw.alioth.debian.org/","has_issues":true,"language":"","watchers":1,"fork":false,"score":14.336326,"followers":1,"size":0,"private":false,"name":"surfraw","url":"https://github.com/sykora/surfraw","owner":"sykora","has_downloads":true,"pushed":null,"created":"2009/11/13 06:00:42 -0800"},{"type":"repo","description":"custom elvis for surfraw","username":"gnufs","forks":1,"has_wiki":true,"open_issues":0,"created_at":"2010/10/11 19:50:26 -0700","homepage":"","has_issues":true,"pushed_at":"2010/10/11 19:57:51 -0700","language":"","watchers":1,"fork":false,"score":8.581445,"followers":1,"size":256,"private":false,"name":"surfraw-elvis","url":"https://github.com/gnufs/surfraw-elvis","owner":"gnufs","has_downloads":true,"pushed":"2010/10/11 19:57:51 -0700","created":"2010/10/11 19:50:26 -0700"},{"type":"repo","description":"local changes to surfraw - local edits prior to sending updates to surfraw-devel","username":"kisom","forks":1,"has_wiki":true,"open_issues":0,"created_at":"2011/01/02 21:37:38 -0800","homepage":"http://surfraw.alioth.debian.org/","has_issues":true,"pushed_at":"2011/01/12 10:32:09 -0800","language":"","watchers":1,"fork":false,"score":14.496914,"followers":1,"size":1364,"private":false,"name":"surfraw","url":"https://github.com/kisom/surfraw","owner":"kisom","has_downloads":true,"pushed":"2011/01/12 10:32:09 -0800","created":"2011/01/02 21:37:38 -0800"},{"type":"repo","description":"Shell Users' Revolutionary Front Rage Against the Web","username":"twinshadow","forks":1,"has_wiki":false,"open_issues":0,"created_at":"2011/01/23 19:03:21 -0800","homepage":"http://surfraw.alioth.debian.org","has_issues":true,"pushed_at":"2011/02/20 02:52:58 -0800","language":"","watchers":1,"fork":false,"score":6.625599,"followers":1,"size":720,"private":false,"name":"Surfraw","url":"https://github.com/twinshadow/Surfraw","owner":"twinshadow","has_downloads":true,"pushed":"2011/02/20 02:52:58 -0800","created":"2011/01/23 19:03:21 -0800"},{"type":"repo","description":"Twinshadow's personal collection of Elvi for Surfraw","username":"twinshadow","forks":1,"has_wiki":true,"open_issues":0,"created_at":"2011/02/24 15:58:58 -0800","homepage":"","has_issues":true,"pushed_at":"2011/02/24 15:59:30 -0800","language":"","watchers":1,"fork":false,"score":8.336964,"followers":1,"size":196,"private":false,"name":"surfraw-elvi","url":"https://github.com/twinshadow/surfraw-elvi","owner":"twinshadow","has_downloads":true,"pushed":"2011/02/24 15:59:30 -0800","created":"2011/02/24 15:58:58 -0800"},{"type":"repo","description":"Surfraw configuration of \"Ali's Hive Mind\" on http://aligunduz.org/planet","username":"gnufs","forks":1,"has_wiki":true,"open_issues":0,"created_at":"2010/10/11 20:22:39 -0700","homepage":"http://aligunduz.org/planet","has_issues":true,"pushed_at":"2011/04/01 04:57:22 -0700","language":"","watchers":1,"fork":false,"score":0.7484778,"followers":1,"size":296,"private":false,"name":"rawdog-config-aligunduz.org","url":"https://github.com/gnufs/rawdog-config-aligunduz.org","owner":"gnufs","has_downloads":true,"pushed":"2011/04/01 04:57:22 -0700","created":"2010/10/11 20:22:39 -0700"},{"type":"repo","description":"perl surfraw like script","username":"xabbu42","forks":1,"has_wiki":true,"open_issues":0,"created_at":"2011/01/20 18:00:47 -0800","homepage":"","has_issues":true,"pushed_at":"2011/04/04 02:52:28 -0700","language":"","watchers":1,"fork":false,"score":1.1151989,"followers":1,"size":730,"private":false,"name":"psr","url":"https://github.com/xabbu42/psr","owner":"xabbu42","has_downloads":true,"pushed":"2011/04/04 02:52:28 -0700","created":"2011/01/20 18:00:47 -0800"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,JNRowe,46d0b95561c6d2a42dda0406e785c3e5 b/tests/data/github.com,api,v2,json,repos,show,JNRowe,46d0b95561c6d2a42dda0406e785c3e5 index 5adfad3..172d08f 100644 --- a/tests/data/github.com,api,v2,json,repos,show,JNRowe,46d0b95561c6d2a42dda0406e785c3e5 +++ b/tests/data/github.com,api,v2,json,repos,show,JNRowe,46d0b95561c6d2a42dda0406e785c3e5 @@ -1,14 +1,15 @@ status: 200 -x-ratelimit-remaining: 58 +x-ratelimit-remaining: 57 content-location: https://github.com/api/v2/json/repos/show/JNRowe -x-runtime: 168ms -content-length: 18333 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 19919 +server: nginx/1.0.4 +x-runtime: 93ms x-ratelimit-limit: 60 -etag: "09af032c0d629f2a27fe5e008c2717d1" +etag: "2ec78256aa429d189bf68539ccabe795" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:37:59 GMT +date: Mon, 15 Aug 2011 19:59:28 GMT content-type: application/json; charset=utf-8 -{"repositories":[{"integrate_branch":"iratqq","watchers":3,"homepage":"http://www.jnrowe.ukfsn.org/projects/bfm.html","has_downloads":true,"created_at":"2009/04/05 18:46:34 -0700","fork":false,"pushed_at":"2011/05/08 23:35:07 -0700","url":"https://github.com/JNRowe/bfm","forks":3,"size":232,"private":false,"has_wiki":true,"language":"C","name":"bfm","owner":"JNRowe","open_issues":0,"description":"This program is a dockapp-style CPU, memory, swap and load average monitor.","has_issues":true},{"watchers":2,"homepage":"http://jnrowe.github.com/upoints/","has_downloads":true,"created_at":"2009/04/23 04:06:46 -0700","fork":false,"pushed_at":"2011/05/16 03:48:13 -0700","url":"https://github.com/JNRowe/upoints","forks":0,"size":3288,"private":false,"has_wiki":true,"language":"Python","name":"upoints","owner":"JNRowe","open_issues":0,"description":"upoints is a collection of GPL v3 licensed modules for working with points on Earth, or other near spherical objects.","has_issues":true},{"watchers":13,"homepage":"http://packages.python.org/pyisbn/","has_downloads":true,"created_at":"2009/04/23 04:07:25 -0700","fork":false,"pushed_at":"2011/06/06 07:04:57 -0700","url":"https://github.com/JNRowe/pyisbn","forks":2,"size":132,"private":false,"has_wiki":true,"language":"Python","name":"pyisbn","owner":"JNRowe","open_issues":1,"description":"A Python module for working with 10- and 13-digit ISBNs","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2009/04/23 04:09:02 -0700","fork":false,"pushed_at":"2011/05/09 01:49:16 -0700","url":"https://github.com/JNRowe/pytemplate","forks":0,"size":2252,"private":false,"has_wiki":true,"language":"Python","name":"pytemplate","owner":"JNRowe","open_issues":0,"description":"Package template for Python, with distutils setup","has_issues":true},{"watchers":5,"homepage":"http://jnrowe.github.com/misc-overlay/","has_downloads":true,"created_at":"2009/05/02 07:32:50 -0700","fork":false,"pushed_at":"2011/06/07 17:00:59 -0700","url":"https://github.com/JNRowe/misc-overlay","forks":0,"size":11049,"private":false,"has_wiki":true,"language":"Python","name":"misc-overlay","owner":"JNRowe","open_issues":6,"description":"Gentoo overlay -- miscellaneous packages","has_issues":true},{"watchers":1,"homepage":"http://jnrowe.github.com/fixes-overlay","has_downloads":false,"created_at":"2009/05/02 07:52:47 -0700","master_branch":"master","fork":false,"pushed_at":"2011/04/06 10:48:22 -0700","url":"https://github.com/JNRowe/fixes-overlay","forks":0,"size":3636,"private":false,"has_wiki":true,"language":"Python","name":"fixes-overlay","owner":"JNRowe","open_issues":0,"description":"Small package fixes languishing in the Gentoo BTS","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2009/05/08 04:18:15 -0700","fork":false,"pushed_at":"2010/05/02 19:21:40 -0700","url":"https://github.com/JNRowe/dotbash","forks":0,"size":1148,"private":false,"has_wiki":true,"name":"dotbash","owner":"JNRowe","open_issues":0,"description":"Shared bash configuration files","has_issues":true},{"watchers":2,"homepage":"http://jnrowe.github.com/","has_downloads":true,"created_at":"2009/05/14 06:43:16 -0700","master_branch":"master","fork":false,"pushed_at":"2011/06/06 07:10:57 -0700","url":"https://github.com/JNRowe/jnrowe.github.com","forks":0,"size":6272,"private":false,"has_wiki":false,"language":"JavaScript","name":"jnrowe.github.com","owner":"JNRowe","open_issues":0,"description":"My user pages repository","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2009/05/14 11:09:34 -0700","fork":false,"pushed_at":"2011/02/14 01:52:50 -0800","url":"https://github.com/JNRowe/local-bin","forks":0,"size":652,"private":false,"has_wiki":true,"language":"Python","name":"local-bin","owner":"JNRowe","open_issues":0,"description":"Tat from my ~/bin","has_issues":true},{"watchers":2,"homepage":"","has_downloads":true,"created_at":"2009/05/24 00:05:46 -0700","fork":true,"pushed_at":"2010/09/24 21:10:10 -0700","url":"https://github.com/JNRowe/termstyle","forks":1,"size":564,"private":false,"has_wiki":true,"name":"termstyle","owner":"JNRowe","open_issues":0,"description":"a dirt-simple terminal-colour library for python","has_issues":false},{"watchers":1,"homepage":"http://readyset.tigris.org/","has_downloads":true,"created_at":"2009/08/16 19:30:50 -0700","fork":false,"pushed_at":"2011/03/04 18:49:12 -0800","url":"https://github.com/JNRowe/readyset","forks":1,"size":3216,"private":false,"has_wiki":true,"language":"JavaScript","name":"readyset","owner":"JNRowe","open_issues":0,"description":"Ready-to-use Software Engineering Templates","has_issues":true},{"watchers":3,"homepage":"http://jnrowe.github.com/cupage","has_downloads":true,"created_at":"2009/09/17 21:03:02 -0700","fork":false,"pushed_at":"2011/05/24 23:07:45 -0700","url":"https://github.com/JNRowe/cupage","forks":1,"size":4948,"private":false,"has_wiki":true,"language":"Python","name":"cupage","owner":"JNRowe","open_issues":5,"description":"A tool to check for updates on web pages","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2009/09/24 18:42:48 -0700","fork":false,"pushed_at":"2011/02/28 05:02:24 -0800","url":"https://github.com/JNRowe/pages_layouts","forks":1,"size":1948,"private":false,"has_wiki":true,"name":"pages_layouts","owner":"JNRowe","open_issues":0,"description":"Shared layouts submodule for jekyll","has_issues":true},{"watchers":1,"homepage":"http://jnrowe.github.com/bwatch/","has_downloads":true,"created_at":"2009/09/26 10:13:56 -0700","fork":false,"pushed_at":"2011/04/06 10:56:17 -0700","url":"https://github.com/JNRowe/bwatch","forks":1,"size":2248,"private":false,"has_wiki":true,"language":"Python","name":"bwatch","owner":"JNRowe","open_issues":2,"description":"Simple bandwidth watching tool","has_issues":true},{"watchers":1,"homepage":"http://jnrowe.github.com/bleeter/","has_downloads":true,"created_at":"2009/10/14 22:19:25 -0700","fork":false,"pushed_at":"2011/05/15 08:07:47 -0700","url":"https://github.com/JNRowe/bleeter","forks":1,"size":3496,"private":false,"has_wiki":true,"language":"Python","name":"bleeter","owner":"JNRowe","open_issues":1,"description":"Nasty little twitter client","has_issues":true},{"watchers":1,"homepage":"","has_downloads":false,"created_at":"2009/10/28 13:13:46 -0700","master_branch":"master","fork":true,"pushed_at":"2011/05/26 02:55:49 -0700","url":"https://github.com/JNRowe/oh-my-zsh","forks":1,"size":416,"private":false,"has_wiki":false,"language":"Shell","name":"oh-my-zsh","owner":"JNRowe","open_issues":0,"description":"A community-driven framework for managing your zsh configuration.","has_issues":true},{"watchers":3,"homepage":"http://jnrowe.github.com/vim-configs","has_downloads":true,"created_at":"2009/11/12 06:10:53 -0800","fork":false,"pushed_at":"2011/05/30 08:42:41 -0700","url":"https://github.com/JNRowe/vim-configs","forks":1,"size":3616,"private":false,"has_wiki":true,"language":"VimL","name":"vim-configs","owner":"JNRowe","open_issues":2,"description":"Personal vim configs","has_issues":true},{"watchers":3,"homepage":"http://surfraw.alioth.debian.org/","has_downloads":true,"created_at":"2010/01/26 03:49:55 -0800","fork":false,"pushed_at":"2011/06/01 01:36:06 -0700","url":"https://github.com/JNRowe/surfraw","forks":1,"size":4716,"private":false,"has_wiki":true,"language":"PHP","name":"surfraw","owner":"JNRowe","open_issues":0,"description":"Mirror of the upstream git repository","has_issues":true},{"watchers":1,"homepage":"http://jnrowe.github.com/blanco","has_downloads":true,"created_at":"2010/01/31 13:04:51 -0800","fork":false,"pushed_at":"2011/04/06 10:37:48 -0700","url":"https://github.com/JNRowe/blanco","forks":1,"size":4200,"private":false,"has_wiki":true,"language":"Python","name":"blanco","owner":"JNRowe","open_issues":1,"description":"Hey, remember me?","has_issues":true},{"watchers":1,"homepage":"http://jnrowe.github.com/vim-jnrowe/","has_downloads":false,"created_at":"2010/02/11 17:12:11 -0800","fork":false,"pushed_at":"2011/04/14 04:05:52 -0700","url":"https://github.com/JNRowe/vim-jnrowe","forks":1,"size":936,"private":false,"has_wiki":true,"language":"VimL","name":"vim-jnrowe","owner":"JNRowe","open_issues":0,"description":"My colorscheme, decoupled from my vim-configs repo for others ;)","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2010/02/15 12:19:22 -0800","fork":false,"pushed_at":"2011/06/01 10:27:57 -0700","url":"https://github.com/JNRowe/emacs-configs","forks":1,"size":1604,"private":false,"has_wiki":true,"language":"Emacs Lisp","name":"emacs-configs","owner":"JNRowe","open_issues":0,"description":"Personal emacs configs","has_issues":true},{"watchers":1,"homepage":"http://joshthecoder.github.com/tweepy","has_downloads":true,"created_at":"2010/03/31 14:57:29 -0700","fork":true,"pushed_at":"2010/04/02 19:09:52 -0700","url":"https://github.com/JNRowe/tweepy","forks":1,"size":536,"private":false,"has_wiki":true,"name":"tweepy","owner":"JNRowe","open_issues":0,"description":"A python library for the Twitter API. OAuth, python 3, complete coverage, streaming API","has_issues":true},{"watchers":1,"homepage":"www.vim.org/scripts/script.php?script_id=2540","has_downloads":false,"created_at":"2010/04/05 20:56:06 -0700","fork":true,"pushed_at":"2011/01/27 03:16:30 -0800","url":"https://github.com/JNRowe/snipmate.vim","forks":1,"size":248,"private":false,"has_wiki":false,"language":"VimL","name":"snipmate.vim","owner":"JNRowe","open_issues":0,"description":"snipMate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim. ","has_issues":false},{"watchers":1,"homepage":"http://jnrowe.github.com/2010/04/04/FtO-winwrangler_tiling_for_the_masses.html","has_downloads":true,"created_at":"2010/05/05 00:54:23 -0700","fork":false,"pushed_at":"2010/05/05 00:55:01 -0700","url":"https://github.com/JNRowe/winwrangler","forks":1,"size":276,"private":false,"has_wiki":true,"name":"winwrangler","owner":"JNRowe","open_issues":0,"description":"Mirror of the upstream failpad source, converted for Matt","has_issues":true},{"watchers":1,"homepage":"http://divmod.org/trac/wiki/DivmodReverend","has_downloads":true,"created_at":"2010/05/06 10:58:58 -0700","fork":false,"pushed_at":"2010/05/06 11:10:51 -0700","url":"https://github.com/JNRowe/reverend","forks":1,"size":420,"private":false,"has_wiki":true,"name":"reverend","owner":"JNRowe","open_issues":0,"description":"Reverend - Simple Bayesian classifier","has_issues":true},{"watchers":1,"homepage":"http://packages.python.org/github-cli","has_downloads":true,"created_at":"2010/09/15 08:21:44 -0700","fork":true,"pushed_at":"2010/11/02 10:42:20 -0700","url":"https://github.com/JNRowe/github-cli","forks":0,"size":916,"private":false,"has_wiki":true,"name":"github-cli","owner":"JNRowe","open_issues":0,"description":"A command-line interface to the GitHub Issues API v2.","has_issues":false},{"watchers":3,"homepage":"","has_downloads":true,"created_at":"2010/10/31 01:03:09 -0700","fork":true,"pushed_at":"2011/06/06 16:14:48 -0700","url":"https://github.com/JNRowe/python-github2","forks":0,"size":156,"private":false,"has_wiki":true,"language":"Python","name":"python-github2","owner":"JNRowe","open_issues":0,"description":"github client in python, with issues support.","has_issues":false},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2010/10/31 09:27:05 -0700","fork":false,"pushed_at":"2011/05/31 13:08:10 -0700","url":"https://github.com/JNRowe/gh_bugs","forks":1,"size":2564,"private":false,"has_wiki":true,"language":"Python","name":"gh_bugs","owner":"JNRowe","open_issues":6,"description":"Simple client for GitHub issues","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2011/01/27 03:05:32 -0800","fork":true,"pushed_at":"2011/05/17 06:22:45 -0700","url":"https://github.com/JNRowe/snipmate-snippets","forks":0,"size":956,"private":false,"has_wiki":true,"language":"VimL","name":"snipmate-snippets","owner":"JNRowe","open_issues":0,"description":"A collection of snippets for snipmate (vim plugin) with a focus on bash, php, html and javascript","has_issues":false},{"watchers":1,"homepage":"http://github.com/caffeinehit/hammertime","has_downloads":true,"created_at":"2011/02/02 09:49:21 -0800","fork":true,"pushed_at":"2011/02/02 09:54:18 -0800","url":"https://github.com/JNRowe/hammertime","forks":0,"size":720,"private":false,"has_wiki":true,"language":"Python","name":"hammertime","owner":"JNRowe","open_issues":0,"description":"Time tracking with git","has_issues":false},{"watchers":1,"homepage":"http://jnrowe.github.com/versionah/","has_downloads":true,"created_at":"2011/02/15 08:51:56 -0800","fork":false,"pushed_at":"2011/05/31 10:24:35 -0700","url":"https://github.com/JNRowe/versionah","forks":1,"size":4404,"private":false,"has_wiki":true,"language":"Python","name":"versionah","owner":"JNRowe","open_issues":0,"description":"Simple version number mangler","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2011/02/22 13:00:23 -0800","fork":false,"url":"https://github.com/JNRowe/issues-test","forks":1,"size":0,"private":false,"has_wiki":true,"name":"issues-test","owner":"JNRowe","open_issues":8,"description":"Repo for testing gh-bugs","has_issues":true},{"watchers":1,"homepage":"http://docs.notmyidea.org/alexis/pelican/","has_downloads":true,"created_at":"2011/02/23 21:20:07 -0800","fork":true,"pushed_at":"2011/04/04 21:22:46 -0700","url":"https://github.com/JNRowe/pelican","forks":0,"size":3916,"private":false,"has_wiki":true,"language":"Python","name":"pelican","owner":"JNRowe","open_issues":0,"description":"Static blog generator in python, using ReST syntax","has_issues":false},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2011/04/04 23:37:38 -0700","fork":true,"pushed_at":"2011/04/04 23:44:42 -0700","url":"https://github.com/JNRowe/pw","forks":0,"size":132,"private":false,"has_wiki":true,"language":"Python","name":"pw","owner":"JNRowe","open_issues":0,"description":"Grep GPG-encrypted YAML password safes.","has_issues":false},{"watchers":1,"homepage":"http://code.google.com/p/shell-doctest/","has_downloads":true,"created_at":"2011/04/05 05:32:07 -0700","fork":false,"pushed_at":"2011/04/05 05:32:44 -0700","url":"https://github.com/JNRowe/shell-doctest","forks":1,"size":128,"private":false,"has_wiki":true,"language":"Python","name":"shell-doctest","owner":"JNRowe","open_issues":0,"description":"shelldoctest is Doctest/UnitTest for shell (mirror of Google Code project)","has_issues":true},{"watchers":1,"homepage":"http://jnrowe.github.com/blog","has_downloads":true,"created_at":"2011/04/05 09:21:16 -0700","fork":false,"pushed_at":"2011/04/05 09:22:26 -0700","url":"https://github.com/JNRowe/blog","forks":1,"size":1152,"private":false,"has_wiki":true,"name":"blog","owner":"JNRowe","open_issues":0,"description":"Old jnrowe.github.com content that *may* be resurrected.","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2011/04/06 07:35:40 -0700","fork":false,"pushed_at":"2011/05/13 12:27:22 -0700","url":"https://github.com/JNRowe/sphinx-jnrowe","forks":1,"size":644,"private":false,"has_wiki":true,"name":"sphinx-jnrowe","owner":"JNRowe","open_issues":0,"description":"My sphinx theme","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2011/05/09 06:04:35 -0700","fork":false,"pushed_at":"2011/05/27 00:50:48 -0700","url":"https://github.com/JNRowe/rdial","forks":1,"size":272,"private":false,"has_wiki":true,"language":"Python","name":"rdial","owner":"JNRowe","open_issues":0,"description":"Simple time tracking for simple people","has_issues":true},{"watchers":1,"homepage":"","has_downloads":true,"created_at":"2011/05/22 23:21:28 -0700","fork":true,"pushed_at":"2011/05/30 08:39:21 -0700","url":"https://github.com/JNRowe/vim-cute-python","forks":0,"size":180,"private":false,"has_wiki":true,"language":"VimL","name":"vim-cute-python","owner":"JNRowe","open_issues":0,"description":"Unicode goodness for Python code by using vim's new “conceal” feature","has_issues":false},{"watchers":1,"homepage":"http://develop.github.com","has_downloads":false,"created_at":"2011/05/23 03:32:46 -0700","master_branch":"gh-pages","fork":true,"pushed_at":"2011/05/23 03:36:51 -0700","url":"https://github.com/JNRowe/develop.github.com","forks":0,"size":1584,"private":false,"has_wiki":false,"language":"JavaScript","name":"develop.github.com","owner":"JNRowe","open_issues":0,"description":"API Documentation for GitHub","has_issues":false},{"watchers":1,"homepage":"http://python-requests.org","has_downloads":true,"created_at":"2011/05/27 00:16:23 -0700","master_branch":"develop","fork":true,"pushed_at":"2011/05/27 00:17:44 -0700","url":"https://github.com/JNRowe/requests","forks":0,"size":2648,"private":false,"has_wiki":false,"language":"Python","name":"requests","owner":"JNRowe","open_issues":0,"description":"Python HTTP Requests for Humans.","has_issues":false},{"watchers":1,"homepage":"http://github.com/caelum/restfulie-py","has_downloads":true,"created_at":"2011/05/28 22:04:51 -0700","fork":true,"pushed_at":"2011/05/28 22:05:55 -0700","url":"https://github.com/JNRowe/restfulie-py","forks":0,"size":1794,"private":false,"has_wiki":true,"language":"Python","name":"restfulie-py","owner":"JNRowe","open_issues":0,"description":"Python port of Restfulie","has_issues":false},{"watchers":1,"homepage":"http://tyrs.nicosphere.net","has_downloads":true,"created_at":"2011/06/03 02:42:16 -0700","fork":true,"pushed_at":"2011/06/03 06:45:50 -0700","url":"https://github.com/JNRowe/tyrs","forks":0,"size":132,"private":false,"has_wiki":true,"language":"Python","name":"tyrs","owner":"JNRowe","open_issues":0,"description":"twitter curses client","has_issues":false},{"watchers":1,"homepage":"http://andrewgee.org/blog/projects/gpxviewer","has_downloads":true,"created_at":"2011/06/06 06:21:54 -0700","fork":true,"pushed_at":"2011/06/06 06:23:32 -0700","url":"https://github.com/JNRowe/gpxviewer","forks":0,"size":1040,"private":false,"has_wiki":false,"language":"Python","name":"gpxviewer","owner":"JNRowe","open_issues":0,"description":"GPXViewer GPS trace viewer","has_issues":false}]} \ No newline at end of file +{"repositories":[{"has_downloads":true,"url":"https://github.com/JNRowe/bfm","forks":3,"description":"This program is a dockapp-style CPU, memory, swap and load average monitor.","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://www.jnrowe.ukfsn.org/projects/bfm.html","size":232,"private":false,"has_issues":true,"pushed_at":"2011/05/08 23:35:07 -0700","name":"bfm","owner":"JNRowe","integrate_branch":"iratqq","language":"C","watchers":3,"created_at":"2009/04/05 18:46:34 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/upoints","forks":0,"description":"upoints is a collection of GPL v3 licensed modules for working with points on Earth, or other near spherical objects.","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/upoints/","size":4640,"private":false,"has_issues":true,"pushed_at":"2011/06/23 09:43:42 -0700","name":"upoints","owner":"JNRowe","language":"Python","watchers":2,"created_at":"2009/04/23 04:06:46 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/pyisbn","forks":2,"description":"A Python module for working with 10- and 13-digit ISBNs","has_wiki":true,"fork":false,"open_issues":1,"homepage":"http://packages.python.org/pyisbn/","size":132,"private":false,"has_issues":true,"pushed_at":"2011/06/06 07:04:57 -0700","name":"pyisbn","owner":"JNRowe","language":"Python","watchers":13,"created_at":"2009/04/23 04:07:25 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/pytemplate","forks":0,"description":"Package template for Python, with distutils setup","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":2252,"private":false,"has_issues":true,"pushed_at":"2011/05/09 01:49:16 -0700","name":"pytemplate","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2009/04/23 04:09:02 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/misc-overlay","forks":0,"description":"Gentoo overlay -- miscellaneous packages","has_wiki":true,"fork":false,"open_issues":13,"homepage":"http://jnrowe.github.com/misc-overlay/","size":7777,"private":false,"has_issues":true,"pushed_at":"2011/08/11 11:46:23 -0700","name":"misc-overlay","owner":"JNRowe","language":"Python","watchers":5,"created_at":"2009/05/02 07:32:50 -0700"},{"has_downloads":false,"url":"https://github.com/JNRowe/fixes-overlay","forks":0,"description":"Small package fixes languishing in the Gentoo BTS","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/fixes-overlay","size":3756,"private":false,"has_issues":true,"pushed_at":"2011/06/23 09:59:08 -0700","name":"fixes-overlay","owner":"JNRowe","language":"Python","master_branch":"master","watchers":1,"created_at":"2009/05/02 07:52:47 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/dotbash","forks":0,"description":"Shared bash configuration files","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":1148,"private":false,"has_issues":true,"pushed_at":"2010/05/02 19:21:40 -0700","name":"dotbash","owner":"JNRowe","watchers":1,"created_at":"2009/05/08 04:18:15 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/jnrowe.github.com","forks":0,"description":"My user pages repository","has_wiki":false,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/","size":6636,"private":false,"has_issues":true,"pushed_at":"2011/07/09 11:32:30 -0700","name":"jnrowe.github.com","owner":"JNRowe","language":"JavaScript","master_branch":"master","watchers":2,"created_at":"2009/05/14 06:43:16 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/local-bin","forks":0,"description":"Tat from my ~/bin","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":656,"private":false,"has_issues":true,"pushed_at":"2011/06/20 08:39:36 -0700","name":"local-bin","owner":"JNRowe","language":"Shell","watchers":1,"created_at":"2009/05/14 11:09:34 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/termstyle","forks":1,"description":"a dirt-simple terminal-colour library for python","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":564,"private":false,"has_issues":false,"pushed_at":"2010/09/24 21:10:10 -0700","name":"termstyle","owner":"JNRowe","watchers":2,"created_at":"2009/05/24 00:05:46 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/readyset","forks":1,"description":"Ready-to-use Software Engineering Templates","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://readyset.tigris.org/","size":3216,"private":false,"has_issues":true,"pushed_at":"2011/03/04 18:49:12 -0800","name":"readyset","owner":"JNRowe","language":"JavaScript","watchers":1,"created_at":"2009/08/16 19:30:50 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/cupage","forks":1,"description":"A tool to check for updates on web pages","has_wiki":true,"fork":false,"open_issues":3,"homepage":"http://jnrowe.github.com/cupage","size":612,"private":false,"has_issues":true,"pushed_at":"2011/07/17 10:23:45 -0700","name":"cupage","owner":"JNRowe","language":"Python","watchers":3,"created_at":"2009/09/17 21:03:02 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/pages_layouts","forks":1,"description":"Shared layouts submodule for jekyll","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":1948,"private":false,"has_issues":true,"pushed_at":"2011/02/28 05:02:24 -0800","name":"pages_layouts","owner":"JNRowe","watchers":1,"created_at":"2009/09/24 18:42:48 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/bwatch","forks":1,"description":"Simple bandwidth watching tool","has_wiki":true,"fork":false,"open_issues":2,"homepage":"http://jnrowe.github.com/bwatch/","size":2328,"private":false,"has_issues":true,"pushed_at":"2011/06/23 11:14:25 -0700","name":"bwatch","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2009/09/26 10:13:56 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/bleeter","forks":1,"description":"Nasty little twitter client","has_wiki":true,"fork":false,"open_issues":1,"homepage":"http://jnrowe.github.com/bleeter/","size":3544,"private":false,"has_issues":true,"pushed_at":"2011/06/23 11:17:05 -0700","name":"bleeter","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2009/10/14 22:19:25 -0700"},{"has_downloads":false,"url":"https://github.com/JNRowe/oh-my-zsh","forks":1,"description":"A community-driven framework for managing your zsh configuration.","has_wiki":false,"fork":true,"open_issues":0,"homepage":"","size":416,"private":false,"has_issues":true,"pushed_at":"2011/05/26 02:55:49 -0700","name":"oh-my-zsh","owner":"JNRowe","language":"Shell","master_branch":"master","watchers":1,"created_at":"2009/10/28 13:13:46 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/vim-configs","forks":1,"description":"Personal vim configs","has_wiki":true,"fork":false,"open_issues":2,"homepage":"http://jnrowe.github.com/vim-configs","size":3756,"private":false,"has_issues":true,"pushed_at":"2011/08/11 11:35:34 -0700","name":"vim-configs","owner":"JNRowe","language":"VimL","watchers":3,"created_at":"2009/11/12 06:10:53 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/surfraw","forks":1,"description":"Mirror of the upstream git repository","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://surfraw.alioth.debian.org/","size":4876,"private":false,"has_issues":true,"pushed_at":"2011/08/11 09:34:59 -0700","name":"surfraw","owner":"JNRowe","language":"Shell","watchers":3,"created_at":"2010/01/26 03:49:55 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/blanco","forks":1,"description":"Hey, remember me?","has_wiki":true,"fork":false,"open_issues":1,"homepage":"http://jnrowe.github.com/blanco","size":4296,"private":false,"has_issues":true,"pushed_at":"2011/06/23 11:19:45 -0700","name":"blanco","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2010/01/31 13:04:51 -0800"},{"has_downloads":false,"url":"https://github.com/JNRowe/vim-jnrowe","forks":1,"description":"My colorscheme, decoupled from my vim-configs repo for others ;)","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/vim-jnrowe/","size":1244,"private":false,"has_issues":true,"pushed_at":"2011/06/23 09:25:27 -0700","name":"vim-jnrowe","owner":"JNRowe","language":"VimL","watchers":1,"created_at":"2010/02/11 17:12:11 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/emacs-configs","forks":1,"description":"Personal emacs configs","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":1884,"private":false,"has_issues":true,"pushed_at":"2011/08/11 09:38:11 -0700","name":"emacs-configs","owner":"JNRowe","language":"Emacs Lisp","watchers":1,"created_at":"2010/02/15 12:19:22 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/tweepy","forks":1,"description":"A python library for the Twitter API. OAuth, python 3, complete coverage, streaming API","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://joshthecoder.github.com/tweepy","size":536,"private":false,"has_issues":true,"pushed_at":"2010/04/02 19:09:52 -0700","name":"tweepy","owner":"JNRowe","watchers":1,"created_at":"2010/03/31 14:57:29 -0700"},{"has_downloads":false,"url":"https://github.com/JNRowe/snipmate.vim","forks":1,"description":"snipMate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim. ","has_wiki":false,"fork":true,"open_issues":0,"homepage":"www.vim.org/scripts/script.php?script_id=2540","size":248,"private":false,"has_issues":false,"pushed_at":"2011/01/27 03:16:30 -0800","name":"snipmate.vim","owner":"JNRowe","language":"VimL","watchers":1,"created_at":"2010/04/05 20:56:06 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/winwrangler","forks":1,"description":"Mirror of the upstream failpad source, converted for Matt","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/2010/04/04/FtO-winwrangler_tiling_for_the_masses.html","size":276,"private":false,"has_issues":true,"pushed_at":"2010/05/05 00:55:01 -0700","name":"winwrangler","owner":"JNRowe","watchers":1,"created_at":"2010/05/05 00:54:23 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/reverend","forks":1,"description":"Reverend - Simple Bayesian classifier","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://divmod.org/trac/wiki/DivmodReverend","size":420,"private":false,"has_issues":true,"pushed_at":"2010/05/06 11:10:51 -0700","name":"reverend","owner":"JNRowe","watchers":1,"created_at":"2010/05/06 10:58:58 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/github-cli","forks":0,"description":"A command-line interface to the GitHub Issues API v2.","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://packages.python.org/github-cli","size":916,"private":false,"has_issues":false,"pushed_at":"2010/11/02 10:42:20 -0700","name":"github-cli","owner":"JNRowe","watchers":1,"created_at":"2010/09/15 08:21:44 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/python-github2","forks":0,"description":"github client in python, with issues support.","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":144,"private":false,"has_issues":false,"pushed_at":"2011/07/12 09:55:46 -0700","name":"python-github2","owner":"JNRowe","language":"Python","watchers":3,"created_at":"2010/10/31 01:03:09 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/hubugs","forks":1,"description":"Simple client for GitHub issues","has_wiki":true,"fork":false,"open_issues":5,"homepage":"http://packages.python.org/hubugs/","size":3356,"private":false,"has_issues":true,"pushed_at":"2011/07/14 11:41:45 -0700","name":"hubugs","owner":"JNRowe","language":"Python","watchers":2,"created_at":"2010/10/31 09:27:05 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/snipmate-snippets","forks":0,"description":"A collection of snippets for snipmate (vim plugin) with a focus on bash, php, html and javascript","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":956,"private":false,"has_issues":false,"pushed_at":"2011/05/17 06:22:45 -0700","name":"snipmate-snippets","owner":"JNRowe","language":"VimL","watchers":1,"created_at":"2011/01/27 03:05:32 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/hammertime","forks":0,"description":"Time tracking with git","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://github.com/caffeinehit/hammertime","size":720,"private":false,"has_issues":false,"pushed_at":"2011/02/02 09:54:18 -0800","name":"hammertime","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/02/02 09:49:21 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/versionah","forks":1,"description":"Simple version number mangler","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/versionah/","size":4504,"private":false,"has_issues":true,"pushed_at":"2011/08/11 09:35:57 -0700","name":"versionah","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/02/15 08:51:56 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/issues-test","forks":1,"description":"Repo for testing hubugs","has_wiki":true,"fork":false,"open_issues":8,"homepage":"","size":0,"private":false,"has_issues":true,"name":"issues-test","owner":"JNRowe","watchers":1,"created_at":"2011/02/22 13:00:23 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/pelican","forks":0,"description":"Static blog generator in python, using ReST syntax","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://docs.notmyidea.org/alexis/pelican/","size":3916,"private":false,"has_issues":false,"pushed_at":"2011/04/04 21:22:46 -0700","name":"pelican","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/02/23 21:20:07 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/pw","forks":0,"description":"Grep GPG-encrypted YAML password safes.","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":132,"private":false,"has_issues":false,"pushed_at":"2011/04/04 23:44:42 -0700","name":"pw","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/04/04 23:37:38 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/shell-doctest","forks":1,"description":"shelldoctest is Doctest/UnitTest for shell (mirror of Google Code project)","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://code.google.com/p/shell-doctest/","size":128,"private":false,"has_issues":true,"pushed_at":"2011/04/05 05:32:44 -0700","name":"shell-doctest","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/04/05 05:32:07 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/blog","forks":1,"description":"Old jnrowe.github.com content that *may* be resurrected.","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/blog","size":1152,"private":false,"has_issues":true,"pushed_at":"2011/04/05 09:22:26 -0700","name":"blog","owner":"JNRowe","watchers":1,"created_at":"2011/04/05 09:21:16 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/sphinx-jnrowe","forks":1,"description":"My sphinx theme","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":644,"private":false,"has_issues":true,"pushed_at":"2011/05/13 12:27:22 -0700","name":"sphinx-jnrowe","owner":"JNRowe","watchers":1,"created_at":"2011/04/06 07:35:40 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/rdial","forks":1,"description":"Simple time tracking for simple people","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":1688,"private":false,"has_issues":true,"pushed_at":"2011/08/11 07:49:36 -0700","name":"rdial","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/05/09 06:04:35 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/vim-cute-python","forks":0,"description":"Unicode goodness for Python code by using vim's new “conceal” feature","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":112,"private":false,"has_issues":false,"pushed_at":"2011/07/18 06:01:30 -0700","name":"vim-cute-python","owner":"JNRowe","language":"VimL","watchers":1,"created_at":"2011/05/22 23:21:28 -0700"},{"has_downloads":false,"url":"https://github.com/JNRowe/develop.github.com","forks":0,"description":"API Documentation for GitHub","has_wiki":false,"fork":true,"open_issues":0,"homepage":"http://develop.github.com","size":1584,"private":false,"has_issues":false,"pushed_at":"2011/05/23 03:36:51 -0700","name":"develop.github.com","owner":"JNRowe","language":"JavaScript","master_branch":"gh-pages","watchers":1,"created_at":"2011/05/23 03:32:46 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/requests","forks":0,"description":"Python HTTP Requests for Humans.","has_wiki":false,"fork":true,"open_issues":0,"homepage":"http://python-requests.org","size":2648,"private":false,"has_issues":false,"pushed_at":"2011/05/27 00:17:44 -0700","name":"requests","owner":"JNRowe","language":"Python","master_branch":"develop","watchers":1,"created_at":"2011/05/27 00:16:23 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/restfulie-py","forks":0,"description":"Python port of Restfulie","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://github.com/caelum/restfulie-py","size":1794,"private":false,"has_issues":false,"pushed_at":"2011/05/28 22:05:55 -0700","name":"restfulie-py","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/05/28 22:04:51 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/tyrs","forks":0,"description":"twitter curses client","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://tyrs.nicosphere.net","size":132,"private":false,"has_issues":false,"pushed_at":"2011/06/03 06:45:50 -0700","name":"tyrs","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/06/03 02:42:16 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/gpxviewer","forks":0,"description":"GPXViewer GPS trace viewer","has_wiki":false,"fork":true,"open_issues":0,"homepage":"http://andrewgee.org/blog/projects/gpxviewer","size":1040,"private":false,"has_issues":false,"pushed_at":"2011/06/06 06:23:32 -0700","name":"gpxviewer","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/06/06 06:21:54 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/dwm","forks":1,"description":"The dwm codebase I run","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://dwm.suckless.org/","size":1084,"private":false,"has_issues":true,"pushed_at":"2011/06/24 09:18:06 -0700","name":"dwm","owner":"JNRowe","language":"C","master_branch":"jnrowe","watchers":1,"created_at":"2011/06/21 23:57:57 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/micromodels","forks":0,"description":"Declarative dictionary-based model classes for Python","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":368,"private":false,"has_issues":false,"pushed_at":"2011/06/22 00:29:06 -0700","name":"micromodels","owner":"JNRowe","integrate_branch":"develop","language":"Python","watchers":1,"created_at":"2011/06/22 00:27:17 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/HTTPretty","forks":0,"description":"HTTP client mocking tool for Python","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":172,"private":false,"has_issues":false,"pushed_at":"2011/06/30 12:24:07 -0700","name":"HTTPretty","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/06/30 12:19:33 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/thinote","forks":1,"description":"Move along","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":96,"private":false,"has_issues":true,"pushed_at":"2011/07/15 12:10:38 -0700","name":"thinote","owner":"JNRowe","watchers":1,"created_at":"2011/07/15 12:09:17 -0700"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,JNRowe,misc-overlay,0d310ea1b3942e443c6e5cae4f3db39f b/tests/data/github.com,api,v2,json,repos,show,JNRowe,misc-overlay,0d310ea1b3942e443c6e5cae4f3db39f index 3ff7cf5..0b669fb 100644 --- a/tests/data/github.com,api,v2,json,repos,show,JNRowe,misc-overlay,0d310ea1b3942e443c6e5cae4f3db39f +++ b/tests/data/github.com,api,v2,json,repos,show,JNRowe,misc-overlay,0d310ea1b3942e443c6e5cae4f3db39f @@ -1,14 +1,15 @@ status: 200 -x-ratelimit-remaining: 59 +x-ratelimit-remaining: 56 content-location: https://github.com/api/v2/json/repos/show/JNRowe/misc-overlay -x-runtime: 11ms -content-length: 447 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 448 +server: nginx/1.0.4 +x-runtime: 14ms x-ratelimit-limit: 60 -etag: "977c6513db34b26e6084b833b45c7754" +etag: "bee34b60622b6d172d1fcfadc3fb03d5" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 07:50:08 GMT +date: Mon, 15 Aug 2011 19:59:43 GMT content-type: application/json; charset=utf-8 -{"repository":{"homepage":"http://jnrowe.github.com/misc-overlay/","forks":0,"pushed_at":"2011/05/22 00:24:15 -0700","url":"https://github.com/JNRowe/misc-overlay","has_wiki":true,"watchers":5,"open_issues":6,"fork":false,"created_at":"2009/05/02 07:32:50 -0700","has_issues":true,"description":"Gentoo overlay -- miscellaneous packages","size":8449,"private":false,"name":"misc-overlay","owner":"JNRowe","language":"Python","has_downloads":true}} \ No newline at end of file +{"repository":{"has_downloads":true,"url":"https://github.com/JNRowe/misc-overlay","forks":0,"description":"Gentoo overlay -- miscellaneous packages","has_wiki":true,"fork":false,"open_issues":13,"homepage":"http://jnrowe.github.com/misc-overlay/","size":7777,"private":false,"has_issues":true,"pushed_at":"2011/08/11 11:46:23 -0700","name":"misc-overlay","owner":"JNRowe","language":"Python","watchers":5,"created_at":"2009/05/02 07:32:50 -0700"}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,JNRowe,misc-overlay,languages,941f2fae40c32a86b82f8e51a623cacd b/tests/data/github.com,api,v2,json,repos,show,JNRowe,misc-overlay,languages,941f2fae40c32a86b82f8e51a623cacd new file mode 100644 index 0000000..15bd799 --- /dev/null +++ b/tests/data/github.com,api,v2,json,repos,show,JNRowe,misc-overlay,languages,941f2fae40c32a86b82f8e51a623cacd @@ -0,0 +1,14 @@ +status: 200 +x-ratelimit-remaining: 59 +content-location: https://github.com/api/v2/json/repos/show/JNRowe/misc-overlay/languages +x-runtime: 93ms +content-length: 40 +server: nginx/0.7.67 +connection: keep-alive +x-ratelimit-limit: 60 +etag: "584c4c914a780c9338d00d146803076b" +cache-control: private, max-age=0, must-revalidate +date: Wed, 08 Jun 2011 13:38:58 GMT +content-type: application/json; charset=utf-8 + +{"languages":{"VimL":82,"Python":11194}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,JNRowe,python-github2,ef4102f3c324bd1ce10d00d1b011f1c5 b/tests/data/github.com,api,v2,json,repos,show,JNRowe,python-github2,ef4102f3c324bd1ce10d00d1b011f1c5 new file mode 100644 index 0000000..7fae8c2 --- /dev/null +++ b/tests/data/github.com,api,v2,json,repos,show,JNRowe,python-github2,ef4102f3c324bd1ce10d00d1b011f1c5 @@ -0,0 +1,15 @@ +status: 200 +x-ratelimit-remaining: 59 +content-location: https://github.com/api/v2/json/repos/show/JNRowe/python-github2 +-content-encoding: gzip +connection: keep-alive +content-length: 477 +server: nginx/1.0.4 +x-runtime: 14ms +x-ratelimit-limit: 60 +etag: "33efaec4c2fd40a4dd0369470bc1ab23" +cache-control: private, max-age=0, must-revalidate +date: Tue, 30 Aug 2011 09:23:19 GMT +content-type: application/json; charset=utf-8 + +{"repository":{"parent":"ask/python-github2","owner":"JNRowe","has_downloads":true,"homepage":"","pushed_at":"2011/08/25 00:43:37 -0700","watchers":3,"forks":0,"has_wiki":true,"source":"ask/python-github2","url":"https://github.com/JNRowe/python-github2","open_issues":0,"created_at":"2010/10/31 01:03:09 -0700","fork":true,"size":280,"name":"python-github2","has_issues":false,"private":false,"language":"Python","description":"github client in python, with issues support."}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,branches,2be8c8f036124b61fbddeecbbdf28e9c b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,branches,2be8c8f036124b61fbddeecbbdf28e9c new file mode 100644 index 0000000..ab694a6 --- /dev/null +++ b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,branches,2be8c8f036124b61fbddeecbbdf28e9c @@ -0,0 +1,14 @@ +status: 200 +x-ratelimit-remaining: 57 +content-location: https://github.com/api/v2/json/repos/show/ask/python-github2/branches +x-runtime: 8ms +content-length: 66 +server: nginx/0.7.67 +connection: keep-alive +x-ratelimit-limit: 60 +etag: "9f005bc97eb5ab622f01f1810790a947" +cache-control: private, max-age=0, must-revalidate +date: Wed, 08 Jun 2011 13:39:24 GMT +content-type: application/json; charset=utf-8 + +{"branches":{"master":"1c83cde9b5a7c396a01af1007fb7b88765b9ae45"}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,collaborators,855cea60d613a363106762311e6f53ea b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,collaborators,855cea60d613a363106762311e6f53ea new file mode 100644 index 0000000..26c614b --- /dev/null +++ b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,collaborators,855cea60d613a363106762311e6f53ea @@ -0,0 +1,14 @@ +status: 200 +x-ratelimit-remaining: 57 +content-location: https://github.com/api/v2/json/repos/show/ask/python-github2/collaborators?access_token=xxx +x-runtime: 15ms +content-length: 50 +server: nginx/0.7.67 +connection: keep-alive +x-ratelimit-limit: 60 +etag: "03a973e8cc6d6cc0a8f05f2ef767a175" +cache-control: private, max-age=0, must-revalidate +date: Wed, 08 Jun 2011 13:38:17 GMT +content-type: application/json; charset=utf-8 + +{"collaborators":["ask","jdunck","JNRowe","nvie"]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,contributors,ff5597c19e0d450ad432c56295b19cf8 b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,contributors,ff5597c19e0d450ad432c56295b19cf8 index 6480977..4118e5d 100644 --- a/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,contributors,ff5597c19e0d450ad432c56295b19cf8 +++ b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,contributors,ff5597c19e0d450ad432c56295b19cf8 @@ -1,14 +1,15 @@ status: 200 -x-ratelimit-remaining: 54 +x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/repos/show/ask/python-github2/contributors -x-runtime: 43ms -content-length: 5485 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 6007 +server: nginx/1.0.4 +x-runtime: 92ms x-ratelimit-limit: 60 -etag: "bad07c5d349a2f8a18db3268500b2586" +etag: "436cb11fc3ae37c80a03c3b50a30532c" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:39:49 GMT +date: Thu, 25 Aug 2011 06:58:04 GMT content-type: application/json; charset=utf-8 -{"contributors":[{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","contributions":202,"location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},{"name":"Ask Solem Hoel","company":"RabbitMQ, VMware, Inc.","gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","contributions":44,"location":"London, UK","type":"User","login":"ask","email":"ask@celeryproject.org"},{"name":"Vincent Driessen","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","contributions":9,"location":"Netherlands","blog":"http://nvie.com","type":"User","login":"nvie","email":"vincent@datafox.nl"},{"name":"Adam Vandenberg","gravatar_id":"7ea0cc75793eb2b1ada4abc953a41592","contributions":6,"location":"Issaquah, WA","blog":"http://adamv.com/","type":"User","login":"adamv","email":"flangy@gmail.com"},{"name":"Michael Basnight","gravatar_id":"2f3f68f62f5fc642f0b716b355071176","contributions":5,"location":"Austin","type":"User","login":"hub-cap"},{"name":"chris vale","company":"RocketNinja","gravatar_id":"d5400f77ab68a885319ac7b929bc789e","contributions":4,"location":"San Francisco","blog":"http://blog.crispywalrus.net/","type":"User","login":"crispywalrus","email":""},{"name":"Maximillian Dornseif","company":"HUDORA GmbH","gravatar_id":"ac1e94537ee54758bb954a6d1306be2a","contributions":4,"location":"Germany","blog":"http://mdornseif.github.com/","type":"User","login":"mdornseif"},{"name":"Fernando Perez","company":"University of California, Berkeley.","gravatar_id":"95198572b00e5fbcd97fb5315215bf7a","contributions":4,"location":"Berkeley, CA","blog":"http://fperez.org","type":"User","login":"fperez","email":"fernando.perez@berkeley.edu"},{"name":"Evan Broder","gravatar_id":"425ea4ff715bef0be068e0176251bf53","contributions":4,"location":"San Francisco, CA","blog":"http://ebroder.net","type":"User","login":"ebroder","email":"evan@ebroder.net"},{"name":"Jeremy Dunck","gravatar_id":"f3794e603ef53b0513ab45b6565ee457","contributions":4,"location":"Dallas, TX","type":"User","login":"jdunck","email":""},{"name":"Daniel Greenfeld","company":"pydanny.com","gravatar_id":"67e05420d4dd3492097aeb77f44f7867","contributions":3,"location":"Los Angeles, CA","blog":"http://pydanny.blogspot.com","type":"User","login":"pydanny","email":"pydanny@gmail.com"},{"name":"Scott Torborg","company":"","gravatar_id":"e45c9c1a1c6184d5572859c52ae43bfc","contributions":2,"location":"Portland, OR","blog":"http://www.scotttorborg.com","type":"User","login":"storborg","email":"storborg@mit.edu"},{"name":"Patryk Zawadzki","gravatar_id":"16483a82144b02ad846eafa078ef9b27","contributions":2,"location":"Wrocław, Poland","blog":"http://room-303.com/blog/","type":"User","login":"patrys","email":"patrys@pld-linux.org"},{"name":"Surajram Kumaravel","company":"","gravatar_id":"1ee6b40a1acbcc00eb32e306e0e94037","contributions":2,"location":"Chennai, India","blog":"http://www.surajram.com","type":"User","login":"surajram","email":"root@surajram.com"},{"name":"Cody Soyland","company":"","gravatar_id":"db17092663e716b08de72e936ed082c7","contributions":2,"location":"Lawrence, KS","blog":"http://codysoyland.com/","type":"User","login":"codysoyland","email":"codysoyland@gmail.com"},{"name":"Christopher MacGown","gravatar_id":"4174216c1dc0f223ce608d5a3b66a585","contributions":2,"location":"","type":"User","login":"ChristopherMacGown","email":""},{"gravatar_id":"464f76c5577389c5ca29e3d7cca133d5","contributions":1,"type":"User","login":"broderboy"},{"gravatar_id":"311e2e25841265550f884d3996a4e23b","contributions":1,"type":"User","login":"openhatched"},{"name":"Rick Harris","gravatar_id":"afb82eaa9550a5ba8538bb926b854465","contributions":1,"location":"Austin, TX","type":"User","login":"rconradharris","email":"rconradharris@gmail.com"},{"name":"Josh Weinberg","gravatar_id":"cf04727870245c17f455fb05b25f9f8e","contributions":1,"blog":"http://openemu.org","type":"User","login":"jweinberg","email":"joshuacweinberg@gmail.com"},{"name":"Claudio B.","company":"","gravatar_id":"4dea5cf83d2d6c1228750b76e579b38d","contributions":1,"location":"Los Angeles, United States","blog":"http://claudiob.github.com","type":"User","login":"claudiob","email":""},{"name":"Barthelemy Dagenais","gravatar_id":"1dc7387cedba30b9a3d12792084b4b4a","contributions":1,"location":"Montreal, QC, Canada","blog":"http://www.infobart.com","type":"User","login":"bartdag"},{"name":"Mark Paschal","company":"","gravatar_id":"30e5bdec1073df6350d27b8145bf0dab","contributions":1,"location":"San Francisco, CA, USA","blog":"http://markpasc.org/mark/","type":"User","login":"markpasc","email":""},{"name":"Jonas Obrist","company":"divio GmbH","gravatar_id":"b4f902096ea2ccfce71443d1d8fee5b3","contributions":1,"location":"Zurich, Switzerland","blog":"twitter.com/ojiidotch","type":"User","login":"ojii","email":"jonas.obrist@divio.ch"},{"name":"Kenneth Reitz","company":"Arc90, Inc","gravatar_id":"2eccc4005572c1e2b12a9c00580bc86f","contributions":1,"location":"Washington, DC","blog":"http://kennethreitz.com","type":"User","login":"kennethreitz","email":"_@kennethreitz.com"},{"name":"Justin Quick","company":"Washington Times","gravatar_id":"063d31c517033677654704043d219008","contributions":1,"location":"DC","blog":"http://serotoninstorm.com","type":"User","login":"justquick","email":"justquick@gmail.com"},{"name":"Jens Ohlig","gravatar_id":"9de3f3969367fffe2051c2b405b79810","contributions":1,"blog":"http://www.johl.io","type":"User","login":"johl","email":""}]} \ No newline at end of file +{"contributors":[{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","contributions":267,"type":"User","login":"JNRowe","email":"jnrowe@gmail.com"},{"name":"Ask Solem Hoel","company":"RabbitMQ, VMware","gravatar_id":"7e8b501f7f579c66ddac7e65cb7962b4","location":"London, UK","contributions":44,"type":"User","login":"ask","email":"ask@celeryproject.org"},{"name":"Vincent Driessen","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","location":"Netherlands","blog":"http://nvie.com","contributions":9,"type":"User","login":"nvie","email":"vincent@datafox.nl"},{"name":"Adam Vandenberg","gravatar_id":"7ea0cc75793eb2b1ada4abc953a41592","location":"Issaquah, WA","blog":"http://adamv.com/","contributions":6,"type":"User","login":"adamv","email":"flangy@gmail.com"},{"name":"Michael Basnight","gravatar_id":"2f3f68f62f5fc642f0b716b355071176","location":"Austin","contributions":5,"type":"User","login":"hub-cap"},{"name":"Jeremy Dunck","gravatar_id":"f3794e603ef53b0513ab45b6565ee457","location":"Dallas, TX","contributions":5,"type":"User","login":"jdunck","email":""},{"name":"Maximillian Dornseif","company":"HUDORA GmbH","gravatar_id":"ac1e94537ee54758bb954a6d1306be2a","location":"Germany","blog":"http://mdornseif.github.com/","contributions":4,"type":"User","login":"mdornseif"},{"name":"Fernando Perez","company":"University of California, Berkeley.","gravatar_id":"95198572b00e5fbcd97fb5315215bf7a","location":"Berkeley, CA","blog":"http://fperez.org","contributions":4,"type":"User","login":"fperez","email":"fernando.perez@berkeley.edu"},{"name":"Evan Broder","gravatar_id":"425ea4ff715bef0be068e0176251bf53","location":"San Francisco, CA","blog":"http://ebroder.net","contributions":4,"type":"User","login":"ebroder","email":"evan@ebroder.net"},{"name":"chris vale","company":"RocketNinja","gravatar_id":"d5400f77ab68a885319ac7b929bc789e","location":"San Francisco","blog":"http://blog.crispywalrus.net/","contributions":4,"type":"User","login":"crispywalrus","email":""},{"name":"Daniel Greenfeld","company":"pydanny.com","gravatar_id":"67e05420d4dd3492097aeb77f44f7867","location":"Los Angeles, CA","blog":"http://pydanny.blogspot.com","contributions":3,"type":"User","login":"pydanny","email":"pydanny@gmail.com"},{"name":"Scott Torborg","company":"Cart Logic, Inc.","gravatar_id":"e45c9c1a1c6184d5572859c52ae43bfc","location":"Portland, OR","blog":"http://www.scotttorborg.com","contributions":2,"type":"User","login":"storborg","email":"storborg@mit.edu"},{"name":"Ionuț Arțăriși","company":"","gravatar_id":"68546566350063c9017dfeae5000f6b1","location":"","blog":"mapleoin.bluepink.ro","contributions":2,"type":"User","login":"mapleoin","email":"mapleoin@lavabit.com"},{"name":"Surajram Kumaravel","company":"","gravatar_id":"1ee6b40a1acbcc00eb32e306e0e94037","location":"Chennai, India","blog":"http://www.surajram.com","contributions":2,"type":"User","login":"surajram","email":"root@surajram.com"},{"name":"Christopher MacGown","gravatar_id":"4174216c1dc0f223ce608d5a3b66a585","location":"","contributions":2,"type":"User","login":"ChristopherMacGown","email":""},{"name":"Cody Soyland","company":"","gravatar_id":"db17092663e716b08de72e936ed082c7","location":"Lawrence, KS","blog":"http://codysoyland.com/","contributions":2,"type":"User","login":"codysoyland","email":"codysoyland@gmail.com"},{"name":"Patryk Zawadzki","company":"Mirumee Software","gravatar_id":"16483a82144b02ad846eafa078ef9b27","location":"Wrocław, Poland","blog":"http://room-303.com/blog/","contributions":2,"type":"User","login":"patrys","email":"patrys@pld-linux.org"},{"gravatar_id":"311e2e25841265550f884d3996a4e23b","contributions":1,"type":"User","login":"openhatched"},{"name":"Rick Harris","gravatar_id":"afb82eaa9550a5ba8538bb926b854465","location":"Austin, TX","contributions":1,"type":"User","login":"rconradharris","email":"rconradharris@gmail.com"},{"gravatar_id":"464f76c5577389c5ca29e3d7cca133d5","contributions":1,"type":"User","login":"broderboy"},{"name":"Josh Weinberg","gravatar_id":"cf04727870245c17f455fb05b25f9f8e","blog":"http://openemu.org","contributions":1,"type":"User","login":"jweinberg","email":"joshuacweinberg@gmail.com"},{"name":"Jens Ohlig","gravatar_id":"9de3f3969367fffe2051c2b405b79810","blog":"http://www.johl.io","contributions":1,"type":"User","login":"johl","email":""},{"name":"Claudio B.","company":"","gravatar_id":"4dea5cf83d2d6c1228750b76e579b38d","location":"Los Angeles, United States","blog":"http://claudiob.github.com","contributions":1,"type":"User","login":"claudiob","email":""},{"name":"Jonas Obrist","company":"divio GmbH","gravatar_id":"b4f902096ea2ccfce71443d1d8fee5b3","location":"Zurich, Switzerland","blog":"twitter.com/ojiidotch","contributions":1,"type":"User","login":"ojii","email":"jonas.obrist@divio.ch"},{"name":"Mark Paschal","company":"","gravatar_id":"30e5bdec1073df6350d27b8145bf0dab","location":"San Francisco, CA, USA","blog":"http://markpasc.org/mark/","contributions":1,"type":"User","login":"markpasc","email":""},{"name":"Rok Garbas","company":"garbas.si (Python.Zope.Plone consulting)","gravatar_id":"9124210529f6eb59754932c413dd3c69","location":"Ljubljana, Slovenia","blog":"http://garbas.si","contributions":1,"type":"User","login":"garbas","email":"rok@garbas.si"},{"name":"Justin Quick","company":"Washington Times","gravatar_id":"063d31c517033677654704043d219008","location":"DC","blog":"http://serotoninstorm.com","contributions":1,"type":"User","login":"justquick","email":"justquick@gmail.com"},{"name":"Kenneth Reitz","company":"Arc90 + Readability","gravatar_id":"2eccc4005572c1e2b12a9c00580bc86f","location":"Washington, DC","blog":"http://kennethreitz.com","contributions":1,"type":"User","login":"kennethreitz","email":"_@kennethreitz.com"},{"name":"Barthelemy Dagenais","gravatar_id":"1dc7387cedba30b9a3d12792084b4b4a","location":"Montreal, QC, Canada","blog":"http://www.infobart.com","contributions":1,"type":"User","login":"bartdag"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,tags,e7b38a20b45dffd2a22d34b5b51f41da b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,tags,e7b38a20b45dffd2a22d34b5b51f41da new file mode 100644 index 0000000..617036e --- /dev/null +++ b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,tags,e7b38a20b45dffd2a22d34b5b51f41da @@ -0,0 +1,14 @@ +status: 200 +x-ratelimit-remaining: 58 +content-location: https://github.com/api/v2/json/repos/show/ask/python-github2/tags +x-runtime: 7ms +content-length: 372 +server: nginx/0.7.67 +connection: keep-alive +x-ratelimit-limit: 60 +etag: "25b6801155cc07a688ae97ce708404aa" +cache-control: private, max-age=0, must-revalidate +date: Wed, 08 Jun 2011 13:39:16 GMT +content-type: application/json; charset=utf-8 + +{"tags":{"0.4.0":"6337009b8cefecaff3d5b73883d3da541cc25432","v0.2.0":"9c573faef38b14603c8bdca39c0b7a0140502da9","v0.3.0":"573da9892ddbe85272b7367bf2936d1a3d5d3868","v0.1.2":"03afc58f59b0023a0a9c880387b0487b9010ca98","0.4.1":"96b0a41dd249c521323700bc11a0a721a7c9e642","v0.3.1":"f4c0a1f94770dd087fe636ed98f3443db317ab8c","v0.1.3":"210b2ac7f9368e372d17b7c932e3ad08c23530d4"}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,watchers,8f4f641783ac93b3f5d7507bc65cf925 b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,watchers,8f4f641783ac93b3f5d7507bc65cf925 new file mode 100644 index 0000000..cd08980 --- /dev/null +++ b/tests/data/github.com,api,v2,json,repos,show,ask,python-github2,watchers,8f4f641783ac93b3f5d7507bc65cf925 @@ -0,0 +1,14 @@ +status: 200 +x-ratelimit-remaining: 56 +content-location: https://github.com/api/v2/json/repos/show/ask/python-github2/watchers +x-runtime: 54ms +content-length: 1625 +server: nginx/0.7.67 +connection: keep-alive +x-ratelimit-limit: 60 +etag: "b358d3db0f531bd5a4942821a7b2c207" +cache-control: private, max-age=0, must-revalidate +date: Wed, 08 Jun 2011 13:39:31 GMT +content-type: application/json; charset=utf-8 + +{"watchers":["ask","bartTC","gregnewman","sneeu","playpauseandstop","bradjasper","tav","joestump","montylounge","justquick","annoma","mrevilme","matagus","stefanfoulis","paulproteus","mattdennewitz","mrolafsson","mlaprise","notesandvolts","idangazit","defunkt","ericholscher","travisjeffery","mnaberez","mikexstudios","robertpfeiffer","diox","mmalone","rconradharris","codysoyland","fperez","koenbollen","mager","eokyere","leegao","nvie","storborg","thoas","Taomio","junckritter","eklitzke","claudiob","yyliuliang","hemanth","dinoboff","hoffmann","Kuze","sixthgear","wasabi1809","CMB","dcolish","tomdyson","miyamuko","stevejalim","grauwoelfchen","pydanny","mgrouchy","kennethreitz","mrtazz","durden","tkaemming","rnelson","jbochi","cloudartisan","jdunck","mattoufoutu","MtvnGames","salsakran","jrabbit","ojii","shabda","JNRowe","zsiciarz","rnagle","imp","rdegges","travlr","johl","gregory80","markuso","meantheory","idorosen","svetlyak40wt","adamv","dforsyth","bleepbloop","ChristopherMacGown","dreynolds","TaurusOlson","rstrobl","johndagostino","droot","pierre-roux","sanjayprabhu","pquerna","iki","mt3","RaiMan","pinoystartup","adamdoupe","RafeKettler","glensc","wermut","switchyard","sammyt","patrys","blackspiraldev","fkling","rokstrnisa","myusuf3","xen-git","bassdread","pmuilu","pombredanne","sigurdga","surajram","loganlinn","k7d","throughnothing","Amper","nikescar","deeGraYve","broderboy","aculich","AntonioMeireles","pikhovkin","atkinson","sc68cal","ralphbean","goosemo","ergelo","gazoombo","zikey","hub-cap","jamesadney","EnTeQuAk","albertz","ryansb","misfire","lxneng","jean-philippe","deniszgonjanin","Irazmus"]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,show,tekkub,05ca6f8b40fe3e2ecd7da9236cbe8004 b/tests/data/github.com,api,v2,json,repos,show,tekkub,05ca6f8b40fe3e2ecd7da9236cbe8004 new file mode 100644 index 0000000..9651c43 --- /dev/null +++ b/tests/data/github.com,api,v2,json,repos,show,tekkub,05ca6f8b40fe3e2ecd7da9236cbe8004 @@ -0,0 +1,16 @@ +status: 200 +x-ratelimit-remaining: 58 +content-location: https://github.com/api/v2/json/repos/show/tekkub?page=2 +-content-encoding: gzip +connection: keep-alive +content-length: 14995 +server: nginx/1.0.4 +date: Wed, 19 Oct 2011 08:39:57 GMT +x-runtime: 330ms +x-ratelimit-limit: 60 +etag: "e0a7a0299440c8e2f32c845e8fec1c0c" +cache-control: private, max-age=0, must-revalidate +x-frame-options: deny +content-type: application/json; charset=utf-8 + +{"repositories":[{"watchers":1,"url":"https://github.com/tekkub/OhSnap","open_issues":0,"forks":2,"has_issues":true,"fork":false,"description":"","has_downloads":true,"size":0,"private":false,"pushed_at":"2009/07/27 17:49:36 -0700","name":"OhSnap","owner":"tekkub","created_at":"2009/07/27 17:48:23 -0700","homepage":"","has_wiki":true},{"language":"Lua","watchers":13,"url":"https://github.com/tekkub/GoodNewsEveryone","open_issues":6,"forks":7,"has_issues":true,"fork":false,"description":"WoW Addon - I've invented a device that tells you when reactive abilities are available!","has_downloads":true,"size":112,"private":false,"pushed_at":"2011/07/23 23:20:25 -0700","name":"GoodNewsEveryone","owner":"tekkub","created_at":"2009/07/28 18:45:05 -0700","homepage":"http://www.tekkub.net/addons/GoodNewsEveryone","has_wiki":true},{"language":"Lua","watchers":23,"url":"https://github.com/tekkub/GnomishVendorShrinker","open_issues":2,"forks":4,"has_issues":true,"fork":false,"description":"WoW Addon - Compact scrolling vendor frame","has_downloads":true,"size":596,"private":false,"pushed_at":"2011/07/04 15:36:43 -0700","name":"GnomishVendorShrinker","owner":"tekkub","created_at":"2009/08/15 19:56:03 -0700","homepage":"http://www.tekkub.net/addons/GnomishVendorShrinker","has_wiki":true},{"language":"Lua","watchers":6,"url":"https://github.com/tekkub/tekChat","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"WoW Addon - Misc chat stuff\r","has_downloads":true,"size":780,"private":false,"pushed_at":"2010/06/24 01:09:16 -0700","name":"tekChat","owner":"tekkub","created_at":"2009/08/23 01:46:24 -0700","homepage":"http://www.tekkub.net/addons/tekChat","has_wiki":true},{"language":"C","watchers":2,"url":"https://github.com/tekkub/limechat","open_issues":0,"forks":1,"has_issues":false,"fork":true,"description":"IRC Client for OSX","has_downloads":true,"size":16220,"private":false,"pushed_at":"2010/05/01 17:31:48 -0700","name":"limechat","owner":"tekkub","created_at":"2009/09/03 23:58:49 -0700","homepage":"http://limechat.net/mac/","has_wiki":true},{"language":"Lua","watchers":1,"url":"https://github.com/tekkub/leafLFG","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"My fork of leafLFG","has_downloads":true,"size":540,"private":false,"pushed_at":"2009/09/06 19:14:29 -0700","name":"leafLFG","owner":"tekkub","created_at":"2009/09/06 19:10:51 -0700","homepage":"http://www.wowinterface.com/downloads/fileinfo.php?id=13287","has_wiki":true},{"watchers":2,"url":"https://github.com/tekkub/Warmup","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"","has_downloads":true,"size":0,"private":false,"name":"Warmup","owner":"tekkub","created_at":"2009/10/01 16:09:12 -0700","homepage":"","has_wiki":true},{"language":"Ruby","watchers":4,"url":"https://github.com/tekkub/github-upload","open_issues":0,"forks":5,"has_issues":true,"fork":false,"description":"","has_downloads":true,"size":260,"private":false,"pushed_at":"2009/10/24 15:41:42 -0700","name":"github-upload","owner":"tekkub","created_at":"2009/10/02 15:39:42 -0700","homepage":"","has_wiki":true},{"language":"Lua","watchers":2,"url":"https://github.com/tekkub/oUF_HealComm4","open_issues":0,"forks":1,"has_issues":false,"fork":false,"description":"add LibHealComm-4.0 bars to oUF frames","has_downloads":true,"size":0,"private":false,"pushed_at":"2009/11/03 11:15:42 -0800","name":"oUF_HealComm4","owner":"tekkub","created_at":"2009/11/01 22:53:01 -0800","homepage":"","has_wiki":true},{"watchers":16,"url":"https://github.com/tekkub/Mustache.tmbundle","open_issues":0,"forks":5,"has_issues":true,"fork":false,"description":"A little textmate bundle for defunkt/mustache","has_downloads":true,"size":124,"private":false,"pushed_at":"2009/11/11 17:34:38 -0800","name":"Mustache.tmbundle","owner":"tekkub","created_at":"2009/11/11 17:12:46 -0800","homepage":"","has_wiki":true},{"language":"Ruby","watchers":1,"url":"https://github.com/tekkub/mustache-sinatra-example","open_issues":0,"forks":1,"has_issues":false,"fork":true,"description":"An example of using Mustache in a Sinatra app.","has_downloads":false,"size":252,"private":false,"pushed_at":"2009/11/11 22:28:24 -0800","name":"mustache-sinatra-example","owner":"tekkub","created_at":"2009/11/11 22:27:25 -0800","homepage":"","has_wiki":false},{"language":"JavaScript","watchers":8,"url":"https://github.com/tekkub/ihaveissues.github.com","open_issues":1,"forks":2,"has_issues":true,"fork":false,"description":"","has_downloads":true,"size":112,"private":false,"pushed_at":"2011/06/26 22:38:27 -0700","name":"ihaveissues.github.com","owner":"tekkub","created_at":"2009/12/04 00:48:18 -0800","master_branch":"gh-pages","homepage":"http://ihaveissues.github.com","has_wiki":true},{"watchers":2,"url":"https://github.com/tekkub/sandbox","open_issues":1,"forks":1,"has_issues":true,"fork":false,"description":"","has_downloads":true,"size":0,"private":false,"name":"sandbox","owner":"tekkub","created_at":"2009/12/14 12:06:49 -0800","homepage":"","has_wiki":true},{"language":"JavaScript","watchers":1,"url":"https://github.com/tekkub/wowace-navbar","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"Chrome extension to fix wowace.com forum navbar","has_downloads":true,"size":209,"private":false,"pushed_at":"2009/12/17 01:53:58 -0800","name":"wowace-navbar","owner":"tekkub","created_at":"2009/12/17 01:50:57 -0800","homepage":"","has_wiki":true},{"language":"Lua","watchers":6,"url":"https://github.com/tekkub/tekKrush","open_issues":0,"forks":2,"has_issues":true,"fork":false,"description":"WoW Addon - Yes, I really want to destroy that item, stop asking","has_downloads":true,"size":100,"private":false,"pushed_at":"2011/07/23 22:13:25 -0700","name":"tekKrush","owner":"tekkub","created_at":"2009/12/29 16:30:57 -0800","homepage":"http://www.tekkub.net/","has_wiki":true},{"language":"Lua","watchers":5,"url":"https://github.com/tekkub/MediumRare","open_issues":0,"forks":2,"has_issues":true,"fork":false,"description":"WoW Addon - Scans NPCs around you for rares","has_downloads":true,"size":260,"private":false,"pushed_at":"2010/12/20 22:43:18 -0800","name":"MediumRare","owner":"tekkub","created_at":"2010/01/02 17:40:19 -0800","homepage":"http://www.tekkub.net/","has_wiki":true},{"language":"Lua","watchers":2,"url":"https://github.com/tekkub/Shrank","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"WoW Addon - Warn when players cast spells that aren't max rank","has_downloads":true,"size":112,"private":false,"pushed_at":"2010/01/02 17:43:21 -0800","name":"Shrank","owner":"tekkub","created_at":"2010/01/02 17:43:15 -0800","homepage":"http://www.tekkub.net/","has_wiki":true},{"language":"Lua","watchers":3,"url":"https://github.com/tekkub/erroff","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"WoW Addon - Simple error message blocker for macros","has_downloads":true,"size":108,"private":false,"pushed_at":"2010/01/03 14:14:52 -0800","name":"erroff","owner":"tekkub","created_at":"2010/01/03 01:37:57 -0800","homepage":"http://www.tekkub.net/","has_wiki":true},{"language":"JavaScript","watchers":6,"url":"https://github.com/tekkub/tender-checker","open_issues":0,"forks":2,"has_issues":true,"fork":false,"description":"Chrome extension - Adds a browser action to track a tenderapp.com inbox","has_downloads":true,"size":560,"private":false,"pushed_at":"2010/01/17 02:10:22 -0800","name":"tender-checker","owner":"tekkub","created_at":"2010/01/16 17:08:37 -0800","homepage":"","has_wiki":true},{"language":"JavaScript","watchers":1,"url":"https://github.com/tekkub/facebook-friend-renamer","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"Chrome extension - Lets you rename facebook friends, because you don't use \"real\" names with these people","has_downloads":true,"size":276,"private":false,"pushed_at":"2010/01/23 11:51:04 -0800","name":"facebook-friend-renamer","owner":"tekkub","created_at":"2010/01/23 11:32:53 -0800","homepage":"","has_wiki":true},{"language":"Lua","watchers":1,"url":"https://github.com/tekkub/tekAutoRepair","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"WoW Addon - Automatically repair shits","has_downloads":true,"size":100,"private":false,"pushed_at":"2010/04/18 16:30:08 -0700","name":"tekAutoRepair","owner":"tekkub","created_at":"2010/04/18 16:29:56 -0700","homepage":"http://www.tekkub.net/","has_wiki":true},{"language":"Lua","watchers":5,"url":"https://github.com/tekkub/GnomishInboxShrinker","open_issues":0,"forks":2,"has_issues":true,"fork":false,"description":"WoW Addon - A simple, scrolling inbox","has_downloads":true,"size":312,"private":false,"pushed_at":"2010/06/06 12:14:09 -0700","name":"GnomishInboxShrinker","owner":"tekkub","created_at":"2010/04/19 11:30:41 -0700","homepage":"http://www.tekkub.net/","has_wiki":true},{"language":"Lua","watchers":2,"url":"https://github.com/tekkub/ImbaPalas","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"WoW Addon - The missing paladin bubble sound effect","has_downloads":true,"size":656,"private":false,"pushed_at":"2010/05/02 21:34:21 -0700","name":"ImbaPalas","owner":"tekkub","created_at":"2010/05/02 21:33:57 -0700","homepage":"http://www.tekkub.net/","has_wiki":true},{"language":"JavaScript","watchers":2,"url":"https://github.com/tekkub/goo.gl-QR","open_issues":0,"forks":2,"has_issues":true,"fork":false,"description":"Chrome extension - Shorten URL with goo.gl and generate a QR code","has_downloads":true,"size":212,"private":false,"pushed_at":"2010/06/06 15:07:50 -0700","name":"goo.gl-QR","owner":"tekkub","created_at":"2010/06/06 14:56:25 -0700","homepage":"","has_wiki":true},{"language":"Lua","watchers":6,"url":"https://github.com/tekkub/UnrealID","open_issues":0,"forks":2,"has_issues":false,"fork":false,"description":"WoW Addon - Make \"real\" names go away","has_downloads":true,"size":124,"private":false,"pushed_at":"2010/07/10 22:01:28 -0700","name":"UnrealID","owner":"tekkub","created_at":"2010/06/29 22:08:32 -0700","homepage":"http://www.tekkub.net/","has_wiki":true},{"language":"Ruby","watchers":1,"url":"https://github.com/tekkub/hubahuba","open_issues":0,"forks":1,"has_issues":false,"fork":true,"description":"Ruby and Rails core extensions used by GitHub.","has_downloads":false,"size":0,"private":false,"pushed_at":"2008/05/10 21:52:00 -0700","name":"hubahuba","owner":"tekkub","created_at":"2010/07/19 17:10:40 -0700","homepage":"","has_wiki":false},{"language":"Ruby","watchers":1,"url":"https://github.com/tekkub/scaffolding","open_issues":0,"forks":1,"has_issues":false,"fork":true,"description":"Dynamic Scaffolding plugin","has_downloads":true,"size":0,"private":false,"pushed_at":"2008/05/29 13:55:30 -0700","name":"scaffolding","owner":"tekkub","created_at":"2010/07/19 17:12:00 -0700","homepage":"http://rubyonrails.org","has_wiki":true},{"watchers":4,"url":"https://github.com/tekkub/gmail","open_issues":0,"forks":2,"has_issues":true,"fork":false,"description":"","has_downloads":true,"size":132,"private":false,"pushed_at":"2010/11/11 02:14:43 -0800","name":"gmail","owner":"tekkub","created_at":"2010/11/11 02:09:38 -0800","master_branch":"gh-pages","homepage":"","has_wiki":true},{"language":"Ruby","watchers":1,"url":"https://github.com/tekkub/zp","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"Zero Punctuation Video RSS feed generator","has_downloads":true,"size":652,"private":false,"pushed_at":"2011/08/17 19:36:07 -0700","name":"zp","owner":"tekkub","created_at":"2010/11/16 01:43:02 -0800","master_branch":"master","homepage":"http://tekkub.net/zp/videos.xml","has_wiki":true},{"language":"Lua","watchers":1,"integrate_branch":"1.4","url":"https://github.com/tekkub/oUF","open_issues":0,"forks":0,"has_issues":false,"fork":true,"description":"WoW AddOn - Unit frame framework.","has_downloads":true,"size":820,"private":false,"pushed_at":"2010/12/01 00:07:08 -0800","name":"oUF","owner":"tekkub","created_at":"2010/12/01 00:04:14 -0800","homepage":"http://www.wowinterface.com/downloads/info9994-oUF.html","has_wiki":true},{"language":"Lua","watchers":3,"url":"https://github.com/tekkub/MillerLite","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"WoW Addon - Adds a frame to the AH for fast crafting mat lookup","has_downloads":true,"size":192,"private":false,"pushed_at":"2010/12/30 21:15:20 -0800","name":"MillerLite","owner":"tekkub","created_at":"2010/12/17 19:58:28 -0800","homepage":"http://www.tekkub.net/","has_wiki":true},{"language":"JavaScript","watchers":1,"url":"https://github.com/tekkub/doublecaps","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"I'm a terrible typist, true story","has_downloads":true,"size":184,"private":false,"pushed_at":"2010/12/24 16:32:40 -0800","name":"doublecaps","owner":"tekkub","created_at":"2010/12/24 16:26:36 -0800","homepage":"","has_wiki":true},{"language":"JavaScript","watchers":1,"url":"https://github.com/tekkub/rtd","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"Just a little RTD lightrail schedule for my bear","has_downloads":true,"size":616,"private":false,"pushed_at":"2011/07/17 14:18:13 -0700","name":"rtd","owner":"tekkub","created_at":"2011/06/05 00:34:36 -0700","master_branch":"gh-pages","homepage":"http://tekkub.net/rtd","has_wiki":true},{"language":"Lua","watchers":2,"url":"https://github.com/tekkub/Velluminous","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"WoW Addon - Quickly enchant directly to vellum","has_downloads":true,"size":96,"private":false,"pushed_at":"2011/06/26 01:19:45 -0700","name":"Velluminous","owner":"tekkub","created_at":"2011/06/26 01:19:14 -0700","homepage":"http://tekkub.net/","has_wiki":true},{"language":"JavaScript","watchers":5,"url":"https://github.com/tekkub/dotjs","open_issues":0,"forks":2,"has_issues":true,"fork":false,"description":"My dotjs scripts","has_downloads":true,"size":108,"private":false,"pushed_at":"2011/10/13 03:26:02 -0700","name":"dotjs","owner":"tekkub","created_at":"2011/06/30 15:50:38 -0700","homepage":"http://defunkt.io/dotjs/","has_wiki":true},{"language":"JavaScript","watchers":2,"url":"https://github.com/tekkub/gitmarks","open_issues":0,"forks":0,"has_issues":false,"fork":true,"description":"Add project bookmarking to github","has_downloads":true,"size":112,"private":false,"pushed_at":"2011/09/16 14:14:20 -0700","name":"gitmarks","owner":"tekkub","created_at":"2011/07/16 01:07:57 -0700","homepage":"","has_wiki":true},{"language":"Ruby","watchers":6,"url":"https://github.com/tekkub/supportbee","open_issues":0,"forks":1,"has_issues":true,"fork":false,"description":"A little ruby library for talking to supportbee's API","has_downloads":true,"size":100,"private":false,"pushed_at":"2011/09/23 21:35:24 -0700","name":"supportbee","owner":"tekkub","created_at":"2011/09/23 21:28:34 -0700","homepage":"supportbee.com","has_wiki":true}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,watched,JNRowe,7c562435f1efb67be5b048aeb79b3f6c b/tests/data/github.com,api,v2,json,repos,watched,JNRowe,7c562435f1efb67be5b048aeb79b3f6c index c53a97a..e5c343c 100644 --- a/tests/data/github.com,api,v2,json,repos,watched,JNRowe,7c562435f1efb67be5b048aeb79b3f6c +++ b/tests/data/github.com,api,v2,json,repos,watched,JNRowe,7c562435f1efb67be5b048aeb79b3f6c @@ -1,14 +1,15 @@ status: 200 -x-ratelimit-remaining: 55 +x-ratelimit-remaining: 58 content-location: https://github.com/api/v2/json/repos/watched/JNRowe -x-runtime: 293ms -content-length: 37996 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 38320 +server: nginx/1.0.4 +x-runtime: 264ms x-ratelimit-limit: 60 -etag: "2186c1687646c71b67903b8ab8f126af" +etag: "f708f7a7b851d375e602f662d2f7fa16" cache-control: private, max-age=0, must-revalidate -date: Wed, 08 Jun 2011 13:39:41 GMT +date: Mon, 15 Aug 2011 19:59:15 GMT content-type: application/json; charset=utf-8 -{"repositories":[{"watchers":922,"has_wiki":true,"owner":"scrooloose","open_issues":40,"url":"https://github.com/scrooloose/nerdtree","homepage":"","has_issues":true,"pushed_at":"2011/05/06 03:00:51 -0700","fork":false,"size":956,"has_downloads":true,"language":"VimL","name":"nerdtree","forks":70,"description":"hax0r vim script to give you a tree explorer","private":false,"created_at":"2008/03/10 00:34:08 -0700"},{"watchers":336,"has_wiki":true,"owner":"scrooloose","open_issues":6,"url":"https://github.com/scrooloose/nerdcommenter","homepage":"","has_issues":true,"pushed_at":"2011/05/05 18:56:29 -0700","fork":false,"size":1100,"has_downloads":true,"language":"VimL","name":"nerdcommenter","forks":39,"description":"Vim plugin for intensely orgasmic commenting","private":false,"created_at":"2008/03/10 01:19:15 -0700"},{"watchers":25,"has_wiki":true,"owner":"timcharper","open_issues":2,"url":"https://github.com/timcharper/textile.vim","homepage":"http://www.vim.org/scripts/script.php?script_id=2305","has_issues":true,"pushed_at":"2011/02/21 15:23:33 -0800","fork":false,"size":296,"has_downloads":true,"language":"VimL","name":"textile.vim","forks":11,"description":"Textile for VIM","private":false,"created_at":"2008/07/21 03:55:46 -0700"},{"watchers":369,"has_wiki":false,"owner":"tpope","open_issues":7,"url":"https://github.com/tpope/vim-surround","homepage":"http://www.vim.org/scripts/script.php?script_id=1697","has_issues":true,"pushed_at":"2011/01/22 20:29:15 -0800","fork":false,"size":188,"has_downloads":true,"language":"VimL","name":"vim-surround","forks":33,"description":"surround.vim: quoting/parenthesizing made simple","private":false,"created_at":"2008/09/10 18:00:16 -0700"},{"watchers":48,"has_wiki":false,"owner":"tpope","open_issues":0,"url":"https://github.com/tpope/vim-speeddating","homepage":"http://www.vim.org/scripts/script.php?script_id=2120","has_issues":true,"pushed_at":"2010/12/28 20:46:52 -0800","fork":false,"size":148,"has_downloads":false,"language":"VimL","name":"vim-speeddating","forks":5,"description":"speeddating.vim: use CTRL-A/CTRL-X to increment dates, times, and more","private":false,"created_at":"2008/09/10 18:07:06 -0700"},{"watchers":84,"has_wiki":true,"owner":"sjbach","open_issues":7,"url":"https://github.com/sjbach/lusty","homepage":"http://www.vim.org/scripts/script.php?script_id=1890","has_issues":true,"pushed_at":"2011/06/02 19:42:36 -0700","fork":false,"size":1584,"has_downloads":false,"language":"VimL","name":"lusty","forks":16,"description":"LustyExplorer / LustyJuggler for Vim","private":false,"created_at":"2008/09/14 19:54:02 -0700"},{"watchers":135,"has_wiki":false,"owner":"github","open_issues":34,"url":"https://github.com/github/develop.github.com","homepage":"http://develop.github.com","organization":"github","has_issues":true,"pushed_at":"2011/06/01 20:54:15 -0700","master_branch":"gh-pages","fork":false,"size":112,"has_downloads":false,"language":"JavaScript","name":"develop.github.com","forks":45,"description":"API Documentation for GitHub","private":false,"created_at":"2009/02/17 15:51:23 -0800"},{"watchers":3,"has_wiki":true,"owner":"godlygeek","open_issues":0,"url":"https://github.com/godlygeek/windowlayout","homepage":"","has_issues":true,"pushed_at":"2009/02/26 08:46:15 -0800","fork":false,"size":296,"has_downloads":true,"language":"VimL","name":"windowlayout","forks":0,"description":"A vim library for saving and restoring window layouts, plus demo plugins","private":false,"created_at":"2009/02/25 22:10:21 -0800"},{"watchers":157,"has_wiki":true,"owner":"godlygeek","open_issues":0,"url":"https://github.com/godlygeek/tabular","homepage":"","has_issues":true,"pushed_at":"2011/04/01 18:13:35 -0700","fork":false,"size":616,"has_downloads":true,"language":"VimL","name":"tabular","forks":9,"description":"Vim script for text filtering and alignment","private":false,"created_at":"2009/03/02 22:19:16 -0800"},{"watchers":2,"has_wiki":true,"owner":"decklin","open_issues":0,"url":"https://github.com/decklin/mnemosyne","homepage":"http://www.red-bean.com/decklin/mnemosyne/","has_issues":true,"pushed_at":"2009/03/10 10:25:52 -0700","fork":false,"size":344,"has_downloads":true,"name":"mnemosyne","forks":0,"description":"Static Python/Kid weblog generator with Maildir store","private":false,"created_at":"2009/03/10 10:19:38 -0700"},{"watchers":3,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/bfm","homepage":"http://www.jnrowe.ukfsn.org/projects/bfm.html","has_issues":true,"pushed_at":"2011/05/08 23:35:07 -0700","integrate_branch":"iratqq","fork":false,"size":232,"has_downloads":true,"language":"C","name":"bfm","forks":3,"description":"This program is a dockapp-style CPU, memory, swap and load average monitor.","private":false,"created_at":"2009/04/05 18:46:34 -0700"},{"watchers":143,"has_wiki":true,"owner":"ask","open_issues":5,"url":"https://github.com/ask/python-github2","homepage":"http://packages.python.org/github2","has_issues":true,"pushed_at":"2011/06/06 16:15:04 -0700","fork":false,"size":112,"has_downloads":true,"language":"Python","name":"python-github2","forks":50,"description":"github client in python, with issues support.","private":false,"created_at":"2009/04/18 08:31:12 -0700"},{"watchers":108,"has_wiki":true,"owner":"jsmits","open_issues":5,"url":"https://github.com/jsmits/github-cli","homepage":"http://packages.python.org/github-cli","has_issues":true,"pushed_at":"2011/03/16 13:18:51 -0700","fork":false,"size":100,"has_downloads":true,"language":"Python","name":"github-cli","forks":12,"description":"A command-line interface to the GitHub Issues API v2.","private":false,"created_at":"2009/04/19 02:05:27 -0700"},{"watchers":2,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/upoints","homepage":"http://jnrowe.github.com/upoints/","has_issues":true,"pushed_at":"2011/05/16 03:48:13 -0700","fork":false,"size":3288,"has_downloads":true,"language":"Python","name":"upoints","forks":0,"description":"upoints is a collection of GPL v3 licensed modules for working with points on Earth, or other near spherical objects.","private":false,"created_at":"2009/04/23 04:06:46 -0700"},{"watchers":13,"has_wiki":true,"owner":"JNRowe","open_issues":1,"url":"https://github.com/JNRowe/pyisbn","homepage":"http://packages.python.org/pyisbn/","has_issues":true,"pushed_at":"2011/06/06 07:04:57 -0700","fork":false,"size":132,"has_downloads":true,"language":"Python","name":"pyisbn","forks":2,"description":"A Python module for working with 10- and 13-digit ISBNs","private":false,"created_at":"2009/04/23 04:07:25 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/pytemplate","homepage":"","has_issues":true,"pushed_at":"2011/05/09 01:49:16 -0700","fork":false,"size":2252,"has_downloads":true,"language":"Python","name":"pytemplate","forks":0,"description":"Package template for Python, with distutils setup","private":false,"created_at":"2009/04/23 04:09:02 -0700"},{"watchers":5,"has_wiki":true,"owner":"JNRowe","open_issues":6,"url":"https://github.com/JNRowe/misc-overlay","homepage":"http://jnrowe.github.com/misc-overlay/","has_issues":true,"pushed_at":"2011/06/07 17:00:59 -0700","fork":false,"size":11049,"has_downloads":true,"language":"Python","name":"misc-overlay","forks":0,"description":"Gentoo overlay -- miscellaneous packages","private":false,"created_at":"2009/05/02 07:32:50 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/fixes-overlay","homepage":"http://jnrowe.github.com/fixes-overlay","has_issues":true,"pushed_at":"2011/04/06 10:48:22 -0700","master_branch":"master","fork":false,"size":3636,"has_downloads":false,"language":"Python","name":"fixes-overlay","forks":0,"description":"Small package fixes languishing in the Gentoo BTS","private":false,"created_at":"2009/05/02 07:52:47 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/dotbash","homepage":"","has_issues":true,"pushed_at":"2010/05/02 19:21:40 -0700","fork":false,"size":1148,"has_downloads":true,"name":"dotbash","forks":0,"description":"Shared bash configuration files","private":false,"created_at":"2009/05/08 04:18:15 -0700"},{"watchers":2,"has_wiki":false,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/jnrowe.github.com","homepage":"http://jnrowe.github.com/","has_issues":true,"pushed_at":"2011/06/06 07:10:57 -0700","master_branch":"master","fork":false,"size":6272,"has_downloads":true,"language":"JavaScript","name":"jnrowe.github.com","forks":0,"description":"My user pages repository","private":false,"created_at":"2009/05/14 06:43:16 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/local-bin","homepage":"","has_issues":true,"pushed_at":"2011/02/14 01:52:50 -0800","fork":false,"size":652,"has_downloads":true,"language":"Python","name":"local-bin","forks":0,"description":"Tat from my ~/bin","private":false,"created_at":"2009/05/14 11:09:34 -0700"},{"watchers":2,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/termstyle","homepage":"","has_issues":false,"pushed_at":"2010/09/24 21:10:10 -0700","fork":true,"size":564,"has_downloads":true,"name":"termstyle","forks":1,"description":"a dirt-simple terminal-colour library for python","private":false,"created_at":"2009/05/24 00:05:46 -0700"},{"watchers":659,"has_wiki":false,"owner":"tweepy","open_issues":48,"url":"https://github.com/tweepy/tweepy","homepage":"http://tweepy.github.com/","organization":"tweepy","has_issues":true,"pushed_at":"2011/05/25 22:50:37 -0700","fork":false,"size":933,"has_downloads":true,"language":"Python","name":"tweepy","forks":117,"description":"A Python library for access the Twitter API","private":false,"created_at":"2009/07/05 21:15:34 -0700"},{"watchers":35,"has_wiki":true,"owner":"ciaranm","open_issues":0,"url":"https://github.com/ciaranm/inkpot","homepage":"","has_issues":true,"pushed_at":"2009/11/27 15:42:40 -0800","fork":false,"size":124,"has_downloads":true,"language":"VimL","name":"inkpot","forks":3,"description":"Inkpot 88/256 Colour Scheme for Vim","private":false,"created_at":"2009/07/06 09:24:19 -0700"},{"watchers":21,"has_wiki":true,"owner":"ciaranm","open_issues":0,"url":"https://github.com/ciaranm/detectindent","homepage":"","has_issues":true,"pushed_at":"2011/05/23 07:50:37 -0700","fork":false,"size":136,"has_downloads":true,"language":"VimL","name":"detectindent","forks":4,"description":"Vim script for automatically detecting indent settings","private":false,"created_at":"2009/07/09 07:13:01 -0700"},{"watchers":12,"has_wiki":true,"owner":"ciaranm","open_issues":1,"url":"https://github.com/ciaranm/securemodelines","homepage":"","has_issues":true,"pushed_at":"2011/02/06 04:47:00 -0800","fork":false,"size":104,"has_downloads":true,"language":"VimL","name":"securemodelines","forks":4,"description":"A secure alternative to Vim modelines","private":false,"created_at":"2009/07/09 07:18:16 -0700"},{"watchers":190,"has_wiki":true,"owner":"scrooloose","open_issues":12,"url":"https://github.com/scrooloose/syntastic","homepage":"","has_issues":true,"pushed_at":"2011/06/02 13:26:53 -0700","fork":false,"size":120,"has_downloads":true,"language":"VimL","name":"syntastic","forks":42,"description":"Syntax checking hacks for vim","private":false,"created_at":"2009/07/10 21:05:54 -0700"},{"watchers":8,"has_wiki":false,"owner":"flother","open_issues":0,"url":"https://github.com/flother/participationgraphs","homepage":"http://www.flother.com/blog/2009/django-github-sparklines/","has_issues":true,"pushed_at":"2010/09/25 03:57:52 -0700","fork":false,"size":628,"has_downloads":false,"language":"Python","name":"participationgraphs","forks":1,"description":"Django app with a template tag to allow you to include sparklines of the 52-week commit history for a project on Github","private":false,"created_at":"2009/07/15 05:07:51 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/readyset","homepage":"http://readyset.tigris.org/","has_issues":true,"pushed_at":"2011/03/04 18:49:12 -0800","fork":false,"size":3216,"has_downloads":true,"language":"JavaScript","name":"readyset","forks":1,"description":"Ready-to-use Software Engineering Templates","private":false,"created_at":"2009/08/16 19:30:50 -0700"},{"watchers":35,"has_wiki":true,"owner":"spiiph","open_issues":9,"url":"https://github.com/spiiph/vim-space","homepage":"","has_issues":true,"pushed_at":"2010/04/13 07:32:09 -0700","fork":false,"size":572,"has_downloads":true,"language":"VimL","name":"vim-space","forks":7,"description":"space.vim - Smart Space key for Vim","private":false,"created_at":"2009/08/17 05:27:00 -0700"},{"watchers":151,"has_wiki":true,"owner":"sixapart","open_issues":11,"url":"https://github.com/sixapart/remoteobjects","homepage":"http://sixapart.github.com/remoteobjects/","organization":"sixapart","has_issues":true,"pushed_at":"2011/04/19 09:58:32 -0700","fork":false,"size":336,"has_downloads":true,"language":"Python","name":"remoteobjects","forks":12,"description":"An object RESTational model","private":false,"created_at":"2009/08/18 11:26:38 -0700"},{"watchers":3,"has_wiki":true,"owner":"JNRowe","open_issues":5,"url":"https://github.com/JNRowe/cupage","homepage":"http://jnrowe.github.com/cupage","has_issues":true,"pushed_at":"2011/05/24 23:07:45 -0700","fork":false,"size":4948,"has_downloads":true,"language":"Python","name":"cupage","forks":1,"description":"A tool to check for updates on web pages","private":false,"created_at":"2009/09/17 21:03:02 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/pages_layouts","homepage":"","has_issues":true,"pushed_at":"2011/02/28 05:02:24 -0800","fork":false,"size":1948,"has_downloads":true,"name":"pages_layouts","forks":1,"description":"Shared layouts submodule for jekyll","private":false,"created_at":"2009/09/24 18:42:48 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":2,"url":"https://github.com/JNRowe/bwatch","homepage":"http://jnrowe.github.com/bwatch/","has_issues":true,"pushed_at":"2011/04/06 10:56:17 -0700","fork":false,"size":2248,"has_downloads":true,"language":"Python","name":"bwatch","forks":1,"description":"Simple bandwidth watching tool","private":false,"created_at":"2009/09/26 10:13:56 -0700"},{"watchers":1205,"has_wiki":false,"owner":"tpope","open_issues":17,"url":"https://github.com/tpope/vim-fugitive","homepage":"http://www.vim.org/scripts/script.php?script_id=2975","has_issues":true,"pushed_at":"2011/06/02 18:40:54 -0700","fork":false,"size":176,"has_downloads":false,"language":"VimL","name":"vim-fugitive","forks":32,"description":"fugitive.vim: a Git wrapper so awesome, it should be illegal","private":false,"created_at":"2009/10/08 18:09:49 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":1,"url":"https://github.com/JNRowe/bleeter","homepage":"http://jnrowe.github.com/bleeter/","has_issues":true,"pushed_at":"2011/05/15 08:07:47 -0700","fork":false,"size":3496,"has_downloads":true,"language":"Python","name":"bleeter","forks":1,"description":"Nasty little twitter client","private":false,"created_at":"2009/10/14 22:19:25 -0700"},{"watchers":1,"has_wiki":false,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/oh-my-zsh","homepage":"","has_issues":true,"pushed_at":"2011/05/26 02:55:49 -0700","master_branch":"master","fork":true,"size":416,"has_downloads":false,"language":"Shell","name":"oh-my-zsh","forks":1,"description":"A community-driven framework for managing your zsh configuration.","private":false,"created_at":"2009/10/28 13:13:46 -0700"},{"watchers":3,"has_wiki":true,"owner":"JNRowe","open_issues":2,"url":"https://github.com/JNRowe/vim-configs","homepage":"http://jnrowe.github.com/vim-configs","has_issues":true,"pushed_at":"2011/05/30 08:42:41 -0700","fork":false,"size":3616,"has_downloads":true,"language":"VimL","name":"vim-configs","forks":1,"description":"Personal vim configs","private":false,"created_at":"2009/11/12 06:10:53 -0800"},{"watchers":3,"has_wiki":true,"owner":"baruch","open_issues":0,"url":"https://github.com/baruch/notmuch-gtk","homepage":"http://baruch.github.com/notmuch-gtk","has_issues":true,"pushed_at":"2009/11/28 15:42:12 -0800","fork":false,"size":1638,"has_downloads":true,"name":"notmuch-gtk","forks":1,"description":"A Gtk+ interface to the notmuch mail client, not maintained anymore, I switched to gmail instead.","private":false,"created_at":"2009/11/26 07:59:04 -0800"},{"watchers":10,"has_wiki":true,"owner":"c9s","open_issues":2,"url":"https://github.com/c9s/gsession.vim","has_issues":true,"pushed_at":"2010/12/10 00:52:20 -0800","fork":false,"size":144,"has_downloads":true,"language":"VimL","name":"gsession.vim","forks":4,"description":"gsession.vim saves your session files into the same directory (~/.vim/session/) by default. and auto-detect your session file to load session file when you are opening vim editor without arguments.","private":false,"created_at":"2009/12/07 06:31:08 -0800"},{"watchers":565,"has_wiki":true,"owner":"tpope","open_issues":6,"url":"https://github.com/tpope/vim-pathogen","homepage":"http://www.vim.org/scripts/script.php?script_id=2332","has_issues":true,"pushed_at":"2011/05/13 20:58:53 -0700","fork":false,"size":256,"has_downloads":false,"language":"VimL","name":"vim-pathogen","forks":24,"description":"pathogen.vim: manage your runtimepath","private":false,"created_at":"2009/12/13 12:59:18 -0800"},{"watchers":4,"has_wiki":true,"owner":"godlygeek","open_issues":0,"url":"https://github.com/godlygeek/colorchart","homepage":"","has_issues":true,"pushed_at":"2010/09/25 18:11:09 -0700","fork":false,"size":480,"has_downloads":true,"language":"VimL","name":"colorchart","forks":1,"description":"Provides an interactive color chart from examining terminal color palettes in vim","private":false,"created_at":"2009/12/21 00:35:24 -0800"},{"watchers":88,"has_wiki":true,"owner":"tpope","open_issues":2,"url":"https://github.com/tpope/vim-ragtag","homepage":"http://www.vim.org/scripts/script.php?script_id=1896","has_issues":true,"pushed_at":"2010/09/26 08:43:54 -0700","fork":false,"size":736,"has_downloads":true,"language":"VimL","name":"vim-ragtag","forks":13,"description":"ragtag.vim: ghetto HTML/XML mappings (formerly allml.vim)","private":false,"created_at":"2010/01/17 17:04:48 -0800"},{"watchers":2050,"has_wiki":true,"owner":"nvie","open_issues":47,"url":"https://github.com/nvie/gitflow","homepage":"http://nvie.com/posts/a-successful-git-branching-model/","has_issues":true,"pushed_at":"2011/05/23 04:02:34 -0700","integrate_branch":"develop","master_branch":"develop","fork":false,"size":5290,"has_downloads":true,"language":"Shell","name":"gitflow","forks":129,"description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","private":false,"created_at":"2010/01/20 15:14:12 -0800"},{"watchers":3,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/surfraw","homepage":"http://surfraw.alioth.debian.org/","has_issues":true,"pushed_at":"2011/06/01 01:36:06 -0700","fork":false,"size":4716,"has_downloads":true,"language":"PHP","name":"surfraw","forks":1,"description":"Mirror of the upstream git repository","private":false,"created_at":"2010/01/26 03:49:55 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":1,"url":"https://github.com/JNRowe/blanco","homepage":"http://jnrowe.github.com/blanco","has_issues":true,"pushed_at":"2011/04/06 10:37:48 -0700","fork":false,"size":4200,"has_downloads":true,"language":"Python","name":"blanco","forks":1,"description":"Hey, remember me?","private":false,"created_at":"2010/01/31 13:04:51 -0800"},{"watchers":144,"has_wiki":true,"owner":"benoitc","open_issues":5,"url":"https://github.com/benoitc/restkit","homepage":"http://benoitc.github.com/restkit","has_issues":true,"pushed_at":"2011/05/30 02:02:01 -0700","fork":false,"size":2584,"has_downloads":true,"language":"Python","name":"restkit","forks":11,"description":"an HTTP resource kit for Python","private":false,"created_at":"2010/02/04 05:21:24 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/vim-jnrowe","homepage":"http://jnrowe.github.com/vim-jnrowe/","has_issues":true,"pushed_at":"2011/04/14 04:05:52 -0700","fork":false,"size":936,"has_downloads":false,"language":"VimL","name":"vim-jnrowe","forks":1,"description":"My colorscheme, decoupled from my vim-configs repo for others ;)","private":false,"created_at":"2010/02/11 17:12:11 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/emacs-configs","homepage":"","has_issues":true,"pushed_at":"2011/06/01 10:27:57 -0700","fork":false,"size":1604,"has_downloads":true,"language":"Emacs Lisp","name":"emacs-configs","forks":1,"description":"Personal emacs configs","private":false,"created_at":"2010/02/15 12:19:22 -0800"},{"watchers":19,"has_wiki":true,"owner":"rc0","open_issues":1,"url":"https://github.com/rc0/mairix","homepage":"http://www.rc0.org.uk/mairix","has_issues":true,"pushed_at":"2011/02/09 16:31:13 -0800","fork":false,"size":200,"has_downloads":true,"language":"C","name":"mairix","forks":6,"description":"mairix is a program for indexing and searching email messages stored in Maildir, MH or mbox folders","private":false,"created_at":"2010/03/05 14:34:27 -0800"},{"watchers":3,"has_wiki":true,"owner":"rc0","open_issues":0,"url":"https://github.com/rc0/spill","homepage":"http://www.rc0.org.uk/spill","has_issues":true,"pushed_at":"2011/05/17 15:52:40 -0700","fork":false,"size":252,"has_downloads":true,"language":"C","name":"spill","forks":1,"description":"spill is a program for creating set of symbolic links from one directory hierarchy which point to corresponding filenames in a separate directory hierarchy.","private":false,"created_at":"2010/03/06 13:28:55 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/tweepy","homepage":"http://joshthecoder.github.com/tweepy","has_issues":true,"pushed_at":"2010/04/02 19:09:52 -0700","fork":true,"size":536,"has_downloads":true,"name":"tweepy","forks":1,"description":"A python library for the Twitter API. OAuth, python 3, complete coverage, streaming API","private":false,"created_at":"2010/03/31 14:57:29 -0700"},{"watchers":1,"has_wiki":false,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/snipmate.vim","homepage":"www.vim.org/scripts/script.php?script_id=2540","has_issues":false,"pushed_at":"2011/01/27 03:16:30 -0800","fork":true,"size":248,"has_downloads":false,"language":"VimL","name":"snipmate.vim","forks":1,"description":"snipMate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim. ","private":false,"created_at":"2010/04/05 20:56:06 -0700"},{"watchers":11,"has_wiki":true,"owner":"zacharyvoase","open_issues":2,"url":"https://github.com/zacharyvoase/urlobject","homepage":"","has_issues":true,"pushed_at":"2011/06/01 04:53:17 -0700","fork":false,"size":808,"has_downloads":true,"language":"Python","name":"urlobject","forks":1,"description":"Python library for manipulating URLs (and some URIs) in a more natural way.","private":false,"created_at":"2010/04/08 06:44:42 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/winwrangler","homepage":"http://jnrowe.github.com/2010/04/04/FtO-winwrangler_tiling_for_the_masses.html","has_issues":true,"pushed_at":"2010/05/05 00:55:01 -0700","fork":false,"size":276,"has_downloads":true,"name":"winwrangler","forks":1,"description":"Mirror of the upstream failpad source, converted for Matt","private":false,"created_at":"2010/05/05 00:54:23 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/reverend","homepage":"http://divmod.org/trac/wiki/DivmodReverend","has_issues":true,"pushed_at":"2010/05/06 11:10:51 -0700","fork":false,"size":420,"has_downloads":true,"name":"reverend","forks":1,"description":"Reverend - Simple Bayesian classifier","private":false,"created_at":"2010/05/06 10:58:58 -0700"},{"watchers":4,"has_wiki":false,"owner":"andrewgee","open_issues":0,"url":"https://github.com/andrewgee/gpxviewer","homepage":"http://andrewgee.org/blog/projects/gpxviewer","has_issues":false,"pushed_at":"2011/06/06 06:29:23 -0700","fork":false,"size":1044,"has_downloads":true,"language":"Python","name":"gpxviewer","forks":4,"description":"GPXViewer GPS trace viewer","private":false,"created_at":"2010/05/16 02:56:55 -0700"},{"watchers":4,"has_wiki":true,"owner":"c9s","open_issues":0,"url":"https://github.com/c9s/fontselector.vim","has_issues":true,"pushed_at":"2010/10/02 05:46:45 -0700","fork":false,"size":248,"has_downloads":true,"language":"VimL","name":"fontselector.vim","forks":1,"description":"font select plugin for gvim.","private":false,"created_at":"2010/08/06 00:40:51 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/github-cli","homepage":"http://packages.python.org/github-cli","has_issues":false,"pushed_at":"2010/11/02 10:42:20 -0700","fork":true,"size":916,"has_downloads":true,"name":"github-cli","forks":0,"description":"A command-line interface to the GitHub Issues API v2.","private":false,"created_at":"2010/09/15 08:21:44 -0700"},{"watchers":151,"has_wiki":false,"owner":"sjl","open_issues":0,"url":"https://github.com/sjl/gundo.vim","homepage":"http://sjl.bitbucket.org/gundo.vim/","has_issues":false,"pushed_at":"2011/05/27 07:59:39 -0700","fork":false,"size":480,"has_downloads":true,"language":"VimL","name":"gundo.vim","forks":18,"description":"A git mirror of gundo.vim","private":false,"created_at":"2010/10/09 09:31:25 -0700"},{"watchers":38,"has_wiki":true,"owner":"ehamberg","open_issues":0,"url":"https://github.com/ehamberg/vim-cute-python","homepage":"","has_issues":true,"pushed_at":"2011/05/27 01:43:48 -0700","fork":false,"size":120,"has_downloads":true,"language":"VimL","name":"vim-cute-python","forks":9,"description":"Unicode goodness for Python code by using vim's “conceal” feature","private":false,"created_at":"2010/10/19 13:23:10 -0700"},{"watchers":24,"has_wiki":true,"owner":"caelum","open_issues":1,"url":"https://github.com/caelum/restfulie-py","homepage":"http://github.com/caelum/restfulie-py","organization":"caelum","has_issues":true,"pushed_at":"2011/05/29 17:47:58 -0700","fork":false,"size":134,"has_downloads":true,"language":"Python","name":"restfulie-py","forks":6,"description":"Python port of Restfulie","private":false,"created_at":"2010/10/25 04:23:23 -0700"},{"watchers":3,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/python-github2","homepage":"","has_issues":false,"pushed_at":"2011/06/06 16:14:48 -0700","fork":true,"size":156,"has_downloads":true,"language":"Python","name":"python-github2","forks":0,"description":"github client in python, with issues support.","private":false,"created_at":"2010/10/31 01:03:09 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":6,"url":"https://github.com/JNRowe/gh_bugs","homepage":"","has_issues":true,"pushed_at":"2011/05/31 13:08:10 -0700","fork":false,"size":2564,"has_downloads":true,"language":"Python","name":"gh_bugs","forks":1,"description":"Simple client for GitHub issues","private":false,"created_at":"2010/10/31 09:27:05 -0700"},{"watchers":215,"has_wiki":true,"owner":"hsitz","open_issues":8,"url":"https://github.com/hsitz/VimOrganizer","homepage":"http://vimeo.com/17182850 ","has_issues":true,"pushed_at":"2011/04/27 20:03:17 -0700","fork":false,"size":540,"has_downloads":true,"language":"VimL","name":"VimOrganizer","forks":15,"description":"-- partial clone of Emacs' Org-mode -- please use development branch for newest changes ","private":false,"created_at":"2010/11/09 13:33:13 -0800"},{"watchers":26,"has_wiki":true,"owner":"j4mie","open_issues":0,"url":"https://github.com/j4mie/micromodels","homepage":"","has_issues":true,"pushed_at":"2011/02/24 00:46:32 -0800","integrate_branch":"develop","fork":false,"size":336,"has_downloads":true,"language":"Python","name":"micromodels","forks":6,"description":"Declarative dictionary-based model classes for Python","private":false,"created_at":"2010/12/08 16:21:15 -0800"},{"watchers":2,"has_wiki":true,"owner":"catch22","open_issues":0,"url":"https://github.com/catch22/pw","homepage":"","has_issues":true,"pushed_at":"2011/05/17 12:21:16 -0700","fork":false,"size":202,"has_downloads":true,"language":"Python","name":"pw","forks":2,"description":"Grep GPG-encrypted YAML password safes.","private":false,"created_at":"2010/12/18 05:32:17 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/snipmate-snippets","homepage":"","has_issues":false,"pushed_at":"2011/05/17 06:22:45 -0700","fork":true,"size":956,"has_downloads":true,"language":"VimL","name":"snipmate-snippets","forks":0,"description":"A collection of snippets for snipmate (vim plugin) with a focus on bash, php, html and javascript","private":false,"created_at":"2011/01/27 03:05:32 -0800"},{"watchers":406,"has_wiki":false,"owner":"github","open_issues":0,"url":"https://github.com/github/dmca","homepage":"http://help.github.com/dmca","organization":"github","has_issues":false,"pushed_at":"2011/06/07 16:24:20 -0700","fork":false,"size":148,"has_downloads":true,"name":"dmca","forks":8,"description":"DMCA takedowns GitHub has received","private":false,"created_at":"2011/01/28 15:58:38 -0800"},{"watchers":3,"has_wiki":true,"owner":"passy","open_issues":0,"url":"https://github.com/passy/nose-lettuce","homepage":"","has_issues":true,"pushed_at":"2011/01/31 13:18:55 -0800","fork":false,"size":248,"has_downloads":true,"language":"Python","name":"nose-lettuce","forks":1,"description":"A probably bad idea of how to run lettuce from nose","private":false,"created_at":"2011/01/31 13:04:03 -0800"},{"watchers":6,"has_wiki":true,"owner":"caffeinehit","open_issues":0,"url":"https://github.com/caffeinehit/hammertime","homepage":"http://github.com/caffeinehit/hammertime","organization":"caffeinehit","has_issues":true,"pushed_at":"2011/02/03 02:40:25 -0800","fork":false,"size":140,"has_downloads":true,"language":"Python","name":"hammertime","forks":2,"description":"Time tracking with git","private":false,"created_at":"2011/02/02 02:18:33 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/hammertime","homepage":"http://github.com/caffeinehit/hammertime","has_issues":false,"pushed_at":"2011/02/02 09:54:18 -0800","fork":true,"size":720,"has_downloads":true,"language":"Python","name":"hammertime","forks":0,"description":"Time tracking with git","private":false,"created_at":"2011/02/02 09:49:21 -0800"},{"watchers":330,"has_wiki":false,"owner":"kennethreitz","open_issues":10,"url":"https://github.com/kennethreitz/requests","homepage":"http://python-requests.org","has_issues":true,"pushed_at":"2011/06/05 18:22:38 -0700","master_branch":"develop","fork":false,"size":164,"has_downloads":true,"language":"Python","name":"requests","forks":24,"description":"Python HTTP Requests for Humans.","private":false,"created_at":"2011/02/13 10:38:17 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/versionah","homepage":"http://jnrowe.github.com/versionah/","has_issues":true,"pushed_at":"2011/05/31 10:24:35 -0700","fork":false,"size":4404,"has_downloads":true,"language":"Python","name":"versionah","forks":1,"description":"Simple version number mangler","private":false,"created_at":"2011/02/15 08:51:56 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":8,"url":"https://github.com/JNRowe/issues-test","homepage":"","has_issues":true,"fork":false,"size":0,"has_downloads":true,"name":"issues-test","forks":1,"description":"Repo for testing gh-bugs","private":false,"created_at":"2011/02/22 13:00:23 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/pelican","homepage":"http://docs.notmyidea.org/alexis/pelican/","has_issues":false,"pushed_at":"2011/04/04 21:22:46 -0700","fork":true,"size":3916,"has_downloads":true,"language":"Python","name":"pelican","forks":0,"description":"Static blog generator in python, using ReST syntax","private":false,"created_at":"2011/02/23 21:20:07 -0800"},{"watchers":19,"has_wiki":true,"owner":"dcramer","open_issues":2,"url":"https://github.com/dcramer/decruft","homepage":"http://code.google.com/p/decruft/","has_issues":true,"pushed_at":"2011/05/18 13:19:39 -0700","fork":false,"size":508,"has_downloads":true,"language":"Python","name":"decruft","forks":5,"description":"python-readability, but faster (mirror-ish)","private":false,"created_at":"2011/02/28 18:07:04 -0800"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/pw","homepage":"","has_issues":false,"pushed_at":"2011/04/04 23:44:42 -0700","fork":true,"size":132,"has_downloads":true,"language":"Python","name":"pw","forks":0,"description":"Grep GPG-encrypted YAML password safes.","private":false,"created_at":"2011/04/04 23:37:38 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/shell-doctest","homepage":"http://code.google.com/p/shell-doctest/","has_issues":true,"pushed_at":"2011/04/05 05:32:44 -0700","fork":false,"size":128,"has_downloads":true,"language":"Python","name":"shell-doctest","forks":1,"description":"shelldoctest is Doctest/UnitTest for shell (mirror of Google Code project)","private":false,"created_at":"2011/04/05 05:32:07 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/blog","homepage":"http://jnrowe.github.com/blog","has_issues":true,"pushed_at":"2011/04/05 09:22:26 -0700","fork":false,"size":1152,"has_downloads":true,"name":"blog","forks":1,"description":"Old jnrowe.github.com content that *may* be resurrected.","private":false,"created_at":"2011/04/05 09:21:16 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/sphinx-jnrowe","homepage":"","has_issues":true,"pushed_at":"2011/05/13 12:27:22 -0700","fork":false,"size":644,"has_downloads":true,"name":"sphinx-jnrowe","forks":1,"description":"My sphinx theme","private":false,"created_at":"2011/04/06 07:35:40 -0700"},{"watchers":15,"has_wiki":true,"owner":"Nic0","open_issues":3,"url":"https://github.com/Nic0/tyrs","homepage":"http://tyrs.nicosphere.net","has_issues":true,"pushed_at":"2011/06/07 19:41:57 -0700","fork":false,"size":436,"has_downloads":true,"language":"Python","name":"tyrs","forks":5,"description":"Twitter and Identica client using curses","private":false,"created_at":"2011/04/28 17:44:58 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/rdial","homepage":"","has_issues":true,"pushed_at":"2011/05/27 00:50:48 -0700","fork":false,"size":272,"has_downloads":true,"language":"Python","name":"rdial","forks":1,"description":"Simple time tracking for simple people","private":false,"created_at":"2011/05/09 06:04:35 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/vim-cute-python","homepage":"","has_issues":false,"pushed_at":"2011/05/30 08:39:21 -0700","fork":true,"size":180,"has_downloads":true,"language":"VimL","name":"vim-cute-python","forks":0,"description":"Unicode goodness for Python code by using vim's new “conceal” feature","private":false,"created_at":"2011/05/22 23:21:28 -0700"},{"watchers":1,"has_wiki":false,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/develop.github.com","homepage":"http://develop.github.com","has_issues":false,"pushed_at":"2011/05/23 03:36:51 -0700","master_branch":"gh-pages","fork":true,"size":1584,"has_downloads":false,"language":"JavaScript","name":"develop.github.com","forks":0,"description":"API Documentation for GitHub","private":false,"created_at":"2011/05/23 03:32:46 -0700"},{"watchers":1,"has_wiki":false,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/requests","homepage":"http://python-requests.org","has_issues":false,"pushed_at":"2011/05/27 00:17:44 -0700","master_branch":"develop","fork":true,"size":2648,"has_downloads":true,"language":"Python","name":"requests","forks":0,"description":"Python HTTP Requests for Humans.","private":false,"created_at":"2011/05/27 00:16:23 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/restfulie-py","homepage":"http://github.com/caelum/restfulie-py","has_issues":false,"pushed_at":"2011/05/28 22:05:55 -0700","fork":true,"size":1794,"has_downloads":true,"language":"Python","name":"restfulie-py","forks":0,"description":"Python port of Restfulie","private":false,"created_at":"2011/05/28 22:04:51 -0700"},{"watchers":1,"has_wiki":true,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/tyrs","homepage":"http://tyrs.nicosphere.net","has_issues":false,"pushed_at":"2011/06/03 06:45:50 -0700","fork":true,"size":132,"has_downloads":true,"language":"Python","name":"tyrs","forks":0,"description":"twitter curses client","private":false,"created_at":"2011/06/03 02:42:16 -0700"},{"watchers":1,"has_wiki":false,"owner":"JNRowe","open_issues":0,"url":"https://github.com/JNRowe/gpxviewer","homepage":"http://andrewgee.org/blog/projects/gpxviewer","has_issues":false,"pushed_at":"2011/06/06 06:23:32 -0700","fork":true,"size":1040,"has_downloads":true,"language":"Python","name":"gpxviewer","forks":0,"description":"GPXViewer GPS trace viewer","private":false,"created_at":"2011/06/06 06:21:54 -0700"}]} \ No newline at end of file +{"repositories":[{"has_downloads":true,"url":"https://github.com/scrooloose/nerdtree","forks":77,"description":"hax0r vim script to give you a tree explorer","has_wiki":true,"fork":false,"open_issues":53,"homepage":"","size":396,"private":false,"has_issues":true,"pushed_at":"2011/08/05 07:49:20 -0700","name":"nerdtree","owner":"scrooloose","language":"VimL","watchers":1019,"created_at":"2008/03/10 00:34:08 -0700"},{"has_downloads":true,"url":"https://github.com/scrooloose/nerdcommenter","forks":42,"description":"Vim plugin for intensely orgasmic commenting","has_wiki":true,"fork":false,"open_issues":7,"homepage":"","size":404,"private":false,"has_issues":true,"pushed_at":"2011/07/21 17:36:40 -0700","name":"nerdcommenter","owner":"scrooloose","language":"VimL","watchers":368,"created_at":"2008/03/10 01:19:15 -0700"},{"has_downloads":true,"url":"https://github.com/timcharper/textile.vim","forks":11,"description":"Textile for VIM","has_wiki":true,"fork":false,"open_issues":3,"homepage":"http://www.vim.org/scripts/script.php?script_id=2305","size":332,"private":false,"has_issues":true,"pushed_at":"2011/07/29 00:56:52 -0700","name":"textile.vim","owner":"timcharper","language":"VimL","watchers":26,"created_at":"2008/07/21 03:55:46 -0700"},{"has_downloads":true,"url":"https://github.com/tpope/vim-surround","forks":36,"description":"surround.vim: quoting/parenthesizing made simple","has_wiki":false,"fork":false,"open_issues":9,"homepage":"http://www.vim.org/scripts/script.php?script_id=1697","size":188,"private":false,"has_issues":true,"pushed_at":"2011/07/16 07:10:23 -0700","name":"vim-surround","owner":"tpope","language":"VimL","watchers":406,"created_at":"2008/09/10 18:00:16 -0700"},{"has_downloads":false,"url":"https://github.com/tpope/vim-speeddating","forks":6,"description":"speeddating.vim: use CTRL-A/CTRL-X to increment dates, times, and more","has_wiki":false,"fork":false,"open_issues":0,"homepage":"http://www.vim.org/scripts/script.php?script_id=2120","size":148,"private":false,"has_issues":true,"pushed_at":"2010/12/28 20:46:52 -0800","name":"vim-speeddating","owner":"tpope","language":"VimL","watchers":51,"created_at":"2008/09/10 18:07:06 -0700"},{"has_downloads":false,"url":"https://github.com/sjbach/lusty","forks":17,"description":"LustyExplorer / LustyJuggler for Vim","has_wiki":true,"fork":false,"open_issues":10,"homepage":"http://www.vim.org/scripts/script.php?script_id=1890","size":1584,"private":false,"has_issues":true,"pushed_at":"2011/08/15 05:20:36 -0700","name":"lusty","owner":"sjbach","language":"VimL","watchers":94,"created_at":"2008/09/14 19:54:02 -0700"},{"has_downloads":false,"organization":"github","url":"https://github.com/github/develop.github.com","forks":49,"description":"API Documentation for GitHub","has_wiki":false,"fork":false,"open_issues":38,"homepage":"http://develop.github.com","size":292,"private":false,"has_issues":true,"pushed_at":"2011/08/09 16:01:16 -0700","name":"develop.github.com","owner":"github","language":"JavaScript","master_branch":"gh-pages","watchers":147,"created_at":"2009/02/17 15:51:23 -0800"},{"has_downloads":true,"url":"https://github.com/godlygeek/windowlayout","forks":0,"description":"A vim library for saving and restoring window layouts, plus demo plugins","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":296,"private":false,"has_issues":true,"pushed_at":"2009/02/26 08:46:15 -0800","name":"windowlayout","owner":"godlygeek","language":"VimL","watchers":3,"created_at":"2009/02/25 22:10:21 -0800"},{"has_downloads":true,"url":"https://github.com/godlygeek/tabular","forks":9,"description":"Vim script for text filtering and alignment","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":616,"private":false,"has_issues":true,"pushed_at":"2011/04/01 18:13:35 -0700","name":"tabular","owner":"godlygeek","language":"VimL","watchers":172,"created_at":"2009/03/02 22:19:16 -0800"},{"has_downloads":true,"url":"https://github.com/decklin/mnemosyne","forks":0,"description":"Static Python/Kid weblog generator with Maildir store","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://www.red-bean.com/decklin/mnemosyne/","size":344,"private":false,"has_issues":true,"pushed_at":"2009/03/10 10:25:52 -0700","name":"mnemosyne","owner":"decklin","watchers":2,"created_at":"2009/03/10 10:19:38 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/bfm","forks":3,"description":"This program is a dockapp-style CPU, memory, swap and load average monitor.","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://www.jnrowe.ukfsn.org/projects/bfm.html","size":232,"private":false,"has_issues":true,"pushed_at":"2011/05/08 23:35:07 -0700","name":"bfm","owner":"JNRowe","integrate_branch":"iratqq","language":"C","watchers":3,"created_at":"2009/04/05 18:46:34 -0700"},{"has_downloads":true,"url":"https://github.com/ask/python-github2","forks":54,"description":"github client in python, with issues support.","has_wiki":true,"fork":false,"open_issues":5,"homepage":"http://packages.python.org/github2","size":456,"private":false,"has_issues":true,"pushed_at":"2011/07/29 19:04:58 -0700","name":"python-github2","owner":"ask","language":"Python","watchers":149,"created_at":"2009/04/18 08:31:12 -0700"},{"has_downloads":true,"url":"https://github.com/jsmits/github-cli","forks":13,"description":"A command-line interface to the GitHub Issues API v2.","has_wiki":true,"fork":false,"open_issues":6,"homepage":"http://packages.python.org/github-cli","size":172,"private":false,"has_issues":true,"pushed_at":"2011/06/24 05:32:16 -0700","name":"github-cli","owner":"jsmits","language":"Python","watchers":115,"created_at":"2009/04/19 02:05:27 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/upoints","forks":0,"description":"upoints is a collection of GPL v3 licensed modules for working with points on Earth, or other near spherical objects.","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/upoints/","size":4640,"private":false,"has_issues":true,"pushed_at":"2011/06/23 09:43:42 -0700","name":"upoints","owner":"JNRowe","language":"Python","watchers":2,"created_at":"2009/04/23 04:06:46 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/pyisbn","forks":2,"description":"A Python module for working with 10- and 13-digit ISBNs","has_wiki":true,"fork":false,"open_issues":1,"homepage":"http://packages.python.org/pyisbn/","size":132,"private":false,"has_issues":true,"pushed_at":"2011/06/06 07:04:57 -0700","name":"pyisbn","owner":"JNRowe","language":"Python","watchers":13,"created_at":"2009/04/23 04:07:25 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/pytemplate","forks":0,"description":"Package template for Python, with distutils setup","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":2252,"private":false,"has_issues":true,"pushed_at":"2011/05/09 01:49:16 -0700","name":"pytemplate","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2009/04/23 04:09:02 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/misc-overlay","forks":0,"description":"Gentoo overlay -- miscellaneous packages","has_wiki":true,"fork":false,"open_issues":13,"homepage":"http://jnrowe.github.com/misc-overlay/","size":7777,"private":false,"has_issues":true,"pushed_at":"2011/08/11 11:46:23 -0700","name":"misc-overlay","owner":"JNRowe","language":"Python","watchers":5,"created_at":"2009/05/02 07:32:50 -0700"},{"has_downloads":false,"url":"https://github.com/JNRowe/fixes-overlay","forks":0,"description":"Small package fixes languishing in the Gentoo BTS","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/fixes-overlay","size":3756,"private":false,"has_issues":true,"pushed_at":"2011/06/23 09:59:08 -0700","name":"fixes-overlay","owner":"JNRowe","language":"Python","master_branch":"master","watchers":1,"created_at":"2009/05/02 07:52:47 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/dotbash","forks":0,"description":"Shared bash configuration files","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":1148,"private":false,"has_issues":true,"pushed_at":"2010/05/02 19:21:40 -0700","name":"dotbash","owner":"JNRowe","watchers":1,"created_at":"2009/05/08 04:18:15 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/jnrowe.github.com","forks":0,"description":"My user pages repository","has_wiki":false,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/","size":6636,"private":false,"has_issues":true,"pushed_at":"2011/07/09 11:32:30 -0700","name":"jnrowe.github.com","owner":"JNRowe","language":"JavaScript","master_branch":"master","watchers":2,"created_at":"2009/05/14 06:43:16 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/local-bin","forks":0,"description":"Tat from my ~/bin","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":656,"private":false,"has_issues":true,"pushed_at":"2011/06/20 08:39:36 -0700","name":"local-bin","owner":"JNRowe","language":"Shell","watchers":1,"created_at":"2009/05/14 11:09:34 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/termstyle","forks":1,"description":"a dirt-simple terminal-colour library for python","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":564,"private":false,"has_issues":false,"pushed_at":"2010/09/24 21:10:10 -0700","name":"termstyle","owner":"JNRowe","watchers":2,"created_at":"2009/05/24 00:05:46 -0700"},{"has_downloads":true,"organization":"tweepy","url":"https://github.com/tweepy/tweepy","forks":140,"description":"A Python library for access the Twitter API","has_wiki":false,"fork":false,"open_issues":55,"homepage":"http://tweepy.github.com/","size":933,"private":false,"has_issues":true,"pushed_at":"2011/07/26 12:25:55 -0700","name":"tweepy","owner":"tweepy","language":"Python","watchers":742,"created_at":"2009/07/05 21:15:34 -0700"},{"has_downloads":true,"url":"https://github.com/ciaranm/inkpot","forks":3,"description":"Inkpot 88/256 Colour Scheme for Vim","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":124,"private":false,"has_issues":true,"pushed_at":"2009/11/27 15:42:40 -0800","name":"inkpot","owner":"ciaranm","language":"VimL","watchers":39,"created_at":"2009/07/06 09:24:19 -0700"},{"has_downloads":true,"url":"https://github.com/ciaranm/detectindent","forks":4,"description":"Vim script for automatically detecting indent settings","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":252,"private":false,"has_issues":true,"pushed_at":"2011/06/26 00:04:21 -0700","name":"detectindent","owner":"ciaranm","language":"VimL","watchers":21,"created_at":"2009/07/09 07:13:01 -0700"},{"has_downloads":true,"url":"https://github.com/ciaranm/securemodelines","forks":4,"description":"A secure alternative to Vim modelines","has_wiki":true,"fork":false,"open_issues":1,"homepage":"","size":104,"private":false,"has_issues":true,"pushed_at":"2011/02/06 04:47:00 -0800","name":"securemodelines","owner":"ciaranm","language":"VimL","watchers":16,"created_at":"2009/07/09 07:18:16 -0700"},{"has_downloads":false,"url":"https://github.com/flother/participationgraphs","forks":1,"description":"Django app with a template tag to allow you to include sparklines of the 52-week commit history for a project on Github","has_wiki":false,"fork":false,"open_issues":0,"homepage":"http://www.flother.com/blog/2009/django-github-sparklines/","size":628,"private":false,"has_issues":true,"pushed_at":"2010/09/25 03:57:52 -0700","name":"participationgraphs","owner":"flother","language":"Python","watchers":8,"created_at":"2009/07/15 05:07:51 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/readyset","forks":1,"description":"Ready-to-use Software Engineering Templates","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://readyset.tigris.org/","size":3216,"private":false,"has_issues":true,"pushed_at":"2011/03/04 18:49:12 -0800","name":"readyset","owner":"JNRowe","language":"JavaScript","watchers":1,"created_at":"2009/08/16 19:30:50 -0700"},{"has_downloads":true,"url":"https://github.com/spiiph/vim-space","forks":8,"description":"space.vim - Smart Space key for Vim","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":176,"private":false,"has_issues":true,"pushed_at":"2011/07/28 01:48:09 -0700","name":"vim-space","owner":"spiiph","language":"VimL","watchers":39,"created_at":"2009/08/17 05:27:00 -0700"},{"has_downloads":true,"organization":"saymedia","url":"https://github.com/saymedia/remoteobjects","forks":14,"description":"An object RESTational model","has_wiki":true,"fork":false,"open_issues":11,"homepage":"http://sixapart.github.com/remoteobjects/","size":336,"private":false,"has_issues":true,"pushed_at":"2011/04/19 09:58:32 -0700","name":"remoteobjects","owner":"saymedia","language":"Python","watchers":152,"created_at":"2009/08/18 11:26:38 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/cupage","forks":1,"description":"A tool to check for updates on web pages","has_wiki":true,"fork":false,"open_issues":3,"homepage":"http://jnrowe.github.com/cupage","size":612,"private":false,"has_issues":true,"pushed_at":"2011/07/17 10:23:45 -0700","name":"cupage","owner":"JNRowe","language":"Python","watchers":3,"created_at":"2009/09/17 21:03:02 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/pages_layouts","forks":1,"description":"Shared layouts submodule for jekyll","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":1948,"private":false,"has_issues":true,"pushed_at":"2011/02/28 05:02:24 -0800","name":"pages_layouts","owner":"JNRowe","watchers":1,"created_at":"2009/09/24 18:42:48 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/bwatch","forks":1,"description":"Simple bandwidth watching tool","has_wiki":true,"fork":false,"open_issues":2,"homepage":"http://jnrowe.github.com/bwatch/","size":2328,"private":false,"has_issues":true,"pushed_at":"2011/06/23 11:14:25 -0700","name":"bwatch","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2009/09/26 10:13:56 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/bleeter","forks":1,"description":"Nasty little twitter client","has_wiki":true,"fork":false,"open_issues":1,"homepage":"http://jnrowe.github.com/bleeter/","size":3544,"private":false,"has_issues":true,"pushed_at":"2011/06/23 11:17:05 -0700","name":"bleeter","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2009/10/14 22:19:25 -0700"},{"has_downloads":false,"url":"https://github.com/JNRowe/oh-my-zsh","forks":1,"description":"A community-driven framework for managing your zsh configuration.","has_wiki":false,"fork":true,"open_issues":0,"homepage":"","size":416,"private":false,"has_issues":true,"pushed_at":"2011/05/26 02:55:49 -0700","name":"oh-my-zsh","owner":"JNRowe","language":"Shell","master_branch":"master","watchers":1,"created_at":"2009/10/28 13:13:46 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/vim-configs","forks":1,"description":"Personal vim configs","has_wiki":true,"fork":false,"open_issues":2,"homepage":"http://jnrowe.github.com/vim-configs","size":3756,"private":false,"has_issues":true,"pushed_at":"2011/08/11 11:35:34 -0700","name":"vim-configs","owner":"JNRowe","language":"VimL","watchers":3,"created_at":"2009/11/12 06:10:53 -0800"},{"has_downloads":true,"url":"https://github.com/baruch/notmuch-gtk","forks":1,"description":"A Gtk+ interface to the notmuch mail client, not maintained anymore, I switched to gmail instead.","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://baruch.github.com/notmuch-gtk","size":1638,"private":false,"has_issues":true,"pushed_at":"2009/11/28 15:42:12 -0800","name":"notmuch-gtk","owner":"baruch","watchers":3,"created_at":"2009/11/26 07:59:04 -0800"},{"has_downloads":true,"url":"https://github.com/c9s/gsession.vim","forks":5,"description":"gsession.vim saves your session files into the same directory (~/.vim/session/) by default. and auto-detect your session file to load session file when you are opening vim editor without arguments.","has_wiki":true,"fork":false,"open_issues":2,"size":184,"private":false,"has_issues":true,"pushed_at":"2011/08/15 02:47:50 -0700","name":"gsession.vim","owner":"c9s","language":"Visual Basic","watchers":11,"created_at":"2009/12/07 06:31:08 -0800"},{"has_downloads":false,"url":"https://github.com/tpope/vim-pathogen","forks":27,"description":"pathogen.vim: manage your runtimepath","has_wiki":true,"fork":false,"open_issues":1,"homepage":"http://www.vim.org/scripts/script.php?script_id=2332","size":200,"private":false,"has_issues":true,"pushed_at":"2011/08/13 09:25:10 -0700","name":"vim-pathogen","owner":"tpope","language":"VimL","watchers":690,"created_at":"2009/12/13 12:59:18 -0800"},{"has_downloads":true,"url":"https://github.com/godlygeek/colorchart","forks":1,"description":"Provides an interactive color chart from examining terminal color palettes in vim","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":480,"private":false,"has_issues":true,"pushed_at":"2010/09/25 18:11:09 -0700","name":"colorchart","owner":"godlygeek","language":"VimL","watchers":4,"created_at":"2009/12/21 00:35:24 -0800"},{"has_downloads":true,"url":"https://github.com/tpope/vim-ragtag","forks":16,"description":"ragtag.vim: ghetto HTML/XML mappings (formerly allml.vim)","has_wiki":true,"fork":false,"open_issues":2,"homepage":"http://www.vim.org/scripts/script.php?script_id=1896","size":156,"private":false,"has_issues":true,"pushed_at":"2011/08/04 19:34:07 -0700","name":"vim-ragtag","owner":"tpope","language":"VimL","watchers":94,"created_at":"2010/01/17 17:04:48 -0800"},{"has_downloads":true,"url":"https://github.com/nvie/gitflow","forks":157,"description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","has_wiki":true,"fork":false,"open_issues":54,"homepage":"http://nvie.com/posts/a-successful-git-branching-model/","size":4654,"private":false,"has_issues":true,"pushed_at":"2011/07/27 00:56:18 -0700","name":"gitflow","owner":"nvie","integrate_branch":"develop","language":"Shell","master_branch":"develop","watchers":2422,"created_at":"2010/01/20 15:14:12 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/surfraw","forks":1,"description":"Mirror of the upstream git repository","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://surfraw.alioth.debian.org/","size":4876,"private":false,"has_issues":true,"pushed_at":"2011/08/11 09:34:59 -0700","name":"surfraw","owner":"JNRowe","language":"Shell","watchers":3,"created_at":"2010/01/26 03:49:55 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/blanco","forks":1,"description":"Hey, remember me?","has_wiki":true,"fork":false,"open_issues":1,"homepage":"http://jnrowe.github.com/blanco","size":4296,"private":false,"has_issues":true,"pushed_at":"2011/06/23 11:19:45 -0700","name":"blanco","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2010/01/31 13:04:51 -0800"},{"has_downloads":false,"url":"https://github.com/JNRowe/vim-jnrowe","forks":1,"description":"My colorscheme, decoupled from my vim-configs repo for others ;)","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/vim-jnrowe/","size":1244,"private":false,"has_issues":true,"pushed_at":"2011/06/23 09:25:27 -0700","name":"vim-jnrowe","owner":"JNRowe","language":"VimL","watchers":1,"created_at":"2010/02/11 17:12:11 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/emacs-configs","forks":1,"description":"Personal emacs configs","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":1884,"private":false,"has_issues":true,"pushed_at":"2011/08/11 09:38:11 -0700","name":"emacs-configs","owner":"JNRowe","language":"Emacs Lisp","watchers":1,"created_at":"2010/02/15 12:19:22 -0800"},{"has_downloads":true,"url":"https://github.com/rc0/mairix","forks":6,"description":"mairix is a program for indexing and searching email messages stored in Maildir, MH or mbox folders","has_wiki":true,"fork":false,"open_issues":1,"homepage":"http://www.rc0.org.uk/mairix","size":140,"private":false,"has_issues":true,"pushed_at":"2011/07/29 16:53:31 -0700","name":"mairix","owner":"rc0","language":"C","watchers":21,"created_at":"2010/03/05 14:34:27 -0800"},{"has_downloads":true,"url":"https://github.com/rc0/spill","forks":1,"description":"spill is a program for creating set of symbolic links from one directory hierarchy which point to corresponding filenames in a separate directory hierarchy.","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://www.rc0.org.uk/spill","size":252,"private":false,"has_issues":true,"pushed_at":"2011/05/17 15:52:40 -0700","name":"spill","owner":"rc0","language":"C","watchers":3,"created_at":"2010/03/06 13:28:55 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/tweepy","forks":1,"description":"A python library for the Twitter API. OAuth, python 3, complete coverage, streaming API","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://joshthecoder.github.com/tweepy","size":536,"private":false,"has_issues":true,"pushed_at":"2010/04/02 19:09:52 -0700","name":"tweepy","owner":"JNRowe","watchers":1,"created_at":"2010/03/31 14:57:29 -0700"},{"has_downloads":false,"url":"https://github.com/JNRowe/snipmate.vim","forks":1,"description":"snipMate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim. ","has_wiki":false,"fork":true,"open_issues":0,"homepage":"www.vim.org/scripts/script.php?script_id=2540","size":248,"private":false,"has_issues":false,"pushed_at":"2011/01/27 03:16:30 -0800","name":"snipmate.vim","owner":"JNRowe","language":"VimL","watchers":1,"created_at":"2010/04/05 20:56:06 -0700"},{"has_downloads":true,"url":"https://github.com/zacharyvoase/urlobject","forks":3,"description":"Python library for manipulating URLs (and some URIs) in a more natural way.","has_wiki":true,"fork":false,"open_issues":3,"homepage":"","size":808,"private":false,"has_issues":true,"pushed_at":"2011/06/28 01:15:22 -0700","name":"urlobject","owner":"zacharyvoase","language":"Python","watchers":17,"created_at":"2010/04/08 06:44:42 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/winwrangler","forks":1,"description":"Mirror of the upstream failpad source, converted for Matt","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/2010/04/04/FtO-winwrangler_tiling_for_the_masses.html","size":276,"private":false,"has_issues":true,"pushed_at":"2010/05/05 00:55:01 -0700","name":"winwrangler","owner":"JNRowe","watchers":1,"created_at":"2010/05/05 00:54:23 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/reverend","forks":1,"description":"Reverend - Simple Bayesian classifier","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://divmod.org/trac/wiki/DivmodReverend","size":420,"private":false,"has_issues":true,"pushed_at":"2010/05/06 11:10:51 -0700","name":"reverend","owner":"JNRowe","watchers":1,"created_at":"2010/05/06 10:58:58 -0700"},{"has_downloads":true,"url":"https://github.com/andrewgee/gpxviewer","forks":4,"description":"GPXViewer GPS trace viewer","has_wiki":false,"fork":false,"open_issues":0,"homepage":"http://andrewgee.org/blog/projects/gpxviewer","size":1044,"private":false,"has_issues":false,"pushed_at":"2011/06/06 06:29:23 -0700","name":"gpxviewer","owner":"andrewgee","language":"Python","watchers":4,"created_at":"2010/05/16 02:56:55 -0700"},{"has_downloads":true,"url":"https://github.com/c9s/fontselector.vim","forks":1,"description":"font select plugin for gvim.","has_wiki":true,"fork":false,"open_issues":0,"size":248,"private":false,"has_issues":true,"pushed_at":"2010/10/02 05:46:45 -0700","name":"fontselector.vim","owner":"c9s","language":"VimL","watchers":4,"created_at":"2010/08/06 00:40:51 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/github-cli","forks":0,"description":"A command-line interface to the GitHub Issues API v2.","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://packages.python.org/github-cli","size":916,"private":false,"has_issues":false,"pushed_at":"2010/11/02 10:42:20 -0700","name":"github-cli","owner":"JNRowe","watchers":1,"created_at":"2010/09/15 08:21:44 -0700"},{"has_downloads":true,"url":"https://github.com/sjl/gundo.vim","forks":20,"description":"A git mirror of gundo.vim","has_wiki":false,"fork":false,"open_issues":0,"homepage":"http://sjl.bitbucket.org/gundo.vim/","size":464,"private":false,"has_issues":false,"pushed_at":"2011/08/08 14:07:33 -0700","name":"gundo.vim","owner":"sjl","language":"VimL","watchers":166,"created_at":"2010/10/09 09:31:25 -0700"},{"has_downloads":true,"url":"https://github.com/ehamberg/vim-cute-python","forks":9,"description":"Unicode goodness for Python code by using vim's “conceal” feature","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":120,"private":false,"has_issues":true,"pushed_at":"2011/07/10 03:44:07 -0700","name":"vim-cute-python","owner":"ehamberg","language":"VimL","watchers":42,"created_at":"2010/10/19 13:23:10 -0700"},{"has_downloads":true,"organization":"caelum","url":"https://github.com/caelum/restfulie-py","forks":7,"description":"Python port of Restfulie","has_wiki":true,"fork":false,"open_issues":1,"homepage":"http://github.com/caelum/restfulie-py","size":146,"private":false,"has_issues":true,"pushed_at":"2011/07/26 20:10:12 -0700","name":"restfulie-py","owner":"caelum","language":"Python","watchers":27,"created_at":"2010/10/25 04:23:23 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/python-github2","forks":0,"description":"github client in python, with issues support.","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":144,"private":false,"has_issues":false,"pushed_at":"2011/07/12 09:55:46 -0700","name":"python-github2","owner":"JNRowe","language":"Python","watchers":3,"created_at":"2010/10/31 01:03:09 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/hubugs","forks":1,"description":"Simple client for GitHub issues","has_wiki":true,"fork":false,"open_issues":5,"homepage":"http://packages.python.org/hubugs/","size":3356,"private":false,"has_issues":true,"pushed_at":"2011/07/14 11:41:45 -0700","name":"hubugs","owner":"JNRowe","language":"Python","watchers":2,"created_at":"2010/10/31 09:27:05 -0700"},{"has_downloads":true,"url":"https://github.com/hsitz/VimOrganizer","forks":17,"description":"-- partial clone of Emacs' Org-mode -- please use development branch for newest changes ","has_wiki":true,"fork":false,"open_issues":8,"homepage":"http://vimeo.com/17182850 ","size":540,"private":false,"has_issues":true,"pushed_at":"2011/04/27 20:03:17 -0700","name":"VimOrganizer","owner":"hsitz","language":"VimL","watchers":223,"created_at":"2010/11/09 13:33:13 -0800"},{"has_downloads":true,"url":"https://github.com/j4mie/micromodels","forks":8,"description":"Declarative dictionary-based model classes for Python","has_wiki":true,"fork":false,"open_issues":1,"homepage":"","size":336,"private":false,"has_issues":true,"pushed_at":"2011/02/24 00:46:32 -0800","name":"micromodels","owner":"j4mie","integrate_branch":"develop","language":"Python","watchers":26,"created_at":"2010/12/08 16:21:15 -0800"},{"has_downloads":true,"url":"https://github.com/catch22/pw","forks":2,"description":"Grep GPG-encrypted YAML password safes.","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":202,"private":false,"has_issues":true,"pushed_at":"2011/05/17 12:21:16 -0700","name":"pw","owner":"catch22","language":"Python","watchers":2,"created_at":"2010/12/18 05:32:17 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/snipmate-snippets","forks":0,"description":"A collection of snippets for snipmate (vim plugin) with a focus on bash, php, html and javascript","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":956,"private":false,"has_issues":false,"pushed_at":"2011/05/17 06:22:45 -0700","name":"snipmate-snippets","owner":"JNRowe","language":"VimL","watchers":1,"created_at":"2011/01/27 03:05:32 -0800"},{"has_downloads":true,"url":"https://github.com/gabrielfalcao/HTTPretty","forks":3,"description":"HTTP client mocking tool for Python","has_wiki":true,"fork":false,"open_issues":3,"homepage":"","size":184,"private":false,"has_issues":true,"pushed_at":"2011/06/30 13:04:40 -0700","name":"HTTPretty","owner":"gabrielfalcao","language":"Python","watchers":9,"created_at":"2011/01/28 06:59:02 -0800"},{"has_downloads":true,"organization":"github","url":"https://github.com/github/dmca","forks":8,"description":"DMCA takedowns GitHub has received","has_wiki":false,"fork":false,"open_issues":0,"homepage":"http://help.github.com/dmca","size":136,"private":false,"has_issues":false,"pushed_at":"2011/07/03 12:25:15 -0700","name":"dmca","owner":"github","watchers":438,"created_at":"2011/01/28 15:58:38 -0800"},{"has_downloads":true,"url":"https://github.com/passy/nose-lettuce","forks":1,"description":"A probably bad idea of how to run lettuce from nose","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":248,"private":false,"has_issues":true,"pushed_at":"2011/01/31 13:18:55 -0800","name":"nose-lettuce","owner":"passy","language":"Python","watchers":4,"created_at":"2011/01/31 13:04:03 -0800"},{"has_downloads":true,"organization":"caffeinehit","url":"https://github.com/caffeinehit/hammertime","forks":2,"description":"Time tracking with git","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://github.com/caffeinehit/hammertime","size":140,"private":false,"has_issues":true,"pushed_at":"2011/02/03 02:40:25 -0800","name":"hammertime","owner":"caffeinehit","language":"Python","watchers":6,"created_at":"2011/02/02 02:18:33 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/hammertime","forks":0,"description":"Time tracking with git","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://github.com/caffeinehit/hammertime","size":720,"private":false,"has_issues":false,"pushed_at":"2011/02/02 09:54:18 -0800","name":"hammertime","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/02/02 09:49:21 -0800"},{"has_downloads":true,"url":"https://github.com/kennethreitz/requests","forks":55,"description":"Python HTTP Requests for Humans™.","has_wiki":false,"fork":false,"open_issues":21,"homepage":"http://python-requests.org","size":604,"private":false,"has_issues":true,"pushed_at":"2011/08/15 08:04:00 -0700","name":"requests","owner":"kennethreitz","language":"Python","master_branch":"develop","watchers":659,"created_at":"2011/02/13 10:38:17 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/versionah","forks":1,"description":"Simple version number mangler","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/versionah/","size":4504,"private":false,"has_issues":true,"pushed_at":"2011/08/11 09:35:57 -0700","name":"versionah","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/02/15 08:51:56 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/issues-test","forks":1,"description":"Repo for testing hubugs","has_wiki":true,"fork":false,"open_issues":8,"homepage":"","size":0,"private":false,"has_issues":true,"name":"issues-test","owner":"JNRowe","watchers":1,"created_at":"2011/02/22 13:00:23 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/pelican","forks":0,"description":"Static blog generator in python, using ReST syntax","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://docs.notmyidea.org/alexis/pelican/","size":3916,"private":false,"has_issues":false,"pushed_at":"2011/04/04 21:22:46 -0700","name":"pelican","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/02/23 21:20:07 -0800"},{"has_downloads":true,"url":"https://github.com/dcramer/decruft","forks":8,"description":"python-readability, but faster (mirror-ish)","has_wiki":true,"fork":false,"open_issues":3,"homepage":"http://code.google.com/p/decruft/","size":588,"private":false,"has_issues":true,"pushed_at":"2011/08/11 14:19:19 -0700","name":"decruft","owner":"dcramer","language":"Python","watchers":26,"created_at":"2011/02/28 18:07:04 -0800"},{"has_downloads":true,"url":"https://github.com/JNRowe/pw","forks":0,"description":"Grep GPG-encrypted YAML password safes.","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":132,"private":false,"has_issues":false,"pushed_at":"2011/04/04 23:44:42 -0700","name":"pw","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/04/04 23:37:38 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/shell-doctest","forks":1,"description":"shelldoctest is Doctest/UnitTest for shell (mirror of Google Code project)","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://code.google.com/p/shell-doctest/","size":128,"private":false,"has_issues":true,"pushed_at":"2011/04/05 05:32:44 -0700","name":"shell-doctest","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/04/05 05:32:07 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/blog","forks":1,"description":"Old jnrowe.github.com content that *may* be resurrected.","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://jnrowe.github.com/blog","size":1152,"private":false,"has_issues":true,"pushed_at":"2011/04/05 09:22:26 -0700","name":"blog","owner":"JNRowe","watchers":1,"created_at":"2011/04/05 09:21:16 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/sphinx-jnrowe","forks":1,"description":"My sphinx theme","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":644,"private":false,"has_issues":true,"pushed_at":"2011/05/13 12:27:22 -0700","name":"sphinx-jnrowe","owner":"JNRowe","watchers":1,"created_at":"2011/04/06 07:35:40 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/rdial","forks":1,"description":"Simple time tracking for simple people","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":1688,"private":false,"has_issues":true,"pushed_at":"2011/08/11 07:49:36 -0700","name":"rdial","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/05/09 06:04:35 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/vim-cute-python","forks":0,"description":"Unicode goodness for Python code by using vim's new “conceal” feature","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":112,"private":false,"has_issues":false,"pushed_at":"2011/07/18 06:01:30 -0700","name":"vim-cute-python","owner":"JNRowe","language":"VimL","watchers":1,"created_at":"2011/05/22 23:21:28 -0700"},{"has_downloads":false,"url":"https://github.com/JNRowe/develop.github.com","forks":0,"description":"API Documentation for GitHub","has_wiki":false,"fork":true,"open_issues":0,"homepage":"http://develop.github.com","size":1584,"private":false,"has_issues":false,"pushed_at":"2011/05/23 03:36:51 -0700","name":"develop.github.com","owner":"JNRowe","language":"JavaScript","master_branch":"gh-pages","watchers":1,"created_at":"2011/05/23 03:32:46 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/requests","forks":0,"description":"Python HTTP Requests for Humans.","has_wiki":false,"fork":true,"open_issues":0,"homepage":"http://python-requests.org","size":2648,"private":false,"has_issues":false,"pushed_at":"2011/05/27 00:17:44 -0700","name":"requests","owner":"JNRowe","language":"Python","master_branch":"develop","watchers":1,"created_at":"2011/05/27 00:16:23 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/restfulie-py","forks":0,"description":"Python port of Restfulie","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://github.com/caelum/restfulie-py","size":1794,"private":false,"has_issues":false,"pushed_at":"2011/05/28 22:05:55 -0700","name":"restfulie-py","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/05/28 22:04:51 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/tyrs","forks":0,"description":"twitter curses client","has_wiki":true,"fork":true,"open_issues":0,"homepage":"http://tyrs.nicosphere.net","size":132,"private":false,"has_issues":false,"pushed_at":"2011/06/03 06:45:50 -0700","name":"tyrs","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/06/03 02:42:16 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/gpxviewer","forks":0,"description":"GPXViewer GPS trace viewer","has_wiki":false,"fork":true,"open_issues":0,"homepage":"http://andrewgee.org/blog/projects/gpxviewer","size":1040,"private":false,"has_issues":false,"pushed_at":"2011/06/06 06:23:32 -0700","name":"gpxviewer","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/06/06 06:21:54 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/dwm","forks":1,"description":"The dwm codebase I run","has_wiki":true,"fork":false,"open_issues":0,"homepage":"http://dwm.suckless.org/","size":1084,"private":false,"has_issues":true,"pushed_at":"2011/06/24 09:18:06 -0700","name":"dwm","owner":"JNRowe","language":"C","master_branch":"jnrowe","watchers":1,"created_at":"2011/06/21 23:57:57 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/micromodels","forks":0,"description":"Declarative dictionary-based model classes for Python","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":368,"private":false,"has_issues":false,"pushed_at":"2011/06/22 00:29:06 -0700","name":"micromodels","owner":"JNRowe","integrate_branch":"develop","language":"Python","watchers":1,"created_at":"2011/06/22 00:27:17 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/HTTPretty","forks":0,"description":"HTTP client mocking tool for Python","has_wiki":true,"fork":true,"open_issues":0,"homepage":"","size":172,"private":false,"has_issues":false,"pushed_at":"2011/06/30 12:24:07 -0700","name":"HTTPretty","owner":"JNRowe","language":"Python","watchers":1,"created_at":"2011/06/30 12:19:33 -0700"},{"has_downloads":true,"url":"https://github.com/JNRowe/thinote","forks":1,"description":"Move along","has_wiki":true,"fork":false,"open_issues":0,"homepage":"","size":96,"private":false,"has_issues":true,"pushed_at":"2011/07/15 12:10:38 -0700","name":"thinote","owner":"JNRowe","watchers":1,"created_at":"2011/07/15 12:09:17 -0700"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,repos,watched,tekkub,ab3eb0c9eb0123839606c57857627b30 b/tests/data/github.com,api,v2,json,repos,watched,tekkub,ab3eb0c9eb0123839606c57857627b30 new file mode 100644 index 0000000..711a2dd --- /dev/null +++ b/tests/data/github.com,api,v2,json,repos,watched,tekkub,ab3eb0c9eb0123839606c57857627b30 @@ -0,0 +1,16 @@ +status: 200 +x-ratelimit-remaining: 57 +content-location: https://github.com/api/v2/json/repos/watched/tekkub?page=2 +-content-encoding: gzip +connection: keep-alive +content-length: 15803 +server: nginx/1.0.4 +date: Wed, 19 Oct 2011 08:40:14 GMT +x-runtime: 313ms +x-ratelimit-limit: 60 +etag: "b189a43b15d26fb7fb5940dcbaf3046c" +cache-control: private, max-age=0, must-revalidate +x-frame-options: deny +content-type: application/json; charset=utf-8 + +{"repositories":[{"open_issues":0,"language":"Lua","watchers":2,"pushed_at":"2009/07/25 20:07:42 -0700","url":"https://github.com/tekkub/Buffoon","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Show who cast what buff via LDB","size":132,"private":false,"name":"Buffoon","owner":"tekkub","has_wiki":true,"created_at":"2009/07/25 20:07:27 -0700","forks":1,"homepage":"http://www.tekkub.net/addons/Buffoon"},{"open_issues":0,"watchers":1,"pushed_at":"2009/07/27 17:49:36 -0700","url":"https://github.com/tekkub/OhSnap","has_issues":true,"has_downloads":true,"fork":false,"description":"","size":0,"private":false,"name":"OhSnap","owner":"tekkub","has_wiki":true,"created_at":"2009/07/27 17:48:23 -0700","forks":2,"homepage":""},{"open_issues":6,"language":"Lua","watchers":13,"pushed_at":"2011/07/23 23:20:25 -0700","url":"https://github.com/tekkub/GoodNewsEveryone","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - I've invented a device that tells you when reactive abilities are available!","size":112,"private":false,"name":"GoodNewsEveryone","owner":"tekkub","has_wiki":true,"created_at":"2009/07/28 18:45:05 -0700","forks":7,"homepage":"http://www.tekkub.net/addons/GoodNewsEveryone"},{"open_issues":2,"language":"Lua","watchers":23,"pushed_at":"2011/07/04 15:36:43 -0700","url":"https://github.com/tekkub/GnomishVendorShrinker","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Compact scrolling vendor frame","size":596,"private":false,"name":"GnomishVendorShrinker","owner":"tekkub","has_wiki":true,"created_at":"2009/08/15 19:56:03 -0700","forks":4,"homepage":"http://www.tekkub.net/addons/GnomishVendorShrinker"},{"open_issues":0,"language":"Lua","watchers":6,"pushed_at":"2010/06/24 01:09:16 -0700","url":"https://github.com/tekkub/tekChat","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Misc chat stuff\r","size":780,"private":false,"name":"tekChat","owner":"tekkub","has_wiki":true,"created_at":"2009/08/23 01:46:24 -0700","forks":1,"homepage":"http://www.tekkub.net/addons/tekChat"},{"open_issues":0,"language":"C","watchers":2,"pushed_at":"2010/05/01 17:31:48 -0700","url":"https://github.com/tekkub/limechat","has_issues":false,"has_downloads":true,"fork":true,"description":"IRC Client for OSX","size":16220,"private":false,"name":"limechat","owner":"tekkub","has_wiki":true,"created_at":"2009/09/03 23:58:49 -0700","forks":1,"homepage":"http://limechat.net/mac/"},{"open_issues":0,"language":"Lua","watchers":1,"pushed_at":"2009/09/06 19:14:29 -0700","url":"https://github.com/tekkub/leafLFG","has_issues":true,"has_downloads":true,"fork":false,"description":"My fork of leafLFG","size":540,"private":false,"name":"leafLFG","owner":"tekkub","has_wiki":true,"created_at":"2009/09/06 19:10:51 -0700","forks":1,"homepage":"http://www.wowinterface.com/downloads/fileinfo.php?id=13287"},{"open_issues":0,"watchers":2,"url":"https://github.com/tekkub/Warmup","has_issues":true,"has_downloads":true,"fork":false,"description":"","size":0,"private":false,"name":"Warmup","owner":"tekkub","has_wiki":true,"created_at":"2009/10/01 16:09:12 -0700","forks":1,"homepage":""},{"open_issues":0,"language":"Ruby","watchers":4,"pushed_at":"2009/10/24 15:41:42 -0700","url":"https://github.com/tekkub/github-upload","has_issues":true,"has_downloads":true,"fork":false,"description":"","size":260,"private":false,"name":"github-upload","owner":"tekkub","has_wiki":true,"created_at":"2009/10/02 15:39:42 -0700","forks":5,"homepage":""},{"open_issues":0,"language":"Lua","watchers":2,"pushed_at":"2009/11/03 11:15:42 -0800","url":"https://github.com/tekkub/oUF_HealComm4","has_issues":false,"has_downloads":true,"fork":false,"description":"add LibHealComm-4.0 bars to oUF frames","size":0,"private":false,"name":"oUF_HealComm4","owner":"tekkub","has_wiki":true,"created_at":"2009/11/01 22:53:01 -0800","forks":1,"homepage":""},{"open_issues":0,"watchers":16,"pushed_at":"2009/11/11 17:34:38 -0800","url":"https://github.com/tekkub/Mustache.tmbundle","has_issues":true,"has_downloads":true,"fork":false,"description":"A little textmate bundle for defunkt/mustache","size":124,"private":false,"name":"Mustache.tmbundle","owner":"tekkub","has_wiki":true,"created_at":"2009/11/11 17:12:46 -0800","forks":5,"homepage":""},{"open_issues":0,"language":"Ruby","watchers":1,"pushed_at":"2009/11/11 22:28:24 -0800","url":"https://github.com/tekkub/mustache-sinatra-example","has_issues":false,"has_downloads":false,"fork":true,"description":"An example of using Mustache in a Sinatra app.","size":252,"private":false,"name":"mustache-sinatra-example","owner":"tekkub","has_wiki":false,"created_at":"2009/11/11 22:27:25 -0800","forks":1,"homepage":""},{"open_issues":1,"language":"JavaScript","watchers":8,"pushed_at":"2011/06/26 22:38:27 -0700","url":"https://github.com/tekkub/ihaveissues.github.com","has_issues":true,"has_downloads":true,"fork":false,"description":"","size":112,"private":false,"name":"ihaveissues.github.com","owner":"tekkub","has_wiki":true,"created_at":"2009/12/04 00:48:18 -0800","forks":2,"master_branch":"gh-pages","homepage":"http://ihaveissues.github.com"},{"open_issues":1,"watchers":2,"url":"https://github.com/tekkub/sandbox","has_issues":true,"has_downloads":true,"fork":false,"description":"","size":0,"private":false,"name":"sandbox","owner":"tekkub","has_wiki":true,"created_at":"2009/12/14 12:06:49 -0800","forks":1,"homepage":""},{"open_issues":0,"language":"JavaScript","watchers":1,"pushed_at":"2009/12/17 01:53:58 -0800","url":"https://github.com/tekkub/wowace-navbar","has_issues":true,"has_downloads":true,"fork":false,"description":"Chrome extension to fix wowace.com forum navbar","size":209,"private":false,"name":"wowace-navbar","owner":"tekkub","has_wiki":true,"created_at":"2009/12/17 01:50:57 -0800","forks":1,"homepage":""},{"open_issues":0,"language":"Lua","watchers":6,"pushed_at":"2011/07/23 22:13:25 -0700","url":"https://github.com/tekkub/tekKrush","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Yes, I really want to destroy that item, stop asking","size":100,"private":false,"name":"tekKrush","owner":"tekkub","has_wiki":true,"created_at":"2009/12/29 16:30:57 -0800","forks":2,"homepage":"http://www.tekkub.net/"},{"open_issues":0,"language":"Lua","watchers":5,"pushed_at":"2010/12/20 22:43:18 -0800","url":"https://github.com/tekkub/MediumRare","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Scans NPCs around you for rares","size":260,"private":false,"name":"MediumRare","owner":"tekkub","has_wiki":true,"created_at":"2010/01/02 17:40:19 -0800","forks":2,"homepage":"http://www.tekkub.net/"},{"open_issues":0,"language":"Lua","watchers":2,"pushed_at":"2010/01/02 17:43:21 -0800","url":"https://github.com/tekkub/Shrank","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Warn when players cast spells that aren't max rank","size":112,"private":false,"name":"Shrank","owner":"tekkub","has_wiki":true,"created_at":"2010/01/02 17:43:15 -0800","forks":1,"homepage":"http://www.tekkub.net/"},{"open_issues":0,"language":"Lua","watchers":3,"pushed_at":"2010/01/03 14:14:52 -0800","url":"https://github.com/tekkub/erroff","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Simple error message blocker for macros","size":108,"private":false,"name":"erroff","owner":"tekkub","has_wiki":true,"created_at":"2010/01/03 01:37:57 -0800","forks":1,"homepage":"http://www.tekkub.net/"},{"open_issues":0,"language":"JavaScript","watchers":6,"pushed_at":"2010/01/17 02:10:22 -0800","url":"https://github.com/tekkub/tender-checker","has_issues":true,"has_downloads":true,"fork":false,"description":"Chrome extension - Adds a browser action to track a tenderapp.com inbox","size":560,"private":false,"name":"tender-checker","owner":"tekkub","has_wiki":true,"created_at":"2010/01/16 17:08:37 -0800","forks":2,"homepage":""},{"open_issues":0,"language":"JavaScript","watchers":1,"pushed_at":"2010/01/23 11:51:04 -0800","url":"https://github.com/tekkub/facebook-friend-renamer","has_issues":true,"has_downloads":true,"fork":false,"description":"Chrome extension - Lets you rename facebook friends, because you don't use \"real\" names with these people","size":276,"private":false,"name":"facebook-friend-renamer","owner":"tekkub","has_wiki":true,"created_at":"2010/01/23 11:32:53 -0800","forks":1,"homepage":""},{"open_issues":0,"language":"Lua","watchers":1,"pushed_at":"2010/04/18 16:30:08 -0700","url":"https://github.com/tekkub/tekAutoRepair","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Automatically repair shits","size":100,"private":false,"name":"tekAutoRepair","owner":"tekkub","has_wiki":true,"created_at":"2010/04/18 16:29:56 -0700","forks":1,"homepage":"http://www.tekkub.net/"},{"open_issues":0,"language":"Lua","watchers":5,"pushed_at":"2010/06/06 12:14:09 -0700","url":"https://github.com/tekkub/GnomishInboxShrinker","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - A simple, scrolling inbox","size":312,"private":false,"name":"GnomishInboxShrinker","owner":"tekkub","has_wiki":true,"created_at":"2010/04/19 11:30:41 -0700","forks":2,"homepage":"http://www.tekkub.net/"},{"open_issues":0,"language":"Lua","watchers":2,"pushed_at":"2010/05/02 21:34:21 -0700","url":"https://github.com/tekkub/ImbaPalas","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - The missing paladin bubble sound effect","size":656,"private":false,"name":"ImbaPalas","owner":"tekkub","has_wiki":true,"created_at":"2010/05/02 21:33:57 -0700","forks":1,"homepage":"http://www.tekkub.net/"},{"open_issues":0,"language":"JavaScript","watchers":2,"pushed_at":"2010/06/06 15:07:50 -0700","url":"https://github.com/tekkub/goo.gl-QR","has_issues":true,"has_downloads":true,"fork":false,"description":"Chrome extension - Shorten URL with goo.gl and generate a QR code","size":212,"private":false,"name":"goo.gl-QR","owner":"tekkub","has_wiki":true,"created_at":"2010/06/06 14:56:25 -0700","forks":2,"homepage":""},{"open_issues":0,"language":"Lua","watchers":6,"pushed_at":"2010/07/10 22:01:28 -0700","url":"https://github.com/tekkub/UnrealID","has_issues":false,"has_downloads":true,"fork":false,"description":"WoW Addon - Make \"real\" names go away","size":124,"private":false,"name":"UnrealID","owner":"tekkub","has_wiki":true,"created_at":"2010/06/29 22:08:32 -0700","forks":2,"homepage":"http://www.tekkub.net/"},{"open_issues":0,"language":"Ruby","watchers":1,"pushed_at":"2008/05/10 21:52:00 -0700","url":"https://github.com/tekkub/hubahuba","has_issues":false,"has_downloads":false,"fork":true,"description":"Ruby and Rails core extensions used by GitHub.","size":0,"private":false,"name":"hubahuba","owner":"tekkub","has_wiki":false,"created_at":"2010/07/19 17:10:40 -0700","forks":1,"homepage":""},{"open_issues":0,"language":"Ruby","watchers":1,"pushed_at":"2008/05/29 13:55:30 -0700","url":"https://github.com/tekkub/scaffolding","has_issues":false,"has_downloads":true,"fork":true,"description":"Dynamic Scaffolding plugin","size":0,"private":false,"name":"scaffolding","owner":"tekkub","has_wiki":true,"created_at":"2010/07/19 17:12:00 -0700","forks":1,"homepage":"http://rubyonrails.org"},{"open_issues":0,"watchers":4,"pushed_at":"2010/11/11 02:14:43 -0800","url":"https://github.com/tekkub/gmail","has_issues":true,"has_downloads":true,"fork":false,"description":"","size":132,"private":false,"name":"gmail","owner":"tekkub","has_wiki":true,"created_at":"2010/11/11 02:09:38 -0800","forks":2,"master_branch":"gh-pages","homepage":""},{"open_issues":0,"language":"Ruby","watchers":1,"pushed_at":"2011/08/17 19:36:07 -0700","url":"https://github.com/tekkub/zp","has_issues":true,"has_downloads":true,"fork":false,"description":"Zero Punctuation Video RSS feed generator","size":652,"private":false,"name":"zp","owner":"tekkub","has_wiki":true,"created_at":"2010/11/16 01:43:02 -0800","forks":1,"master_branch":"master","homepage":"http://tekkub.net/zp/videos.xml"},{"open_issues":0,"language":"Lua","watchers":1,"pushed_at":"2010/12/01 00:07:08 -0800","url":"https://github.com/tekkub/oUF","has_issues":false,"has_downloads":true,"fork":true,"description":"WoW AddOn - Unit frame framework.","size":820,"private":false,"name":"oUF","owner":"tekkub","has_wiki":true,"created_at":"2010/12/01 00:04:14 -0800","forks":0,"homepage":"http://www.wowinterface.com/downloads/info9994-oUF.html","integrate_branch":"1.4"},{"open_issues":0,"language":"Lua","watchers":3,"pushed_at":"2010/12/30 21:15:20 -0800","url":"https://github.com/tekkub/MillerLite","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Adds a frame to the AH for fast crafting mat lookup","size":192,"private":false,"name":"MillerLite","owner":"tekkub","has_wiki":true,"created_at":"2010/12/17 19:58:28 -0800","forks":1,"homepage":"http://www.tekkub.net/"},{"open_issues":0,"language":"JavaScript","watchers":1,"pushed_at":"2010/12/24 16:32:40 -0800","url":"https://github.com/tekkub/doublecaps","has_issues":true,"has_downloads":true,"fork":false,"description":"I'm a terrible typist, true story","size":184,"private":false,"name":"doublecaps","owner":"tekkub","has_wiki":true,"created_at":"2010/12/24 16:26:36 -0800","forks":1,"homepage":""},{"open_issues":0,"language":"JavaScript","watchers":1,"pushed_at":"2011/07/17 14:18:13 -0700","url":"https://github.com/tekkub/rtd","has_issues":true,"has_downloads":true,"fork":false,"description":"Just a little RTD lightrail schedule for my bear","size":616,"private":false,"name":"rtd","owner":"tekkub","has_wiki":true,"created_at":"2011/06/05 00:34:36 -0700","forks":1,"master_branch":"gh-pages","homepage":"http://tekkub.net/rtd"},{"open_issues":0,"language":"Lua","watchers":2,"pushed_at":"2011/06/26 01:19:45 -0700","url":"https://github.com/tekkub/Velluminous","has_issues":true,"has_downloads":true,"fork":false,"description":"WoW Addon - Quickly enchant directly to vellum","size":96,"private":false,"name":"Velluminous","owner":"tekkub","has_wiki":true,"created_at":"2011/06/26 01:19:14 -0700","forks":1,"homepage":"http://tekkub.net/"},{"open_issues":0,"language":"JavaScript","watchers":5,"pushed_at":"2011/10/13 03:26:02 -0700","url":"https://github.com/tekkub/dotjs","has_issues":true,"has_downloads":true,"fork":false,"description":"My dotjs scripts","size":108,"private":false,"name":"dotjs","owner":"tekkub","has_wiki":true,"created_at":"2011/06/30 15:50:38 -0700","forks":2,"homepage":"http://defunkt.io/dotjs/"},{"open_issues":4,"language":"JavaScript","watchers":12,"pushed_at":"2011/09/19 06:35:53 -0700","url":"https://github.com/jacksonh/gitmarks","has_issues":true,"has_downloads":true,"fork":false,"description":"Add project bookmarking to github","size":188,"private":false,"name":"gitmarks","owner":"jacksonh","has_wiki":true,"created_at":"2011/07/14 07:34:05 -0700","forks":4,"homepage":""},{"open_issues":0,"language":"JavaScript","watchers":2,"pushed_at":"2011/09/16 14:14:20 -0700","url":"https://github.com/tekkub/gitmarks","has_issues":false,"has_downloads":true,"fork":true,"description":"Add project bookmarking to github","size":112,"private":false,"name":"gitmarks","owner":"tekkub","has_wiki":true,"created_at":"2011/07/16 01:07:57 -0700","forks":0,"homepage":""},{"open_issues":0,"language":"Ruby","watchers":6,"pushed_at":"2011/09/23 21:35:24 -0700","url":"https://github.com/tekkub/supportbee","has_issues":true,"has_downloads":true,"fork":false,"description":"A little ruby library for talking to supportbee's API","size":100,"private":false,"name":"supportbee","owner":"tekkub","has_wiki":true,"created_at":"2011/09/23 21:28:34 -0700","forks":1,"homepage":"supportbee.com"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,teams,121678,repositories,access_token=xxx,00192d3a6cc4fc297b5a9cb0742c3663 b/tests/data/github.com,api,v2,json,teams,121678,repositories,access_token=xxx,00192d3a6cc4fc297b5a9cb0742c3663 new file mode 100644 index 0000000..c83a9c7 --- /dev/null +++ b/tests/data/github.com,api,v2,json,teams,121678,repositories,access_token=xxx,00192d3a6cc4fc297b5a9cb0742c3663 @@ -0,0 +1,14 @@ +status: 200 +x-ratelimit-remaining: 60 +content-location: https://github.com/api/v2/json/organizations/JNRowe-test-org/teams +x-runtime: 20ms +content-length: 676 +server: nginx/1.0.4 +connection: keep-alive +x-ratelimit-limit: 58 +etag: "397a2fcea970a6391b74eabcb62ed265" +cache-control: private, max-age=0, must-revalidate +date: Thu, 19 Dec 2011 20:50:41 GMT +content-type: application/json; charset=utf-8 + +{"repositories":[{"open_issues":0,"description":"","watchers":1,"forks":1,"has_issues":true,"has_downloads":true,"fork":false,"created_at":"2011/12/18 17:36:08 -0800","homepage":"","size":0,"private":false,"name":"test1","owner":"JNRowe-test-org","has_wiki":true,"url":"https://github.com/JNRowe-test-org/test1","organization":"JNRowe-test-org"},{"open_issues":0,"description":"","watchers":1,"forks":1,"has_issues":true,"has_downloads":true,"fork":false,"created_at":"2011/12/18 17:36:24 -0800","homepage":"","size":0,"private":false,"name":"test2","owner":"JNRowe-test-org","has_wiki":true,"url":"https://github.com/JNRowe-test-org/test2","organization":"JNRowe-test-org"}]} diff --git a/tests/data/github.com,api,v2,json,teams,121990,members,ef66ad4c5f8c1b21dc9bc8c54c9ec91e b/tests/data/github.com,api,v2,json,teams,121990,members,ef66ad4c5f8c1b21dc9bc8c54c9ec91e new file mode 100644 index 0000000..10bd256 --- /dev/null +++ b/tests/data/github.com,api,v2,json,teams,121990,members,ef66ad4c5f8c1b21dc9bc8c54c9ec91e @@ -0,0 +1,14 @@ +status: 200 +x-ratelimit-remaining: 60 +content-location: https://github.com/api/v2/json/teams/121990/members +x-runtime: 20ms +content-length: 202 +server: nginx/1.0.4 +connection: keep-alive +x-ratelimit-limit: 58 +etag: "397a2fcea970a6391b74eabcb62ed265" +cache-control: private, max-age=0, must-revalidate +date: Thu, 19 Dec 2011 20:55:34 GMT +content-type: application/json; charset=utf-8 + +{"users":[{"name":"James Rowe","gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","location":"Cambridge, UK","blog":"http://jnrowe.github.com/","type":"User","login":"JNRowe","email":"jnrowe@gmail.com"}]} diff --git a/tests/data/github.com,api,v2,json,user,email,jnrowe%40gmail.com,c8f8e10dbb3704bcbda62ab4de5a69e6 b/tests/data/github.com,api,v2,json,user,email,jnrowe%40gmail.com,c8f8e10dbb3704bcbda62ab4de5a69e6 index d6277ad..6f55fbb 100644 --- a/tests/data/github.com,api,v2,json,user,email,jnrowe%40gmail.com,c8f8e10dbb3704bcbda62ab4de5a69e6 +++ b/tests/data/github.com,api,v2,json,user,email,jnrowe%40gmail.com,c8f8e10dbb3704bcbda62ab4de5a69e6 @@ -1,14 +1,15 @@ -status: 304 -x-ratelimit-remaining: 58 +status: 200 +x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/user/email/jnrowe%40gmail.com +-content-encoding: gzip connection: keep-alive content-length: 370 -server: nginx/0.7.67 -x-runtime: 11ms +server: nginx/1.0.4 +x-runtime: 14ms x-ratelimit-limit: 60 -etag: "56cf9af8aa57da3ccc78fc91d6df4565" +etag: "9732b2f0e3b43cd609879ca8ebc6d5db" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 04:42:13 GMT +date: Mon, 15 Aug 2011 19:53:32 GMT content-type: application/json; charset=utf-8 -{"user":{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","company":null,"name":"James Rowe","created_at":"2009/03/08 14:53:38 -0700","location":"Cambridge, UK","public_repo_count":38,"public_gist_count":64,"blog":"http://jnrowe.github.com/","following_count":5,"id":61381,"type":"User","permission":null,"followers_count":6,"login":"JNRowe","email":"jnrowe@gmail.com"}} \ No newline at end of file +{"user":{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","company":null,"name":"James Rowe","created_at":"2009/03/08 14:53:38 -0700","location":"Cambridge, UK","public_repo_count":48,"public_gist_count":64,"blog":"http://jnrowe.github.com/","following_count":5,"id":61381,"type":"User","permission":null,"followers_count":6,"login":"JNRowe","email":"jnrowe@gmail.com"}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,user,follow,defunkt,access_token=xxx,5670385849f9826634ee63e74bcac43e b/tests/data/github.com,api,v2,json,user,follow,defunkt,access_token=xxx,5670385849f9826634ee63e74bcac43e deleted file mode 100644 index 8b8fbb8..0000000 --- a/tests/data/github.com,api,v2,json,user,follow,defunkt,access_token=xxx,5670385849f9826634ee63e74bcac43e +++ /dev/null @@ -1,14 +0,0 @@ -status: 200 -x-ratelimit-remaining: 58 -content-location: https://github.com/api/v2/json/user/show/mojombo?access_token=xxx -x-runtime: 23ms -content-length: 63 -server: nginx/0.7.67 -connection: keep-alive -x-ratelimit-limit: 60 -etag: "45a6fa1730ba70b40ccd595130b2390e" -cache-control: private, max-age=0, must-revalidate -date: Mon, 11 Apr 2011 14:46:22 GMT -content-type: application/json; charset=utf-8 - -{"users":["c9s","mitsuhiko","seemant","ask","tpope","defunkt"]} diff --git a/tests/data/github.com,api,v2,json,user,follow,defunkt,eb59ee564b4598ac4a39c71474b539fc b/tests/data/github.com,api,v2,json,user,follow,defunkt,eb59ee564b4598ac4a39c71474b539fc new file mode 100644 index 0000000..d03d4dd --- /dev/null +++ b/tests/data/github.com,api,v2,json,user,follow,defunkt,eb59ee564b4598ac4a39c71474b539fc @@ -0,0 +1,14 @@ +status: 200 +x-ratelimit-remaining: 60 +content-location: https://github.com/api/v2/json/user/follow/defunkt?access_token=xxx +x-runtime: 20ms +content-length: 76 +server: nginx/1.0.4 +connection: keep-alive +x-ratelimit-limit: 59 +etag: "051be0232ef98376d11462e632211b9d" +cache-control: private, max-age=0, must-revalidate +date: Thu, 25 Aug 2011 07:18:50 GMT +content-type: application/json; charset=utf-8 + +{"users":["c9s","mitsuhiko","seemant","ask","tpope","defunkt"]} diff --git a/tests/data/github.com,api,v2,json,user,keys,access_token=xxx,f95947b79ef9d668b2ebac9a591a2a36 b/tests/data/github.com,api,v2,json,user,keys,access_token=xxx,f95947b79ef9d668b2ebac9a591a2a36 new file mode 100644 index 0000000..ef84a1d --- /dev/null +++ b/tests/data/github.com,api,v2,json,user,keys,access_token=xxx,f95947b79ef9d668b2ebac9a591a2a36 @@ -0,0 +1,16 @@ +status: 200 +x-ratelimit-remaining: 60 +content-location: https://github.com/api/v2/json/user/keys?access_token=xxx +-content-encoding: gzip +connection: keep-alive +content-length: 94 +server: nginx/1.0.4 +x-runtime: 7 +x-ratelimit-limit: 60 +etag: "1df3e8616495dcf01a4fb79fa450c544" +cache-control: private, max-age=0, must-revalidate +date: Fri, 10 Feb 2012 13:53:29 GMT +x-frame-options: deny +content-type: application/json; charset=utf-8 + +{"public_keys":[{"title":"My sekret key","id":1337,"key":"ssh-rsa DoYouSee key@example.com"}]} diff --git a/tests/data/github.com,api,v2,json,user,search,James%2BRowe,95221a552352bf0535e2445659dc9ed5 b/tests/data/github.com,api,v2,json,user,search,James%2BRowe,95221a552352bf0535e2445659dc9ed5 index 45dc2b0..e190673 100644 --- a/tests/data/github.com,api,v2,json,user,search,James%2BRowe,95221a552352bf0535e2445659dc9ed5 +++ b/tests/data/github.com,api,v2,json,user,search,James%2BRowe,95221a552352bf0535e2445659dc9ed5 @@ -1,14 +1,15 @@ -status: 304 +status: 200 x-ratelimit-remaining: 59 content-location: https://github.com/api/v2/json/user/search/James%2BRowe -content-length: 847 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 847 +server: nginx/1.0.4 +x-runtime: 6029ms x-ratelimit-limit: 60 -etag: "f4b69010d01df911cd62a2c2eef3d71f" +etag: "e26a4abb93b2131fe3f9a29d3b3700d1" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 04:42:12 GMT +date: Mon, 15 Aug 2011 19:57:56 GMT content-type: application/json; charset=utf-8 -x-runtime: 10ms -{"users":[{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","name":"James Rowe","created_at":"2009-03-08T21:53:38Z","location":"Cambridge, UK","public_repo_count":38,"followers":6,"fullname":"James Rowe","username":"JNRowe","language":"Python","id":"user-61381","repos":38,"type":"user","followers_count":6,"pushed":"2011-05-21T06:15:08.703Z","login":"JNRowe","score":4.247995,"record":null,"created":"2009-03-08T21:53:38Z"},{"gravatar_id":"e70f90f2a6985553d18fa39b90d9db6f","name":"James Rowe","created_at":"2008-11-18T10:39:10Z","location":"Guernsey, Channel Islands","public_repo_count":2,"followers":1,"fullname":"James Rowe","language":"Ruby","username":"wooki","id":"user-35166","repos":2,"type":"user","followers_count":1,"pushed":"2011-05-13T19:15:09.524Z","login":"wooki","score":4.247995,"record":null,"created":"2008-11-18T10:39:10Z"}]} \ No newline at end of file +{"users":[{"gravatar_id":"e40de1eb6e8a74cb96b3f07f3994f155","name":"James Rowe","created_at":"2009-03-08T21:53:38Z","location":"Cambridge, UK","public_repo_count":48,"followers":6,"fullname":"James Rowe","username":"JNRowe","language":"Python","id":"user-61381","repos":48,"type":"user","followers_count":6,"pushed":"2011-08-11T15:15:16.791Z","login":"JNRowe","score":4.108372,"record":null,"created":"2009-03-08T21:53:38Z"},{"gravatar_id":"e70f90f2a6985553d18fa39b90d9db6f","name":"James Rowe","created_at":"2008-11-18T10:39:10Z","location":"Guernsey, Channel Islands","public_repo_count":2,"followers":1,"fullname":"James Rowe","username":"wooki","language":"Ruby","id":"user-35166","repos":2,"type":"user","followers_count":1,"pushed":"2011-07-26T09:15:15.818Z","login":"wooki","score":4.108372,"record":null,"created":"2008-11-18T10:39:10Z"}]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,user,show,defunkt,379cb3d60bbce3d9b30e6e6aae66840c b/tests/data/github.com,api,v2,json,user,show,defunkt,379cb3d60bbce3d9b30e6e6aae66840c index 3a94ea7..f8dbc00 100644 --- a/tests/data/github.com,api,v2,json,user,show,defunkt,379cb3d60bbce3d9b30e6e6aae66840c +++ b/tests/data/github.com,api,v2,json,user,show,defunkt,379cb3d60bbce3d9b30e6e6aae66840c @@ -1,14 +1,15 @@ -status: 304 -x-ratelimit-remaining: 56 +status: 200 +x-ratelimit-remaining: 58 content-location: https://github.com/api/v2/json/user/show/defunkt +-content-encoding: gzip connection: keep-alive content-length: 386 -server: nginx/0.7.67 -x-runtime: 16ms +server: nginx/1.0.4 +x-runtime: 364ms x-ratelimit-limit: 60 -etag: "144f668d7265bcd9d61bc1fb91e9caeb" +etag: "198bc0b6ce2cf5d8b6f08519418c9d25" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 04:32:12 GMT +date: Mon, 15 Aug 2011 19:53:45 GMT content-type: application/json; charset=utf-8 -{"user":{"gravatar_id":"b8dbb1987e8e5318584865f880036796","company":"GitHub","name":"Chris Wanstrath","created_at":"2007/10/19 22:24:19 -0700","location":"San Francisco","public_repo_count":90,"public_gist_count":277,"blog":"http://chriswanstrath.com/","following_count":212,"id":2,"type":"User","permission":null,"followers_count":2593,"login":"defunkt","email":"chris@wanstrath.com"}} \ No newline at end of file +{"user":{"gravatar_id":"b8dbb1987e8e5318584865f880036796","company":"GitHub","name":"Chris Wanstrath","created_at":"2007/10/19 22:24:19 -0700","location":"San Francisco","public_repo_count":93,"public_gist_count":278,"blog":"http://chriswanstrath.com/","following_count":212,"id":2,"type":"User","permission":null,"followers_count":3402,"login":"defunkt","email":"chris@wanstrath.com"}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,user,show,defunkt,followers,aba15090598242283ff9d4a8b5969f52 b/tests/data/github.com,api,v2,json,user,show,defunkt,followers,aba15090598242283ff9d4a8b5969f52 index 9370134..3c430cf 100644 --- a/tests/data/github.com,api,v2,json,user,show,defunkt,followers,aba15090598242283ff9d4a8b5969f52 +++ b/tests/data/github.com,api,v2,json,user,show,defunkt,followers,aba15090598242283ff9d4a8b5969f52 @@ -1,14 +1,15 @@ -status: 304 -x-ratelimit-remaining: 59 +status: 200 +x-ratelimit-remaining: 57 content-location: https://github.com/api/v2/json/user/show/defunkt/followers +-content-encoding: gzip connection: keep-alive -content-length: 29004 -server: nginx/0.7.67 -x-runtime: 214ms +content-length: 38576 +server: nginx/1.0.4 +x-runtime: 425ms x-ratelimit-limit: 60 -etag: "e5fafda9776b6ebe037bc5cea456ca6a" +etag: "1645986748f488c8193ded0a4713814e" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 04:32:08 GMT +date: Mon, 15 Aug 2011 19:53:47 GMT content-type: application/json; charset=utf-8 -{"users":["jnewland","pjhyett","cnix","dustym","choonkeat","nakajima","mtodd","bumi","takeo","bmizerany","zachinglis","evilchelu","manalang","mmmurf","hornbeck","mindy","therealadam","vanpelt","alexcharlie","seaofclouds","luke0x","rphillips","Caged","kamal","eventualbuddha","bigfleet","jacques","tim","KirinDave","ddemaree","benschwarz","cpjolicoeur","mmcgrana","mdarby","anildigital","ryanahamilton","entangledstate","coty","broughcut","atduskgreg","liz","brianleroux","kballard","haraldmartin","walf443","ss","elliottcable","joshuabates","eastmedia","mattman","imajes","saimonmoore","hoverbird","Fil","nesquena","membogg","ayn","jbritten","peterba","nick","willcodeforfoo","mojombo","rsl","caffo","khigia","BrianTheCoder","tkofol","dstrelau","sant0sk1","joshuaclayton","cee-dub","tooeasy","quirkey","eduardo","raja","timshadel","rsanheim","tokumine","statik","mattly","xilo32","yaroslav","sr","hchoroomi","lgn21st","purzelrakete","seven1m","douglasjarquin","ihower","freels","adamstac","fauxparse","duncanbeevers","jasonwatkinspdx","spohlenz","joaovitor","mikedamage","alainravet","whomwah","ooodigi","nerdrocket","zmack","mulder","kivanio","vlandham","yizzreel","ryanb","cho45","sandro","ratchetcat","jgross","jasherai","jw-00000","zubin","loe","fred","stuartsaunders","skippy","dgiunta","monde","charlenopires","devn","softprops","madx","lukebayes","blech75","newtonapple","edbond","ncr","boboroshi","holtonma","jhubert","libin","bastos","nullobject","croaky","trevorturk","fabioespindula","nick-b","sikachu","schacon","harper","envoked","guitsaru","brianmario","subwindow","Arthur","sob","tiagowhite","jasontorres","lawrencecurtis","bterlson","mattsears","patrickdet","academician","markpuck","mokolabs","baron","arikan","ryanking","willemderu","entombedvirus","cyx","galfert","heycarsten","shallwelin","sbfaulkner","jaehess","jonathannelson","helo","schwabsauce","gusgollings","adzap","joefiorini","trestrantham","hairballopolis","daveliu","thetacom","genki","guillermo","tekin","nextmat","hans","colin","Roman2K","kakutani","qrush","hpoydar","goodtouch","LimeHat","grobie","tosh","epitron","inkdeep","voitto","kvnsmth","darrenhinderer","njonsson","bianster","shanesveller","technicalpickles","erikj","lancecarlson","briandoll","digitalextremist","KevBurnsJr","slim","clarkware","jasoncarter","Krishna","kirk","tinogomes","wfarr","intabulas","hardbap","aziz","atmos","robbyrussell","codeslinger","evandrodutra","martinisoft","smtlaissezfaire","larrywright","joshknowles","evanwalsh","jchris","jqr","jbarnette","rafaelss","dsboulder","res0nat0r","sunfmin","topfunky","NigelThorne","supaspoida","yipstar","davidwparker","jinzhu","johnpaulashenfelter","joshua","agile","cored","visnup","calendaraboutnothing","eoin","deepak","dsparling","oleganza","pengwynn","christophermoura","jgagne33","mhutchin","matsuda","zak","railssummit","taylorrf","peleteiro","greatseth","blackwinter","rberger","elim","eric","collin","henryhamon","shinzui","tongueroo","vanntastic","swdyh","peterpunk","kabnot","ozeias","mwilliams","kamipo","bezugen","arthurgeek","fairos","webmat","bonachela","foysavas","mojodna","dwabnitz","fuzzytone","anthonybarone","mkhl","botanicus","kavu","jhsu","delameko","uhhuhyeah","jcf","nrk","brycethornton","maxdevel","ashleyw","zegomesjf","rjspotter","tjweir","slawcup","pjdavis","ngerakines","rwc9u","aka47","Bregor","oristian","JackDanger","amatsuda","josespinal","sleistner","jdp","mkrisher","rbarazi","mattmatt","luisbebop","rcrowley","anotherjesse","semikolon","albertoperdomo","kaikuehne","marcric","pardel","rads","altamic","badcarl","Marat","rfwatson","jesseclark","iamwilhelm","rtyler","kovacs","alexvollmer","rkh","joelparkerhenderson","shayfrendt","pcalcado","marcelinollano","jngo","robertpfeiffer","ukd1","jpablobr","alfredwesterveld","matthewford","haws","visionmedia","ekinci","hellekin","paulgrunt","seouri","pauldix","CodeOfficer","manuelmeurer","kristopher","mattyoho","neilmock","igorgue","miyagawa","akm","ieure","mwunsch","kairichard","leah","Siansor","kiko","breily","elmer","vshih","samsoffes","graysky","leandrosilva","blinton","ashchristopher","bensie","yura","adamaig","erotte","fernholz","jamesrose","michaeldv","raganw","sstephenson","capotej","BeamerCola","damon","amiel","iamstillalive","rduarte","jney","rymai","jtadeulopes","caironoleto","talboito","alexmchale","davglass","lian","rondevera","shashi","dira","GreenDragon","yonkeltron","jeanmartin","shelling","tehcurtis","gnlnx","joshng","bartuer","bruce","adamv","yasu","cjmartin","jarodl","jonatas","ronnieliew","polly","nonsequitur","marclove","arya","splattael","mcfearsome","skorecky","jaygooby","iande","brosner","brett","jivko","cmelbye","edwingo","hunab","zipme","mnaberez","nimo","justinlilly","howiworkdaily","johnbender","jezdez","petercoulton","juliend2","dhou","enricob","gigamo","markstephenson","gregnewman","rubify","spagalloco","Xac","attack","esycat","webiest","ogijun","travisjeffery","moongtook","meritt","stephencelis","doowttam","mrchrisadams","riethmayer","utahcreative","bkrsta","program247365","montylounge","renatocarvalho","NYiPhoneDeveloper","novas0x2a","rblackwe","basiszwo","deminew","stan","sgarza","epocRepo","georgi","radamant","munjal","jgchristopher","macro","Gig23","diogenesis","poshboytl","pablete","mpreath","ujihisa","Sixeight","andrewhavck","alexch","skateinmars","darwin","EvanBurchard","cytobank-matthew","kidpollo","kjwierenga","psyche","antrover","andrehjr","iamsolarpowered","horaci","rishav","joshbuddy","rlr","wnetoa","simplabs","alex","dustinwhittle","samvincent","memiux","ktlacaelel","rubysolo","chillicoder","teepark","tonyl","hal0thane","james-baker","stuffmc","sepposade","jastix","vianaweb","FDj","auser","sacrosby","ascarter","tdmackey","julienXX","adurity","carlp","asenchi","mazebuhu","caseyhelbling","mikereedell","verbal","satynos","cloudhead","packagethief","bsy","robhurring","davidx","foxscan","detrain","jawspeak","jschoolcraft","lokeshk","yashh","jrsims","moorage","thisgirlangie","jdamick","dsully","gregf","sjain","hughdbrown","webandy","fairchild","wesbillman","mvj3","scrogson","gtcaz","rcarver","superfeedr","didenko","JonRohan","miamiruby","nelix","rvwoens","coiscir","javan","haru01","dastels","artificemm","docgecko","electricgraffitti","detansinn","chunzi","m3talsmith","priteau","jptoto","amerine","jyr","zodman","chipski","christhomson","dayne","mmalone","ccsmail","jeffp","natebunnyfield","f1vlad","joshbutner","sferik","johan--","joahking","aaandre","dennyhalim","gregcopenhaver","teknopartz","CodeMonkeyKevin","zgchurch","vangberg","benaldred","kaichen","ap0ught","jnbn","holywarez","dambalah","juarlex","nevilleburnell","symlink","mdwrigh2","agibralter","kognate","sroegner","daksis","philipefarias","ajsharp","mwhooker","maca","kalkov","synaptic","wolverian","rnaveiras","jjcall","matthewfl","mathieuravaux","temojin","graphicsop","m7d","bbuckley","gabrielfalcao","mamuso","deepthawtz","marksands","tarellel","josh","KieranP","mrkn","raul","sd-fritze","dapi","jaryl","kylebrowning","jimpick","nikolay","joshnesbitt","maggit","xinuc","marciotrindade","bradchoate","bs","peterz","wvl","csamuel","jamesarosen","joshourisman","kacy","martinciu","osde8info","aliem","gabrielg","jaknowlden","evanfarrar","mivaul","shock","nicksergeant","lucian","Asciant","thoas","bicherele","Csele","uamuamuam","i0n","benhaan","jodosha","JonGretar","evolve2k","jondruse","polera","lr","badboy","mikelim","irfn","tangtao","st3f","thegeekbird","tweak","hackedunit","christophsturm","tobi","fvonx","marcoow","pcreux","vapidbabble","reidmix","jherdman","chrisdrackett","overture8","jits","daz","lazzarello","asoltys","Hates","mgomes","tlrobinson","bluehavana","janl","sah","gussan","brynary","adolfosousa","cypher","wintermi","bemurphy","neduma","nowells","hojberg","muddana","juvenn","jobscry","Sutto","arjunghosh","rorrego","jwilkins","nrolland","marcinbunsch","neophiliac","ranza","dusty","hoggarth","sriprasanna","davidhalldor","josephsofaer","rbriank","andreisavu","dennmart","jrmehle","whistlerbrk","shaper","jrivero","gloubidou","denzuko","dmillar","mexpolk","mkuklis","christianhellsten","johndagostino","jots","apillet","qdonce","javisantana","mikeauclair","digx","coreyhaines","rudionrails","jpbougie","brixtonasias","onesunone","bry4n","rhymes","liangzan","kvbik","professionalnerd","visola","suresh","bastih","andrem","r38y","mynyml","bitflut","danielbru","3rdman","cypriss","esdras","benpickles","ducky427","knobe","elkinsware","tpitale","foca","simonw","mrduncan","Xenome","markisisme","al3x","futoase","tomaski","meddah","shakhan","nailor","adamcooke","Hoodow","klacointe","erikvold","rtomayko","kolber","cashyboy21","luddep","closer","riggasconi","aroscoe","sven-q","kurotoshiro","angusb","binarydud","chrisb","gvarela","sukhchander","gnufied","Cutpastecreate","elg0nz","ijayasin","christianchristensen","strange","leandro","dirs","zevarito","jpf","mendelbenjamin","brianherbert","yuritomanek","latrommi","tokuhirom","qhoxie","rust","ericholscher","lxneng","lorchaos","rchk","ches","frnz","filipealvesferreira","lucasefe","paulwalker","httpdss","gdrage","jakalada","claudine","joshamos","fgrehm","rdamen","yaroot","jugyo","messa","digitaltoad","orph","galex","boriscy","rafidude","darashi","angrytuna","AdamN","paydro","rimenes","jacqui","sfkaos","dgalarza","imakado","moomerman","Ashernor","pedrodelgallego","BenWard","bashwork","axelator","zeroLaming","toothrot","pake007","sevas","btoone","dallas","danielrmz","kret","nouse","mdaisuke","fmborghino","ibolmo","zetafish","drewlesueur","dacoz","ciju","noise","salax","jotto","toastdriven","mcroydon","tfreitas","ccheever","sxlee87","jmcantrell","acts-human","bastienlabelle","terrbear","mikhailov","joshdavey","hecticjeff","garru","TBD","vancaem","jasonmc","ariekeren","shreekavi","chrisco","michaeltsmith","hmarr","binq","jakedahn","stonegao","jperras","finn","kerberoS","firman","leeky","gamesthatgive","jchaney","timonk","philippWassibauer","danblick","itspriddle","threedaymonk","michelson","tilgovi","jmchambers","jhindle","mtoledo","nhocki","mrtazz","the-architect","schallis","kneath","gustaf","ejdraper","logicaltext","levycarneiro","ktheory","robb-broome","matflores","SleepTillSeven","bencochran","tmm1","infixfilip","jemerick","edouard","ethangunderson","beanieboi","jwelshiv","MBO","gitmate","rok","santosh79","yaychris","BenHall","sirprize","abraham","heatxsink","joshwalsh","grimen","adamramadhan","mzlittle","demet8","jrpz","jeanpaulcozzatti","mtarbit","jstorimer","cacciaresi","r3trofitted","bennyfreshness","sinetris","jrun","unspace","rgarver","gabrielmansour","jnstq","hgillane","cherring","dceballos","kstewart","donnykurnia","plukevdh","diogenes","joshbrown","yolk","bitfyre","raphaelcosta","esneko","yuriyvolkov","unthinkingly","chad","quinn","wmerydith","donspaulding","notthinking","ikarius","jbr","yoshimax","silverfox","jmwinn21","extraordinaire","hartym","mattonrails","vertis","tommg","weilawei","denniscollective","72616b657368","sork","JamesHayton","kennethreitz","kurko","potomak","mmatuson","amiri","dandean","syntaxritual","holman","alimills","hammer","jnunemaker","risico","fritzek","theflow","dnozay","steshaw","bobanj","webtechnologist","PatrickTulskie","kares","miksago","fuJiin","tommychen","simonreed","foremire","LFabien","bagwanpankaj","bummytime","devinus","rays","krisb","Lymskos","zonble","aantix","vorn-coza","techfolio","albybisy","tcol","jufemaiz","pvdb","pcdavid","danopia","chrislerum","peterto","laberge","smokyonion","guinascimento","longhorny","gabe","kbuckler","durran","tricomsol","bananastalktome","jordanbreeding","c9s","alvin2ye","NV","jwachter","pulni","jjungnickel","f440","ratzefummel","krmdrms","mauriziodemagnis","inffcs00","bobthecow","bengold","gciampa","akshayrawat","said","hawx","samuel","michael","ruyrocha","fmmfonseca","chiragrules","raid5","kamui","hsbt","svenfuchs","l15n","steves","lunestae","pjaspers","chinmaygarde","scotttam","jeekl","kfinlayson","admc","kadel","bilco105","t9md","meskyanichi","timocratic","timhaines","Marak","openface","tlossen","tekacs","jasonpa","nightsailer","technoweenie","chrismear","benatkin","lloydpick","ryanmoran","Tomohiro","aslam","mineiro","gdagley","rociiu","AieshaDot","kijun","robertjwhitney","macek","willrax","VinylFox","rupa","smallacts","truemilk","alanhaggai","mitchellhislop","cobracmder","xoebus","gretch","juretta","mgsnova","invadersmustdie","tedb","jedschneider","maikelgonzalez","bdigital","raycmorgan","zenmatt","thrashr888","dug","avdi","chaifeng","bblimke","vivienschilis","fd","luckiestmonkey","Locke23rus","berlin-ab","myfreeweb","windmill","briankeairns","ricardojsanchez","angelov","cbmeeks","maetl","thepug","gluckspilz","jamin4jc","netzkontrast","mager","jarquesp","phmongeau","jdennes","danishkhan","bensonk","nano","kjbekkelund","flyerhzm","kanashii","mairon","sekimura","joericioppo","bertzhu","mislav","jroes","jenishkottaram","peterwald","alterisian","artisonian","bcherry","jbw","haifeng","stockhausen","bvandenbos","mlbright","consti","simonoff","suzukimilanpaak","ctrochalakis","acrookston","gnomet","dexterdeng","aderyabin","hwijaya","catman","vesan","frederico","zacharyscott","IsraelAgNouhYattara","mikecampo","dsueiro","reeze","stevemckenzie","avelino","stinie","thbishop","sotakone","srobbin","krongk","yaotti","tobym","robhudson","ryanbriones","jcpbacon","zhengjia","awilliford","moubry","rm","cyclades","mikethomas","dkeskar","brianlee","panggi","durbin","fmela","Shekar73","infynyxx","sorenmacbeth","unindented","kevinpanaglima","krachot","dvyjones","joshOiknine","arkx","rrichards","error400","lagsalot","JSilva","twitoaster","rbrant","shaiguitar","jmorganson","electronicbites","fredwu","jlertle","DHoffm","Tyrant505","CodeBlock","jgrevich","fpauser","lastk","scifisamurai","runawayjim","ryana","amanelis","ponzao","michelmelo","edsinclair","reustle","vshvedov","marchdoe","devi","allanberger","alup","tventura","cobra90nj","berkerpeksag","neviim","westoque","Rud5G","cjwoodward","fyskij","1ed","Axispower","icaruswings","DasIch","fredpalmer","al3d","codylindley","Bushjumper","phoenix24","pcora","welterde","VijayM","sr3d","hotoo","nwjsmith","brianjlandau","hemanth","johnknott","MatthewCampbell","mwmitchell","asymmetric","glitterfang","ptn","kraih","ono","myuhe","jque","GVRV","d-r","danthompson","zerd","selman","elsewares","unes","Debadatta","monoceroi","gchandrasa","darknighte","jreading","kron4eg","minad","cdmwebs","inuki","nabeelmukhtar","hornairs","goyox86","gosuri","revans","michaeldwan","helianthuswing","christiansmith","kidrane","melborne","darkhelmet","ikbear","blowmage","maxjustus","sebleier","mattb","GeoffTidey","warehouselabs","german","itsmeduncan","dneighbors","fireflyman","mattheath","madwork","marcosvm","rafmagana","rafaelgaspar","arden","flyfireman","saggim","mnelson","etehtsea","xantus","byrongibson","mopemope","gillesfabio","ZeuQma","tkaemming","jackhq","connrs","jpang","amorton","rubyorchard","ghg","remiprev","michaelparenteau","harikrishnan83","eddieringle","krekoten","andmej","mak1e","seungjin","christofd","gfx","mechanicles","drak","olkarls","gregory80","thheller","devreq","nanek","laripk","jefflab","rick","tapajos","denmark","richardiux","dfbrule","yrosen","ebruning","bts","AzizLight","audy","ballantyne","huerlisi","codepuzzle","khasan","nikochan","pmh","jexchan","designrelated","codykrieger","edorcutt","iamacourser","rowedev","lardissone","wxmcan","threez","cjkoch","gigq","marugoshi","tianyicui","earcar","fadhlirahim","ccollins","adanmayer","tpeden","jsocol","TaurusOlson","jaksys","leandrocg","rube","richard6363","emddudley","JensNockert","he9lin","tmilewski","rishikulkarni","wescleymatos","mootoh","ganesan","rodrigosdo","tonktonk","skaufman","jurajpelikan","fcurella","vic","eston","hiteshmanchanda","tsigo","plang","avsej","kanzure","johnturek","percyperez","vorushin","jakemcgraw","fushang318","juniorbl","alanandrade","kenn","mitchj","webdestroya","supairish","seanhellwig","guilhermechapiewski","rainerborene","zonovo","vertocardoso","vinioliveira","hotchpotch","pch","jeffself","markmhx","Archonyx","indrode","mmaheu","sigardner","kulesa","phsr","ericflo","andyferra","shurizzle","renatoelias","klandergren","fabiomcosta","johngrimes","gleuch","ecksor","lucapette","achiu","benbjohnson","selvan","ey0t","bray","komagata","longda","pixelballistics","a2ikm","hoffmann","Rich-McGrath","abelperez","galvez","mkempe","amiridis","sfgirl","makeusabrew","dragoscrintea","grzegorzkazulak","jcmuller","JustinCampbell","dpree","jquattrocchi","sri","neonsunburst","danielemilan","poseid","chancegarcia","Prog4rammer","HTApplications","cassiomarques","andrerocker","SixArm","andrewsmedina","gaubert","parabuzzle","diogosantos","seanmccann","particlebanana","CloudMarc","majtom2grndctrl","javichito","jk","arunagw","esfand","plentz","caueguerra","albertoleal","adrianoalmeida7","guilleiguaran","donaldw","TaopaiC","stephenbreen","dissolved","ikaros","andrefaria","aporia","benlambert","coolgeng","kitop","mitukiii","kayaman","sLLiK","vmseba","nkchenz","vs","jtsay","arlolra","adaoraul","Demeter","jpadvo","joshaber","ebeigarts","allenwei","nervetattoo","bostonbasso","saki","ajbolanos","seppuku","sonicgao","ainvyu","cbrammer","hostsamurai","vatrai","acadavid","danengle","paddydub","noqqe","zporter","namley","aaronky","rdegges","weatherpoof","tomxander","skyfive","dieinzige","Becojo","saysjonathan","awayken","nataliepo","notrael","mrigor","blatyo","cwaring","sshirokov","kam","joshfng","martintel","skorks","vamsee","Lispython","hansef","seenmyfate","kitt","Markitox","Antti","Kerestey","albertz","samverekar","fredrikmollerstrand","thesp0nge","kdepp","ptzn","wusher","phongvh","sayz","qbyt","mkomitee","mlen","jmanon","duk42111","Naoya-Horiguchi","brianlovesdata","dreamcat4","pxr","neiltron","tauil","jondot","phonx","mininaim","6","Mattia","blambeau","DougTabuchi","idorosen","rachelmyers","capthy","liwh","brunoarueira","DrPheltRight","csanz","scott-stewart","jacobrelkin","shaliko","AAinslie","jamierumbelow","abukhait","scottlabs","tjhanley","mmonis","mrkamel","christiancurland","clyfe","thecocktail","taicki","stephenallred","zires","acadopia","MateuszWijas","zentrification","touchinspiration","reddyonrails","mportiz08","krizzna","nmelo","andrewsardone","kotp","rossta","anups","jeffcarroll","efritz","jpogran","jdp-global","hyperbolist","bf4","lenzcom","ardwalker","L42y","sosedoff","Ajmal","abhishekmunie","kbaldyga","kamzilla","delonnewman","peter-murach","sputnikus","benwr","wijet","marlonglopes","TheFox","kblake","senny","azer","Smarty","milann","ipavelek","elitau","zyan","farnhizzle","hamzakc","Waterfox","arunjitsingh","azizur","kitenge","eatcpcks","lusis","gvt","jasonmelgoza","jichen","Zeelot","albertobarrila","procyon","Wackybob","curbina","goosetav","ghindle","vicmiclovich","wearestac","klebervirgilio","offby1","kaaliputra","Silanus","scopevale","netzflechter","poutyface","raulmangolin","dmshann0n","cricketgeek","VikramRao","mungomash","bradheitmann","kainosnoema","iromli","jwelty","sayem","tobsch","rubynerd","travisanderson","lightyrs","muellmat","cameronmcefee","hector","kjetilod","kinabalu","jglee1027","andrew","metiny","dnurzynski","redpanda","necroua","karmi","lgaches","mabonyi","vyatri","korczis","67ideas","pcunnane","dpbus","ashneo76","joshmattvander","liangcw","vineetbnagaraj","jmatraszek","mkitt","pmandia","yassersouri","yudmiy","arthurix","osebboy","baant","programaker","busticated","emilpetkov","sebacruz","mrdg","DamianZaremba","malikbakt","georgecalm","danielribeiro","Dirklectisch","sup3rcod3r","raeffu","Anthony-Geranio","jitterizer","hectcastro","rudolfochrist","excid3","lampr","voidnothings","tsenart","nt","Amokrane","levicook","qnm","technolize","aodag","sansumbrella","MindTooth","scott2449","X4","mrcaron","randomor","liuzhoou","marciogm","ardiyu07","dannymcc","nfedyashev","batuhanicoz","cognominal","sax","vybs","richardrasu","xcoderzach","lucamaraschi","mohnish","pcardune","madari","TimothyKlim","nbucciarelli","jwoertink","freakyfractal","enc","lite","aanoaa","tomvleonard","mikaa123","jeanregisser","scheibo","Psli","einux","konputer","dzello","Nilloc","cmeiklejohn","georgemandis","tembamazingi","mblair","mconnor","nerdmom","ndegruchy","spearse","larsburgess","burnto","franciscoj","sleparc","rafaelcaricio","ajray","chacha","hasanyavas","pedrolopez","mponizil","timknight","jacksinn","huacnlee","justinbaker","aswadrangnekar","Captainkrtek","DrewFitz","sleepdev","tharkoos","youwannaknow","doud","tmcgilchrist","chlayverts","thomvil","digitalpardoe","sposborne","parkerl","carlosdelfino","omgitsads","tuhin","RLovelett","eregon","sanxac","ezuelectrock","tshauck","mtsoerin","hiromitz","araee","bogdanmuresan","kloderowski","msarvar","drydevelopment","1anre","icco","joestraitiff","jmileham","Refreshe","tansu-uslu","hoverlover","handyjq","xlarsx","bojovs","ajmi","fuzzyfox","lexxx233","diversen","fabianoalmeida","martinlindelof","srih4ri","ianphilpot","pitr","ffontouras","Kjata1013","thasc","newtriks","ashbaker","Ameero","zahir","sunpech","EdlinOrg","snstoyou","nope","elemel","smly","prathe","P6rguVyrst","srisnsris","s3w47m88","semicarry","hidde-jan","rowoot","TBush","AXJ","stevedeneb","adarshp","RootSpeaking","kevasdf","mdesrosiers","Purandhar","hyesushin","DenDen1337","JBean","amhnews","aseba","diegopacheco","macluq","tonycasanova","shaoyang","rmdort","morganwatch","alexandersanz","LinGmnZ","sjh","dalpo","brentsmith","Zolomon","liveink","diulama","tanelpuhu","rcarrieche","dte","RyomaKawajiri","punytan","yoquankara","haoqili","knowncitizen","dinhkhanh","psalami","krishnanagaraj","cespujunk66","lalasusu999","pcurry","wyattdanger","shingonoide","ngoatvm","eriknrd","philfreo","luckydev","Rahulitsmca","gohavefun2","bertjwregeer","nmumen","aumgn","dobcey","davidohalloran","jowido","marksteve","dabio","rmicoy","madewulf","bosism","Tipertuba","PushinPixels","tgdn","shariefsk","m0nkey","henryleacock","CrawfordWynnes","anagri","mlareo","neil477","kdonovan","yamunamathew","berlinbrown","antawara","Cotizado25","gjorquera","Dushyanthkinjarapu","laCour","oooo723","roblecca","pmaingi","gcampbell","robeastham","jgdreyes","Caustic","morgankeys","chesleybrown","zzazang","adanoria","millr","MikeBott","keitsi","zlangley","avalanche123","ilot3k","bendiken","jeheald","ashsmithco","mycroft","lachezar","borahMoloy","cliffsull","goldenandroid","KuraFire","ngpestelos","troessner","Arnab1401","ujjwalkhanal","qadir0108","ihd2911","Firsh3k","lifeisrisky","nevans","munro9","fagiani","lojikbomb","chrisledet","ariel","marcosanson","rem","shivakantmanch","MMLK","skattyadz","mhaidarh","joedynamite","dimasaryo","trico","shaunmichael","vs4vijay","afj176","stevennathaniel","gujiao","olamedia","giupo","whatrocks","stakisko","mhockelberg","shalo","devaraj","attomos","xeneizeyorugua","ryanlecompte","jrk","deryldoucette","jacknagel","togetherville","zypher","kyledoherty","yakomoca","sastha","KMASubhani","tejasc","ErikRHanson","ghais","dontcare4free","streeter","ambreenhussain","mischa","JelenaSparic","logeshpaul","victusfate","Avaruz","hendrolaksono","jeffgw","geeksourcer","wizardwerdna","elliottgoodwin","speric","alextucker","chawei","danieltreacy","blackdoc","mgp","martinemde","tsolomko","six","jayeshinho","jakeguza","bleikamp","ryanpao","ddacunha","mrb","mamdohreda","colinvivy","piyushchauhan2011","correcto","mawaldne","swishstache","Rafe","neelvad","seriouscomedy","trendsetter","beenhero","Amper","ryanKelleher","muehlburger","marktraub","rugers285","ArtemMyagkov","oscardelben","yvesvanbroekhoven","citrus","dennismdel","SupplyBoys","italiano40","darokel","Orton","lobr","sdrkyj","ggppwx","AngeloR","zergmk2","premjg","afaolek","tobrien","fash","susanmccormick","maoer","dtrebbien","tahhan","mzahir","matthewborn","patriciomacadden","nawaidshamim","JudePea","mehrzad","ericchen0121","dominiclovell","antonr","Fir2011","mhenke","bloudermilk","PrashanthRaghu","thecoffman","hozumi","jed","baguo","grumpycola","rht","timerider","thiagocaiubi","carlop","mibbo","Imados","frankwiles","efeerdogru","realpeterz","jordanndaviss","bytecollective","brianritchie","cndv","dfd","panckreous","mike762011","MalsR","case27","mono0x","jonassm","asaaki","jhnmn","huhong","TRAVEL4FREE","marcelomilo","nmudgal","coldFox","tonisan","ctubau","danlister","apurvrdx","armandogalindo","jeremysolarz","mustardhamsters","bfirsh","dmmalam","a4extra","ezkl","michaelowen","sujayhuilgol","chadlomax","dazagrohovaz","DeveloperAlex","c1c2ai","trey","joekhoobyar","jianinz","ugtkbtk","paparts","netoxico","TeacherPond","becked","tuyennguyencanada","motord","eklipse2k8","ZoomZhao","samqiu","makiman","purban","cyberorca","imonyse","jeemar","gazay","davejacobs","bwvoss","Bensign","dann","nickaoscarter","gane5h","glowindark","arielo","joannecheng","hughhefner8","broccolini","bherrup","starmbl09","tothebeat","sabram","qianthinking","iowish","lalitnama","ejr3gan","denis-bykov","cbmd","cleercode","batasrki","dstanek","markmarch","suprsankr","rcroxyosox","treeder","baddogai","froots","haoshubin","uirusan","dzhulk","aaudu","lekkerduidelijk","mcchang","pgebhard","scottgrey","dbergey","carlitosway0","cdadia","lepture","b1naryth1ef","janjohannesson","AndreyChernyh","dynjo","maxstepanov","JonRowe","attymannyluna","cooper1388","vjkaruna","fdd","GoranHalvarsson","Rajesh1213","Triopticon","ramazanayvaz","datl","jeo4long","zeroonnet","cdog","abstractj","anirudh24seven","danielwrobert","laparicio83","balupton","austymenko","avdezine","danieldyzma","jasonbuck","amasad","sideshowbandana","BrianStorti","supercleanse","TheThumbsupguy","alexcsandru","Stdubic","betawaffle","minamipj9","kylpo","ricardovaleriano","adrijlee","hlh59","chazlever","krmboya","vanm","MIchaelChua","benbarclay","mdjohnson1","JeffBrown711","rishabhsrao","dustMason","theLearningChan","malandrew","sac2171","Omerooo95","rnpinc","ivandro","syncopated","arnklint","jayeola","JJMoy","rahman86","josephmisiti","jfilipe","cjcnance","KingsgateRas1","chambaz","sjamayee","aelam","imanzarrabian","gaochunzy","orangix","goopi","michaelkrisper","deonomo","codejoust","aroc","cavalle","johnnyhuman","alexbg","jshr","ssnau","caryhaynie","timmolter","spadin","mlong168","gurmeetkalra","new-top","trondga","maikeru","jamster","jsy","tommyhendr","Hasgaroth","ZephyrSL","rjyo","zephyrpellerin","neilparikh","beata","makestory","haneez","mdhabib","PaulKinlan","cheche","tyshen","bhxtl","osujikenneth","ketiko","frknlgn","katRHS","igrigorik","marianay","detroitexposure","Surgo","mindgap","hiroyukim","DilipSabat","espengra","soubhiks","jaybrent00","tikva","jessestuart","mtanas","redserpent","shukydvir","leoy","stylecoder","coryfoo","prashanthbr","robots2020","sidna","cmes","johndel","diogobaracho","markiBOY","tvkonline","shiawuen","dipak8959","rfosta","nickgoodfate","RiverBridge","fay","benza","karichel","psychicin","gag0q","kl365","nmccarthy","julien51","amylv","abinav","bramsdenteuling","AnonymousCow","ioncache","iesta","cemsisman","Ade147","seamusabshere","doublethink","claudio-alvarez","bird5230","anilanar","debugging","rupakg","ShaneIsley","wicz","roastgoat","dilhamsoft","sh4dy08","roboteti","pubnub","TRMW","rahulsingal14","sanjayts","nhunzaker","baldrailers","Korrawit","frode","thorsteinsson","iveney","endel","jose152","ZhengYang","Keeguon","rahul2011","iainp999","maveonair","SirCodington","sclm","snapette","dshefchik","manderson2080","djohnston08","pirateking","giftedsam","iyerlabz","alejandrolechuga","janela","BxCx","mifan","enestanriover","kernelfail","prinxezzlja","macknight","Girllovers","AquaGeek","charleskline","Foggybtmgirl","ryanatwork","plainspace","stw","naiquevin","huangjunwen","valeh","carhartl","roycefu","tmlee","williamrh","ZachWick","zhuangbiaowei","Baker1904","Skrizy","NageshJatagond","vrillusions","geekrohit","satlavida","cleichner","jhenke","beingnessa","mcgoooo","Bloophub","punklibrarian","abelmartin","take-cheeze","petersonferreira","maxwell","OsvaldoArmando","rclosner","jccorrea","koyonote","denniscking","chanduch","sd2438892","geekard","e3matheus","mbialon","yarvin","rvhani","Predoff","darkness","savethewaves","sdoering","vaporrumors","nevayeshirazi","andysamona","rkwofford","messi1988","anibe","yesimroy","tpiranav","plopezbarbosa","peterkinmond","unitysoe","mjw56","johannchiang","chrismatthieu","yasirmturk","zer09","mparrenovilla","nataliav","lucasdavila","volomike","echannel-leon","rufoni2003","ramonatravels","cpkennedy","NKjoep","witalewski","lonre","stecb","josal","Zul83","Niflheim","ChanCoolKat","umesh991987","marvin","altnerd","insparbo","kmcd","marcofranssen","defiantredpill","BarcelonaRecords1","hbtvieira","kmarcini","lea22","orbotix","sdasinglesclub","buffer","shauncr","ejenkins","yahyaman","burakdd","fjordan","cwholt","yudi-rusmawan","eldios","vascoconde","niky81","mcdave","mcobery","ramen","thePapacy","alexandresaiz","sleighter","riyalein","johmas","chriskelly","andref5","AppSlap","celikmus","bitlag","kareem-abdelsalam","joshuamckenty","jn123456789","egonSchiele","stylepraise","shaw1337","gordonmzhu","erikkallen","ermustaqbal","denisjacquemin","msgehard","robertodecurnex","dcrall","ahto","charleseff","thejspr","twilson63","franciscosouza","sam7wx","jwbecher","eklitzke","serho","vbonillo","jackdracon","brahmasta","giulianoxt","rayelward","jeffw516","jewelrydeveloper","pengper","fyamnky"]} \ No newline at end of file +{"users":["jnewland","pjhyett","cnix","dustym","choonkeat","nakajima","mtodd","bumi","takeo","bmizerany","zachinglis","evilchelu","manalang","mmmurf","hornbeck","mindy","therealadam","vanpelt","alexcharlie","seaofclouds","luke0x","rphillips","Caged","kamal","eventualbuddha","bigfleet","jacques","tim","KirinDave","ddemaree","benschwarz","cpjolicoeur","mmcgrana","mdarby","anildigital","ryanahamilton","entangledstate","coty","broughcut","atduskgreg","liz","brianleroux","kballard","haraldmartin","walf443","ss","elliottcable","joshuabates","eastmedia","mattman","imajes","saimonmoore","hoverbird","Fil","nesquena","membogg","ayn","jbritten","peterba","nick","willcodeforfoo","mojombo","rsl","caffo","khigia","BrianTheCoder","tkofol","dstrelau","sant0sk1","joshuaclayton","cee-dub","tooeasy","quirkey","eduardo","raja","timshadel","rsanheim","tokumine","statik","mattly","xilo32","yaroslav","sr","hchoroomi","lgn21st","purzelrakete","seven1m","douglasjarquin","ihower","freels","adamstac","fauxparse","duncanbeevers","jasonwatkinspdx","spohlenz","joaovitor","mikedamage","alainravet","whomwah","ooodigi","nerdrocket","zmack","mulder","kivanio","vlandham","yizzreel","ryanb","cho45","sandro","ratchetcat","jgross","jasherai","jw-00000","zubin","loe","fred","stuartsaunders","skippy","dgiunta","monde","charlenopires","devn","softprops","madx","lukebayes","blech75","newtonapple","edbond","ncr","boboroshi","holtonma","jhubert","libin","bastos","nullobject","croaky","trevorturk","fabioespindula","nick-b","sikachu","schacon","harper","envoked","guitsaru","brianmario","subwindow","Arthur","sob","tiagowhite","jasontorres","lawrencecurtis","bterlson","mattsears","patrickdet","academician","markpuck","mokolabs","baron","arikan","ryanking","willemderu","entombedvirus","cyx","galfert","heycarsten","shallwelin","sbfaulkner","jaehess","jonathannelson","helo","schwabsauce","gusgollings","adzap","joefiorini","trestrantham","hairballopolis","thetacom","genki","guillermo","tekin","nextmat","hans","colin","Roman2K","kakutani","qrush","hpoydar","goodtouch","LimeHat","grobie","tosh","epitron","inkdeep","voitto","kvnsmth","darrenhinderer","njonsson","bianster","shanesveller","technicalpickles","erikj","lancecarlson","briandoll","digitalextremist","KevBurnsJr","slim","clarkware","jasoncarter","Krishna","kirk","tinogomes","wfarr","intabulas","hardbap","aziz","atmos","robbyrussell","codeslinger","evandrodutra","martinisoft","smtlaissezfaire","larrywright","joshknowles","evanwalsh","jchris","jqr","jbarnette","rafaelss","dsboulder","res0nat0r","sunfmin","topfunky","NigelThorne","supaspoida","yipstar","davidwparker","jinzhu","johnpaulashenfelter","joshua","agile","cored","visnup","calendaraboutnothing","eoin","deepak","dsparling","oleganza","pengwynn","christophermoura","jgagne33","mhutchin","matsuda","zak","railssummit","taylorrf","peleteiro","greatseth","blackwinter","rberger","elim","eric","collin","henryhamon","shinzui","tongueroo","vanntastic","swdyh","peterpunk","kabnot","ozeias","mwilliams","kamipo","bezugen","arthurgeek","fairos","webmat","bonachela","foysavas","mojodna","dwabnitz","fuzzytone","anthonybarone","mkhl","botanicus","kavu","jhsu","delameko","uhhuhyeah","jcf","nrk","brycethornton","maxdevel","ashleyw","zegomesjf","rjspotter","tjweir","slawcup","pjdavis","ngerakines","rwc9u","aka47","Bregor","oristian","JackDanger","amatsuda","josespinal","sleistner","jdp","mkrisher","rbarazi","mattmatt","luisbebop","rcrowley","anotherjesse","semikolon","albertoperdomo","marcric","pardel","rads","altamic","badcarl","Marat","rfwatson","jesseclark","iamwilhelm","rtyler","kovacs","alexvollmer","rkh","joelparkerhenderson","shayfrendt","pcalcado","marcelinollano","jngo","robertpfeiffer","ukd1","jpablobr","alfredwesterveld","matthewford","haws","visionmedia","ekinci","hellekin","paulgrunt","seouri","pauldix","CodeOfficer","manuelmeurer","kristopher","mattyoho","neilmock","igorgue","miyagawa","akm","ieure","mwunsch","kairichard","leah","Siansor","kiko","breily","elmer","vshih","samsoffes","graysky","leandrosilva","blinton","ashchristopher","bensie","yura","adamaig","erotte","fernholz","jamesrose","michaeldv","raganw","sstephenson","capotej","BeamerCola","damon","amiel","iamstillalive","rduarte","jney","rymai","jtadeulopes","caironoleto","talboito","alexmchale","davglass","lian","rondevera","shashi","dira","GreenDragon","yonkeltron","jeanmartin","shelling","tehcurtis","gnlnx","joshng","bartuer","bruce","adamv","yasu","cjmartin","jarodl","jonatas","ronnieliew","polly","nonsequitur","marclove","arya","splattael","mcfearsome","skorecky","jaygooby","iande","brosner","brett","jivko","edwingo","hunab","zipme","mnaberez","nimo","justinlilly","howiworkdaily","johnbender","jezdez","petercoulton","juliend2","dhou","enricob","gigamo","markstephenson","gregnewman","rubify","spagalloco","Xac","attack","esycat","webiest","ogijun","travisjeffery","moongtook","meritt","stephencelis","doowttam","mrchrisadams","riethmayer","utahcreative","bkrsta","program247365","montylounge","renatocarvalho","NYiPhoneDeveloper","novas0x2a","rblackwe","basiszwo","deminew","stan","sgarza","epocRepo","georgi","radamant","munjal","jgchristopher","macro","Gig23","diogenesis","poshboytl","pablete","mpreath","ujihisa","Sixeight","andrewhavck","alexch","skateinmars","darwin","EvanBurchard","cytobank-matthew","kidpollo","kjwierenga","psyche","antrover","andrehjr","iamsolarpowered","horaci","rishav","joshbuddy","rlr","wnetoa","simplabs","alex","dustinwhittle","samvincent","memiux","ktlacaelel","rubysolo","chillicoder","teepark","tonyl","hal0thane","james-baker","stuffmc","sepposade","jastix","vianaweb","FDj","auser","sacrosby","ascarter","tdmackey","julienXX","adurity","carlp","asenchi","mazebuhu","caseyhelbling","mikereedell","verbal","satynos","cloudhead","packagethief","bsy","robhurring","davidx","foxscan","detrain","jawspeak","jschoolcraft","lokeshk","yashh","jrsims","moorage","thisgirlangie","jdamick","dsully","gregf","sjain","hughdbrown","webandy","fairchild","wesbillman","mvj3","scrogson","gtcaz","rcarver","superfeedr","didenko","JonRohan","miamiruby","nelix","rvwoens","coiscir","javan","haru01","dastels","artificemm","docgecko","electricgraffitti","detansinn","chunzi","m3talsmith","priteau","jptoto","amerine","jyr","zodman","chipski","christhomson","dayne","mmalone","ccsmail","jeffp","natebunnyfield","f1vlad","joshbutner","sferik","johan--","joahking","aaandre","dennyhalim","gregcopenhaver","teknopartz","CodeMonkeyKevin","zgchurch","vangberg","benaldred","kaichen","ap0ught","jnbn","holywarez","dambalah","juarlex","nevilleburnell","symlink","mdwrigh2","agibralter","kognate","sroegner","daksis","philipefarias","ajsharp","mwhooker","kalkov","synaptic","wolverian","rnaveiras","jjcall","matthewfl","mathieuravaux","temojin","graphicsop","m7d","bbuckley","gabrielfalcao","mamuso","deepthawtz","marksands","tarellel","josh","KieranP","mrkn","raul","sd-fritze","dapi","jaryl","kylebrowning","jimpick","nikolay","joshnesbitt","maggit","xinuc","marciotrindade","bradchoate","bs","peterz","wvl","csamuel","jamesarosen","joshourisman","kacy","martinciu","osde8info","aliem","gabrielg","jaknowlden","evanfarrar","mivaul","shock","nicksergeant","lucian","Asciant","thoas","bicherele","Csele","uamuamuam","i0n","benhaan","jodosha","JonGretar","evolve2k","jondruse","polera","lr","badboy","mikelim","irfn","tangtao","st3f","thegeekbird","tweak","hackedunit","christophsturm","tobi","fvonx","marcoow","pcreux","vapidbabble","reidmix","jherdman","chrisdrackett","overture8","jits","daz","lazzarello","asoltys","Hates","mgomes","tlrobinson","bluehavana","janl","sah","gussan","brynary","adolfosousa","cypher","wintermi","bemurphy","neduma","nowells","hojberg","muddana","juvenn","jobscry","Sutto","arjunghosh","rorrego","jwilkins","nrolland","marcinbunsch","neophiliac","ranza","dusty","hoggarth","sriprasanna","davidhalldor","josephsofaer","rbriank","andreisavu","dennmart","jrmehle","whistlerbrk","shaper","jrivero","gloubidou","denzuko","dmillar","thisivan","mkuklis","christianhellsten","johndagostino","jots","apillet","qdonce","javisantana","mikeauclair","digx","coreyhaines","rudionrails","jpbougie","brixtonasias","onesunone","bry4n","rhymes","liangzan","kvbik","jongilbraith","visola","suresh","bastih","andrem","r38y","mynyml","bitflut","danielbru","3rdman","cypriss","esdras","benpickles","ducky427","knobe","elkinsware","tpitale","foca","simonw","mrduncan","Xenome","markisisme","al3x","futoase","tomaski","meddah","shakhan","nailor","adamcooke","Hoodow","klacointe","rtomayko","kolber","cashyboy21","luddep","closer","riggasconi","aroscoe","kurotoshiro","angusb","binarydud","chrisb","gvarela","sukhchander","gnufied","Cutpastecreate","elg0nz","ijayasin","christianchristensen","strange","leandro","dirs","zevarito","jpf","mendelbenjamin","brianherbert","yuritomanek","latrommi","tokuhirom","qhoxie","rust","ericholscher","lxneng","lorchaos","rchk","ches","frnz","filipealvesferreira","lucasefe","paulwalker","httpdss","gdrage","jakalada","claudine","joshamos","fgrehm","rdamen","yaroot","jugyo","messa","digitaltoad","orph","galex","boriscy","rafidude","darashi","angrytuna","AdamN","paydro","rimenes","jacqui","sfkaos","dgalarza","imakado","moomerman","Ashernor","pedrodelgallego","BenWard","bashwork","axelator","zeroLaming","toothrot","pake007","sevas","btoone","dallas","danielrmz","kret","nouse","mdaisuke","fmborghino","ibolmo","zetafish","drewlesueur","dacoz","ciju","noise","salax","jotto","toastdriven","mcroydon","tfreitas","ccheever","sxlee87","jmcantrell","acts-human","bastienlabelle","terrbear","mikhailov","joshdavey","hecticjeff","garru","TBD","vancaem","jasonmc","ariekeren","shreekavi","chrisco","michaeltsmith","hmarr","binq","jakedahn","stonegao","jperras","finn","kerberoS","firman","leeky","gamesthatgive","jchaney","timonk","philippWassibauer","danblick","itspriddle","threedaymonk","michelson","tilgovi","jmchambers","jhindle","mtoledo","nhocki","mrtazz","the-architect","schallis","kneath","gustaf","ejdraper","logicaltext","levycarneiro","ktheory","robb-broome","matflores","SleepTillSeven","bencochran","tmm1","infixfilip","jemerick","edouard","ethangunderson","beanieboi","jwelshiv","MBO","gitmate","rok","santosh79","yaychris","BenHall","sirprize","abraham","heatxsink","joshwalsh","grimen","adamramadhan","mzlittle","demet8","jrpz","jeanpaulcozzatti","mtarbit","jstorimer","cacciaresi","r3trofitted","bennyfreshness","sinetris","jrun","unspace","rgarver","gabrielmansour","jnstq","hgillane","cherring","dceballos","kstewart","donnykurnia","plukevdh","diogenes","joshbrown","yolk","bitfyre","raphaelcosta","esneko","yuriyvolkov","unthinkingly","chad","quinn","wmerydith","donspaulding","notthinking","ikarius","jbr","yoshimax","silverfox","jmwinn21","extraordinaire","hartym","mattonrails","vertis","tommg","weilawei","denniscollective","72616b657368","sork","JamesHayton","kennethreitz","kurko","potomak","mmatuson","amiri","dandean","syntaxritual","holman","alimills","hammer","jnunemaker","risico","fritzek","theflow","dnozay","steshaw","bobanj","webtechnologist","PatrickTulskie","kares","miksago","fuJiin","tommychen","simonreed","foremire","LFabien","bagwanpankaj","bummytime","devinus","rays","krisb","Lymskos","zonble","aantix","vorn-coza","techfolio","albybisy","tcol","jufemaiz","pvdb","pcdavid","danopia","chrislerum","peterto","laberge","smokyonion","guinascimento","longhorny","gabe","kbuckler","durran","tricomsol","bananastalktome","jordanbreeding","c9s","alvin2ye","NV","jwachter","pulni","jjungnickel","f440","ratzefummel","krmdrms","mauriziodemagnis","inffcs00","bobthecow","bengold","gciampa","akshayrawat","said","hawx","samuel","michael","ruyrocha","fmmfonseca","chiragrules","raid5","kamui","hsbt","svenfuchs","l15n","steves","pjaspers","chinmaygarde","scotttam","jeekl","kfinlayson","admc","kadel","t9md","meskyanichi","timocratic","timhaines","Marak","openface","tlossen","tekacs","jasonpa","nightsailer","technoweenie","chrismear","benatkin","lloydpick","ryanmoran","Tomohiro","aslam","mineiro","gdagley","rociiu","AieshaDot","kijun","robertjwhitney","macek","willrax","VinylFox","rupa","smallacts","truemilk","alanhaggai","mitchellhislop","cobracmder","xoebus","gretch","juretta","mgsnova","invadersmustdie","tedb","jedschneider","maikelgonzalez","bdigital","raycmorgan","zenmatt","thrashr888","dug","avdi","chaifeng","bblimke","vivienschilis","fd","luckiestmonkey","Locke23rus","berlin-ab","myfreeweb","windmill","briankeairns","ricardojsanchez","angelov","cbmeeks","maetl","thepug","gluckspilz","jamin4jc","netzkontrast","mager","jarquesp","phmongeau","jdennes","danishkhan","bensonk","nano","kjbekkelund","flyerhzm","kanashii","mairon","sekimura","joericioppo","bertzhu","mislav","jroes","jenishkottaram","peterwald","alterisian","artisonian","bcherry","jbw","haifeng","stockhausen","bvandenbos","mlbright","consti","simonoff","suzukimilanpaak","ctrochalakis","acrookston","gnomet","dexterdeng","aderyabin","hwijaya","catman","vesan","frederico","zzak","IsraelAgNouhYattara","mikecampo","dsueiro","reeze","stevemckenzie","avelino","stinie","thbishop","sotakone","srobbin","krongk","yaotti","tobym","robhudson","ryanbriones","jcpbacon","zhengjia","awilliford","moubry","rm","cyclades","mikethomas","dkeskar","brianlee","panggi","durbin","fmela","Shekar73","infynyxx","sorenmacbeth","unindented","kevinpanaglima","krachot","dvyjones","joshOiknine","arkx","rrichards","error400","lagsalot","JSilva","twitoaster","rbrant","shaiguitar","jmorganson","electronicbites","fredwu","jlertle","DHoffm","Tyrant505","CodeBlock","jgrevich","fpauser","lastk","scifisamurai","runawayjim","ryana","amanelis","ponzao","michelmelo","edsinclair","vshvedov","marchdoe","devi","allanberger","alup","tventura","cobra90nj","berkerpeksag","neviim","westoque","Rud5G","cjwoodward","gildo","1ed","Axispower","icaruswings","DasIch","fredpalmer","al3d","codylindley","Bushjumper","phoenix24","pcora","welterde","VijayM","sr3d","hotoo","nwjsmith","brianjlandau","hemanth","johnknott","MatthewCampbell","mwmitchell","asymmetric","glitterfang","ptn","kraih","ono","myuhe","jque","GVRV","d-r","danthompson","zerd","selman","elsewares","unes","Debadatta","monoceroi","gchandrasa","darknighte","jreading","kron4eg","minad","cdmwebs","inuki","nabeelmukhtar","hornairs","goyox86","gosuri","revans","michaeldwan","helianthuswing","christiansmith","kidrane","melborne","darkhelmet","ikbear","blowmage","maxjustus","sebleier","mattb","GeoffTidey","warehouselabs","german","itsmeduncan","dneighbors","fireflyman","mattheath","madwork","marcosvm","rafmagana","rafaelgaspar","arden","flyfireman","saggim","mnelson","etehtsea","xantus","byrongibson","mopemope","gillesfabio","ZeuQma","tkaemming","jackhq","connrs","jpang","amorton","rubyorchard","ghg","remiprev","michaelparenteau","harikrishnan83","eddieringle","krekoten","andmej","mak1e","seungjin","christofd","gfx","mechanicles","drak","olkarls","thheller","devreq","nanek","laripk","jefflab","rick","tapajos","denmark","richardiux","dfbrule","yrosen","ebruning","bts","AzizLight","audy","ballantyne","huerlisi","codepuzzle","khasan","nikochan","pmh","jexchan","designrelated","codykrieger","edorcutt","iamacourser","rowedev","lardissone","wxmcan","threez","cjkoch","gigq","marugoshi","tianyicui","earcar","fadhlirahim","ccollins","adanmayer","tpeden","jsocol","TaurusOlson","jaksys","leandrocg","rube","richard6363","emddudley","JensNockert","he9lin","tmilewski","rishikulkarni","wescleymatos","mootoh","ganesan","rodrigosdo","tonktonk","skaufman","jurajpelikan","fcurella","vic","eston","hiteshmanchanda","tsigo","plang","avsej","kanzure","johnturek","percyperez","vorushin","jakemcgraw","fushang318","juniorbl","alanandrade","kenn","mitchj","webdestroya","supairish","seanhellwig","guilhermechapiewski","rainerborene","zonovo","vertocardoso","vinioliveira","hotchpotch","pch","jeffself","markmhx","Archonyx","indrode","mmaheu","sigardner","kulesa","phsr","ericflo","andyferra","shurizzle","renatoelias","klandergren","fabiomcosta","johngrimes","gleuch","ecksor","lucapette","achiu","benbjohnson","selvan","ey0t","bray","komagata","longda","pixelballistics","a2ikm","hoffmann","Rich-McGrath","abelperez","galvez","mkempe","amiridis","sfgirl","makeusabrew","dragoscrintea","grzegorzkazulak","jcmuller","JustinCampbell","dpree","jquattrocchi","sri","neonsunburst","danielemilan","poseid","chancegarcia","Prog4rammer","HTApplications","cassiomarques","andrerocker","SixArm","andrewsmedina","gaubert","parabuzzle","diogosantos","seanmccann","particlebanana","CloudMarc","majtom2grndctrl","javichito","jk","arunagw","esfand","plentz","caueguerra","albertoleal","adrianoalmeida7","guilleiguaran","donaldw","TaopaiC","stephenbreen","dissolved","ikaros","andrefaria","aporia","benlambert","coolgeng","kitop","mitukiii","kayaman","sLLiK","vmseba","nkchenz","vs","jtsay","arlolra","adaoraul","jpadvo","joshaber","ebeigarts","allenwei","nervetattoo","bostonbasso","saki","ajbolanos","seppuku","sonicgao","ainvyu","cbrammer","hostsamurai","vatrai","acadavid","danengle","paddydub","noqqe","zporter","namley","aaronky","rdegges","weatherpoof","tomxander","skyfive","Becojo","saysjonathan","awayken","nataliepo","sednova","mrigor","blatyo","cwaring","sshirokov","kam","joshfng","martintel","skorks","vamsee","Lispython","hansef","seenmyfate","kitt","Markitox","Antti","albertz","samverekar","fredrikmollerstrand","thesp0nge","kdepp","ptzn","wusher","phongvh","sayz","qbyt","mkomitee","mlen","jmanon","duk42111","Naoya-Horiguchi","brianlovesdata","dreamcat4","pxr","neiltron","tauil","jondot","phonx","mininaim","6","Mattia","blambeau","DougTabuchi","idorosen","rachelmyers","capthy","liwh","brunoarueira","DrPheltRight","csanz","scott-stewart","jacobrelkin","shaliko","AAinslie","jamierumbelow","abukhait","scottlabs","tjhanley","mmonis","mrkamel","christiancurland","clyfe","thecocktail","taicki","stephenallred","zires","acadopia","MateuszWijas","zentrification","touchinspiration","reddyonrails","mportiz08","krizzna","nmelo","andrewsardone","kotp","rossta","anups","jeffcarroll","efritz","jpogran","jdp-global","hyperbolist","bf4","lenzcom","ardwalker","L42y","sosedoff","Ajmal","abhishekmunie","kbaldyga","kamzilla","delonnewman","peter-murach","sputnikus","benwr","wijet","marlonglopes","TheFox","kblake","senny","azer","milann","ipavelek","elitau","zyan","farnhizzle","hamzakc","Kudu","arunjitsingh","azizur","kitenge","eatcpcks","lusis","gvt","jasonmelgoza","jichen","Zeelot","albertobarrila","procyon","Wackybob","curbina","goosetav","ghindle","vicmiclovich","klebervirgilio","offby1","kaaliputra","Silanus","scopevale","netzflechter","poutyface","raulmangolin","dmshann0n","cricketgeek","VikramRao","mungomash","bradheitmann","kainosnoema","iromli","jwelty","sayem","tobsch","travisanderson","lightyrs","muellmat","cameronmcefee","hector","kjetilod","kinabalu","jglee1027","andrew","metiny","dnurzynski","redpanda","necroua","karmi","lgaches","mabonyi","vyatri","korczis","67ideas","pcunnane","dpbus","ashneo76","joshmattvander","liangcw","vineetbnagaraj","jmatraszek","mkitt","pmandia","yassersouri","yudmiy","arthurix","osebboy","baant","programaker","busticated","emilpetkov","mrdg","DamianZaremba","malikbakt","georgecalm","danielribeiro","Dirklectisch","sup3rcod3r","raeffu","jitterizer","hectcastro","rudolfochrist","excid3","lampr","voidnothings","tsenart","nt","Amokrane","levicook","qnm","technolize","aodag","sansumbrella","MindTooth","scott2449","X4","mrcaron","randomor","liuzhoou","marciogm","ardiyu07","dannymcc","nfedyashev","batuhanicoz","cognominal","sax","vybs","richardrasu","xcoderzach","lucamaraschi","mohnish","pcardune","madari","TimothyKlim","nbucciarelli","jwoertink","freakyfractal","enc","lite","aanoaa","tomvleonard","mikaa123","jeanregisser","scheibo","Psli","einux","konputer","dzello","Nilloc","cmeiklejohn","georgemandis","tembamazingi","mconnor","nerdmom","spearse","larsburgess","burnto","franciscoj","sleparc","rafaelcaricio","ajray","chacha","hasanyavas","pedrolopez","timknight","jacksinn","huacnlee","justinbaker","aswadrangnekar","Captainkrtek","DrewFitz","sleepdev","tharkoos","youwannaknow","doud","tmcgilchrist","chlayverts","thomvil","digitalpardoe","sposborne","parkerl","carlosdelfino","omgitsads","tuhin","RLovelett","eregon","sanxac","ezuelectrock","tshauck","mtsoerin","hiromitz","araee","bogdanmuresan","kloderowski","msarvar","drydevelopment","1anre","icco","joestraitiff","jmileham","Refreshe","tansu-uslu","hoverlover","handyjq","xlarsx","bojovs","ajmi","fuzzyfox","lexxx233","diversen","fabianoalmeida","martinlindelof","srih4ri","adminian","pitr","ffontouras","Kjata1013","thasc","newtriks","ashbaker","Ameero","zahir","sunpech","EdlinOrg","snstoyou","nope","elemel","smly","prathe","P6rguVyrst","srisnsris","s3w47m88","semicarry","hidde-jan","rowoot","TBush","AXJ","stevedeneb","adarshp","RootSpeaking","kevasdf","Purandhar","hyesushin","DenDen1337","JBean","amhnews","aseba","diegopacheco","macluq","tonycasanova","shaoyang","rmdort","morganwatch","alexandersanz","LinGmnZ","sjh","dalpo","brentsmith","Zolomon","liveink","diulama","tanelpuhu","rcarrieche","dte","RyomaKawajiri","punytan","yoquankara","haoqili","knowncitizen","dinhkhanh","psalami","krishnanagaraj","cespujunk66","pcurry","wyattdanger","shingonoide","ngoatvm","eriknrd","philfreo","Rahulitsmca","gohavefun2","bertjwregeer","nmumen","aumgn","dobcey","davidohalloran","jowido","marksteve","dabio","rmicoy","madewulf","bosism","Tipertuba","PushinPixels","tgdn","shariefsk","m0nkey","henryleacock","r3clus3","anagri","mlareo","neil477","kdonovan","yamunamathew","berlinbrown","antawara","Cotizado25","gjorquera","Dushyanthkinjarapu","laCour","oooo723","roblecca","pmaingi","gcampbell","robeastham","jgdreyes","Caustic","morgankeys","chesleybrown","zzazang","adanoria","millr","MikeBott","keitsi","zlangley","avalanche123","ilot3k","bendiken","jeheald","ashsmithco","mycroft","lachezar","borahMoloy","cliffsull","goldenandroid","KuraFire","ngpestelos","troessner","Arnab1401","ujjwalkhanal","qadir0108","ihd2911","Firsh3k","lifeisrisky","nevans","munro9","fagiani","lojikbomb","chrisledet","ariel","marcosanson","rem","shivakantmanch","MMLK","skattyadz","mhaidarh","joedynamite","dimasaryo","trico","shaunmichael","vs4vijay","afj176","stevennathaniel","gujiao","olamedia","giupo","whatrocks","stakisko","mhockelberg","shalo","devaraj","attomos","xeneizeyorugua","ryanlecompte","jrk","deryldoucette","jacknagel","togetherville","zypher","kyledoherty","yakomoca","sastha","KMASubhani","tejasc","ErikRHanson","ghais","dontcare4free","streeter","ambreenhussain","mischa","JelenaSparic","logeshpaul","victusfate","Avaruz","hendrolaksono","jeffgw","geeksourcer","wizardwerdna","elliottgoodwin","speric","chawei","blackdoc","mgp","martinemde","tsolomko","six","jayeshinho","jakeguza","bleikamp","ryanpao","ddacunha","mrb","mamdohreda","colinvivy","piyushchauhan2011","correcto","mawaldne","swishstache","Rafe","neelvad","seriouscomedy","trendsetter","beenhero","Amper","ryanKelleher","muehlburger","marktraub","rugers285","ArtemMyagkov","oscardelben","yvesvanbroekhoven","citrus","dennismdel","SupplyBoys","italiano40","darokel","Orton","lobr","sdrkyj","ggppwx","AngeloR","zergmk2","premjg","afaolek","tobrien","fash","susanmccormick","maoer","dtrebbien","tahhan","mzahir","matthewborn","patriciomacadden","nawaidshamim","JudePea","mehrzad","ericchen0121","dominiclovell","antonr","Fir2011","mhenke","bloudermilk","PrashanthRaghu","thecoffman","hozumi","jed","baguo","grumpycola","rht","timerider","thiagocaiubi","carlop","mibbo","Imados","frankwiles","efeerdogru","realpeterz","jordanndaviss","bytecollective","brianritchie","cndv","dfd","panckreous","mike762011","MalsR","case27","mono0x","jonassm","asaaki","jhnmn","huhong","TRAVEL4FREE","marcelomilo","nmudgal","coldFox","ctubau","danlister","apurvrdx","armandogalindo","jeremysolarz","mustardhamsters","bfirsh","dmmalam","a4extra","ezkl","michaelowen","sujayhuilgol","chadlomax","dazagrohovaz","DeveloperAlex","c1c2ai","trey","joekhoobyar","jianinz","ugtkbtk","paparts","netoxico","TeacherPond","becked","tuyennguyencanada","motord","eklipse2k8","ZoomZhao","samqiu","purban","cyberorca","imonyse","jeemar","gazay","davejacobs","bwvoss","Bensign","dann","nickaoscarter","gane5h","glowindark","arielo","joannecheng","hughhefner8","broccolini","bherrup","starmbl09","tothebeat","sabram","qianthinking","iowish","lalitnama","ejr3gan","denis-bykov","cbmd","cleercode","batasrki","dstanek","markmarch","suprsankr","rcroxyosox","treeder","baddogai","froots","haoshubin","uirusan","dzhulk","aaudu","lekkerduidelijk","mcchang","pgebhard","scottgrey","dbergey","carlitosway0","cdadia","lepture","b1naryth1ef","janjohannesson","AndreyChernyh","dynjo","maxstepanov","JonRowe","attymannyluna","cooper1388","vjkaruna","fdd","GoranHalvarsson","Rajesh1213","Triopticon","ramazanayvaz","datl","jeo4long","zeroonnet","cdog","abstractj","anirudh24seven","danielwrobert","laparicio83","balupton","austymenko","avdezine","danieldyzma","jasonbuck","amasad","sideshowbandana","BrianStorti","supercleanse","TheThumbsupguy","alexcsandru","Stdubic","betawaffle","minamipj9","kylpo","ricardovaleriano","adrijlee","hlh59","chazlever","krmboya","vanm","MIchaelChua","mdjohnson1","JeffBrown711","rishabhsrao","dustMason","theLearningChan","malandrew","sac2171","Omerooo95","rnpinc","ivandro","syncopated","arnklint","jayeola","JJMoy","rahman86","josephmisiti","jfilipe","cjcnance","KingsgateRas1","chambaz","sjamayee","aelam","imanzarrabian","gaochunzy","goopi","michaelkrisper","deonomo","codejoust","aroc","cavalle","johnnyhuman","adimitrov","jshr","ssnau","caryhaynie","timmolter","spadin","mlong168","gurmeetkalra","new-top","trondga","maikeru","jamster","jsy","tommyhendr","Hasgaroth","ZephyrSL","rjyo","zephyrpellerin","neilparikh","beata","makestory","haneez","mdhabib","PaulKinlan","cheche","tyshen","bhxtl","osujikenneth","ketiko","frknlgn","katRHS","igrigorik","marianay","detroitexposure","Surgo","mindgap","hiroyukim","DilipSabat","espengra","soubhiks","jaybrent00","tikva","jessestuart","mtanas","redserpent","shukydvir","leoy","stylecoder","coryfoo","prashanthbr","robots2020","sidna","cmes","johndel","diogobaracho","markiBOY","tvkonline","shiawuen","dipak8959","rfosta","nickgoodfate","RiverBridge","fay","benza","karichel","psychicin","gag0q","kl365","nmccarthy","julien51","amylv","abinav","bramsdenteuling","AnonymousCow","ioncache","iesta","cemsisman","Ade147","seamusabshere","doublethink","claudio-alvarez","bird5230","anilanar","debugging","rupakg","ShaneIsley","wicz","roastgoat","dilhamsoft","sh4dy08","roboteti","TRMW","rahulsingal14","sanjayts","nhunzaker","baldrailers","Korrawit","frode","thorsteinsson","iveney","endel","jose152","ZhengYang","Keeguon","rahul2011","iainp999","maveonair","SirCodington","sclm","snapette","dshefchik","manderson2080","djohnston08","pirateking","giftedsam","iyerlabz","alejandrolechuga","janela","BxCx","mifan","enestanriover","kernelfail","prinxezzlja","macknight","Girllovers","AquaGeek","charleskline","Foggybtmgirl","ryanatwork","plainspace","stw","naiquevin","huangjunwen","valeh","carhartl","roycefu","tmlee","williamrh","ZachWick","zhuangbiaowei","Baker1904","Skrizy","NageshJatagond","vrillusions","geekrohit","satlavida","cleichner","jhenke","beingnessa","mcgoooo","Bloophub","punklibrarian","abelmartin","take-cheeze","petersonferreira","maxwell","OsvaldoArmando","rclosner","jccorrea","koyonote","denniscking","chanduch","sd2438892","geekard","e3matheus","mbialon","yarvin","rvhani","Predoff","darkness","savethewaves","sdoering","vaporrumors","nevayeshirazi","andysamona","rkwofford","messi1988","anibe","tpiranav","plopezbarbosa","peterkinmond","unitysoe","mjw56","johannchiang","chrismatthieu","yasirmturk","zer09","nataliav","lucasdavila","volomike","echannel-leon","rufoni2003","ramonatravels","cpkennedy","NKjoep","witalewski","lonre","stecb","josal","Zul83","Niflheim","ChanCoolKat","umesh991987","marvin","altnerd","insparbo","kmcd","marcofranssen","defiantredpill","BarcelonaRecords1","hbtvieira","kmarcini","lea22","orbotix","sdasinglesclub","buffer","shauncr","ejenkins","yahyaman","burakdd","fjordan","cwholt","yudi-rusmawan","eldios","vascoconde","niky81","mcdave","mcobery","ramen","mybuddymichael","alexandresaiz","sleighter","riyalein","johmas","chriskelly","andref5","AppSlap","celikmus","bitlag","kareem-abdelsalam","joshuamckenty","jn123456789","egonSchiele","stylepraise","shaw1337","gordonmzhu","erikkallen","ermustaqbal","denisjacquemin","msgehard","robertodecurnex","dcrall","ahto","charleseff","thejspr","twilson63","franciscosouza","jwbecher","eklitzke","serho","vbonillo","jackdracon","brahmasta","giulianoxt","rayelward","jeffw516","jewelrydeveloper","pengper","fyamnky","robinboening","Qzi","kewin2010","ossreleasefeed","strategit","mceachen","wawin","MarceI","dhagerty9009","vincentv","patrickbajao","swcool","xvfeng","thejeshgn","wbqtac","gsaly","dstegelman","cococoder","zeeshanlakhani","joeyliew7","lynda","anderslemke","thesimplecoder","gokulk","cfhcwebs","croddin","codereflect","dragon3","xuancongwen","bschaeffer","camilohe","seanhaufler","kenziecute","brawnski","hameedullah","Zearin","biblesamacharam","pendomena","Interrupt","ddispaltro","darwyn","anthoula","d10","fphilipe","noppanit","devGabriel","caseyohara","jeffreyengler","jsjohnst","spaceagecrystal","alanpca","phoenixxz","jianxioy","gnugat","tengyong","abuiles","jorgeecardona","jdham","Abranomos","mattevans","didxga","BenConstable","n8tr0n","mvrilo","akasame","oldirty","scottmangel","imd23","kpachnis","kr1sp1n","gidmakus","impulser","robmaceachern","mogria","wrb302","DBozhinovski","ttakezawa","Mckndsnco","maca","milkshakes","araslan","annmary","joycse06","DragonI","nicktran","francov88","luke-gru","cmelbye","plusjade","mooch","sgerrand","yankov","aksh","jemoiea","paulorcf","LeRoove","poptart","adamlapczynski","daegren","BaneZhang","Raki","ZiPlague","statico","mafis","deviscortez","kcnickerson","lynnwallenstein","zupolgec","tschellenbach","wallin","jomonjohnn","kkjorsvik","musaic","carlo2301","lxcid","glhuilli","extofer","Demenza","zdk","tsrajanr","emerleite","eturk","bgilham","fazli","bobcol","fleufleu","DavidAntaramian","YorickPeterse","Julzzz","tunght13488","joshduffy","spurslinux","terita","test84","sialan","McPhish","theduckcult","mg17-2","sebastianmoreno","kaikuehne","snytkine","aatif-naziri","axiomsofchoice","jinseyaluji","noogle","hinbody","psychophrenia","shaon","rizalp","ndres","edison","apcrash","monaxide","arfo90","anuprk","danho123","kadirpekel","dideler","basicallydan","Rendez","satishchandra","matt-hickford","coudenysj","jennycasteel","danroux","bottos","InkSpeck","pegasusplus","devderek","timurbatyrshin","yuchi","dmitrybelyakov","lukequaint","AndrewDavid","tetuyoko","Pa-Sky","danielocallaghan","robertomiranda","andersonfreitas","jpdubois","balasatyam","emmix","bryanmikaelian","smholloway","moos3","Myuzu","msabramo","freesoft","bangnab","prakashrai838","megsk","rono23","StarsoftAnalysis","rujmah","energee","krettig","qza","pandaboy","scott-gc","Pawz","bradpurchase","scristian71","nidarshan","adheputra","Trenker","johnattebury","Zaxis99","enelson","adorohovich","Lost-dog","stefanooldeman","qinguan","sachin-handiekar","eserra","thewiredman","mattash","hswolff","travishaynes","COMFORTOLUSEYI","ladylaia","MyRealityCoding","hiteshgoyani","mayhugh","katherinecopperield","liufengyun","mueblesguatemala","jcihain","tommyz","ainokna","giulianojordao","thaihau","orangewise","NARKOZ","mithun-daa","koganemusy","jorygraham","maketank","humbleSage","yapjanmichael","miggy","bulteau","jasonmel","serghost","vissi","DipendraGurung","happjon1","Frahaan","matiasmoya","themanuel","paolodedios","akostrikov","hugopt","linusjunya","skryptosaurus","majix","ariellephan","alimon808","intertribalmediawoman","svoloshin84","terryjbates","beingzy","FingerFeat","ventura15","DrakeRider256","resaprakasa","Amirul","mattlanham","sarsou","anatolyborodin","viralife","deepak-muley","camfortin","sturdy","monsterpatties","Diego81","punktilend","stefanprutianu","bohwalli","sixbit","chhantyal","bennytjia","jianzhiqi","robparvin","twu","JamesO","salloo","faneshia","JoshuaRamirez","CarlosCR16","hasantayyar","juliangruber","edavis","Yhippa","bokononistCoder","thepixelcoder","rprakasam","anjieya","docteurklein","jcliff","Murhaf","merrittenterprise","seanzarrin","t3dbundy","khanov","fearofcode","theoaks","xsole","miniroo321","chandu2varun3145","nixon","don-neufeld","valkyriesavage","halvors","joapsk8","adrianss","jwestredhat","ozzycodes","ua6ta123","glorieux","sevennineteen","captain-lightning","jordhy","bortan","anurag0535","stulentsev","Tusharlaroiya","prakash01","ikainn","get","Dzonatas","andamtech","sepdo","58bits","sabergeek","menot","jascenci","itwy","higgledy","waqarkhan","ric1950","abhishek0a","johnnykhil","salvianoo","omarf235","dossy","emcgurty","Skw33d","HerryOS","joshangell","ROBERTOAJR","env","lee0741","anilv","efekarakus","tijmenb","codeanu","sunnybarmota","Alex001001001","BrettBukowski","drogoff","gurkanoluc","alexanderpine","gkmngrgn","houcemlaw","alexginzburg","chetopunk77","trivektor","JennYung","omid55","jessemiller","swistaczek","samsonw","tathagata","tyzy","displacement","lindasalas","thontaddeo","hjdivad","dolatow1","thekerker","mikepack","sambacore","cntombela","Mieshon","vkartaviy","dfjones","robochuck84","pjg","opendomain","vanilacreate","khazamondo","pawankjajara","Mcneri","christus","goshakkk","somehume","jaitsu87","tetsuwo","garry420","jithinoc","dezmozz","jesswinter","abdulapopoola","smartweb","malroc","stevemckinney","GlenTrudgett","yaohuah","KOBA789","fugao","iraklid94","adnanchowdhury","alexishughes","yarchiko","rkjaer","kheme","ckilimci","eastok","gt50201","Tearjerker","serradura","waoywssy","austin908","tmaeda","ecarreras","yvesh","roni5","flixic","kschiess","ryanAbbott","Sophian","Pathum","barrycorbett","unknownnf","brok","ymirpl","twalve","jygeer","rongok","plainboy","yusukebe","Slike9","zxcvbnm4709","ispuk","pampalida","miguelbermudez","LordStandley","anaxi","tejaswidp","fernando9096","ossxp-com","KHaegwan","radube","killdream","rgonzalezpirker","warrenjyoung","hooptie45","saurabhsharan","chousho","debator","waifung0207","alvinkatojr","interactivenyc","1lj4z1","susanfelljohnson","paramaggarwal","batatinabobby","Limes102","matrix-revolution","tophtucker","lsandeep83","davidjeff","habzy","ptmardika","jast1986","VictorTango","scullkid","powlow","Favorlock","chiller345","galtech","vipulnsward","hugomastromauro","ssmith1975","madho","strugee","sbrown345","waferbaby","farfaj","alexgaribay","kstephens","seanli","greenyDeath","urbanmunki","balbaugh","companygardener","gnepud","andrewdisley","salspaugh","lazarofl","michaelokeefe","iftekharanam","jakubsvehla","goatslacker","FINESSE50","tjor","yetanothernguyen","vijaykumar-koppad","AdUki","sarnzzle","aajiwani","outsidefactor","premdewli","JulioPolo","saranjith","subodhinic","felipeguerrabr","gdm9000","ppasnani","cparker15","tcowley","HarleyRay","fuentesjr","SteveHerron","JackCA","kingbin","shakeel","benjaminbytheway","barbietunnie","arthith","AmyBearty","fbruges","amardaxini","lvhkhanh","TheCodeKing","aandnota","Macint","eknopf","Isaackmo","ddrone","bseanvt","drupalista-br","gqlewis","seanhelvey","sid140","razmakhin","spacez320","dudektria","sowawa","abhisheksharma","spirityy","andysolomon","jqcoder","zeekay","tylerlong","yukihr","infinityloop","heinrich-S","rrajkowski","Savion","hohmann","tt5609","ryojiosawa","xiaoyafeng","ltganesan","kdsoo","malikwahajahmed","bbatesmanb","Grekz","0rlando","germanluckboy","ConnorLee","eniev06","NAzT","monacate","windylcx","Corm","alyedu","grauwoelfchen","VictorTolbert","nobukatsu","azeagman","slander36","scottkidder","quaker66","fceccon","kfei27","gwilson1997","kaldon","moveck","Nico-Taing","sgulyaev","jeremywen","jtp8419","nickforce","cesararevalo","gcbsumid","abe4tawa8","Kobinsky","shijingbo","ckald","bilalabdulkany","mandarmulherkar","killertim1","nihen","vijayhc","CRahul","AmyTagava","humanitarian","jdizzle76","petersmileyface","l3dlp","epireve","PsychedelicBabe","mariusstratulat","RachidBkh","kranthiakula23","binary132","Red4life","zlulcon","munintech","chrisrowe","fdicarlo","fcruzt","runeroniek","swiss181","gadinkid","naughtystyle","MannyAcevedo","earth2travis","exia","vcube23","briantlc","andrewaynethompson","ckolderup","Maghawry","chaitanyav","osukaa","nottinhill","qzchenwl","samnang","saw123","faman06sw","frogotopia","bradlucas","Visgean","JMulligan","Lovestick","AMervin","daniellqueiroz","Deathmoon","campherkurt","Rudeboy7","wdt1512","gnnk","DlILLUSION","stanislaw","davidshenba","FeliciousX","Manauwarsheikh","akai","darrenlee","etapeta","qingliuyu","rishijain","verbondvanchristophorus","hardikdangar","Krilivye","dflems","jxin","linexteria","keketa","webmuch","fractalis","paulwoods","butu5","calvinliang","bajah","george-wicked","alanjcfs","chromano","JakeBell","uptown1919","shinvee","katettt","Jkaveri","thejared","cmattson","breezewiwiwi","xfstart07","teleyinex","fadillzzz","jefersonph","17tillidie","Anti-Fun","arjunrao2709","rhnvrm","nickxn","qfsmith1","Abbey","stoplion","safetyscissors","davidmckinnon","KevinR150","alexnotov","podviaznikov","addelyn","razex","Sheldor","codercode","yicrotkd","hemalchevli","K2K5150","VoidStatic","evilpenguin","j04ntoh","charryong","deepakdargade","vlea","qiuguo0205","xxd","JoshuaCE","jsmits21","n0nick","Hungsta","mtaus","N1tr0g3n","ducka","jslmnop","anassabri","seratch","kapilrokaya","riserice78","k3mm0tar","Daemon-Devarshi","soimort","coderprince","maslennikov","nateseay","kamexp","josephhurtado","Brian089","jokefun","dva","alex02","khora","flashburn","Smarty","resure","mhayashi1120","chirs","webista","kerrizor","pransome","GuilhermeCR","Tyusama","liedacil","rabishah","olance","natelaclaire","v4de","gerberduffy","xielingwang","creativityhurts","markur","Coffinfeeder","MotaSay","codenightlong","epequeno","AlainAlvarez","gotgithub","jina","SSE4","grayhound","Yasunaga1","drgomesp","mbtech86","metadave","iwasrobbed","faizadjeradi","ygbr","ljilja","slepcha","vishal-yadav","lagrz","caleb7bris","oyeitsme","malher","epdsn","asimsaeed","gezidan","xiaoguizi87","bigpigroy","5D","shogo807","richardashworth","himabindukandhula","thomb2233","TMKCodes","Funfun","jayesh19","andikurnia","dlboutwe","jackquack","alecasanovaprie","reireina","fiyarburst","sumanganguli","CarlosSaraiva","AntoineE","dorachua","esartorelli","taizo","jolin66","sunilsop","mattangriffel","clskkk2222","jo59nah","mmainguy","9Nautilus","jmflannery","mmacaulay","rolodexter","matmoody","RodDev","blackpixel0x17","MechanisM","KBSGUNS","Toetsenist","stapleup","PabloRibeiro","nnaficy","binaryblunt","mrtwiddletoes","7mattoo","thethumb","eddaddy","timaaarrreee","lckamal","la00mariposa","gregorynicholas","kets","MohammadRijwan"]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,user,show,defunkt,following,dc4e4027f60d0737177e4d793ff8a5de b/tests/data/github.com,api,v2,json,user,show,defunkt,following,dc4e4027f60d0737177e4d793ff8a5de index c3f9748..3a04d2b 100644 --- a/tests/data/github.com,api,v2,json,user,show,defunkt,following,dc4e4027f60d0737177e4d793ff8a5de +++ b/tests/data/github.com,api,v2,json,user,show,defunkt,following,dc4e4027f60d0737177e4d793ff8a5de @@ -1,14 +1,15 @@ -status: 304 -x-ratelimit-remaining: 58 +status: 200 +x-ratelimit-remaining: 56 content-location: https://github.com/api/v2/json/user/show/defunkt/following +-content-encoding: gzip connection: keep-alive -content-length: 2286 -server: nginx/0.7.67 -x-runtime: 26ms +content-length: 2289 +server: nginx/1.0.4 +x-runtime: 41ms x-ratelimit-limit: 60 -etag: "f2fb743e37fd58a65bd0b1eb2f4125ab" +etag: "11dadc10e6f1f70985abd24f75004f8c" cache-control: private, max-age=0, must-revalidate -date: Sun, 22 May 2011 04:32:09 GMT +date: Mon, 15 Aug 2011 19:54:06 GMT content-type: application/json; charset=utf-8 -{"users":["pjhyett","mojombo","francois","topfunky","alexcharlie","atmos","automatthew","jnunemaker","sco","jimweirich","parabuzzle","choonkeat","technoweenie","timburks","guitsaru","jeresig","pieter","3n","ryanking","boboroshi","eventualbuddha","freels","mattly","kballard","seaofclouds","nakajima","dustym","therealadam","hoverbird","monde","cnix","ryanb","josh","willcodeforfoo","rsanheim","jnewland","bmizerany","KirinDave","hornbeck","Caged","takeo","vanpelt","drnic","gpbmike","JackDanger","kvnsmth","rubyist","eschulte","jbarnette","smtlaissezfaire","foca","tekkub","jacobian","thwarted","leah","joestump","kastner","marcel","bs","m","BenWard","sstephenson","ericflo","digg","binarylogic","CodeOfficer","mtodd","karnowski","atebits","tmm1","mmalone","stephencelis","mschrag","verbal","qrush","jmhodges","tomaw","maddox","cliffmoon","jonforums","besquared","antirez","miyagawa","jquery","facebook","brianmario","simonw","rtomayko","kneath","jamis","brosner","chrisdrackett","jchris","jezdez","alex","gregnewman","mdirolf","tuaw","harperreed","threedaymonk","technomancy","rackspace","37signals","Sutto","brianjlandau","slact","pauldix","brynary","joshknowles","sd","trotter","fhwang","robhudson","ericholscher","idangazit","justinlilly","quirkey","rcrowley","bitprophet","mitsuhiko","malcolmt","djangrrl","markpasc","adamwiggins","peterc","al3x","mnot","adoy","fredreichbier","juvenn","jtauber","stevedekorte","davglass","trustthevote","ice799","DrewDouglass","andreasronge","dbr","bry4n","ushahidi","jpf","trek","jrk","mcarter","toastdriven","eric","palewire","thedaniel","ry","jessegrosjean","ultrasaurus","sarahmei","palm","notahat","tinymce","schacon","blackwinter","merlinmann","joehewitt","CaptainSqually","Jaymon","square","techcrunch","yahoo","sixapart","LukasRos","adamstac","pengwynn","brandonaaron","holman","evaryont","Tim-Smart","mkhl","mustache","chneukirchen","sr","leafychat","penny-arcade","adamsanderson","joericioppo","rupa","kennethreitz","raycmorgan","jed","consti","ericdwhite","ianb","eston","rojotek","eddit","tapajos","funkatron","joshaber","rentzsch","adamv","nedap","bryanveloso","rodjek","peff","luckiestmonkey","amiridis","frogandcode","karmi","jashkenas","igrigorik","bokowski","marijnh","judofyr","zbrock","quentinberder","kevinsawicki","bleikamp"]} \ No newline at end of file +{"users":["pjhyett","mojombo","francois","topfunky","alexcharlie","atmos","automatthew","jnunemaker","sco","jimweirich","parabuzzle","choonkeat","technoweenie","timburks","guitsaru","jeresig","pieter","3n","ryanking","boboroshi","eventualbuddha","freels","mattly","kballard","seaofclouds","nakajima","dustym","therealadam","hoverbird","monde","cnix","ryanb","josh","willcodeforfoo","rsanheim","jnewland","bmizerany","KirinDave","hornbeck","Caged","takeo","vanpelt","drnic","gpbmike","JackDanger","kvnsmth","rubyist","eschulte","jbarnette","smtlaissezfaire","foca","tekkub","jacobian","thwarted","leah","joestump","kastner","marcel","bs","m","BenWard","sstephenson","ericflo","digg","binarylogic","CodeOfficer","mtodd","karnowski","atebits","tmm1","mmalone","stephencelis","mschrag","verbal","qrush","jmhodges","tomaw","maddox","cliffmoon","jonforums","besquared","antirez","miyagawa","jquery","facebook","brianmario","simonw","rtomayko","kneath","jamis","brosner","chrisdrackett","jchris","jezdez","alex","gregnewman","mdirolf","tuaw","harperreed","threedaymonk","technomancy","rackspace","37signals","Sutto","brianjlandau","slact","pauldix","brynary","joshknowles","sd","trotter","fhwang","robhudson","ericholscher","idangazit","justinlilly","quirkey","rcrowley","bitprophet","mitsuhiko","malcolmt","djangrrl","markpasc","adamwiggins","peterc","al3x","mnot","adoy","fredreichbier","juvenn","jtauber","stevedekorte","davglass","trustthevote","ice799","DrewDouglass","andreasronge","dbr","ushahidi","jpf","trek","jrk","mcarter","toastdriven","eric","palewire","thedaniel","ry","jessegrosjean","ultrasaurus","sarahmei","palm","notahat","tinymce","schacon","blackwinter","merlinmann","joehewitt","CaptainSqually","Jaymon","square","techcrunch","yahoo","saymedia","LukasRos","adamstac","pengwynn","brandonaaron","holman","evaryont","Tim-Smart","mkhl","mustache","chneukirchen","sr","leafychat","penny-arcade","adamsanderson","joericioppo","rupa","kennethreitz","raycmorgan","jed","consti","ericdwhite","ianb","eston","rojotek","eddit","tapajos","funkatron","joshaber","rentzsch","adamv","nedap","bryanveloso","rodjek","peff","luckiestmonkey","amiridis","frogandcode","karmi","jashkenas","igrigorik","bokowski","marijnh","judofyr","zbrock","quentinberder","kevinsawicki","bleikamp","kamzilla"]} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,user,show,mojombo,640a810b9b927be6912b70d53d6b0eb1 b/tests/data/github.com,api,v2,json,user,show,mojombo,640a810b9b927be6912b70d53d6b0eb1 index c3838b2..f76739c 100644 --- a/tests/data/github.com,api,v2,json,user,show,mojombo,640a810b9b927be6912b70d53d6b0eb1 +++ b/tests/data/github.com,api,v2,json,user,show,mojombo,640a810b9b927be6912b70d53d6b0eb1 @@ -1,14 +1,15 @@ status: 200 x-ratelimit-remaining: 58 content-location: https://github.com/api/v2/json/user/show/mojombo -x-runtime: 23ms -content-length: 391 -server: nginx/0.7.67 +-content-encoding: gzip connection: keep-alive +content-length: 391 +server: nginx/1.0.4 +x-runtime: 38ms x-ratelimit-limit: 60 -etag: "45a6fa1730ba70b40ccd595130b2390e" +etag: "1e5272c81749101c16c8d7f8239819ba" cache-control: private, max-age=0, must-revalidate -date: Mon, 11 Apr 2011 14:46:22 GMT +date: Mon, 15 Aug 2011 19:57:56 GMT content-type: application/json; charset=utf-8 -{"user":{"gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","company":"GitHub, Inc.","name":"Tom Preston-Werner","created_at":"2007/10/19 22:24:19 -0700","location":"San Francisco","public_repo_count":49,"public_gist_count":66,"blog":"http://tom.preston-werner.com","following_count":11,"id":1,"type":"User","permission":null,"followers_count":1454,"login":"mojombo","email":"tom@github.com"}} \ No newline at end of file +{"user":{"gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","company":"GitHub, Inc.","name":"Tom Preston-Werner","created_at":"2007/10/19 22:24:19 -0700","location":"San Francisco","public_repo_count":52,"public_gist_count":66,"blog":"http://tom.preston-werner.com","following_count":11,"id":1,"type":"User","permission":null,"followers_count":2654,"login":"mojombo","email":"tom@github.com"}} \ No newline at end of file diff --git a/tests/data/github.com,api,v2,json,user,unfollow,defunkt,access_token=xxx,ec72b726c0324f7a53830c7e38ac6444 b/tests/data/github.com,api,v2,json,user,unfollow,defunkt,c18f5f6c951d12528f9f3c2af3e1e623 similarity index 62% rename from tests/data/github.com,api,v2,json,user,unfollow,defunkt,access_token=xxx,ec72b726c0324f7a53830c7e38ac6444 rename to tests/data/github.com,api,v2,json,user,unfollow,defunkt,c18f5f6c951d12528f9f3c2af3e1e623 index 5142ac5..6222b1c 100644 --- a/tests/data/github.com,api,v2,json,user,unfollow,defunkt,access_token=xxx,ec72b726c0324f7a53830c7e38ac6444 +++ b/tests/data/github.com,api,v2,json,user,unfollow,defunkt,c18f5f6c951d12528f9f3c2af3e1e623 @@ -1,14 +1,14 @@ status: 200 -x-ratelimit-remaining: 58 +x-ratelimit-remaining: 60 content-location: http://github.com/api/v2/json/user/unfollow/defunkt?access_token=xxx -x-runtime: 23ms +x-runtime: 20ms content-length: 53 -server: nginx/0.7.67 +server: nginx/1.0.4 connection: keep-alive -x-ratelimit-limit: 60 -etag: "45a6fa1730ba70b40ccd595130b2390e" +x-ratelimit-limit: 58 +etag: "397a2fcea970a6391b74eabcb62ed265" cache-control: private, max-age=0, must-revalidate -date: Mon, 11 Apr 2011 14:46:22 GMT +date: Thu, 25 Aug 2011 07:18:56 GMT content-type: application/json; charset=utf-8 {"users":["c9s","mitsuhiko","seemant","ask","tpope"]} diff --git a/tests/test_charset_header.py b/tests/test_charset_header.py index 073e10c..2786673 100644 --- a/tests/test_charset_header.py +++ b/tests/test_charset_header.py @@ -1,14 +1,18 @@ -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. -from nose.tools import assert_equals +from nose.tools import eq_ from github2.request import charset_from_headers def no_match_test(): d = {} - assert_equals("ascii", charset_from_headers(d)) + eq_("ascii", charset_from_headers(d)) + def utf_test(): d = {'content-type': 'application/json; charset=utf-8'} - assert_equals("utf-8", charset_from_headers(d)) + eq_("utf-8", charset_from_headers(d)) diff --git a/tests/test_commits.py b/tests/test_commits.py index 38b2055..b27fbd3 100644 --- a/tests/test_commits.py +++ b/tests/test_commits.py @@ -1,42 +1,71 @@ -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. -from nose.tools import assert_equals +from datetime import datetime + +from nose.tools import eq_ import utils -class Commit(utils.HttpMockTestCase): +class CommitProperties(utils.HttpMockTestCase): + + """Test commit property handling.""" + + commit_id = '1c83cde9b5a7c396a01af1007fb7b88765b9ae45' + + def test_commit(self): + commit = self.client.commits.show('ask/python-github2', self.commit_id) + eq_(commit.message, 'Added cache support to manage_collaborators.') + eq_(commit.parents, + [{"id": '7d1c855d2f44a55e4b90b40017be697cf70cb4a0'}]) + eq_(commit.url, '/ask/python-github2/commit/%s' % self.commit_id) + eq_(commit.author['login'], 'JNRowe') + eq_(commit.id, self.commit_id) + eq_(commit.committed_date, datetime(2011, 6, 6, 16, 13, 50)) + eq_(commit.authored_date, datetime(2011, 6, 6, 16, 13, 50)) + eq_(commit.tree, 'f48fcc1a0b8ea97f3147dc42cf7cdb6683493e94') + eq_(commit.committer['login'], 'JNRowe') + eq_(commit.added, None) + eq_(commit.removed, None) + eq_(commit.modified[0]['filename'], + 'github2/bin/manage_collaborators.py') + def test_repr(self): - commit_id = '1c83cde9b5a7c396a01af1007fb7b88765b9ae45' - commit = self.client.commits.show('ask/python-github2', commit_id) - assert_equals(repr(commit), - '' % commit_id[:8]) + commit = self.client.commits.show('ask/python-github2', self.commit_id) + eq_(repr(commit), + '' % self.commit_id[:8]) class CommitsQueries(utils.HttpMockTestCase): + """Test commit querying""" + def test_list(self): commits = self.client.commits.list('JNRowe/misc-overlay') - assert_equals(len(commits), 35) - assert_equals(commits[0].id, - '37233b357d1a3648434ffda8f569ce96b3bcbf53') + eq_(len(commits), 35) + eq_(commits[0].id, '4de0834d58b37ef3020c49df43c95649217a2def') + + def test_list_with_page(self): + commits = self.client.commits.list('JNRowe/jnrowe-misc', page=2) + eq_(len(commits), 35) + eq_(commits[0].id, '1f5ad2c3206bafc4aca9e6ce50f5c605befdb3d6') def test_list_with_branch(self): commits = self.client.commits.list('JNRowe/misc-overlay', 'gh-pages') - assert_equals(len(commits), 35) - assert_equals(commits[0].id, - '482f657443df4b701137a3025ae08476cddd2b7d') + eq_(len(commits), 35) + eq_(commits[0].id, '025148bdaa6fb6bdac9c3522d481fadf1c0a456f') def test_list_with_file(self): commits = self.client.commits.list('JNRowe/misc-overlay', file='Makefile') - assert_equals(len(commits), 31) - assert_equals(commits[0].id, - '41bcd985139189763256a8c82b8f0fcbe150eb03') + eq_(len(commits), 35) + eq_(commits[0].id, 'fc12b924d34dc38c8ce76d27a866221faa88cb72') def test_list_with_branch_and_file(self): commits = self.client.commits.list('JNRowe/misc-overlay', 'gh-pages', 'packages/dev-python.html') - assert_equals(len(commits), 35) - assert_equals(commits[0].id, - '482f657443df4b701137a3025ae08476cddd2b7d') + eq_(len(commits), 35) + eq_(commits[0].id, '025148bdaa6fb6bdac9c3522d481fadf1c0a456f') diff --git a/tests/test_date_handling.py b/tests/test_date_handling.py index 591bb2c..b696a74 100644 --- a/tests/test_date_handling.py +++ b/tests/test_date_handling.py @@ -1,10 +1,12 @@ # -*- coding: utf-8 -*- - -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. from datetime import datetime as dt -from nose.tools import assert_equals +from nose.tools import eq_ from github2.core import (datetime_to_ghdate, datetime_to_commitdate, datetime_to_isodate, string_to_datetime) @@ -14,153 +16,138 @@ # naïve datetime objects used in the current code base def test_ghdate_to_datetime(): - assert_equals(string_to_datetime('2011/05/22 00:24:15 -0700'), - dt(2011, 5, 22, 0, 24, 15)) - - assert_equals(string_to_datetime('2009/04/18 13:04:09 -0700'), - dt(2009, 4, 18, 13, 4, 9)) - #assert_equals(string_to_datetime('2009/11/12 21:15:17 -0800'), - # dt(2009, 11, 12, 21, 15, 17)) - #assert_equals(string_to_datetime('2009/11/12 21:16:20 -0800'), - # dt(2009, 11, 12, 21, 16, 20)) - assert_equals(string_to_datetime('2010/04/17 17:24:29 -0700'), - dt(2010, 4, 17, 17, 24, 29)) - assert_equals(string_to_datetime('2010/05/18 06:10:36 -0700'), - dt(2010, 5, 18, 6, 10, 36)) - assert_equals(string_to_datetime('2010/05/25 21:59:37 -0700'), - dt(2010, 5, 25, 21, 59, 37)) - assert_equals(string_to_datetime('2010/05/26 17:08:41 -0700'), - dt(2010, 5, 26, 17, 8, 41)) - assert_equals(string_to_datetime('2010/06/20 06:13:37 -0700'), - dt(2010, 6, 20, 6, 13, 37)) - assert_equals(string_to_datetime('2010/07/28 12:56:51 -0700'), - dt(2010, 7, 28, 12, 56, 51)) - assert_equals(string_to_datetime('2010/09/20 21:32:49 -0700'), - dt(2010, 9, 20, 21, 32, 49)) + eq_(string_to_datetime('2011/05/22 00:24:15 -0700'), + dt(2011, 5, 22, 0, 24, 15)) + + eq_(string_to_datetime('2009/04/18 13:04:09 -0700'), + dt(2009, 4, 18, 13, 4, 9)) + #eq_(string_to_datetime('2009/11/12 21:15:17 -0800'), + # dt(2009, 11, 12, 21, 15, 17)) + #eq_(string_to_datetime('2009/11/12 21:16:20 -0800'), + # dt(2009, 11, 12, 21, 16, 20)) + eq_(string_to_datetime('2010/04/17 17:24:29 -0700'), + dt(2010, 4, 17, 17, 24, 29)) + eq_(string_to_datetime('2010/05/18 06:10:36 -0700'), + dt(2010, 5, 18, 6, 10, 36)) + eq_(string_to_datetime('2010/05/25 21:59:37 -0700'), + dt(2010, 5, 25, 21, 59, 37)) + eq_(string_to_datetime('2010/05/26 17:08:41 -0700'), + dt(2010, 5, 26, 17, 8, 41)) + eq_(string_to_datetime('2010/06/20 06:13:37 -0700'), + dt(2010, 6, 20, 6, 13, 37)) + eq_(string_to_datetime('2010/07/28 12:56:51 -0700'), + dt(2010, 7, 28, 12, 56, 51)) + eq_(string_to_datetime('2010/09/20 21:32:49 -0700'), + dt(2010, 9, 20, 21, 32, 49)) def test_datetime_to_ghdate(): - assert_equals(datetime_to_ghdate(dt(2011, 5, 22, 0, 24, 15)), - '2011/05/22 00:24:15 -0700') - - assert_equals(datetime_to_ghdate(dt(2009, 4, 18, 20, 4, 9)), - '2009/04/18 20:04:09 -0700') - #assert_equals(datetime_to_ghdate(dt(2009, 11, 13, 4, 15, 17)), - # '2009/11/13 04:15:17 -0800') - #assert_equals(datetime_to_ghdate(dt(2009, 11, 13, 4, 16, 20)), - # '2009/11/13 04:16:20 -0800') - assert_equals(datetime_to_ghdate(dt(2010, 4, 18, 0, 24, 29)), - '2010/04/18 00:24:29 -0700') - assert_equals(datetime_to_ghdate(dt(2010, 5, 18, 13, 10, 36)), - '2010/05/18 13:10:36 -0700') - assert_equals(datetime_to_ghdate(dt(2010, 5, 26, 5, 59, 37)), - '2010/05/26 05:59:37 -0700') - assert_equals(datetime_to_ghdate(dt(2010, 5, 27, 0, 8, 41)), - '2010/05/27 00:08:41 -0700') - assert_equals(datetime_to_ghdate(dt(2010, 6, 20, 13, 13, 37)), - '2010/06/20 13:13:37 -0700') - assert_equals(datetime_to_ghdate(dt(2010, 7, 28, 19, 56, 51)), - '2010/07/28 19:56:51 -0700') - assert_equals(datetime_to_ghdate(dt(2010, 9, 21, 4, 32, 49)), - '2010/09/21 04:32:49 -0700') + eq_(datetime_to_ghdate(dt(2011, 5, 22, 0, 24, 15)), + '2011/05/22 00:24:15 -0700') + + eq_(datetime_to_ghdate(dt(2009, 4, 18, 20, 4, 9)), + '2009/04/18 20:04:09 -0700') + #eq_(datetime_to_ghdate(dt(2009, 11, 13, 4, 15, 17)), + # '2009/11/13 04:15:17 -0800') + #eq_(datetime_to_ghdate(dt(2009, 11, 13, 4, 16, 20)), + # '2009/11/13 04:16:20 -0800') + eq_(datetime_to_ghdate(dt(2010, 4, 18, 0, 24, 29)), + '2010/04/18 00:24:29 -0700') + eq_(datetime_to_ghdate(dt(2010, 5, 18, 13, 10, 36)), + '2010/05/18 13:10:36 -0700') + eq_(datetime_to_ghdate(dt(2010, 5, 26, 5, 59, 37)), + '2010/05/26 05:59:37 -0700') + eq_(datetime_to_ghdate(dt(2010, 5, 27, 0, 8, 41)), + '2010/05/27 00:08:41 -0700') + eq_(datetime_to_ghdate(dt(2010, 6, 20, 13, 13, 37)), + '2010/06/20 13:13:37 -0700') + eq_(datetime_to_ghdate(dt(2010, 7, 28, 19, 56, 51)), + '2010/07/28 19:56:51 -0700') + eq_(datetime_to_ghdate(dt(2010, 9, 21, 4, 32, 49)), + '2010/09/21 04:32:49 -0700') def test_commitdate_to_datetime(): - assert_equals(string_to_datetime('2011-05-22T00:24:15-07:00'), - dt(2011, 5, 22, 0, 24, 15)) - - assert_equals(string_to_datetime('2011-04-09T10:07:30-07:00'), - dt(2011, 4, 9, 10, 7, 30)) - #assert_equals(string_to_datetime('2011-02-19T07:16:11-08:00'), - # dt(2011, 2, 19, 7, 16, 11)) - #assert_equals(string_to_datetime('2010-12-21T12:34:27-08:00'), - # dt(2010, 12, 21, 12, 34, 27)) - assert_equals(string_to_datetime('2011-04-09T10:20:05-07:00'), - dt(2011, 4, 9, 10, 20, 5)) - assert_equals(string_to_datetime('2011-04-09T10:05:58-07:00'), - dt(2011, 4, 9, 10, 5, 58)) - assert_equals(string_to_datetime('2011-04-09T09:53:00-07:00'), - dt(2011, 4, 9, 9, 53, 0)) - assert_equals(string_to_datetime('2011-04-09T10:00:21-07:00'), - dt(2011, 4, 9, 10, 0, 21)) - #assert_equals(string_to_datetime('2010-12-16T15:10:59-08:00'), - # dt(2010, 12, 16, 15, 10, 59)) - assert_equals(string_to_datetime('2011-04-09T09:53:00-07:00'), - dt(2011, 4, 9, 9, 53, 0)) - assert_equals(string_to_datetime('2011-04-09T09:53:00-07:00'), - dt(2011, 4, 9, 9, 53, 0)) + eq_(string_to_datetime('2011-05-22T00:24:15-07:00'), + dt(2011, 5, 22, 0, 24, 15)) + + eq_(string_to_datetime('2011-04-09T10:07:30-07:00'), + dt(2011, 4, 9, 10, 7, 30)) + #eq_(string_to_datetime('2011-02-19T07:16:11-08:00'), + # dt(2011, 2, 19, 7, 16, 11)) + #eq_(string_to_datetime('2010-12-21T12:34:27-08:00'), + # dt(2010, 12, 21, 12, 34, 27)) + eq_(string_to_datetime('2011-04-09T10:20:05-07:00'), + dt(2011, 4, 9, 10, 20, 5)) + eq_(string_to_datetime('2011-04-09T10:05:58-07:00'), + dt(2011, 4, 9, 10, 5, 58)) + eq_(string_to_datetime('2011-04-09T09:53:00-07:00'), + dt(2011, 4, 9, 9, 53, 0)) + eq_(string_to_datetime('2011-04-09T10:00:21-07:00'), + dt(2011, 4, 9, 10, 0, 21)) + #eq_(string_to_datetime('2010-12-16T15:10:59-08:00'), + # dt(2010, 12, 16, 15, 10, 59)) + eq_(string_to_datetime('2011-04-09T09:53:00-07:00'), + dt(2011, 4, 9, 9, 53, 0)) + eq_(string_to_datetime('2011-04-09T09:53:00-07:00'), + dt(2011, 4, 9, 9, 53, 0)) def test_datetime_to_commitdate(): - assert_equals(datetime_to_commitdate(dt(2011, 5, 22, 0, 24, 15)), - '2011-05-22T00:24:15-07:00') - - assert_equals(datetime_to_commitdate(dt(2011, 4, 9, 10, 7, 30)), - '2011-04-09T10:07:30-07:00') - #assert_equals(datetime_to_commitdate(dt(2011, 2, 19, 7, 16, 11)), - # '2011-02-19T07:16:11-08:00') - #assert_equals(datetime_to_commitdate(dt(2010, 12, 21, 12, 34, 27)), - # '2010-12-21T12:34:27-08:00') - assert_equals(datetime_to_commitdate(dt(2011, 4, 9, 10, 20, 5)), - '2011-04-09T10:20:05-07:00') - assert_equals(datetime_to_commitdate(dt(2011, 4, 9, 10, 5, 58)), - '2011-04-09T10:05:58-07:00') - assert_equals(datetime_to_commitdate(dt(2011, 4, 9, 9, 53, 0)), - '2011-04-09T09:53:00-07:00') - assert_equals(datetime_to_commitdate(dt(2011, 4, 9, 10, 0, 21)), - '2011-04-09T10:00:21-07:00') - #assert_equals(datetime_to_commitdate(dt(2010, 12, 16, 15, 10, 59)), - # '2010-12-16T15:10:59-08:00') - assert_equals(datetime_to_commitdate(dt(2011, 4, 9, 9, 53, 0)), - '2011-04-09T09:53:00-07:00') - assert_equals(datetime_to_commitdate(dt(2011, 4, 9, 9, 53, 0)), - '2011-04-09T09:53:00-07:00') + eq_(datetime_to_commitdate(dt(2011, 5, 22, 0, 24, 15)), + '2011-05-22T00:24:15-07:00') + + eq_(datetime_to_commitdate(dt(2011, 4, 9, 10, 7, 30)), + '2011-04-09T10:07:30-07:00') + #eq_(datetime_to_commitdate(dt(2011, 2, 19, 7, 16, 11)), + # '2011-02-19T07:16:11-08:00') + #eq_(datetime_to_commitdate(dt(2010, 12, 21, 12, 34, 27)), + # '2010-12-21T12:34:27-08:00') + eq_(datetime_to_commitdate(dt(2011, 4, 9, 10, 20, 5)), + '2011-04-09T10:20:05-07:00') + eq_(datetime_to_commitdate(dt(2011, 4, 9, 10, 5, 58)), + '2011-04-09T10:05:58-07:00') + eq_(datetime_to_commitdate(dt(2011, 4, 9, 9, 53, 0)), + '2011-04-09T09:53:00-07:00') + eq_(datetime_to_commitdate(dt(2011, 4, 9, 10, 0, 21)), + '2011-04-09T10:00:21-07:00') + #eq_(datetime_to_commitdate(dt(2010, 12, 16, 15, 10, 59)), + # '2010-12-16T15:10:59-08:00') + eq_(datetime_to_commitdate(dt(2011, 4, 9, 9, 53, 0)), + '2011-04-09T09:53:00-07:00') + eq_(datetime_to_commitdate(dt(2011, 4, 9, 9, 53, 0)), + '2011-04-09T09:53:00-07:00') + def test_isodate_to_datetime(): - assert_equals(string_to_datetime('2011-05-22T00:24:15Z'), - dt(2011, 5, 22, 0, 24, 15)) - assert_equals(string_to_datetime('2011-04-09T10:07:30Z'), - dt(2011, 4, 9, 10, 7, 30)) - assert_equals(string_to_datetime('2011-02-19T07:16:11Z'), - dt(2011, 2, 19, 7, 16, 11)) - assert_equals(string_to_datetime('2010-12-21T12:34:27Z'), - dt(2010, 12, 21, 12, 34, 27)) - assert_equals(string_to_datetime('2011-04-09T10:20:05Z'), - dt(2011, 4, 9, 10, 20, 5)) - assert_equals(string_to_datetime('2011-04-09T10:05:58Z'), - dt(2011, 4, 9, 10, 5, 58)) - assert_equals(string_to_datetime('2011-04-09T09:53:00Z'), - dt(2011, 4, 9, 9, 53, 0)) - assert_equals(string_to_datetime('2011-04-09T10:00:21Z'), - dt(2011, 4, 9, 10, 0, 21)) - assert_equals(string_to_datetime('2010-12-16T15:10:59Z'), - dt(2010, 12, 16, 15, 10, 59)) - assert_equals(string_to_datetime('2011-04-09T09:53:00Z'), - dt(2011, 4, 9, 9, 53, 0)) - assert_equals(string_to_datetime('2011-04-09T09:53:00Z'), - dt(2011, 4, 9, 9, 53, 0)) + eq_(string_to_datetime('2011-05-22T00:24:15Z'), dt(2011, 5, 22, 0, 24, 15)) + eq_(string_to_datetime('2011-04-09T10:07:30Z'), dt(2011, 4, 9, 10, 7, 30)) + eq_(string_to_datetime('2011-02-19T07:16:11Z'), dt(2011, 2, 19, 7, 16, 11)) + eq_(string_to_datetime('2010-12-21T12:34:27Z'), + dt(2010, 12, 21, 12, 34, 27)) + eq_(string_to_datetime('2011-04-09T10:20:05Z'), dt(2011, 4, 9, 10, 20, 5)) + eq_(string_to_datetime('2011-04-09T10:05:58Z'), dt(2011, 4, 9, 10, 5, 58)) + eq_(string_to_datetime('2011-04-09T09:53:00Z'), dt(2011, 4, 9, 9, 53, 0)) + eq_(string_to_datetime('2011-04-09T10:00:21Z'), dt(2011, 4, 9, 10, 0, 21)) + eq_(string_to_datetime('2010-12-16T15:10:59Z'), + dt(2010, 12, 16, 15, 10, 59)) + eq_(string_to_datetime('2011-04-09T09:53:00Z'), dt(2011, 4, 9, 9, 53, 0)) + eq_(string_to_datetime('2011-04-09T09:53:00Z'), dt(2011, 4, 9, 9, 53, 0)) def test_datetime_to_isodate(): - assert_equals(datetime_to_isodate(dt(2011, 5, 22, 0, 24, 15)), - '2011-05-22T00:24:15Z') - assert_equals(datetime_to_isodate(dt(2011, 4, 9, 10, 7, 30)), - '2011-04-09T10:07:30Z') - assert_equals(datetime_to_isodate(dt(2011, 2, 19, 7, 16, 11)), - '2011-02-19T07:16:11Z') - assert_equals(datetime_to_isodate(dt(2010, 12, 21, 12, 34, 27)), - '2010-12-21T12:34:27Z') - assert_equals(datetime_to_isodate(dt(2011, 4, 9, 10, 20, 5)), - '2011-04-09T10:20:05Z') - assert_equals(datetime_to_isodate(dt(2011, 4, 9, 10, 5, 58)), - '2011-04-09T10:05:58Z') - assert_equals(datetime_to_isodate(dt(2011, 4, 9, 9, 53, 0)), - '2011-04-09T09:53:00Z') - assert_equals(datetime_to_isodate(dt(2011, 4, 9, 10, 0, 21)), - '2011-04-09T10:00:21Z') - assert_equals(datetime_to_isodate(dt(2010, 12, 16, 15, 10, 59)), - '2010-12-16T15:10:59Z') - assert_equals(datetime_to_isodate(dt(2011, 4, 9, 9, 53, 0)), - '2011-04-09T09:53:00Z') - assert_equals(datetime_to_isodate(dt(2011, 4, 9, 9, 53, 0)), - '2011-04-09T09:53:00Z') + eq_(datetime_to_isodate(dt(2011, 5, 22, 0, 24, 15)), + '2011-05-22T00:24:15Z') + eq_(datetime_to_isodate(dt(2011, 4, 9, 10, 7, 30)), '2011-04-09T10:07:30Z') + eq_(datetime_to_isodate(dt(2011, 2, 19, 7, 16, 11)), + '2011-02-19T07:16:11Z') + eq_(datetime_to_isodate(dt(2010, 12, 21, 12, 34, 27)), + '2010-12-21T12:34:27Z') + eq_(datetime_to_isodate(dt(2011, 4, 9, 10, 20, 5)), '2011-04-09T10:20:05Z') + eq_(datetime_to_isodate(dt(2011, 4, 9, 10, 5, 58)), '2011-04-09T10:05:58Z') + eq_(datetime_to_isodate(dt(2011, 4, 9, 9, 53, 0)), '2011-04-09T09:53:00Z') + eq_(datetime_to_isodate(dt(2011, 4, 9, 10, 0, 21)), '2011-04-09T10:00:21Z') + eq_(datetime_to_isodate(dt(2010, 12, 16, 15, 10, 59)), + '2010-12-16T15:10:59Z') + eq_(datetime_to_isodate(dt(2011, 4, 9, 9, 53, 0)), '2011-04-09T09:53:00Z') + eq_(datetime_to_isodate(dt(2011, 4, 9, 9, 53, 0)), '2011-04-09T09:53:00Z') diff --git a/tests/test_issues.py b/tests/test_issues.py index 72988f3..67cbff7 100644 --- a/tests/test_issues.py +++ b/tests/test_issues.py @@ -1,40 +1,82 @@ -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. -from nose.tools import assert_equals +from datetime import datetime + +from nose.tools import eq_ import utils -class ReprTests(utils.HttpMockTestCase): +class Issue(utils.HttpMockTestCase): + def test_properties(self): + issue = self.client.issues.show('ask/python-github2', 24) + eq_(issue.position, 24.0) + eq_(issue.number, 24) + eq_(issue.votes, 0) + eq_(len(issue.body), 164) + eq_(issue.title, 'Pagination support for commits.') + eq_(issue.user, 'svetlyak40wt') + eq_(issue.state, 'open') + eq_(issue.labels, []) + eq_(issue.created_at, datetime(2010, 12, 8, 23, 50, 26)) + eq_(issue.closed_at, None) + eq_(issue.updated_at, datetime(2011, 1, 4, 16, 26, 7)) + eq_(issue.diff_url, + 'https://github.com/ask/python-github2/pull/24.diff') + eq_(issue.patch_url, + 'https://github.com/ask/python-github2/pull/24.patch') + eq_(issue.pull_request_url, + 'https://github.com/ask/python-github2/pull/24') + def test_issue_repr(self): issue = self.client.issues.show('ask/python-github2', 24) - assert_equals(repr(issue), - '') - + eq_(repr(issue), '') + + +class Comment(utils.HttpMockTestCase): + def test_properties(self): + comments = self.client.issues.comments('ask/python-github2', 24) + comment = comments[0] + eq_(comment.created_at, datetime(2010, 12, 9, 22, 37, 26)) + eq_(comment.updated_at, datetime(2010, 12, 9, 22, 37, 26)) + eq_(len(comment.body), 267) + eq_(comment.id, 601871) + eq_(comment.user, 'nvie') + def test_comment_repr(self): comments = self.client.issues.comments('ask/python-github2', 24) - assert_equals(repr(comments[1]), - '') + eq_(repr(comments[1]), '') class IssueQueries(utils.HttpMockTestCase): - """Test issue querying""" + + """Test issue querying.""" + def test_search(self): - issues = self.client.issues.search('ask/python-github2', 'timezone') - assert_equals(len(issues), 3) - assert_equals(issues[2].number, 39) + issues = self.client.issues.search('ask/python-github2', 'timezone', + 'closed') + eq_(len(issues), 2) + eq_(issues[1].number, 39) def test_list(self): issues = self.client.issues.list('ask/python-github2') - assert_equals(len(issues), 5) - assert_equals(issues[-1].number, 53) + eq_(len(issues), 4) + eq_(issues[-1].number, 58) def test_list_with_state(self): issues = self.client.issues.list('ask/python-github2', "closed") - assert_equals(len(issues), 48) - assert_equals(issues[0].number, 52) + eq_(len(issues), 55) + eq_(issues[0].number, 59) def test_issue_labels(self): labels = self.client.issues.list_labels('JNRowe/misc-overlay') - assert_equals(len(labels), 3) - assert_equals(labels[0], 'feature') + eq_(len(labels), 4) + eq_(labels[0], 'feature') + + def test_list_by_label(self): + issues = self.client.issues.list_by_label('JNRowe/misc-overlay', 'bug') + eq_(len(issues), 30) + eq_(issues[-1].number, 328) diff --git a/tests/test_organizations.py b/tests/test_organizations.py index 120c9c0..e2ddc77 100644 --- a/tests/test_organizations.py +++ b/tests/test_organizations.py @@ -1,33 +1,72 @@ -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. -from nose.tools import (assert_equals, assert_true) +from datetime import datetime + +from nose.tools import (eq_, ok_) import utils class OrganizationProperties(utils.HttpMockTestCase): + def test_properties(self): + organization = self.client.organizations.show('github') + eq_(organization.id, 9919) + eq_(organization.name, 'GitHub') + eq_(organization.blog, 'https://github.com/about') + eq_(organization.location, 'San Francisco, CA') + eq_(organization.gravatar_id, '61024896f291303615bcd4f7a0dcfb74') + eq_(organization.login, 'github') + eq_(organization.email, 'support@github.com') + eq_(organization.company, None) + eq_(organization.created_at, datetime(2008, 5, 10, 21, 37, 31)) + eq_(organization.following_count, 0) + eq_(organization.followers_count, 591) + eq_(organization.public_gist_count, 0) + eq_(organization.public_repo_count, 31) + eq_(organization.permission, None) + eq_(organization.plan, None) + def test_is_authenticated(self): organization = self.client.organizations.show('github') - assert_true(organization.is_authenticated() is False) + ok_(organization.is_authenticated() is False) organization = self.client.organizations.show('fake_org_with_auth') - assert_true(organization.is_authenticated() is True) + ok_(organization.is_authenticated() is True) class Organization(utils.HttpMockTestCase): def test_repr(self): organization = self.client.organizations.show('github') - assert_equals(repr(organization), - '') + eq_(repr(organization), '') class OrganizationQueries(utils.HttpMockTestCase): """Test organisation querying""" def test_public_repositories(self): repos = self.client.organizations.public_repositories('github') - assert_equals(len(repos), 26) - assert_equals(repos[2].name, 'hubahuba') + eq_(len(repos), 31) + eq_(repos[2].name, 'hubahuba') def test_public_members(self): members = self.client.organizations.public_members('github') - assert_equals(len(members), 33) - assert_equals(members[2].name, 'Ben Burkert') + eq_(len(members), 35) + eq_(members[2].name, 'Ben Burkert') + + +class OrganizationsEdits(utils.HttpMockAuthenticatedTestCase): + def test_add_team(self): + team = self.client.organizations.add_team('JNRowe-test-org', + 'test_pull', 'pull') + eq_(team.name, 'team_pull') + eq_(team.permission, 'pull') + + def test_add_team_with_repos(self): + projects = ['JNRowe-test-org/test1', 'JNRowe-test-org/test2'] + team = self.client.organizations.add_team('JNRowe-test-org', + 'test_push', 'push', + projects) + + team_repos = self.client.teams.repositories(team.id) + eq_(['/'.join([x.organization, x.name]) for x in team_repos], projects) diff --git a/tests/test_pull_requests.py b/tests/test_pull_requests.py index 522b799..efe486c 100644 --- a/tests/test_pull_requests.py +++ b/tests/test_pull_requests.py @@ -1,20 +1,60 @@ -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. -from nose.tools import assert_equals +from datetime import datetime + +from nose.tools import eq_ import utils class PullRequest(utils.HttpMockTestCase): + def test_properties(self): + pull_request = self.client.pull_requests.show('ask/python-github2', 39) + eq_(pull_request.state, 'closed') + eq_(pull_request.base['sha'], + '0786a96c80afad7bbd0747df590f649eaa46ca04') + eq_(pull_request.head['sha'], + '5438e41d9c390f53089ed3fa0842831fafc73d8e') + eq_(pull_request.issue_user['login'], 'JNRowe') + eq_(pull_request.user['login'], 'JNRowe') + eq_(pull_request.title, 'Datetime timezone handling.') + eq_(len(pull_request.body), 1442) + eq_(pull_request.position, 39.0) + eq_(pull_request.number, 39.0) + eq_(pull_request.votes, 0) + eq_(pull_request.comments, 4) + eq_(pull_request.diff_url, + 'https://github.com/ask/python-github2/pull/39.diff') + eq_(pull_request.patch_url, + 'https://github.com/ask/python-github2/pull/39.patch') + eq_(pull_request.labels, []) + eq_(pull_request.html_url, + 'https://github.com/ask/python-github2/pull/39') + eq_(pull_request.issue_created_at, datetime(2011, 4, 18, 15, 25, 47)) + eq_(pull_request.issue_updated_at, datetime(2011, 6, 23, 9, 33, 57)) + eq_(pull_request.created_at, datetime(2011, 6, 20, 16, 51, 24)) + eq_(pull_request.updated_at, datetime(2011, 6, 23, 9, 28, 42)) + eq_(pull_request.closed_at, datetime(2011, 6, 23, 9, 33, 57)) + eq_(len(pull_request.discussion), 13) + eq_(pull_request.mergeable, True) + def test_repr(self): pull_request = self.client.pull_requests.show('ask/python-github2', 39) - assert_equals(repr(pull_request), - '') + eq_(repr(pull_request), '') class PullRequestQueries(utils.HttpMockTestCase): """Test pull request querying""" def test_list(self): pull_requests = self.client.pull_requests.list('ask/python-github2') - assert_equals(len(pull_requests), 2) - assert_equals(pull_requests[0].title, 'Datetime timezone handling.') + eq_(len(pull_requests), 1) + eq_(pull_requests[0].title, 'Pagination support for commits.') + + def test_list_with_page(self): + pull_requests = self.client.pull_requests.list('robbyrussell/oh-my-zsh', + page=2) + eq_(len(pull_requests), 52) + eq_(pull_requests[1].title, 'Added my own custom theme') diff --git a/tests/test_regression.py b/tests/test_regression.py index 5438888..b5fee60 100644 --- a/tests/test_regression.py +++ b/tests/test_regression.py @@ -1,25 +1,22 @@ -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. import httplib2 -from nose.tools import assert_equals +from nose.tools import eq_ from github2.client import Github -import utils - def test_issue_50(): - """Erroneous init of ``Http`` with proxy setup + """Erroneous init of ``Http`` with proxy setup. See https://github.com/ask/python-github2/pull/50 """ - utils.set_http_mock() - client = Github(proxy_host="my.proxy.com", proxy_port=9000) - setup_args = client.request._http.called_with - assert_equals(type(setup_args['proxy_info']), httplib2.ProxyInfo) - assert_equals(setup_args['proxy_info'].proxy_host, 'my.proxy.com') - assert_equals(setup_args['proxy_info'].proxy_port, 9000) - - utils.unset_http_mock() + proxy_info = client.request._http.proxy_info + eq_(type(proxy_info), httplib2.ProxyInfo) + eq_(proxy_info.proxy_host, 'my.proxy.com') + eq_(proxy_info.proxy_port, 9000) diff --git a/tests/test_repositories.py b/tests/test_repositories.py index 497a5c2..8abbc30 100644 --- a/tests/test_repositories.py +++ b/tests/test_repositories.py @@ -1,77 +1,122 @@ -import _setup +# coding: utf-8 +# Copyright (C) 2011-2012 James Rowe +# Stéphane Angel +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. import datetime -from nose.tools import assert_equals +from nose.tools import eq_ -from github2.client import Github import utils class Repo(utils.HttpMockTestCase): def test_repr(self): repo = self.client.repos.show('JNRowe/misc-overlay') - assert_equals(repr(repo), '') + eq_(repr(repo), '') class RepoProperties(utils.HttpMockTestCase): - """Test repository property handling""" + + """Test repository property handling.""" + def test_repo(self): repo = self.client.repos.show('JNRowe/misc-overlay') - assert_equals(repo.name, 'misc-overlay') - assert_equals(repo.description, - 'Gentoo overlay -- miscellaneous packages') - assert_equals(repo.url, 'https://github.com/JNRowe/misc-overlay') - assert_equals(repo.owner, 'JNRowe') - assert_equals(repo.homepage, 'http://jnrowe.github.com/misc-overlay/') + eq_(repo.name, 'misc-overlay') + eq_(repo.description, 'Gentoo overlay -- miscellaneous packages') + eq_(repo.url, 'https://github.com/JNRowe/misc-overlay') + eq_(repo.owner, 'JNRowe') + eq_(repo.homepage, 'http://jnrowe.github.com/misc-overlay/') - assert_equals(repo.project, 'JNRowe/misc-overlay') + eq_(repo.project, 'JNRowe/misc-overlay') def test_meta(self): repo = self.client.repos.show('JNRowe/misc-overlay') - assert_equals(repo.forks, 0) - assert_equals(repo.watchers, 5) - assert_equals(repo.private, False) - assert_equals(repo.fork, False) - assert_equals(repo.master_branch, None) - assert_equals(repo.integration_branch, None) - assert_equals(repo.open_issues, 6) - assert_equals(repo.created_at, - datetime.datetime(2009, 5, 2, 7, 32, 50)) - assert_equals(repo.pushed_at, - datetime.datetime(2011, 5, 22, 0, 24, 15)) - assert_equals(repo.has_downloads, True) - assert_equals(repo.has_wiki, True) - assert_equals(repo.has_issues, True) - assert_equals(repo.language, 'Python') + eq_(repo.forks, 0) + eq_(repo.watchers, 5) + eq_(repo.private, False) + eq_(repo.fork, False) + eq_(repo.master_branch, None) + eq_(repo.integration_branch, None) + eq_(repo.open_issues, 13) + eq_(repo.created_at, datetime.datetime(2009, 5, 2, 7, 32, 50)) + eq_(repo.pushed_at, datetime.datetime(2011, 8, 11, 11, 46, 23)) + eq_(repo.has_downloads, True) + eq_(repo.has_wiki, True) + eq_(repo.has_issues, True) + eq_(repo.language, 'Python') + + def test_fork_properties(self): + repo = self.client.repos.show('JNRowe/python-github2') + eq_(repo.forks, 0) + eq_(repo.fork, True) + eq_(repo.parent, 'ask/python-github2') + eq_(repo.source, 'ask/python-github2') class RepoQueries(utils.HttpMockTestCase): """Test repository querying""" def test_search(self): repos = self.client.repos.search('surfraw') - assert_equals(len(repos), 8) - assert_equals(repos[0].owner, 'JNRowe') + eq_(len(repos), 8) + eq_(repos[0].owner, 'JNRowe') def test_list(self): repos = self.client.repos.list('JNRowe') - assert_equals(len(repos), 44) - assert_equals(repos[0].name, 'bfm') + eq_(len(repos), 48) + eq_(repos[0].name, 'bfm') + + def test_list_with_page(self): + repos = self.client.repos.list('tekkub', page=2) + eq_(len(repos), 37) + eq_(repos[0].name, 'OhSnap') def test_watching(self): repos = self.client.repos.watching('JNRowe') - assert_equals(len(repos), 89) - assert_equals(repos[0].name, 'nerdtree') + eq_(len(repos), 90) + eq_(repos[0].name, 'nerdtree') + + def test_watching_with_page(self): + repos = self.client.repos.watching('tekkub', page=2) + eq_(len(repos), 39) + eq_(repos[0].name, 'Buffoon') def test_contributors(self): contributors = self.client.repos.list_contributors('ask/python-github2') - assert_equals(len(contributors), 27) - assert_equals(contributors[1].name, 'Ask Solem Hoel') + eq_(len(contributors), 29) + eq_(contributors[1].name, 'Ask Solem Hoel') + + def test_list_collaborators(self): + collaborators = self.client.repos.list_collaborators('ask/python-github2') + eq_(len(collaborators), 4) + eq_(collaborators[2], 'JNRowe') + + def test_languages(self): + languages = self.client.repos.languages('JNRowe/misc-overlay') + eq_(len(languages), 2) + eq_(languages['Python'], 11194) + + def test_tags(self): + tags = self.client.repos.tags('ask/python-github2') + eq_(len(tags), 7) + eq_(tags['0.4.1'], '96b0a41dd249c521323700bc11a0a721a7c9e642') + + def test_branches(self): + branches = self.client.repos.branches('ask/python-github2') + eq_(len(branches), 1) + eq_(branches['master'], '1c83cde9b5a7c396a01af1007fb7b88765b9ae45') + + def test_watchers(self): + watchers = self.client.repos.watchers('ask/python-github2') + eq_(len(watchers), 143) + eq_(watchers[0], 'ask') class AuthenticatedRepoQueries(utils.HttpMockAuthenticatedTestCase): def test_pushable(self): repos = self.client.repos.pushable() - assert_equals(len(repos), 1) - assert_equals(repos[0].name, 'python-github2') + eq_(len(repos), 1) + eq_(repos[0].name, 'python-github2') diff --git a/tests/test_request.py b/tests/test_request.py index a36086f..529de26 100644 --- a/tests/test_request.py +++ b/tests/test_request.py @@ -1,33 +1,93 @@ -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. import unittest -from nose.tools import (assert_equals, assert_true) +try: + from urllib.parse import parse_qs # For Python 3 +except ImportError: + try: + from urlparse import parse_qs # NOQA + except ImportError: # For Python <2.6 + from cgi import parse_qs # NOQA + +try: + from nose.tools import (assert_dict_contains_subset, assert_dict_equal) +except ImportError: # for Python <2.7 + import unittest2 + + _binding = unittest2.TestCase('run') + assert_dict_contains_subset = _binding.assertDictContainsSubset # NOQA + assert_dict_equal = _binding.assertDictEqual # NOQA + from github2 import request +def assert_params(first, second): + assert_dict_equal(first, parse_qs(second)) + + +def assert_params_contain(first, second): + assert_dict_contains_subset(first, parse_qs(second)) + + class TestAuthEncode(unittest.TestCase): - """Test processing of authentication data""" + + """Test processing of authentication data.""" + def setUp(self): self.r = request.GithubRequest() def test_unauthenticated(self): - assert_equals('', self.r.encode_authentication_data({})) + assert_params({}, self.r.encode_authentication_data({})) def test_access_token(self): - self.r.access_token = 'hex string' - assert_equals('access_token=hex+string', - self.r.encode_authentication_data({})) - assert_true('access_token=hex+string' in - self.r.encode_authentication_data({'key': 'value'})) - self.r.access_token = None + try: + self.r.access_token = 'hex string' + assert_params({'access_token': ['hex string', ]}, + self.r.encode_authentication_data({})) + finally: + self.r.access_token = None def test_user_token(self): - self.r.username = 'user' - self.r.api_token = 'hex string' - assert_equals('login=user&token=hex+string', - self.r.encode_authentication_data({})) - assert_true('login=user&token=hex+string' in - self.r.encode_authentication_data({'key': 'value'})) - self.r.username = self.r.api_token = None + try: + self.r.username = 'user' + self.r.api_token = 'hex string' + token_params = {'login': ['user', ], 'token': ['hex string', ]} + assert_params(token_params, self.r.encode_authentication_data({})) + finally: + self.r.username = self.r.api_token = None + + +class TestParameterEncoding(unittest.TestCase): + def setUp(self): + self.r = request.GithubRequest() + self.params = { + 'key1': 'value1', + 'key2': 'value2', + } + + def test_no_parameters(self): + assert_params({}, self.r.encode_authentication_data({})) + + def test_parameters(self): + assert_params({'key1': ['value1', ], 'key2': ['value2', ]}, + self.r.encode_authentication_data(self.params)) + + def test_parameters_with_auth(self): + try: + self.r.username = 'user' + self.r.api_token = 'hex string' + assert_params({'key2': ['value2', ], 'login': ['user', ], + 'token': ['hex string', ], 'key1': ['value1', ]}, + self.r.encode_authentication_data(self.params)) + finally: + self.r.username = '' + self.r.api_token = '' + + def test_multivalue_parameters(self): + multivals = {'key': ['value1', 'value2']} + assert_params(multivals, self.r.encode_authentication_data(multivals)) diff --git a/tests/test_teams.py b/tests/test_teams.py new file mode 100644 index 0000000..cd18166 --- /dev/null +++ b/tests/test_teams.py @@ -0,0 +1,14 @@ +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. + +from nose.tools import eq_ + +import utils + + +class TeamEdits(utils.HttpMockAuthenticatedTestCase): + def test_add_member(self): + users = self.client.teams.add_member(121990, 'JNRowe') + eq_(users[0].login, 'JNRowe') diff --git a/tests/test_tz_aware_date_handling.py b/tests/test_tz_aware_date_handling.py index c2e07c6..c2b152f 100644 --- a/tests/test_tz_aware_date_handling.py +++ b/tests/test_tz_aware_date_handling.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- - -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. from datetime import datetime as dt from dateutil.tz import tzutc -from nose.tools import assert_equals +from nose.tools import eq_ from github2 import core from github2.core import (datetime_to_ghdate, datetime_to_commitdate, @@ -13,168 +15,169 @@ def setup_module(): - """Enable timezone-aware datetime handling for this module's tests""" + """Enable timezone-aware datetime handling for this module's tests.""" core.NAIVE = False def teardown_module(): - """Disable timezone-aware datetime handling when finished with this module""" + """Disable timezone-aware datetime handling when tests have completed.""" core.NAIVE = True def dt_utz(year, month, day, hour, minute, second): - """Produce a UTC-anchored datetime object + """Produce a UTC-anchored datetime object. + + :see: :class:`datetime.datetime` - :see: ``datetime.datetime`` """ return dt(year, month, day, hour, minute, second, tzinfo=tzutc()) def test_ghdate_to_datetime(): - assert_equals(string_to_datetime('2011/05/22 00:24:15 -0700'), - dt_utz(2011, 5, 22, 7, 24, 15)) - assert_equals(string_to_datetime('2009/04/18 13:04:09 -0700'), - dt_utz(2009, 4, 18, 20, 4, 9)) - assert_equals(string_to_datetime('2009/11/12 21:15:17 -0800'), - dt_utz(2009, 11, 13, 5, 15, 17)) - assert_equals(string_to_datetime('2009/11/12 21:16:20 -0800'), - dt_utz(2009, 11, 13, 5, 16, 20)) - assert_equals(string_to_datetime('2010/04/17 17:24:29 -0700'), - dt_utz(2010, 4, 18, 0, 24, 29)) - assert_equals(string_to_datetime('2010/05/18 06:10:36 -0700'), - dt_utz(2010, 5, 18, 13, 10, 36)) - assert_equals(string_to_datetime('2010/05/25 21:59:37 -0700'), - dt_utz(2010, 5, 26, 4, 59, 37)) - assert_equals(string_to_datetime('2010/05/26 17:08:41 -0700'), - dt_utz(2010, 5, 27, 0, 8, 41)) - assert_equals(string_to_datetime('2010/06/20 06:13:37 -0700'), - dt_utz(2010, 6, 20, 13, 13, 37)) - assert_equals(string_to_datetime('2010/07/28 12:56:51 -0700'), - dt_utz(2010, 7, 28, 19, 56, 51)) - assert_equals(string_to_datetime('2010/09/20 21:32:49 -0700'), - dt_utz(2010, 9, 21, 4, 32, 49)) + eq_(string_to_datetime('2011/05/22 00:24:15 -0700'), + dt_utz(2011, 5, 22, 7, 24, 15)) + eq_(string_to_datetime('2009/04/18 13:04:09 -0700'), + dt_utz(2009, 4, 18, 20, 4, 9)) + eq_(string_to_datetime('2009/11/12 21:15:17 -0800'), + dt_utz(2009, 11, 13, 5, 15, 17)) + eq_(string_to_datetime('2009/11/12 21:16:20 -0800'), + dt_utz(2009, 11, 13, 5, 16, 20)) + eq_(string_to_datetime('2010/04/17 17:24:29 -0700'), + dt_utz(2010, 4, 18, 0, 24, 29)) + eq_(string_to_datetime('2010/05/18 06:10:36 -0700'), + dt_utz(2010, 5, 18, 13, 10, 36)) + eq_(string_to_datetime('2010/05/25 21:59:37 -0700'), + dt_utz(2010, 5, 26, 4, 59, 37)) + eq_(string_to_datetime('2010/05/26 17:08:41 -0700'), + dt_utz(2010, 5, 27, 0, 8, 41)) + eq_(string_to_datetime('2010/06/20 06:13:37 -0700'), + dt_utz(2010, 6, 20, 13, 13, 37)) + eq_(string_to_datetime('2010/07/28 12:56:51 -0700'), + dt_utz(2010, 7, 28, 19, 56, 51)) + eq_(string_to_datetime('2010/09/20 21:32:49 -0700'), + dt_utz(2010, 9, 21, 4, 32, 49)) def test_datetime_to_ghdate(): - assert_equals(datetime_to_ghdate(dt_utz(2011, 5, 22, 7, 24, 15)), - '2011/05/22 00:24:15 -0700') - assert_equals(datetime_to_ghdate(dt_utz(2009, 4, 18, 20, 4, 9)), - '2009/04/18 13:04:09 -0700') - assert_equals(datetime_to_ghdate(dt_utz(2009, 11, 13, 4, 15, 17)), - '2009/11/12 20:15:17 -0800') - assert_equals(datetime_to_ghdate(dt_utz(2009, 11, 13, 4, 16, 20)), - '2009/11/12 20:16:20 -0800') - assert_equals(datetime_to_ghdate(dt_utz(2010, 4, 18, 0, 24, 29)), - '2010/04/17 17:24:29 -0700') - assert_equals(datetime_to_ghdate(dt_utz(2010, 5, 18, 13, 10, 36)), - '2010/05/18 06:10:36 -0700') - assert_equals(datetime_to_ghdate(dt_utz(2010, 5, 26, 5, 59, 37)), - '2010/05/25 22:59:37 -0700') - assert_equals(datetime_to_ghdate(dt_utz(2010, 5, 27, 0, 8, 41)), - '2010/05/26 17:08:41 -0700') - assert_equals(datetime_to_ghdate(dt_utz(2010, 6, 20, 13, 13, 37)), - '2010/06/20 06:13:37 -0700') - assert_equals(datetime_to_ghdate(dt_utz(2010, 7, 28, 19, 56, 51)), - '2010/07/28 12:56:51 -0700') - assert_equals(datetime_to_ghdate(dt_utz(2010, 9, 21, 4, 32, 49)), - '2010/09/20 21:32:49 -0700') + eq_(datetime_to_ghdate(dt_utz(2011, 5, 22, 7, 24, 15)), + '2011/05/22 00:24:15 -0700') + eq_(datetime_to_ghdate(dt_utz(2009, 4, 18, 20, 4, 9)), + '2009/04/18 13:04:09 -0700') + eq_(datetime_to_ghdate(dt_utz(2009, 11, 13, 4, 15, 17)), + '2009/11/12 20:15:17 -0800') + eq_(datetime_to_ghdate(dt_utz(2009, 11, 13, 4, 16, 20)), + '2009/11/12 20:16:20 -0800') + eq_(datetime_to_ghdate(dt_utz(2010, 4, 18, 0, 24, 29)), + '2010/04/17 17:24:29 -0700') + eq_(datetime_to_ghdate(dt_utz(2010, 5, 18, 13, 10, 36)), + '2010/05/18 06:10:36 -0700') + eq_(datetime_to_ghdate(dt_utz(2010, 5, 26, 5, 59, 37)), + '2010/05/25 22:59:37 -0700') + eq_(datetime_to_ghdate(dt_utz(2010, 5, 27, 0, 8, 41)), + '2010/05/26 17:08:41 -0700') + eq_(datetime_to_ghdate(dt_utz(2010, 6, 20, 13, 13, 37)), + '2010/06/20 06:13:37 -0700') + eq_(datetime_to_ghdate(dt_utz(2010, 7, 28, 19, 56, 51)), + '2010/07/28 12:56:51 -0700') + eq_(datetime_to_ghdate(dt_utz(2010, 9, 21, 4, 32, 49)), + '2010/09/20 21:32:49 -0700') def test_commitdate_to_datetime(): - assert_equals(string_to_datetime('2011-05-22T00:24:15-07:00'), - dt_utz(2011, 5, 22, 7, 24, 15)) - assert_equals(string_to_datetime('2011-04-09T10:07:30-07:00'), - dt_utz(2011, 4, 9, 17, 7, 30)) - assert_equals(string_to_datetime('2011-02-19T07:16:11-08:00'), - dt_utz(2011, 2, 19, 15, 16, 11)) - assert_equals(string_to_datetime('2010-12-21T12:34:27-08:00'), - dt_utz(2010, 12, 21, 20, 34, 27)) - assert_equals(string_to_datetime('2011-04-09T10:20:05-07:00'), - dt_utz(2011, 4, 9, 17, 20, 5)) - assert_equals(string_to_datetime('2011-04-09T10:05:58-07:00'), - dt_utz(2011, 4, 9, 17, 5, 58)) - assert_equals(string_to_datetime('2011-04-09T09:53:00-07:00'), - dt_utz(2011, 4, 9, 16, 53, 0)) - assert_equals(string_to_datetime('2011-04-09T10:00:21-07:00'), - dt_utz(2011, 4, 9, 17, 0, 21)) - assert_equals(string_to_datetime('2010-12-16T15:10:59-08:00'), - dt_utz(2010, 12, 16, 23, 10, 59)) - assert_equals(string_to_datetime('2011-04-09T09:53:00-07:00'), - dt_utz(2011, 4, 9, 16, 53, 0)) - assert_equals(string_to_datetime('2011-04-09T09:53:00-07:00'), - dt_utz(2011, 4, 9, 16, 53, 0)) + eq_(string_to_datetime('2011-05-22T00:24:15-07:00'), + dt_utz(2011, 5, 22, 7, 24, 15)) + eq_(string_to_datetime('2011-04-09T10:07:30-07:00'), + dt_utz(2011, 4, 9, 17, 7, 30)) + eq_(string_to_datetime('2011-02-19T07:16:11-08:00'), + dt_utz(2011, 2, 19, 15, 16, 11)) + eq_(string_to_datetime('2010-12-21T12:34:27-08:00'), + dt_utz(2010, 12, 21, 20, 34, 27)) + eq_(string_to_datetime('2011-04-09T10:20:05-07:00'), + dt_utz(2011, 4, 9, 17, 20, 5)) + eq_(string_to_datetime('2011-04-09T10:05:58-07:00'), + dt_utz(2011, 4, 9, 17, 5, 58)) + eq_(string_to_datetime('2011-04-09T09:53:00-07:00'), + dt_utz(2011, 4, 9, 16, 53, 0)) + eq_(string_to_datetime('2011-04-09T10:00:21-07:00'), + dt_utz(2011, 4, 9, 17, 0, 21)) + eq_(string_to_datetime('2010-12-16T15:10:59-08:00'), + dt_utz(2010, 12, 16, 23, 10, 59)) + eq_(string_to_datetime('2011-04-09T09:53:00-07:00'), + dt_utz(2011, 4, 9, 16, 53, 0)) + eq_(string_to_datetime('2011-04-09T09:53:00-07:00'), + dt_utz(2011, 4, 9, 16, 53, 0)) def test_datetime_to_commitdate(): - assert_equals(datetime_to_commitdate(dt_utz(2011, 5, 22, 7, 24, 15)), - '2011-05-22T00:24:15-07:00') - assert_equals(datetime_to_commitdate(dt_utz(2011, 4, 9, 17, 7, 30)), - '2011-04-09T10:07:30-07:00') - assert_equals(datetime_to_commitdate(dt_utz(2011, 2, 19, 15, 16, 11)), - '2011-02-19T07:16:11-08:00') - assert_equals(datetime_to_commitdate(dt_utz(2010, 12, 21, 20, 34, 27)), - '2010-12-21T12:34:27-08:00') - assert_equals(datetime_to_commitdate(dt_utz(2011, 4, 9, 17, 20, 5)), - '2011-04-09T10:20:05-07:00') - assert_equals(datetime_to_commitdate(dt_utz(2011, 4, 9, 17, 5, 58)), - '2011-04-09T10:05:58-07:00') - assert_equals(datetime_to_commitdate(dt_utz(2011, 4, 9, 16, 53, 0)), - '2011-04-09T09:53:00-07:00') - assert_equals(datetime_to_commitdate(dt_utz(2011, 4, 9, 17, 0, 21)), - '2011-04-09T10:00:21-07:00') - assert_equals(datetime_to_commitdate(dt_utz(2010, 12, 16, 23, 10, 59)), - '2010-12-16T15:10:59-08:00') - assert_equals(datetime_to_commitdate(dt_utz(2011, 4, 9, 16, 53, 0)), - '2011-04-09T09:53:00-07:00') - assert_equals(datetime_to_commitdate(dt_utz(2011, 4, 9, 16, 53, 0)), - '2011-04-09T09:53:00-07:00') + eq_(datetime_to_commitdate(dt_utz(2011, 5, 22, 7, 24, 15)), + '2011-05-22T00:24:15-07:00') + eq_(datetime_to_commitdate(dt_utz(2011, 4, 9, 17, 7, 30)), + '2011-04-09T10:07:30-07:00') + eq_(datetime_to_commitdate(dt_utz(2011, 2, 19, 15, 16, 11)), + '2011-02-19T07:16:11-08:00') + eq_(datetime_to_commitdate(dt_utz(2010, 12, 21, 20, 34, 27)), + '2010-12-21T12:34:27-08:00') + eq_(datetime_to_commitdate(dt_utz(2011, 4, 9, 17, 20, 5)), + '2011-04-09T10:20:05-07:00') + eq_(datetime_to_commitdate(dt_utz(2011, 4, 9, 17, 5, 58)), + '2011-04-09T10:05:58-07:00') + eq_(datetime_to_commitdate(dt_utz(2011, 4, 9, 16, 53, 0)), + '2011-04-09T09:53:00-07:00') + eq_(datetime_to_commitdate(dt_utz(2011, 4, 9, 17, 0, 21)), + '2011-04-09T10:00:21-07:00') + eq_(datetime_to_commitdate(dt_utz(2010, 12, 16, 23, 10, 59)), + '2010-12-16T15:10:59-08:00') + eq_(datetime_to_commitdate(dt_utz(2011, 4, 9, 16, 53, 0)), + '2011-04-09T09:53:00-07:00') + eq_(datetime_to_commitdate(dt_utz(2011, 4, 9, 16, 53, 0)), + '2011-04-09T09:53:00-07:00') def test_isodate_to_datetime(): - assert_equals(string_to_datetime('2011-05-22T00:24:15Z'), - dt_utz(2011, 5, 22, 0, 24, 15)) - assert_equals(string_to_datetime('2011-04-09T10:07:30Z'), - dt_utz(2011, 4, 9, 10, 7, 30)) - assert_equals(string_to_datetime('2011-02-19T07:16:11Z'), - dt_utz(2011, 2, 19, 7, 16, 11)) - assert_equals(string_to_datetime('2010-12-21T12:34:27Z'), - dt_utz(2010, 12, 21, 12, 34, 27)) - assert_equals(string_to_datetime('2011-04-09T10:20:05Z'), - dt_utz(2011, 4, 9, 10, 20, 5)) - assert_equals(string_to_datetime('2011-04-09T10:05:58Z'), - dt_utz(2011, 4, 9, 10, 5, 58)) - assert_equals(string_to_datetime('2011-04-09T09:53:00Z'), - dt_utz(2011, 4, 9, 9, 53, 0)) - assert_equals(string_to_datetime('2011-04-09T10:00:21Z'), - dt_utz(2011, 4, 9, 10, 0, 21)) - assert_equals(string_to_datetime('2010-12-16T15:10:59Z'), - dt_utz(2010, 12, 16, 15, 10, 59)) - assert_equals(string_to_datetime('2011-04-09T09:53:00Z'), - dt_utz(2011, 4, 9, 9, 53, 0)) - assert_equals(string_to_datetime('2011-04-09T09:53:00Z'), - dt_utz(2011, 4, 9, 9, 53, 0)) + eq_(string_to_datetime('2011-05-22T00:24:15Z'), + dt_utz(2011, 5, 22, 0, 24, 15)) + eq_(string_to_datetime('2011-04-09T10:07:30Z'), + dt_utz(2011, 4, 9, 10, 7, 30)) + eq_(string_to_datetime('2011-02-19T07:16:11Z'), + dt_utz(2011, 2, 19, 7, 16, 11)) + eq_(string_to_datetime('2010-12-21T12:34:27Z'), + dt_utz(2010, 12, 21, 12, 34, 27)) + eq_(string_to_datetime('2011-04-09T10:20:05Z'), + dt_utz(2011, 4, 9, 10, 20, 5)) + eq_(string_to_datetime('2011-04-09T10:05:58Z'), + dt_utz(2011, 4, 9, 10, 5, 58)) + eq_(string_to_datetime('2011-04-09T09:53:00Z'), + dt_utz(2011, 4, 9, 9, 53, 0)) + eq_(string_to_datetime('2011-04-09T10:00:21Z'), + dt_utz(2011, 4, 9, 10, 0, 21)) + eq_(string_to_datetime('2010-12-16T15:10:59Z'), + dt_utz(2010, 12, 16, 15, 10, 59)) + eq_(string_to_datetime('2011-04-09T09:53:00Z'), + dt_utz(2011, 4, 9, 9, 53, 0)) + eq_(string_to_datetime('2011-04-09T09:53:00Z'), + dt_utz(2011, 4, 9, 9, 53, 0)) def test_datetime_to_isodate(): - assert_equals(datetime_to_isodate(dt_utz(2011, 5, 22, 0, 24, 15)), - '2011-05-22T00:24:15Z') - assert_equals(datetime_to_isodate(dt_utz(2011, 4, 9, 10, 7, 30)), - '2011-04-09T10:07:30Z') - assert_equals(datetime_to_isodate(dt_utz(2011, 2, 19, 7, 16, 11)), - '2011-02-19T07:16:11Z') - assert_equals(datetime_to_isodate(dt_utz(2010, 12, 21, 12, 34, 27)), - '2010-12-21T12:34:27Z') - assert_equals(datetime_to_isodate(dt_utz(2011, 4, 9, 10, 20, 5)), - '2011-04-09T10:20:05Z') - assert_equals(datetime_to_isodate(dt_utz(2011, 4, 9, 10, 5, 58)), - '2011-04-09T10:05:58Z') - assert_equals(datetime_to_isodate(dt_utz(2011, 4, 9, 9, 53, 0)), - '2011-04-09T09:53:00Z') - assert_equals(datetime_to_isodate(dt_utz(2011, 4, 9, 10, 0, 21)), - '2011-04-09T10:00:21Z') - assert_equals(datetime_to_isodate(dt_utz(2010, 12, 16, 15, 10, 59)), - '2010-12-16T15:10:59Z') - assert_equals(datetime_to_isodate(dt_utz(2011, 4, 9, 9, 53, 0)), - '2011-04-09T09:53:00Z') - assert_equals(datetime_to_isodate(dt_utz(2011, 4, 9, 9, 53, 0)), - '2011-04-09T09:53:00Z') + eq_(datetime_to_isodate(dt_utz(2011, 5, 22, 0, 24, 15)), + '2011-05-22T00:24:15Z') + eq_(datetime_to_isodate(dt_utz(2011, 4, 9, 10, 7, 30)), + '2011-04-09T10:07:30Z') + eq_(datetime_to_isodate(dt_utz(2011, 2, 19, 7, 16, 11)), + '2011-02-19T07:16:11Z') + eq_(datetime_to_isodate(dt_utz(2010, 12, 21, 12, 34, 27)), + '2010-12-21T12:34:27Z') + eq_(datetime_to_isodate(dt_utz(2011, 4, 9, 10, 20, 5)), + '2011-04-09T10:20:05Z') + eq_(datetime_to_isodate(dt_utz(2011, 4, 9, 10, 5, 58)), + '2011-04-09T10:05:58Z') + eq_(datetime_to_isodate(dt_utz(2011, 4, 9, 9, 53, 0)), + '2011-04-09T09:53:00Z') + eq_(datetime_to_isodate(dt_utz(2011, 4, 9, 10, 0, 21)), + '2011-04-09T10:00:21Z') + eq_(datetime_to_isodate(dt_utz(2010, 12, 16, 15, 10, 59)), + '2010-12-16T15:10:59Z') + eq_(datetime_to_isodate(dt_utz(2011, 4, 9, 9, 53, 0)), + '2011-04-09T09:53:00Z') + eq_(datetime_to_isodate(dt_utz(2011, 4, 9, 9, 53, 0)), + '2011-04-09T09:53:00Z') diff --git a/tests/test_unit.py b/tests/test_unit.py index 43fe2fc..104256d 100644 --- a/tests/test_unit.py +++ b/tests/test_unit.py @@ -1,13 +1,18 @@ -# -*- coding: latin-1 -*- +# -*- coding: utf-8 -*- +# Copyright (C) 2010-2012 Adam Vandenberg +# James Rowe +# Jeremy Dunck +# modocache +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. -import _setup - -import datetime import unittest -from nose.tools import (assert_equals, assert_true) +from mock import patch +from nose.tools import (eq_, ok_, raises) -from github2.core import repr_string +from github2.core import (AuthError, repr_string, requires_auth) from github2.issues import Issue from github2.client import Github @@ -15,47 +20,97 @@ class ReprTests(unittest.TestCase): + """__repr__ must return strings, not unicode objects.""" def test_issue(self): """Issues can have non-ASCII characters in the title.""" title = 'abcdé' i = Issue(title=title) - assert_equals(str, type(repr(i))) + eq_(str, type(repr(i))) + + +class HostSetting(unittest.TestCase): + def test_default_host(self): + client = Github() + eq_(client.request.github_url, 'https://github.com') + + def test_non_standard_host(self): + client = Github(github_url="http://your-github-enterprise-url.com/") + eq_(client.request.github_url, + 'http://your-github-enterprise-url.com/') class RateLimits(utils.HttpMockTestCase): - """Test API rate-limitting""" - def test_delays(self): - """Test call delay is at least one second""" + + """Test API rate-limiting.""" + + @patch('github2.request.time.sleep') + def test_delays(self, sleep): + """Test calls in quick succession are delayed.""" client = Github(requests_per_second=.5) client.users.show('defunkt') - start = datetime.datetime.now() client.users.show('mojombo') - end = datetime.datetime.now() - delta = end - start - delta_seconds = delta.days * 24 * 60 * 60 + delta.seconds - - assert_true(delta_seconds >= 2, - "Expected .5 reqs per second to require a 2 second delay " - "between calls.") + # 0.5 requests per second, means a two second delay + sleep.assert_called_once_with(2.0) class BaseDataIter(utils.HttpMockTestCase): - """Test iter availability of objects""" + + """Test iter availability of objects.""" + def test_iter(self): commit_id = '1c83cde9b5a7c396a01af1007fb7b88765b9ae45' commit = self.client.commits.show('ask/python-github2', commit_id) - assert_true('__iter__' in dir(commit)) + ok_('__iter__' in dir(commit)) + + +class BaseDataDict(utils.HttpMockTestCase): + + """Test dict compatibility on objects.""" + + def test_getitem(self): + user = self.client.users.show('defunkt') + eq_(user['blog'], user.blog) + eq_(user['company'], user.company) + eq_(user['email'], user.email) + eq_(user['location'], user.location) + eq_(user['login'], user.login) + eq_(user['name'], user.name) + + @raises(KeyError) + def test_getitem_failure(self): + user = self.client.users.show('defunkt') + ok_(user['invalid_key']) + + def test_setitem(self): + user = self.client.users.show('defunkt') + user['blog'] = 'http://example.com' + eq_(user['blog'], 'http://example.com') + + @raises(KeyError) + def test_setitem_failure(self): + user = self.client.users.show('defunkt') + user['invalid_key'] = 'test' def test_project_for_user_repo(): client = Github() - assert_equals(client.project_for_user_repo('JNRowe', 'misc-overlay'), + eq_(client.project_for_user_repo('JNRowe', 'misc-overlay'), 'JNRowe/misc-overlay') + def test_repr_string(): - assert_equals(repr_string('test'), 'test') - assert_equals(repr_string('abcdefghijklmnopqrst'), 'abcdefghijklmnopqrst') - assert_equals(repr_string('abcdefghijklmnopqrstu'), 'abcdefghijklmnopq...') + eq_(repr_string('test'), 'test') + eq_(repr_string('abcdefghijklmnopqrst'), 'abcdefghijklmnopqrst') + eq_(repr_string('abcdefghijklmnopqrstu'), 'abcdefghijklmnopq...') + + +class RequiresAuth(utils.HttpMockTestCase): + @raises(AuthError) + def test_no_auth(self): + f = lambda: None + f.__doc__ = 'test func' + wrapped = requires_auth(f) + wrapped(self.client) diff --git a/tests/test_user.py b/tests/test_user.py index cf5444c..c2fab11 100644 --- a/tests/test_user.py +++ b/tests/test_user.py @@ -1,62 +1,66 @@ -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. import datetime -from nose.tools import (assert_equals, assert_false, assert_true) - -from github2.client import Github +from nose.tools import (eq_, assert_false, ok_) import utils class UserProperties(utils.HttpMockTestCase): - """Test user property handling""" + + """Test user property handling.""" + def test_user(self): user = self.client.users.show('defunkt') - assert_equals(user.blog, 'http://chriswanstrath.com/') - assert_equals(user.company, 'GitHub') - assert_equals(user.email, 'chris@wanstrath.com') - assert_equals(user.location, 'San Francisco') - assert_equals(user.login, 'defunkt') - assert_equals(user.name, 'Chris Wanstrath') + eq_(user.blog, 'http://chriswanstrath.com/') + eq_(user.company, 'GitHub') + eq_(user.email, 'chris@wanstrath.com') + eq_(user.location, 'San Francisco') + eq_(user.login, 'defunkt') + eq_(user.name, 'Chris Wanstrath') def test_meta(self): user = self.client.users.show('defunkt') - assert_equals(user.created_at, - datetime.datetime(2007, 10, 19, 22, 24, 19)) - assert_equals(user.followers_count, 2593) - assert_equals(user.following_count, 212) - assert_equals(user.gravatar_id, 'b8dbb1987e8e5318584865f880036796') - assert_equals(user.id, 2) - assert_equals(user.public_gist_count, 277) - assert_equals(user.public_repo_count, 90) + eq_(user.created_at, datetime.datetime(2007, 10, 19, 22, 24, 19)) + eq_(user.followers_count, 3402) + eq_(user.following_count, 212) + eq_(user.gravatar_id, 'b8dbb1987e8e5318584865f880036796') + eq_(user.id, 2) + eq_(user.public_gist_count, 278) + eq_(user.public_repo_count, 93) def test_followers(self): - assert_equals(len(self.client.users.followers('defunkt')), 2593) + eq_(len(self.client.users.followers('defunkt')), 3402) def test_following(self): - assert_equals(len(self.client.users.following('defunkt')), 212) + eq_(len(self.client.users.following('defunkt')), 212) def test_is_not_authenticated(self): user = self.client.users.show('defunkt') - assert_true(user.is_authenticated() is False) + ok_(user.is_authenticated() is False) class UserQueries(utils.HttpMockTestCase): - """Test user querying """ + + """Test user querying.""" + def test_search(self): - assert_equals(repr(self.client.users.search('James Rowe')), - '[, ]') + eq_(repr(self.client.users.search('James Rowe')), + '[, ]') def test_search_by_email(self): user = self.client.users.search_by_email('jnrowe@gmail.com') - assert_equals(repr(user), '') + eq_(repr(user), '') class AuthenticatedUserMethods(utils.HttpMockAuthenticatedTestCase): def test_follow(self): result = self.client.users.follow('defunkt') - assert_true('defunkt' in result['users']) + ok_('defunkt' in result['users']) def test_unfollow(self): result = self.client.users.unfollow('defunkt') @@ -64,21 +68,25 @@ def test_unfollow(self): def test_is_authenticated(self): user = self.client.users.show('') - assert_true(user.is_authenticated() is True) + ok_(user.is_authenticated() is True) + + def test_list_keys(self): + keys = self.client.users.list_keys() + eq_(keys[0].id, 1337) class AuthenticatedUserProperties(utils.HttpMockAuthenticatedTestCase): def test_private_data(self): user = self.client.users.show('') - assert_equals(user.total_private_repo_count, 0) - assert_equals(user.collaborators, 0) - assert_equals(user.disk_usage, 66069) - assert_equals(user.owned_private_repo_count, 0) - assert_equals(user.private_gist_count, 7) + eq_(user.total_private_repo_count, 0) + eq_(user.collaborators, 0) + eq_(user.disk_usage, 66069) + eq_(user.owned_private_repo_count, 0) + eq_(user.private_gist_count, 7) def test_plan_data(self): user = self.client.users.show('') - assert_equals(user.plan['name'], "free") - assert_equals(user.plan['collaborators'], 0) - assert_equals(user.plan['space'], 307200) - assert_equals(user.plan['private_repos'], 0) + eq_(user.plan['name'], "free") + eq_(user.plan['collaborators'], 0) + eq_(user.plan['space'], 307200) + eq_(user.plan['private_repos'], 0) diff --git a/tests/utils.py b/tests/utils.py index d05e258..313836e 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -1,4 +1,7 @@ -import _setup +# Copyright (C) 2011-2012 James Rowe +# +# This file is part of python-github2, and is made available under the 3-clause +# BSD license. See LICENSE for the full details. import os import sys @@ -8,6 +11,8 @@ import httplib2 +from mock import Mock + from github2.client import Github from github2.request import charset_from_headers @@ -16,84 +21,62 @@ bytes = lambda x, enc: x -HTTP_DATA_DIR = "tests/data/" +ORIG_REQUEST_METHOD = httplib2.Http.request -ORIG_HTTP_OBJECT = httplib2.Http +def request_mock(uri, method='GET', body=None, headers=None, + redirections=5, connection_type=None): + """Http mock side effect that returns saved entries. -class HttpMock(object): - """Simple Http mock that returns saved entries + Implementation tests should never span network boundaries. - Implementation tests should never span network boundaries """ - def __init__(self, cache=None, timeout=None, proxy_info=None, ca_certs=None): - """Create a mock httplib.Http object - - .. attribute: called_with - - ``locals()`` during ``__init__``, for testing call spec - """ - self.called_with = locals() - - def request(self, uri, method='GET', body=None, headers=None, - redirections=5, connection_type=None): - file = os.path.join(HTTP_DATA_DIR, httplib2.safename(uri)) - if os.path.exists(file): - response = message_from_file(open(file)) - headers = httplib2.Response(response) - body = bytes(response.get_payload(), charset_from_headers(headers)) - return (headers, body) - else: - return (httplib2.Response({"status": "404"}), - "Resource %r unavailable from test data store" % file) + file = os.path.join("tests/data", httplib2.safename(uri)) + if os.path.exists(file): + response = message_from_file(open(file)) + headers = httplib2.Response(response) + body = bytes(response.get_payload(), charset_from_headers(headers)) + return (headers, body) + else: + return (httplib2.Response({"status": "404"}), + "Resource %r unavailable from test data store" % file) class HttpMockTestCase(unittest.TestCase): def setUp(self): - """Prepare test fixtures + """Prepare test fixtures. `httplib2.Http` is patched to return cached entries via :class:`HttpMock`. :attr:`client` is an unauthenticated :obj:`Github` object for easy use in tests. + """ - httplib2.Http = HttpMock + httplib2.Http.request = Mock(spec_set=httplib2.Http.request, + side_effect=request_mock) self.client = Github() def tearDown(self): - """Remove test fixtures + """Remove test fixtures. `httplib2.Http` is returned to its original state. + """ - httplib2.Http = ORIG_HTTP_OBJECT + httplib2.Http.request = ORIG_REQUEST_METHOD class HttpMockAuthenticatedTestCase(HttpMockTestCase): def setUp(self): - """Prepare test fixtures + """Prepare test fixtures. - :see: ``HttpMockTestCase`` + :see: :class:`HttpMockTestCase` :attr:`client` is an authenticated :obj:`Github` object for easy use in tests. + """ - httplib2.Http = HttpMock + httplib2.Http.request = Mock(spec_set=httplib2.Http.request, + side_effect=request_mock) self.client = Github(access_token='xxx') - - -def set_http_mock(): - """Function to enable ``Http`` mock - - This is useful in simple `nose`-compliant test functions - """ - httplib2.Http = HttpMock - - -def unset_http_mock(): - """Function to disable ``Http`` mock - - :see: :func:`set_http_mock` - """ - httplib2.Http = ORIG_HTTP_OBJECT diff --git a/tox.ini b/tox.ini index 7a01449..ffb9775 100644 --- a/tox.ini +++ b/tox.ini @@ -6,10 +6,28 @@ envlist = py24, py25, py26, py27, py31, py32, rst, sphinx deps = nose coverage + mock commands = - rm -rf build - {envpython} setup.py build nosetests {posargs:-vv} tests +# When tox 1.4 is released use substitution to remove all the duplication. +[testenv:py24] +deps = + nose + coverage + mock + unittest2 +[testenv:py25] +deps = + nose + coverage + mock + unittest2 +[testenv:py26] +deps = + nose + coverage + mock + unittest2 [testenv:rst] deps = docutils