diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..3088a753b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: daily + + - package-ecosystem: pip + directory: /docs/source + schedule: + interval: daily diff --git a/.github/labels.yml b/.github/labels.yml new file mode 100644 index 000000000..f7f83aad8 --- /dev/null +++ b/.github/labels.yml @@ -0,0 +1,66 @@ +--- +# Labels names are important as they are used by Release Drafter to decide +# regarding where to record them in changelog or if to skip them. +# +# The repository labels will be automatically configured using this file and +# the GitHub Action https://github.com/marketplace/actions/github-labeler. +- name: breaking + description: Breaking Changes + color: bfd4f2 +- name: bug + description: Something isn't working + color: d73a4a +- name: build + description: Build System and Dependencies + color: bfdadc +- name: ci + description: Continuous Integration + color: 4a97d6 +- name: dependencies + description: Pull requests that update a dependency file + color: 0366d6 +- name: documentation + description: Improvements or additions to documentation + color: 0075ca +- name: duplicate + description: This issue or pull request already exists + color: cfd3d7 +- name: enhancement + description: New feature or request + color: a2eeef +- name: github_actions + description: Pull requests that update Github_actions code + color: "000000" +- name: good first issue + description: Good for newcomers + color: 7057ff +- name: help wanted + description: Extra attention is needed + color: 008672 +- name: invalid + description: This doesn't seem right + color: e4e669 +- name: performance + description: Performance + color: "016175" +- name: python + description: Pull requests that update Python code + color: 2b67c6 +- name: question + description: Further information is requested + color: d876e3 +- name: refactoring + description: Refactoring + color: ef67c4 +- name: removal + description: Removals and Deprecations + color: 9ae7ea +- name: style + description: Style + color: c120e5 +- name: testing + description: Testing + color: b1fc6f +- name: wontfix + description: This will not be worked on + color: ffffff diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..a324494a9 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,26 @@ +Before opening a new issue, please [search][] for a previously filed +issue to ensure you're not creating a duplicate. + +**Note** Bug reports without the following will receive requests for these +details to be provided. + +## Version Information + +Please provide: + +- The version of Python you're using + +- The version of pip you used to install github3.py + +- The version of github3.py, requests, uritemplate, and python-dateutil installed + +## Minimum Reproducible Example + +Please provide an example of the code that generates the error you're seeing. + +## Exception information + +What is exceptional about what you're seeing versus what you expected to see. + + +[search]: https://github.com/sigmavirus24/github3.py/issues?utf8=%E2%9C%93&q=is%3Aissue diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..13faa6d2d --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,56 @@ +name: Python tests + +on: [push, pull_request] + +permissions: + contents: read + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python: + - { VERSION: "3.9", TOXENV: "py39", ALLOW_FAILURE: false } + - { VERSION: "3.10", TOXENV: "py310", ALLOW_FAILURE: false } + - { VERSION: "3.11", TOXENV: "py311", ALLOW_FAILURE: false } + - { VERSION: "3.12", TOXENV: "py312", ALLOW_FAILURE: false } + - { VERSION: "3.13", TOXENV: "py313", ALLOW_FAILURE: false } + - { + VERSION: "3.13", + TOXENV: "flake8,doclint,docs,commitlint", + ALLOW_FAILURE: false, + } + - { VERSION: "3.13", TOXENV: "docstrings", ALLOW_FAILURE: true } + - { VERSION: "pypy3.9", TOXENV: "pypy", ALLOW_FAILURE: false } + + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 + with: + egress-policy: audit + + - name: Check out the repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Setup Python + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 + with: + python-version: ${{ matrix.PYTHON.VERSION }} + + - name: Upgrade pip + run: | + pip install pip + pip --version + + - name: Install Tox + run: | + pip install tox + tox --version + + - name: Run Tox + run: tox + env: + TOXENV: ${{ matrix.PYTHON.TOXENV }} + GH_RECORD_MODE: "none" + continue-on-error: ${{ matrix.PYTHON.ALLOW_FAILURE }} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 000000000..0c54bc03d --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,78 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ main, debian ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ main ] + schedule: + - cron: '32 17 * * 6' + +permissions: + contents: read + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'python' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Learn more about CodeQL language support at https://git.io/codeql-language-support + + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 + with: + egress-policy: audit + + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml new file mode 100644 index 000000000..3629898fa --- /dev/null +++ b/.github/workflows/dependency-review.yml @@ -0,0 +1,27 @@ +# Dependency Review Action +# +# This Action will scan dependency manifest files that change as part of a Pull Request, +# surfacing known-vulnerable versions of the packages declared or updated in the PR. +# Once installed, if the workflow run is marked as required, +# PRs introducing known-vulnerable packages will be blocked from merging. +# +# Source repository: https://github.com/actions/dependency-review-action +name: 'Dependency Review' +on: [pull_request] + +permissions: + contents: read + +jobs: + dependency-review: + runs-on: ubuntu-latest + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 + with: + egress-policy: audit + + - name: 'Checkout Repository' + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - name: 'Dependency Review' + uses: actions/dependency-review-action@67d4f4bd7a9b17a0db54d2a7519187c65e339de8 # v4 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..f38983bc0 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,53 @@ +--- +name: Check documentation + +"on": + schedule: + - cron: "0 1 * * *" # everyday at 1am + push: + paths: + - "**.rst" + - "docs/**" + pull_request: + paths: + - "**.rst" + - "docs/**" + +permissions: + contents: read + +jobs: + docs: + name: Build documentation & check links + runs-on: ubuntu-latest + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 + with: + egress-policy: audit + + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 + with: + python-version: "3.11" + + - name: Upgrade pip + run: | + pip install -U pip + pip --version + + - name: Install Tox + run: | + pip install tox + tox --version + + - name: Build documentation + run: tox + env: + TOXENV: docs + + - name: Upload documentation + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: docs + path: docs/build diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 000000000..a893f9f54 --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,30 @@ +name: Labeler + +on: + push: + branches: + - main + - master + +permissions: + contents: read + +jobs: + labeler: + permissions: + contents: read # for actions/checkout to fetch code + issues: write # for crazy-max/ghaction-github-labeler to create, rename, update and delete label + runs-on: ubuntu-latest + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 + with: + egress-policy: audit + + - name: Check out the repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Run Labeler + uses: crazy-max/ghaction-github-labeler@24d110aa46a59976b8a7f35518cb7f14f434c916 # v5.3.0 + with: + skip-delete: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..09ac18a6d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,89 @@ +name: Publish to PyPI + +on: + push: + tags: + - "*" + +permissions: + contents: read + +jobs: + build: + name: "Build dists" + runs-on: "ubuntu-latest" + environment: + name: "publish" + outputs: + hashes: ${{ steps.hash.outputs.hashes }} + + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 + with: + egress-policy: audit + + - name: "Checkout repository" + uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" + + - name: "Setup Python" + uses: "actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065" + with: + python-version: "3.x" + + - name: "Install dependencies" + run: python -m pip install build==0.8.0 + + - name: "Build dists" + run: | + SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \ + python -m build + + - name: "Generate hashes" + id: hash + run: | + cd dist && echo "::set-output name=hashes::$(sha256sum * | base64 -w0)" + + - name: "Upload dists" + uses: "actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02" + with: + name: "dist" + path: "dist/" + if-no-files-found: error + retention-days: 5 + + provenance: + needs: [build] + permissions: + actions: read + contents: write + id-token: write # Needed to access the workflow's OIDC identity. + uses: "slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0" + with: + base64-subjects: "${{ needs.build.outputs.hashes }}" + upload-assets: true + compile-generator: true # Workaround for https://github.com/slsa-framework/slsa-github-generator/issues/1163 + + publish: + name: "Publish" + if: startsWith(github.ref, 'refs/tags/') + needs: ["build", "provenance"] + permissions: + contents: write + id-token: write + runs-on: "ubuntu-latest" + + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 + with: + egress-policy: audit + + - name: "Download dists" + uses: "actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093" + with: + name: "dist" + path: "dist/" + + - name: "Publish dists to PyPI" + uses: "pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc" diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml new file mode 100644 index 000000000..462c3a86c --- /dev/null +++ b/.github/workflows/scorecards.yml @@ -0,0 +1,81 @@ +# This workflow uses actions that are not certified by GitHub. They are provided +# by a third-party and are governed by separate terms of service, privacy +# policy, and support documentation. + +name: Scorecard supply-chain security +on: + # For Branch-Protection check. Only the default branch is supported. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection + branch_protection_rule: + # To guarantee Maintained check is occasionally updated. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained + schedule: + - cron: '20 7 * * 2' + push: + branches: ["main"] + +# Declare default permissions as read only. +permissions: read-all + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-latest + permissions: + # Needed to upload the results to code-scanning dashboard. + security-events: write + # Needed to publish results and get a badge (see publish_results below). + id-token: write + contents: read + actions: read + # To allow GraphQL ListCommits to work + issues: read + pull-requests: read + # To detect SAST tools + checks: read + + steps: + - name: Harden the runner (Audit all outbound calls) + uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 + with: + egress-policy: audit + + - name: "Checkout code" + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + persist-credentials: false + + - name: "Run analysis" + uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1 + with: + results_file: results.sarif + results_format: sarif + # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: + # - you want to enable the Branch-Protection check on a *public* repository, or + # - you are installing Scorecards on a *private* repository + # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. + # repo_token: ${{ secrets.SCORECARD_TOKEN }} + + # Public repositories: + # - Publish results to OpenSSF REST API for easy access by consumers + # - Allows the repository to include the Scorecard badge. + # - See https://github.com/ossf/scorecard-action#publishing-results. + # For private repositories: + # - `publish_results` will always be set to `false`, regardless + # of the value entered here. + publish_results: true + + # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF + # format to the repository Actions tab. + - name: "Upload artifact" + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard. + - name: "Upload to code-scanning" + uses: github/codeql-action/upload-sarif@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 + with: + sarif_file: results.sarif diff --git a/.gitignore b/.gitignore index e1bacfb24..e4375d82c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.pyc *.swp docs/_build +docs/build bin/ include/ lib/ @@ -16,4 +17,12 @@ build/ *.egg .env .ipynb_checkpoints -.cache/ \ No newline at end of file +.cache/ +tests/id_rsa +*.DS_Store +.mypy_cache/ +.pytest_cache/ +t.py +*.pem +/.python-version +/.tool-versions diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..241a65b9f --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,49 @@ +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: check-added-large-files + - id: check-toml + types: [toml] + - id: check-yaml + types: [yaml] + - id: end-of-file-fixer + types: [text] + stages: [pre-commit, pre-push, manual] + - id: trailing-whitespace + types: [text] + stages: [pre-commit, pre-push, manual] + - repo: https://github.com/PyCQA/isort + rev: 6.0.1 + hooks: + - id: isort + - repo: https://github.com/psf/black + rev: 25.1.0 + hooks: + - id: black + - repo: https://github.com/asottile/pyupgrade + rev: v3.19.1 + hooks: + - id: pyupgrade + args: [--py37-plus] + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.15.0 + hooks: + - id: mypy + additional_dependencies: + - types-python-dateutil + - types-requests + exclude: ^(docs/|tests/) + - repo: https://github.com/jorisroovers/gitlint + rev: v0.19.1 + hooks: + - id: gitlint + - repo: https://github.com/asottile/setup-cfg-fmt + rev: v2.8.0 + hooks: + - id: setup-cfg-fmt + args: [--min-py3-version, '3.7'] + - repo: https://github.com/gitleaks/gitleaks + rev: v8.24.3 + hooks: + - id: gitleaks diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 000000000..2fd286913 --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,12 @@ +version: 2 +build: + os: ubuntu-22.04 + tools: + python: "3.11" +sphinx: + configuration: docs/source/conf.py +formats: all +python: + install: + - requirements: docs/source/requirements.txt + - path: . diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index b5e8c177c..000000000 --- a/.travis.yml +++ /dev/null @@ -1,49 +0,0 @@ -language: python - -before_script: -- pip install tox - -# test script -script: tox -notifications: - on_success: change - on_failure: always - -env: - global: - - TRAVIS_GH3="True" - -matrix: - include: - - python: 2.7 - env: TOXENV=py27 REQUESTS_VERSION="===2.0.1" - - python: 3.3 - env: TOXENV=py33 REQUESTS_VERSION="===2.0.1" - - python: 3.4 - env: TOXENV=py34 REQUESTS_VERSION="===2.0.1" - - python: 3.5 - env: TOXENV=py35 REQUESTS_VERSION="===2.0.1" - - python: pypy - env: TOXENV=pypy REQUESTS_VERSION="===2.0.1" - - python: 2.7 - env: TOXENV=py27 REQUESTS_VERSION="" - - python: 3.3 - env: TOXENV=py33 REQUESTS_VERSION="" - - python: 3.4 - env: TOXENV=py34 REQUESTS_VERSION="" - - python: 3.5 - env: TOXENV=py35 REQUESTS_VERSION="" - - python: pypy - env: TOXENV=pypy REQUESTS_VERSION="" - - env: TOXENV=py27-flake8 - - env: TOXENV=py34-flake8 - - env: TOXENV=docstrings - - env: TOXENV=notebooks - - env: TOXENV=readme - - env: TOXENV=docs - fast_finish: true - allow_failures: - - env: TOXENV=docstrings - - env: TOXENV=notebooks - -sudo: false diff --git a/AUTHORS.rst b/AUTHORS.rst index 33d257df6..c28d9b352 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -1,7 +1,7 @@ Development Lead ---------------- -- Ian Cordasco +- Ian Stapleton Cordasco - Matt Chung (@itsmemattchung) @@ -12,6 +12,8 @@ Maintainer(s) - Matt Chung (@itsmemattchung) +- Thiago (@staticdev) + Requests ```````` @@ -130,3 +132,99 @@ Contributors - Dejan Svetec (@dsvetec) - Billy Keyes (@bluekeyes) + +- Evan Borgstrom (@borgstrom) + +- Jordan Moldow (@jmoldow) + +- Goodwillcoding (@goodwillcoding) + +- Andreas Backx (@AndreasBackx) + +- Alexander Koshelev + +- Gabi Davar (@mindw) + +- Björn Kautler (@Vampire) + +- David Prothero (@dprothero) + +- Jesse Keating (@omgjlk) + +- @rco-ableton + +- Mark Troyer (@discogestalt) + +- Becca James (@beccasjames) + +- Walid Ziouche (@01walid) + +- Katie Bell (@katharosada) + +- Jeff Quast (@jquast) + +- Hal Wine (@hwine) + +- Jacopo Notarstefano (@jacquerie) + +- Taylor Edmiston (@tedmiston) + +- Jenny Li (@imjennyli) + +- Chandan Singh (@cs-shadow) + +- Raphael Vogel (@RaphaelVogel) + +- Andreas Burger (@AndreasBurger) + +- James E. Blair (@jeblair) + +- Simon Westphahl (@westphahl) + +- Steven Nyman (@stevennyman) + +- Tigran Tchougourian (@NargiT) + +- Samuel Mendes (@smendes) + +- Dimitri Merejkowsky (@dmerejkowsky) + +- Erico Fusco (@ericofusco) + +- Radomir Stevanovic (@randomir) + +- Ben Jefferies (@benjefferies) + +- Bharat Raghunathan (@Bharat123rox) + +- Kevin P. Fleming (@kpfleming) + +- Andrew Hayworth (@ahayworth) + +- Dmitry Kiselev (@dmitrykiselev27) + +- Adeodato Simó (@dato) + +- Gunnar Andersson (@gunnarx) + +- Thomas Lam (@lamcw) + +- David Glick (@davisagli) + +- Greg Gilbert (@greggilbert) + +- Philipp Heil (@zkdev) + +- Petter Kvalvaag (@pettermk) + +- Peter Küffner (@kuepe-sl) + +- Andrew MacCormack (@amaccormack-lumira) + +- Chris R (@offbyone) + +- Thomas Buchner (@MrBatschner) + +- Chris Cotter (@ccotter) + +- Daniel Diniz (@devdanzin) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 590b20309..94af4d0d4 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -5,21 +5,21 @@ Guidelines for Contributing to github3.py #. Please do **not** use the issue tracker for questions. -#. Please use GitHub's search feature to look for already reported issues +#. Please use GitHub's search feature to look for already reported issues before reporting your own. -#. Regardless of the magnitude your pull request (a couple lines to a couple - hundred lines), please add your name to the AUTHORS.rst_ file under the +#. Regardless of the magnitude your pull request (a couple lines to a couple + hundred lines), please add your name to the AUTHORS.rst_ file under the heading Contributors. #. There is a label for issues that should be minor and should be a good way - to become acquainted with the project. The easy_ label is the over-arching - way to determine which issues you can dig into without a great deal of - prior knowledge. Most of these issues have a `Pair with Ian`_ label which - means that if you would like, I (@sigmavirus24) will happily pair program + to become acquainted with the project. The easy_ label is the over-arching + way to determine which issues you can dig into without a great deal of + prior knowledge. Most of these issues have a `Pair with Ian`_ label which + means that if you would like, I (@sigmavirus24) will happily pair program with you to solve the issue. -#. If you're fixing a bug, please write a regression test. All the tests are +#. If you're fixing a bug, please write a regression test. All the tests are structured like so:: tests/ @@ -27,35 +27,37 @@ Guidelines for Contributing to github3.py + Test - def test_function_or_attribute - Please do not add your regression test to an existing test, but create a - new one. You can use the form ``test_issue_``. In a docstring add - the link and a short description of the regression issue. For example, if - you found a bug in the class ``Issue``, write your test in the file - ``test_issues.py`` in the class ``TestIssue``. You can place the new test + Please do not add your regression test to an existing test, but create a + new one. You can use the form ``test_issue_``. In a docstring add + the link and a short description of the regression issue. For example, if + you found a bug in the class ``Issue``, write your test in the file + ``test_issues.py`` in the class ``TestIssue``. You can place the new test in any order, e.g., below all the existing tests, near a related one, &c. -#. If you're adding a new section of the API that does not already exist, +#. If you're adding a new section of the API that does not already exist, please also add tests to the test suite. -#. If you're adding additional functionality beyond what the API covers, - please open an issue request first and of course add tests to cover the +#. If you're adding additional functionality beyond what the API covers, + please open an issue request first and of course add tests to cover the functionality in the event it is accepted. - Also, please be certain to add docstrings_ to these functions. Follow the + Also, please be certain to add docstrings_ to these functions. Follow the example of other docstrings. #. In case you haven't caught on, for anything you add, write tests. -#. Be cordial_. Seriously, anyone who isn't cordial will be sent packing, - regardless of the value of their contributions. I will not tolerate some +#. Be cordial_. Seriously, anyone who isn't cordial will be sent packing, + regardless of the value of their contributions. I will not tolerate some contributors creating a hostile environment for others. -#. Rebase your fork/branch if needed and possible before submitting a pull - request. This makes my life easier. If you honestly have no idea what I'm +#. Rebase your fork/branch if needed and possible before submitting a pull + request. This makes my life easier. If you honestly have no idea what I'm talking about, don't worry, I'll take care of it. #. Please follow pep-0008_. Feel free to also use flake8_ to help. +#. Import modules, not class or functions + .. links .. _README: ./README.rst .. _easy: https://github.com/sigmavirus24/github3.py/issues?labels=Easy&page=1&state=open diff --git a/HISTORY.rst b/HISTORY.rst deleted file mode 100644 index b9e003f9e..000000000 --- a/HISTORY.rst +++ /dev/null @@ -1,492 +0,0 @@ -.. vim: set tw=100 - -0.9.3: 2014-11-04 -~~~~~~~~~~~~~~~~~ - -- Backport of ``PullRequest#create_review_comment`` by Adrian Moisey - -- Backport of ``PullRequest#review_comments`` by Adrian Moisey - -- Backport of a fix that allows authenticated users to download Release - Assets. Original bug reported by Eugene Fidelin in issue #288. - -- Documentation typo fix by Marc Abramowitz - -0.9.2: 2014-10-05 -~~~~~~~~~~~~~~~~~ - -- Updates for `new team management`_ API changes - - - Add ``Team#invite``, ``Team#membership_for``, and - ``Team#revoke_membership`` - - - Deprecate ``Team#add_member``, ``Team#remove_member``, and - ``Organization#add_member``. - - - Update payload handler for ``TeamAddEvent``. - -.. _new team management: - https://developer.github.com/changes/2014-09-23-one-more-week-before-the-add-team-member-api-breaking-change/ - -0.9.1: 2014-08-10 -~~~~~~~~~~~~~~~~~ - -- Correct Repository attribute ``fork_count`` should be ``forks_count`` - -0.9.0: 2014-05-04 -~~~~~~~~~~~~~~~~~ - -- Add Deployments API - -- Add Pages API - -- Add support so applications can revoke a `single authorization`_ or `all - authorizations`_ created by the application - -- Add the ability for users to ping_ hooks - -- Allow users to list a `Repository's collaborators`_ - -- Allow users to create an empty blob on a Repository - -- Update how users can list issues and pull requests. See: - http://developer.github.com/changes/2014-02-28-issue-and-pull-query-enhancements/ - This includes breaking changes to ``Repository#iter_pulls``. - -- Update methods to handle the `pagination changes`_. - -- Fix typo `stargarzers_url`_ - -- Add ``assets`` attribute to ``Release`` object. - -- Fix wrong argument to ``Organization#create_team`` (``permissions`` versus - ``permission``) - -- Fix Issue Search Result's representation and initialization - -- Fix Repository Search Result's initialization - -- Allow users to pass a two-factor authentication callback to - ``GitHub#authorize``. - -.. _single authorization: https://github3py.readthedocs.org/en/latest/github.html#github3.github.GitHub.revoke_authorization -.. _all authorizations: https://github3py.readthedocs.org/en/latest/github.html#github3.github.GitHub.revoke_authorizations -.. _ping: https://github3py.readthedocs.org/en/latest/repos.html?highlight=ping#github3.repos.hook.Hook.ping -.. _Repository's collaborators: https://github3py.readthedocs.org/en/latest/repos.html#github3.repos.repo.Repository.iter_collaborators -.. _pagination changes: https://developer.github.com/changes/2014-03-18-paginating-method-changes/ -.. _stargarzers_url: https://github.com/sigmavirus24/github3.py/pull/240 - -0.8.2: 2014-02-11 -~~~~~~~~~~~~~~~~~ - -- Fix bug in ``GitHub#search_users`` (and ``github3.search_users``). Thanks - @abesto - -- Expose the stargazers count for repositories. Thanks @seveas - -0.8.1: 2014-01-26 -~~~~~~~~~~~~~~~~~ - -- Add documentation for using Two Factor Authentication - -- Fix oversight where ``github3.login`` could not be used for 2FA - -0.8.0: 2014-01-03 -~~~~~~~~~~~~~~~~~ - -- **Breaking Change** Remove legacy search API - - I realize this should have been scheduled for 1.0 but I was a bit eager to - remove this. - -- Use Betamax to start recording integration tests - -- Add support for Releases API - -- Add support for Feeds API - -- Add support for Two-Factor Authentication via the API - -- Add support for New Search API - - - Add ``github3.search_code``, ``github3.search_issues``, - ``github3.search_repositories``, ``github3.search_users`` - - - Add ``GitHub#search_code``, ``GitHub#search_issues``, - ``GitHub#search_repositories``, ``GitHub#search_users`` - -- Switch to requests >= 2.0 - -- Totally remove all references to the Downloads API - -- Fix bug in ``Repository#update_file`` where ``branch`` was not being sent to - the API. Thanks @tpetr! - -- Add ``GitHub#rate_limit`` to return all of the information from the - ``/rate_limit`` endpoint. - -- Catch missing attributes -- ``diff_hunk``, ``original_commit_id`` -- on - ``ReviewComment``. - -- Add support for the Emojis endpoint - -- Note deprecation of a few object attributes - -- Add support for the ``ReleaseEvent`` - -- Add ``GitHub#iter_user_teams`` to return all of the teams the authenticated - user belongs to - -0.7.1: 2013-09-30 -~~~~~~~~~~~~~~~~~ - -- Add dependency on uritemplate.py_ to add URITemplates to different classes. - See the documentation for attributes which are templates. - -- Fixed issue trying to parse ``html_url`` on Pull Requests courtesy of - @rogerhu. - -- Remove ``expecter`` as a test dependency courtesy of @esacteksab. - -- Fixed issue #141 trying to find an Event that doesn't exist. - -.. _uritemplate.py: https://github.com/sigmavirus24/uritemplate - -0.7.0: 2013-05-19 -~~~~~~~~~~~~~~~~~ - -- Fix ``Issue.close``, ``Issue.reopen``, and ``Issue.assign``. (Issue #106) - -- Add ``check_authorization`` to the ``GitHub class`` to cover the `new part - of the API `_. - -- Add ``create_file``, ``update_file``, ``delete_file``, - ``iter_contributor_statistics``, ``iter_commit_activity``, - ``iter_code_frequency`` and ``weekly_commit_count`` to the ``Repository`` - object. - -- Add ``update`` and ``delete`` methods to the ``Contents`` object. - -- Add ``is_following`` to the ``User`` object. - -- Add ``head``, ``base`` parameters to ``Repository.iter_pulls``. - -- The signature of ``Hook.edit`` has changed since that endpoint has changed - as well. See: - github/developer.github.com@b95f291a47954154a6a8cd7c2296cdda9b610164 - -- ``github3.GitHub`` can now be used as a context manager, e.g., - :: - - with github.GitHub() as gh: - u = gh.user('sigmavirus24') - -0.6.1: 2013-04-06 -~~~~~~~~~~~~~~~~~ - -- Add equality for labels courtesy of Alejandro Gomez (@alejandrogomez) - -0.6.0: 2013-04-05 -~~~~~~~~~~~~~~~~~ - -- Add ``sort`` and ``order`` parameters to ``github3.GitHub.search_users`` and - ``github3.GitHub.search_repos``. - -- Add ``iter_commits`` to ``github3.gists.Gist`` as a means of re-requesting - just the history from GitHub and iterating over it. - -- Add minimal logging (e.g., ``logging.getLogger('github3')``) - -- Re-organize the library a bit. (Split up repos.py, issues.py, gists.py and a - few others into sub-modules for my sanity.) - -- Calling ``refresh(True)`` on a ``github3.structs.GitHubIterator`` actually - works as expected now. - -- API ``iter_`` methods now accept the ``etag`` argument as the - ``GitHub.iter_`` methods do. - -- Make ``github3.octocat`` and ``github3.github.GitHub.octocat`` both support - sending messages to make the Octocat say things. (Think cowsay) - -- Remove vendored dependency of PySO8601. - -- Split ``GitHub.iter_repos`` into ``GitHub.iter_user_repos`` and - ``GitHub.iter_repos``. As a consequence ``github3.iter_repos`` is now - ``github3.iter_user_repos`` - -- ``IssueComment.update`` was corrected to match GitHub's documentation - -- ``github3.login`` now accepts an optional ``url`` parameter for users of the - ``GitHubEnterprise`` API, courtesy of Kristian Glass (@doismellburning) - -- Several classes now allow their instances to be compared with ``==`` and - ``!=``. In most cases this will check the unique id provided by GitHub. In - others, it will check SHAs and any other guaranteed immutable and unique - attribute. The class doc-strings all have information about this and details - about how equivalence is determined. - -0.5.3: 2013-03-19 -~~~~~~~~~~~~~~~~~ - -- Add missing optional parameter to Repository.contents. Thanks @tpetr - -0.5.2: 2013-03-02 -~~~~~~~~~~~~~~~~~ - -- Stop trying to decode the byte strings returned by ``b64decode``. Fixes #72 - -0.5.1: 2013-02-21 -~~~~~~~~~~~~~~~~~ - -- Hot fix an issue when a user doesn't have a real name set - -0.5: 2013-02-16 -~~~~~~~~~~~~~~~ - -- 100% (mock) test coverage - -- Add support for the announced_ meta_ endpoint. - -- Add support for conditional refreshing, e.g., - - :: - - import github3 - - u = github3.user('sigmavirus24') - - # some time later - - u.refresh() # Will ALWAYS send a GET request and lower your ratelimit - u.refresh(True) # Will send the GET with a header such that if nothing - # has changed, it will not count against your ratelimit - # otherwise you'll get the updated user object. - -- Add support for conditional iterables. What this means is that you can do: - - :: - - import github3 - - i = github3.iter_all_repos(10) - - for repo in i: - # do stuff - - i = github3.iter_all_repos(10, etag=i.etag) - - And the second call will only give you the new repositories since the last - request. This mimics behavior in `pengwynn/octokit`_ - -- Add support for `sortable stars`_. - -- In github3.users.User, ``iter_keys`` now allows you to iterate over **any** - user's keys. No name is returned for each key. This is the equivalent of - visiting: github.com/:user.keys - -- In github3.repos.Repository, ``pubsubhubbub`` has been removed. Use - github3.github.Github.pubsubhubbub instead - -- In github3.api, ``iter_repo_issues``'s signature has been corrected. - -- Remove ``list_{labels, comments, events}`` methods from github3.issues.Issue - -- Remove ``list_{comments, commits, files}`` methods from - github3.pulls.PullRequest - -- In github3.gists.Gist: - - - the ``user`` attribute was changed by GitHub and is now the ``owner`` - attribute - - - the ``public`` attribute and the ``is_public`` method return the same - information. The method will be removed in the next version. - - - the ``is_starred`` method now requires authentication - - - the default ``refresh`` method is no longer over-ridden. In a change made - in before, a generic ``refresh`` method was added to most objects. This - was overridden in the Gist object and would cause otherwise unexpected - results. - -- ``github3.events.Event.is_public()`` and ``github3.events.Event.public`` now - return the same information. In the next version, the former will be - removed. - -- In github3.issues.Issue - - - ``add_labels`` now returns the list of Labels on the issue instead of a - boolean. - - - ``remove_label`` now retuns a boolean. - - - ``remove_all_labels`` and ``replace_labels`` now return lists. The former - should return an empty list on a successful call. The latter should - return a list of ``github3.issue.Label`` objects. - -- Now we won't get spurious GitHubErrors on 404s, only on other expected - errors whilst accessing the json in a response. All methods that return an - object can now *actually* return None if it gets a 404 instead of just - raising an exception. (Inspired by #49) - -- GitHubStatus API now works. - -.. _announced: https://github.com/blog/1402-upcoming-changes-to-github-services -.. _meta: http://developer.github.com/v3/meta/ -.. _sortable stars: - http://developer.github.com/changes/2013-2-13-sortable-stars/ -.. _pengwynn/octokit: https://github.com/pengwynn/octokit - -0.4: 2013-01-16 -~~~~~~~~~~~~~~~ - -- In github3.legacy.LegacyRepo - - - ``has_{downloads,issues,wiki}`` are now attributes. - - ``is_private()`` and the ``private`` attribute return the same thing - ``is_private()`` will be deprecated in the next release. - -- In github3.repos.Repository - - - ``is_fork()`` is now deprecated in favor of the ``fork`` attribute - - ``is_private()`` is now deprecated in favor of the ``private`` attribute - -- In github3.repos.Hook - - - ``is_active()`` is now deprecated in favor of the ``active`` attribute - -- In github3.pulls.PullRequest - - - ``is_mergeable()`` is now deprecated in favor of the ``mergeable`` - attribute - -- In github3.notifications.Thread - - - ``is_unread()`` is now deprecated in favor of the ``unread`` - -- ``pubsubhubbub()`` is now present on the ``GitHub`` object and will be - removed from the ``Repository`` object in the next release - -- 70% test coverage - -0.3: 2013-01-01 -~~~~~~~~~~~~~~~ - -- In github3.repos.Repository - - - is_fork() and fork return the same thing - - is_private() and private return the same thing as well - - has_downloads, has_issues, has_wiki are now straight attributes - -- In github3.repos.Hook - - - is_active() and active return the same value - -- In github3.pulls.PullRequest - - - is_mergeable() and mergeable are now the same - - repository now returns a tuple of the login and name of the repository it - belongs to - -- In github3.notifications.Thread - - - is_unread() and unread are now the same - -- In github3.gists - - - GistFile.filename and GistFile.name return the same information - - Gist.history now lists the history of the gist - - GistHistory is an object representing one commit or version of the history - - You can retrieve gists at a specific version with GistHistory.get_gist() - -- github3.orgs.Organization.iter_repos now accepts all types_ - -- list_* methods on Organization objects that were missed are now deleted - -- Some objects now have ``__str__`` methods. You can now do things like: - - :: - - import github3 - u = github3.user('sigmavirus24') - r = github3.repository(u, 'github3.py') - - And - - :: - - import github3 - - r = github3.repository('sigmavirus24', 'github3.py') - - template = """Some kind of template where you mention this repository - {0}""" - - print(template.format(r)) - # Some kind of template where you mention this repository - # sigmavirus24/github3.py - - Current list of objects with this feature: - - - github3.users.User (uses the login name) - - github3.users.Key (uses the key text) - - github3.users.Repository (uses the login/name pair) - - github3.users.RepoTag (uses the tag name) - - github3.users.Contents (uses the decoded content) - -- 60% test coverage with mock -- Upgrade to requests 1.0.x - -.. _types: http://developer.github.com/v3/repos/#list-organization-repositories - -0.2: 2012-11-21 -~~~~~~~~~~~~~~~ - -- MAJOR API CHANGES: - - - ``GitHub.iter_subscribed`` --> ``GitHub.iter_subscriptions`` - - Broken ``list_*`` functions in github3.api have been renamed to the correct - ``iter_*`` methods on ``GitHub``. - - Removed ``list_*`` functions from ``Repository``, ``Gist``, - ``Organization``, and ``User`` objects - -- Added zen of GitHub method. -- More tests -- Changed the way ``Repository.edit`` works courtesy of Kristian Glass - (@doismellburning) -- Changed ``Repository.contents`` behaviour when acting on a 404. -- 50% test coverage via mock tests - -0.1: 2012-11-13 -~~~~~~~~~~~~~~~ - -- Add API for GitHub Enterprise customers. - -0.1b2: 2012-11-10 -~~~~~~~~~~~~~~~~~ - -- Handle 500 errors better, courtesy of Kristian Glass (@doismellburning) -- Handle sending json with `%` symbols better, courtesy of Kristian Glass -- Correctly handle non-GitHub committers and authors courtesy of Paul Swartz - (@paulswartz) -- Correctly display method signatures in documentation courtesy of (@seveas) - -0.1b1: 2012-10-31 -~~~~~~~~~~~~~~~~~ - -- unit tests implemented using mock instead of hitting the GitHub API (#37) -- removed ``list_*`` functions from GitHub object -- Notifications API coverage - -0.1b0: 2012-10-06 -~~~~~~~~~~~~~~~~~ - -- Support for the complete GitHub API (accomplished) - - - Now also includes the Statuses API - - Also covers the auto_init parameters to the Repository creation - methodology - - Limited implementation of iterators in the place of list functions. - -- 98% coverage by unit tests diff --git a/LICENSE b/LICENSE index ee1eb0587..09556bc76 100644 --- a/LICENSE +++ b/LICENSE @@ -1,23 +1,29 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are +BSD 3-Clause License + +Copyright (c) 2012, Ian Stapleton Cordasco + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -1. Redistributions of source code must retain the above copyright +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -3. The name of the author may not be used to endorse or promote products -derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +3. Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/MANIFEST.in b/MANIFEST.in index ddef6cac4..70a2deaa7 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,13 +1,11 @@ include README.rst include LICENSE -include HISTORY.rst -include LATEST_VERSION_NOTES.rst include AUTHORS.rst include CONTRIBUTING.rst include tox.ini include report_issue.py prune *.pyc -recursive-include docs *.rst *.py Makefile +recursive-include docs *.rst *.py recursive-include tests *.py *.json recursive-include tests/json * recursive-include tests/unit/json * diff --git a/Makefile b/Makefile index 0b95d7ee5..4801b4104 100644 --- a/Makefile +++ b/Makefile @@ -11,13 +11,13 @@ clean: git clean -Xdf rm -rf build/ dist/ -travis: +ga: $(TEST_RUNNER) -tests: travis +tests: ga test-deps: - pip install -r dev-requirements.txt + pip install -e .[dev] htmlcov: .coverage coverage html --omit=github3/packages/* diff --git a/README.rst b/README.rst index 0a5485c14..f46d3ee5f 100644 --- a/README.rst +++ b/README.rst @@ -1,62 +1,74 @@ .. image:: - https://raw.github.com/sigmavirus24/github3.py/develop/images/gh3-logo.png + https://raw.github.com/sigmavirus24/github3.py/master/docs/img/gh3-logo.png -github3.py is a comprehensive, actively developed and extraordinarily stable +github3.py is a comprehensive, actively developed, and extraordinarily stable wrapper around the GitHub API (v3). -See HISTORY.rst for any "breaking" changes. +Note: This library currently works with Python 3.7+ or pypy3. For older versions, please use version 1.3.0. Installation ------------ :: - $ pip install --pre github3.py + $ pip install github3.py Dependencies ------------ -- requests_ by Kenneth Reitz -- uritemplate.py_ by Ian Cordasco +- requests_ +- uritemplate_ +- python-dateutil_ +- PyJWT_ .. _requests: https://github.com/kennethreitz/requests -.. _uritemplate.py: https://github.com/sigmavirus24/uritemplate +.. _uritemplate: https://github.com/sigmavirus24/uritemplate +.. _python-dateutil: https://github.com/dateutil/dateutil +.. _PyJWT: https://github.com/jpadilla/pyjwt + Contributing ------------ Please read the `CONTRIBUTING`_ document. -.. _CONTRIBUTING: https://github.com/sigmavirus24/github3.py/blob/develop/CONTRIBUTING.rst +.. _CONTRIBUTING: https://github.com/sigmavirus24/github3.py/blob/master/CONTRIBUTING.rst Testing ~~~~~~~ -You can run either ``pip install -r dev-requirements.txt`` to install the -following before testing or simply ``make test-deps``. It is suggested you do -this in a virtual enviroment. These need to be installed for the tests to run. +You can run ``pip install -e .[dev]`` to install the following before testing or +simply ``make test-deps``. It is suggested you do this in a virtual environment. +These need to be installed for the tests to run. - betamax_ - coverage_ by Ned Batchelder -- mock_ by Michael Foord .. _betamax: https://github.com/sigmavirus24/betamax .. _coverage: http://nedbatchelder.com/code/coverage/ -.. _mock: http://mock.readthedocs.org/en/latest/ + +Build status +~~~~~~~~~~~~ + +You can find build statuses for different environments. + +- Github_ + +.. _Github: https://github.com/sigmavirus24/github3.py/actions License ------- Modified BSD license_ -.. _license: https://github.com/sigmavirus24/github3.py/blob/develop/LICENSE +.. _license: https://github.com/sigmavirus24/github3.py/blob/master/LICENSE Examples -------- See the docs_ for more examples. -.. _docs: http://github3py.readthedocs.org/en/latest/index.html#more-examples +.. _docs: https://github3.readthedocs.io/en/latest/index.html#more-examples Testing ~~~~~~~ @@ -70,16 +82,19 @@ Install the dependencies from requirements.txt e.g.: Author ------ -Ian Cordasco (sigmavirus24) +Ian Stapleton Cordasco (sigmavirus24_) + +.. _sigmavirus24: https://github.com/sigmavirus24 Contact Options --------------- -- Feel free to use the `github3.py`_ tag on StackOverflow for any questions - you may have -- If you dislike StackOverflow it is preferred that you send an email to - github3.py@librelist.com -- You may also contact (via email) the author directly with +- Feel free to use the `github3.py`_ tag on Stack Overflow for any questions + you may have. +- If you dislike Stack Overflow, it is preferred that you use Github + discussions (https://github.com/sigmavirus24/github3.py/discussions). +- You may also contact (via email_) the author directly with questions/suggestions/comments or if you wish to include sensitive data. .. _github3.py: http://stackoverflow.com/questions/tagged/github3.py +.. _email: mailto:graffatcolmingov@gmail.com diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..fc20da2e3 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,18 @@ +# Security Policy + +github3.py takes security seriously. Any vulnerability discovered in the +library will be addressed with best possible urgency. This is, however, +a passion project that I may not have enough time to spend in order to fix +a larger security issue in an expedient fashion. + +All reports will be responded to within 7 days. + +## Supported Versions + +The latest version is the only supported version for security reports. We do +not maintain branches for older versions or long term support releases. + +## Reporting a Vulnerability + +Please use the security tab on GitHub to report a vulnerability. If this is +insufficient, please use the email address for @sigmavirus24. diff --git a/dev-requirements.txt b/dev-requirements.txt deleted file mode 100644 index b7a3ef5b1..000000000 --- a/dev-requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -. -#coverage==3.5.2 -mock==1.0.1 -pytest>=2.3.5 -wheel==0.21.0 -betamax>=0.5.0 -betamax_matchers>=0.2.0 -tox>=2.2.0 diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index ac7d83f05..000000000 --- a/docs/Makefile +++ /dev/null @@ -1,130 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = $(shell which sphinx-build) -PAPER = -BUILDDIR = _build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Raclette.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Raclette.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/Raclette" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Raclette" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - make -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/api.rst b/docs/api.rst deleted file mode 100644 index 6fb2a46e8..000000000 --- a/docs/api.rst +++ /dev/null @@ -1,176 +0,0 @@ -.. _api: - -API -=== - -.. module:: github3 -.. module:: github3.api - -This part of the documentation covers the API. This is intended to be a -beautifully written module which allows the user (developer) to interact with -``github3.py`` elegantly and easily. - -Module Contents ---------------- - -To interact with the GitHub API you can either authenticate to access protected -functionality or you can interact with it anonymously. Authenticating provides -more functionality to the the user (developer). - -To authenticate, you simply use :func:`github3.login`. - -.. autofunction:: github3.login - -With the :class:`GitHub ` object that is returned you have access -to more functionality. See that object's documentation for more information. - -To use the API anonymously, you can create a new -:class:`GitHub ` object, e.g., - -:: - - from github3 import GitHub - - gh = GitHub() - -Or you can simply use the following functions - ------- - -.. autofunction:: github3.authorize - ------- - -.. autofunction:: github3.create_gist - ------- - -.. autofunction:: github3.gist - ------- - -.. autofunction:: github3.gitignore_template - ------- - -.. autofunction:: github3.gitignore_templates - ------- - -.. autofunction:: github3.issue - ------- - -.. autofunction:: github3.issues_on - ------- - -.. autofunction:: github3.all_repositories - ------- - -.. autofunction:: github3.all_users - ------- - -.. autofunction:: github3.all_events - ------- - -.. autofunction:: github3.followers_of - ------- - -.. autofunction:: github3.followed_by - ------- - -.. autofunction:: github3.public_gists - ------- - -.. autofunction:: github3.gists_by - ------- - -.. autofunction:: github3.organizations_with - ------- - -.. autofunction:: github3.repositories_by - ------- - -.. autofunction:: github3.starred_by - ------- - -.. autofunction:: github3.subscriptions_for - ------- - -.. autofunction:: github3.markdown - ------- - -.. autofunction:: github3.octocat - ------- - -.. autofunction:: github3.organization - ------- - -.. autofunction:: github3.pull_request - ------- - -.. autofunction:: github3.rate_limit - ------- - -.. autofunction:: github3.repository - ------- - -.. autofunction:: github3.search_code - ------- - -.. autofunction:: github3.search_issues - ------- - -.. autofunction:: github3.search_repositories - ------- - -.. autofunction:: github3.search_users - ------- - -.. autofunction:: github3.user - ------- - -.. autofunction:: github3.zen - ------- - -Enterprise Use --------------- - -If you're using github3.py to interact with an enterprise installation of -GitHub, you must use the -:class:`GitHubEnterprise ` object. Upon -initialization, the only parameter you must supply is the URL of your -enterprise installation, e.g. - -:: - - from github3 import GitHubEnterprise - - g = GitHubEnterprise('https://github.examplesintl.com') - stats = g.admin_stats('all') - assert 'issues' in stats, ('Key issues is not included in the admin' - 'statistics') diff --git a/docs/auths.rst b/docs/auths.rst deleted file mode 100644 index 2245a30e7..000000000 --- a/docs/auths.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. module:: github3 -.. module:: github3.auths - -Authorization -============= - -This part of the documentation covers the -:class:`Authorization ` object. - -.. autoclass:: Authorization - :inherited-members: diff --git a/docs/bin/lint b/docs/bin/lint new file mode 100755 index 000000000..93c1ccb6f --- /dev/null +++ b/docs/bin/lint @@ -0,0 +1,8 @@ +#!/bin/sh +output="$(find docs/source -name '*.rst' | grep -v docs/source/examples/octocat.rst | xargs proselint)" +exit_code=$? + +if echo "$output" | grep -qve 'typography' ; then + echo $output + exit $exit_code +fi diff --git a/docs/decorators.rst b/docs/decorators.rst deleted file mode 100644 index ff081ca71..000000000 --- a/docs/decorators.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _decorators: - -Decorators -========== - -.. module:: github3 -.. module:: github3.decorators - -This part of the documentation covers the decorators module which contains all -of the decorators used in github3.py. - - -Contents --------- - -.. autofunction:: github3.decorators.requires_auth diff --git a/docs/events.rst b/docs/events.rst deleted file mode 100644 index 04dbed79e..000000000 --- a/docs/events.rst +++ /dev/null @@ -1,37 +0,0 @@ -Events -====== - -.. module:: github3 -.. module:: github3.events - -This part of the documentation covers the :class:`Event ` object. - -Event Objects -------------- - -.. autoclass:: Event - :inherited-members: - -When accessing the payload of the event, you should notice that you receive a -dictionary where the keys depend on the event type_. Note: - -- where they reference an array in the documentation but index it like a - dictionary, you are given a regular dictionary -- where they reference a key as returning an object, you receive the equivalent - object from the dictionary, e.g., for a Fork Event:: - - >>> event - - >>> event.payload - {u'forkee': } - >>> event.payload['forkee'] - - -Using the dictionary returned as the payload makes far more sense than creating -an object for the payload in this instance. For one, creating a class for each -payload type would be insanity. I did it once, but it isn't worth the effort. -Having individual handlers as we have now which modify the payload to use our -objects when available is more sensible. - -.. links -.. _type: https://developer.github.com/v3/activity/events/types diff --git a/docs/examples/iterators.rst b/docs/examples/iterators.rst deleted file mode 100644 index dc1391508..000000000 --- a/docs/examples/iterators.rst +++ /dev/null @@ -1,71 +0,0 @@ -.. _iteratorex: - -Taking Advantage of GitHubIterator -================================== - -Let's say that for some reason you're stalking all of GitHub's users and you -just so happen to be using github3.py to do this. You might write code that -looks like this: - -.. code-block:: python - - import github3 - - g = github3.login(USERNAME, PASSWORD) - - for u in g.iter_all_users(): - add_user_to_database(u) - -The problem is that you will then have to reiterate over all of the users each -time you want to get the new users. You have two approaches you can take to -avoid this with :class:`GitHubIterator `. - -You can not call the method directly in the for-loop and keep the iterator as -a separate reference like so: - -.. code-block:: python - - i = g.iter_all_users(): - - for u in i: - add_user_to_database(u) - -The First Approach ------------------- - -Then after your first pass through your ``GitHubIterator`` object will have an -attribute named ``etag``. After you've added all the currently existing users -you could do the following to retrieve the new users in a timely fashion: - -.. code-block:: python - - import time - - while True: - i.refresh(True) - for u in i: - add_user_to_database(u) - - time.sleep(120) # Sleep for 2 minutes - -The Second Approach -------------------- - -.. code-block:: python - - etag = i.etag - # Store this somewhere - - # Later when you start a new process or go to check for new users you can - # then do - - i = g.iter_all_users(etag=etag) - - for u in i: - add_user_to_database(u) - ------- - -If there are no new users, these approaches won't impact your ratelimit at -all. This mimics the ability to conditionally refresh data on almost all other -objects in github3.py. diff --git a/docs/examples/two_factor_auth.rst b/docs/examples/two_factor_auth.rst deleted file mode 100644 index 7a7d9edd1..000000000 --- a/docs/examples/two_factor_auth.rst +++ /dev/null @@ -1,37 +0,0 @@ -Using Two Factor Authentication with github3.py -=============================================== - -GitHub recently added support for Two Factor Authentication to ``github.com`` -and shortly thereafter added support for it on ``api.github.com``. In version -0.8, github3.py also added support for it and you can use it right now. - -To use Two Factor Authentication, you must define your own function that will -return your one time authentication code. You then provide that function when -logging in with github3.py. - -For example: - -.. code:: - - import github3 - - try: - # Python 2 - prompt = raw_input - except NameError: - # Python 3 - prompt = input - - def my_two_factor_function(): - code = '' - while not code: - # The user could accidentally press Enter before being ready, - # let's protect them from doing that. - code = prompt('Enter 2FA code: ') - return code - - g = github3.login('sigmavirus24', 'my_password', - two_factor_callback=my_two_factor_function) - -Then each the API tells github3.py it requires a Two Factor Authentication -code, github3.py will call ``my_two_factor_function`` which prompt you for it. diff --git a/docs/gists.rst b/docs/gists.rst deleted file mode 100644 index f6a453d5f..000000000 --- a/docs/gists.rst +++ /dev/null @@ -1,44 +0,0 @@ -.. _gists: - -Gists -===== - -.. module:: github3 - -.. |Gist| replace:: :class:`Gist ` -.. |GistComment| replace:: :class:`GistComment ` -.. |GistFile| replace:: :class:`GistFile ` -.. |GistHistory| replace:: :class:`GistHistory ` - -This part of the documentation details the properties and methods associated -with |Gist|, |GistComment|, |GistHistory|, and |GistFile| objects. These -classes should never be instantiated by the user (developer) directly. - -Gist Objects ------------- - -.. module:: github3.gists.gist - -.. autoclass:: github3.gists.gist.Gist - :inherited-members: - ------- - -.. module:: github3.gists.comment - -.. autoclass:: github3.gists.comment.GistComment - :inherited-members: - ------- - -.. module:: github3.gists.file - -.. autoclass:: github3.gists.file.GistFile - :inherited-members: - ------- - -.. module:: github3.gists.history - -.. autoclass:: github3.gists.history.GistHistory - :inherited-members: diff --git a/docs/git.rst b/docs/git.rst deleted file mode 100644 index 7bfb133ec..000000000 --- a/docs/git.rst +++ /dev/null @@ -1,61 +0,0 @@ -.. module:: github3 -.. module:: github3.git - -Git -=== - -This part of the documentation covers the module associated with the `Git Data`_ -section of the GitHub API. - -- :class:`Blob ` -- :class:`Commit ` -- :class:`GitData ` -- :class:`GitObject ` -- :class:`Hash ` -- :class:`Reference ` -- :class:`Tag ` -- :class:`Tree ` - -.. links -.. _Git Data: http://developer.github.com/v3/git - -Git Objects ------------ - -.. autoclass:: Blob - :inherited-members: - ------- - -.. autoclass:: Commit - :inherited-members: - ------- - -.. autoclass:: GitData - :inherited-members: - ------- - -.. autoclass:: GitObject - :inherited-members: - ------- - -.. autoclass:: Hash - :inherited-members: - ------- - -.. autoclass:: Reference - :inherited-members: - ------- - -.. autoclass:: Tag - :inherited-members: - ------- - -.. autoclass:: Tree - :inherited-members: diff --git a/docs/github.rst b/docs/github.rst deleted file mode 100644 index 5555cb80c..000000000 --- a/docs/github.rst +++ /dev/null @@ -1,39 +0,0 @@ -.. _githubex: - -GitHub -====== - -.. module:: github3 -.. module:: github3.github - -This part of the documentation covers the :class:`GitHub ` object. A -large portion of what you will likely want to do can be found in this class. If -you're looking for anonymous functions, you're most likely looking for the -:ref:`API `. - -Examples --------- - -Examples utilizing this object can be found :ref:`here `. - -GitHub Object -------------- - -.. autoclass:: GitHub - :inherited-members: - - -GitHubEnterprise Object ------------------------ - -This has all of the same attributes as the :class:`GitHub ` object so -for brevity's sake, I'm not listing all of it's inherited members. - -.. autoclass:: GitHubEnterprise - :members: - -GitHubStatus Object -------------------- - -.. autoclass:: GitHubStatus - :members: diff --git a/docs/img/gh3-logo-transparent.png b/docs/img/gh3-logo-transparent.png new file mode 100644 index 000000000..ecaab7ac5 Binary files /dev/null and b/docs/img/gh3-logo-transparent.png differ diff --git a/images/gh3-logo.png b/docs/img/gh3-logo.png similarity index 100% rename from images/gh3-logo.png rename to docs/img/gh3-logo.png diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index c288f7d23..000000000 --- a/docs/index.rst +++ /dev/null @@ -1,255 +0,0 @@ -github3.py -========== - -Release v\ |version|. - -github3.py is wrapper for the `GitHub API`_ written in python. The design of -github3.py is centered around having a logical organization of the methods -needed to interact with the API. Let me demonstrate this with a code example. - -Example -------- - -Let's get information about a user:: - - from github3 import login - - gh = login('sigmavirus24', password='') - - sigmavirus24 = gh.me() - # - - print(sigmavirus24.name) - # Ian Cordasco - print(sigmavirus24.login) - # sigmavirus24 - print(sigmavirus24.followers_count) - # 4 - - for f in gh.followers(): - print(str(f)) - - kennethreitz = gh.user('kennethreitz') - # - - print(kennethreitz.name) - print(kennethreitz.login) - print(kennethreitz.followers_count) - - followers = [str(f) for f in gh.followers('kennethreitz')] - -More Examples -~~~~~~~~~~~~~ - -.. toctree:: - :maxdepth: 2 - - examples/two_factor_auth - examples/oauth - examples/gist - examples/git - examples/github - examples/issue - examples/iterators.rst - examples/logging - examples/octocat - - -.. links - -.. _GitHub API: http://developer.github.com - - -Modules -------- - -.. toctree:: - :maxdepth: 1 - - api - auths - events - gists - git - github - issues - models - notifications - orgs - pulls - repos - search_structs - structs - users - -Internals -~~~~~~~~~ - -For objects you're not likely to see in practice. This is useful if you ever -feel the need to contribute to the project. - -.. toctree:: - :maxdepth: 1 - - models - decorators - - -Installation ------------- - -.. code-block:: sh - - $ pip install github3.py - # OR: - $ git clone git://github.com/sigmavirus24/github3.py.git github3.py - $ cd github3.py - $ python setup.py install - - -Dependencies -~~~~~~~~~~~~ - -- requests_ by Kenneth Reitz -- uritemplate.py_ by Ian Cordasco - -.. _requests: https://github.com/kennethreitz/requests -.. _uritemplate.py: https://github.com/sigmavirus24/uritemplate - - -Contributing ------------- - -I'm maintaining two public copies of the project. The first can be found on -GitHub_ and the second on BitBucket_. I would prefer pull requests to take -place on GitHub, but feel free to do them via BitBucket. Please make sure to -add yourself to the list of contributors in AUTHORS.rst, especially if you're -going to be working on the list below. - -.. links -.. _GitHub: https://github.com/sigmavirus24/github3.py -.. _BitBucket: https://bitbucket.org/icordasc/github3.py/src - -Contributor Friendly Work -~~~~~~~~~~~~~~~~~~~~~~~~~ - -In order of importance: - -Documentation - - I know I'm not the best at writing documentation so if you want to clarify - or correct something, please do so. - -Examples - - Have a clever example that takes advantage of github3.py? Feel free to - share it. - -Running the Unittests -~~~~~~~~~~~~~~~~~~~~~ - -The tests are generally run using tox. Tox can be installed lke so:: - - pip install tox - -We test against PyPy and the following versions of Python: - -- 2.6 -- 2.7 -- 3.2 -- 3.3 -- 3.4 - -If you simply run ``tox`` it will run tests against all of these versions of -python and run ``flake8`` against the codebase as well. If you want to run -against one specific version, you can do:: - - tox -e py34 - -And if you want to run tests against a specific file, you can do:: - - tox -e py34 -- tests/uni/test_github.py - -To run the tests, ``tox`` uses ``py.test`` so you can pass any options or -parameters to ``py.test`` after specifying ``--``. For example, you can get -more verbose output by doing:: - - tox -e py34 -- -vv - -.. toctree:: - - testing - - -Contact -------- - -- Twitter: @\ sigmavirus24_ -- Private email: graffatcolmingov [at] gmail -- Mailing list: github3.py [at] librelist.com - -.. _sigmavirus24: https://twitter.com/sigmavirus24 - -Latest Version's Changes ------------------------- - -.. include:: ../LATEST_VERSION_NOTES.rst - -The full history of the project is available as well. - -.. toctree:: - - project_changelog - -Testimonials ------------- - -.. raw:: html - - - - - - - - - - - - - - diff --git a/docs/issues.rst b/docs/issues.rst deleted file mode 100644 index 42d85598a..000000000 --- a/docs/issues.rst +++ /dev/null @@ -1,48 +0,0 @@ -.. module:: github3 - -Issue -===== - -This part of the documentation covers the module which handles :class:`Issue -`\ s and their related objects: - -- :class:`IssueComment ` -- :class:`IssueEvent ` -- :class:`Milestone ` -- :class:`Label `. - -Issue Objects -------------- - -.. module:: github3.issues.issue - -.. autoclass:: github3.issues.issue.Issue - :inherited-members: - ------- - -.. module:: github3.issues.comment - -.. autoclass:: github3.issues.comment.IssueComment - :inherited-members: - ------- - -.. module:: github3.issues.event - -.. autoclass:: github3.issues.event.IssueEvent - :inherited-members: - ------- - -.. module:: github3.issues.milestone - -.. autoclass:: github3.issues.milestone.Milestone - :inherited-members: - ------- - -.. module:: github3.issues.label - -.. autoclass:: github3.issues.label.Label - :inherited-members: diff --git a/docs/models.rst b/docs/models.rst deleted file mode 100644 index f8b863914..000000000 --- a/docs/models.rst +++ /dev/null @@ -1,30 +0,0 @@ -.. module:: github3 -.. module:: github3.models - -Models -====== - -This part of the documentation covers a lot of lower-level objects that are -never directly seen or used by the user (developer). They are documented for -future developers of this library. - -Objects -------- - -.. autoclass:: GitHubCore - :inherited-members: - ------- - -.. autoclass:: BaseAccount - :inherited-members: - ------- - -.. autoclass:: BaseComment - :inherited-members: - ------- - -.. autoclass:: BaseCommit - :inherited-members: diff --git a/docs/notifications.rst b/docs/notifications.rst deleted file mode 100644 index 73b47c0df..000000000 --- a/docs/notifications.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. module:: github3 -.. module:: github3.notifications - -Notifications -============= - -This part of the documentation covers the :class:`Thread ` and -:class:`Subscription ` objects. - -Notification Objects --------------------- - -.. autoclass:: Thread - :inherited-members: - ------- - -.. autoclass:: Subscription - :inherited-members: diff --git a/docs/orgs.rst b/docs/orgs.rst deleted file mode 100644 index 82c65c59a..000000000 --- a/docs/orgs.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. module:: github3 -.. module:: github3.orgs - -Organization -============ - -This section of the documentation covers: - -- :class:`Organization `\ s -- :class:`Team `\ s - -Organization Objects --------------------- - -.. autoclass:: Organization - :inherited-members: - ------- - -.. autoclass:: Team - :inherited-members: diff --git a/docs/project_changelog.rst b/docs/project_changelog.rst deleted file mode 100644 index 5419b9d7e..000000000 --- a/docs/project_changelog.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. vim: set tw=100 - -Changelog ---------- - -.. include:: ../LATEST_VERSION_NOTES.rst - -.. include:: ../HISTORY.rst diff --git a/docs/pulls.rst b/docs/pulls.rst deleted file mode 100644 index 1d46c2dd5..000000000 --- a/docs/pulls.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. module:: github3 -.. module:: github3.pulls - -Pull Request -============ - -This section of the documentation covers: - -- :class:`PullRequest ` -- :class:`ReviewComment ` -- :class:`PullDestination ` -- :class:`PullFile ` - -Pull Request Objects --------------------- - -.. autoclass:: PullRequest - :inherited-members: - ------- - -.. autoclass:: ReviewComment - :inherited-members: - ------- - -.. autoclass:: PullDestination - :inherited-members: - ------- - -.. autoclass:: PullFile - :inherited-members: diff --git a/docs/repos.rst b/docs/repos.rst deleted file mode 100644 index a7b0eb2a1..000000000 --- a/docs/repos.rst +++ /dev/null @@ -1,159 +0,0 @@ -.. module:: github3 - -Repository -========== - -This part of the documentation covers: - -- :class:`Repository ` -- :class:`StarredRepository ` -- :class:`Asset ` -- :class:`Branch ` -- :class:`Contents ` -- :class:`Deployment ` -- :class:`DeploymentStatus ` -- :class:`Hook ` -- :class:`ImportedIssue ` -- :class:`PagesInfo ` -- :class:`PagesBuild ` -- :class:`Release ` -- :class:`RepoTag ` -- :class:`RepoComment ` -- :class:`RepoCommit ` -- :class:`Comparison ` -- :class:`Status ` -- :class:`ContributorStats ` - -None of these objects should be instantiated directly by the user (developer). -These are here for reference only. - -**When listing repositories in any context, GitHub refuses to return a number -of attributes, e.g., source and parent. If you require these, call the refresh -method on the repository object to make a second call to the API and retrieve -those attributes.** - -More information for about this class can be found in the official -`documentation `_ and in various other -sections of the GitHub documentation. - -Repository Objects ------------------- - -.. module:: github3.repos.repo - -.. autoclass:: github3.repos.repo.Repository - :inherited-members: - ---------- - -.. autoclass:: github3.repos.repo.StarredRepository - :inherited-members: - ---------- - -.. module:: github3.repos.branch - -.. autoclass:: github3.repos.branch.Branch - :members: - ---------- - -.. module:: github3.repos.contents - -.. autoclass:: github3.repos.contents.Contents - :members: - ---------- - -.. module:: github3.repos.deployment - -.. autoclass:: github3.repos.deployment.Deployment - :members: - ---------- - -.. autoclass:: github3.repos.deployment.DeploymentStatus - :members: - ---------- - -.. module:: github3.repos.release - -.. autoclass:: github3.repos.release.Release - :members: - ---------- - -.. autoclass:: github3.repos.release.Asset - :members: - ---------- - -.. module:: github3.repos.hook - -.. autoclass:: github3.repos.hook.Hook - :members: - ---------- - -.. module:: github3.repos.imported_issue - -.. autoclass:: github3.repos.issue_import.ImportedIssue - :members: - ---------- - -.. module:: github3.repos.pages - -.. autoclass:: github3.repos.pages.PagesInfo - :members: - ---------- - -.. autoclass:: github3.repos.pages.PagesBuild - :members: - ---------- - -.. module:: github3.repos.tag - -.. autoclass:: github3.repos.tag.RepoTag - :members: - ---------- - -.. module:: github3.repos.comment - -More information about this class can be found in the official documentation -about `comments `_. - -.. autoclass:: github3.repos.comment.RepoComment - :inherited-members: - ---------- - -.. module:: github3.repos.commit - -.. autoclass:: github3.repos.commit.RepoCommit - :members: - ---------- - -.. module:: github3.repos.comparison - -.. autoclass:: github3.repos.comparison.Comparison - :members: - ---------- - -.. module:: github3.repos.status - -.. autoclass:: github3.repos.status.Status - :members: - ---------- - -.. module:: github3.repos.stats - -.. autoclass:: github3.repos.stats.ContributorStats - :members: diff --git a/docs/search_structs.rst b/docs/search_structs.rst deleted file mode 100644 index a42c033a3..000000000 --- a/docs/search_structs.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. module:: github3 -.. module:: github3.search - -Search Structures -================= - -These classes are meant to expose the entirety of an item returned as a search -result by GitHub's Search API. - -Objects -------- - -.. autoclass:: CodeSearchResult - :members: - - -.. autoclass:: IssueSearchResult - :members: - - -.. autoclass:: RepositorySearchResult - :members: - - -.. autoclass:: UserSearchResult - :members: diff --git a/docs/source/api-reference/api.rst b/docs/source/api-reference/api.rst new file mode 100644 index 000000000..857ed4028 --- /dev/null +++ b/docs/source/api-reference/api.rst @@ -0,0 +1,53 @@ +.. _api: + +========================== + Anonymous Functional API +========================== + +.. module:: github3 +.. module:: github3.api + +This part of the documentation covers the API. This is intended to be a +beautifully written module which allows the user (developer) to interact with +``github3.py`` elegantly and easily. + +Module Contents +=============== + +To interact with the GitHub API you can either authenticate to access protected +functionality or you can interact with it anonymously. Authenticating provides +more functionality to the user (developer). + +To authenticate, you may use :func:`github3.login`. + +.. autofunction:: github3.login + +With the :class:`~github3.github.GitHub` object that is returned you have +access to more functionality. See that object's documentation for more +information. + +To use the API anonymously, you can also create a new +:class:`~github3.github.GitHub` object, e.g., + +.. code-block:: python + + from github3 import GitHub + + gh = GitHub() + +Enterprise Use +============== + +If you're using github3.py to interact with an enterprise installation of +GitHub, you **must** use the :class:`~github3.github.GitHubEnterprise` object. +Upon initialization, the only parameter you must supply is the URL of your +enterprise installation, e.g. + +.. code-block:: python + + from github3 import GitHubEnterprise + + g = GitHubEnterprise('https://github.examplesintl.com') + stats = g.admin_stats('all') + assert 'issues' in stats, ('Key issues is not included in the admin' + 'statistics') diff --git a/docs/source/api-reference/apps.rst b/docs/source/api-reference/apps.rst new file mode 100644 index 000000000..92db1ae9c --- /dev/null +++ b/docs/source/api-reference/apps.rst @@ -0,0 +1,18 @@ +================================== + App and Installation API Objects +================================== + +This section of the documentation covers the representations of various +objects related to the `Apps API`_. + +.. autoclass:: github3.apps.App + :inherited-members: + +.. autoclass:: github3.apps.Installation + :inherited-members: + + +.. --- +.. links +.. _Apps API: + https://developer.github.com/v3/apps diff --git a/docs/source/api-reference/auths.rst b/docs/source/api-reference/auths.rst new file mode 100644 index 000000000..6e1728da3 --- /dev/null +++ b/docs/source/api-reference/auths.rst @@ -0,0 +1,9 @@ +============================ + Authorizations API Classes +============================ + +This part of the documentation covers the +:class:`~github3.auths.Authorization` object. + +.. autoclass:: github3.auths.Authorization + :inherited-members: diff --git a/docs/source/api-reference/decorators.rst b/docs/source/api-reference/decorators.rst new file mode 100644 index 000000000..39286287a --- /dev/null +++ b/docs/source/api-reference/decorators.rst @@ -0,0 +1,23 @@ +.. _decorators: + +============ + Decorators +============ + +This part of the documentation covers the decorators module which contains all +of the decorators used in github3.py. + +.. warning:: + + These decorators are only to be used internally in development of this + library. + + +Decorator Functions +=================== + +.. autofunction:: github3.decorators.requires_auth + +.. autofunction:: github3.decorators.requires_basic_auth + +.. autofunction:: github3.decorators.requires_app_credentials diff --git a/docs/source/api-reference/events.rst b/docs/source/api-reference/events.rst new file mode 100644 index 000000000..995dfa1bb --- /dev/null +++ b/docs/source/api-reference/events.rst @@ -0,0 +1,63 @@ +==================== + Events API Classes +==================== + +This part of the documentation covers the objects that represent data returned +by the Events API. + + +The Event Object +================ + +.. autoclass:: github3.events.Event + :inherited-members: + +When accessing the payload of the event, you should notice that you receive a +dictionary where the keys depend on the event type_. Note: + +- where they reference an array in the documentation but index it like a + dictionary, you are given a regular dictionary + +- where they reference a key as returning an object, you receive the equivalent + object from the dictionary, e.g., for a Fork Event + + .. code-block:: python + + >>> event + + >>> event.payload + {u'forkee': } + >>> event.payload['forkee'] + + +Using the dictionary returned as the payload makes far more sense than creating +an object for the payload in this instance. For one, creating a class for each +payload type would be insanity. I did it once, but it isn't worth the effort. +Having individual handlers as we have now which modify the payload to use our +objects when available is more sensible. + + +Event Related Objects +===================== + +The following objects are returned as part of an +:class:`~github3.events.Event`. These objects all have methods to convert them +to full representations of the object. For example, +:class:`~github3.events.EventUser` has +:meth:`~github3.events.EventUser.to_user` and aliases +:meth:`~github3.events.EventUser.refresh` to behave similarly. + +.. autoclass:: github3.events.EventUser + +.. autoclass:: github3.events.EventOrganization + +.. autoclass:: github3.events.EventPullRequest + +.. autoclass:: github3.events.EventReviewComment + +.. autoclass:: github3.events.EventIssue + +.. autoclass:: github3.events.EventIssueComment + +.. links +.. _type: https://developer.github.com/v3/activity/events/types diff --git a/docs/source/api-reference/gists.rst b/docs/source/api-reference/gists.rst new file mode 100644 index 000000000..40f5fdd9a --- /dev/null +++ b/docs/source/api-reference/gists.rst @@ -0,0 +1,31 @@ +================== + Gist API Objects +================== + +The Gists API has a rich set of objects it returns. + + +Gist Representations +==================== + +.. autoclass:: github3.gists.gist.ShortGist + +.. autoclass:: github3.gists.gist.GistFork + +.. autoclass:: github3.gists.gist.Gist + + +Files in a Gist +=============== + +Gists have files which have two representations: + +.. autoclass:: github3.gists.file.GistFile + +.. autoclass:: github3.gists.file.ShortGistFile + + +The History of a Gist +===================== + +.. autoclass:: github3.gists.history.GistHistory diff --git a/docs/source/api-reference/git.rst b/docs/source/api-reference/git.rst new file mode 100644 index 000000000..061b56ebe --- /dev/null +++ b/docs/source/api-reference/git.rst @@ -0,0 +1,49 @@ +================= + Git API Classes +================= + +This part of the documentation covers the module associated with the +`Git Data`_ section of the GitHub API. + +Like much of the GitHub API, many objects have different representations. + + +Blob Object(s) +============== + +.. autoclass:: github3.git.Blob + + +Commit Object(s) +================ + +.. autoclass:: github3.git.Commit + +.. autoclass:: github3.git.ShortCommit + + +Tree Object(s) +============== + +.. autoclass:: github3.git.CommitTree + +.. autoclass:: github3.git.Hash + +.. autoclass:: github3.git.Tree + + +Git Object, Reference, and Tag Object(s) +======================================== + +Yes, we know, ``GitObject`` is a funky name. + +.. autoclass:: github3.git.GitObject + +.. autoclass:: github3.git.Reference + +.. autoclass:: github3.git.Tag + + +.. links +.. _Git Data: + https://developer.github.com/v3/git/ diff --git a/docs/source/api-reference/github.rst b/docs/source/api-reference/github.rst new file mode 100644 index 000000000..42b6116ea --- /dev/null +++ b/docs/source/api-reference/github.rst @@ -0,0 +1,35 @@ +=============== + GitHub Object +=============== + +The GitHub objects is the point at which most usage of github3.py works. + + +GitHub.com Object +================= + +.. autoclass:: github3.github.GitHub + :inherited-members: + + +Examples +-------- + +There are some examples of how to get started with this object +:ref:`here `. + + +GitHubEnterprise Object +======================= + +This has all of the same attributes as the :class:`~github3.github.GitHub` +object so for brevity's sake, I'm not listing all of it's inherited members. + +.. autoclass:: github3.github.GitHubEnterprise + :members: + + +GitHubSession Object +==================== + +.. autoclass:: github3.session.GitHubSession diff --git a/docs/source/api-reference/index.rst b/docs/source/api-reference/index.rst new file mode 100644 index 000000000..19fe60d34 --- /dev/null +++ b/docs/source/api-reference/index.rst @@ -0,0 +1,33 @@ +=============== + API Reference +=============== + +.. toctree:: + :maxdepth: 3 + + api + apps + auths + events + gists + git + github + issues + notifications + orgs + projects + pulls + repos + search + structs + users + + +Internals +========= + +.. toctree:: + :maxdepth: 1 + + decorators + models diff --git a/docs/source/api-reference/issues.rst b/docs/source/api-reference/issues.rst new file mode 100644 index 000000000..67eec4723 --- /dev/null +++ b/docs/source/api-reference/issues.rst @@ -0,0 +1,50 @@ +==================== + Issues API Objects +==================== + +The following objects represent data returned by the `Issues API`_ + + +Issues +------ + +.. autoclass:: github3.issues.issue.ShortIssue + :inherited-members: + +.. autoclass:: github3.issues.issue.Issue + :inherited-members: + + +Issue Comments +-------------- + +.. autoclass:: github3.issues.comment.IssueComment + :inherited-members: + + +Issue Events +------------ + +.. autoclass:: github3.issues.event.IssueEvent + :inherited-members: + +.. autoclass:: github3.issues.event.RepositoryIssueEvent + + +Issue Labels +------------ + +.. autoclass:: github3.issues.label.Label + :inherited-members: + + +Milestone Objects +----------------- + +.. autoclass:: github3.issues.milestone.Milestone + :inherited-members: + + +.. links +.. _Issues API: + https://developer.github.com/v3/issues/ diff --git a/docs/source/api-reference/models.rst b/docs/source/api-reference/models.rst new file mode 100644 index 000000000..51bfaf2aa --- /dev/null +++ b/docs/source/api-reference/models.rst @@ -0,0 +1,15 @@ +======== + Models +======== + +This part of the documentation covers a lot of lower-level objects that are +never directly seen or used by the user (developer). They are documented for +future developers of this library. + +.. warning:: + + These classes are only to be used internally in development of this + library. + +.. autoclass:: github3.models.GitHubCore + :inherited-members: diff --git a/docs/source/api-reference/notifications.rst b/docs/source/api-reference/notifications.rst new file mode 100644 index 000000000..17225670c --- /dev/null +++ b/docs/source/api-reference/notifications.rst @@ -0,0 +1,19 @@ +=============== + Notifications +=============== + +This part of the documentation covers the notifications module which contains +all of the classes used to represent notification objects in github3.py. + + +Notification Objects +-------------------- + +.. autoclass:: github3.notifications.Thread + :inherited-members: + +.. autoclass:: github3.notifications.ThreadSubscription + :inherited-members: + +.. autoclass:: github3.notifications.RepositorySubscription + :inherited-members: diff --git a/docs/source/api-reference/orgs.rst b/docs/source/api-reference/orgs.rst new file mode 100644 index 000000000..ea685b663 --- /dev/null +++ b/docs/source/api-reference/orgs.rst @@ -0,0 +1,29 @@ +========================================= + Organizations and their Related Objects +========================================= + +This section of the documentation covers the objects that represent data +returned by the API for organizations. + + +Team Objects +------------ + +.. autoclass:: github3.orgs.ShortTeam + :inherited-members: + +.. autoclass:: github3.orgs.Team + :inherited-members: + +.. autoclass:: github3.orgs.Membership + :inherited-members: + + +Organization Objects +-------------------- + +.. autoclass:: github3.orgs.ShortOrganization + :inherited-members: + +.. autoclass:: github3.orgs.Organization + :inherited-members: diff --git a/docs/source/api-reference/projects.rst b/docs/source/api-reference/projects.rst new file mode 100644 index 000000000..07cd2c5a3 --- /dev/null +++ b/docs/source/api-reference/projects.rst @@ -0,0 +1,24 @@ +======================================= + Projects and their Associated Objects +======================================= + +This section of the documentation covers the representations of various +objects related to the `Projects API`_. + +Project Objects +--------------- + +.. autoclass:: github3.projects.Project + :inherited-members: + +.. autoclass:: github3.projects.ProjectColumn + :inherited-members: + +.. autoclass:: github3.projects.ProjectCard + :inherited-members: + + +.. --- +.. links +.. _Projects API: + https://docs.github.com/en/rest/reference/projects diff --git a/docs/source/api-reference/pulls.rst b/docs/source/api-reference/pulls.rst new file mode 100644 index 000000000..aafc98441 --- /dev/null +++ b/docs/source/api-reference/pulls.rst @@ -0,0 +1,38 @@ +============================================ + Pull Requests and their Associated Objects +============================================ + +This section of the documentation covers the representations of various +objects related to the `Pull Requests API`_. + +Pull Request Objects +-------------------- + +.. autoclass:: github3.pulls.ShortPullRequest + :inherited-members: + +.. autoclass:: github3.pulls.PullRequest + :inherited-members: + +.. autoclass:: github3.pulls.PullDestination + :inherited-members: + +.. autoclass:: github3.pulls.Head + +.. autoclass:: github3.pulls.Base + +.. autoclass:: github3.pulls.PullFile + :inherited-members: + + +Review Objects +-------------- + +.. autoclass:: github3.pulls.ReviewComment + :inherited-members: + + +.. --- +.. links +.. _Pull Requests API: + https://developer.github.com/v3/pulls/ diff --git a/docs/source/api-reference/repos.rst b/docs/source/api-reference/repos.rst new file mode 100644 index 000000000..04fd47707 --- /dev/null +++ b/docs/source/api-reference/repos.rst @@ -0,0 +1,139 @@ +======================== + Repository API Objects +======================== + +This section of the documentation covers the representations of various +objects related to the `Repositories API`_. + + +Repository Objects +------------------ + +.. autoclass:: github3.repos.repo.Repository + :inherited-members: + +.. autoclass:: github3.repos.repo.ShortRepository + :inherited-members: + +.. autoclass:: github3.repos.repo.StarredRepository + :inherited-members: + +.. autoclass:: github3.repos.contents.Contents + :members: + +.. autoclass:: github3.repos.hook.Hook + :members: + +.. autoclass:: github3.repos.issue_import.ImportedIssue + :members: + + +Git-related Objects +------------------- + +.. autoclass:: github3.repos.tag.RepoTag + :members: + +Branches +~~~~~~~~ + +.. autoclass:: github3.repos.branch.Branch + :members: + +.. autoclass:: github3.repos.branch.ShortBranch + :members: + +.. autoclass:: github3.repos.branch.BranchProtection + :members: + +.. autoclass:: github3.repos.branch.ProtectionEnforceAdmins + :members: + +.. autoclass:: github3.repos.branch.ProtectionRestrictions + :members: + +.. autoclass:: github3.repos.branch.ProtectionRequiredPullRequestReviews + :members: + +.. autoclass:: github3.repos.branch.ProtectionRequiredStatusChecks + :members: + +Commits +~~~~~~~ + +.. autoclass:: github3.repos.commit.MiniCommit + :members: + +.. autoclass:: github3.repos.commit.ShortCommit + :members: + +.. autoclass:: github3.repos.commit.RepoCommit + :members: + +.. autoclass:: github3.repos.comparison.Comparison + :members: + + +Release Objects +--------------- + +.. autoclass:: github3.repos.release.Asset + :members: + +.. autoclass:: github3.repos.release.Release + :members: + + +Pages Objects +------------- + +.. autoclass:: github3.repos.pages.PagesInfo + :members: + +.. autoclass:: github3.repos.pages.PagesBuild + :members: + + +Comment Objects +--------------- + +More information about these classes can be found in the official documentation +about `comments `_. + +.. autoclass:: github3.repos.comment.ShortComment + :members: + +.. autoclass:: github3.repos.comment.RepoComment + :members: + + +Deployment and Status Objects +----------------------------- + +.. autoclass:: github3.repos.deployment.Deployment + :members: + +.. autoclass:: github3.repos.deployment.DeploymentStatus + :members: + +.. autoclass:: github3.repos.status.ShortStatus + :members: + +.. autoclass:: github3.repos.status.CombinedStatus + :members: + +.. autoclass:: github3.repos.status.Status + :members: + + +Contributor Statistics Objects +------------------------------ + +.. autoclass:: github3.repos.stats.ContributorStats + :members: + + +.. --- +.. links +.. _Repositories API: + https://developer.github.com/v3/repos/ diff --git a/docs/source/api-reference/search.rst b/docs/source/api-reference/search.rst new file mode 100644 index 000000000..162f8f44c --- /dev/null +++ b/docs/source/api-reference/search.rst @@ -0,0 +1,21 @@ +================ + Search Results +================ + +These classes are meant to expose the entirety of an item returned as a search +result by GitHub's Search API. + +.. autoclass:: github3.search.CodeSearchResult + :members: + + +.. autoclass:: github3.search.IssueSearchResult + :members: + + +.. autoclass:: github3.search.RepositorySearchResult + :members: + + +.. autoclass:: github3.search.UserSearchResult + :members: diff --git a/docs/source/api-reference/structs.rst b/docs/source/api-reference/structs.rst new file mode 100644 index 000000000..f5081bf46 --- /dev/null +++ b/docs/source/api-reference/structs.rst @@ -0,0 +1,16 @@ +============================ + Custom Iterator Structures +============================ + +Many of the methods in github3.py that return iterators of another object are +actually returning one of the iterators below. These iterators effectively +allow users to ignore GitHub's API pagination of large sets of data. In all +senses, they behave like a normal Python iterator. Their difference is that +they have extra logic around making API requests and coercing the JSON into +predefined objects. + +.. autoclass:: github3.structs.GitHubIterator + :inherited-members: + +.. autoclass:: github3.structs.SearchIterator + :inherited-members: diff --git a/docs/source/api-reference/users.rst b/docs/source/api-reference/users.rst new file mode 100644 index 000000000..345a437a3 --- /dev/null +++ b/docs/source/api-reference/users.rst @@ -0,0 +1,47 @@ +==================================== + Users and their Associated Objects +==================================== + +This section of the documentation covers the representations of various +objects related to the `Users API`_. + + +User Objects +------------ + +.. autoclass:: github3.users.ShortUser + :inherited-members: + +.. autoclass:: github3.users.Stargazer + :inherited-members: + +.. autoclass:: github3.users.User + :inherited-members: + +.. autoclass:: github3.users.AuthenticatedUser + :inherited-members: + +.. autoclass:: github3.users.Collaborator + :inherited-members: + +.. autoclass:: github3.users.Contributor + :inherited-members: + + +AuthenticatedUser Peripherals +----------------------------- + +.. autoclass:: github3.users.Key + :inherited-members: + +.. autoclass:: github3.users.Plan + :inherited-members: + +.. autoclass:: github3.users.Email + :inherited-members: + + +.. --- +.. links +.. _Users API: + https://developer.github.com/v3/users/ diff --git a/docs/conf.py b/docs/source/conf.py similarity index 76% rename from docs/conf.py rename to docs/source/conf.py index 3d1ec55c8..266dd6aaf 100644 --- a/docs/conf.py +++ b/docs/source/conf.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # # Requests documentation build configuration file, created by # sphinx-quickstart on Sun Feb 13 23:54:25 2011. @@ -10,43 +9,43 @@ # # All configuration values have a default; values that are commented out # serve to show the default. - -import sys, os +import os +import sys # This environment variable makes decorators not decorate functions, so their # signatures in the generated documentation are still correct -os.environ['GENERATING_DOCUMENTATION'] = "github3" +os.environ["GENERATING_DOCUMENTATION"] = "github3" # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) import github3 # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# 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. -extensions = ['sphinx.ext.autodoc'] +extensions = ["sphinx.ext.autodoc"] # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix of source filenames. -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'github3.py' -copyright = u'2012 - Ian Cordasco' +project = "github3.py" +copyright = "2012-2021 - Ian Stapleton Cordasco" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -59,158 +58,164 @@ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -#language = None +# language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. # pygments_style = 'flask_theme_support.FlaskyStyle' # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -#html_theme = 'nature' +# html_theme = 'nature' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +html_logo = "../img/gh3-logo-transparent.png" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -#html_static_path = ['_static'] +# html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = False +# html_show_sourcelink = False # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = False +# html_show_sphinx = False # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Output file base name for HTML help builder. -htmlhelp_basename = 'github3.pydoc' +htmlhelp_basename = "github3.pydoc" # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' +# latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' +# latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'github3.py.tex', u'github3.py Documentation', - u'Ian Cordasco', 'manual'), + ( + "index", + "github3.py.tex", + "github3.py Documentation", + "Ian Cordasco", + "manual", + ), ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Additional stuff for the LaTeX preamble. -#latex_preamble = '' +# latex_preamble = '' # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output -------------------------------------------- @@ -218,12 +223,11 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'github3.py', u'github3.py Documentation', - [u'Ian Cordasco'], 1) + ("index", "github3.py", "github3.py Documentation", ["Ian Cordasco"], 1) ] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------------ @@ -231,8 +235,15 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - ('index', 'github3.py', u'github3.py Documentation', u'Ian Cordasco', - 'github3.py', 'Wrapper for GitHub API v3', 'Miscellaneous'), + ( + "index", + "github3.py", + "github3.py Documentation", + "Ian Cordasco", + "github3.py", + "Wrapper for GitHub API v3", + "Miscellaneous", + ), ] # Documents to append as an appendix to all manuals. diff --git a/docs/testing.rst b/docs/source/contributing/testing.rst similarity index 87% rename from docs/testing.rst rename to docs/source/contributing/testing.rst index 6b1268199..0db4834a9 100644 --- a/docs/testing.rst +++ b/docs/source/contributing/testing.rst @@ -4,21 +4,21 @@ Writing Tests for github3.py Unit Tests ---------- - In computer programming, unit testing is a method by which individual - units of source code, sets of one or more computer program modules - together with associated control data, usage procedures, and operating - procedures are tested to determine if they are fit for use. Intuitively, + In computer programming, unit testing is a method by which individual + units of source code, sets of one or more computer program modules + together with associated control data, usage procedures, and operating + procedures are tested to determine if they are fit for use. Intuitively, one can view a unit as the smallest testable part of an application. - -- `Unit Testing on Wikipedia + -- `Unit Testing on Wikipedia `_ -In github3.py we use unit tests to make assertions about how the library -behaves without making a request to the internet. For example, one assertion -we might write would check if custom information is sent along in a request to +In github3.py we use unit tests to make assertions about how the library +behaves without making a request to the internet. For example, one assertion +we might write would check if custom information is sent along in a request to GitHub. -An existing test like this can be found in +An existing test like this can be found in ``tests/unit/test_repos_release.py``: .. code:: python @@ -30,13 +30,13 @@ An existing test like this can be found in headers={'Accept': 'application/vnd.github.manifold-preview'} ) -In this test, we check that the library passes on important headers to the API -to ensure the request will work properly. ``self.instance`` is created for us -and is an instance of the ``Release`` class. The test then calls ``delete`` to -make a request to the API. ``self.session`` is a mock object which fakes out a -normal session. It does not allow the request through but allows us to verify -how github3.py makes a request. We can see that github3.py called ``delete`` -on the session. We assert that it was only called once and that the only +In this test, we check that the library passes on important headers to the API +to ensure the request will work properly. ``self.instance`` is created for us +and is an instance of the ``Release`` class. The test then calls ``delete`` to +make a request to the API. ``self.session`` is a mock object which fakes out a +normal session. It does not allow the request through but allows us to verify +how github3.py makes a request. We can see that github3.py called ``delete`` +on the session. We assert that it was only called once and that the only parameters sent were a URL and the custom headers that we are concerned with. Mocks @@ -44,32 +44,32 @@ Mocks Above we talked about mock objects. What are they? - In object-oriented programming, mock objects are simulated objects that - mimic the behavior of real objects in controlled ways. A programmer - typically creates a mock object to test the behavior of some other object, - in much the same way that a car designer uses a crash test dummy to + In object-oriented programming, mock objects are simulated objects that + mimic the behavior of real objects in controlled ways. A programmer + typically creates a mock object to test the behavior of some other object, + in much the same way that a car designer uses a crash test dummy to simulate the dynamic behavior of a human in vehicle impacts. -- `Mock Object on Wikipedia `_ -We use mocks in github3.py to prevent the library from talking directly with -GitHub. The mocks we use intercept requests the library makes so we can verify -the parameters we use. In the example above, we were able to check that -certain parameters were the only ones sent to a session method because we +We use mocks in github3.py to prevent the library from talking directly with +GitHub. The mocks we use intercept requests the library makes so we can verify +the parameters we use. In the example above, we were able to check that +certain parameters were the only ones sent to a session method because we mocked out the session. -You may have noticed in the example above that we did not have to set up the -mock object. There is a convenient helper written in ``tests/unit/helper.py`` +You may have noticed in the example above that we did not have to set up the +mock object. There is a convenient helper written in ``tests/unit/helper.py`` to do this for you. Example - Testing the Release Object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Here's a full example of how we test the ``Release`` object in +Here's a full example of how we test the ``Release`` object in ``tests/unit/test_repos_release.py``. -Our first step is to import the ``UnitHelper`` class from -``tests/unit/helper.py`` and the ``Release`` object from +Our first step is to import the ``UnitHelper`` class from +``tests/unit/helper.py`` and the ``Release`` object from ``github3/repos/release.py``. .. code:: python @@ -77,7 +77,7 @@ Our first step is to import the ``UnitHelper`` class from from .helper import UnitHelper from github3.repos.release import Release -Then we construct our test class and indicate which class we will be testing +Then we construct our test class and indicate which class we will be testing (or describing). .. code:: python @@ -85,8 +85,8 @@ Then we construct our test class and indicate which class we will be testing class TestRelease(UnitHelper): described_class = Release -We can then use the `GitHub API documentation about Releases -`_ to retrieve example release +We can then use the `GitHub API documentation about Releases +`_ to retrieve example release data. We then can use that as example data for our test like so: .. code:: python @@ -109,8 +109,8 @@ data. We then can use that as example data for our test like so: "published_at": "2013-02-27T19:35:32Z" } -The above code now will handle making clean and brand new instances of the -``Release`` object with the example data and a faked out session. We can now +The above code now will handle making clean and brand new instances of the +``Release`` object with the example data and a faked out session. We can now construct our first test. .. code:: python @@ -126,22 +126,22 @@ construct our first test. Integration Tests ----------------- - Integration testing is the phase in software testing in which individual + Integration testing is the phase in software testing in which individual software modules are combined and tested as a group. - The purpose of integration testing is to verify functional, performance, + The purpose of integration testing is to verify functional, performance, and reliability requirements placed on major design items. - -- `Integration tests on Wikipedia + -- `Integration tests on Wikipedia `_ -In github3.py we use integration tests to ensure that when we make what should -be a valid request to GitHub, it is in fact valid. For example, if we were -testing how github3.py requests a user's information, we would expect a -request for a real user's data to be valid. If the test fails we know either +In github3.py we use integration tests to ensure that when we make what should +be a valid request to GitHub, it is in fact valid. For example, if we were +testing how github3.py requests a user's information, we would expect a +request for a real user's data to be valid. If the test fails we know either what the library is doing is wrong or the data requested does not exist. -An existing test that demonstrates integration testing can be found in +An existing test that demonstrates integration testing can be found in ``tests/integration/test_repos_release.py``: .. code:: python @@ -156,31 +156,31 @@ An existing test that demonstrates integration testing can be found in assert isinstance(asset, github3.repos.release.Asset) assert asset is not None -In this test we use ``self.recorder`` to record our interaction with GitHub. -We then proceed to make the request to GitHub that will exercise the code we -wish to test. First we request a ``Repository`` object from GitHub and then -using that we request a ``Release`` object. After receiving that release, we -exercise the code that lists the assets of a ``Release``. We verify that each -asset is an instance of the ``Asset`` class and that at the end the ``asset`` -variable is not ``None``. If ``asset`` was ``None``, that would indicate that -GitHub did not return any data and it did not exercise the code we are trying +In this test we use ``self.recorder`` to record our interaction with GitHub. +We then proceed to make the request to GitHub that will exercise the code we +wish to test. First we request a ``Repository`` object from GitHub and then +using that we request a ``Release`` object. After receiving that release, we +exercise the code that lists the assets of a ``Release``. We verify that each +asset is an instance of the ``Asset`` class and that at the end the ``asset`` +variable is not ``None``. If ``asset`` was ``None``, that would indicate that +GitHub did not return any data and it did not exercise the code we are trying to test. Betamax ~~~~~~~ -Betamax_ is the library that we use to create the recorder above. It sets up -the session object to intercept every request and corresponding response and -save them to what it calls cassettes_. After you record the interaction it +Betamax_ is the library that we use to create the recorder above. It sets up +the session object to intercept every request and corresponding response and +save them to what it calls cassettes_. After you record the interaction it never has to speak to the internet again for that request. -In github3.py there is a helper class (much like ``UnitHelper``) in +In github3.py there is a helper class (much like ``UnitHelper``) in ``tests/integration/helper.py`` which sets everything up for us. Example - Testing the Release Object ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Here's an example of how we write an integration test for github3.py. The +Here's an example of how we write an integration test for github3.py. The example can be found in ``tests/integration/test_repos_release.py``. Our first steps are the necessary imports. @@ -210,37 +210,37 @@ Then we start writing our test right away. assert release is not None assert release.delete() is True -Every test has access to ``self.gh`` which is an instance of ``GitHub``. -``IntegrationHelper`` provides a lot of methods that allow you to focus on -what we are testing instead of setting up for the test. The first of those -methods we see in use is ``self.token_login`` which handles authenticating -with a token. It's sister method is ``self.basic_login`` which handles -authentication with basic credentials. Both of these methods will set up the -authentication for you on ``self.gh``. +Every test has access to ``self.gh`` which is an instance of ``GitHub``. +``IntegrationHelper`` provides a lot of methods that allow you to focus on +what we are testing instead of setting up for the test. The first of those +methods we see in use is ``self.token_login`` which handles authenticating +with a token. It's sister method is ``self.basic_login`` which handles +authentication with basic credentials. Both of these methods will set up the +authentication for you on ``self.gh``. -The next convenience method we see is ``self.cassette_name``. It constructs a -cassette name for you based on the test class name and the string you provide +The next convenience method we see is ``self.cassette_name``. It constructs a +cassette name for you based on the test class name and the string you provide it. -Every test also has access to ``self.recorder``. This is the Betamax recorder -that has been set up for you to record your interactions. The recorder is +Every test also has access to ``self.recorder``. This is the Betamax recorder +that has been set up for you to record your interactions. The recorder is started when you write .. code:: python with self.recorder.use_cassette(cassette_name): - # ... + # … -Everything that talks to GitHub should be written inside of the context -created by the context manager there. No requests to GitHub should be made +Everything that talks to GitHub should be written inside of the context +created by the context manager there. No requests to GitHub should be made outside of that context. -In that context, we then retrieve a repository and create a release for it. We -want to be sure that we will be deleting something that exists so we assert -that what we received back from GitHub is not ``None``. Finally we call +In that context, we then retrieve a repository and create a release for it. We +want to be sure that we will be deleting something that exists so we assert +that what we received back from GitHub is not ``None``. Finally we call ``delete`` and assert that it returns ``True``. -When you write your new test and record a new cassette, be sure to add the new +When you write your new test and record a new cassette, be sure to add the new cassette file to the repository, like so: .. code:: @@ -250,7 +250,7 @@ cassette file to the repository, like so: Recording Cassettes that Require Authentication/Authorization ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If you need to write a test that requires an Authorization (i.e., oAuth token) +If you need to write a test that requires an Authorization (i.e., OAuth token) or Authentication (i.e., username and password), all you need to do is set environment variables when running `py.test`, e.g., @@ -264,4 +264,4 @@ Betamax sanitizes information like that before saving the cassette. It never does hurt to double check though. .. _Betamax: https://github.com/sigmavirus24/betamax -.. _cassettes: https://betamax.readthedocs.org/en/latest/cassettes.html +.. _cassettes: https://betamax.readthedocs.io/en/latest/cassettes.html diff --git a/docs/examples/gist.rst b/docs/source/examples/gist.rst similarity index 90% rename from docs/examples/gist.rst rename to docs/source/examples/gist.rst index c137122d4..f0d0cc008 100644 --- a/docs/examples/gist.rst +++ b/docs/source/examples/gist.rst @@ -54,10 +54,10 @@ Creating an anonymous gist # comment == None print(gist.html_url) -In the above examples ``'spam.txt'`` is the file name. GitHub will auto-detect -file type based on extension provided. ``'What... is the air-speed velocity of +In the above examples ``'spam.txt'`` is the file name. GitHub will autodetect +file type based on extension provided. ``'What… is the air-speed velocity of an unladen swallow?'`` is the file's content or body. ``'Answer this to cross -the bridge'`` is the gists's description. While required by github3.py, it is +the bridge'`` is the gist's description. While required by github3.py, it is allowed to be empty, e.g., ``''`` is accepted by GitHub. Note that anonymous gists are always public. diff --git a/docs/examples/git.rst b/docs/source/examples/git.rst similarity index 92% rename from docs/examples/git.rst rename to docs/source/examples/git.rst index 7847c901d..a2177eb8d 100644 --- a/docs/examples/git.rst +++ b/docs/source/examples/git.rst @@ -1,15 +1,15 @@ Git Code Examples ================= -The GitHub API does not just provide an API to interact with GitHub's -features. A whole section of the API provides a RESTful API to git operations +The GitHub API does not just provide an API to interact with GitHub's +features. A whole section of the API provides a RESTful API to git operations that one might normally perform at the command-line or via your git client. Creating a Blob Object ---------------------- -One of the really cool (and under used, it seems) parts of the GitHub API -involves the ability to create commit and blob objects. +One of the really cool (and under used, it seems) parts of the GitHub API +involves the ability to create blob objects. .. code-block:: python @@ -30,7 +30,7 @@ involves the ability to create commit and blob objects. Creating a Tag Object --------------------- -GitHub provides tar files for download via tag objects. You can create one via +GitHub provides tar files for download via tag objects. You can create one via ``git tag`` or you can use the API. .. code-block:: python diff --git a/docs/examples/github.rst b/docs/source/examples/github.rst similarity index 87% rename from docs/examples/github.rst rename to docs/source/examples/github.rst index 0d7845904..bd150d4b6 100644 --- a/docs/examples/github.rst +++ b/docs/source/examples/github.rst @@ -22,7 +22,7 @@ object ``g``. That might look like this:: pass try: - user = raw_input('GitHub username: ') + user = input('GitHub username: ') or getuser() except KeyboardInterrupt: user = getuser() @@ -38,9 +38,9 @@ object ``g``. That might look like this:: So anywhere you see ``g`` used, you can safely assume that it is an instance where a user has authenticated already. -For the cases where we do not need an authenticated user, or where we are trying -to demonstrate the differences between the two, I will use ``anon``. ``anon`` -could be instantiated like so:: +For the cases where we do not need an authenticated user, or where we are +trying to demonstrate the differences between the two, I will use ``anon``. +``anon`` could be instantiated like so:: anon = GitHub() @@ -60,12 +60,12 @@ Adding a new key to your account :: try: - path = raw_input('Path to key: ') + path = input('Path to key: ') except KeyboardInterrupt: path = '' try: - name = raw_input('Key name: ') + name = input('Key name: ') except KeyboardInterrupt: name = '' @@ -110,17 +110,24 @@ Creating a new repository for key in keys: try: - repo[key] = raw_input(key + ': ') + repo[key] = input(key + ': ') except KeyboardInterrupt: pass r = None if repo.get('name'): - r = g.create_repo(repo.pop('name'), **repo) + r = g.create_repository(repo.pop('name'), **repo) if r: print("Created {0} successfully.".format(r.name)) +Create a commit to change an existing file +------------------------------------------ + +:: + + repo.file_contents('/README.md').update('commit message', 'file content'.encode('utf-8')) + Follow another user on GitHub ----------------------------- diff --git a/docs/examples/issue.rst b/docs/source/examples/issue.rst similarity index 87% rename from docs/examples/issue.rst rename to docs/source/examples/issue.rst index 61b6cdba1..93f79b803 100644 --- a/docs/examples/issue.rst +++ b/docs/source/examples/issue.rst @@ -3,8 +3,8 @@ Issue Code Examples Examples using ``Issue``\ s -Administrating Issues ---------------------- +Administering Issues +-------------------- Let's assume you have your username and password stored in ``user`` and ``pw`` respectively, you have your repository name stored in ``repo``, and the number @@ -34,13 +34,13 @@ Example issue to comment on --------------------------- If you would like to test the above, see -`issue #108 `_. Just -follow the code there and fill in your username, password (or token), and -comment message. Then run the script and watch as the issue opens in your +`issue #108 `_. Just +follow the code there and fill in your username, password (or token), and +comment message. Then run the script and watch as the issue opens in your browser focusing on the comment **you** just created. The following shows how you could use github3.py to fetch and display your -issues in your own style and in your webbrowser. +issues in your own style and in your web browser. .. literalinclude:: source/browser.py :language: python @@ -53,7 +53,9 @@ Or how to do the same by wrapping the lines in your terminal. Importing an issue ------------------ -Not only can you create new issues, but you can import existing ones. When importing, you preserve the timestamp creation date; you can preserve the timestamp(s) for comment(s) too. +Not only can you create new issues, but you can import existing ones. When +importing, you preserve the timestamp creation date; you can preserve the +timestamp(s) for comment(s) too. :: @@ -77,4 +79,4 @@ Here's how to check the status of the imported issue. import github3 issue = repository.imported_issue(issue_num) - print issue.status + print(issue.status) diff --git a/docs/examples/logging.rst b/docs/source/examples/logging.rst similarity index 87% rename from docs/examples/logging.rst rename to docs/source/examples/logging.rst index c3ded1de8..1671e8b40 100644 --- a/docs/examples/logging.rst +++ b/docs/source/examples/logging.rst @@ -5,13 +5,13 @@ Using Logging with github3.py .. versionadded:: 0.6.0 -The following example shows how to set up logging for github3.py. It is off by +The following example shows how to set up logging for github3.py. It is off by default in the library and will not pollute your logs. .. literalinclude:: source/logging_ex.py :language: python -One thing to note is that if you want more detailed information about what is +One thing to note is that if you want more detailed information about what is happening while the requests are sent, you can do the following: .. code-block:: python @@ -19,16 +19,16 @@ happening while the requests are sent, you can do the following: import logging urllib3 = logging.getLogger('requests.packages.urllib3') -And configure the logger for urllib3. Unfortunately, requests itself doesn't -provide any logging, so the best you can actually get is by configuring +And configure the logger for urllib3. Unfortunately, requests itself doesn't +provide any logging, so the best you can actually get is by configuring ``urllib3``. You will see messages about the following in the logs: -* Construction of URLs used in requests, usually in the form: +* Construction of URLs used in requests, usually in the form: ``('https://api.github.com', 'repos', 'sigmavirus24', 'github3.py')`` * What request is being sent, e.g., ``POST https://api.github.com/user kwargs={}`` -* If JSON is trying to be extracted from the response, what the response's - status code was, what the expected status code was and whether any JSON was +* If JSON is trying to be extracted from the response, what the response's + status code was, what the expected status code was and whether any JSON was actually returned. diff --git a/docs/examples/oauth.rst b/docs/source/examples/oauth.rst similarity index 88% rename from docs/examples/oauth.rst rename to docs/source/examples/oauth.rst index f811bc1fb..e19130122 100644 --- a/docs/examples/oauth.rst +++ b/docs/source/examples/oauth.rst @@ -3,34 +3,34 @@ Using Tokens for Your Projects ------------------------------ -Let's say you're designing an application that uses github3.py. If your +Let's say you're designing an application that uses github3.py. If your intention is to have users authenticate, you have a few options. -1. Ask the user to enter their credentials each time they start the - application. (Or save the username somewhere, and just ask for the +1. Ask the user to enter their credentials each time they start the + application. (Or save the username somewhere, and just ask for the password.) -2. Ask the user to supply their credentials once and store them somewhere for - later use. (**VERY VERY BAD**) -3. Ask the user to supply their credentials once, get an authorization token +2. Ask the user to supply their credentials once and store them somewhere for + later use. +3. Ask the user to supply their credentials once, get an authorization token and store that for later use. -The first isn't a bad method at all, it just unfortunately may lead to unhappy -users, this should always be an option though. The second (as I already noted) -is a bad idea. Even if you obfuscate the username and password, they can still -be discovered and no level of obfuscation is clever enough. (May I also take -this moment to remind people that base64 is **not** encryption.) The last is -probably the least objectionable of the evils. The token has scopes so there +The first isn't a bad method at all, it just unfortunately may lead to unhappy +users, this should always be an option though. The second (as I already noted) +is a bad idea. Even if you obfuscate the username and password, they can still +be discovered and no level of obfuscation is clever enough. (May I also take +this moment to remind people that base64 is **not** encryption.) The last is +probably the least objectionable of the evils. The token has scopes so there is only so much someone can do with it and it works well with github3.py. Requesting a token ~~~~~~~~~~~~~~~~~~ -If you're not doing a web application, you are more than welcome to use -github3.py (otherwise work with redirects_). Let's say your application needs -access to public and private repositories, and the users but not to gists. -Your scopes_ should be ``['user', 'repo']``. I'm also assuming your -application will not be deleting any repositories. The only things left to do -are collect the username and password and give a good description for your +If you're not doing a web application, you are more than welcome to use +github3.py (otherwise work with redirects_). Let's say your application needs +access to public and private repositories, and the users but not to gists. +Your scopes_ should be ``['user', 'repo']``. I'm also assuming your +application will not be deleting any repositories. The only things left to do +are collect the username and password and give a good description for your application. :: @@ -52,10 +52,10 @@ application. with open(CREDENTIALS_FILE, 'w') as fd: fd.write(auth.token + '\n') - fd.write(auth.id) + fd.write(str(auth.id)) -In the future, you can then read that token in without having to bother your -user. If at some later point in the lifetime of your application you need more +In the future, you can then read that token in without having to bother your +user. If at some later point in the lifetime of your application you need more privileges, you simply do the following: :: @@ -75,7 +75,5 @@ privileges, you simply do the following: # token == auth.token # in case the update changes the token -Hopefully this helps someone. - .. _redirects: http://developer.github.com/v3/oauth/#redirect-urls .. _scopes: http://developer.github.com/v3/oauth/#scopes diff --git a/docs/examples/octocat.rst b/docs/source/examples/octocat.rst similarity index 88% rename from docs/examples/octocat.rst rename to docs/source/examples/octocat.rst index 340ca2a98..4bf7d4dbd 100644 --- a/docs/examples/octocat.rst +++ b/docs/source/examples/octocat.rst @@ -8,15 +8,15 @@ What you should see :: - - Hey Octocat! + + Hey Octocat MMM. .MMM MMMMMMMMMMMMMMMMMMM - MMMMMMMMMMMMMMMMMMM __________ - MMMMMMMMMMMMMMMMMMMMM | | - MMMMMMMMMMMMMMMMMMMMMMM | Hey Ian! | - MMMMMMMMMMMMMMMMMMMMMMMM |_ ______| + MMMMMMMMMMMMMMMMMMM _________ + MMMMMMMMMMMMMMMMMMMMM | | + MMMMMMMMMMMMMMMMMMMMMMM | Hey Ian | + MMMMMMMMMMMMMMMMMMMMMMMM |_ _____| MMMM::- -:::::::- -::MMMM |/ MM~:~ ~:::::~ ~:~MM .. MMMMM::. .:::+:::. .::MMMMM .. @@ -59,7 +59,7 @@ What you should see Thanks Octocat, that means a lot coming from you. FIN. - Epilog: + Epilogue: The preceding conversation was entirely fictional. If you didn't realize that, you need to get out more. And yes, I did just have a conversation with an API. Cool, no? (Sad too, I guess.) diff --git a/docs/examples/source/browser.py b/docs/source/examples/source/browser.py similarity index 67% rename from docs/examples/source/browser.py rename to docs/source/examples/source/browser.py index 969a19938..f2dcd7e5a 100644 --- a/docs/examples/source/browser.py +++ b/docs/source/examples/source/browser.py @@ -1,11 +1,12 @@ -import webbrowser import tempfile +import webbrowser + import github3 template = """{0}""" -i = github3.issue('kennethreitz', 'requests', 868) +i = github3.issue("kennethreitz", "requests", 868) with tempfile.NamedTemporaryFile() as tmpfd: tmpfd.write(template.format(i.body_html)) - webbrowser.open('file://' + tmpfd.name) + webbrowser.open("file://" + tmpfd.name) diff --git a/docs/examples/source/logging_ex.py b/docs/source/examples/source/logging_ex.py similarity index 72% rename from docs/examples/source/logging_ex.py rename to docs/source/examples/source/logging_ex.py index 01204779c..e0b7a0046 100644 --- a/docs/examples/source/logging_ex.py +++ b/docs/source/examples/source/logging_ex.py @@ -1,15 +1,16 @@ -import github3 import logging +import github3 + # Set up a file to have all the logs written to -file_handler = logging.FileHandler('github_script.log') +file_handler = logging.FileHandler("github_script.log") # Send the logs to stderr as well stream_handler = logging.StreamHandler() # Format the log output and include the log level's name and the time it was # generated -formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') +formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s") # Use that Formatter on both handlers file_handler.setFormatter(formatter) @@ -17,7 +18,7 @@ # Get the logger used by github3.py internally by referencing its name # directly -logger = logging.getLogger('github3') +logger = logging.getLogger("github3") # Add the handlers to it logger.addHandler(file_handler) logger.addHandler(stream_handler) @@ -25,5 +26,5 @@ logger.setLevel(logging.DEBUG) # Make a library call and see the information posted -r = github3.repository('sigmavirus24', 'github3.py') -print('{0} - {0.html_url}'.format(r)) +r = github3.repository("sigmavirus24", "github3.py") +print("{0} - {0.html_url}".format(r)) diff --git a/docs/examples/source/octocat_say.py b/docs/source/examples/source/octocat_say.py similarity index 77% rename from docs/examples/source/octocat_say.py rename to docs/source/examples/source/octocat_say.py index d27939ad8..3aeae22aa 100644 --- a/docs/examples/source/octocat_say.py +++ b/docs/source/examples/source/octocat_say.py @@ -1,12 +1,14 @@ import github3 -print("Hey Octocat!") -print(github3.octocat("Hey Ian!")) +print("Hey Octocat") +print(github3.octocat("Hey Ian")) print("What do you think about github3.py?") print(github3.octocat("github3.py rocks!")) print("Thanks Octocat, that means a lot coming from you.") print("FIN.") -print("""Epilog: +print( + """Epilogue: The preceding conversation was entirely fictional. If you didn't realize that, you need to get out more. -""") +""" +) diff --git a/docs/examples/source/wrap_text.py b/docs/source/examples/source/wrap_text.py similarity index 60% rename from docs/examples/source/wrap_text.py rename to docs/source/examples/source/wrap_text.py index 1e1f7edd3..168280884 100644 --- a/docs/examples/source/wrap_text.py +++ b/docs/source/examples/source/wrap_text.py @@ -1,6 +1,7 @@ -import github3 import textwrap -i = github3.issue('kennethreitz', 'requests', 868) +import github3 + +i = github3.issue("kennethreitz", "requests", 868) for line in textwrap.wrap(i.body_text, 78, replace_whitespace=False): - print line + print(line) diff --git a/docs/source/examples/two_factor_auth.rst b/docs/source/examples/two_factor_auth.rst new file mode 100644 index 000000000..e9770af73 --- /dev/null +++ b/docs/source/examples/two_factor_auth.rst @@ -0,0 +1,27 @@ +Using Two-factor Authentication with github3.py +=============================================== + +GitHub recently added support for Two-factor Authentication to ``github.com`` +and shortly thereafter added support for it on ``api.github.com``. In version +0.8, github3.py also added support for it and you can use it right now. + +To use Two-factor Authentication, you must define your own function that will +return your one time authentication code. You then provide that function when +logging in with github3.py. + +For example: + +.. code:: + + import github3 + + def my_two_factor_function(): + # The user could accidentally press Enter before being ready, + # let's protect them from doing that. + return input('Enter 2FA code: ').strip() or my_two_factor_function() + + g = github3.login('sigmavirus24', 'my_password', + two_factor_callback=my_two_factor_function) + +Then each time the API tells github3.py it requires a Two-factor Authentication +code, github3.py will call ``my_two_factor_function`` which prompt you for it. diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 000000000..619cdba9a --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,175 @@ +=================================================== + github3.py: A Library for Using GitHub's REST API +=================================================== + +Release v\ |version|. + +github3.py is wrapper for the `GitHub API`_ written in python. The design of +github3.py is centered around having a logical organization of the methods +needed to interact with the API. As an example, let's get information about a +user: + +.. code-block:: python + + from github3 import login + + gh = login('sigmavirus24', password='') + + sigmavirus24 = gh.me() + # + + print(sigmavirus24.name) + # Ian Stapleton Cordasco + print(sigmavirus24.login) + # sigmavirus24 + print(sigmavirus24.followers_count) + # 4 + + for f in gh.followers(): + print(str(f)) + + kennethreitz = gh.user('kennethreitz') + # + + print(kennethreitz.name) + print(kennethreitz.login) + print(kennethreitz.followers_count) + + followers = [str(f) for f in gh.followers_of('kennethreitz')] + +There are several examples of different aspects of using github3.py + +.. toctree:: + :maxdepth: 2 + + examples/two_factor_auth + examples/oauth + examples/gist + examples/git + examples/github + examples/issue + examples/logging + examples/octocat + + +Installation +============ + +.. code-block:: console + + $ pip install github3.py + + +User Guide +========== + +.. toctree:: + :maxdepth: 2 + + narrative/index + + +API Reference Documentation +=========================== + +.. toctree:: + :maxdepth: 2 + + api-reference/index + + +Version History +=============== + +.. toctree:: + :maxdepth: 2 + + release-notes/index + + +Contributing +============ + +All development happens on GitHub_. Please remember to add yourself to the +list of contributors in AUTHORS.rst, especially if you're going to be +working on the list below. + +Contributor Friendly Work +------------------------- + +In order of importance: + +Documentation + + I know I'm not the best at writing documentation so if you want to clarify + or correct something, please do so. + +Examples + + Have a clever example that takes advantage of github3.py? Feel free to + share it. + +Otherwise, feel free to example the list of issues where we would like help_ +and feel free to take one. + +Running the Unittests +--------------------- + +The tests are generally run using tox. Tox can be installed like so + +.. code-block:: console + + pip install tox + +We test against PyPy3 and the following versions of Python: + +- 3.7 + +- 3.8 + +- 3.9 + +If you simply run ``tox`` it will run tests against all of these versions of +python and run ``flake8`` against the codebase as well. If you want to run +against one specific version, you can do + +.. code-block:: console + + tox -e py39 + +And if you want to run tests against a specific file, you can do + +.. code-block:: console + + tox -e py39 -- tests/unit/test_github.py + +To run the tests, ``tox`` uses ``py.test`` so you can pass any options or +parameters to ``py.test`` after specifying ``--``. For example, you can get +more verbose output by doing + +.. code-block:: console + + tox -e py39 -- -vv + +.. toctree:: + + contributing/testing + + +Contact +======= + +- Twitter: `@sigmavirus24`_ +- Private email: graffatcolmingov [at] gmail + +.. _@sigmavirus24: https://twitter.com/sigmavirus24 + + +.. links + +.. _GitHub API: + http://developer.github.com +.. _GitHub: + https://github.com/sigmavirus24/github3.py +.. _help: + https://github.com/sigmavirus24/github3.py/labels/help%20wanted diff --git a/docs/source/narrative/getting-started.rst b/docs/source/narrative/getting-started.rst new file mode 100644 index 000000000..d86f4eed3 --- /dev/null +++ b/docs/source/narrative/getting-started.rst @@ -0,0 +1,110 @@ +================= + Getting Started +================= + +This chapter in our documentation will teach you how to get started using +github3.py after you've installed the library. + + +Using the library +----------------- + +To get started using the library, it's important to note that the module that +is provided by this library is called ``github3``. To use it you can run: + +.. code-block:: python + + import github3 + +where necessary. + + +.. _logging-in: + +Logging into GitHub using github3.py +------------------------------------ + +Once you've imported the module, you can get started using the API. It's +recommended that you authenticate with GitHub to avoid running into `their +rate limits`_. To do so you have a few options. + +First, you can use your username and password. We advise you not to type your +password into your shell or python console directly as others can view that +after the fact. For the sake of an example, let's assume that you have two +variables bound as ``username`` and ``password`` that contain your username +and password. You can then do: + +.. code-block:: python + + import github3 + + github = github3.login(username=username, password=password) + +Second, you can `generate an access token`_ and use that. Let's presume you +have a variable bound as ``token`` that contains your access token. + +.. code-block:: python + + import github3 + + github = github3.login(token=token) + +Third, if you're using a GitHub Enterprise installation you can use similar +methods above, but you'll need to use :func:`~github3.api.enterprise_login`, +e.g., + +.. code-block:: python + + import github3 + + githubent = github3.enterprise_login( + url='https://github.myenterprise.example.com', + username=username, + password=password, + ) + + githubent = github3.enterprise_login( + url='https://github.myenterprise.example.com', + token=token, + ) + + +Two-Factor Authentication and github3.py +---------------------------------------- + +GitHub has long supported the use of a second-factor authentication (a.k.a, +2FA) mechanism for logging in. This provides some extra security, especially +around administrative actions on the website. If you choose to login with +simply your username and password and you have to provide github3.py with a +mechanism for obtaining your token and providing it to GitHub. + +An example mechanism is as follows: + +.. code-block:: python + + # This assumes Python 3 + import github3 + + + def second_factor_retrieval(): + """Provide a way to retrieve the code from the user.""" + code = '' + while not code: + code = input('Enter 2FA code: ') + return code + + + github = github3.login(username, password, + two_factor_callback=second_factor_retrieval) + + +This means that for every API call made, GitHub will force us to prompt you +for a new 2FA code. This is obviously not ideal. In those situations, you +almost certainly want to obtain an access token. + + +.. links +.. _their rate limits: + https://developer.github.com/v3/#rate-limiting +.. _generate an access token: + https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/ diff --git a/docs/source/narrative/index.rst b/docs/source/narrative/index.rst new file mode 100644 index 000000000..1cbf9d575 --- /dev/null +++ b/docs/source/narrative/index.rst @@ -0,0 +1,14 @@ +=========================== + User Guide for github3.py +=========================== + +This section of our documentation is intended to guide you, the user, through +various ways of using the library and to introduce you to some high-level +concepts in the library. + + +.. toctree:: + :maxdepth: 2 + + getting-started + repositories diff --git a/docs/source/narrative/repositories.rst b/docs/source/narrative/repositories.rst new file mode 100644 index 000000000..a25f9bfe9 --- /dev/null +++ b/docs/source/narrative/repositories.rst @@ -0,0 +1,88 @@ +=========================== + Using the Repository APIs +=========================== + +Now that we have :doc:`learned ` how to set up a client for +use with our APIs, let's begin to review how github3.py implements the +`Repositories API`_. + + +Retrieving Repositories +======================= + +Once you've :ref:`logged in ` you will have an instance of +:class:`~github3.github.GitHub` or :class:`~github3.github.GitHubEnterprise`. +Let's assume either one is bound to a variable called ``github``. To retrieve +a single :class:`repository ` that we know the +owner and name of, we would do the following: + +.. code-block:: python + + repository = github.repository(owner, repository_name) + +For example, let's retrieve the repository of the ``uritemplate`` package that +github3.py relies on: + +.. code-block:: python + + uritemplate = github.repository('python-hyper', 'uritemplate') + +It's also possible for us to retrieve multiple repositories owned by the same +user or organization: + +.. code-block:: python + + for short_repository in github.repositories_by('python-hyper'): + ... + +When listing repositories, like listing other objects, the GitHub API doesn't +return the full representation of the object. In this case, github3.py returns +a different object to represent a :class:`short repository +`. This object has fewer attributes, but +can be converted into a full repository like so: + +.. code-block:: python + + for short_repository in github.repositories_by('python-hyper'): + full_repository = short_repository.refresh() + +We now have two separate objects for the repository based on how GitHub +represents them. Both objects have the same methods attached to them. There's +just a different set of attributes on each. + + +Interacting with Repositories +============================= + +Repositories are central to many things in GitHub as well as in the API and as +result they have many attributes and methods. It's possible to list branches, +collaborators, commits, contributors, deployments, forks, issues, projects, +pull requests, refs, and more. + +For example, we could build a tiny function that checks if a contributor has +deleted their fork: + +.. code-block:: python + + uritemplate = github.repository('python-hyper', 'uritemplate') + contributors_without_forks = (set(uritemplate.contributors()) - + set(fork.owner for fork in uritemplate.forks())) + print(f'The following contributors deleted their forks of {uritemplate!r}') + for contributor in sorted(contributors_without_forks, key=lambda c: c.login): + print(f' * {contributor.login}') + +The output should look like + +.. code-block:: text + + The following contributors deleted their forks of + * eugene-eeo + * jpotts18 + * sigmavirus24 + * thierryba + + + +.. links +.. _Repositories API: + https://github.com/sigmavirus24/github3.py/pull/836 diff --git a/docs/source/release-notes/0.1.0.rst b/docs/source/release-notes/0.1.0.rst new file mode 100644 index 000000000..4089f5491 --- /dev/null +++ b/docs/source/release-notes/0.1.0.rst @@ -0,0 +1,39 @@ +0.1.0: 2012-11-13 +----------------- + +- Add API for GitHub Enterprise customers. + +0.1b2: 2012-11-10 +----------------- + +- Handle 500 errors better, courtesy of Kristian Glass (@doismellburning) + +- Handle sending JSON with ``%`` symbols better, courtesy of Kristian Glass + +- Correctly handle non-GitHub committers and authors courtesy of Paul Swartz + (@paulswartz) + +- Correctly display method signatures in documentation courtesy of (@seveas) + +0.1b1: 2012-10-31 +----------------- + +- unit tests implemented using mock instead of hitting the GitHub API (#37) + +- removed ``list_*`` functions from GitHub object + +- Notifications API coverage + +0.1b0: 2012-10-06 +----------------- + +- Support for the complete GitHub API (accomplished) + + - Now also includes the Statuses API + + - Also covers the auto_init parameters to the Repository creation + methodology + + - Limited implementation of iterators in the place of list functions. + +- 98% coverage by unit tests diff --git a/docs/source/release-notes/0.2.0.rst b/docs/source/release-notes/0.2.0.rst new file mode 100644 index 000000000..1374e971f --- /dev/null +++ b/docs/source/release-notes/0.2.0.rst @@ -0,0 +1,23 @@ +0.2.0: 2012-11-21 +----------------- + +- MAJOR API CHANGES: + + - ``GitHub.iter_subscribed`` --> ``GitHub.iter_subscriptions`` + + - Broken ``list_*`` functions in github3.api have been renamed to the correct + ``iter_*`` methods on ``GitHub``. + + - Removed ``list_*`` functions from ``Repository``, ``Gist``, + ``Organization``, and ``User`` objects + +- Added zen of GitHub method. + +- More tests + +- Changed the way ``Repository.edit`` works courtesy of Kristian Glass + (@doismellburning) + +- Changed ``Repository.contents`` behavior when acting on a 404. + +- 50% test coverage via mock tests diff --git a/docs/source/release-notes/0.3.0.rst b/docs/source/release-notes/0.3.0.rst new file mode 100644 index 000000000..86f6ee9d8 --- /dev/null +++ b/docs/source/release-notes/0.3.0.rst @@ -0,0 +1,81 @@ +0.3.0: 2013-01-01 +----------------- + +- In github3.repos.Repository + + - is_fork() and fork return the same thing + + - is_private() and private return the same thing as well + + - has_downloads, has_issues, has_wiki are now straight attributes + +- In github3.repos.Hook + + - is_active() and active return the same value + +- In github3.pulls.PullRequest + + - is_mergeable() and mergeable are now the same + + - repository now returns a tuple of the login and name of the repository it + belongs to + +- In github3.notifications.Thread + + - is_unread() and unread are now the same + +- In github3.gists + + - GistFile.filename and GistFile.name return the same information + + - Gist.history now lists the history of the gist + + - GistHistory is an object representing one commit or version of the history + + - You can retrieve gists at a specific version with GistHistory.get_gist() + +- github3.orgs.Organization.iter_repos now accepts all types_ + +- list_* methods on Organization objects that were missed are now deleted + +- Some objects now have ``__str__`` methods. You can now do things like: + + .. code-block:: python + + import github3 + u = github3.user('sigmavirus24') + r = github3.repository(u, 'github3.py') + + And + + .. code-block:: python + + import github3 + + repo = github3.repository('sigmavirus24', 'github3.py') + + template = """Some kind of template where you mention this repository + {0}""" + + print(template.format(repo)) + # Some kind of template where you mention this repository + # sigmavirus24/github3.py + + Current list of objects with this feature: + + - github3.users.User (uses the login name) + + - github3.users.Key (uses the key text) + + - github3.users.Repository (uses the login/name pair) + + - github3.users.RepoTag (uses the tag name) + + - github3.users.Contents (uses the decoded content) + +- 60% test coverage with mock + +- Upgrade to requests 1.0.x + +.. _types: + http://developer.github.com/v3/repos/#list-organization-repositories diff --git a/docs/source/release-notes/0.4.0.rst b/docs/source/release-notes/0.4.0.rst new file mode 100644 index 000000000..8ddf18f18 --- /dev/null +++ b/docs/source/release-notes/0.4.0.rst @@ -0,0 +1,33 @@ +0.4.0: 2013-01-16 +----------------- + +- In github3.legacy.LegacyRepo + + - ``has_{downloads,issues,wiki}`` are now attributes. + + - ``is_private()`` and the ``private`` attribute return the same thing + ``is_private()`` will be deprecated in the next release. + +- In github3.repos.Repository + + - ``is_fork()`` is now deprecated in favor of the ``fork`` attribute + + - ``is_private()`` is now deprecated in favor of the ``private`` attribute + +- In github3.repos.Hook + + - ``is_active()`` is now deprecated in favor of the ``active`` attribute + +- In github3.pulls.PullRequest + + - ``is_mergeable()`` is now deprecated in favor of the ``mergeable`` + attribute + +- In github3.notifications.Thread + + - ``is_unread()`` is now deprecated in favor of the ``unread`` + +- ``pubsubhubbub()`` is now present on the ``GitHub`` object and will be + removed from the ``Repository`` object in the next release + +- 70% test coverage diff --git a/docs/source/release-notes/0.5.0.rst b/docs/source/release-notes/0.5.0.rst new file mode 100644 index 000000000..0d1c831e3 --- /dev/null +++ b/docs/source/release-notes/0.5.0.rst @@ -0,0 +1,99 @@ +0.5.0: 2013-02-16 +----------------- + +- 100% (mock) test coverage + +- Add support for the announced_ meta_ endpoint. + +- Add support for conditional refreshing, e.g., + + .. code-block:: python + + import github3 + + u = github3.user('sigmavirus24') + + # some time later + + u.refresh() # Will ALWAYS send a GET request and lower your rate limit + u.refresh(True) # Will send the GET with a header such that if nothing + # has changed, it will not count against your rate limit + # otherwise you'll get the updated user object. + +- Add support for conditional iterables. What this means is that you can do: + + .. code-block:: python + + import github3 + + i = github3.iter_all_repos(10) + + for repo in i: + # do stuff + + i = github3.iter_all_repos(10, etag=i.etag) + + And the second call will only give you the new repositories since the last + request. This mimics behavior in `pengwynn/octokit`_ + +- Add support for `sortable stars`_. + +- In github3.users.User, ``iter_keys`` now allows you to iterate over **any** + user's keys. No name is returned for each key. This is the equivalent of + visiting: github.com/:user.keys + +- In github3.repos.Repository, ``pubsubhubbub`` has been removed. Use + github3.github.Github.pubsubhubbub instead + +- In github3.api, ``iter_repo_issues``'s signature has been corrected. + +- Remove ``list_{labels, comments, events}`` methods from github3.issues.Issue + +- Remove ``list_{comments, commits, files}`` methods from + github3.pulls.PullRequest + +- In github3.gists.Gist: + + - the ``user`` attribute was changed by GitHub and is now the ``owner`` + attribute + + - the ``public`` attribute and the ``is_public`` method return the same + information. The method will be removed in the next version. + + - the ``is_starred`` method now requires authentication + + - the default ``refresh`` method is no longer over-ridden. In a change made + in before, a generic ``refresh`` method was added to most objects. This + was overridden in the Gist object and would cause otherwise unexpected + results. + +- ``github3.events.Event.is_public()`` and ``github3.events.Event.public`` now + return the same information. In the next version, the former will be + removed. + +- In github3.issues.Issue + + - ``add_labels`` now returns the list of Labels on the issue instead of a + boolean. + + - ``remove_label`` now returns a boolean. + + - ``remove_all_labels`` and ``replace_labels`` now return lists. The former + should return an empty list on a successful call. The latter should + return a list of ``github3.issue.Label`` objects. + +- Now we won't get spurious GitHubErrors on 404s, only on other expected + errors whilst accessing the json in a response. All methods that return an + object can now *actually* return None if it gets a 404 instead of just + raising an exception. (Inspired by #49) + +- GitHubStatus API now works. + +.. _announced: + https://github.com/blog/1402-upcoming-changes-to-github-services +.. _meta: + http://developer.github.com/v3/meta/ +.. _sortable stars: + http://developer.github.com/changes/2013-2-13-sortable-stars/ +.. _pengwynn/octokit: + https://github.com/pengwynn/octokit diff --git a/docs/source/release-notes/0.5.1.rst b/docs/source/release-notes/0.5.1.rst new file mode 100644 index 000000000..b85452e2b --- /dev/null +++ b/docs/source/release-notes/0.5.1.rst @@ -0,0 +1,4 @@ +0.5.1: 2013-02-21 +----------------- + +- Hot fix an issue when a user doesn't have a real name set diff --git a/docs/source/release-notes/0.5.2.rst b/docs/source/release-notes/0.5.2.rst new file mode 100644 index 000000000..01ec28edb --- /dev/null +++ b/docs/source/release-notes/0.5.2.rst @@ -0,0 +1,4 @@ +0.5.2: 2013-03-02 +----------------- + +- Stop trying to decode the byte strings returned by ``b64decode``. Fixes #72 diff --git a/docs/source/release-notes/0.5.3.rst b/docs/source/release-notes/0.5.3.rst new file mode 100644 index 000000000..28a53de6c --- /dev/null +++ b/docs/source/release-notes/0.5.3.rst @@ -0,0 +1,4 @@ +0.5.3: 2013-03-19 +----------------- + +- Add missing optional parameter to Repository.contents. Thanks @tpetr diff --git a/docs/source/release-notes/0.6.0.rst b/docs/source/release-notes/0.6.0.rst new file mode 100644 index 000000000..d23c601b0 --- /dev/null +++ b/docs/source/release-notes/0.6.0.rst @@ -0,0 +1,39 @@ +0.6.0: 2013-04-05 +----------------- + +- Add ``sort`` and ``order`` parameters to ``github3.GitHub.search_users`` and + ``github3.GitHub.search_repos``. + +- Add ``iter_commits`` to ``github3.gists.Gist`` as a means of re-requesting + just the history from GitHub and iterating over it. + +- Add minimal logging (e.g., ``logging.getLogger('github3')``) + +- Re-organize the library a bit. (Split up repos.py, issues.py, gists.py and a + few others into sub-modules for my sanity.) + +- Calling ``refresh(True)`` on a ``github3.structs.GitHubIterator`` actually + works as expected now. + +- API ``iter_`` methods now accept the ``etag`` argument as the + ``GitHub.iter_`` methods do. + +- Make ``github3.octocat`` and ``github3.github.GitHub.octocat`` both support + sending messages to make the Octocat say things. (Think cowsay) + +- Remove vendored dependency of PySO8601. + +- Split ``GitHub.iter_repos`` into ``GitHub.iter_user_repos`` and + ``GitHub.iter_repos``. As a consequence ``github3.iter_repos`` is now + ``github3.iter_user_repos`` + +- ``IssueComment.update`` was corrected to match GitHub's documentation + +- ``github3.login`` now accepts an optional ``url`` parameter for users of the + ``GitHubEnterprise`` API, courtesy of Kristian Glass (@doismellburning) + +- Several classes now allow their instances to be compared with ``==`` and + ``!=``. In most cases this will check the unique id provided by GitHub. In + others, it will check SHAs and any other guaranteed immutable and unique + attribute. The class doc-strings all have information about this and details + about how equivalence is determined. diff --git a/docs/source/release-notes/0.6.1.rst b/docs/source/release-notes/0.6.1.rst new file mode 100644 index 000000000..b9c60ebdf --- /dev/null +++ b/docs/source/release-notes/0.6.1.rst @@ -0,0 +1,4 @@ +0.6.1: 2013-04-06 +----------------- + +- Add equality for labels courtesy of Alejandro Gomez (@alejandrogomez) diff --git a/docs/source/release-notes/0.7.0.rst b/docs/source/release-notes/0.7.0.rst new file mode 100644 index 000000000..55196dc1e --- /dev/null +++ b/docs/source/release-notes/0.7.0.rst @@ -0,0 +1,29 @@ +0.7.0: 2013-05-19 +----------------- + +- Fix ``Issue.close``, ``Issue.reopen``, and ``Issue.assign``. (Issue #106) + +- Add ``check_authorization`` to the ``GitHub class`` to cover the `new part + of the API `_. + +- Add ``create_file``, ``update_file``, ``delete_file``, + ``iter_contributor_statistics``, ``iter_commit_activity``, + ``iter_code_frequency`` and ``weekly_commit_count`` to the ``Repository`` + object. + +- Add ``update`` and ``delete`` methods to the ``Contents`` object. + +- Add ``is_following`` to the ``User`` object. + +- Add ``head``, ``base`` parameters to ``Repository.iter_pulls``. + +- The signature of ``Hook.edit`` has changed since that endpoint has changed + as well. See: + github/developer.github.com@b95f291a47954154a6a8cd7c2296cdda9b610164 + +- ``github3.GitHub`` can now be used as a context manager, e.g., + + .. code-block:: python + + with github.GitHub() as gh: + u = gh.user('sigmavirus24') diff --git a/docs/source/release-notes/0.7.1.rst b/docs/source/release-notes/0.7.1.rst new file mode 100644 index 000000000..35a29807f --- /dev/null +++ b/docs/source/release-notes/0.7.1.rst @@ -0,0 +1,15 @@ +0.7.1: 2013-09-30 +----------------- + +- Add dependency on uritemplate.py_ to add URITemplates to different classes. + See the documentation for attributes which are templates. + +- Fixed issue trying to parse ``html_url`` on Pull Requests courtesy of + @rogerhu. + +- Remove ``expecter`` as a test dependency courtesy of @esacteksab. + +- Fixed issue #141 trying to find an Event that doesn't exist. + +.. _uritemplate.py: + https://github.com/sigmavirus24/uritemplate diff --git a/docs/source/release-notes/0.8.0.rst b/docs/source/release-notes/0.8.0.rst new file mode 100644 index 000000000..96bde7158 --- /dev/null +++ b/docs/source/release-notes/0.8.0.rst @@ -0,0 +1,45 @@ +0.8.0: 2014-01-03 +----------------- + +- **Breaking Change** Remove legacy search API + + I realize this should have been scheduled for 1.0 but I was a bit eager to + remove this. + +- Use Betamax to start recording integration tests + +- Add support for Releases API + +- Add support for Feeds API + +- Add support for Two-Factor Authentication via the API + +- Add support for New Search API + + - Add ``github3.search_code``, ``github3.search_issues``, + ``github3.search_repositories``, ``github3.search_users`` + + - Add ``GitHub#search_code``, ``GitHub#search_issues``, + ``GitHub#search_repositories``, ``GitHub#search_users`` + +- Switch to requests >= 2.0 + +- Totally remove all references to the Downloads API + +- Fix bug in ``Repository#update_file`` where ``branch`` was not being sent to + the API. Thanks @tpetr! + +- Add ``GitHub#rate_limit`` to return all of the information from the + ``/rate_limit`` endpoint. + +- Catch missing attributes -- ``diff_hunk``, ``original_commit_id`` -- on + ``ReviewComment``. + +- Add support for the Emojis endpoint + +- Note deprecation of a few object attributes + +- Add support for the ``ReleaseEvent`` + +- Add ``GitHub#iter_user_teams`` to return all of the teams the authenticated + user belongs to diff --git a/docs/source/release-notes/0.8.1.rst b/docs/source/release-notes/0.8.1.rst new file mode 100644 index 000000000..ca43e1371 --- /dev/null +++ b/docs/source/release-notes/0.8.1.rst @@ -0,0 +1,6 @@ +0.8.1: 2014-01-26 +----------------- + +- Add documentation for using Two-factor Authentication + +- Fix oversight where ``github3.login`` could not be used for 2FA diff --git a/docs/source/release-notes/0.8.2.rst b/docs/source/release-notes/0.8.2.rst new file mode 100644 index 000000000..6daae9088 --- /dev/null +++ b/docs/source/release-notes/0.8.2.rst @@ -0,0 +1,7 @@ +0.8.2: 2014-02-11 +----------------- + +- Fix bug in ``GitHub#search_users`` (and ``github3.search_users``). Thanks + @abesto + +- Expose the stargazers count for repositories. Thanks @seveas diff --git a/docs/source/release-notes/0.9.0.rst b/docs/source/release-notes/0.9.0.rst new file mode 100644 index 000000000..0424ccd62 --- /dev/null +++ b/docs/source/release-notes/0.9.0.rst @@ -0,0 +1,48 @@ +0.9.0: 2014-05-04 +----------------- + +- Add Deployments API + +- Add Pages API + +- Add support so applications can revoke a `single authorization`_ or `all + authorizations`_ created by the application + +- Add the ability for users to ping_ hooks + +- Allow users to list a `Repository's collaborators`_ + +- Allow users to create an empty blob on a Repository + +- Update how users can list issues and pull requests. See: + http://developer.github.com/changes/2014-02-28-issue-and-pull-query-enhancements/ + This includes breaking changes to ``Repository#iter_pulls``. + +- Update methods to handle the `pagination changes`_. + +- Fix typo `stargarzers_url`_ + +- Add ``assets`` attribute to ``Release`` object. + +- Fix wrong argument to ``Organization#create_team`` (``permissions`` versus + ``permission``) + +- Fix Issue Search Result's representation and initialization + +- Fix Repository Search Result's initialization + +- Allow users to pass a two-factor authentication callback to + ``GitHub#authorize``. + +.. _single authorization: + https://github3.readthedocs.io/en/latest/github.html#github3.github.GitHub.revoke_authorization +.. _all authorizations: + https://github3.readthedocs.io/en/latest/github.html#github3.github.GitHub.revoke_authorizations +.. _ping: + https://github3.readthedocs.io/en/latest/repos.html?highlight=ping#github3.repos.hook.Hook.ping +.. _Repository's collaborators: + https://github3.readthedocs.io/en/latest/repos.html#github3.repos.repo.Repository.iter_collaborators +.. _pagination changes: + https://developer.github.com/changes/2014-03-18-paginating-method-changes/ +.. _stargarzers_url: + https://github.com/sigmavirus24/github3.py/pull/240 diff --git a/docs/source/release-notes/0.9.1.rst b/docs/source/release-notes/0.9.1.rst new file mode 100644 index 000000000..675110586 --- /dev/null +++ b/docs/source/release-notes/0.9.1.rst @@ -0,0 +1,4 @@ +0.9.1: 2014-08-10 +----------------- + +- Correct Repository attribute ``fork_count`` should be ``forks_count`` diff --git a/docs/source/release-notes/0.9.2.rst b/docs/source/release-notes/0.9.2.rst new file mode 100644 index 000000000..d836b7645 --- /dev/null +++ b/docs/source/release-notes/0.9.2.rst @@ -0,0 +1,15 @@ +0.9.2: 2014-10-05 +----------------- + +- Updates for `new team management`_ API changes + + - Add ``Team#invite``, ``Team#membership_for``, and + ``Team#revoke_membership`` + + - Deprecate ``Team#add_member``, ``Team#remove_member``, and + ``Organization#add_member``. + + - Update payload handler for ``TeamAddEvent``. + +.. _new team management: + https://developer.github.com/changes/2014-09-23-one-more-week-before-the-add-team-member-api-breaking-change/ diff --git a/docs/source/release-notes/0.9.3.rst b/docs/source/release-notes/0.9.3.rst new file mode 100644 index 000000000..9cbc111e6 --- /dev/null +++ b/docs/source/release-notes/0.9.3.rst @@ -0,0 +1,11 @@ +0.9.3: 2014-11-04 +----------------- + +- Backport of ``PullRequest#create_review_comment`` by Adrian Moisey + +- Backport of ``PullRequest#review_comments`` by Adrian Moisey + +- Backport of a fix that allows authenticated users to download Release + Assets. Original bug reported by Eugene Fidelin in issue #288. + +- Documentation typo fix by Marc Abramowitz diff --git a/LATEST_VERSION_NOTES.rst b/docs/source/release-notes/1.0.0.rst similarity index 86% rename from LATEST_VERSION_NOTES.rst rename to docs/source/release-notes/1.0.0.rst index 73d8fa34b..150f8c7a2 100644 --- a/LATEST_VERSION_NOTES.rst +++ b/docs/source/release-notes/1.0.0.rst @@ -1,114 +1,85 @@ .. vim: set tw=100 -1.0.0a4: 2016-02-19 -~~~~~~~~~~~~~~~~~~~ +1.0.0: 2018-03-13 +----------------- -Features Added (since 1.0.0a3) -`````````````````````````````` - -- Add support for the Issue locking API currently in Preview Mode - -Bugs Fixed (since 1.0.0a3) -`````````````````````````` - -- Fix the dependencies and requirements. In 1.0.0a3 we moved to using the - ``setup.cfg`` file to define optional dependencies for wheels. By doing - so we accidentally left out our actual hard dependencies. - -1.0.0a3: 2016-02-11 -~~~~~~~~~~~~~~~~~~~ - -Breaking Changes (since 1.0.0a2) -```````````````````````````````` - -- Move ``Users#add_email_addresses`` to ``GitHub#add_email_addresses``. - -- Move ``Users#delete_email_addresses`` to ``GitHub#delete_email_addresses``. - -- Remove ``Users#add_email_address`` and ``Users#delete_email_address``. - -- Remove ``Repository#update_label``. - -Features Added (since 1.0.0a2) -`````````````````````````````` - -- Support filtering organization members by whether they have 2FA enabled. +1.0.0 is a huge release. It includes a great deal of changes to ``github3.py``. +It is suggested you read the following release notes carefully. -- Support filtering organization and team members by role. +Unfortunately, it's plausible that some things have slipped through the cracks +in these release notes. -- Add ``GitHub#all_organizations``. - -- Add ``PullRequest#create_comment``. +Breaking Changes +```````````````` -- Add ``Repository#release_by_tag_name`` to retrieve a Release from a - Repository by its associated tag name. +- Methods that iterate over collections return a separate class than methods + that retrieve a single instance. These objects have separate representations + when retrieving the data from GitHub's API. They include: -- Add ``Repository#latest_release`` to retrieve the latest Release for a - Repository. + * Team now can be represented by ShortTeam or Team -- Add ``GitHub#license`` to retrieve a ``github3.license.License`` by the - license name. + * Organization now can be represented by ShortOrganization or Organization -- Add ``GitHub#licenses`` to iterate over all the licenses returned by - GitHub's Licenses API. + * Issue now can be represented by ShortIssue or Issue -- Add protection information to ``github3.repos.branch.Branch``. + * PullRequest now can be represented by ShortPullRequest or PullRequest -- Add ``Branch#protect`` and ``Branch#unprotect`` to support updating a - Branch's protection status. + * Commit now can be represented by ShortCommit, or Commit -- Vastly improved GitHub Enterprise support: + * Gist now can be represented by ShortGist, GistFork, or Gist - - Add ``User#rename`` to rename a user in a GitHub Enterprise installation. + * GistFile now can be represented by ShortGistFile or GistFile - - Add ``GitHub#create_user`` to create a user. + * Repository objects: - - Add ``User#impersonate`` to create an impersonation token by an admin for - a particular user. + - Branch now can be represented by ShortBranch or Branch - - Add ``User#revoke_impersonation`` to revoke all impersonation tokens for a - user. + - RepoComment now can be represented by ShortComment or ShortRepoComment - - Add ``User#promote`` to promote a particular user to a site administrator. + - Repository now can be represented by ShortRepository or Repository - - Add ``User#demote`` to demote a site administrator to a simple user. + - RepoCommit now can be represented by MiniCommit, ShortCommit, or + RepoCommit - - Add ``User#suspend`` to suspend a user's account. + - Status now can be represented by ShortStatus or Status - - Add ``User#unsuspend`` to reinstate a user's account. + * User now can be represented by ShortUser, Contributor, User, or + AuthenticatedUser -- Add ``original_content`` attribute to a ``GistFile`` + * License now can be represented by ShortLicense or License -- Add ``GistFile#content`` to retrieve the contents of a file in a gist from - the API. +- Refreshing a short representation of an object will result in a new object + of a new class returned. For example: -- Add support for the alpha `bulk issue import API`_ + .. code-block:: python -.. _bulk issue import API: - https://gist.github.com/jonmagic/5282384165e0f86ef105 + import github3 + users = [(u, u.refresh()) for u in github3.all_users(10)] + for short_user, user in users: + assert isinstance(short_user, github3.users.ShortUser) + assert isinstance(user, github3.users.User) -Bugs Fixed (since 1.0.0a2) -`````````````````````````` +- Remove ``Thread.comment``, ``Thread.thread``, ``Thread.urls`` attributes. -- The ``context`` parameter to ``Repository#create_status`` now properly - defaults to ``"default"``. +- Remove ``Thread#is_unread`` method. Use the ``Thread.unread`` attribute + instead. -- Fix AttributeError when ``IssueEvent`` has assignee. +- ``Subscription`` has been split into two objects: ``ThreadSubscription`` and + ``RepositorySubscription`` with the same methods. -- Correctly set the ``message`` attribute on ``RepoCommit`` instances. +- Remove ``is_ignored`` method from our Subscription objects. Use the + ``ignored`` attribute instead. -- Include ``browser_download_url`` on ``Asset`` instances. +- Remove ``is_subscribed`` method from our Subscription objects. Use the + ``subscribed`` attribute instead. -- (Packaging related) Fix ``setup.py`` to use proper values for certain - parameters. +- Move ``Users#add_email_addresses`` to ``GitHub#add_email_addresses``. -- Fix ``ValueError`` for ``Repository#create_file``. +- Move ``Users#delete_email_addresses`` to ``GitHub#delete_email_addresses``. -1.0.0a2: 2015-07-14 -~~~~~~~~~~~~~~~~~~~ +- Remove ``Users#add_email_address`` and ``Users#delete_email_address``. -Breaking Changes (since 1.0.0a1) -```````````````````````````````` +- Remove ``Repository#update_label``. - When you download a release asset, instead of returning ``True`` or ``False``, it will return the name of the file in which it saved the asset. @@ -121,55 +92,11 @@ Breaking Changes (since 1.0.0a1) - Replace ``Repository#comments_on_commit`` with ``RepoCommit#comments``. -Features Added (since 1.0.0a1) -`````````````````````````````` - -- You can now download a file in a pull request to a file on disk. - -- You can retrieve the contents of the file in a pull request as bytes. - -- Add ``id`` attribute to ``github3.repos.milestone.Milestone``. - -- Add support for sort, direction, and since parameters to the ``comments`` - method on ``github3.issues.Issue``. - -- Add branch argument to update and delete methods on - ``github3.repos.contents.Contents``. - -- Add ``permissions`` attribute to ``github3.repos.repo.Repository`` object to - retrieve the permissions for a specific repository. - -- Allow a deployment to be retrieved by its id. - -- Add the ``delete`` method to the ``github3.repos.release.Asset`` class. - -Bugs Fixed (since 1.0.0a1) -`````````````````````````` - -- Pull request files can now be downloaded even when the repository is - private. - -- Fix exception when merging a pull request with an empty commit message. - -- Add missing Issue events. - -- Coerce review comment positions to integers. - - -1.0.0a1: 2014-12-07 -~~~~~~~~~~~~~~~~~~~ - -1.0.0 is a huge release. It includes a great deal of changes to ``github3.py``. -It is suggested you read the following release notes *very* carefully. - -Breaking Changes -```````````````` - - ``Organization#add_member`` has been changed. The second parameter has been changed to ``team_id`` and now expects an integer. -- ``Organization#add_repository`` has been changed. The second parameter has been - changed to ``team_id`` and now expects an integer. +- ``Organization#add_repository`` has been changed. The second parameter has + been changed to ``team_id`` and now expects an integer. - All methods and functions starting with ``iter_`` have been renamed. @@ -206,7 +133,7 @@ Old name New name ``GitHub#iter_repo_issues`` ``GitHub#issues_on`` ``GitHub#iter_keys`` ``GitHub#keys`` ``GitHub#iter_orgs`` ``GitHub#{organizations,organizations_with}`` -``GitHub#iter_repos`` ``GitHub#reposistories`` +``GitHub#iter_repos`` ``GitHub#repositories`` ``GitHub#iter_user_repos`` ``GitHub#repositories_by`` ``GitHub#iter_user_teams`` ``GitHub#user_teams`` ``Issue#iter_comments`` ``Issue#comments`` @@ -266,10 +193,10 @@ Old name New name - ``github3.login`` has been simplified and split into two functions: - - ``github3.login`` serves the majority use case and only provides an + - ``github3.login`` serves the majority use case and only provides an authenticated ``GitHub`` object. - - ``github3.enterprise_login`` allows GitHub Enterprise users to log into + - ``github3.enterprise_login`` allows GitHub Enterprise users to log into their service. - ``GitHub#iter_followers`` was split into two functions: @@ -290,10 +217,10 @@ Old name New name - ``GitHub#iter_gists`` was split into three functions: - - ``GitHub#public_gists`` which iterates over all of the public gists on + - ``GitHub#public_gists`` which iterates over all of the public gists on GitHub - - ``GitHub#gists_for`` which iterates over all the public gists of a + - ``GitHub#gists_for`` which iterates over all the public gists of a specific user - ``GitHub#gists`` which iterates over the authenticated users gists @@ -311,7 +238,7 @@ Old name New name - ``GitHub#subscriptions_for`` which iterates over an arbitrary user's subscriptions - - ``GitHub#subscriptions`` which iterates over the authenticated user's + - ``GitHub#subscriptions`` which iterates over the authenticated user's subscriptions - ``GitHub#iter_starred`` was split into two functions: @@ -345,10 +272,10 @@ Old name New name - ``Repository#set_subscription`` was split into two simpler functions - - ``Repository#subscribe`` subscribes the authenticated user to the + - ``Repository#subscribe`` subscribes the authenticated user to the repository's notifications - - ``Repository#ignore`` ignores notifications from the repository for the + - ``Repository#ignore`` ignores notifications from the repository for the authenticated user - ``Repository#contents`` was split into two simpler functions @@ -451,8 +378,8 @@ Old name New attribute name API. ``Issue.comments`` is now ``Issue.comments_count`` and returns the number of comments on an issue. -- The ``Issue.labels`` attribute has also been renamed. It is now available from - ``Issue.original_labels``. This will provide the user with the list of +- The ``Issue.labels`` attribute has also been renamed. It is now available + from ``Issue.original_labels``. This will provide the user with the list of ``Label`` objects that was returned by the API. To retrieve an updated list of labels, the user can now use ``Issue#labels``, e.g. @@ -521,3 +448,126 @@ New Features i = github3.issue('sigmavirus24', 'github3.py', 301) pr = i.pull_request() + +- Add support for the Issue locking API currently in Preview Mode + +- Add ``Organization#all_events``. + +- Add ``Tag.tagger_as_User`` which attempts to return the tagger as User. + +- Add ``Repo.statuses`` and a corresponding ``repo.status.CombinedStatus`` to + +- Support filtering organization members by whether they have 2FA enabled. + +- Support filtering organization and team members by role. + +- Add ``GitHub#all_organizations``. + +- Add ``PullRequest#create_comment``. + +- Add ``Repository#release_by_tag_name`` to retrieve a Release from a + Repository by its associated tag name. + +- Add ``Repository#latest_release`` to retrieve the latest Release for a + Repository. + +- Add ``GitHub#license`` to retrieve a ``github3.license.License`` by the + license name. + +- Add ``GitHub#licenses`` to iterate over all the licenses returned by + GitHub's Licenses API. + +- Add protection information to ``github3.repos.branch.Branch``. + +- Add ``Branch#protect`` and ``Branch#unprotect`` to support updating a + Branch's protection status. + +- Vastly improved GitHub Enterprise support: + + - Add ``User#rename`` to rename a user in a GitHub Enterprise installation. + + - Add ``GitHub#create_user`` to create a user. + + - Add ``User#impersonate`` to create an impersonation token by an admin for + a particular user. + + - Add ``User#revoke_impersonation`` to revoke all impersonation tokens for a + user. + + - Add ``User#promote`` to promote a particular user to a site administrator. + + - Add ``User#demote`` to demote a site administrator to a simple user. + + - Add ``User#suspend`` to suspend a user's account. + + - Add ``User#unsuspend`` to reinstate a user's account. + +- Add ``original_content`` attribute to a ``GistFile`` + +- Add ``GistFile#content`` to retrieve the contents of a file in a gist from + the API. + +- Add support for the alpha `bulk issue import API`_ + +- You can now download a file in a pull request to a file on disk. + +- You can retrieve the contents of the file in a pull request as bytes. + +- Add ``id`` attribute to ``github3.repos.milestone.Milestone``. + +- Add support for sort, direction, and since parameters to the ``comments`` + method on ``github3.issues.Issue``. + +- Add branch argument to update and delete methods on + ``github3.repos.contents.Contents``. + +- Add ``permissions`` attribute to ``github3.repos.repo.Repository`` object to + retrieve the permissions for a specific repository. + +- Allow a deployment to be retrieved by its id. + +- Add the ``delete`` method to the ``github3.repos.release.Asset`` class. + +.. _bulk issue import API: + https://gist.github.com/jonmagic/5282384165e0f86ef105 + +Bugs Fixed +`````````` + +- Fix the dependencies and requirements. In 1.0.0a3 we moved to using the + ``setup.cfg`` file to define optional dependencies for wheels. By doing + so we accidentally left out our actual hard dependencies. + +- The ``context`` parameter to ``Repository#create_status`` now properly + defaults to ``default``. + +- Fix AttributeError when ``IssueEvent`` has assignee. + +- Correctly set the ``message`` attribute on ``RepoCommit`` instances. + +- Include ``browser_download_url`` on ``Asset`` instances. + +- (Packaging related) Fix ``setup.py`` to use proper values for certain + parameters. + +- Fix ``ValueError`` for ``Repository#create_file``. + +- Pull request files can now be downloaded even when the repository is + private. + +- Fix exception when merging a pull request with an empty commit message. + +- Add missing Issue events. + +- Coerce review comment positions to integers. + +Deprecations and Other Changes +`````````````````````````````` + +- Deprecate ``Organization#events`` in favor of ``Organization#public_events``. + +- Fix test failures on Windows caused by unclosed file handles. + get a combined view of commit statuses for a given ref. + +- The ``refresh`` method will eventually stop updating the instance in place + and instead only return new instances of objects. diff --git a/docs/source/release-notes/1.0.1.rst b/docs/source/release-notes/1.0.1.rst new file mode 100644 index 000000000..bf6d2b375 --- /dev/null +++ b/docs/source/release-notes/1.0.1.rst @@ -0,0 +1,7 @@ +1.0.1: 2018-03-14 +----------------- + +Bugs Fixed +~~~~~~~~~~ + +- Fix missing python-dateutil requirement when installing from a wheel. diff --git a/docs/source/release-notes/1.0.2.rst b/docs/source/release-notes/1.0.2.rst new file mode 100644 index 000000000..5691d01e4 --- /dev/null +++ b/docs/source/release-notes/1.0.2.rst @@ -0,0 +1,11 @@ +1.0.2: 2018-03-28 +----------------- + +Bugs Fixed +`````````` + +- Handle 304s from users passing etag +- Generate ``_api`` attribute for ``ShortBranch`` objects +- Require auth for creating gists +- Ensure only desired auth scheme is used with requests +- Handle older GitHub Enterprise responses for repository objects diff --git a/docs/source/release-notes/1.1.0.rst b/docs/source/release-notes/1.1.0.rst new file mode 100644 index 000000000..7f2e0e95d --- /dev/null +++ b/docs/source/release-notes/1.1.0.rst @@ -0,0 +1,27 @@ +1.1.0: 2018-04-09 +----------------- + +This is a small release with some enhancements. + +Features Added +`````````````` + +- Repository collaborators now returns a ``users.Collaborator`` object, instead + of a ``users.ShortUser`` object. This is to support collaborator + affiliations. A refresh call of this object (and ``users.Contributor``) will + result in a full ``users.User`` object. + +- The call to iterate collaborators of a repository + (``Repository#collaborators``) can now take an ``affiliation`` filter with + options of ``outside``, ``direct``, and ``all``. The default is ``all``, + which preserves the previous behavior of this method. + +Bugs Fixed +`````````` + +- Parse certain attributes on ``IssueEvent`` into objects (again, this was a + regression in 1.0) + +- Handle older GitHub Enterprise responses for authenticated user objects + +- Handle large file pull request responses not including a ``patch`` attribute diff --git a/docs/source/release-notes/1.2.0.rst b/docs/source/release-notes/1.2.0.rst new file mode 100644 index 000000000..93efb1ca8 --- /dev/null +++ b/docs/source/release-notes/1.2.0.rst @@ -0,0 +1,98 @@ +1.2.0: 2018-08-22 +----------------- + +This is a larger release with some enhancements and bug fixes. + +Features Added +`````````````` + +- Partial GitHub Apps support. We added the following: + + - ``GitHub.login_as_app`` to login using JWT as an Application + + - ``GitHub.login_as_app_installation`` to login using a token obtained from + an App's JWT + + - ``GitHub.app`` to retrieve an application by its "slug" + + - ``GitHub.app_installation`` to retrieve a specific installation by its ID + + - ``GitHub.app_installations`` to retrieve all of an App's installations + + - ``GitHub.app_installation_for_organization`` to retrieve an organization's + installation of an App + + - ``GitHub.app_installation_for_repository`` to retrieve an installation for + a specific repository + + - ``GitHub.app_installation_for_user`` to retrieve an installation for a + specific user + + - ``GitHub.authenticated_app`` to retrieve the metadata for a specific App + + - Not supported as of this release: + + - `Installations API`_ + + - `List installations for user`_ + + - `User-to-server OAuth access token`_ + +- Organization Invitations Preview API is now supported. This includes an + additional ``Invitation`` object. This is the result of hard work by Hal + Wine. + +- A ``ShortLabel`` class was added to represent the shorter (description-less) + representation of labels returned by the API. + +- The branch protections API is now completely represented in github3.py. + +- We now support the GPG Keys API. + +- We now support the Commit Search API. + +- We now support Repository Invitations. + +- We now have assign and unassign methods that support assigning and + unassigning multiple users at once. + +- We now support review requests on Pull Requests. + +- We now support the ability for a user to activate their membership in an + Organization. + +- We now support recurisvely traverse a tree via the API. + +- We now support enabling or disabling projects on a Repository. + +- We now support editing and reading Repository topics. + +- We now support Repository Pull Request merge settings. + + +Bugs Fixed +`````````` + +- No longer require a Gist to have an owner. + +- ``Branch.latest_sha()`` now returns text (unicode) as documented. + + +Special Thanks +`````````````` + +A great deal of the exception feature work done above was performed by the +newest team member of the github3.py project: Jacopo Notarstefano (a.k.a, +``@jacquerie`` on GitHub). This project has had new life breathed into it +thanks to Jacopo. + + +.. links +.. _Installations API: + https://developer.github.com/v3/apps/installations/ + +.. _List installations for user: + https://developer.github.com/v3/apps/#list-installations-for-user + +.. _User-to-server OAuth access token: + https://developer.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site diff --git a/docs/source/release-notes/1.3.0.rst b/docs/source/release-notes/1.3.0.rst new file mode 100644 index 000000000..08a06ba77 --- /dev/null +++ b/docs/source/release-notes/1.3.0.rst @@ -0,0 +1,59 @@ +1.3.0: 2019-01-24 +----------------- + +Features Added +`````````````` + +- Add partial support for the Checks API: + + - Add support for listing check runs via ``check_runs`` and check suites + via ``check_suites`` methods to ``RepoCommit``, ``MiniCommit`` and + ``ShortCommit`` classes + + - ``CheckRun.update`` to update the check run + + - ``CheckSuite.check_runs`` to retrieve the check runs for this suite + + - ``CheckRunOutput.annotations`` class to retrieve the annotations for a + check run + +- Add ``unignore`` method to unignore notifications from repository for the + user, to ``Repository`` and ``ShortRepository`` classes. + +- Add ``unsubscribe`` method to unsubscribe the user to repository's + notifications, to ``Repository`` and ``ShortRepository`` classes. + +- Add support for webhooks in an organization by adding: + + - ``OrganizationHook`` class + + - ``create_hook``, ``hook``, and ``hooks`` methods to ``ShortOrganization`` + and ``Organization`` classes + +- A ``Project.retrieve_issue_from_content`` method was added to retrieve an + Issue from the content url. + +- A ``Project.retrieve_pull_request_from_content`` method was added to + retrieve a PullRequest from the content url. + +- Add support for Parent/Child teams via the ``hellicat-preview`` API preview + type. + +- Add support for specifying merge commit titles when merging a Pull Request. + + +Bugs Fixed +`````````` + +- Stop hard-coding GitHub url that breaks work with a GitHub Enterprise + instance. + +- Set default connect and read timeouts in ``GitHubSession`` to avoid hangs. + + +.. links +.. _Checks API: + https://developer.github.com/v3/orgs/checks/ + +.. _Webhooks API: + https://developer.github.com/v3/orgs/hooks/ diff --git a/docs/source/release-notes/2.0.0.rst b/docs/source/release-notes/2.0.0.rst new file mode 100644 index 000000000..665a9a52b --- /dev/null +++ b/docs/source/release-notes/2.0.0.rst @@ -0,0 +1,63 @@ +2.0.0: 2021-02-21 +----------------- + +Features Added +`````````````` + +- Add support to Python 3.8 and 3.9. +- Remove support to Python versions that reached end-of-life (2, 3.4 and 3.5). +- Update CI/CD to thoroughly test all supported version. +- Remove compatibility imports for Python 2. +- Remove dev-dependency for mock. + +Bugs Fixed +`````````` + +* Key errors on Gist.history. + +Removals +```````` + +* Removal of legacy unicode future imports. + +* Removal of already deprecated code on version 1.x: + +- ``github3.api.all_events`` use ``github.GitHub.all_events`` +- ``github3.api.all_repositories`` use ``github.GitHub.all_repositories`` +- ``github3.api.all_users`` use ``github.GitHub.all_users`` +- ``github3.api.authorize`` use ``github.GitHub.authorize`` +- ``github3.api.create_gist`` use ``github.GitHub.create_gist`` +- ``github3.api.emojis`` +- ``github3.api.followed_by`` use ``github.GitHub.followed_by`` +- ``github3.api.followers_of`` use ``github.GitHub.followers_of`` +- ``github3.api.gist`` use ``github.GitHub.gist`` +- ``github3.api.gists_by`` use ``github.GitHub.gists_by`` +- ``github3.api.gitignore_template`` use ``github.GitHub.gitignore_template`` +- ``github3.api.gitignore_templates`` use ``github.GitHub.gitignore_templates`` +- ``github3.api.issue`` use ``github.GitHub.issue`` +- ``github3.api.issues_on`` use ``github.GitHub.issues_on`` +- ``github3.api.markdown`` use ``github.GitHub.markdown`` +- ``github3.api.octocat`` use ``github.GitHub.octocat`` +- ``github3.api.organization`` +- ``github3.api.organizations_with`` use ``github.GitHub.organizations_with`` +- ``github3.api.public_gists`` use ``github.GitHub.public_gists`` +- ``github3.api.pull_request`` use ``github.GitHub.pull_request`` +- ``github3.api.rate_limit`` +- ``github3.api.repositories_by`` use ``github.GitHub.organizations_with`` +- ``github3.api.repository`` +- ``github3.api.search_code`` use ``github.GitHub.search_code`` +- ``github3.api.search_issues`` use ``github.GitHub.search_issues`` +- ``github3.api.search_repositories`` use ``github.GitHub.search_repositories`` +- ``github3.api.search_users`` use ``github.GitHub.search_users`` +- ``github3.api.starred_by`` use ``github.GitHub.starred_by`` +- ``github3.api.subscriptions_for`` use ``github.GitHub.subscriptions_for`` +- ``github3.api.user`` +- ``github3.api.zen`` use ``github.GitHub.zen`` +- ``Git#Blob.decoded`` use ``Git#Blob.decode_content`` +- ``Team#is_member`` use ``Login#is_member`` +- ``Team#add_member`` use ``Team#add_or_update_membership`` +- ``Team#invite`` use ``Team#add_or_update_membership`` +- ``Team#remove_member`` use ``Team#add_or_update_membership`` +- ``Organization#add_member`` add ``username`` to ``team``. +- ``Organization#events`` use ``Organization#public_events`` +- ``Issue#assign`` use ``issues.issue.Issue.add_assignees`` diff --git a/docs/source/release-notes/3.0.0.rst b/docs/source/release-notes/3.0.0.rst new file mode 100644 index 000000000..0af4dcd2d --- /dev/null +++ b/docs/source/release-notes/3.0.0.rst @@ -0,0 +1,37 @@ +3.0.0: 2021-10-31 +----------------- + +Backwards Incompatible Changes +`````````````````````````````` + +- :meth:`~github3.repos.branch.Branch.protect` has been updated to reflect the + GitHub API + +Features Added +`````````````` + +- Add ``maintainer_can_modify`` parameter to + :meth:`~github3.repos.repo.Repository.create_pull` + +- Add :attr:`~github3.repos.branch.BranchProtection.required_linear_history`, + :attr:`~github3.repos.branch.BranchProtection.allow_force_pushes`, + :attr:`~github3.repos.branch.BranchProtection.allow_deletions`, and + :attr:`~github3.repos.branch.BranchProtection.required_conversation_resolution`. + +- Add support for blocking users to :class:`~github3.github.GitHub` and + :class:`~github3.orgs.Organization`. + + - :meth:`~github3.github.GitHub.blocked_users` + - :meth:`~github3.github.GitHub.block` + - :meth:`~github3.github.GitHub.is_blocking` + - :meth:`~github3.github.GitHub.unblock` + - :meth:`~github3.orgs.Organization.blocked_users` + - :meth:`~github3.orgs.Organization.block` + - :meth:`~github3.orgs.Organization.is_blocking` + - :meth:`~github3.orgs.Organization.unblock` + +- Add support for beta branch synchronization endpoint + :meth:`~github3.repos.branch.Branch.sync_with_upstream` + +- :class:`~github3.users.Stargazer` was added to give access to the + ``starred_at`` value when listing stargazers on a Repository object. diff --git a/docs/source/release-notes/3.1.0.rst b/docs/source/release-notes/3.1.0.rst new file mode 100644 index 000000000..4834c2f5d --- /dev/null +++ b/docs/source/release-notes/3.1.0.rst @@ -0,0 +1,26 @@ +3.1.0: 2022-02-14 +----------------- + +Dependency Change +````````````````` + +- Swapped LGPL jwcrypto dependency for non-GPL PyJWT + +Features Added +`````````````` + +- Add :class:`~github3.orgs.ShortRepositoryWithPermissions` to include the + permissions dictionary returned by the GitHub API when listing repositories + a team has access to. + +- Add :meth:`github3.orgs.Team.permissions_for("/")` to retrieve a + full permissions listing for a given repository in an organization. + + +Bug Fixes +````````` + +- Previously, if a file was empty ``Contents.decoded`` might return text + instead of bytes, this is now fixed. + +- Fix ``Repository#ref`` using the wrong endpoint diff --git a/docs/source/release-notes/3.1.1.rst b/docs/source/release-notes/3.1.1.rst new file mode 100644 index 000000000..a8df6f44a --- /dev/null +++ b/docs/source/release-notes/3.1.1.rst @@ -0,0 +1,11 @@ +3.1.1: 2022-02-21 +----------------- + +Features Added +`````````````` + +- Support editing parent team and team visibility via + :meth:`github3.orgs.Team.edit` + +- Added more allowed statuses to Deployments for + :meth:`github3.repos.deployment.Deployment.create_status()` diff --git a/docs/source/release-notes/3.1.2.rst b/docs/source/release-notes/3.1.2.rst new file mode 100644 index 000000000..3a8c4fa7a --- /dev/null +++ b/docs/source/release-notes/3.1.2.rst @@ -0,0 +1,9 @@ +3.1.1: 2022-02-22 +----------------- + +Bugs Fixed +`````````` + +- Always specify our ``PyJWT`` dependency with the ``crypto`` extra so that + users will get ``cryptography`` installed for them. Previously, ``jwcrypto`` + had an explicit dependency on this but for ``PyJWT`` it is optional. diff --git a/docs/source/release-notes/3.2.0.rst b/docs/source/release-notes/3.2.0.rst new file mode 100644 index 000000000..f09cb982f --- /dev/null +++ b/docs/source/release-notes/3.2.0.rst @@ -0,0 +1,12 @@ +3.2.0: 2022-03-02 +----------------- + +Bug Fixes +````````` + +- Migrate to GitHub's supported Teams endpoints for select methods that were + relying on the deprecated endpoints. See also gh-1080_ + + +.. _gh-1080: + https://github.com/sigmavirus24/github3.py/issues/1080 diff --git a/docs/source/release-notes/4.0.0.rst b/docs/source/release-notes/4.0.0.rst new file mode 100644 index 000000000..694fb6b8c --- /dev/null +++ b/docs/source/release-notes/4.0.0.rst @@ -0,0 +1,54 @@ +4.0.0: 2023-04-23 +----------------- + +Backwards Incompatible Changes +`````````````````````````````` + +- :meth:`~github3.repos.comparison.Comparison.commits` was renamed to + `original_commits` (max 250 commits). Now `commits` uses Github's API to + get the full commit list out of the compare endpoint, so enabled + pagination/iterator on the commits within the Comparison class + (@amaccormack-lumira). See also gh-1137_ + +Features Added +`````````````` + +- Add tests for Python 3.11 (@cclauss). See also gh-1124_ +- Add function for getting repos for github app (@pettermk). See also gh-1085_ +- Cancel and failed invitation (@pallavisharma1210). See also gh-1091_ +- Allow to set GitHub API version (@anz-ableton). See also gh-1121_ + +Removal +``````` + +- Remove support to EOL Python 3.6 (@staticdev). See also gh-1103_ + +Bug Fixes +````````` + +- Missing set permission for collaborators (@NargiT). See also gh-954_ + +CI/CD +````` + +- Bump the dev-requirements.txt (@offbyone). See also gh-1136_ +- Modernize the build: switch to hatchling (@offbyone). See also gh-1142_ + +.. _gh-954: + https://github.com/sigmavirus24/github3.py/issues/954 +.. _gh-1103: + https://github.com/sigmavirus24/github3.py/issues/1103 +.. _gh-1085: + https://github.com/sigmavirus24/github3.py/issues/1085 +.. _gh-1091: + https://github.com/sigmavirus24/github3.py/pull/1091 +.. _gh-1124: + https://github.com/sigmavirus24/github3.py/pull/1124 +.. _gh-1121: + https://github.com/sigmavirus24/github3.py/issues/1121 +.. _gh-1136: + https://github.com/sigmavirus24/github3.py/pull/1136 +.. _gh-1137: + https://github.com/sigmavirus24/github3.py/issues/1137 +.. _gh-1142: + https://github.com/sigmavirus24/github3.py/pull/1142 diff --git a/docs/source/release-notes/4.0.1.rst b/docs/source/release-notes/4.0.1.rst new file mode 100644 index 000000000..3b5062097 --- /dev/null +++ b/docs/source/release-notes/4.0.1.rst @@ -0,0 +1,10 @@ +4.0.1: 2023-04-25 +----------------- + +CI/CD +````` + +- Disable hatch strict naming for packaing (@staticdev). See also gh-1145_ + +.. _gh-1145: + https://github.com/sigmavirus24/github3.py/issues/1145 diff --git a/docs/source/release-notes/index.rst b/docs/source/release-notes/index.rst new file mode 100644 index 000000000..613378603 --- /dev/null +++ b/docs/source/release-notes/index.rst @@ -0,0 +1,64 @@ +=========================== + Release Notes and History +=========================== + +All of the release notes that have been recorded for github3.py are organized +here with the newest releases first. + +4.x Release Series +================== + +.. toctree:: + 4.0.0 + 4.0.1 + +3.x Release Series +================== + +.. toctree:: + 3.2.0 + 3.1.2 + 3.1.1 + 3.1.0 + 3.0.0 + +2.x Release Series +================== + +.. toctree:: + 2.0.0 + +1.x Release Series +================== + +.. toctree:: + 1.3.0 + 1.2.0 + 1.1.0 + 1.0.2 + 1.0.1 + 1.0.0 + +0.x Release Series +================== + +.. toctree:: + 0.9.3 + 0.9.2 + 0.9.1 + 0.9.0 + 0.8.2 + 0.8.1 + 0.8.0 + 0.7.1 + 0.7.0 + 0.6.1 + 0.6.0 + 0.5.3 + 0.5.2 + 0.5.1 + 0.5.0 + 0.4.0 + 0.3.0 + 0.2.0 + 0.1.0 diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt new file mode 100644 index 000000000..717a3703d --- /dev/null +++ b/docs/source/requirements.txt @@ -0,0 +1,3 @@ +sphinx>=4.2.0 +docutils!=0.18 +sphinx_rtd_theme diff --git a/docs/structs.rst b/docs/structs.rst deleted file mode 100644 index 29864c22e..000000000 --- a/docs/structs.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. module:: github3 -.. module:: github3.structs - -Structures -========== - -Developed for github3.py ------------------------- - -As of right now, there exists only one class in this section, and it is of -only limited importance to users of github3.py. The :class:`GitHubIterator` -class is used to return the results of calls to almost all of the calls to -``iter_`` methods on objects. When conditional refreshing was added to -objects, there was a noticable gap in having conditional calls to those -``iter_`` methods. GitHub provides the proper headers on those calls, but -there was no easy way to add that to what github3.py returned so it could be -used properly. This was the best compromise - an object the behaves like an -iterator regardless but can also be ``refresh``\ ed to get results since the -last request conditionally. - -Objects -------- - -.. autoclass:: GitHubIterator - :inherited-members: - - -.. autoclass:: SearchIterator - :inherited-members: diff --git a/docs/users.rst b/docs/users.rst deleted file mode 100644 index 7b0c57fd9..000000000 --- a/docs/users.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. module:: github3 -.. module:: github3.users - -User -==== - -This part of the documentation covers: - -- :class:`User ` -- :class:`Key ` -- :class:`Plan ` - -None of these objects should ever be instantiated by the user (developer). - -**When listing users, GitHub only sends a handful of the object's attributes. -To retrieve all of the object's attributes, you must call the refresh() -method. This unfortunately requires another call to the API, so use it -sparingly if you have a low limit** - -User Modules ------------- - -.. autoclass:: User - :inherited-members: - ------- - -.. autoclass:: Key - :inherited-members: - ------- - -.. autoclass:: Plan - :inherited-members: diff --git a/example-notebooks/all_repositories.ipynb b/example-notebooks/all_repositories.ipynb index fff062f78..7c01d7ee1 100644 --- a/example-notebooks/all_repositories.ipynb +++ b/example-notebooks/all_repositories.ipynb @@ -1,132 +1,6261 @@ { - "metadata": { - "name": "", - "signature": "sha256:d7edf60ced4d549568da849ae1760941af6e0432378fa5832cdff325109ee570" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# How to retrieve all of the public repositories on GitHub" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import github3" + ] + }, { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "How to retrieve all of the public repositories on GitHub" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import github3" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for repository in github3.all_repositories(number=50):\n", - " print('{0}, id: {0.id}, url: {0.html_url}'.format(repository))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "mojombo/grit, id: 1, url: https://github.com/mojombo/grit\n", - "wycats/merb-core, id: 26, url: https://github.com/wycats/merb-core\n", - "rubinius/rubinius, id: 27, url: https://github.com/rubinius/rubinius\n", - "mojombo/god, id: 28, url: https://github.com/mojombo/god\n", - "vanpelt/jsawesome, id: 29, url: https://github.com/vanpelt/jsawesome\n", - "wycats/jspec, id: 31, url: https://github.com/wycats/jspec\n", - "defunkt/exception_logger, id: 35, url: https://github.com/defunkt/exception_logger\n", - "defunkt/ambition, id: 36, url: https://github.com/defunkt/ambition\n", - "technoweenie/restful-authentication, id: 42, url: https://github.com/technoweenie/restful-authentication\n", - "technoweenie/attachment_fu, id: 43, url: https://github.com/technoweenie/attachment_fu\n", - "topfunky/bong, id: 47, url: https://github.com/topfunky/bong\n", - "Caged/microsis, id: 48, url: https://github.com/Caged/microsis\n", - "anotherjesse/s3, id: 52, url: https://github.com/anotherjesse/s3\n", - "anotherjesse/taboo, id: 53, url: https://github.com/anotherjesse/taboo\n", - "anotherjesse/foxtracs, id: 54, url: https://github.com/anotherjesse/foxtracs\n", - "anotherjesse/fotomatic, id: 56, url: https://github.com/anotherjesse/fotomatic\n", - "mojombo/glowstick, id: 61, url: https://github.com/mojombo/glowstick\n", - "defunkt/starling, id: 63, url: https://github.com/defunkt/starling\n", - "wycats/merb-more, id: 65, url: https://github.com/wycats/merb-more\n", - "macournoyer/thin, id: 68, url: https://github.com/macournoyer/thin\n", - "jamesgolick/resource_controller, id: 71, url: https://github.com/jamesgolick/resource_controller\n", - "jamesgolick/markaby, id: 73, url: https://github.com/jamesgolick/markaby\n", - "jamesgolick/enum_field, id: 74, url: https://github.com/jamesgolick/enum_field\n", - "defunkt/subtlety, id: 75, url: https://github.com/defunkt/subtlety\n", - "defunkt/zippy, id: 92, url: https://github.com/defunkt/zippy\n", - "defunkt/cache_fu, id: 93, url: https://github.com/defunkt/cache_fu\n", - "KirinDave/phosphor, id: 95, url: https://github.com/KirinDave/phosphor\n", - "bmizerany/sinatra, id: 98, url: https://github.com/bmizerany/sinatra\n", - "jnewland/gsa-prototype, id: 102, url: https://github.com/jnewland/gsa-prototype\n", - "technoweenie/duplikate, id: 105, url: https://github.com/technoweenie/duplikate\n", - "jnewland/lazy_record, id: 118, url: https://github.com/jnewland/lazy_record\n", - "jnewland/gsa-feeds, id: 119, url: https://github.com/jnewland/gsa-feeds\n", - "jnewland/votigoto, id: 120, url: https://github.com/jnewland/votigoto\n", - "defunkt/mofo, id: 127, url: https://github.com/defunkt/mofo\n", - "jnewland/xhtmlize, id: 129, url: https://github.com/jnewland/xhtmlize\n", - "schacon/ruby-git, id: 130, url: https://github.com/schacon/ruby-git\n", - "ezmobius/bmhsearch, id: 131, url: https://github.com/ezmobius/bmhsearch\n", - "uggedal/mofo, id: 137, url: https://github.com/uggedal/mofo\n", - "mmower/simply_versioned, id: 139, url: https://github.com/mmower/simply_versioned\n", - "abhay/gchart, id: 140, url: https://github.com/abhay/gchart\n", - "benburkert/schemr, id: 141, url: https://github.com/benburkert/schemr\n", - "abhay/calais, id: 142, url: https://github.com/abhay/calais\n", - "mojombo/chronic, id: 144, url: https://github.com/mojombo/chronic\n", - "sr/git-wiki, id: 165, url: https://github.com/sr/git-wiki\n", - "automatthew/ambitious_activeldap, id: 176, url: https://github.com/automatthew/ambitious_activeldap\n", - "queso/signal-wiki, id: 177, url: https://github.com/queso/signal-wiki\n", - "drnic/ruby-on-rails-tmbundle, id: 179, url: https://github.com/drnic/ruby-on-rails-tmbundle\n", - "danwrong/low-pro-for-jquery, id: 185, url: https://github.com/danwrong/low-pro-for-jquery\n", - "wayneeseguin/merb-core, id: 186, url: https://github.com/wayneeseguin/merb-core\n", - "sr/dst, id: 190, url: https://github.com/sr/dst\n" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you omit the `number` parameter, github3.py will attempt to retrieve all of the public repositories available on GitHub. In order to iterate over all of them in a reasonable amount of time, you should authenticate like so:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "gh = github3.login('username', 'password')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for repository in gh.all_repositories():\n", - " print('{0} - id: {0.id}, url: {0.html_url}'.format(repository))" - ], - "language": "python", - "metadata": {}, - "outputs": [] + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "gh = github3.login('username', 'password')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mojombo/grit - id: 1, url: https://github.com/mojombo/grit\n", + "wycats/merb-core - id: 26, url: https://github.com/wycats/merb-core\n", + "rubinius/rubinius - id: 27, url: https://github.com/rubinius/rubinius\n", + "mojombo/god - id: 28, url: https://github.com/mojombo/god\n", + "vanpelt/jsawesome - id: 29, url: https://github.com/vanpelt/jsawesome\n", + "wycats/jspec - id: 31, url: https://github.com/wycats/jspec\n", + "defunkt/exception_logger - id: 35, url: https://github.com/defunkt/exception_logger\n", + "defunkt/ambition - id: 36, url: https://github.com/defunkt/ambition\n", + "technoweenie/restful-authentication - id: 42, url: https://github.com/technoweenie/restful-authentication\n", + "technoweenie/attachment_fu - id: 43, url: https://github.com/technoweenie/attachment_fu\n", + "caged/microsis - id: 48, url: https://github.com/caged/microsis\n", + "anotherjesse/s3 - id: 52, url: https://github.com/anotherjesse/s3\n", + "anotherjesse/taboo - id: 53, url: https://github.com/anotherjesse/taboo\n", + "anotherjesse/foxtracs - id: 54, url: https://github.com/anotherjesse/foxtracs\n", + "anotherjesse/fotomatic - id: 56, url: https://github.com/anotherjesse/fotomatic\n", + "mojombo/glowstick - id: 61, url: https://github.com/mojombo/glowstick\n", + "defunkt/starling - id: 63, url: https://github.com/defunkt/starling\n", + "wycats/merb-more - id: 65, url: https://github.com/wycats/merb-more\n", + "macournoyer/thin - id: 68, url: https://github.com/macournoyer/thin\n", + "jamesgolick/resource_controller - id: 71, url: https://github.com/jamesgolick/resource_controller\n", + "jamesgolick/markaby - id: 73, url: https://github.com/jamesgolick/markaby\n", + "jamesgolick/enum_field - id: 74, url: https://github.com/jamesgolick/enum_field\n", + "defunkt/subtlety - id: 75, url: https://github.com/defunkt/subtlety\n", + "defunkt/zippy - id: 92, url: https://github.com/defunkt/zippy\n", + "defunkt/cache_fu - id: 93, url: https://github.com/defunkt/cache_fu\n", + "KirinDave/phosphor - id: 95, url: https://github.com/KirinDave/phosphor\n", + "bmizerany/sinatra - id: 98, url: https://github.com/bmizerany/sinatra\n", + "jnewland/gsa-prototype - id: 102, url: https://github.com/jnewland/gsa-prototype\n", + "technoweenie/duplikate - id: 105, url: https://github.com/technoweenie/duplikate\n", + "jnewland/lazy_record - id: 118, url: https://github.com/jnewland/lazy_record\n", + "jnewland/gsa-feeds - id: 119, url: https://github.com/jnewland/gsa-feeds\n", + "jnewland/votigoto - id: 120, url: https://github.com/jnewland/votigoto\n", + "defunkt/mofo - id: 127, url: https://github.com/defunkt/mofo\n", + "jnewland/xhtmlize - id: 129, url: https://github.com/jnewland/xhtmlize\n", + "ruby-git/ruby-git - id: 130, url: https://github.com/ruby-git/ruby-git\n", + "ezmobius/bmhsearch - id: 131, url: https://github.com/ezmobius/bmhsearch\n", + "uggedal/mofo - id: 137, url: https://github.com/uggedal/mofo\n", + "mmower/simply_versioned - id: 139, url: https://github.com/mmower/simply_versioned\n", + "abhay/gchart - id: 140, url: https://github.com/abhay/gchart\n", + "benburkert/schemr - id: 141, url: https://github.com/benburkert/schemr\n", + "abhay/calais - id: 142, url: https://github.com/abhay/calais\n", + "mojombo/chronic - id: 144, url: https://github.com/mojombo/chronic\n", + "sr/git-wiki - id: 165, url: https://github.com/sr/git-wiki\n", + "queso/signal-wiki - id: 177, url: https://github.com/queso/signal-wiki\n", + "drnic/ruby-on-rails-tmbundle - id: 179, url: https://github.com/drnic/ruby-on-rails-tmbundle\n", + "danwrong/low-pro-for-jquery - id: 185, url: https://github.com/danwrong/low-pro-for-jquery\n", + "wayneeseguin/merb-core - id: 186, url: https://github.com/wayneeseguin/merb-core\n", + "sr/dst - id: 190, url: https://github.com/sr/dst\n", + "mojombo/yaws - id: 191, url: https://github.com/mojombo/yaws\n", + "KirinDave/yaws - id: 192, url: https://github.com/KirinDave/yaws\n", + "sr/tasks - id: 193, url: https://github.com/sr/tasks\n", + "mattetti/ruby-on-rails-tmbundle - id: 195, url: https://github.com/mattetti/ruby-on-rails-tmbundle\n", + "grempe/amazon-ec2 - id: 199, url: https://github.com/grempe/amazon-ec2\n", + "wayneeseguin/merblogger - id: 203, url: https://github.com/wayneeseguin/merblogger\n", + "wayneeseguin/merbtastic - id: 204, url: https://github.com/wayneeseguin/merbtastic\n", + "wayneeseguin/alogr - id: 205, url: https://github.com/wayneeseguin/alogr\n", + "wayneeseguin/autozest - id: 206, url: https://github.com/wayneeseguin/autozest\n", + "wayneeseguin/rnginx - id: 207, url: https://github.com/wayneeseguin/rnginx\n", + "wayneeseguin/sequel - id: 208, url: https://github.com/wayneeseguin/sequel\n", + "bmizerany/simply_versioned - id: 211, url: https://github.com/bmizerany/simply_versioned\n", + "peterc/switchpipe - id: 212, url: https://github.com/peterc/switchpipe\n", + "hornbeck/arc - id: 213, url: https://github.com/hornbeck/arc\n", + "up_the_irons/ebay4r - id: 217, url: https://github.com/up_the_irons/ebay4r\n", + "wycats/merb-plugins - id: 218, url: https://github.com/wycats/merb-plugins\n", + "up_the_irons/ram - id: 220, url: https://github.com/up_the_irons/ram\n", + "defunkt/ambitious_activeldap - id: 230, url: https://github.com/defunkt/ambitious_activeldap\n", + "atmos/fitter_happier - id: 232, url: https://github.com/atmos/fitter_happier\n", + "brosner/oebfare - id: 237, url: https://github.com/brosner/oebfare\n", + "up_the_irons/credit_card_tools - id: 245, url: https://github.com/up_the_irons/credit_card_tools\n", + "jnicklas/rorem - id: 248, url: https://github.com/jnicklas/rorem\n", + "cristibalan/braid - id: 249, url: https://github.com/cristibalan/braid\n", + "jnicklas/uploadcolumn - id: 251, url: https://github.com/jnicklas/uploadcolumn\n", + "simonjefford/ruby-on-rails-tmbundle - id: 252, url: https://github.com/simonjefford/ruby-on-rails-tmbundle\n", + "leahneukirchen/rack-mirror - id: 256, url: https://github.com/leahneukirchen/rack-mirror\n", + "leahneukirchen/coset-mirror - id: 257, url: https://github.com/leahneukirchen/coset-mirror\n", + "drnic/javascript-unittest-tmbundle - id: 267, url: https://github.com/drnic/javascript-unittest-tmbundle\n", + "engineyard/eycap - id: 273, url: https://github.com/engineyard/eycap\n", + "leahneukirchen/gitsum - id: 279, url: https://github.com/leahneukirchen/gitsum\n", + "wayneeseguin/sequel-model - id: 293, url: https://github.com/wayneeseguin/sequel-model\n", + "kevinclark/god - id: 305, url: https://github.com/kevinclark/god\n", + "hornbeck/blerb-core - id: 307, url: https://github.com/hornbeck/blerb-core\n", + "brosner/django-mptt - id: 312, url: https://github.com/brosner/django-mptt\n", + "technomancy/bus-scheme - id: 314, url: https://github.com/technomancy/bus-scheme\n", + "caged/javascript-bits - id: 319, url: https://github.com/caged/javascript-bits\n", + "caged/groomlake - id: 320, url: https://github.com/caged/groomlake\n", + "sevenwire/forgery - id: 322, url: https://github.com/sevenwire/forgery\n", + "technicalpickles/ambitious-sphinx - id: 324, url: https://github.com/technicalpickles/ambitious-sphinx\n", + "lazyatom/soup - id: 329, url: https://github.com/lazyatom/soup\n", + "josh/rails - id: 332, url: https://github.com/josh/rails\n", + "cdcarter/backpacking - id: 334, url: https://github.com/cdcarter/backpacking\n", + "jnewland/capsize - id: 339, url: https://github.com/jnewland/capsize\n", + "bs/starling - id: 351, url: https://github.com/bs/starling\n", + "sr/ape - id: 360, url: https://github.com/sr/ape\n", + "collectiveidea/awesomeness - id: 362, url: https://github.com/collectiveidea/awesomeness\n", + "collectiveidea/audited - id: 363, url: https://github.com/collectiveidea/audited\n", + "collectiveidea/acts_as_geocodable - id: 364, url: https://github.com/collectiveidea/acts_as_geocodable\n", + "collectiveidea/acts_as_money - id: 365, url: https://github.com/collectiveidea/acts_as_money\n", + "collectiveidea/calendar_builder - id: 367, url: https://github.com/collectiveidea/calendar_builder\n", + "collectiveidea/clear_empty_attributes - id: 368, url: https://github.com/collectiveidea/clear_empty_attributes\n", + "collectiveidea/css_naked_day - id: 369, url: https://github.com/collectiveidea/css_naked_day\n", + "collectiveidea/imap_authenticatable - id: 370, url: https://github.com/collectiveidea/imap_authenticatable\n", + "collectiveidea/random_finders - id: 371, url: https://github.com/collectiveidea/random_finders\n", + "collectiveidea/with_action - id: 372, url: https://github.com/collectiveidea/with_action\n", + "collectiveidea/graticule - id: 374, url: https://github.com/collectiveidea/graticule\n", + "collectiveidea/tinder - id: 376, url: https://github.com/collectiveidea/tinder\n", + "macournoyer/invisible - id: 377, url: https://github.com/macournoyer/invisible\n", + "tommorris/pyprofile - id: 379, url: https://github.com/tommorris/pyprofile\n", + "adamwiggins/rush - id: 386, url: https://github.com/adamwiggins/rush\n", + "defunkt/ike - id: 388, url: https://github.com/defunkt/ike\n", + "mtodd/halcyon - id: 408, url: https://github.com/mtodd/halcyon\n", + "benburkert/cruisecontrolrb - id: 410, url: https://github.com/benburkert/cruisecontrolrb\n", + "tommorris/opml-schema - id: 413, url: https://github.com/tommorris/opml-schema\n", + "tommorris/reddy - id: 422, url: https://github.com/tommorris/reddy\n", + "shane/youtube-g - id: 423, url: https://github.com/shane/youtube-g\n", + "defunkt/facebox - id: 425, url: https://github.com/defunkt/facebox\n", + "haml/haml - id: 426, url: https://github.com/haml/haml\n", + "lancecarlson/kissgen - id: 427, url: https://github.com/lancecarlson/kissgen\n", + "anotherjesse/exception_logger - id: 429, url: https://github.com/anotherjesse/exception_logger\n", + "rsanheim/brain_buster - id: 430, url: https://github.com/rsanheim/brain_buster\n", + "mojombo/vanhelsing - id: 443, url: https://github.com/mojombo/vanhelsing\n", + "bryanl/linthicum - id: 469, url: https://github.com/bryanl/linthicum\n", + "adelcambre/textilizefu - id: 483, url: https://github.com/adelcambre/textilizefu\n", + "scharfie/slate - id: 491, url: https://github.com/scharfie/slate\n", + "halorgium/archangel - id: 492, url: https://github.com/halorgium/archangel\n", + "halorgium/god - id: 494, url: https://github.com/halorgium/god\n", + "drnic/newjs - id: 506, url: https://github.com/drnic/newjs\n", + "sferik/twitter - id: 507, url: https://github.com/sferik/twitter\n", + "jnunemaker/googlebase - id: 509, url: https://github.com/jnunemaker/googlebase\n", + "jnunemaker/googlereader - id: 510, url: https://github.com/jnunemaker/googlereader\n", + "jnunemaker/mirrored - id: 511, url: https://github.com/jnunemaker/mirrored\n", + "jnunemaker/scrobbler - id: 513, url: https://github.com/jnunemaker/scrobbler\n", + "jnunemaker/lorem - id: 514, url: https://github.com/jnunemaker/lorem\n", + "DocSavage/rails-authorization-plugin - id: 520, url: https://github.com/DocSavage/rails-authorization-plugin\n", + "drnic/drnic_js_test_helpers - id: 521, url: https://github.com/drnic/drnic_js_test_helpers\n", + "psq/mephisto-erb-templates-plugin - id: 523, url: https://github.com/psq/mephisto-erb-templates-plugin\n", + "maddox/imdb - id: 531, url: https://github.com/maddox/imdb\n", + "delynn/userstamp - id: 533, url: https://github.com/delynn/userstamp\n", + "defunkt/matzbot - id: 537, url: https://github.com/defunkt/matzbot\n", + "alexvollmer/pci4r - id: 538, url: https://github.com/alexvollmer/pci4r\n", + "marten/exposure - id: 539, url: https://github.com/marten/exposure\n", + "gnufied/packet - id: 541, url: https://github.com/gnufied/packet\n", + "joshuamckenty/elderbrowser - id: 543, url: https://github.com/joshuamckenty/elderbrowser\n", + "kmarsh/git-wiki - id: 547, url: https://github.com/kmarsh/git-wiki\n", + "halorgium/merb-core - id: 550, url: https://github.com/halorgium/merb-core\n", + "imownbey/jim - id: 556, url: https://github.com/imownbey/jim\n", + "mudge/blankable - id: 559, url: https://github.com/mudge/blankable\n", + "ivey/merb-for-rails - id: 571, url: https://github.com/ivey/merb-for-rails\n", + "halfbyte/portmidi-ruby - id: 586, url: https://github.com/halfbyte/portmidi-ruby\n", + "pjhyett/vjot - id: 590, url: https://github.com/pjhyett/vjot\n", + "pjhyett/errcount - id: 592, url: https://github.com/pjhyett/errcount\n", + "reinh/jquery-autocomplete - id: 597, url: https://github.com/reinh/jquery-autocomplete\n", + "anotherjesse/finally - id: 600, url: https://github.com/anotherjesse/finally\n", + "cannikin/alfred - id: 603, url: https://github.com/cannikin/alfred\n", + "jnewland/github-campfire - id: 608, url: https://github.com/jnewland/github-campfire\n", + "jnicklas/merb-more - id: 619, url: https://github.com/jnicklas/merb-more\n", + "jnicklas/merb-core - id: 620, url: https://github.com/jnicklas/merb-core\n", + "bigfleet/blanket - id: 622, url: https://github.com/bigfleet/blanket\n", + "sr/merb-more - id: 623, url: https://github.com/sr/merb-more\n", + "leahneukirchen/rubyports - id: 624, url: https://github.com/leahneukirchen/rubyports\n", + "lypanov/wordcram - id: 625, url: https://github.com/lypanov/wordcram\n", + "sr/dumbapp - id: 629, url: https://github.com/sr/dumbapp\n", + "raymorgan/merl - id: 639, url: https://github.com/raymorgan/merl\n", + "zackchandler/squawk-micro - id: 641, url: https://github.com/zackchandler/squawk-micro\n", + "cdcarter/io - id: 648, url: https://github.com/cdcarter/io\n", + "KirinDave/fuzed-old - id: 649, url: https://github.com/KirinDave/fuzed-old\n", + "drnic/comment_replies - id: 653, url: https://github.com/drnic/comment_replies\n", + "kmarsh/tumblr - id: 654, url: https://github.com/kmarsh/tumblr\n", + "anildigital/codesnippets - id: 660, url: https://github.com/anildigital/codesnippets\n", + "toretore/barby - id: 662, url: https://github.com/toretore/barby\n", + "kastner/sin - id: 663, url: https://github.com/kastner/sin\n", + "drnic/jsunittest - id: 664, url: https://github.com/drnic/jsunittest\n", + "tobi/delayed_job - id: 682, url: https://github.com/tobi/delayed_job\n", + "halorgium/admin_tasks - id: 690, url: https://github.com/halorgium/admin_tasks\n", + "abhay/chronic - id: 703, url: https://github.com/abhay/chronic\n", + "nullstyle/ruby-satisfaction - id: 713, url: https://github.com/nullstyle/ruby-satisfaction\n", + "jwhitmire/llor-nu-legacy - id: 726, url: https://github.com/jwhitmire/llor-nu-legacy\n", + "robbyrussell/rubyurl - id: 732, url: https://github.com/robbyrussell/rubyurl\n", + "adelcambre/rubyurl - id: 733, url: https://github.com/adelcambre/rubyurl\n", + "francois/mor7-google-charts-demo - id: 735, url: https://github.com/francois/mor7-google-charts-demo\n", + "reinh/dm - id: 738, url: https://github.com/reinh/dm\n", + "trevorturk/eldorado - id: 751, url: https://github.com/trevorturk/eldorado\n", + "rsl/stringex - id: 765, url: https://github.com/rsl/stringex\n", + "james/freefall - id: 774, url: https://github.com/james/freefall\n", + "xraid/merb-core - id: 775, url: https://github.com/xraid/merb-core\n", + "al3x/git-wiki - id: 780, url: https://github.com/al3x/git-wiki\n", + "jarkko/kroonikko - id: 786, url: https://github.com/jarkko/kroonikko\n", + "KirinDave/bus-scheme - id: 788, url: https://github.com/KirinDave/bus-scheme\n", + "dgoodlad/bindata - id: 800, url: https://github.com/dgoodlad/bindata\n", + "caffo-archived/bookqueue - id: 807, url: https://github.com/caffo-archived/bookqueue\n", + "yrashk/strokedb - id: 818, url: https://github.com/yrashk/strokedb\n", + "jdhuntington/bus-scheme - id: 828, url: https://github.com/jdhuntington/bus-scheme\n", + "trey/yark - id: 830, url: https://github.com/trey/yark\n", + "nakajima/capistrano-bells - id: 838, url: https://github.com/nakajima/capistrano-bells\n", + "nakajima/calendar-maker - id: 839, url: https://github.com/nakajima/calendar-maker\n", + "urubatan/mydry - id: 852, url: https://github.com/urubatan/mydry\n", + "judofyr/gemify - id: 856, url: https://github.com/judofyr/gemify\n", + "macournoyer/mor7 - id: 866, url: https://github.com/macournoyer/mor7\n", + "jredville/blog - id: 867, url: https://github.com/jredville/blog\n", + "ericallam/hairball - id: 872, url: https://github.com/ericallam/hairball\n", + "jackdempsey/merb-core - id: 876, url: https://github.com/jackdempsey/merb-core\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cdwillie76/evm-portal - id: 882, url: https://github.com/cdwillie76/evm-portal\n", + "drudru/enroll - id: 885, url: https://github.com/drudru/enroll\n", + "cbowns/cpu-history - id: 886, url: https://github.com/cbowns/cpu-history\n", + "jackdempsey/attachmerb_fu - id: 895, url: https://github.com/jackdempsey/attachmerb_fu\n", + "anotherjesse/elasticfox - id: 902, url: https://github.com/anotherjesse/elasticfox\n", + "anotherjesse/git-wiki - id: 905, url: https://github.com/anotherjesse/git-wiki\n", + "collectiveidea/awesome_nested_set - id: 912, url: https://github.com/collectiveidea/awesome_nested_set\n", + "sd/embedded-actions - id: 913, url: https://github.com/sd/embedded-actions\n", + "mbbx6spp/metafusion - id: 915, url: https://github.com/mbbx6spp/metafusion\n", + "kevinansfield/viper - id: 923, url: https://github.com/kevinansfield/viper\n", + "pontus/punktfiler - id: 934, url: https://github.com/pontus/punktfiler\n", + "lachie/logeye - id: 937, url: https://github.com/lachie/logeye\n", + "tobi/mephisto_textlinkads - id: 939, url: https://github.com/tobi/mephisto_textlinkads\n", + "halorgium/nginx - id: 948, url: https://github.com/halorgium/nginx\n", + "technicalpickles/feedbarn - id: 949, url: https://github.com/technicalpickles/feedbarn\n", + "reinh/reinh-com - id: 950, url: https://github.com/reinh/reinh-com\n", + "jnewland/fireeagle - id: 954, url: https://github.com/jnewland/fireeagle\n", + "nakajima/many-mailers - id: 956, url: https://github.com/nakajima/many-mailers\n", + "IoLanguage/io - id: 966, url: https://github.com/IoLanguage/io\n", + "jaikoo/rvideo - id: 975, url: https://github.com/jaikoo/rvideo\n", + "shadowmaru/cd-covers - id: 989, url: https://github.com/shadowmaru/cd-covers\n", + "sxross/ruby-on-rails-tmbundle - id: 998, url: https://github.com/sxross/ruby-on-rails-tmbundle\n", + "andykent/jquery-humanize-messages-plugin - id: 1008, url: https://github.com/andykent/jquery-humanize-messages-plugin\n", + "mojombo/fixture-scenarios - id: 1015, url: https://github.com/mojombo/fixture-scenarios\n", + "zachinglis/rails-plugins - id: 1017, url: https://github.com/zachinglis/rails-plugins\n", + "rtomayko/date-performance - id: 1028, url: https://github.com/rtomayko/date-performance\n", + "labria/rails-ssl-authentication - id: 1031, url: https://github.com/labria/rails-ssl-authentication\n", + "seven1m/onebody - id: 1032, url: https://github.com/seven1m/onebody\n", + "russ/jacks-php - id: 1040, url: https://github.com/russ/jacks-php\n", + "anildigital/getfake - id: 1043, url: https://github.com/anildigital/getfake\n", + "nkallen/effen - id: 1049, url: https://github.com/nkallen/effen\n", + "jparker/template - id: 1052, url: https://github.com/jparker/template\n", + "TekNoLogic/TourGuide - id: 1054, url: https://github.com/TekNoLogic/TourGuide\n", + "ELLIOTTCABLE/fora - id: 1061, url: https://github.com/ELLIOTTCABLE/fora\n", + "lilyball/dcbot - id: 1062, url: https://github.com/lilyball/dcbot\n", + "igouss/cudgel - id: 1076, url: https://github.com/igouss/cudgel\n", + "seaofclouds/micro - id: 1101, url: https://github.com/seaofclouds/micro\n", + "tobi/cacheable - id: 1102, url: https://github.com/tobi/cacheable\n", + "seaofclouds/micro-theme - id: 1104, url: https://github.com/seaofclouds/micro-theme\n", + "lypanov/icaltodoscheduler - id: 1108, url: https://github.com/lypanov/icaltodoscheduler\n", + "jney/catface - id: 1111, url: https://github.com/jney/catface\n", + "alex/pyelection - id: 1124, url: https://github.com/alex/pyelection\n", + "lydgate/git-todo-py - id: 1126, url: https://github.com/lydgate/git-todo-py\n", + "piclez/merb-core - id: 1129, url: https://github.com/piclez/merb-core\n", + "piclez/merb-more - id: 1130, url: https://github.com/piclez/merb-more\n", + "piclez/merb-plugins - id: 1131, url: https://github.com/piclez/merb-plugins\n", + "jicksta/ami-ragel - id: 1157, url: https://github.com/jicksta/ami-ragel\n", + "weepy/test - id: 1196, url: https://github.com/weepy/test\n", + "olivM/hydrate - id: 1208, url: https://github.com/olivM/hydrate\n", + "sintaxi/pmpknpi - id: 1212, url: https://github.com/sintaxi/pmpknpi\n", + "rmanalan/restful-authentication - id: 1213, url: https://github.com/rmanalan/restful-authentication\n", + "rmanalan/facebox - id: 1217, url: https://github.com/rmanalan/facebox\n", + "shantanoo/bhandar - id: 1218, url: https://github.com/shantanoo/bhandar\n", + "halorgium/gcbot - id: 1220, url: https://github.com/halorgium/gcbot\n", + "mislav/will_paginate - id: 1227, url: https://github.com/mislav/will_paginate\n", + "rmanalan/socialgraph-viewer - id: 1233, url: https://github.com/rmanalan/socialgraph-viewer\n", + "lypanov/ruvi - id: 1234, url: https://github.com/lypanov/ruvi\n", + "caius/soco - id: 1241, url: https://github.com/caius/soco\n", + "codahale/ruby-gsl - id: 1249, url: https://github.com/codahale/ruby-gsl\n", + "lsegal/yard - id: 1252, url: https://github.com/lsegal/yard\n", + "joseph/castanaut - id: 1253, url: https://github.com/joseph/castanaut\n", + "drnic/ruby-tmbundle - id: 1259, url: https://github.com/drnic/ruby-tmbundle\n", + "drnic/html-tmbundle - id: 1298, url: https://github.com/drnic/html-tmbundle\n", + "noin/orb - id: 1299, url: https://github.com/noin/orb\n", + "bartcortooms/ikhebhonger - id: 1302, url: https://github.com/bartcortooms/ikhebhonger\n", + "sprinkle-tool/sprinkle - id: 1318, url: https://github.com/sprinkle-tool/sprinkle\n", + "julesss/wlwdeezerplayer - id: 1321, url: https://github.com/julesss/wlwdeezerplayer\n", + "gilesbowkett/utility-belt - id: 1344, url: https://github.com/gilesbowkett/utility-belt\n", + "labria/restful-authentication - id: 1353, url: https://github.com/labria/restful-authentication\n", + "dpetersen/ruby-screen - id: 1355, url: https://github.com/dpetersen/ruby-screen\n", + "aharper/eatingsafe - id: 1364, url: https://github.com/aharper/eatingsafe\n", + "bricooke/name_parser - id: 1377, url: https://github.com/bricooke/name_parser\n", + "marcinpohl/vebiasoptimizer - id: 1378, url: https://github.com/marcinpohl/vebiasoptimizer\n", + "drudru/ext_scaffold - id: 1381, url: https://github.com/drudru/ext_scaffold\n", + "ckhsponge/spongewolf - id: 1385, url: https://github.com/ckhsponge/spongewolf\n", + "dag/amazing - id: 1388, url: https://github.com/dag/amazing\n", + "pdsphil/ruby-merlin - id: 1398, url: https://github.com/pdsphil/ruby-merlin\n", + "tekkub/tekkonfig - id: 1401, url: https://github.com/tekkub/tekkonfig\n", + "pdsphil/ruby-idology - id: 1402, url: https://github.com/pdsphil/ruby-idology\n", + "mascarenhas/luaclr - id: 1408, url: https://github.com/mascarenhas/luaclr\n", + "jasonm/bricklet-core - id: 1411, url: https://github.com/jasonm/bricklet-core\n", + "gensym/bookeater - id: 1414, url: https://github.com/gensym/bookeater\n", + "chuyeow/facon - id: 1425, url: https://github.com/chuyeow/facon\n", + "vanpelt/stat - id: 1429, url: https://github.com/vanpelt/stat\n", + "Norgg/rubynomic - id: 1435, url: https://github.com/Norgg/rubynomic\n", + "bscofield/depth-charge - id: 1436, url: https://github.com/bscofield/depth-charge\n", + "myabc/portfolio - id: 1440, url: https://github.com/myabc/portfolio\n", + "lukeredpath/clickatell - id: 1441, url: https://github.com/lukeredpath/clickatell\n", + "aanand/do_notation - id: 1444, url: https://github.com/aanand/do_notation\n", + "shingara/pictrails - id: 1453, url: https://github.com/shingara/pictrails\n", + "ctran/annotate_models - id: 1462, url: https://github.com/ctran/annotate_models\n", + "alce/blueprint_layout - id: 1469, url: https://github.com/alce/blueprint_layout\n", + "enhiro/wp_theme_victoria - id: 1479, url: https://github.com/enhiro/wp_theme_victoria\n", + "travis/cosmo - id: 1482, url: https://github.com/travis/cosmo\n", + "francois/fogbugz-svnhook - id: 1490, url: https://github.com/francois/fogbugz-svnhook\n", + "mislav/haml - id: 1494, url: https://github.com/mislav/haml\n", + "gregwebs/quicktest - id: 1499, url: https://github.com/gregwebs/quicktest\n", + "bcbroom/getfamilliarwithgit - id: 1511, url: https://github.com/bcbroom/getfamilliarwithgit\n", + "bobbyrward/tonal - id: 1531, url: https://github.com/bobbyrward/tonal\n", + "daly/axiom - id: 1537, url: https://github.com/daly/axiom\n", + "bloodearnest/deal - id: 1540, url: https://github.com/bloodearnest/deal\n", + "jesper/knuff - id: 1553, url: https://github.com/jesper/knuff\n", + "Judeqiu/testprj - id: 1558, url: https://github.com/Judeqiu/testprj\n", + "haberman/gazelle - id: 1559, url: https://github.com/haberman/gazelle\n", + "haberman/fast-recs-collate - id: 1561, url: https://github.com/haberman/fast-recs-collate\n", + "francois/family_budget - id: 1572, url: https://github.com/francois/family_budget\n", + "drnic/javascript-jquery-tmbundle - id: 1576, url: https://github.com/drnic/javascript-jquery-tmbundle\n", + "AndrewO/markable - id: 1584, url: https://github.com/AndrewO/markable\n", + "KirinDave/erlenmeyer - id: 1592, url: https://github.com/KirinDave/erlenmeyer\n", + "anaisbetts/yikes - id: 1598, url: https://github.com/anaisbetts/yikes\n", + "mojombo/erlenmeyer - id: 1602, url: https://github.com/mojombo/erlenmeyer\n", + "sudachen/python-tool-legacy - id: 1603, url: https://github.com/sudachen/python-tool-legacy\n", + "bousquet/tableau - id: 1611, url: https://github.com/bousquet/tableau\n", + "davemerwin/blue-channel - id: 1613, url: https://github.com/davemerwin/blue-channel\n", + "maborg/weshowthemoney-com - id: 1615, url: https://github.com/maborg/weshowthemoney-com\n", + "jdp/tarn - id: 1630, url: https://github.com/jdp/tarn\n", + "davemerwin/jquery - id: 1632, url: https://github.com/davemerwin/jquery\n", + "slim/bazdig - id: 1637, url: https://github.com/slim/bazdig\n", + "defunkt/github-gem - id: 1653, url: https://github.com/defunkt/github-gem\n", + "snoack/music-renamer - id: 1655, url: https://github.com/snoack/music-renamer\n", + "sverrejoh/emacs-torrent - id: 1670, url: https://github.com/sverrejoh/emacs-torrent\n", + "ask/roleplay - id: 1674, url: https://github.com/ask/roleplay\n", + "pjay/mediabumper - id: 1676, url: https://github.com/pjay/mediabumper\n", + "lvaruzza/cl-randist - id: 1686, url: https://github.com/lvaruzza/cl-randist\n", + "bloodearnest/thesis - id: 1695, url: https://github.com/bloodearnest/thesis\n", + "santry/db_console - id: 1699, url: https://github.com/santry/db_console\n", + "cobrien/merb-core - id: 1702, url: https://github.com/cobrien/merb-core\n", + "sunny/srename - id: 1710, url: https://github.com/sunny/srename\n", + "davemerwin/django-mptt - id: 1712, url: https://github.com/davemerwin/django-mptt\n", + "brad/mizar2cl - id: 1715, url: https://github.com/brad/mizar2cl\n", + "shillcock/lmkproject - id: 1716, url: https://github.com/shillcock/lmkproject\n", + "lmarlow/gemedit - id: 1721, url: https://github.com/lmarlow/gemedit\n", + "aasm/aasm - id: 1734, url: https://github.com/aasm/aasm\n", + "kangax/prototype-tmbundle - id: 1744, url: https://github.com/kangax/prototype-tmbundle\n", + "gerard/mortal-coil - id: 1745, url: https://github.com/gerard/mortal-coil\n", + "timcharper/fixture-scenarios - id: 1753, url: https://github.com/timcharper/fixture-scenarios\n", + "psi/mongrel_proctitle - id: 1754, url: https://github.com/psi/mongrel_proctitle\n", + "ebassi/json-glib - id: 1756, url: https://github.com/ebassi/json-glib\n", + "crafterm/piccr - id: 1758, url: https://github.com/crafterm/piccr\n", + "auser/sinatra - id: 1765, url: https://github.com/auser/sinatra\n", + "scrooloose/vimfiles - id: 1767, url: https://github.com/scrooloose/vimfiles\n", + "fightinjoe/fightinjoe-merb-blog - id: 1769, url: https://github.com/fightinjoe/fightinjoe-merb-blog\n", + "crafterm/capture - id: 1772, url: https://github.com/crafterm/capture\n", + "alltom/vocab - id: 1773, url: https://github.com/alltom/vocab\n", + "PhilGeek/raz - id: 1774, url: https://github.com/PhilGeek/raz\n", + "taf2/rpy - id: 1775, url: https://github.com/taf2/rpy\n", + "sotirac/action_mailer_tls - id: 1783, url: https://github.com/sotirac/action_mailer_tls\n", + "brenton/puppet - id: 1784, url: https://github.com/brenton/puppet\n", + "naryga/alm-familyfellowship-com - id: 1786, url: https://github.com/naryga/alm-familyfellowship-com\n", + "kevindamm/ir-toys - id: 1790, url: https://github.com/kevindamm/ir-toys\n", + "horndude77/open-scores - id: 1792, url: https://github.com/horndude77/open-scores\n", + "heycarsten/email-veracity - id: 1793, url: https://github.com/heycarsten/email-veracity\n", + "bryansray/tempo - id: 1795, url: https://github.com/bryansray/tempo\n", + "aggieben/weblocks - id: 1798, url: https://github.com/aggieben/weblocks\n", + "brucem/ezapprove2 - id: 1809, url: https://github.com/brucem/ezapprove2\n", + "mattetti/merb-plugins - id: 1817, url: https://github.com/mattetti/merb-plugins\n", + "myabc/merb_mart - id: 1821, url: https://github.com/myabc/merb_mart\n", + "quamen/enki - id: 1822, url: https://github.com/quamen/enki\n", + "toke/records-at-large - id: 1827, url: https://github.com/toke/records-at-large\n", + "xaviershay/enki-vim - id: 1829, url: https://github.com/xaviershay/enki-vim\n", + "meqif/tools - id: 1845, url: https://github.com/meqif/tools\n", + "aflatter/miter - id: 1848, url: https://github.com/aflatter/miter\n", + "rtomayko/hem - id: 1856, url: https://github.com/rtomayko/hem\n", + "RyanSpeaking/t-ch-y - id: 1857, url: https://github.com/RyanSpeaking/t-ch-y\n", + "ozamosi/ircious - id: 1858, url: https://github.com/ozamosi/ircious\n", + "Bjwebb/audenshaw-group-cms - id: 1863, url: https://github.com/Bjwebb/audenshaw-group-cms\n", + "amandasaurus/camarabuntu - id: 1864, url: https://github.com/amandasaurus/camarabuntu\n", + "rabble/icalico - id: 1865, url: https://github.com/rabble/icalico\n", + "sporkmonger/gentlerest - id: 1868, url: https://github.com/sporkmonger/gentlerest\n", + "nathansobo/treetop - id: 1874, url: https://github.com/nathansobo/treetop\n", + "shadoi/puppet - id: 1876, url: https://github.com/shadoi/puppet\n", + "cbowns/delicious-meal - id: 1877, url: https://github.com/cbowns/delicious-meal\n", + "danielmorrison/sxsw - id: 1883, url: https://github.com/danielmorrison/sxsw\n", + "yolfer/joe-solving-np-complete-problems - id: 1885, url: https://github.com/yolfer/joe-solving-np-complete-problems\n", + "eggie5/acts_as_exclusive - id: 1900, url: https://github.com/eggie5/acts_as_exclusive\n", + "kziv/daonut - id: 1902, url: https://github.com/kziv/daonut\n", + "dustin/java-memcached-client - id: 1904, url: https://github.com/dustin/java-memcached-client\n", + "tacvbo/yacleaner - id: 1906, url: https://github.com/tacvbo/yacleaner\n", + "seaofclouds/good-browser-bad-browser - id: 1916, url: https://github.com/seaofclouds/good-browser-bad-browser\n", + "pd/rspec_hpricot_matchers - id: 1922, url: https://github.com/pd/rspec_hpricot_matchers\n", + "dustin/buildwatch - id: 1928, url: https://github.com/dustin/buildwatch\n", + "chriseppstein/ruby-freebase - id: 1931, url: https://github.com/chriseppstein/ruby-freebase\n", + "dchelimsky/rspec - id: 1932, url: https://github.com/dchelimsky/rspec\n", + "dustin/ruby-freebase - id: 1933, url: https://github.com/dustin/ruby-freebase\n", + "joshuamckenty/contentpackmaker - id: 1937, url: https://github.com/joshuamckenty/contentpackmaker\n", + "halorgium/github-gem - id: 1940, url: https://github.com/halorgium/github-gem\n", + "tommorris/n3-tmbundle - id: 1942, url: https://github.com/tommorris/n3-tmbundle\n", + "halorgium/servitor - id: 1944, url: https://github.com/halorgium/servitor\n", + "osteele/functional-javascript - id: 1945, url: https://github.com/osteele/functional-javascript\n", + "osteele/sequentially - id: 1948, url: https://github.com/osteele/sequentially\n", + "osteele/pyfsa - id: 1949, url: https://github.com/osteele/pyfsa\n", + "osteele/fluently - id: 1950, url: https://github.com/osteele/fluently\n", + "mephistorb/mephisto - id: 1954, url: https://github.com/mephistorb/mephisto\n", + "francois/mephisto - id: 1955, url: https://github.com/francois/mephisto\n", + "nicksieger/stickshift - id: 1971, url: https://github.com/nicksieger/stickshift\n", + "dustin/photo - id: 1977, url: https://github.com/dustin/photo\n", + "scrooloose/chesticles - id: 1978, url: https://github.com/scrooloose/chesticles\n", + "nex3/jazz - id: 1980, url: https://github.com/nex3/jazz\n", + "ctrochalakis/django-threadedcomments - id: 1985, url: https://github.com/ctrochalakis/django-threadedcomments\n", + "crafterm/guitarzero - id: 1986, url: https://github.com/crafterm/guitarzero\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gnu-lorien/crapvine - id: 1991, url: https://github.com/gnu-lorien/crapvine\n", + "gnu-lorien/crack-attack - id: 1993, url: https://github.com/gnu-lorien/crack-attack\n", + "easytiger/mamafs_full - id: 1994, url: https://github.com/easytiger/mamafs_full\n", + "halorgium/chesticles - id: 1995, url: https://github.com/halorgium/chesticles\n", + "larssg/score-keeper - id: 1996, url: https://github.com/larssg/score-keeper\n", + "jnewland/resource_this - id: 1999, url: https://github.com/jnewland/resource_this\n", + "Imbrondir/majocontrol - id: 2009, url: https://github.com/Imbrondir/majocontrol\n", + "broughcut/picasync - id: 2012, url: https://github.com/broughcut/picasync\n", + "bjc/mysqlerl - id: 2014, url: https://github.com/bjc/mysqlerl\n", + "beastaugh/tarski-utilities - id: 2015, url: https://github.com/beastaugh/tarski-utilities\n", + "jruby/warbler - id: 2019, url: https://github.com/jruby/warbler\n", + "dennis/msync - id: 2026, url: https://github.com/dennis/msync\n", + "calumr/flurry - id: 2028, url: https://github.com/calumr/flurry\n", + "MighMoS/pa2 - id: 2047, url: https://github.com/MighMoS/pa2\n", + "ci-reporter/ci_reporter - id: 2048, url: https://github.com/ci-reporter/ci_reporter\n", + "nicksieger/jrexml - id: 2050, url: https://github.com/nicksieger/jrexml\n", + "rictic/test-parser - id: 2051, url: https://github.com/rictic/test-parser\n", + "pingswept/pysolar - id: 2058, url: https://github.com/pingswept/pysolar\n", + "r38y/ck_fu - id: 2067, url: https://github.com/r38y/ck_fu\n", + "dennis/bzlauncher - id: 2071, url: https://github.com/dennis/bzlauncher\n", + "thelema/coml - id: 2072, url: https://github.com/thelema/coml\n", + "vito/uploader - id: 2075, url: https://github.com/vito/uploader\n", + "heimidal/merb-plugins - id: 2081, url: https://github.com/heimidal/merb-plugins\n", + "caged/gitnub - id: 2090, url: https://github.com/caged/gitnub\n", + "ayman/fireeagle-javascript-lib - id: 2093, url: https://github.com/ayman/fireeagle-javascript-lib\n", + "halorgium/merb-more - id: 2094, url: https://github.com/halorgium/merb-more\n", + "halorgium/merb-plugins - id: 2095, url: https://github.com/halorgium/merb-plugins\n", + "code-later/nostromo - id: 2103, url: https://github.com/code-later/nostromo\n", + "ctrochalakis/django-markuputils - id: 2105, url: https://github.com/ctrochalakis/django-markuputils\n", + "fastman/biblioteka - id: 2110, url: https://github.com/fastman/biblioteka\n", + "seangeo/ratom - id: 2113, url: https://github.com/seangeo/ratom\n", + "broughcut/gdocsync - id: 2133, url: https://github.com/broughcut/gdocsync\n", + "ELLIOTTCABLE/ruby-svg - id: 2145, url: https://github.com/ELLIOTTCABLE/ruby-svg\n", + "easytiger/jquoteticker - id: 2147, url: https://github.com/easytiger/jquoteticker\n", + "brynary/webrat - id: 2150, url: https://github.com/brynary/webrat\n", + "joshsusser/migration_concordance - id: 2154, url: https://github.com/joshsusser/migration_concordance\n", + "brynary/rspec - id: 2161, url: https://github.com/brynary/rspec\n", + "dchelimsky/webrat - id: 2172, url: https://github.com/dchelimsky/webrat\n", + "peimei/has_many_tenses - id: 2173, url: https://github.com/peimei/has_many_tenses\n", + "joshknowles/db-populate - id: 2181, url: https://github.com/joshknowles/db-populate\n", + "joshknowles/rspec-on-rails-matchers - id: 2184, url: https://github.com/joshknowles/rspec-on-rails-matchers\n", + "robbyrussell/active_delegate - id: 2196, url: https://github.com/robbyrussell/active_delegate\n", + "ozamosi/tomboy-blogposter - id: 2203, url: https://github.com/ozamosi/tomboy-blogposter\n", + "daaku/tempdir - id: 2209, url: https://github.com/daaku/tempdir\n", + "kamal/webrat - id: 2217, url: https://github.com/kamal/webrat\n", + "mvanholstyn/strac - id: 2218, url: https://github.com/mvanholstyn/strac\n", + "nickb/yahtzee - id: 2230, url: https://github.com/nickb/yahtzee\n", + "scrooloose/yahtzee - id: 2233, url: https://github.com/scrooloose/yahtzee\n", + "bisho/wsdl-gen-for-php - id: 2241, url: https://github.com/bisho/wsdl-gen-for-php\n", + "metavida/castanaut - id: 2253, url: https://github.com/metavida/castanaut\n", + "stan/how-to - id: 2262, url: https://github.com/stan/how-to\n", + "cypher/utilitybelt - id: 2263, url: https://github.com/cypher/utilitybelt\n", + "ruphy/oxy-cursors - id: 2268, url: https://github.com/ruphy/oxy-cursors\n", + "rubyisbeautiful/merb-core - id: 2274, url: https://github.com/rubyisbeautiful/merb-core\n", + "ryanbriones/fluid-twitter - id: 2279, url: https://github.com/ryanbriones/fluid-twitter\n", + "alltom/calltom - id: 2288, url: https://github.com/alltom/calltom\n", + "timcharper/git-tmbundle - id: 2296, url: https://github.com/timcharper/git-tmbundle\n", + "kassoulet/dose2 - id: 2309, url: https://github.com/kassoulet/dose2\n", + "teamtux/sgh - id: 2310, url: https://github.com/teamtux/sgh\n", + "redmar/merb-more - id: 2311, url: https://github.com/redmar/merb-more\n", + "redmar/merb-plugins - id: 2312, url: https://github.com/redmar/merb-plugins\n", + "ELLIOTTCABLE/System - id: 2316, url: https://github.com/ELLIOTTCABLE/System\n", + "clee/mobilepushr - id: 2337, url: https://github.com/clee/mobilepushr\n", + "technoweenie/mephisto - id: 2341, url: https://github.com/technoweenie/mephisto\n", + "bruce/keyword_search - id: 2343, url: https://github.com/bruce/keyword_search\n", + "nicksieger/attachment_fu - id: 2358, url: https://github.com/nicksieger/attachment_fu\n", + "robbyrussell/textilizefu - id: 2364, url: https://github.com/robbyrussell/textilizefu\n", + "halorgium/capistrano - id: 2367, url: https://github.com/halorgium/capistrano\n", + "technoweenie/masochism - id: 2370, url: https://github.com/technoweenie/masochism\n", + "rtomayko/adoc-themes - id: 2372, url: https://github.com/rtomayko/adoc-themes\n", + "robbyrussell/masochism - id: 2373, url: https://github.com/robbyrussell/masochism\n", + "technoweenie/active_record_context - id: 2374, url: https://github.com/technoweenie/active_record_context\n", + "ActsAsParanoid/acts_as_paranoid - id: 2376, url: https://github.com/ActsAsParanoid/acts_as_paranoid\n", + "technoweenie/acts_as_versioned - id: 2377, url: https://github.com/technoweenie/acts_as_versioned\n", + "technoweenie/permalink_fu - id: 2378, url: https://github.com/technoweenie/permalink_fu\n", + "technoweenie/model_stubbing - id: 2379, url: https://github.com/technoweenie/model_stubbing\n", + "technoweenie/relative_time_helpers - id: 2380, url: https://github.com/technoweenie/relative_time_helpers\n", + "technoweenie/viking - id: 2381, url: https://github.com/technoweenie/viking\n", + "matthewd/ruby-mozjs - id: 2388, url: https://github.com/matthewd/ruby-mozjs\n", + "quicklywilliam/multiclutch - id: 2389, url: https://github.com/quicklywilliam/multiclutch\n", + "quicklywilliam/task-view - id: 2394, url: https://github.com/quicklywilliam/task-view\n", + "quicklywilliam/meditation-timer - id: 2395, url: https://github.com/quicklywilliam/meditation-timer\n", + "ianloic/git-wiki - id: 2399, url: https://github.com/ianloic/git-wiki\n", + "yuri/sputnik - id: 2401, url: https://github.com/yuri/sputnik\n", + "psq/mephisto-haml-templates-plugin - id: 2402, url: https://github.com/psq/mephisto-haml-templates-plugin\n", + "sgala/gajim - id: 2403, url: https://github.com/sgala/gajim\n", + "kerryb/jquery_spike - id: 2426, url: https://github.com/kerryb/jquery_spike\n", + "peimei/actsassubscribeable - id: 2428, url: https://github.com/peimei/actsassubscribeable\n", + "Wobin/xparky - id: 2433, url: https://github.com/Wobin/xparky\n", + "ebassi/talk - id: 2434, url: https://github.com/ebassi/talk\n", + "abbra/samba3-howto-russian - id: 2435, url: https://github.com/abbra/samba3-howto-russian\n", + "zapnap/database_form - id: 2441, url: https://github.com/zapnap/database_form\n", + "sunny/daylist - id: 2443, url: https://github.com/sunny/daylist\n", + "patmaddox/instance_validations - id: 2445, url: https://github.com/patmaddox/instance_validations\n", + "ruphy/tagua - id: 2446, url: https://github.com/ruphy/tagua\n", + "patmaddox/no-peeping-toms - id: 2447, url: https://github.com/patmaddox/no-peeping-toms\n", + "patmaddox/rspec-plugin-generator - id: 2449, url: https://github.com/patmaddox/rspec-plugin-generator\n", + "adelcambre/masochism - id: 2454, url: https://github.com/adelcambre/masochism\n", + "tnt4brain/samba3-howto-russian - id: 2460, url: https://github.com/tnt4brain/samba3-howto-russian\n", + "yolk/miter - id: 2473, url: https://github.com/yolk/miter\n", + "booleanman/rackinterfacefilter - id: 2478, url: https://github.com/booleanman/rackinterfacefilter\n", + "bfolkens/hostipfox-firefox-plugin - id: 2486, url: https://github.com/bfolkens/hostipfox-firefox-plugin\n", + "simonpk/j2me-oauth - id: 2490, url: https://github.com/simonpk/j2me-oauth\n", + "JackDanger/immutable_attributes - id: 2497, url: https://github.com/JackDanger/immutable_attributes\n", + "JackDanger/permanent_records - id: 2498, url: https://github.com/JackDanger/permanent_records\n", + "JackDanger/sweet_assets - id: 2502, url: https://github.com/JackDanger/sweet_assets\n", + "JackDanger/simple_pages - id: 2503, url: https://github.com/JackDanger/simple_pages\n", + "JackDanger/cached_values - id: 2504, url: https://github.com/JackDanger/cached_values\n", + "Fudge/gltrail - id: 2506, url: https://github.com/Fudge/gltrail\n", + "melo/torresmos-tv - id: 2507, url: https://github.com/melo/torresmos-tv\n", + "virtuoso/koowaldah - id: 2508, url: https://github.com/virtuoso/koowaldah\n", + "jeremyf/rspec_on_rails_nested_scaffold - id: 2513, url: https://github.com/jeremyf/rspec_on_rails_nested_scaffold\n", + "mza/mofo - id: 2517, url: https://github.com/mza/mofo\n", + "SteveMarshall/fire-eagle-python-binding - id: 2518, url: https://github.com/SteveMarshall/fire-eagle-python-binding\n", + "mully/redmine_ticket_emailer - id: 2521, url: https://github.com/mully/redmine_ticket_emailer\n", + "eventualbuddha/sake-git - id: 2527, url: https://github.com/eventualbuddha/sake-git\n", + "simonpk/fireeagle-updater-midlet - id: 2531, url: https://github.com/simonpk/fireeagle-updater-midlet\n", + "redondos/random-scripts - id: 2537, url: https://github.com/redondos/random-scripts\n", + "mlandauer/earth - id: 2538, url: https://github.com/mlandauer/earth\n", + "drnic/rubigen - id: 2543, url: https://github.com/drnic/rubigen\n", + "davemerwin/satchmo - id: 2546, url: https://github.com/davemerwin/satchmo\n", + "drnic/newgem - id: 2547, url: https://github.com/drnic/newgem\n", + "composite-primary-keys/composite_primary_keys - id: 2548, url: https://github.com/composite-primary-keys/composite_primary_keys\n", + "mlarocque/rails-template - id: 2554, url: https://github.com/mlarocque/rails-template\n", + "jnewland/boolean_web_service - id: 2563, url: https://github.com/jnewland/boolean_web_service\n", + "zdennis/rspec - id: 2566, url: https://github.com/zdennis/rspec\n", + "pcapriotti/github-trac - id: 2569, url: https://github.com/pcapriotti/github-trac\n", + "krobertson/tidbits - id: 2571, url: https://github.com/krobertson/tidbits\n", + "AndrewO/rubycas-client - id: 2579, url: https://github.com/AndrewO/rubycas-client\n", + "mattetti/globalite - id: 2582, url: https://github.com/mattetti/globalite\n", + "mattetti/mimetype-fu - id: 2585, url: https://github.com/mattetti/mimetype-fu\n", + "mattetti/ar-backup - id: 2588, url: https://github.com/mattetti/ar-backup\n", + "avh4/time-tracker-for-mac - id: 2595, url: https://github.com/avh4/time-tracker-for-mac\n", + "fightinjoe/merb-more - id: 2596, url: https://github.com/fightinjoe/merb-more\n", + "fightinjoe/merb-plugins - id: 2597, url: https://github.com/fightinjoe/merb-plugins\n", + "Sigurd/strokedb - id: 2617, url: https://github.com/Sigurd/strokedb\n", + "ruphy/plasma-physics-animator - id: 2618, url: https://github.com/ruphy/plasma-physics-animator\n", + "spejman/rails-generator-generator - id: 2627, url: https://github.com/spejman/rails-generator-generator\n", + "gregwebs/jquery-tablelib - id: 2639, url: https://github.com/gregwebs/jquery-tablelib\n", + "gregwebs/jquery-uitableedit - id: 2641, url: https://github.com/gregwebs/jquery-uitableedit\n", + "code-lts/jquery-uitablefilter - id: 2642, url: https://github.com/code-lts/jquery-uitablefilter\n", + "jasherai/xss_terminate - id: 2643, url: https://github.com/jasherai/xss_terminate\n", + "jasherai/git-rails - id: 2644, url: https://github.com/jasherai/git-rails\n", + "pcapriotti/skema - id: 2645, url: https://github.com/pcapriotti/skema\n", + "ruphy/skema - id: 2657, url: https://github.com/ruphy/skema\n", + "cannikin/dovetail - id: 2659, url: https://github.com/cannikin/dovetail\n", + "h-lame/vanilla-rb - id: 2660, url: https://github.com/h-lame/vanilla-rb\n", + "h-lame/soup - id: 2661, url: https://github.com/h-lame/soup\n", + "agrover/winamp-midi-control - id: 2665, url: https://github.com/agrover/winamp-midi-control\n", + "programming-nu/nu - id: 2667, url: https://github.com/programming-nu/nu\n", + "infil00p/dogonrails - id: 2668, url: https://github.com/infil00p/dogonrails\n", + "dwillis/fumblerooski - id: 2669, url: https://github.com/dwillis/fumblerooski\n", + "zeke/firefox-history-analyzer - id: 2671, url: https://github.com/zeke/firefox-history-analyzer\n", + "methodmissing/cache_fu - id: 2676, url: https://github.com/methodmissing/cache_fu\n", + "MighMoS/freetrail - id: 2678, url: https://github.com/MighMoS/freetrail\n", + "jwarchol/arfbot - id: 2686, url: https://github.com/jwarchol/arfbot\n", + "jonner/agave2 - id: 2688, url: https://github.com/jonner/agave2\n", + "tobi/locking - id: 2699, url: https://github.com/tobi/locking\n", + "codahale/hadoop-streaming - id: 2707, url: https://github.com/codahale/hadoop-streaming\n", + "stesla/lambda - id: 2710, url: https://github.com/stesla/lambda\n", + "stesla/ocamlobjs - id: 2712, url: https://github.com/stesla/ocamlobjs\n", + "sbecker/asset_packager - id: 2720, url: https://github.com/sbecker/asset_packager\n", + "hoverbird/viddlerruby - id: 2723, url: https://github.com/hoverbird/viddlerruby\n", + "minimagick/minimagick - id: 2727, url: https://github.com/minimagick/minimagick\n", + "myelin/fireeagle-php-lib - id: 2728, url: https://github.com/myelin/fireeagle-php-lib\n", + "jrun/rstack - id: 2735, url: https://github.com/jrun/rstack\n", + "angelo0000/has_many_tenses - id: 2740, url: https://github.com/angelo0000/has_many_tenses\n", + "kjell/flick-fleck - id: 2746, url: https://github.com/kjell/flick-fleck\n", + "kemayo/maphilight - id: 2747, url: https://github.com/kemayo/maphilight\n", + "eggie5/mimetype-fu - id: 2748, url: https://github.com/eggie5/mimetype-fu\n", + "schacon/git-wiki - id: 2754, url: https://github.com/schacon/git-wiki\n", + "disnet/webvo - id: 2758, url: https://github.com/disnet/webvo\n", + "JackDanger/object_proxy - id: 2759, url: https://github.com/JackDanger/object_proxy\n", + "psq/waves_rspec - id: 2769, url: https://github.com/psq/waves_rspec\n", + "halorgium/grit - id: 2774, url: https://github.com/halorgium/grit\n", + "be9/brake - id: 2779, url: https://github.com/be9/brake\n", + "andykent/polypage - id: 2782, url: https://github.com/andykent/polypage\n", + "shingara/ar-backup - id: 2791, url: https://github.com/shingara/ar-backup\n", + "ericgoodwin/gitty-migrations - id: 2816, url: https://github.com/ericgoodwin/gitty-migrations\n", + "shingara/whotowho - id: 2824, url: https://github.com/shingara/whotowho\n", + "JJ/tutorial - id: 2826, url: https://github.com/JJ/tutorial\n", + "broughcut/acts_as_line - id: 2830, url: https://github.com/broughcut/acts_as_line\n", + "jamiew/white-glove-tracking - id: 2831, url: https://github.com/jamiew/white-glove-tracking\n", + "scharfie/gabby - id: 2837, url: https://github.com/scharfie/gabby\n", + "jamiew/rolldabeats-lookup - id: 2838, url: https://github.com/jamiew/rolldabeats-lookup\n", + "jamiew/filemark-maker - id: 2839, url: https://github.com/jamiew/filemark-maker\n", + "efrendiaz/helloworld - id: 2841, url: https://github.com/efrendiaz/helloworld\n", + "jonmagic/optik - id: 2852, url: https://github.com/jonmagic/optik\n", + "jonmagic/sixsigmaforms - id: 2856, url: https://github.com/jonmagic/sixsigmaforms\n", + "robertknight/konsole - id: 2860, url: https://github.com/robertknight/konsole\n", + "thelema/ocaml-community - id: 2863, url: https://github.com/thelema/ocaml-community\n", + "alex/django-plugins - id: 2864, url: https://github.com/alex/django-plugins\n", + "halorgium/ruby-git - id: 2881, url: https://github.com/halorgium/ruby-git\n", + "mattetti/sdruby-raffle - id: 2895, url: https://github.com/mattetti/sdruby-raffle\n", + "banderson623/javascridialog - id: 2899, url: https://github.com/banderson623/javascridialog\n", + "lilyball/decafbland-limechat - id: 2902, url: https://github.com/lilyball/decafbland-limechat\n", + "swsnider/portfolio - id: 2905, url: https://github.com/swsnider/portfolio\n", + "robhudson/django-ignite - id: 2907, url: https://github.com/robhudson/django-ignite\n", + "nakajima/aintablog - id: 2913, url: https://github.com/nakajima/aintablog\n", + "chuyeow/can_has_cached - id: 2920, url: https://github.com/chuyeow/can_has_cached\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arunthampi/can_has_cached - id: 2921, url: https://github.com/arunthampi/can_has_cached\n", + "moustaki/flatscrap - id: 2922, url: https://github.com/moustaki/flatscrap\n", + "reinh/merb-vs-rails - id: 2941, url: https://github.com/reinh/merb-vs-rails\n", + "mattetti/acts_as_taggable_on_steroids - id: 2954, url: https://github.com/mattetti/acts_as_taggable_on_steroids\n", + "dc25/test1 - id: 2957, url: https://github.com/dc25/test1\n", + "michaelklishin/storygen - id: 2965, url: https://github.com/michaelklishin/storygen\n", + "jasondew/learnstat - id: 2983, url: https://github.com/jasondew/learnstat\n", + "joshsusser/range_set - id: 2984, url: https://github.com/joshsusser/range_set\n", + "mja/aviary - id: 2985, url: https://github.com/mja/aviary\n", + "knzconnor/range_set - id: 2991, url: https://github.com/knzconnor/range_set\n", + "galaxycats/nostromo - id: 2995, url: https://github.com/galaxycats/nostromo\n", + "mojombo/erlectricity - id: 3010, url: https://github.com/mojombo/erlectricity\n", + "ntalbott/cooloptions - id: 3013, url: https://github.com/ntalbott/cooloptions\n", + "ntalbott/query_trace - id: 3014, url: https://github.com/ntalbott/query_trace\n", + "ntalbott/active_model - id: 3015, url: https://github.com/ntalbott/active_model\n", + "gregwebs/methodchain - id: 3018, url: https://github.com/gregwebs/methodchain\n", + "drnic/datamapper-tmbundle - id: 3019, url: https://github.com/drnic/datamapper-tmbundle\n", + "adamwiggins/rest-client - id: 3022, url: https://github.com/adamwiggins/rest-client\n", + "danimal/git-chdiff-scripts - id: 3023, url: https://github.com/danimal/git-chdiff-scripts\n", + "davemerwin/codereviewr - id: 3027, url: https://github.com/davemerwin/codereviewr\n", + "aiwilliams/scenarios - id: 3029, url: https://github.com/aiwilliams/scenarios\n", + "brad/codereviewr - id: 3030, url: https://github.com/brad/codereviewr\n", + "aiwilliams/plugit - id: 3031, url: https://github.com/aiwilliams/plugit\n", + "mackstann/whimsy - id: 3032, url: https://github.com/mackstann/whimsy\n", + "na/codereviewr - id: 3033, url: https://github.com/na/codereviewr\n", + "pius/tamarind - id: 3035, url: https://github.com/pius/tamarind\n", + "mattetti/gitnub - id: 3037, url: https://github.com/mattetti/gitnub\n", + "drnic/merb-tmbundle - id: 3040, url: https://github.com/drnic/merb-tmbundle\n", + "danderson/pywebgen - id: 3043, url: https://github.com/danderson/pywebgen\n", + "nex3/perspective-el - id: 3045, url: https://github.com/nex3/perspective-el\n", + "morgs/poll-builder - id: 3046, url: https://github.com/morgs/poll-builder\n", + "laurio/dot-emacs - id: 3047, url: https://github.com/laurio/dot-emacs\n", + "bricooke/assistance - id: 3052, url: https://github.com/bricooke/assistance\n", + "mmower/godo - id: 3054, url: https://github.com/mmower/godo\n", + "scvalex/dissemina - id: 3055, url: https://github.com/scvalex/dissemina\n", + "timothykim/dpss - id: 3058, url: https://github.com/timothykim/dpss\n", + "timburks/nuyaml - id: 3065, url: https://github.com/timburks/nuyaml\n", + "myabc/merb_global - id: 3066, url: https://github.com/myabc/merb_global\n", + "timburks/nupagepacker - id: 3069, url: https://github.com/timburks/nupagepacker\n", + "oliver/tangoclawsextended - id: 3083, url: https://github.com/oliver/tangoclawsextended\n", + "timburks/numarkdown - id: 3085, url: https://github.com/timburks/numarkdown\n", + "timburks/Nunja - id: 3090, url: https://github.com/timburks/Nunja\n", + "anildigital/digitalcodes-org - id: 3092, url: https://github.com/anildigital/digitalcodes-org\n", + "infil00p/wifidog---freethenet-client - id: 3093, url: https://github.com/infil00p/wifidog---freethenet-client\n", + "rbriski/python-adwords-api - id: 3095, url: https://github.com/rbriski/python-adwords-api\n", + "jnicklas/merb-plugins - id: 3103, url: https://github.com/jnicklas/merb-plugins\n", + "bricooke/sequel_mailer - id: 3120, url: https://github.com/bricooke/sequel_mailer\n", + "gregwebs/module-import - id: 3131, url: https://github.com/gregwebs/module-import\n", + "mchung/mchung-code - id: 3136, url: https://github.com/mchung/mchung-code\n", + "mralex/analog - id: 3141, url: https://github.com/mralex/analog\n", + "timburks/nufound - id: 3146, url: https://github.com/timburks/nufound\n", + "schacon/git-ruby - id: 3150, url: https://github.com/schacon/git-ruby\n", + "mtodd/aurora - id: 3153, url: https://github.com/mtodd/aurora\n", + "dagbrown/livejournaller - id: 3154, url: https://github.com/dagbrown/livejournaller\n", + "nathansobo/screw-unit - id: 3156, url: https://github.com/nathansobo/screw-unit\n", + "nkallen/arel - id: 3160, url: https://github.com/nkallen/arel\n", + "matthiask/swisdk2 - id: 3165, url: https://github.com/matthiask/swisdk2\n", + "mja/blanket - id: 3176, url: https://github.com/mja/blanket\n", + "ralsina/russian-gallery - id: 3177, url: https://github.com/ralsina/russian-gallery\n", + "febuiles/shipping_calc - id: 3179, url: https://github.com/febuiles/shipping_calc\n", + "melo/alterego - id: 3187, url: https://github.com/melo/alterego\n", + "lilyball/typo-wordpress - id: 3202, url: https://github.com/lilyball/typo-wordpress\n", + "mig/gedit-themes - id: 3206, url: https://github.com/mig/gedit-themes\n", + "lilyball/textmate-bundles - id: 3211, url: https://github.com/lilyball/textmate-bundles\n", + "cdb/socialactions-mashup-rssa-crawler-and-api - id: 3212, url: https://github.com/cdb/socialactions-mashup-rssa-crawler-and-api\n", + "hb/claws_mail_opensync_plugin - id: 3216, url: https://github.com/hb/claws_mail_opensync_plugin\n", + "hb/claws-mail-sync - id: 3217, url: https://github.com/hb/claws-mail-sync\n", + "github/media - id: 3222, url: https://github.com/github/media\n", + "kevinclark/ruby-kqueue - id: 3243, url: https://github.com/kevinclark/ruby-kqueue\n", + "maddox/cbs_sports - id: 3251, url: https://github.com/maddox/cbs_sports\n", + "ndarilek/rb-gps - id: 3257, url: https://github.com/ndarilek/rb-gps\n", + "bruno/openaustralia-parser - id: 3264, url: https://github.com/bruno/openaustralia-parser\n", + "bruno/openaustralia-app - id: 3266, url: https://github.com/bruno/openaustralia-app\n", + "dagbrown/flooterbuck - id: 3272, url: https://github.com/dagbrown/flooterbuck\n", + "gabriel/capitate - id: 3273, url: https://github.com/gabriel/capitate\n", + "preservim/nerdtree - id: 3282, url: https://github.com/preservim/nerdtree\n", + "mattetti/merb-tmbundle - id: 3285, url: https://github.com/mattetti/merb-tmbundle\n", + "preservim/nerdcommenter - id: 3287, url: https://github.com/preservim/nerdcommenter\n", + "anotherjesse/the-doctor - id: 3291, url: https://github.com/anotherjesse/the-doctor\n", + "halorgium/inline_executor - id: 3296, url: https://github.com/halorgium/inline_executor\n", + "aurelian/beast--contenteditor - id: 3297, url: https://github.com/aurelian/beast--contenteditor\n", + "spree/spree - id: 3314, url: https://github.com/spree/spree\n", + "Ramarren/cl-geometry - id: 3341, url: https://github.com/Ramarren/cl-geometry\n", + "scharfie/gnat - id: 3346, url: https://github.com/scharfie/gnat\n", + "tomtt/emacs-rails - id: 3349, url: https://github.com/tomtt/emacs-rails\n", + "fabien/merb-core - id: 3356, url: https://github.com/fabien/merb-core\n", + "fabien/merb-more - id: 3357, url: https://github.com/fabien/merb-more\n", + "fabien/merb-plugins - id: 3358, url: https://github.com/fabien/merb-plugins\n", + "Ramarren/cl-symbolic-math - id: 3360, url: https://github.com/Ramarren/cl-symbolic-math\n", + "JJ/wiki2fb2 - id: 3362, url: https://github.com/JJ/wiki2fb2\n", + "bakineggs/cars - id: 3367, url: https://github.com/bakineggs/cars\n", + "AndrewO/page_attachments - id: 3370, url: https://github.com/AndrewO/page_attachments\n", + "patrickt/nuki - id: 3377, url: https://github.com/patrickt/nuki\n", + "drw/redo-py - id: 3378, url: https://github.com/drw/redo-py\n", + "lmarlow/godo - id: 3385, url: https://github.com/lmarlow/godo\n", + "dfischer/rspec-haml-scaffold-generator - id: 3389, url: https://github.com/dfischer/rspec-haml-scaffold-generator\n", + "twobit/twobit.github.com - id: 3394, url: https://github.com/twobit/twobit.github.com\n", + "booss/merb-profile - id: 3402, url: https://github.com/booss/merb-profile\n", + "radar/rboard - id: 3403, url: https://github.com/radar/rboard\n", + "jaehess/powncer - id: 3407, url: https://github.com/jaehess/powncer\n", + "kamal/fireeagle - id: 3416, url: https://github.com/kamal/fireeagle\n", + "francois/viking - id: 3419, url: https://github.com/francois/viking\n", + "freels/radiant-extensions - id: 3426, url: https://github.com/freels/radiant-extensions\n", + "benschwarz/flickr-rest - id: 3439, url: https://github.com/benschwarz/flickr-rest\n", + "pontus/imapfilter - id: 3442, url: https://github.com/pontus/imapfilter\n", + "DrMark/ultrasphinx - id: 3444, url: https://github.com/DrMark/ultrasphinx\n", + "Geert/idscms - id: 3448, url: https://github.com/Geert/idscms\n", + "martinstannard/iridetowork - id: 3455, url: https://github.com/martinstannard/iridetowork\n", + "sudara/alonetone - id: 3456, url: https://github.com/sudara/alonetone\n", + "vickeryj/annotate_models - id: 3467, url: https://github.com/vickeryj/annotate_models\n", + "fabien/attachmerb_fu - id: 3468, url: https://github.com/fabien/attachmerb_fu\n", + "francois/attachment_fu - id: 3470, url: https://github.com/francois/attachment_fu\n", + "herzi/rev-browser - id: 3477, url: https://github.com/herzi/rev-browser\n", + "buggedcom/pluginobject - id: 3482, url: https://github.com/buggedcom/pluginobject\n", + "prepor/dozorchat - id: 3495, url: https://github.com/prepor/dozorchat\n", + "mterenzio/gangbuster - id: 3497, url: https://github.com/mterenzio/gangbuster\n", + "patrickt/nuyaml - id: 3506, url: https://github.com/patrickt/nuyaml\n", + "matschaffer/mechaflickr - id: 3510, url: https://github.com/matschaffer/mechaflickr\n", + "mleung/feather - id: 3511, url: https://github.com/mleung/feather\n", + "mattetti/swx-ruby - id: 3513, url: https://github.com/mattetti/swx-ruby\n", + "lukemelia/facebox - id: 3519, url: https://github.com/lukemelia/facebox\n", + "tene/gil - id: 3523, url: https://github.com/tene/gil\n", + "JackDanger/alphadecimal - id: 3527, url: https://github.com/JackDanger/alphadecimal\n", + "patrickt/nugit - id: 3539, url: https://github.com/patrickt/nugit\n", + "topfunky/gruff - id: 3542, url: https://github.com/topfunky/gruff\n", + "topfunky/sparklines - id: 3544, url: https://github.com/topfunky/sparklines\n", + "gicmo/gvfs-dav-mount - id: 3546, url: https://github.com/gicmo/gvfs-dav-mount\n", + "nutrun/synthesis - id: 3555, url: https://github.com/nutrun/synthesis\n", + "wesabe/puppet-apache2 - id: 3559, url: https://github.com/wesabe/puppet-apache2\n", + "dagbrown/gurgitate-mail - id: 3561, url: https://github.com/dagbrown/gurgitate-mail\n", + "usergenic/entrails - id: 3563, url: https://github.com/usergenic/entrails\n", + "dfischer/sexy_scaffold - id: 3565, url: https://github.com/dfischer/sexy_scaffold\n", + "dandorman/lang - id: 3574, url: https://github.com/dandorman/lang\n", + "dandorman/pegs - id: 3577, url: https://github.com/dandorman/pegs\n", + "kad3nce/swxruby - id: 3579, url: https://github.com/kad3nce/swxruby\n", + "rgrove/thoth - id: 3586, url: https://github.com/rgrove/thoth\n", + "mackstann/sqlite-constraint-msg - id: 3587, url: https://github.com/mackstann/sqlite-constraint-msg\n", + "defunkt/gibberish - id: 3588, url: https://github.com/defunkt/gibberish\n", + "lukemelia/webrat - id: 3589, url: https://github.com/lukemelia/webrat\n", + "defunkt/cheat - id: 3591, url: https://github.com/defunkt/cheat\n", + "defunkt/sake - id: 3592, url: https://github.com/defunkt/sake\n", + "defunkt/nginx_config_generator - id: 3593, url: https://github.com/defunkt/nginx_config_generator\n", + "defunkt/acts_as_textiled - id: 3594, url: https://github.com/defunkt/acts_as_textiled\n", + "defunkt/fixture_scenarios_builder - id: 3596, url: https://github.com/defunkt/fixture_scenarios_builder\n", + "dagbrown/percolate-mail - id: 3603, url: https://github.com/dagbrown/percolate-mail\n", + "jackdempsey/acts_as_commentable - id: 3605, url: https://github.com/jackdempsey/acts_as_commentable\n", + "singingfish/flooterbuck - id: 3606, url: https://github.com/singingfish/flooterbuck\n", + "scrooloose/sokoban - id: 3608, url: https://github.com/scrooloose/sokoban\n", + "vanpelt/merb_paginate - id: 3610, url: https://github.com/vanpelt/merb_paginate\n", + "georgepalmer/merb_paginate - id: 3611, url: https://github.com/georgepalmer/merb_paginate\n", + "melo/notification-watcher - id: 3618, url: https://github.com/melo/notification-watcher\n", + "benschwarz/open-uri-memcached - id: 3622, url: https://github.com/benschwarz/open-uri-memcached\n", + "harrisj/qrencoder - id: 3630, url: https://github.com/harrisj/qrencoder\n", + "harrisj/amazon-sdb - id: 3638, url: https://github.com/harrisj/amazon-sdb\n", + "filipe-zz/cashnuts - id: 3640, url: https://github.com/filipe-zz/cashnuts\n", + "sunny/wubmail - id: 3651, url: https://github.com/sunny/wubmail\n", + "dxoigmn/baffle - id: 3652, url: https://github.com/dxoigmn/baffle\n", + "francois/piston - id: 3653, url: https://github.com/francois/piston\n", + "sethwalker/greenchange - id: 3654, url: https://github.com/sethwalker/greenchange\n", + "cpjolicoeur/feedcache - id: 3655, url: https://github.com/cpjolicoeur/feedcache\n", + "eklitzke/mehfil-scraper - id: 3656, url: https://github.com/eklitzke/mehfil-scraper\n", + "vargthon/alfarrubyo - id: 3670, url: https://github.com/vargthon/alfarrubyo\n", + "jm/rails-wiki - id: 3674, url: https://github.com/jm/rails-wiki\n", + "mattetti/swxruby - id: 3678, url: https://github.com/mattetti/swxruby\n", + "taf2/sick - id: 3681, url: https://github.com/taf2/sick\n", + "soylentfoo/atlrug-demo - id: 3683, url: https://github.com/soylentfoo/atlrug-demo\n", + "sco/fakebook - id: 3684, url: https://github.com/sco/fakebook\n", + "osteele/lztestkit - id: 3687, url: https://github.com/osteele/lztestkit\n", + "dustin/gitnub - id: 3691, url: https://github.com/dustin/gitnub\n", + "vanpelt/merb-plugins - id: 3696, url: https://github.com/vanpelt/merb-plugins\n", + "percyperez/codereviewr - id: 3697, url: https://github.com/percyperez/codereviewr\n", + "mully/redmine_google_calendar - id: 3705, url: https://github.com/mully/redmine_google_calendar\n", + "TekNoLogic/GreedBeacon - id: 3707, url: https://github.com/TekNoLogic/GreedBeacon\n", + "al3x/whereisbritt - id: 3718, url: https://github.com/al3x/whereisbritt\n", + "mjc/isxwowui - id: 3732, url: https://github.com/mjc/isxwowui\n", + "khigia/ocaml-fuzlog - id: 3741, url: https://github.com/khigia/ocaml-fuzlog\n", + "halorgium/steer - id: 3743, url: https://github.com/halorgium/steer\n", + "wayneeseguin/vanhelsing - id: 3748, url: https://github.com/wayneeseguin/vanhelsing\n", + "KirinDave/nu - id: 3749, url: https://github.com/KirinDave/nu\n", + "benschwarz/flickr-wrapper - id: 3750, url: https://github.com/benschwarz/flickr-wrapper\n", + "cjmartin/pvarchive - id: 3751, url: https://github.com/cjmartin/pvarchive\n", + "Grayson/nusmartypants - id: 3764, url: https://github.com/Grayson/nusmartypants\n", + "rwanderley/rswemacsconf - id: 3769, url: https://github.com/rwanderley/rswemacsconf\n", + "taf2/rb-brill-tagger - id: 3770, url: https://github.com/taf2/rb-brill-tagger\n", + "tslocke/hobo - id: 3773, url: https://github.com/tslocke/hobo\n", + "ryanb/searchify - id: 3778, url: https://github.com/ryanb/searchify\n", + "zsombor/attachment_fu - id: 3779, url: https://github.com/zsombor/attachment_fu\n", + "al3x/downforeveryoneorjustme - id: 3781, url: https://github.com/al3x/downforeveryoneorjustme\n", + "wayneeseguin/attachmerb_fu - id: 3791, url: https://github.com/wayneeseguin/attachmerb_fu\n", + "rbriski/asvab - id: 3810, url: https://github.com/rbriski/asvab\n", + "squadette/checkpassword-pam - id: 3812, url: https://github.com/squadette/checkpassword-pam\n", + "lilyball/gitnub - id: 3814, url: https://github.com/lilyball/gitnub\n", + "lachie/molly - id: 3838, url: https://github.com/lachie/molly\n", + "vanpelt/merb-core - id: 3841, url: https://github.com/vanpelt/merb-core\n", + "spicycode/spicy-config - id: 3843, url: https://github.com/spicycode/spicy-config\n", + "chilts/libawssum-perl - id: 3847, url: https://github.com/chilts/libawssum-perl\n", + "paulsmith/templatemaker - id: 3849, url: https://github.com/paulsmith/templatemaker\n", + "dfischer/fischyfriends - id: 3863, url: https://github.com/dfischer/fischyfriends\n", + "stuarthalloway/phoenix-emacs - id: 3869, url: https://github.com/stuarthalloway/phoenix-emacs\n", + "jcfischer/intldatefield - id: 3880, url: https://github.com/jcfischer/intldatefield\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "santry/blogtags - id: 3885, url: https://github.com/santry/blogtags\n", + "santry/flickrtags - id: 3887, url: https://github.com/santry/flickrtags\n", + "santry/enkodertags - id: 3888, url: https://github.com/santry/enkodertags\n", + "relevance/smoke_signals - id: 3889, url: https://github.com/relevance/smoke_signals\n", + "kbingman/assets_extension - id: 3890, url: https://github.com/kbingman/assets_extension\n", + "mletterle/zliby - id: 3892, url: https://github.com/mletterle/zliby\n", + "SRabbelier/unsignedbyte - id: 3894, url: https://github.com/SRabbelier/unsignedbyte\n", + "bdelacey/fireeagle - id: 3897, url: https://github.com/bdelacey/fireeagle\n", + "maddox/aim_status_helper - id: 3898, url: https://github.com/maddox/aim_status_helper\n", + "maddox/quicktime_helper - id: 3901, url: https://github.com/maddox/quicktime_helper\n", + "rsanheim/prag_dave_testing - id: 3912, url: https://github.com/rsanheim/prag_dave_testing\n", + "joekhoobyar/acts_as_changed - id: 3919, url: https://github.com/joekhoobyar/acts_as_changed\n", + "drone-rites/topo - id: 3926, url: https://github.com/drone-rites/topo\n", + "arclanguage/anarki - id: 3935, url: https://github.com/arclanguage/anarki\n", + "metaskills/remote_shared_cache - id: 3937, url: https://github.com/metaskills/remote_shared_cache\n", + "timburks/nutcl - id: 3946, url: https://github.com/timburks/nutcl\n", + "dacort/macdownloads - id: 3956, url: https://github.com/dacort/macdownloads\n", + "myles-archive/django-basic-social - id: 3961, url: https://github.com/myles-archive/django-basic-social\n", + "jamesakers/rspec-haml-scaffold-generator - id: 3969, url: https://github.com/jamesakers/rspec-haml-scaffold-generator\n", + "omnifroodle/deck-of-any-things - id: 3988, url: https://github.com/omnifroodle/deck-of-any-things\n", + "maddox/bracket_busters - id: 3996, url: https://github.com/maddox/bracket_busters\n", + "segfault/ruby-hl7 - id: 3997, url: https://github.com/segfault/ruby-hl7\n", + "ludwig/examples - id: 3998, url: https://github.com/ludwig/examples\n", + "segfault/fastxml - id: 3999, url: https://github.com/segfault/fastxml\n", + "Bjwebb/opengl-test - id: 4008, url: https://github.com/Bjwebb/opengl-test\n", + "psychs/limechat - id: 4016, url: https://github.com/psychs/limechat\n", + "problem/trails-oldschool - id: 4018, url: https://github.com/problem/trails-oldschool\n", + "SatoshiGardener/crossconnector - id: 4025, url: https://github.com/SatoshiGardener/crossconnector\n", + "lilyball/six - id: 4026, url: https://github.com/lilyball/six\n", + "lancecarlson/anvil - id: 4028, url: https://github.com/lancecarlson/anvil\n", + "jdelStrother/rspec - id: 4029, url: https://github.com/jdelStrother/rspec\n", + "brosner/django-sqlalchemy - id: 4032, url: https://github.com/brosner/django-sqlalchemy\n", + "treybean/autofilter - id: 4035, url: https://github.com/treybean/autofilter\n", + "joshuaclayton/jdclayton - id: 4040, url: https://github.com/joshuaclayton/jdclayton\n", + "pontus/puppet-configuration - id: 4041, url: https://github.com/pontus/puppet-configuration\n", + "igouss/config-files - id: 4047, url: https://github.com/igouss/config-files\n", + "timcharper/calendar_date_select - id: 4048, url: https://github.com/timcharper/calendar_date_select\n", + "potatosalad/acts_as_paranoid - id: 4051, url: https://github.com/potatosalad/acts_as_paranoid\n", + "mudge/python-delicious - id: 4054, url: https://github.com/mudge/python-delicious\n", + "mudge/collapsing-puzzle - id: 4055, url: https://github.com/mudge/collapsing-puzzle\n", + "mdarby/restful_acl - id: 4060, url: https://github.com/mdarby/restful_acl\n", + "pjhyett/auto_migrations - id: 4061, url: https://github.com/pjhyett/auto_migrations\n", + "mislav/contacts - id: 4078, url: https://github.com/mislav/contacts\n", + "anaisbetts/vcachefs - id: 4079, url: https://github.com/anaisbetts/vcachefs\n", + "nex3/cheat - id: 4082, url: https://github.com/nex3/cheat\n", + "anildigital/google-total - id: 4089, url: https://github.com/anildigital/google-total\n", + "rmm5t/smhelper-obfuscated-email - id: 4097, url: https://github.com/rmm5t/smhelper-obfuscated-email\n", + "fightinjoe/exception_logger - id: 4101, url: https://github.com/fightinjoe/exception_logger\n", + "osteele/ropenlaszlo - id: 4114, url: https://github.com/osteele/ropenlaszlo\n", + "osteele/openlaszlo_plugin - id: 4115, url: https://github.com/osteele/openlaszlo_plugin\n", + "ook/netfind - id: 4120, url: https://github.com/ook/netfind\n", + "captproton/mephisto - id: 4127, url: https://github.com/captproton/mephisto\n", + "michaelmelanson/erlbot - id: 4133, url: https://github.com/michaelmelanson/erlbot\n", + "markofkin/patrick - id: 4135, url: https://github.com/markofkin/patrick\n", + "joshuamckenty/laterbuy - id: 4140, url: https://github.com/joshuamckenty/laterbuy\n", + "captproton/caboo-se-sample-app - id: 4145, url: https://github.com/captproton/caboo-se-sample-app\n", + "jseifer/find-param - id: 4146, url: https://github.com/jseifer/find-param\n", + "ebassi/xmlreader - id: 4151, url: https://github.com/ebassi/xmlreader\n", + "stuart/google-authsub - id: 4157, url: https://github.com/stuart/google-authsub\n", + "jney/facebox - id: 4158, url: https://github.com/jney/facebox\n", + "courtenay/can_flag - id: 4161, url: https://github.com/courtenay/can_flag\n", + "eklitzke/oakland-crime-scraper - id: 4164, url: https://github.com/eklitzke/oakland-crime-scraper\n", + "jm/dcov - id: 4165, url: https://github.com/jm/dcov\n", + "defunkt/sakerb - id: 4176, url: https://github.com/defunkt/sakerb\n", + "defunkt/barefootexamples - id: 4180, url: https://github.com/defunkt/barefootexamples\n", + "broughcut/chronic - id: 4186, url: https://github.com/broughcut/chronic\n", + "kaitanie/gittalk - id: 4191, url: https://github.com/kaitanie/gittalk\n", + "carlosbrando/custom_resource_name - id: 4196, url: https://github.com/carlosbrando/custom_resource_name\n", + "herzi/monkey-bubble - id: 4202, url: https://github.com/herzi/monkey-bubble\n", + "tkhozein/laterbuy - id: 4213, url: https://github.com/tkhozein/laterbuy\n", + "jdigger/todo-app - id: 4233, url: https://github.com/jdigger/todo-app\n", + "smartkiwi/git-wiki - id: 4268, url: https://github.com/smartkiwi/git-wiki\n", + "ianloic/wordpress-svn - id: 4270, url: https://github.com/ianloic/wordpress-svn\n", + "ddollar/vault - id: 4280, url: https://github.com/ddollar/vault\n", + "Jabbslad/experimental - id: 4284, url: https://github.com/Jabbslad/experimental\n", + "rfugger/ripple - id: 4291, url: https://github.com/rfugger/ripple\n", + "nimblemachines/muforth - id: 4303, url: https://github.com/nimblemachines/muforth\n", + "zdennis/factory - id: 4315, url: https://github.com/zdennis/factory\n", + "jaywilliams/ultralite2 - id: 4324, url: https://github.com/jaywilliams/ultralite2\n", + "ThisOldCoder/piston - id: 4333, url: https://github.com/ThisOldCoder/piston\n", + "Sputz/action_mailer_tls - id: 4350, url: https://github.com/Sputz/action_mailer_tls\n", + "timburks/NuMySQL - id: 4351, url: https://github.com/timburks/NuMySQL\n", + "programming-nu/nu-postgresql - id: 4352, url: https://github.com/programming-nu/nu-postgresql\n", + "lachie/numbr5 - id: 4356, url: https://github.com/lachie/numbr5\n", + "loe/mamadoll - id: 4362, url: https://github.com/loe/mamadoll\n", + "sunny/edith - id: 4363, url: https://github.com/sunny/edith\n", + "gilpa/gilpa_test - id: 4365, url: https://github.com/gilpa/gilpa_test\n", + "nex3/nex3-s-blog-engine - id: 4370, url: https://github.com/nex3/nex3-s-blog-engine\n", + "johnnyjacob/eplugin-tasque - id: 4373, url: https://github.com/johnnyjacob/eplugin-tasque\n", + "sunny/damn_hotlinkers - id: 4392, url: https://github.com/sunny/damn_hotlinkers\n", + "sunny/difffeed - id: 4394, url: https://github.com/sunny/difffeed\n", + "kmarsh/foo_tools - id: 4395, url: https://github.com/kmarsh/foo_tools\n", + "herzi/source-browser - id: 4396, url: https://github.com/herzi/source-browser\n", + "sandropaganotti-zz/pci4r - id: 4413, url: https://github.com/sandropaganotti-zz/pci4r\n", + "dyoder/waves - id: 4414, url: https://github.com/dyoder/waves\n", + "zapnap/dialtone - id: 4421, url: https://github.com/zapnap/dialtone\n", + "jicksta/superators - id: 4425, url: https://github.com/jicksta/superators\n", + "jicksta/methodphitamine - id: 4428, url: https://github.com/jicksta/methodphitamine\n", + "segfault/mephisto_comment_email - id: 4438, url: https://github.com/segfault/mephisto_comment_email\n", + "kastner/band-named - id: 4449, url: https://github.com/kastner/band-named\n", + "michaelmelanson/monsoon - id: 4451, url: https://github.com/michaelmelanson/monsoon\n", + "alto/towel - id: 4455, url: https://github.com/alto/towel\n", + "schacon/ticgit - id: 4456, url: https://github.com/schacon/ticgit\n", + "spiegela/active_scaffold_extjs_sample_app - id: 4472, url: https://github.com/spiegela/active_scaffold_extjs_sample_app\n", + "daikini/chunky_bacon - id: 4473, url: https://github.com/daikini/chunky_bacon\n", + "bmizerany/lively-docs - id: 4480, url: https://github.com/bmizerany/lively-docs\n", + "dwillis/thescoop - id: 4484, url: https://github.com/dwillis/thescoop\n", + "voodootikigod/quickticket - id: 4489, url: https://github.com/voodootikigod/quickticket\n", + "jm/fleet - id: 4492, url: https://github.com/jm/fleet\n", + "segfault/mephisto_post_ping - id: 4495, url: https://github.com/segfault/mephisto_post_ping\n", + "mattetti/attachment_fu - id: 4496, url: https://github.com/mattetti/attachment_fu\n", + "wycats/ruby-mozjs - id: 4499, url: https://github.com/wycats/ruby-mozjs\n", + "segfault/mephisto_feedreader - id: 4500, url: https://github.com/segfault/mephisto_feedreader\n", + "astubbs/wicket-contrib-groovy - id: 4502, url: https://github.com/astubbs/wicket-contrib-groovy\n", + "tristan/django-servlet - id: 4506, url: https://github.com/tristan/django-servlet\n", + "halfbyte/towel - id: 4513, url: https://github.com/halfbyte/towel\n", + "typester/formvalidator-assets - id: 4515, url: https://github.com/typester/formvalidator-assets\n", + "grundprinzip/who-is-going- - id: 4517, url: https://github.com/grundprinzip/who-is-going-\n", + "mileszs/dotfiles - id: 4525, url: https://github.com/mileszs/dotfiles\n", + "hassox/whistler - id: 4527, url: https://github.com/hassox/whistler\n", + "caring/acts_as_url_param - id: 4529, url: https://github.com/caring/acts_as_url_param\n", + "bscofield/laziness - id: 4530, url: https://github.com/bscofield/laziness\n", + "chriseppstein/acts_as_url_param - id: 4536, url: https://github.com/chriseppstein/acts_as_url_param\n", + "norbert/has_uuid - id: 4538, url: https://github.com/norbert/has_uuid\n", + "norbert/lazy_sweeper - id: 4539, url: https://github.com/norbert/lazy_sweeper\n", + "francois/acctsoft - id: 4543, url: https://github.com/francois/acctsoft\n", + "jchris/couchrest - id: 4549, url: https://github.com/jchris/couchrest\n", + "sintaxi/merb_can_filter - id: 4557, url: https://github.com/sintaxi/merb_can_filter\n", + "ianloic/wordpress-ianloic - id: 4561, url: https://github.com/ianloic/wordpress-ianloic\n", + "AndrewO/rerender_text - id: 4568, url: https://github.com/AndrewO/rerender_text\n", + "TekNoLogic/Ampere - id: 4571, url: https://github.com/TekNoLogic/Ampere\n", + "kneath/hemingway - id: 4574, url: https://github.com/kneath/hemingway\n", + "jchris/rest-client - id: 4582, url: https://github.com/jchris/rest-client\n", + "filipe-zz/alfarrubyo - id: 4583, url: https://github.com/filipe-zz/alfarrubyo\n", + "openminds/site_language - id: 4587, url: https://github.com/openminds/site_language\n", + "pius/curies - id: 4589, url: https://github.com/pius/curies\n", + "lilyball/nnwstyle - id: 4594, url: https://github.com/lilyball/nnwstyle\n", + "auser/merb-core - id: 4597, url: https://github.com/auser/merb-core\n", + "auser/merb-more - id: 4598, url: https://github.com/auser/merb-more\n", + "auser/merb-plugins - id: 4599, url: https://github.com/auser/merb-plugins\n", + "mperham/tracknowledge - id: 4601, url: https://github.com/mperham/tracknowledge\n", + "Soleone/solescripts - id: 4604, url: https://github.com/Soleone/solescripts\n", + "hosh/rails-authorization-plugin - id: 4612, url: https://github.com/hosh/rails-authorization-plugin\n", + "rgrove/cssmin - id: 4619, url: https://github.com/rgrove/cssmin\n", + "caring/gibberish_db - id: 4623, url: https://github.com/caring/gibberish_db\n", + "adamstac/jquery-qt-controller - id: 4635, url: https://github.com/adamstac/jquery-qt-controller\n", + "caring/with_url_scope - id: 4638, url: https://github.com/caring/with_url_scope\n", + "usergenic/webult - id: 4640, url: https://github.com/usergenic/webult\n", + "dragosdimitriu/airport-handling-service - id: 4641, url: https://github.com/dragosdimitriu/airport-handling-service\n", + "jcfischer/referenz2 - id: 4647, url: https://github.com/jcfischer/referenz2\n", + "stevenbristol/lovd-by-less - id: 4656, url: https://github.com/stevenbristol/lovd-by-less\n", + "danielmorrison/relative_time_helpers - id: 4689, url: https://github.com/danielmorrison/relative_time_helpers\n", + "fester/have_filter - id: 4691, url: https://github.com/fester/have_filter\n", + "ianloic/google-ajax-server - id: 4693, url: https://github.com/ianloic/google-ajax-server\n", + "frederik/movie_handler - id: 4702, url: https://github.com/frederik/movie_handler\n", + "drd/lumber-mill - id: 4708, url: https://github.com/drd/lumber-mill\n", + "KirinDave/erlectricity - id: 4711, url: https://github.com/KirinDave/erlectricity\n", + "steveh/allmusicguide-extractor - id: 4716, url: https://github.com/steveh/allmusicguide-extractor\n", + "steveh/mukuna-extractor - id: 4718, url: https://github.com/steveh/mukuna-extractor\n", + "steveh/opml-diff - id: 4719, url: https://github.com/steveh/opml-diff\n", + "steveh/flight-planner - id: 4720, url: https://github.com/steveh/flight-planner\n", + "savetheclocktower/javascript-stuff - id: 4731, url: https://github.com/savetheclocktower/javascript-stuff\n", + "voodootikigod/dragdropextra - id: 4735, url: https://github.com/voodootikigod/dragdropextra\n", + "wayneeseguin/hash_extension - id: 4736, url: https://github.com/wayneeseguin/hash_extension\n", + "KirinDave/arc - id: 4741, url: https://github.com/KirinDave/arc\n", + "ianloic/custom-xul-view - id: 4751, url: https://github.com/ianloic/custom-xul-view\n", + "jcfischer/restful-authentication - id: 4755, url: https://github.com/jcfischer/restful-authentication\n", + "kig/metadata - id: 4756, url: https://github.com/kig/metadata\n", + "FND/tiddlywiki_plugins - id: 4772, url: https://github.com/FND/tiddlywiki_plugins\n", + "Ramarren/cl-transactional - id: 4778, url: https://github.com/Ramarren/cl-transactional\n", + "markbates/mack - id: 4788, url: https://github.com/markbates/mack\n", + "kig/thumbnailer - id: 4796, url: https://github.com/kig/thumbnailer\n", + "DotNetOpenAuth/DotNetOpenAuth - id: 4798, url: https://github.com/DotNetOpenAuth/DotNetOpenAuth\n", + "jcfischer/make_resourceful - id: 4809, url: https://github.com/jcfischer/make_resourceful\n", + "Soleone/etqw-stats - id: 4820, url: https://github.com/Soleone/etqw-stats\n", + "Soleone/etqw-stats-rails - id: 4821, url: https://github.com/Soleone/etqw-stats-rails\n", + "osteele/cl-spec - id: 4822, url: https://github.com/osteele/cl-spec\n", + "tarcieri/reia - id: 4826, url: https://github.com/tarcieri/reia\n", + "mbleigh/acts-as-taggable-on - id: 4828, url: https://github.com/mbleigh/acts-as-taggable-on\n", + "macournoyer/rack-sandbox - id: 4833, url: https://github.com/macournoyer/rack-sandbox\n", + "vlarsen/chinesepoker - id: 4834, url: https://github.com/vlarsen/chinesepoker\n", + "herzi/mb-audio-engine - id: 4840, url: https://github.com/herzi/mb-audio-engine\n", + "herzi/tree-wrapper - id: 4848, url: https://github.com/herzi/tree-wrapper\n", + "herzi/gfc - id: 4850, url: https://github.com/herzi/gfc\n", + "herzi/git2dot - id: 4851, url: https://github.com/herzi/git2dot\n", + "cardmagic/dm-core - id: 4855, url: https://github.com/cardmagic/dm-core\n", + "cardmagic/merb-core - id: 4856, url: https://github.com/cardmagic/merb-core\n", + "britt/hivedb - id: 4857, url: https://github.com/britt/hivedb\n", + "jcrosby/cloudkit - id: 4859, url: https://github.com/jcrosby/cloudkit\n", + "KirinDave/powerset_thrift - id: 4865, url: https://github.com/KirinDave/powerset_thrift\n", + "britt/hivedb-blobject - id: 4867, url: https://github.com/britt/hivedb-blobject\n", + "cardmagic/merb-more - id: 4879, url: https://github.com/cardmagic/merb-more\n", + "cardmagic/merb-plugins - id: 4880, url: https://github.com/cardmagic/merb-plugins\n", + "agateau/switcha - id: 4881, url: https://github.com/agateau/switcha\n", + "cptfinch/process-controller - id: 4883, url: https://github.com/cptfinch/process-controller\n", + "bottlecaplabs/zombieurl - id: 4885, url: https://github.com/bottlecaplabs/zombieurl\n", + "cardmagic/contacts - id: 4887, url: https://github.com/cardmagic/contacts\n", + "cardmagic/payment - id: 4888, url: https://github.com/cardmagic/payment\n", + "cardmagic/starfish - id: 4890, url: https://github.com/cardmagic/starfish\n", + "JoshBorke/knowitall - id: 4892, url: https://github.com/JoshBorke/knowitall\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "JoshBorke/loottracker - id: 4896, url: https://github.com/JoshBorke/loottracker\n", + "al3x/metatweet - id: 4901, url: https://github.com/al3x/metatweet\n", + "JoshBorke/treesync - id: 4903, url: https://github.com/JoshBorke/treesync\n", + "mvanholstyn/mhs_testing - id: 4905, url: https://github.com/mvanholstyn/mhs_testing\n", + "mvanholstyn/mhs_deployment - id: 4906, url: https://github.com/mvanholstyn/mhs_deployment\n", + "mvanholstyn/mhs_authentication_system - id: 4907, url: https://github.com/mvanholstyn/mhs_authentication_system\n", + "KeithHanson/rmuddy - id: 4910, url: https://github.com/KeithHanson/rmuddy\n", + "rgrove/jsmin - id: 4921, url: https://github.com/rgrove/jsmin\n", + "juancq/py-interactive-genetic-algorithm - id: 4923, url: https://github.com/juancq/py-interactive-genetic-algorithm\n", + "auser/gitnub - id: 4934, url: https://github.com/auser/gitnub\n", + "krukow/tribook - id: 4936, url: https://github.com/krukow/tribook\n", + "aussiegeek/ruby-sass-tmbundle - id: 4937, url: https://github.com/aussiegeek/ruby-sass-tmbundle\n", + "foca/foca.github.io - id: 4945, url: https://github.com/foca/foca.github.io\n", + "gnosek/nginx-upstream-fair - id: 4957, url: https://github.com/gnosek/nginx-upstream-fair\n", + "kig/wreader - id: 4968, url: https://github.com/kig/wreader\n", + "myabc/nbgit - id: 4976, url: https://github.com/myabc/nbgit\n", + "jamesarosen/avatar - id: 4981, url: https://github.com/jamesarosen/avatar\n", + "shingara/yoolink-typo-sidebar - id: 4987, url: https://github.com/shingara/yoolink-typo-sidebar\n", + "captproton/i-like-local - id: 4993, url: https://github.com/captproton/i-like-local\n", + "sintaxi/merbums - id: 4999, url: https://github.com/sintaxi/merbums\n", + "jonbro/jsaxus - id: 5012, url: https://github.com/jonbro/jsaxus\n", + "archaelus/erlirc - id: 5013, url: https://github.com/archaelus/erlirc\n", + "archaelus/errd - id: 5015, url: https://github.com/archaelus/errd\n", + "nathansobo/hyperarchy - id: 5018, url: https://github.com/nathansobo/hyperarchy\n", + "tristan/twimage - id: 5022, url: https://github.com/tristan/twimage\n", + "Grayson/nudatadetector - id: 5025, url: https://github.com/Grayson/nudatadetector\n", + "demonnic/rmuddy - id: 5028, url: https://github.com/demonnic/rmuddy\n", + "broughcut/geopost - id: 5030, url: https://github.com/broughcut/geopost\n", + "queso/sitemap - id: 5041, url: https://github.com/queso/sitemap\n", + "TekNoLogic/Cork - id: 5046, url: https://github.com/TekNoLogic/Cork\n", + "fightinjoe/god - id: 5051, url: https://github.com/fightinjoe/god\n", + "foca/utility_scripts - id: 5056, url: https://github.com/foca/utility_scripts\n", + "nickstenning/recurring_event - id: 5058, url: https://github.com/nickstenning/recurring_event\n", + "mbleigh/acts-as-readable - id: 5062, url: https://github.com/mbleigh/acts-as-readable\n", + "mbleigh/needy-controllers - id: 5063, url: https://github.com/mbleigh/needy-controllers\n", + "mbleigh/browserized-styles - id: 5065, url: https://github.com/mbleigh/browserized-styles\n", + "mbleigh/princely - id: 5066, url: https://github.com/mbleigh/princely\n", + "phhusson/phhelesite - id: 5067, url: https://github.com/phhusson/phhelesite\n", + "herzi/distrrtgen - id: 5073, url: https://github.com/herzi/distrrtgen\n", + "osteele/cfdg-js - id: 5080, url: https://github.com/osteele/cfdg-js\n", + "lukec/cpan-selenium-rc-perl - id: 5084, url: https://github.com/lukec/cpan-selenium-rc-perl\n", + "mattly/hpreserve - id: 5087, url: https://github.com/mattly/hpreserve\n", + "robmckinnon/morph - id: 5092, url: https://github.com/robmckinnon/morph\n", + "stueccles/railsdav - id: 5101, url: https://github.com/stueccles/railsdav\n", + "blynn/pbc - id: 5102, url: https://github.com/blynn/pbc\n", + "lukaszcho/attachment_fu - id: 5104, url: https://github.com/lukaszcho/attachment_fu\n", + "seven1m/has_one_photo - id: 5107, url: https://github.com/seven1m/has_one_photo\n", + "cowsandmilk/cowphishtank - id: 5109, url: https://github.com/cowsandmilk/cowphishtank\n", + "cptfinch/machine_qc - id: 5111, url: https://github.com/cptfinch/machine_qc\n", + "cptfinch/clinical-trials - id: 5113, url: https://github.com/cptfinch/clinical-trials\n", + "cptfinch/algorithm-comparator - id: 5116, url: https://github.com/cptfinch/algorithm-comparator\n", + "jerrett/merb_hpreserve - id: 5127, url: https://github.com/jerrett/merb_hpreserve\n", + "pphetra/orangegears - id: 5129, url: https://github.com/pphetra/orangegears\n", + "jmhodges/sherlocksampling - id: 5138, url: https://github.com/jmhodges/sherlocksampling\n", + "pvh/custom-xul-view - id: 5140, url: https://github.com/pvh/custom-xul-view\n", + "dante-xx/devday_rails - id: 5141, url: https://github.com/dante-xx/devday_rails\n", + "piclez/pmpknpi - id: 5144, url: https://github.com/piclez/pmpknpi\n", + "toastdriven/feedme - id: 5145, url: https://github.com/toastdriven/feedme\n", + "karl/monket-calendar - id: 5147, url: https://github.com/karl/monket-calendar\n", + "jnewland/ride_the_fireeagle - id: 5151, url: https://github.com/jnewland/ride_the_fireeagle\n", + "prepor/prepor-ru - id: 5154, url: https://github.com/prepor/prepor-ru\n", + "gnosek/ebb - id: 5155, url: https://github.com/gnosek/ebb\n", + "mbleigh/github-unfuddle - id: 5159, url: https://github.com/mbleigh/github-unfuddle\n", + "oavdeev/io - id: 5171, url: https://github.com/oavdeev/io\n", + "rolandd/libcxgb3-deb - id: 5180, url: https://github.com/rolandd/libcxgb3-deb\n", + "rolandd/libnes-deb - id: 5181, url: https://github.com/rolandd/libnes-deb\n", + "timburks/rubyobjc - id: 5182, url: https://github.com/timburks/rubyobjc\n", + "rolandd/librdmacm-deb - id: 5183, url: https://github.com/rolandd/librdmacm-deb\n", + "brennandunn/preference_fu - id: 5186, url: https://github.com/brennandunn/preference_fu\n", + "sgala/roundup - id: 5189, url: https://github.com/sgala/roundup\n", + "jlsync/jlsync - id: 5192, url: https://github.com/jlsync/jlsync\n", + "nickpad/timedcache - id: 5196, url: https://github.com/nickpad/timedcache\n", + "dguettler/utility_scripts - id: 5197, url: https://github.com/dguettler/utility_scripts\n", + "bsimpson/halcyon - id: 5198, url: https://github.com/bsimpson/halcyon\n", + "mnutt/intranet - id: 5199, url: https://github.com/mnutt/intranet\n", + "haraldmartin/verdano - id: 5201, url: https://github.com/haraldmartin/verdano\n", + "jicksta/desk-pbx - id: 5203, url: https://github.com/jicksta/desk-pbx\n", + "nickstenning/remit - id: 5208, url: https://github.com/nickstenning/remit\n", + "lachlanhardy/guitarzero - id: 5219, url: https://github.com/lachlanhardy/guitarzero\n", + "lachlanhardy/piccr - id: 5221, url: https://github.com/lachlanhardy/piccr\n", + "robbyrussell/year_after_year - id: 5224, url: https://github.com/robbyrussell/year_after_year\n", + "ELLIOTTCABLE/ystyle - id: 5227, url: https://github.com/ELLIOTTCABLE/ystyle\n", + "mdarby/scribd_fu - id: 5228, url: https://github.com/mdarby/scribd_fu\n", + "myelin/fireeagle-cs-lib - id: 5233, url: https://github.com/myelin/fireeagle-cs-lib\n", + "omghax/acts_as_configurable - id: 5239, url: https://github.com/omghax/acts_as_configurable\n", + "toolmantim/webjam - id: 5243, url: https://github.com/toolmantim/webjam\n", + "denis/capone - id: 5247, url: https://github.com/denis/capone\n", + "grundprinzip/merb-plugins - id: 5249, url: https://github.com/grundprinzip/merb-plugins\n", + "zimbatm/facts - id: 5250, url: https://github.com/zimbatm/facts\n", + "bumi/find_by_param - id: 5257, url: https://github.com/bumi/find_by_param\n", + "ciaran/tm-completion - id: 5262, url: https://github.com/ciaran/tm-completion\n", + "jruby/activerecord-jdbc-adapter - id: 5266, url: https://github.com/jruby/activerecord-jdbc-adapter\n", + "derencius/navigation_tags - id: 5272, url: https://github.com/derencius/navigation_tags\n", + "danielharan/timestamped_boolean - id: 5280, url: https://github.com/danielharan/timestamped_boolean\n", + "ezmobius/acl_system2 - id: 5282, url: https://github.com/ezmobius/acl_system2\n", + "bborn/communityengine - id: 5289, url: https://github.com/bborn/communityengine\n", + "teknofire/tcode - id: 5296, url: https://github.com/teknofire/tcode\n", + "mattbeedle/davinci - id: 5301, url: https://github.com/mattbeedle/davinci\n", + "lachie/roro-faces - id: 5303, url: https://github.com/lachie/roro-faces\n", + "collectiveidea/action_mailer_optional_tls - id: 5310, url: https://github.com/collectiveidea/action_mailer_optional_tls\n", + "flynx/pli - id: 5318, url: https://github.com/flynx/pli\n", + "bmizerany/attrubates - id: 5322, url: https://github.com/bmizerany/attrubates\n", + "matthewford/merb-meet-aop - id: 5344, url: https://github.com/matthewford/merb-meet-aop\n", + "gotascii/hurl - id: 5365, url: https://github.com/gotascii/hurl\n", + "zengjie/zengjie.github.com - id: 5366, url: https://github.com/zengjie/zengjie.github.com\n", + "nimblemachines/wiki - id: 5368, url: https://github.com/nimblemachines/wiki\n", + "fleadope/dm-core - id: 5373, url: https://github.com/fleadope/dm-core\n", + "jamis/net-ssh-gateway - id: 5375, url: https://github.com/jamis/net-ssh-gateway\n", + "dustin/cache_fu - id: 5379, url: https://github.com/dustin/cache_fu\n", + "piclez/lovd-by-less - id: 5403, url: https://github.com/piclez/lovd-by-less\n", + "schmidt/contextr - id: 5407, url: https://github.com/schmidt/contextr\n", + "dams/bot-basicbot-pluggable-module-rt - id: 5410, url: https://github.com/dams/bot-basicbot-pluggable-module-rt\n", + "mlandauer/phplib - id: 5415, url: https://github.com/mlandauer/phplib\n", + "mlandauer/perllib - id: 5416, url: https://github.com/mlandauer/perllib\n", + "mmower/platform - id: 5418, url: https://github.com/mmower/platform\n", + "Ramarren/lisa - id: 5422, url: https://github.com/Ramarren/lisa\n", + "mars888/lisp_web - id: 5427, url: https://github.com/mars888/lisp_web\n", + "jsiarto/hello_github - id: 5428, url: https://github.com/jsiarto/hello_github\n", + "schmidt/context_wiki - id: 5432, url: https://github.com/schmidt/context_wiki\n", + "KirinDave/ruby-kqueue - id: 5442, url: https://github.com/KirinDave/ruby-kqueue\n", + "martinbtt/rspec - id: 5447, url: https://github.com/martinbtt/rspec\n", + "amandasaurus/python-osm - id: 5448, url: https://github.com/amandasaurus/python-osm\n", + "davidsmalley/extensionless_format - id: 5450, url: https://github.com/davidsmalley/extensionless_format\n", + "wesmaldonado/jsspec-commandline-runner - id: 5452, url: https://github.com/wesmaldonado/jsspec-commandline-runner\n", + "daikini/kato - id: 5458, url: https://github.com/daikini/kato\n", + "rotty/dotfiles - id: 5460, url: https://github.com/rotty/dotfiles\n", + "JackDanger/simple_memoize - id: 5463, url: https://github.com/JackDanger/simple_memoize\n", + "mmower/mailtrap - id: 5475, url: https://github.com/mmower/mailtrap\n", + "jomz/radiant-site_language-extension - id: 5486, url: https://github.com/jomz/radiant-site_language-extension\n", + "prototypejs/prototype - id: 5494, url: https://github.com/prototypejs/prototype\n", + "sstephenson/sprockets - id: 5497, url: https://github.com/sstephenson/sprockets\n", + "quickredfox/jsgouache - id: 5500, url: https://github.com/quickredfox/jsgouache\n", + "tgdavies/calex - id: 5508, url: https://github.com/tgdavies/calex\n", + "sethwalker/democracy_in_action_plugin - id: 5528, url: https://github.com/sethwalker/democracy_in_action_plugin\n", + "kyc/lovd-by-less - id: 5531, url: https://github.com/kyc/lovd-by-less\n", + "caleon/juscribe.alpha - id: 5532, url: https://github.com/caleon/juscribe.alpha\n", + "bikerduweb/or_target_blank - id: 5546, url: https://github.com/bikerduweb/or_target_blank\n", + "netshade/personal - id: 5550, url: https://github.com/netshade/personal\n", + "netshade/toys - id: 5551, url: https://github.com/netshade/toys\n", + "osteele/html2dbk - id: 5578, url: https://github.com/osteele/html2dbk\n", + "shibu/pyspec - id: 5581, url: https://github.com/shibu/pyspec\n", + "Grayson/nug - id: 5590, url: https://github.com/Grayson/nug\n", + "openminds/deep_cloning - id: 5591, url: https://github.com/openminds/deep_cloning\n", + "jimweirich/present_code - id: 5594, url: https://github.com/jimweirich/present_code\n", + "trey/site-template - id: 5595, url: https://github.com/trey/site-template\n", + "defunkt/rtimeout - id: 5597, url: https://github.com/defunkt/rtimeout\n", + "mlwhall/martin-s-test-repo - id: 5605, url: https://github.com/mlwhall/martin-s-test-repo\n", + "rfugger/ripplesite - id: 5608, url: https://github.com/rfugger/ripplesite\n", + "wmorgan/thrift - id: 5614, url: https://github.com/wmorgan/thrift\n", + "jperla/stvp-videopodcast - id: 5619, url: https://github.com/jperla/stvp-videopodcast\n", + "phusion/passenger - id: 5625, url: https://github.com/phusion/passenger\n", + "anthem/io - id: 5633, url: https://github.com/anthem/io\n", + "scottwhite/aws_simpledb - id: 5635, url: https://github.com/scottwhite/aws_simpledb\n", + "anthem/muun - id: 5638, url: https://github.com/anthem/muun\n", + "ihao/ihao - id: 5639, url: https://github.com/ihao/ihao\n", + "zilkey/webmaster_tools - id: 5643, url: https://github.com/zilkey/webmaster_tools\n", + "tsgates/git-emacs - id: 5644, url: https://github.com/tsgates/git-emacs\n", + "itfrombit/nuopenglcubedemo - id: 5651, url: https://github.com/itfrombit/nuopenglcubedemo\n", + "we4tech/mojar_workflow - id: 5656, url: https://github.com/we4tech/mojar_workflow\n", + "mattmccray/comatose - id: 5657, url: https://github.com/mattmccray/comatose\n", + "jamis/net-ssh-multi - id: 5658, url: https://github.com/jamis/net-ssh-multi\n", + "cho45/rollover-js - id: 5659, url: https://github.com/cho45/rollover-js\n", + "willcannings/crest - id: 5664, url: https://github.com/willcannings/crest\n", + "chipx86/git-vmware - id: 5671, url: https://github.com/chipx86/git-vmware\n", + "rsl/proxy_attributes - id: 5682, url: https://github.com/rsl/proxy_attributes\n", + "tslocke/agility - id: 5688, url: https://github.com/tslocke/agility\n", + "stuarthalloway/obsidian - id: 5695, url: https://github.com/stuarthalloway/obsidian\n", + "pauek/arc-sbcl - id: 5698, url: https://github.com/pauek/arc-sbcl\n", + "fleadope/ticgit - id: 5700, url: https://github.com/fleadope/ticgit\n", + "sudara/low-pro-for-jquery - id: 5707, url: https://github.com/sudara/low-pro-for-jquery\n", + "timshadel/logging-datastore - id: 5708, url: https://github.com/timshadel/logging-datastore\n", + "timshadel/tomcat-memcached-store - id: 5710, url: https://github.com/timshadel/tomcat-memcached-store\n", + "cpjobling/tiddlywiki-knowledgebase - id: 5711, url: https://github.com/cpjobling/tiddlywiki-knowledgebase\n", + "alex/space-hogs - id: 5718, url: https://github.com/alex/space-hogs\n", + "BrianTheCoder/jquery-keyboard-navigation - id: 5722, url: https://github.com/BrianTheCoder/jquery-keyboard-navigation\n", + "timcharper/rubyamp - id: 5723, url: https://github.com/timcharper/rubyamp\n", + "wayneeseguin/ar_migration_branches - id: 5745, url: https://github.com/wayneeseguin/ar_migration_branches\n", + "cout/ruby-internal - id: 5750, url: https://github.com/cout/ruby-internal\n", + "LeonB/jruby_gst - id: 5753, url: https://github.com/LeonB/jruby_gst\n", + "ejdraper/feather-plugins - id: 5754, url: https://github.com/ejdraper/feather-plugins\n", + "halorgium/treetop - id: 5756, url: https://github.com/halorgium/treetop\n", + "jredville/github-gem - id: 5760, url: https://github.com/jredville/github-gem\n", + "juozasg/catabuzz - id: 5763, url: https://github.com/juozasg/catabuzz\n", + "sethwalker/democracy_in_action_gem - id: 5773, url: https://github.com/sethwalker/democracy_in_action_gem\n", + "jredville/treetop - id: 5780, url: https://github.com/jredville/treetop\n", + "halorgium/address_book - id: 5783, url: https://github.com/halorgium/address_book\n", + "jredville/address_book - id: 5786, url: https://github.com/jredville/address_book\n", + "sunny/frugal - id: 5790, url: https://github.com/sunny/frugal\n", + "jstewart/mhs_authentication_system - id: 5792, url: https://github.com/jstewart/mhs_authentication_system\n", + "jamesbritt/testproj - id: 5799, url: https://github.com/jamesbritt/testproj\n", + "iamruinous/twittersign - id: 5802, url: https://github.com/iamruinous/twittersign\n", + "maddox/freelancer - id: 5824, url: https://github.com/maddox/freelancer\n", + "KirinDave/leetchat - id: 5842, url: https://github.com/KirinDave/leetchat\n", + "jbarnette/johnson - id: 5847, url: https://github.com/jbarnette/johnson\n", + "dreiss/old-thrift - id: 5848, url: https://github.com/dreiss/old-thrift\n", + "vanpelt/merb_facebooker - id: 5850, url: https://github.com/vanpelt/merb_facebooker\n", + "dneighbors/wowarmorytools - id: 5855, url: https://github.com/dneighbors/wowarmorytools\n", + "TekNoLogic/Blipstick - id: 5857, url: https://github.com/TekNoLogic/Blipstick\n", + "broughcut/taxscrape - id: 5863, url: https://github.com/broughcut/taxscrape\n", + "btakita/pain-point - id: 5865, url: https://github.com/btakita/pain-point\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tobi/xml_node - id: 5882, url: https://github.com/tobi/xml_node\n", + "broughcut/stringex - id: 5886, url: https://github.com/broughcut/stringex\n", + "rolandd/libipathverbs-deb - id: 5889, url: https://github.com/rolandd/libipathverbs-deb\n", + "ruphy/plasma-theme-tester - id: 5893, url: https://github.com/ruphy/plasma-theme-tester\n", + "aphyr/exocora - id: 5895, url: https://github.com/aphyr/exocora\n", + "tobi/s3_connection - id: 5900, url: https://github.com/tobi/s3_connection\n", + "brendanlim/sms-fu - id: 5910, url: https://github.com/brendanlim/sms-fu\n", + "jimweirich/emacs-starter-kit - id: 5921, url: https://github.com/jimweirich/emacs-starter-kit\n", + "TheDragon/blog - id: 5932, url: https://github.com/TheDragon/blog\n", + "AlexJWayne/fleximage - id: 5933, url: https://github.com/AlexJWayne/fleximage\n", + "eggie5/asset_packager - id: 5934, url: https://github.com/eggie5/asset_packager\n", + "skyfallsin/beboist - id: 5935, url: https://github.com/skyfallsin/beboist\n", + "skyfallsin/openly_sociable - id: 5936, url: https://github.com/skyfallsin/openly_sociable\n", + "nkallen/screw-unit - id: 5940, url: https://github.com/nkallen/screw-unit\n", + "seven1m/trac_wiki_to_github - id: 5944, url: https://github.com/seven1m/trac_wiki_to_github\n", + "zackchandler/trustcommerce - id: 5947, url: https://github.com/zackchandler/trustcommerce\n", + "jm/seed - id: 5949, url: https://github.com/jm/seed\n", + "mreid/feed-bag - id: 5952, url: https://github.com/mreid/feed-bag\n", + "nkallen/rkid---rcov-in-database - id: 5953, url: https://github.com/nkallen/rkid---rcov-in-database\n", + "jeremyevans/sequel - id: 5954, url: https://github.com/jeremyevans/sequel\n", + "halfbyte/minitowel - id: 5955, url: https://github.com/halfbyte/minitowel\n", + "ezmobius/nanite - id: 5964, url: https://github.com/ezmobius/nanite\n", + "ctrochalakis/django-lanata - id: 5970, url: https://github.com/ctrochalakis/django-lanata\n", + "mikong/point2 - id: 5974, url: https://github.com/mikong/point2\n", + "myabc/portfolio-theme - id: 5975, url: https://github.com/myabc/portfolio-theme\n", + "gwynm/mailtrap - id: 5987, url: https://github.com/gwynm/mailtrap\n", + "mbleigh/ruby-github - id: 5990, url: https://github.com/mbleigh/ruby-github\n", + "floere/james - id: 6007, url: https://github.com/floere/james\n", + "pfdemuizon/phoneinreport - id: 6014, url: https://github.com/pfdemuizon/phoneinreport\n", + "dennisreimann/masquerade - id: 6020, url: https://github.com/dennisreimann/masquerade\n", + "beanstalkd/beanstalkd - id: 6040, url: https://github.com/beanstalkd/beanstalkd\n", + "cmaggard/goonion - id: 6043, url: https://github.com/cmaggard/goonion\n", + "melo/bxmpp - id: 6048, url: https://github.com/melo/bxmpp\n", + "oneup/puituniverse - id: 6052, url: https://github.com/oneup/puituniverse\n", + "jmettraux/rufus-verbs - id: 6056, url: https://github.com/jmettraux/rufus-verbs\n", + "urubatan/easybtest - id: 6057, url: https://github.com/urubatan/easybtest\n", + "tmm1/sequel - id: 6067, url: https://github.com/tmm1/sequel\n", + "benschwarz/yahoo-stock - id: 6068, url: https://github.com/benschwarz/yahoo-stock\n", + "jmettraux/rufus-lru - id: 6069, url: https://github.com/jmettraux/rufus-lru\n", + "relevance/obsidian - id: 6085, url: https://github.com/relevance/obsidian\n", + "fredoliveira/textmate-yuicss - id: 6091, url: https://github.com/fredoliveira/textmate-yuicss\n", + "jmettraux/rufus-scheduler - id: 6094, url: https://github.com/jmettraux/rufus-scheduler\n", + "joefiorini/blog-starter-kit - id: 6097, url: https://github.com/joefiorini/blog-starter-kit\n", + "dustin/money - id: 6098, url: https://github.com/dustin/money\n", + "jesseclark/pci4r - id: 6099, url: https://github.com/jesseclark/pci4r\n", + "lukec/httpactivity - id: 6101, url: https://github.com/lukec/httpactivity\n", + "robertfeldt/spec-check - id: 6110, url: https://github.com/robertfeldt/spec-check\n", + "drnic/ruby-c-extensions-tmbundle - id: 6113, url: https://github.com/drnic/ruby-c-extensions-tmbundle\n", + "toretore/active-element - id: 6116, url: https://github.com/toretore/active-element\n", + "openminds/ruby-mollom - id: 6131, url: https://github.com/openminds/ruby-mollom\n", + "mbleigh/seed-fu - id: 6133, url: https://github.com/mbleigh/seed-fu\n", + "madrobby/scriptaculous - id: 6137, url: https://github.com/madrobby/scriptaculous\n", + "lukfugl/alhambra - id: 6157, url: https://github.com/lukfugl/alhambra\n", + "tekkub/wow-ui-source - id: 6159, url: https://github.com/tekkub/wow-ui-source\n", + "savetheclocktower/prototype - id: 6162, url: https://github.com/savetheclocktower/prototype\n", + "pd/story - id: 6163, url: https://github.com/pd/story\n", + "dag/warp - id: 6164, url: https://github.com/dag/warp\n", + "kad3nce/collective - id: 6169, url: https://github.com/kad3nce/collective\n", + "kassoulet/soundconverter - id: 6172, url: https://github.com/kassoulet/soundconverter\n", + "pezra/resourceful - id: 6181, url: https://github.com/pezra/resourceful\n", + "zdennis/render_with - id: 6186, url: https://github.com/zdennis/render_with\n", + "benschwarz/bom-weather - id: 6189, url: https://github.com/benschwarz/bom-weather\n", + "lownoiseamp/scramblah - id: 6193, url: https://github.com/lownoiseamp/scramblah\n", + "bmizerany/nginx_config_generator - id: 6204, url: https://github.com/bmizerany/nginx_config_generator\n", + "methodmissing/will_paginate - id: 6206, url: https://github.com/methodmissing/will_paginate\n", + "neilmcg/aintablog - id: 6210, url: https://github.com/neilmcg/aintablog\n", + "be9/strokedb - id: 6221, url: https://github.com/be9/strokedb\n", + "zh/tamanegi - id: 6223, url: https://github.com/zh/tamanegi\n", + "HusseinMorsy/railsbuch_theme - id: 6233, url: https://github.com/HusseinMorsy/railsbuch_theme\n", + "mmower/bishop - id: 6237, url: https://github.com/mmower/bishop\n", + "wycats/ruby-spidermonkey - id: 6247, url: https://github.com/wycats/ruby-spidermonkey\n", + "mbleigh/from_param - id: 6251, url: https://github.com/mbleigh/from_param\n", + "bumi/resizer - id: 6253, url: https://github.com/bumi/resizer\n", + "bumi/tokenizer - id: 6254, url: https://github.com/bumi/tokenizer\n", + "osteele/collections-js - id: 6262, url: https://github.com/osteele/collections-js\n", + "dummied/fleximage - id: 6267, url: https://github.com/dummied/fleximage\n", + "moonpolysoft/dynomite - id: 6275, url: https://github.com/moonpolysoft/dynomite\n", + "sprsquish/crypt--xxtea - id: 6276, url: https://github.com/sprsquish/crypt--xxtea\n", + "cnix/freelancer - id: 6287, url: https://github.com/cnix/freelancer\n", + "adamhjk/iclassify - id: 6310, url: https://github.com/adamhjk/iclassify\n", + "insoshi/insoshi - id: 6313, url: https://github.com/insoshi/insoshi\n", + "oddlyzen/acme-site - id: 6340, url: https://github.com/oddlyzen/acme-site\n", + "jm/branched_migrations - id: 6357, url: https://github.com/jm/branched_migrations\n", + "pepe/scripts - id: 6366, url: https://github.com/pepe/scripts\n", + "dxoigmn/achilles - id: 6370, url: https://github.com/dxoigmn/achilles\n", + "robey/configgy - id: 6378, url: https://github.com/robey/configgy\n", + "bjc/moxie - id: 6380, url: https://github.com/bjc/moxie\n", + "jamesgolick/attribute_fu - id: 6388, url: https://github.com/jamesgolick/attribute_fu\n", + "lukehoersten/technoping - id: 6390, url: https://github.com/lukehoersten/technoping\n", + "lukehoersten/nonblocking - id: 6396, url: https://github.com/lukehoersten/nonblocking\n", + "ELLIOTTCABLE/rdie - id: 6399, url: https://github.com/ELLIOTTCABLE/rdie\n", + "pelargir/test_spec_on_rails - id: 6404, url: https://github.com/pelargir/test_spec_on_rails\n", + "armooo/pytivo - id: 6408, url: https://github.com/armooo/pytivo\n", + "skawaii/kettlecorn - id: 6435, url: https://github.com/skawaii/kettlecorn\n", + "daveyeu/gaa - id: 6438, url: https://github.com/daveyeu/gaa\n", + "paulanthonywilson/yaapt-2 - id: 6454, url: https://github.com/paulanthonywilson/yaapt-2\n", + "dustin/noelani - id: 6461, url: https://github.com/dustin/noelani\n", + "smartkiwi/mfmplayer - id: 6464, url: https://github.com/smartkiwi/mfmplayer\n", + "smtlaissezfaire/fixturereplacement - id: 6468, url: https://github.com/smtlaissezfaire/fixturereplacement\n", + "drnic/magic_metaclass - id: 6476, url: https://github.com/drnic/magic_metaclass\n", + "beastaugh/papertrail - id: 6484, url: https://github.com/beastaugh/papertrail\n", + "whomwah/rqrcode - id: 6485, url: https://github.com/whomwah/rqrcode\n", + "scrooloose/crondle - id: 6488, url: https://github.com/scrooloose/crondle\n", + "alloy/webapp-app - id: 6489, url: https://github.com/alloy/webapp-app\n", + "drnic/pastie-packer - id: 6496, url: https://github.com/drnic/pastie-packer\n", + "grundprinzip/slimtimercli - id: 6512, url: https://github.com/grundprinzip/slimtimercli\n", + "yfactorial/gtdtracks - id: 6514, url: https://github.com/yfactorial/gtdtracks\n", + "griff/rbvfs - id: 6515, url: https://github.com/griff/rbvfs\n", + "cho45/catstarter-pl - id: 6520, url: https://github.com/cho45/catstarter-pl\n", + "Ramarren/color-gradients - id: 6536, url: https://github.com/Ramarren/color-gradients\n", + "lak/puppet-old - id: 6541, url: https://github.com/lak/puppet-old\n", + "nabeken/misc-irssi-scripts - id: 6547, url: https://github.com/nabeken/misc-irssi-scripts\n", + "ryanb/static_actions - id: 6553, url: https://github.com/ryanb/static_actions\n", + "cannikin/validator - id: 6562, url: https://github.com/cannikin/validator\n", + "timothyjoh/nameless_cms - id: 6575, url: https://github.com/timothyjoh/nameless_cms\n", + "alexvollmer/clip - id: 6581, url: https://github.com/alexvollmer/clip\n", + "garth/commandpost - id: 6596, url: https://github.com/garth/commandpost\n", + "johnson/restful-authentication - id: 6610, url: https://github.com/johnson/restful-authentication\n", + "sacado/arc2c - id: 6617, url: https://github.com/sacado/arc2c\n", + "gruner/radiant_extensions - id: 6621, url: https://github.com/gruner/radiant_extensions\n", + "cypher/codebutler - id: 6623, url: https://github.com/cypher/codebutler\n", + "BuJo/pling - id: 6640, url: https://github.com/BuJo/pling\n", + "foca/scriptaculous - id: 6649, url: https://github.com/foca/scriptaculous\n", + "vin/challenge - id: 6653, url: https://github.com/vin/challenge\n", + "dchelimsky/rspec-tmbundle - id: 6665, url: https://github.com/dchelimsky/rspec-tmbundle\n", + "dchelimsky/rspec-rails - id: 6668, url: https://github.com/dchelimsky/rspec-rails\n", + "galo2099/golaberto - id: 6675, url: https://github.com/galo2099/golaberto\n", + "voodoorai2000/capistrano - id: 6683, url: https://github.com/voodoorai2000/capistrano\n", + "dansimpson61/shoes - id: 6685, url: https://github.com/dansimpson61/shoes\n", + "eki/vying-games - id: 6694, url: https://github.com/eki/vying-games\n", + "prometheusxx/demokratia - id: 6699, url: https://github.com/prometheusxx/demokratia\n", + "jochu/clojure-mode - id: 6700, url: https://github.com/jochu/clojure-mode\n", + "jochu/swank-clojure - id: 6701, url: https://github.com/jochu/swank-clojure\n", + "shayarnett/trachouse - id: 6702, url: https://github.com/shayarnett/trachouse\n", + "shirkevich/ultimate-beast - id: 6717, url: https://github.com/shirkevich/ultimate-beast\n", + "osteele/openlaszlo-json - id: 6718, url: https://github.com/osteele/openlaszlo-json\n", + "drone-rites/reputator - id: 6729, url: https://github.com/drone-rites/reputator\n", + "lamdor/rubyfit - id: 6735, url: https://github.com/lamdor/rubyfit\n", + "kasei/perlrdf - id: 6738, url: https://github.com/kasei/perlrdf\n", + "ynd/clisp-branch--ynd-devel - id: 6744, url: https://github.com/ynd/clisp-branch--ynd-devel\n", + "AndrewO/fast_snippet - id: 6745, url: https://github.com/AndrewO/fast_snippet\n", + "manicolosi/manico-crumbs - id: 6758, url: https://github.com/manicolosi/manico-crumbs\n", + "isaac/markaby - id: 6760, url: https://github.com/isaac/markaby\n", + "arnie/joshissexy - id: 6767, url: https://github.com/arnie/joshissexy\n", + "aaronsw/watchdog - id: 6770, url: https://github.com/aaronsw/watchdog\n", + "jochu/clojure-extra - id: 6772, url: https://github.com/jochu/clojure-extra\n", + "mralex/todoer - id: 6780, url: https://github.com/mralex/todoer\n", + "farktronix/adiumhud - id: 6792, url: https://github.com/farktronix/adiumhud\n", + "farktronix/eulersolutions - id: 6795, url: https://github.com/farktronix/eulersolutions\n", + "ascarter/capistrano - id: 6799, url: https://github.com/ascarter/capistrano\n", + "Jose-xx/practicasedi - id: 6800, url: https://github.com/Jose-xx/practicasedi\n", + "clarkbw/thunderbird-bugzilla-link-grabber - id: 6803, url: https://github.com/clarkbw/thunderbird-bugzilla-link-grabber\n", + "ihower/spakit - id: 6807, url: https://github.com/ihower/spakit\n", + "dustin/logmerge - id: 6808, url: https://github.com/dustin/logmerge\n", + "sintaxi/merb_bot_test - id: 6826, url: https://github.com/sintaxi/merb_bot_test\n", + "Frost/voteapp - id: 6829, url: https://github.com/Frost/voteapp\n", + "kib2/texbases - id: 6833, url: https://github.com/kib2/texbases\n", + "luniki/flexi-templates - id: 6845, url: https://github.com/luniki/flexi-templates\n", + "luniki/trails - id: 6846, url: https://github.com/luniki/trails\n", + "rubys/mars - id: 6848, url: https://github.com/rubys/mars\n", + "stuarthalloway/relevance-ruby-samples - id: 6864, url: https://github.com/stuarthalloway/relevance-ruby-samples\n", + "jmettraux/rufus-mnemo - id: 6867, url: https://github.com/jmettraux/rufus-mnemo\n", + "relevance/log_buddy - id: 6868, url: https://github.com/relevance/log_buddy\n", + "haraldmartin/prototype - id: 6869, url: https://github.com/haraldmartin/prototype\n", + "haraldmartin/scriptaculous - id: 6870, url: https://github.com/haraldmartin/scriptaculous\n", + "railsmachine/parseconfig - id: 6882, url: https://github.com/railsmachine/parseconfig\n", + "relevance/cap_gun - id: 6883, url: https://github.com/relevance/cap_gun\n", + "bscofield/tester_xtreme - id: 6898, url: https://github.com/bscofield/tester_xtreme\n", + "bscofield/sandstone - id: 6913, url: https://github.com/bscofield/sandstone\n", + "treybean/tandem - id: 6923, url: https://github.com/treybean/tandem\n", + "gravityblast/radiant-newsletter - id: 6930, url: https://github.com/gravityblast/radiant-newsletter\n", + "nmerouze/qtjruby-more - id: 6942, url: https://github.com/nmerouze/qtjruby-more\n", + "phpwax/phpwax - id: 6948, url: https://github.com/phpwax/phpwax\n", + "kerryb/rspec-example - id: 6961, url: https://github.com/kerryb/rspec-example\n", + "jarkko/smartbooks - id: 6962, url: https://github.com/jarkko/smartbooks\n", + "redsymbol/l2p - id: 6963, url: https://github.com/redsymbol/l2p\n", + "joserojas/nexty - id: 6975, url: https://github.com/joserojas/nexty\n", + "nickstenning/micromvc - id: 7000, url: https://github.com/nickstenning/micromvc\n", + "scoop/basecampfire - id: 7011, url: https://github.com/scoop/basecampfire\n", + "defunkt/test_spec_on_rails - id: 7012, url: https://github.com/defunkt/test_spec_on_rails\n", + "dalmaer/ytranscript - id: 7015, url: https://github.com/dalmaer/ytranscript\n", + "mfb/vozmob - id: 7018, url: https://github.com/mfb/vozmob\n", + "balinterdi/myvocab - id: 7023, url: https://github.com/balinterdi/myvocab\n", + "leachim6/djournell - id: 7029, url: https://github.com/leachim6/djournell\n", + "scoop/basecamp_notify - id: 7030, url: https://github.com/scoop/basecamp_notify\n", + "rpj/screenr - id: 7039, url: https://github.com/rpj/screenr\n", + "bkerley/chronicle - id: 7046, url: https://github.com/bkerley/chronicle\n", + "foca/rdie - id: 7048, url: https://github.com/foca/rdie\n", + "prawnpdf/prawn - id: 7050, url: https://github.com/prawnpdf/prawn\n", + "hfwang/resource_this - id: 7051, url: https://github.com/hfwang/resource_this\n", + "vic/redleaf - id: 7058, url: https://github.com/vic/redleaf\n", + "jchris/zombieurl - id: 7060, url: https://github.com/jchris/zombieurl\n", + "technicalpickles/deliciousr - id: 7061, url: https://github.com/technicalpickles/deliciousr\n", + "jvaughan/harplayout - id: 7065, url: https://github.com/jvaughan/harplayout\n", + "robertknight/kdevelop - id: 7066, url: https://github.com/robertknight/kdevelop\n", + "cpjolicoeur/prototypegrowl - id: 7069, url: https://github.com/cpjolicoeur/prototypegrowl\n", + "juggy/bolide - id: 7070, url: https://github.com/juggy/bolide\n", + "losinggeneration/sdl4cpp - id: 7075, url: https://github.com/losinggeneration/sdl4cpp\n", + "osteele/mop-js - id: 7080, url: https://github.com/osteele/mop-js\n", + "losinggeneration/buildcross - id: 7081, url: https://github.com/losinggeneration/buildcross\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "osteele/db_content - id: 7082, url: https://github.com/osteele/db_content\n", + "losinggeneration/kos - id: 7083, url: https://github.com/losinggeneration/kos\n", + "osteele/lzosutils - id: 7085, url: https://github.com/osteele/lzosutils\n", + "losinggeneration/kos-ports - id: 7086, url: https://github.com/losinggeneration/kos-ports\n", + "nakajima/nakatype - id: 7089, url: https://github.com/nakajima/nakatype\n", + "jmckible/stardate - id: 7090, url: https://github.com/jmckible/stardate\n", + "schlu/simpltryjs - id: 7097, url: https://github.com/schlu/simpltryjs\n", + "jmckible/foodlab - id: 7098, url: https://github.com/jmckible/foodlab\n", + "jmckible/wiffled - id: 7100, url: https://github.com/jmckible/wiffled\n", + "jmckible/mckible-com - id: 7103, url: https://github.com/jmckible/mckible-com\n", + "jmckible/girder - id: 7104, url: https://github.com/jmckible/girder\n", + "jmckible/corkboard - id: 7105, url: https://github.com/jmckible/corkboard\n", + "jmckible/uncorked - id: 7107, url: https://github.com/jmckible/uncorked\n", + "unpush/p2-php - id: 7112, url: https://github.com/unpush/p2-php\n", + "dustin/environ - id: 7118, url: https://github.com/dustin/environ\n", + "fbrunel/twitterdroid - id: 7120, url: https://github.com/fbrunel/twitterdroid\n", + "tyler/roomy - id: 7122, url: https://github.com/tyler/roomy\n", + "bmabey/rspec-tmbundle - id: 7129, url: https://github.com/bmabey/rspec-tmbundle\n", + "dustin/ibutton - id: 7133, url: https://github.com/dustin/ibutton\n", + "technoweenie/can_search - id: 7135, url: https://github.com/technoweenie/can_search\n", + "smtlaissezfaire/git-rev-num - id: 7139, url: https://github.com/smtlaissezfaire/git-rev-num\n", + "gravityblast/radiant-copy-move - id: 7151, url: https://github.com/gravityblast/radiant-copy-move\n", + "wpozar/duskify - id: 7155, url: https://github.com/wpozar/duskify\n", + "asosa/dot_files - id: 7159, url: https://github.com/asosa/dot_files\n", + "mhennemeyer/stepspecr - id: 7164, url: https://github.com/mhennemeyer/stepspecr\n", + "Manfred/attachment-san - id: 7165, url: https://github.com/Manfred/attachment-san\n", + "timshadel/groupwise-to-ical - id: 7166, url: https://github.com/timshadel/groupwise-to-ical\n", + "timshadel/jboss-rules-presentation-may-2007 - id: 7169, url: https://github.com/timshadel/jboss-rules-presentation-may-2007\n", + "dramatis/dramatis - id: 7171, url: https://github.com/dramatis/dramatis\n", + "karouf/osm-cherrypick - id: 7176, url: https://github.com/karouf/osm-cherrypick\n", + "dustin/app-hider - id: 7197, url: https://github.com/dustin/app-hider\n", + "delynn/userstamp_sample - id: 7199, url: https://github.com/delynn/userstamp_sample\n", + "al-skobelev/nu - id: 7201, url: https://github.com/al-skobelev/nu\n", + "dustin/py-backpack - id: 7202, url: https://github.com/dustin/py-backpack\n", + "rsl/acts_as_snook - id: 7205, url: https://github.com/rsl/acts_as_snook\n", + "joevandyk/monkeycharger - id: 7208, url: https://github.com/joevandyk/monkeycharger\n", + "karouf/osmtoday - id: 7209, url: https://github.com/karouf/osmtoday\n", + "halfbyte/akut-webpage - id: 7212, url: https://github.com/halfbyte/akut-webpage\n", + "vitaly/test - id: 7213, url: https://github.com/vitaly/test\n", + "dustin/photosync - id: 7214, url: https://github.com/dustin/photosync\n", + "mcandre/yellosoft-apps - id: 7215, url: https://github.com/mcandre/yellosoft-apps\n", + "ymendel/flac2mp3 - id: 7220, url: https://github.com/ymendel/flac2mp3\n", + "djtal/ludomanager - id: 7222, url: https://github.com/djtal/ludomanager\n", + "russ/gitnub-gtk - id: 7239, url: https://github.com/russ/gitnub-gtk\n", + "jm/docr - id: 7241, url: https://github.com/jm/docr\n", + "halorgium/mail_admin - id: 7249, url: https://github.com/halorgium/mail_admin\n", + "matthieu/rose-and-roach - id: 7255, url: https://github.com/matthieu/rose-and-roach\n", + "ap/gtk-chtheme - id: 7258, url: https://github.com/ap/gtk-chtheme\n", + "dustin/java-digg - id: 7275, url: https://github.com/dustin/java-digg\n", + "andreyvit/yoursway-sadr - id: 7277, url: https://github.com/andreyvit/yoursway-sadr\n", + "dustin/diggwatch - id: 7280, url: https://github.com/dustin/diggwatch\n", + "dustin/spyjar - id: 7283, url: https://github.com/dustin/spyjar\n", + "patmaddox/string-expand_path - id: 7285, url: https://github.com/patmaddox/string-expand_path\n", + "chriseidhof/the-real-plazes - id: 7291, url: https://github.com/chriseidhof/the-real-plazes\n", + "dgl/cgiirc - id: 7292, url: https://github.com/dgl/cgiirc\n", + "patmaddox/with_context - id: 7298, url: https://github.com/patmaddox/with_context\n", + "alvin2ye/agideo - id: 7302, url: https://github.com/alvin2ye/agideo\n", + "teg/atomic-flows-ii - id: 7313, url: https://github.com/teg/atomic-flows-ii\n", + "gma/adl - id: 7316, url: https://github.com/gma/adl\n", + "ircnelson/yuno-old - id: 7320, url: https://github.com/ircnelson/yuno-old\n", + "testk/test - id: 7323, url: https://github.com/testk/test\n", + "testk/test2 - id: 7325, url: https://github.com/testk/test2\n", + "karouf/typocosmy - id: 7327, url: https://github.com/karouf/typocosmy\n", + "kioopi/plotter - id: 7335, url: https://github.com/kioopi/plotter\n", + "jgm/markdown-peg - id: 7340, url: https://github.com/jgm/markdown-peg\n", + "balinterdi/photo-uploader - id: 7356, url: https://github.com/balinterdi/photo-uploader\n", + "jamesgolick/action_messager - id: 7360, url: https://github.com/jamesgolick/action_messager\n", + "rincewind/nu - id: 7362, url: https://github.com/rincewind/nu\n", + "vito/chyrp - id: 7368, url: https://github.com/vito/chyrp\n", + "Soleone/rigel - id: 7370, url: https://github.com/Soleone/rigel\n", + "halfbyte/bleistiftstummel - id: 7373, url: https://github.com/halfbyte/bleistiftstummel\n", + "deweerdt/little - id: 7388, url: https://github.com/deweerdt/little\n", + "ajpieri/siue-programs - id: 7403, url: https://github.com/ajpieri/siue-programs\n", + "jmettraux/rufus-decision - id: 7410, url: https://github.com/jmettraux/rufus-decision\n", + "djones/pound-append - id: 7424, url: https://github.com/djones/pound-append\n", + "jmettraux/rufus-dollar - id: 7430, url: https://github.com/jmettraux/rufus-dollar\n", + "hopkinsd/webvo - id: 7444, url: https://github.com/hopkinsd/webvo\n", + "torstenschuenemann/testintorstengithub - id: 7446, url: https://github.com/torstenschuenemann/testintorstengithub\n", + "halfbyte/bookstr - id: 7450, url: https://github.com/halfbyte/bookstr\n", + "taansen/alonetone - id: 7454, url: https://github.com/taansen/alonetone\n", + "dustin/photoupload - id: 7456, url: https://github.com/dustin/photoupload\n", + "IceskYsl/1stlog - id: 7457, url: https://github.com/IceskYsl/1stlog\n", + "mudge/asset_compressor - id: 7474, url: https://github.com/mudge/asset_compressor\n", + "rubaidh/acts_as_param - id: 7478, url: https://github.com/rubaidh/acts_as_param\n", + "rubaidh/default_scope - id: 7479, url: https://github.com/rubaidh/default_scope\n", + "atduskgreg/rad - id: 7480, url: https://github.com/atduskgreg/rad\n", + "rubaidh/default_values - id: 7481, url: https://github.com/rubaidh/default_values\n", + "rubaidh/enhance_composed_of - id: 7482, url: https://github.com/rubaidh/enhance_composed_of\n", + "rubaidh/form_builders - id: 7483, url: https://github.com/rubaidh/form_builders\n", + "rubaidh/google_ads - id: 7484, url: https://github.com/rubaidh/google_ads\n", + "rubaidh/google_analytics - id: 7485, url: https://github.com/rubaidh/google_analytics\n", + "rubaidh/inheritable_routing - id: 7486, url: https://github.com/rubaidh/inheritable_routing\n", + "rubaidh/namespaced_nested_resources - id: 7488, url: https://github.com/rubaidh/namespaced_nested_resources\n", + "rubaidh/resource_search - id: 7490, url: https://github.com/rubaidh/resource_search\n", + "rubaidh/authentication - id: 7491, url: https://github.com/rubaidh/authentication\n", + "rubaidh/yet_another_form_builder - id: 7493, url: https://github.com/rubaidh/yet_another_form_builder\n", + "halfbyte/jslogo - id: 7494, url: https://github.com/halfbyte/jslogo\n", + "spejman/meta-rails - id: 7495, url: https://github.com/spejman/meta-rails\n", + "formtastic/formtastic - id: 7497, url: https://github.com/formtastic/formtastic\n", + "mudge/jquery_example - id: 7514, url: https://github.com/mudge/jquery_example\n", + "mudge/jquery_clear - id: 7516, url: https://github.com/mudge/jquery_clear\n", + "osteele/javascript_fu - id: 7521, url: https://github.com/osteele/javascript_fu\n", + "rubaidh/fsevent - id: 7522, url: https://github.com/rubaidh/fsevent\n", + "rubaidh/zetta - id: 7524, url: https://github.com/rubaidh/zetta\n", + "collectiveidea/google_analytics - id: 7535, url: https://github.com/collectiveidea/google_analytics\n", + "pamalite/segp2 - id: 7550, url: https://github.com/pamalite/segp2\n", + "lucashungaro/reserved_attributes - id: 7565, url: https://github.com/lucashungaro/reserved_attributes\n", + "joshu/mars - id: 7566, url: https://github.com/joshu/mars\n", + "jeremyevans/scaffolding_extensions - id: 7572, url: https://github.com/jeremyevans/scaffolding_extensions\n", + "matthewjcarlson/acts_as_chimp - id: 7582, url: https://github.com/matthewjcarlson/acts_as_chimp\n", + "bigfleet/data_table - id: 7584, url: https://github.com/bigfleet/data_table\n", + "Manfred/reckon - id: 7592, url: https://github.com/Manfred/reckon\n", + "ndemonner/stone - id: 7602, url: https://github.com/ndemonner/stone\n", + "kogakure/moinmoin-theme-kaijin - id: 7610, url: https://github.com/kogakure/moinmoin-theme-kaijin\n", + "jeremyevans/ape_tag_libs - id: 7611, url: https://github.com/jeremyevans/ape_tag_libs\n", + "evocateur/race - id: 7618, url: https://github.com/evocateur/race\n", + "joevandyk/pkgsrc - id: 7619, url: https://github.com/joevandyk/pkgsrc\n", + "dramatis/dramatis-redmine - id: 7644, url: https://github.com/dramatis/dramatis-redmine\n", + "jeremyevans/ruby-cicphash - id: 7648, url: https://github.com/jeremyevans/ruby-cicphash\n", + "bmizerany/capistrano-bells - id: 7650, url: https://github.com/bmizerany/capistrano-bells\n", + "jeremyevans/ruby-scgi - id: 7652, url: https://github.com/jeremyevans/ruby-scgi\n", + "jeremyevans/ruby-style - id: 7654, url: https://github.com/jeremyevans/ruby-style\n", + "tjweir/liftweb-fridgemagnets - id: 7655, url: https://github.com/tjweir/liftweb-fridgemagnets\n", + "jeremyevans/ruby-vorbis_comment - id: 7658, url: https://github.com/jeremyevans/ruby-vorbis_comment\n", + "cstoner/ergo - id: 7659, url: https://github.com/cstoner/ergo\n", + "jeremyevans/fixture_dependencies - id: 7661, url: https://github.com/jeremyevans/fixture_dependencies\n", + "jeremyevans/simple_ldap_authenticator - id: 7663, url: https://github.com/jeremyevans/simple_ldap_authenticator\n", + "poor666/ruby-on-rails-tmbundle - id: 7680, url: https://github.com/poor666/ruby-on-rails-tmbundle\n", + "eastmedia/dl_forms - id: 7682, url: https://github.com/eastmedia/dl_forms\n", + "jmettraux/rufus-sqs - id: 7683, url: https://github.com/jmettraux/rufus-sqs\n", + "jmettraux/rufus-rtm - id: 7690, url: https://github.com/jmettraux/rufus-rtm\n", + "halfbyte/cmdv3 - id: 7697, url: https://github.com/halfbyte/cmdv3\n", + "tobie/pdoc - id: 7698, url: https://github.com/tobie/pdoc\n", + "dbarros/git-tmbundle - id: 7702, url: https://github.com/dbarros/git-tmbundle\n", + "napcs/docbook - id: 7707, url: https://github.com/napcs/docbook\n", + "lukemelia/basecamp_notify - id: 7711, url: https://github.com/lukemelia/basecamp_notify\n", + "dmeiz/numz - id: 7712, url: https://github.com/dmeiz/numz\n", + "drazed/targetless - id: 7713, url: https://github.com/drazed/targetless\n", + "kumpera/dataflow - id: 7716, url: https://github.com/kumpera/dataflow\n", + "macournoyer/thin-turbo - id: 7726, url: https://github.com/macournoyer/thin-turbo\n", + "halorgium/crondle - id: 7737, url: https://github.com/halorgium/crondle\n", + "acunote/acunote-shortcuts - id: 7743, url: https://github.com/acunote/acunote-shortcuts\n", + "lukebayes/laml - id: 7757, url: https://github.com/lukebayes/laml\n", + "jorrel/soniqck - id: 7770, url: https://github.com/jorrel/soniqck\n", + "nkallen/jquery-database - id: 7771, url: https://github.com/nkallen/jquery-database\n", + "jkk/eidogo - id: 7776, url: https://github.com/jkk/eidogo\n", + "vyache/will_paginate - id: 7777, url: https://github.com/vyache/will_paginate\n", + "NeilW/3accounts - id: 7778, url: https://github.com/NeilW/3accounts\n", + "crossblaim/campfire-theme-for-colloquy - id: 7804, url: https://github.com/crossblaim/campfire-theme-for-colloquy\n", + "bond/xmlreports - id: 7805, url: https://github.com/bond/xmlreports\n", + "daikini/fityk-ruby - id: 7813, url: https://github.com/daikini/fityk-ruby\n", + "daikini/matlab-ruby - id: 7814, url: https://github.com/daikini/matlab-ruby\n", + "daikini/octave-ruby - id: 7815, url: https://github.com/daikini/octave-ruby\n", + "daikini/paysimple - id: 7816, url: https://github.com/daikini/paysimple\n", + "daikini/rubicus - id: 7817, url: https://github.com/daikini/rubicus\n", + "pdamer/sequel - id: 7818, url: https://github.com/pdamer/sequel\n", + "kangax/protolicious - id: 7820, url: https://github.com/kangax/protolicious\n", + "gaustin/web-rb - id: 7840, url: https://github.com/gaustin/web-rb\n", + "aiqbal/acamedia - id: 7842, url: https://github.com/aiqbal/acamedia\n", + "mico/xmlreports - id: 7843, url: https://github.com/mico/xmlreports\n", + "threebytesfull/perltest - id: 7847, url: https://github.com/threebytesfull/perltest\n", + "Ramarren/png-read - id: 7855, url: https://github.com/Ramarren/png-read\n", + "kelvie/basket - id: 7870, url: https://github.com/kelvie/basket\n", + "quicklywilliam/thesis - id: 7878, url: https://github.com/quicklywilliam/thesis\n", + "nmeans/sinatra - id: 7887, url: https://github.com/nmeans/sinatra\n", + "cptfinch/utility_scripts - id: 7894, url: https://github.com/cptfinch/utility_scripts\n", + "kyle-johnson/libgitread - id: 7910, url: https://github.com/kyle-johnson/libgitread\n", + "cyberfox/jbidwatcher - id: 7915, url: https://github.com/cyberfox/jbidwatcher\n", + "liquidm/preference_fu - id: 7924, url: https://github.com/liquidm/preference_fu\n", + "deadprogram/frankie - id: 7927, url: https://github.com/deadprogram/frankie\n", + "al3x/lyrics - id: 7928, url: https://github.com/al3x/lyrics\n", + "wycats/laszlo_post_api - id: 7940, url: https://github.com/wycats/laszlo_post_api\n", + "jmatt/urlnows - id: 7943, url: https://github.com/jmatt/urlnows\n", + "jmatt/slashloc - id: 7944, url: https://github.com/jmatt/slashloc\n", + "mcarlson/laszlo_post_api - id: 7945, url: https://github.com/mcarlson/laszlo_post_api\n", + "justinperkins/us-r32-registry - id: 7946, url: https://github.com/justinperkins/us-r32-registry\n", + "atduskgreg/mofo - id: 7949, url: https://github.com/atduskgreg/mofo\n", + "adeel/shucker - id: 7951, url: https://github.com/adeel/shucker\n", + "sudothinker/pic-a-day - id: 7959, url: https://github.com/sudothinker/pic-a-day\n", + "auser/frankie - id: 7964, url: https://github.com/auser/frankie\n", + "jchris/fug-this- - id: 7970, url: https://github.com/jchris/fug-this-\n", + "justinperkins/enjoybeing - id: 7984, url: https://github.com/justinperkins/enjoybeing\n", + "wizardwerdna/juditourney - id: 7988, url: https://github.com/wizardwerdna/juditourney\n", + "xenoterracide/etc - id: 7992, url: https://github.com/xenoterracide/etc\n", + "defunkt/sake-tasks - id: 7997, url: https://github.com/defunkt/sake-tasks\n", + "keita/timeoutx - id: 8000, url: https://github.com/keita/timeoutx\n", + "ianwhite/resources_controller - id: 8001, url: https://github.com/ianwhite/resources_controller\n", + "Fudge/gitidea - id: 8016, url: https://github.com/Fudge/gitidea\n", + "slaskis/six3d - id: 8026, url: https://github.com/slaskis/six3d\n", + "mathie/books - id: 8029, url: https://github.com/mathie/books\n", + "lukeredpath/coopexport - id: 8034, url: https://github.com/lukeredpath/coopexport\n", + "bergie/subethaedit-zenburn - id: 8042, url: https://github.com/bergie/subethaedit-zenburn\n", + "kana/config - id: 8045, url: https://github.com/kana/config\n", + "keita/ruby-kizapi - id: 8047, url: https://github.com/keita/ruby-kizapi\n", + "kana/vim - id: 8049, url: https://github.com/kana/vim\n", + "obeattie/django-geo - id: 8055, url: https://github.com/obeattie/django-geo\n", + "funkatron/lyrics - id: 8058, url: https://github.com/funkatron/lyrics\n", + "shingara/screeneur-lys - id: 8065, url: https://github.com/shingara/screeneur-lys\n", + "freels/ruby_trie - id: 8077, url: https://github.com/freels/ruby_trie\n", + "pyrat/basecamp_notify - id: 8091, url: https://github.com/pyrat/basecamp_notify\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sr/sake-tasks - id: 8094, url: https://github.com/sr/sake-tasks\n", + "parabuzzle/toobs - id: 8121, url: https://github.com/parabuzzle/toobs\n", + "mislav/bluecloth - id: 8131, url: https://github.com/mislav/bluecloth\n", + "malfunction54/g33ku - id: 8132, url: https://github.com/malfunction54/g33ku\n", + "omghax/acts_as_state_machine - id: 8136, url: https://github.com/omghax/acts_as_state_machine\n", + "alexs/salva-old - id: 8146, url: https://github.com/alexs/salva-old\n", + "halorgium/rubuildius - id: 8173, url: https://github.com/halorgium/rubuildius\n", + "freireag/bambooine - id: 8175, url: https://github.com/freireag/bambooine\n", + "jamesmacaulay/old-office-party - id: 8179, url: https://github.com/jamesmacaulay/old-office-party\n", + "evanwalsh/cloverfaust - id: 8181, url: https://github.com/evanwalsh/cloverfaust\n", + "ascarter/workling - id: 8186, url: https://github.com/ascarter/workling\n", + "petrov/res_reader - id: 8187, url: https://github.com/petrov/res_reader\n", + "wycats/sake - id: 8191, url: https://github.com/wycats/sake\n", + "shoe/rubber - id: 8194, url: https://github.com/shoe/rubber\n", + "alloy/undercover - id: 8198, url: https://github.com/alloy/undercover\n", + "mlins/active_migration - id: 8214, url: https://github.com/mlins/active_migration\n", + "joevandyk/webrat - id: 8215, url: https://github.com/joevandyk/webrat\n", + "codahale/path_mapper - id: 8227, url: https://github.com/codahale/path_mapper\n", + "jmettraux/ruote - id: 8229, url: https://github.com/jmettraux/ruote\n", + "vic/lispy - id: 8249, url: https://github.com/vic/lispy\n", + "Illydth/wowraidmanager - id: 8252, url: https://github.com/Illydth/wowraidmanager\n", + "keita/rtask - id: 8256, url: https://github.com/keita/rtask\n", + "ELLIOTTCABLE/merb_strokedb - id: 8257, url: https://github.com/ELLIOTTCABLE/merb_strokedb\n", + "dougal/daemon_generator - id: 8268, url: https://github.com/dougal/daemon_generator\n", + "ssurfer/earth - id: 8277, url: https://github.com/ssurfer/earth\n", + "be9/merb_strokedb - id: 8283, url: https://github.com/be9/merb_strokedb\n", + "rubaidh/timestamped_booleans - id: 8287, url: https://github.com/rubaidh/timestamped_booleans\n", + "robmckinnon/pottery - id: 8290, url: https://github.com/robmckinnon/pottery\n", + "alx/openid-server - id: 8293, url: https://github.com/alx/openid-server\n", + "keita/ruby-weatherhacks - id: 8299, url: https://github.com/keita/ruby-weatherhacks\n", + "sporkmonger/squish - id: 8302, url: https://github.com/sporkmonger/squish\n", + "maxlapshin/kladr - id: 8303, url: https://github.com/maxlapshin/kladr\n", + "captproton/spree - id: 8304, url: https://github.com/captproton/spree\n", + "jarkko/railsecommerce - id: 8311, url: https://github.com/jarkko/railsecommerce\n", + "mlins/godwit - id: 8332, url: https://github.com/mlins/godwit\n", + "tomtt/schema-browser - id: 8337, url: https://github.com/tomtt/schema-browser\n", + "dustin/py-github - id: 8338, url: https://github.com/dustin/py-github\n", + "tadman/marml - id: 8339, url: https://github.com/tadman/marml\n", + "JackDanger/hacker_news - id: 8350, url: https://github.com/JackDanger/hacker_news\n", + "graywh/utstats - id: 8354, url: https://github.com/graywh/utstats\n", + "dsisnero/sake-git - id: 8357, url: https://github.com/dsisnero/sake-git\n", + "insomniapps/crushinator - id: 8360, url: https://github.com/insomniapps/crushinator\n", + "quinn/soundboard - id: 8364, url: https://github.com/quinn/soundboard\n", + "jmesnil/jmx4r - id: 8371, url: https://github.com/jmesnil/jmx4r\n", + "mhartl/insoshi - id: 8372, url: https://github.com/mhartl/insoshi\n", + "bfintl/missionsbridge - id: 8375, url: https://github.com/bfintl/missionsbridge\n", + "russ/gosu-tetris - id: 8376, url: https://github.com/russ/gosu-tetris\n", + "vbehar/pyquizz - id: 8389, url: https://github.com/vbehar/pyquizz\n", + "jasonf/utility_scripts - id: 8390, url: https://github.com/jasonf/utility_scripts\n", + "thoughtbot/paperclip - id: 8393, url: https://github.com/thoughtbot/paperclip\n", + "tekkub/github_catcher - id: 8401, url: https://github.com/tekkub/github_catcher\n", + "wparsons/rails_starter - id: 8408, url: https://github.com/wparsons/rails_starter\n", + "ebassi/tweet - id: 8413, url: https://github.com/ebassi/tweet\n", + "fjolnir/DatabaseKit - id: 8427, url: https://github.com/fjolnir/DatabaseKit\n", + "bunions1/py-github - id: 8432, url: https://github.com/bunions1/py-github\n", + "jmatt/arch - id: 8436, url: https://github.com/jmatt/arch\n", + "jmatt/loc - id: 8437, url: https://github.com/jmatt/loc\n", + "asahopkins/ocmanager - id: 8448, url: https://github.com/asahopkins/ocmanager\n", + "joevandyk/contraction-watcher - id: 8454, url: https://github.com/joevandyk/contraction-watcher\n", + "stuartloxton/cakephp-ytdatasource - id: 8461, url: https://github.com/stuartloxton/cakephp-ytdatasource\n", + "parabuzzle/lookgit - id: 8463, url: https://github.com/parabuzzle/lookgit\n", + "walf443/rspec-fixture - id: 8464, url: https://github.com/walf443/rspec-fixture\n", + "bmizerany/frankie - id: 8465, url: https://github.com/bmizerany/frankie\n", + "mbleigh/hooktastic - id: 8469, url: https://github.com/mbleigh/hooktastic\n", + "cyu/beast_private_message_plugin - id: 8483, url: https://github.com/cyu/beast_private_message_plugin\n", + "advancer-zz/test - id: 8484, url: https://github.com/advancer-zz/test\n", + "toland/app_version - id: 8490, url: https://github.com/toland/app_version\n", + "mansfiem/ruby-and-peaches - id: 8496, url: https://github.com/mansfiem/ruby-and-peaches\n", + "cmorss/9places-iphone - id: 8505, url: https://github.com/cmorss/9places-iphone\n", + "rails/rails - id: 8514, url: https://github.com/rails/rails\n", + "pope/watchtower - id: 8516, url: https://github.com/pope/watchtower\n", + "redsquirrel/nest - id: 8518, url: https://github.com/redsquirrel/nest\n", + "cyu/beast_multi_site_plugin - id: 8519, url: https://github.com/cyu/beast_multi_site_plugin\n", + "cyu/beast_style_editor_plugin - id: 8520, url: https://github.com/cyu/beast_style_editor_plugin\n", + "cyu/beast_iphone_plugin - id: 8522, url: https://github.com/cyu/beast_iphone_plugin\n", + "lulurun/openugai - id: 8525, url: https://github.com/lulurun/openugai\n", + "OwlManAtt/activephp - id: 8531, url: https://github.com/OwlManAtt/activephp\n", + "veader/rails - id: 8534, url: https://github.com/veader/rails\n", + "CarlosGabaldon/my_way - id: 8535, url: https://github.com/CarlosGabaldon/my_way\n", + "ddollar/rails - id: 8536, url: https://github.com/ddollar/rails\n", + "cardmagic/dm-www - id: 8549, url: https://github.com/cardmagic/dm-www\n", + "NZKoz/rails - id: 8550, url: https://github.com/NZKoz/rails\n", + "funkatron/ft5000 - id: 8558, url: https://github.com/funkatron/ft5000\n", + "relevance/etc - id: 8565, url: https://github.com/relevance/etc\n", + "sudothinker/rails - id: 8583, url: https://github.com/sudothinker/rails\n", + "jmathai/jaisenmathai - id: 8597, url: https://github.com/jmathai/jaisenmathai\n", + "jorrel/codes - id: 8601, url: https://github.com/jorrel/codes\n", + "kovyrin/smart-proxy - id: 8612, url: https://github.com/kovyrin/smart-proxy\n", + "KirinDave/graphinator - id: 8619, url: https://github.com/KirinDave/graphinator\n", + "pyrat/nginx_config_generator - id: 8621, url: https://github.com/pyrat/nginx_config_generator\n", + "jchris/appdrop - id: 8622, url: https://github.com/jchris/appdrop\n", + "saimonmoore/restful_acl - id: 8627, url: https://github.com/saimonmoore/restful_acl\n", + "vboctor/disposable_email_checker - id: 8629, url: https://github.com/vboctor/disposable_email_checker\n", + "ciriarte/nwd - id: 8631, url: https://github.com/ciriarte/nwd\n", + "shayanoh/ismile - id: 8644, url: https://github.com/shayanoh/ismile\n", + "gaubert/balivernes - id: 8658, url: https://github.com/gaubert/balivernes\n", + "gravityblast/radiant-gallery - id: 8659, url: https://github.com/gravityblast/radiant-gallery\n", + "zmalltalker/git-wiki - id: 8672, url: https://github.com/zmalltalker/git-wiki\n", + "lypanov/rubydium - id: 8673, url: https://github.com/lypanov/rubydium\n", + "dfischer/gruff - id: 8675, url: https://github.com/dfischer/gruff\n", + "kematzy/resource_controller - id: 8677, url: https://github.com/kematzy/resource_controller\n", + "tslocke/hobocentral - id: 8679, url: https://github.com/tslocke/hobocentral\n", + "mpant/insoshi - id: 8697, url: https://github.com/mpant/insoshi\n", + "uggedal/halcyon - id: 8699, url: https://github.com/uggedal/halcyon\n", + "langalex/dead_simple_reports - id: 8710, url: https://github.com/langalex/dead_simple_reports\n", + "afareg/baby - id: 8713, url: https://github.com/afareg/baby\n", + "jacmet/nwtool - id: 8714, url: https://github.com/jacmet/nwtool\n", + "langalex/forms-fu - id: 8715, url: https://github.com/langalex/forms-fu\n", + "scharris/cxpath - id: 8719, url: https://github.com/scharris/cxpath\n", + "keita/kanpou-watcher - id: 8728, url: https://github.com/keita/kanpou-watcher\n", + "obeattie/oliver-beattie--version-5 - id: 8730, url: https://github.com/obeattie/oliver-beattie--version-5\n", + "fabiooda/alfarrubyo - id: 8735, url: https://github.com/fabiooda/alfarrubyo\n", + "jdelStrother/rails - id: 8742, url: https://github.com/jdelStrother/rails\n", + "zmalltalker/doc-rails - id: 8747, url: https://github.com/zmalltalker/doc-rails\n", + "bricooke/mkmt-more - id: 8748, url: https://github.com/bricooke/mkmt-more\n", + "DAddYE/lipsiadmin - id: 8754, url: https://github.com/DAddYE/lipsiadmin\n", + "TTimo/dupinanny - id: 8757, url: https://github.com/TTimo/dupinanny\n", + "guitsaru/rbvimeo - id: 8760, url: https://github.com/guitsaru/rbvimeo\n", + "rubaidh/yui_on_rails - id: 8778, url: https://github.com/rubaidh/yui_on_rails\n", + "tedkulp/bossogg - id: 8779, url: https://github.com/tedkulp/bossogg\n", + "pyrat/faq_u - id: 8782, url: https://github.com/pyrat/faq_u\n", + "OwlManAtt/itorrent - id: 8786, url: https://github.com/OwlManAtt/itorrent\n", + "sudothinker/multimodel-forms - id: 8790, url: https://github.com/sudothinker/multimodel-forms\n", + "cannikin/fitpocket - id: 8792, url: https://github.com/cannikin/fitpocket\n", + "Zimran/zimran-s-addons - id: 8802, url: https://github.com/Zimran/zimran-s-addons\n", + "pontus/amo-lokalisering-sv - id: 8803, url: https://github.com/pontus/amo-lokalisering-sv\n", + "mehulshah/vanilla-rb - id: 8806, url: https://github.com/mehulshah/vanilla-rb\n", + "feniks2003/qoolweb - id: 8810, url: https://github.com/feniks2003/qoolweb\n", + "pizgin/linuxportal-vrn-ru - id: 8829, url: https://github.com/pizgin/linuxportal-vrn-ru\n", + "joevandyk/rails - id: 8833, url: https://github.com/joevandyk/rails\n", + "keita/benchmarkx - id: 8835, url: https://github.com/keita/benchmarkx\n", + "abradburne/railscoders - id: 8836, url: https://github.com/abradburne/railscoders\n", + "janus/insoshi - id: 8840, url: https://github.com/janus/insoshi\n", + "E-xact/payment-page-plugin - id: 8858, url: https://github.com/E-xact/payment-page-plugin\n", + "ynadji/lisp - id: 8862, url: https://github.com/ynadji/lisp\n", + "schleyfox/lidarconverter - id: 8871, url: https://github.com/schleyfox/lidarconverter\n", + "robhudson/python-paper-enigma - id: 8875, url: https://github.com/robhudson/python-paper-enigma\n", + "xraid/sequel - id: 8889, url: https://github.com/xraid/sequel\n", + "JerseyGuy/insoshi - id: 8898, url: https://github.com/JerseyGuy/insoshi\n", + "ejdraper/merb-manage - id: 8899, url: https://github.com/ejdraper/merb-manage\n", + "captproton/railsecommerce - id: 8907, url: https://github.com/captproton/railsecommerce\n", + "thrawn/osono - id: 8913, url: https://github.com/thrawn/osono\n", + "zippy/metaform - id: 8928, url: https://github.com/zippy/metaform\n", + "thoughtbot/squirrel - id: 8957, url: https://github.com/thoughtbot/squirrel\n", + "ambethia/has_many_exclusive_conditions - id: 8958, url: https://github.com/ambethia/has_many_exclusive_conditions\n", + "thoughtbot/mile_marker - id: 8962, url: https://github.com/thoughtbot/mile_marker\n", + "ambethia/hydra - id: 8964, url: https://github.com/ambethia/hydra\n", + "ambethia/passiverecord - id: 8969, url: https://github.com/ambethia/passiverecord\n", + "ambethia/recaptcha - id: 8970, url: https://github.com/ambethia/recaptcha\n", + "thoughtbot/what - id: 8971, url: https://github.com/thoughtbot/what\n", + "ambethia/tourist - id: 8972, url: https://github.com/ambethia/tourist\n", + "ambethia/vao_column - id: 8973, url: https://github.com/ambethia/vao_column\n", + "thoughtbot/when - id: 8975, url: https://github.com/thoughtbot/when\n", + "sunblaze/synapse - id: 8976, url: https://github.com/sunblaze/synapse\n", + "hober/37emacs - id: 8977, url: https://github.com/hober/37emacs\n", + "alltom/talltom - id: 8983, url: https://github.com/alltom/talltom\n", + "xaviershay/enki - id: 8986, url: https://github.com/xaviershay/enki\n", + "nofxx/xxpub - id: 8987, url: https://github.com/nofxx/xxpub\n", + "kwatch/rubinius - id: 9007, url: https://github.com/kwatch/rubinius\n", + "bougyman/emash - id: 9024, url: https://github.com/bougyman/emash\n", + "kentaro/emacs-ditz - id: 9029, url: https://github.com/kentaro/emacs-ditz\n", + "bougyman/ride - id: 9035, url: https://github.com/bougyman/ride\n", + "ivey/carpark - id: 9051, url: https://github.com/ivey/carpark\n", + "danlucraft/rbwebkitgtk - id: 9055, url: https://github.com/danlucraft/rbwebkitgtk\n", + "tadman/involatile - id: 9058, url: https://github.com/tadman/involatile\n", + "aub/spritz - id: 9060, url: https://github.com/aub/spritz\n", + "Screwperman/pyirc - id: 9065, url: https://github.com/Screwperman/pyirc\n", + "Soleone/linkshare - id: 9068, url: https://github.com/Soleone/linkshare\n", + "davidreuss/gitex - id: 9069, url: https://github.com/davidreuss/gitex\n", + "bricooke/tickspot-ruby - id: 9070, url: https://github.com/bricooke/tickspot-ruby\n", + "myabc/nbmerb - id: 9092, url: https://github.com/myabc/nbmerb\n", + "keita/ruby-dvi - id: 9093, url: https://github.com/keita/ruby-dvi\n", + "sauliusgrigaitis/centostrano - id: 9094, url: https://github.com/sauliusgrigaitis/centostrano\n", + "jezdez/django-reusableapps - id: 9096, url: https://github.com/jezdez/django-reusableapps\n", + "jezdez/django-mobileadmin - id: 9100, url: https://github.com/jezdez/django-mobileadmin\n", + "francois/cliaws - id: 9108, url: https://github.com/francois/cliaws\n", + "conanite/rainbow - id: 9111, url: https://github.com/conanite/rainbow\n", + "bricooke/gitnub - id: 9122, url: https://github.com/bricooke/gitnub\n", + "foca/rails - id: 9123, url: https://github.com/foca/rails\n", + "ncr/background-fu - id: 9129, url: https://github.com/ncr/background-fu\n", + "kib2/littleblogger - id: 9130, url: https://github.com/kib2/littleblogger\n", + "liquidz/default - id: 9131, url: https://github.com/liquidz/default\n", + "twpayne/igc2kmz - id: 9132, url: https://github.com/twpayne/igc2kmz\n", + "mbleigh/mash - id: 9150, url: https://github.com/mbleigh/mash\n", + "subtleGradient/git.tmbundle - id: 9153, url: https://github.com/subtleGradient/git.tmbundle\n", + "darius/hmph - id: 9157, url: https://github.com/darius/hmph\n", + "trak3r/rss2twitter - id: 9158, url: https://github.com/trak3r/rss2twitter\n", + "danielmorrison/submodule_example - id: 9168, url: https://github.com/danielmorrison/submodule_example\n", + "OwlManAtt/kittokittokitto - id: 9169, url: https://github.com/OwlManAtt/kittokittokitto\n", + "duff/rails - id: 9173, url: https://github.com/duff/rails\n", + "tedkulp/cmsms-blog - id: 9182, url: https://github.com/tedkulp/cmsms-blog\n", + "kinkydarkbird/darklang - id: 9194, url: https://github.com/kinkydarkbird/darklang\n", + "rowland/fb - id: 9195, url: https://github.com/rowland/fb\n", + "rowland/fb_adapter - id: 9198, url: https://github.com/rowland/fb_adapter\n", + "istruble/jquery-autocomplete - id: 9211, url: https://github.com/istruble/jquery-autocomplete\n", + "martyn/bulletrb - id: 9213, url: https://github.com/martyn/bulletrb\n", + "AlexJWayne/rails-settings - id: 9225, url: https://github.com/AlexJWayne/rails-settings\n", + "russ/rbwebkitgtk - id: 9227, url: https://github.com/russ/rbwebkitgtk\n", + "captproton/onebody - id: 9230, url: https://github.com/captproton/onebody\n", + "dausech/misc - id: 9232, url: https://github.com/dausech/misc\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fil/facebox - id: 9234, url: https://github.com/Fil/facebox\n", + "vaanisharma/musicmania - id: 9236, url: https://github.com/vaanisharma/musicmania\n", + "oliver/wikiorg - id: 9241, url: https://github.com/oliver/wikiorg\n", + "jeremy/rails - id: 9247, url: https://github.com/jeremy/rails\n", + "annalissac/socnet - id: 9252, url: https://github.com/annalissac/socnet\n", + "annalissac/capistrano - id: 9253, url: https://github.com/annalissac/capistrano\n", + "luciano-zz/ltm - id: 9262, url: https://github.com/luciano-zz/ltm\n", + "liquidz/gauche - id: 9266, url: https://github.com/liquidz/gauche\n", + "Lasanha/dialeteitor - id: 9267, url: https://github.com/Lasanha/dialeteitor\n", + "worst/monitor-guild - id: 9268, url: https://github.com/worst/monitor-guild\n", + "jchris/portable-google-app-engine-sdk - id: 9272, url: https://github.com/jchris/portable-google-app-engine-sdk\n", + "igorgue/mono-twitts - id: 9273, url: https://github.com/igorgue/mono-twitts\n", + "anaisbetts/camploco - id: 9274, url: https://github.com/anaisbetts/camploco\n", + "OwlManAtt/smarty-ys - id: 9277, url: https://github.com/OwlManAtt/smarty-ys\n", + "minesh/projects - id: 9278, url: https://github.com/minesh/projects\n", + "camus/mcoba - id: 9281, url: https://github.com/camus/mcoba\n", + "jmettraux/ruote-rest - id: 9285, url: https://github.com/jmettraux/ruote-rest\n", + "fightinjoe/restful-authentication - id: 9290, url: https://github.com/fightinjoe/restful-authentication\n", + "mirven/euler-erlang - id: 9291, url: https://github.com/mirven/euler-erlang\n", + "edward/reckoning - id: 9295, url: https://github.com/edward/reckoning\n", + "tra/spawnling - id: 9302, url: https://github.com/tra/spawnling\n", + "dustin/gae-base - id: 9304, url: https://github.com/dustin/gae-base\n", + "dlee/sequel - id: 9306, url: https://github.com/dlee/sequel\n", + "ken-zz/rmuddy - id: 9309, url: https://github.com/ken-zz/rmuddy\n", + "signup-disabled/free - id: 9311, url: https://github.com/signup-disabled/free\n", + "petertodd/tuke - id: 9314, url: https://github.com/petertodd/tuke\n", + "gustin/lovd-by-less - id: 9316, url: https://github.com/gustin/lovd-by-less\n", + "gustin/comatose - id: 9317, url: https://github.com/gustin/comatose\n", + "jcrosby/endpointr - id: 9319, url: https://github.com/jcrosby/endpointr\n", + "chuyeow/facebox - id: 9323, url: https://github.com/chuyeow/facebox\n", + "mallipeddi/cinepura - id: 9331, url: https://github.com/mallipeddi/cinepura\n", + "codafoo/signal-wiki - id: 9333, url: https://github.com/codafoo/signal-wiki\n", + "dbr/checktveps - id: 9346, url: https://github.com/dbr/checktveps\n", + "osteele/jsspec - id: 9350, url: https://github.com/osteele/jsspec\n", + "mc/rubybgp - id: 9357, url: https://github.com/mc/rubybgp\n", + "jashkenas/ruby-processing - id: 9370, url: https://github.com/jashkenas/ruby-processing\n", + "lukemelia/rspec-tmbundle - id: 9377, url: https://github.com/lukemelia/rspec-tmbundle\n", + "rpheath/navigation_helper - id: 9380, url: https://github.com/rpheath/navigation_helper\n", + "maddox/broadcatcher - id: 9383, url: https://github.com/maddox/broadcatcher\n", + "scivi/dotfiles - id: 9384, url: https://github.com/scivi/dotfiles\n", + "keibro/twikkir - id: 9392, url: https://github.com/keibro/twikkir\n", + "lukemelia/rails - id: 9394, url: https://github.com/lukemelia/rails\n", + "maddox/tvdb - id: 9405, url: https://github.com/maddox/tvdb\n", + "maddox/xbmc-library - id: 9406, url: https://github.com/maddox/xbmc-library\n", + "locusf/monotooth - id: 9407, url: https://github.com/locusf/monotooth\n", + "directeur/pyapml - id: 9412, url: https://github.com/directeur/pyapml\n", + "mattfoster/gnuplot-tmbundle - id: 9413, url: https://github.com/mattfoster/gnuplot-tmbundle\n", + "hokten/kutuphane - id: 9427, url: https://github.com/hokten/kutuphane\n", + "nutrun/queueue - id: 9430, url: https://github.com/nutrun/queueue\n", + "grantr/couch_resource - id: 9436, url: https://github.com/grantr/couch_resource\n", + "dustin/osx-thermometer - id: 9456, url: https://github.com/dustin/osx-thermometer\n", + "ewout/stoa - id: 9478, url: https://github.com/ewout/stoa\n", + "brasten/dm-core - id: 9481, url: https://github.com/brasten/dm-core\n", + "Fluxx/coke - id: 9483, url: https://github.com/Fluxx/coke\n", + "pjay/tv-iapps - id: 9486, url: https://github.com/pjay/tv-iapps\n", + "flyingmachine/palmist - id: 9491, url: https://github.com/flyingmachine/palmist\n", + "nbibler/rtbench - id: 9500, url: https://github.com/nbibler/rtbench\n", + "llimllib/pymag-trees - id: 9508, url: https://github.com/llimllib/pymag-trees\n", + "jiku/bks - id: 9513, url: https://github.com/jiku/bks\n", + "osteele/jcon - id: 9521, url: https://github.com/osteele/jcon\n", + "kastner/twitter-bot - id: 9524, url: https://github.com/kastner/twitter-bot\n", + "pat/thinking-sphinx - id: 9525, url: https://github.com/pat/thinking-sphinx\n", + "francis/net-ssh - id: 9532, url: https://github.com/francis/net-ssh\n", + "rubiety/goplay - id: 9533, url: https://github.com/rubiety/goplay\n", + "rubiety/jazz_model - id: 9535, url: https://github.com/rubiety/jazz_model\n", + "praxedis/grandemesa - id: 9537, url: https://github.com/praxedis/grandemesa\n", + "bjeanes/tipi - id: 9539, url: https://github.com/bjeanes/tipi\n", + "smtlaissezfaire/emacs-lisp-experiments - id: 9542, url: https://github.com/smtlaissezfaire/emacs-lisp-experiments\n", + "mikedamage/folio - id: 9547, url: https://github.com/mikedamage/folio\n", + "pc-m/rmuddy - id: 9550, url: https://github.com/pc-m/rmuddy\n", + "yautah/medigger - id: 9554, url: https://github.com/yautah/medigger\n", + "nesquena/semantic_form_builder - id: 9557, url: https://github.com/nesquena/semantic_form_builder\n", + "johnw188/avr_adc - id: 9574, url: https://github.com/johnw188/avr_adc\n", + "mreid/siroc - id: 9580, url: https://github.com/mreid/siroc\n", + "xenoterracide/school - id: 9589, url: https://github.com/xenoterracide/school\n", + "siebertm/ext_js_with_rails - id: 9592, url: https://github.com/siebertm/ext_js_with_rails\n", + "xenoterracide/notes - id: 9599, url: https://github.com/xenoterracide/notes\n", + "pkordel/oss_analyzer - id: 9600, url: https://github.com/pkordel/oss_analyzer\n", + "mikedamage/incremental-backup-system - id: 9602, url: https://github.com/mikedamage/incremental-backup-system\n", + "jimmydo/scattertalk - id: 9603, url: https://github.com/jimmydo/scattertalk\n", + "salvator/rc - id: 9609, url: https://github.com/salvator/rc\n", + "eastmedia/git-tmbundle - id: 9613, url: https://github.com/eastmedia/git-tmbundle\n", + "ehlo/insoshi - id: 9614, url: https://github.com/ehlo/insoshi\n", + "keita/ruby-xurrency - id: 9615, url: https://github.com/keita/ruby-xurrency\n", + "henrik/rails - id: 9621, url: https://github.com/henrik/rails\n", + "afolmert/mentor - id: 9623, url: https://github.com/afolmert/mentor\n", + "phpwax/wildfire - id: 9625, url: https://github.com/phpwax/wildfire\n", + "xenoterracide/contracts - id: 9630, url: https://github.com/xenoterracide/contracts\n", + "gitter/gitter - id: 9632, url: https://github.com/gitter/gitter\n", + "slim/heer - id: 9633, url: https://github.com/slim/heer\n", + "xeon/securehttpd - id: 9643, url: https://github.com/xeon/securehttpd\n", + "Mercedes/openid-server - id: 9644, url: https://github.com/Mercedes/openid-server\n", + "madrobby/prototype - id: 9646, url: https://github.com/madrobby/prototype\n", + "kaipr/mm-baseline - id: 9655, url: https://github.com/kaipr/mm-baseline\n", + "djanowski/layout - id: 9656, url: https://github.com/djanowski/layout\n", + "frac/fma0427 - id: 9663, url: https://github.com/frac/fma0427\n", + "thoughtbot/shoulda - id: 9664, url: https://github.com/thoughtbot/shoulda\n", + "phedders/hobomaster - id: 9666, url: https://github.com/phedders/hobomaster\n", + "steppicrew/rabak - id: 9673, url: https://github.com/steppicrew/rabak\n", + "thoughtbot/jester - id: 9678, url: https://github.com/thoughtbot/jester\n", + "blueguru/cmsmadesimple-2-0 - id: 9682, url: https://github.com/blueguru/cmsmadesimple-2-0\n", + "bmaland/hostconnect - id: 9692, url: https://github.com/bmaland/hostconnect\n", + "positron/molinator - id: 9698, url: https://github.com/positron/molinator\n", + "hallison/findlikely - id: 9703, url: https://github.com/hallison/findlikely\n", + "jf/chronic - id: 9704, url: https://github.com/jf/chronic\n", + "vlad4/insoshi - id: 9710, url: https://github.com/vlad4/insoshi\n", + "kana/keyremap4macbook - id: 9712, url: https://github.com/kana/keyremap4macbook\n", + "clempro/grimper - id: 9714, url: https://github.com/clempro/grimper\n", + "bscofield/athena - id: 9727, url: https://github.com/bscofield/athena\n", + "jjune001/investmentbanking - id: 9733, url: https://github.com/jjune001/investmentbanking\n", + "newtonapple/rails-development-log-analyzer - id: 9744, url: https://github.com/newtonapple/rails-development-log-analyzer\n", + "eastmedia/kaltura - id: 9747, url: https://github.com/eastmedia/kaltura\n", + "eastmedia/acts_as_slugable - id: 9751, url: https://github.com/eastmedia/acts_as_slugable\n", + "prof3sorul/school - id: 9754, url: https://github.com/prof3sorul/school\n", + "prof3sorul/mentor - id: 9756, url: https://github.com/prof3sorul/mentor\n", + "cardmagic/shipping - id: 9758, url: https://github.com/cardmagic/shipping\n", + "bricooke/harvest-ruby - id: 9763, url: https://github.com/bricooke/harvest-ruby\n", + "shingara/cap-project - id: 9769, url: https://github.com/shingara/cap-project\n", + "subtleGradient/subtlegradient.tmbundle - id: 9771, url: https://github.com/subtleGradient/subtlegradient.tmbundle\n", + "gtd/templation - id: 9774, url: https://github.com/gtd/templation\n", + "atduskgreg/portable-google-app-engine-sdk - id: 9775, url: https://github.com/atduskgreg/portable-google-app-engine-sdk\n", + "courtenay/spider_test - id: 9782, url: https://github.com/courtenay/spider_test\n", + "shingara/personal-presentation - id: 9785, url: https://github.com/shingara/personal-presentation\n", + "zaratustra/tic-tac-toe - id: 9792, url: https://github.com/zaratustra/tic-tac-toe\n", + "jnicklas/feed_me - id: 9798, url: https://github.com/jnicklas/feed_me\n", + "roes/familytree - id: 9801, url: https://github.com/roes/familytree\n", + "mark/autosaves - id: 9802, url: https://github.com/mark/autosaves\n", + "halfbyte/gosutaxi - id: 9810, url: https://github.com/halfbyte/gosutaxi\n", + "cptfinch/tg43 - id: 9814, url: https://github.com/cptfinch/tg43\n", + "cptfinch/mephysto_data_getter - id: 9815, url: https://github.com/cptfinch/mephysto_data_getter\n", + "thepatrick/cheetahwatch - id: 9823, url: https://github.com/thepatrick/cheetahwatch\n", + "ckhsponge/remindblast - id: 9827, url: https://github.com/ckhsponge/remindblast\n", + "drodriguez/gitnub - id: 9829, url: https://github.com/drodriguez/gitnub\n", + "dang/scripts - id: 9830, url: https://github.com/dang/scripts\n", + "jonthewayne/altered_beast - id: 9832, url: https://github.com/jonthewayne/altered_beast\n", + "medwards/free-library-on-rails - id: 9838, url: https://github.com/medwards/free-library-on-rails\n", + "pat/riddle - id: 9851, url: https://github.com/pat/riddle\n", + "bjc/liaison - id: 9868, url: https://github.com/bjc/liaison\n", + "ambrice/ffdraft - id: 9869, url: https://github.com/ambrice/ffdraft\n", + "bjc/nastd - id: 9870, url: https://github.com/bjc/nastd\n", + "petertodd/vimfiles - id: 9875, url: https://github.com/petertodd/vimfiles\n", + "flogic/object_daddy - id: 9880, url: https://github.com/flogic/object_daddy\n", + "gilpa/gilpa - id: 9897, url: https://github.com/gilpa/gilpa\n", + "pete1/github-unfuddle - id: 9908, url: https://github.com/pete1/github-unfuddle\n", + "gabrielsaldana/twext - id: 9915, url: https://github.com/gabrielsaldana/twext\n", + "jeremyd/mplayerctl - id: 9920, url: https://github.com/jeremyd/mplayerctl\n", + "tenderlove/icanhasaudio - id: 9921, url: https://github.com/tenderlove/icanhasaudio\n", + "flogic/autochronic - id: 9929, url: https://github.com/flogic/autochronic\n", + "flogic/freshtrack - id: 9931, url: https://github.com/flogic/freshtrack\n", + "lukec/xocom - id: 9932, url: https://github.com/lukec/xocom\n", + "flogic/nihilist_bot - id: 9933, url: https://github.com/flogic/nihilist_bot\n", + "pontus/cisco-7905-imageconverter - id: 9937, url: https://github.com/pontus/cisco-7905-imageconverter\n", + "TomK32/exabuch - id: 9941, url: https://github.com/TomK32/exabuch\n", + "ocean/musicfinder-gae - id: 9943, url: https://github.com/ocean/musicfinder-gae\n", + "halfbyte/programming_collective_intelligence_in_ruby - id: 9944, url: https://github.com/halfbyte/programming_collective_intelligence_in_ruby\n", + "jesper/ilineedit - id: 9945, url: https://github.com/jesper/ilineedit\n", + "pontus/smugmug-tools - id: 9947, url: https://github.com/pontus/smugmug-tools\n", + "pontus/bloggersynk - id: 9949, url: https://github.com/pontus/bloggersynk\n", + "jacques/sms-clickatell - id: 9953, url: https://github.com/jacques/sms-clickatell\n", + "asanghi/lovd-by-less - id: 9955, url: https://github.com/asanghi/lovd-by-less\n", + "slim/cgit - id: 9956, url: https://github.com/slim/cgit\n", + "mitsuhiko/twig - id: 9961, url: https://github.com/mitsuhiko/twig\n", + "pointcom/mootools-on-rails - id: 9969, url: https://github.com/pointcom/mootools-on-rails\n", + "kbingman/bkr - id: 9970, url: https://github.com/kbingman/bkr\n", + "joshuar/ephemeral-gentoo-overlay - id: 9971, url: https://github.com/joshuar/ephemeral-gentoo-overlay\n", + "versus/ffreg - id: 9975, url: https://github.com/versus/ffreg\n", + "predhme223/rails - id: 9976, url: https://github.com/predhme223/rails\n", + "rock-core/autobuild - id: 9980, url: https://github.com/rock-core/autobuild\n", + "halfbyte/mm-baseline - id: 9982, url: https://github.com/halfbyte/mm-baseline\n", + "gwynm/merb-plugins - id: 9990, url: https://github.com/gwynm/merb-plugins\n", + "canadaduane/merb_active_admin - id: 9995, url: https://github.com/canadaduane/merb_active_admin\n", + "kuro/gas - id: 9998, url: https://github.com/kuro/gas\n", + "cjmiyake/insoshi - id: 10005, url: https://github.com/cjmiyake/insoshi\n", + "Timonn/tryrepos - id: 10013, url: https://github.com/Timonn/tryrepos\n", + "rayvinly/badger - id: 10021, url: https://github.com/rayvinly/badger\n", + "valyana/ffxip - id: 10024, url: https://github.com/valyana/ffxip\n", + "neves/escolar - id: 10030, url: https://github.com/neves/escolar\n", + "ggriffiniii/scripts - id: 10040, url: https://github.com/ggriffiniii/scripts\n", + "keita/ruby-minpaso - id: 10041, url: https://github.com/keita/ruby-minpaso\n", + "alibby/flat_filer - id: 10042, url: https://github.com/alibby/flat_filer\n", + "qzio/tinly - id: 10043, url: https://github.com/qzio/tinly\n", + "cardmagic/dm-more - id: 10044, url: https://github.com/cardmagic/dm-more\n", + "xwmx/attachment_fu - id: 10046, url: https://github.com/xwmx/attachment_fu\n", + "eastmedia/openid - id: 10047, url: https://github.com/eastmedia/openid\n", + "thoughtbot/quietbacktrace - id: 10058, url: https://github.com/thoughtbot/quietbacktrace\n", + "hallski/loudmouth-ruby - id: 10060, url: https://github.com/hallski/loudmouth-ruby\n", + "cardmagic/merb_paginate - id: 10064, url: https://github.com/cardmagic/merb_paginate\n", + "Pistos/linistrac - id: 10068, url: https://github.com/Pistos/linistrac\n", + "benlund/zircon - id: 10072, url: https://github.com/benlund/zircon\n", + "TomK32/feedme - id: 10079, url: https://github.com/TomK32/feedme\n", + "bytheway/merb-core - id: 10084, url: https://github.com/bytheway/merb-core\n", + "CodeMonkeySteve/libfinagle - id: 10085, url: https://github.com/CodeMonkeySteve/libfinagle\n", + "spiegela/lablog - id: 10092, url: https://github.com/spiegela/lablog\n", + "nbudin/jester - id: 10103, url: https://github.com/nbudin/jester\n", + "zsx/hotwire - id: 10112, url: https://github.com/zsx/hotwire\n", + "pieter/gnuplot-textmate-bundle - id: 10116, url: https://github.com/pieter/gnuplot-textmate-bundle\n", + "mikE83/ligafut - id: 10127, url: https://github.com/mikE83/ligafut\n", + "dalen/familytree - id: 10130, url: https://github.com/dalen/familytree\n", + "mghaught/yui4rails - id: 10142, url: https://github.com/mghaught/yui4rails\n", + "samaaron/book_mdar - id: 10143, url: https://github.com/samaaron/book_mdar\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dfischer/transparent-fisch - id: 10151, url: https://github.com/dfischer/transparent-fisch\n", + "heracek/36par - id: 10159, url: https://github.com/heracek/36par\n", + "steev/steev-overlay - id: 10161, url: https://github.com/steev/steev-overlay\n", + "drnic/tranexp - id: 10163, url: https://github.com/drnic/tranexp\n", + "evocateur/wp-facebox - id: 10167, url: https://github.com/evocateur/wp-facebox\n", + "gmallard/submodule-workflows - id: 10173, url: https://github.com/gmallard/submodule-workflows\n", + "picnichouse/prototype - id: 10174, url: https://github.com/picnichouse/prototype\n", + "copyhacker/casseroles - id: 10175, url: https://github.com/copyhacker/casseroles\n", + "mynyml/attachment_fu_fixtures - id: 10181, url: https://github.com/mynyml/attachment_fu_fixtures\n", + "mreid/geovex - id: 10185, url: https://github.com/mreid/geovex\n", + "wizardwerdna/pokerwiz - id: 10187, url: https://github.com/wizardwerdna/pokerwiz\n", + "mattetti/globalite-example - id: 10197, url: https://github.com/mattetti/globalite-example\n", + "Soleone/xml_node - id: 10209, url: https://github.com/Soleone/xml_node\n", + "sroccaserra/emacs - id: 10220, url: https://github.com/sroccaserra/emacs\n", + "keita/ruby-linux-smaps - id: 10223, url: https://github.com/keita/ruby-linux-smaps\n", + "assaf/archive-2005 - id: 10226, url: https://github.com/assaf/archive-2005\n", + "keita/cursesx - id: 10227, url: https://github.com/keita/cursesx\n", + "nonuts/gosutaxi - id: 10230, url: https://github.com/nonuts/gosutaxi\n", + "gwynm/webrat - id: 10232, url: https://github.com/gwynm/webrat\n", + "Empact/amazon-associates - id: 10234, url: https://github.com/Empact/amazon-associates\n", + "gerrit/facebox - id: 10236, url: https://github.com/gerrit/facebox\n", + "choonkeat/poormans-trends - id: 10237, url: https://github.com/choonkeat/poormans-trends\n", + "Empact/html_test - id: 10246, url: https://github.com/Empact/html_test\n", + "duff/assert_arrays_equal - id: 10247, url: https://github.com/duff/assert_arrays_equal\n", + "be9/minimize - id: 10249, url: https://github.com/be9/minimize\n", + "cnix/git_local - id: 10263, url: https://github.com/cnix/git_local\n", + "alx/feevy - id: 10267, url: https://github.com/alx/feevy\n", + "drnic/copy-as-rtf-tmbundle - id: 10272, url: https://github.com/drnic/copy-as-rtf-tmbundle\n", + "ianwhite/rspec - id: 10276, url: https://github.com/ianwhite/rspec\n", + "ianwhite/rspec-rails - id: 10277, url: https://github.com/ianwhite/rspec-rails\n", + "fmondora/scratchpad - id: 10280, url: https://github.com/fmondora/scratchpad\n", + "cjmartin/mythapi - id: 10288, url: https://github.com/cjmartin/mythapi\n", + "Dunkelschorsch/plugboard - id: 10289, url: https://github.com/Dunkelschorsch/plugboard\n", + "keita/currayon - id: 10293, url: https://github.com/keita/currayon\n", + "vbehar/nozbe-ruby - id: 10307, url: https://github.com/vbehar/nozbe-ruby\n", + "markbates/gemstub - id: 10308, url: https://github.com/markbates/gemstub\n", + "zargony/activerecord_symbolize - id: 10311, url: https://github.com/zargony/activerecord_symbolize\n", + "ksdtech/powerschool-web - id: 10313, url: https://github.com/ksdtech/powerschool-web\n", + "bmaland/dokpro - id: 10314, url: https://github.com/bmaland/dokpro\n", + "nfirvine/pymanymouse - id: 10318, url: https://github.com/nfirvine/pymanymouse\n", + "DefV/utility_scripts - id: 10320, url: https://github.com/DefV/utility_scripts\n", + "ctrochalakis/django-jsonutils - id: 10323, url: https://github.com/ctrochalakis/django-jsonutils\n", + "vbehar/nozber - id: 10328, url: https://github.com/vbehar/nozber\n", + "mawiza/rubyemail - id: 10335, url: https://github.com/mawiza/rubyemail\n", + "jferris/labelled_form - id: 10336, url: https://github.com/jferris/labelled_form\n", + "fiveruns/data_fabric - id: 10344, url: https://github.com/fiveruns/data_fabric\n", + "aquabu/rsound - id: 10345, url: https://github.com/aquabu/rsound\n", + "spohlenz/open_application_platform_plugin - id: 10354, url: https://github.com/spohlenz/open_application_platform_plugin\n", + "edspencer/ext-mvc - id: 10359, url: https://github.com/edspencer/ext-mvc\n", + "markbates/cachetastic - id: 10360, url: https://github.com/markbates/cachetastic\n", + "arjun/chip-ruby - id: 10361, url: https://github.com/arjun/chip-ruby\n", + "jamessqr/james-squires-dotcom - id: 10362, url: https://github.com/jamessqr/james-squires-dotcom\n", + "trms/monitor_control - id: 10376, url: https://github.com/trms/monitor_control\n", + "spohlenz/itunes_link_maker - id: 10377, url: https://github.com/spohlenz/itunes_link_maker\n", + "bert/pcb-fpw - id: 10379, url: https://github.com/bert/pcb-fpw\n", + "TekNoLogic/tekticles - id: 10390, url: https://github.com/TekNoLogic/tekticles\n", + "trms/dvd_import - id: 10393, url: https://github.com/trms/dvd_import\n", + "noelrappin/rails-iui - id: 10396, url: https://github.com/noelrappin/rails-iui\n", + "bmaland/file2url - id: 10400, url: https://github.com/bmaland/file2url\n", + "codemac/blogit - id: 10401, url: https://github.com/codemac/blogit\n", + "mattetti/will_paginate - id: 10404, url: https://github.com/mattetti/will_paginate\n", + "trms/fixmpeg - id: 10425, url: https://github.com/trms/fixmpeg\n", + "gingerhendrix/jsutils - id: 10428, url: https://github.com/gingerhendrix/jsutils\n", + "schacon/munger - id: 10437, url: https://github.com/schacon/munger\n", + "ggriffiniii/bin - id: 10438, url: https://github.com/ggriffiniii/bin\n", + "hober/selftest-el - id: 10453, url: https://github.com/hober/selftest-el\n", + "gingerhendrix/monkeytest - id: 10477, url: https://github.com/gingerhendrix/monkeytest\n", + "bart9h/cave9 - id: 10495, url: https://github.com/bart9h/cave9\n", + "drnic/rubyamp - id: 10510, url: https://github.com/drnic/rubyamp\n", + "subtleGradient/javascript-tools.tmbundle - id: 10516, url: https://github.com/subtleGradient/javascript-tools.tmbundle\n", + "nesquena/active_form - id: 10519, url: https://github.com/nesquena/active_form\n", + "relevance/multi_rails - id: 10525, url: https://github.com/relevance/multi_rails\n", + "Soleone/rails-tips - id: 10533, url: https://github.com/Soleone/rails-tips\n", + "papasi/test - id: 10537, url: https://github.com/papasi/test\n", + "subtleGradient/css.tmbundle - id: 10538, url: https://github.com/subtleGradient/css.tmbundle\n", + "boof/not-naughty - id: 10544, url: https://github.com/boof/not-naughty\n", + "acgourley/watchdog - id: 10548, url: https://github.com/acgourley/watchdog\n", + "xaviershay/classifier - id: 10549, url: https://github.com/xaviershay/classifier\n", + "xaviershay/lesstile - id: 10550, url: https://github.com/xaviershay/lesstile\n", + "pyrat/ssl_requirement - id: 10565, url: https://github.com/pyrat/ssl_requirement\n", + "toretore/acts_as_file - id: 10566, url: https://github.com/toretore/acts_as_file\n", + "toretore/acts_as_image - id: 10567, url: https://github.com/toretore/acts_as_image\n", + "toretore/javascript_routes - id: 10568, url: https://github.com/toretore/javascript_routes\n", + "toretore/jibberish - id: 10570, url: https://github.com/toretore/jibberish\n", + "halfbyte/maeshroom_de_website - id: 10573, url: https://github.com/halfbyte/maeshroom_de_website\n", + "lorenjohnson/radiant-event-calendar - id: 10579, url: https://github.com/lorenjohnson/radiant-event-calendar\n", + "bwghughes/houghandco - id: 10580, url: https://github.com/bwghughes/houghandco\n", + "lorenjohnson/radiant-rss-reader - id: 10581, url: https://github.com/lorenjohnson/radiant-rss-reader\n", + "lorenjohnson/radiant-directory-extension - id: 10582, url: https://github.com/lorenjohnson/radiant-directory-extension\n", + "lorenjohnson/radiant-language-switch - id: 10585, url: https://github.com/lorenjohnson/radiant-language-switch\n", + "lorenjohnson/radiant-utility-tags - id: 10592, url: https://github.com/lorenjohnson/radiant-utility-tags\n", + "fightinjoe/mex - id: 10601, url: https://github.com/fightinjoe/mex\n", + "openminds/title_helper - id: 10604, url: https://github.com/openminds/title_helper\n", + "zachinglis/dashboard-location - id: 10607, url: https://github.com/zachinglis/dashboard-location\n", + "abradburne/will_paginate - id: 10618, url: https://github.com/abradburne/will_paginate\n", + "signup-disabled/micro - id: 10629, url: https://github.com/signup-disabled/micro\n", + "signup-disabled/small - id: 10630, url: https://github.com/signup-disabled/small\n", + "signup-disabled/medium - id: 10631, url: https://github.com/signup-disabled/medium\n", + "signup-disabled/large - id: 10632, url: https://github.com/signup-disabled/large\n", + "signup-disabled/mega - id: 10633, url: https://github.com/signup-disabled/mega\n", + "randomutterings/page_redirect - id: 10636, url: https://github.com/randomutterings/page_redirect\n", + "ianwhite/rspec-dev - id: 10638, url: https://github.com/ianwhite/rspec-dev\n", + "ianwhite/rspec-tmbundle - id: 10640, url: https://github.com/ianwhite/rspec-tmbundle\n", + "mdk/mdk-code-snippets - id: 10647, url: https://github.com/mdk/mdk-code-snippets\n", + "nicksieger/webrat - id: 10649, url: https://github.com/nicksieger/webrat\n", + "avdgaag/rspec-caching-test-plugin - id: 10651, url: https://github.com/avdgaag/rspec-caching-test-plugin\n", + "octaflop/shoes - id: 10660, url: https://github.com/octaflop/shoes\n", + "rusty0606/handicap - id: 10663, url: https://github.com/rusty0606/handicap\n", + "cucumber/cucumber-ruby - id: 10664, url: https://github.com/cucumber/cucumber-ruby\n", + "scbarber/bad-poetry - id: 10679, url: https://github.com/scbarber/bad-poetry\n", + "baldwindavid/fileman - id: 10680, url: https://github.com/baldwindavid/fileman\n", + "leewbutler/inputs_with_class - id: 10681, url: https://github.com/leewbutler/inputs_with_class\n", + "pontus/mozilla-password-tool - id: 10696, url: https://github.com/pontus/mozilla-password-tool\n", + "geoffgarside/angel - id: 10699, url: https://github.com/geoffgarside/angel\n", + "miguel/rest-microblog - id: 10720, url: https://github.com/miguel/rest-microblog\n", + "geoffgarside/oniguruma - id: 10722, url: https://github.com/geoffgarside/oniguruma\n", + "chrismdp/rspec - id: 10723, url: https://github.com/chrismdp/rspec\n", + "calas/insoshi - id: 10725, url: https://github.com/calas/insoshi\n", + "augustjoki/rverse - id: 10735, url: https://github.com/augustjoki/rverse\n", + "AustinWise/austin - id: 10739, url: https://github.com/AustinWise/austin\n", + "zackchandler/quickbooks_integration_plugin - id: 10742, url: https://github.com/zackchandler/quickbooks_integration_plugin\n", + "FotoVerite/rails - id: 10750, url: https://github.com/FotoVerite/rails\n", + "cv/rally-export - id: 10751, url: https://github.com/cv/rally-export\n", + "cv/io-collocation - id: 10752, url: https://github.com/cv/io-collocation\n", + "JackDanger/jackcanty.com-in-scheme - id: 10758, url: https://github.com/JackDanger/jackcanty.com-in-scheme\n", + "johnw188/me405 - id: 10759, url: https://github.com/johnw188/me405\n", + "abedra/mpi-ruby - id: 10761, url: https://github.com/abedra/mpi-ruby\n", + "relevance/spec_converter - id: 10765, url: https://github.com/relevance/spec_converter\n", + "jduff/rssanything - id: 10766, url: https://github.com/jduff/rssanything\n", + "wycats/dm-core - id: 10792, url: https://github.com/wycats/dm-core\n", + "rpheath/input_css - id: 10793, url: https://github.com/rpheath/input_css\n", + "mde/fleegix-js-javascript-toolkit - id: 10798, url: https://github.com/mde/fleegix-js-javascript-toolkit\n", + "markthomas/gchart - id: 10799, url: https://github.com/markthomas/gchart\n", + "zachhale/request_routing - id: 10801, url: https://github.com/zachhale/request_routing\n", + "rmm5t/insert-time.el - id: 10807, url: https://github.com/rmm5t/insert-time.el\n", + "rmm5t/maxframe.el - id: 10809, url: https://github.com/rmm5t/maxframe.el\n", + "TekNoLogic/mountme - id: 10820, url: https://github.com/TekNoLogic/mountme\n", + "dongbin/scheme_parser - id: 10822, url: https://github.com/dongbin/scheme_parser\n", + "fairchild/smartpilot - id: 10824, url: https://github.com/fairchild/smartpilot\n", + "saimonmoore/backgroundjob - id: 10825, url: https://github.com/saimonmoore/backgroundjob\n", + "ctice/ruby-mahjongg - id: 10828, url: https://github.com/ctice/ruby-mahjongg\n", + "matthewtodd/wordpress - id: 10850, url: https://github.com/matthewtodd/wordpress\n", + "edspencer/admin-crud - id: 10851, url: https://github.com/edspencer/admin-crud\n", + "danielegozzi/radiant-tinymce_filter - id: 10852, url: https://github.com/danielegozzi/radiant-tinymce_filter\n", + "norman/friendly_id - id: 10865, url: https://github.com/norman/friendly_id\n", + "ELLIOTTCABLE/git-blog - id: 10866, url: https://github.com/ELLIOTTCABLE/git-blog\n", + "Gregg/barcamporlando-scheduler - id: 10878, url: https://github.com/Gregg/barcamporlando-scheduler\n", + "robertbrook/lordsqna - id: 10881, url: https://github.com/robertbrook/lordsqna\n", + "JackDanger/dotfiles - id: 10891, url: https://github.com/JackDanger/dotfiles\n", + "danielwanja/railsconf2008 - id: 10903, url: https://github.com/danielwanja/railsconf2008\n", + "mkuhn/cite-web - id: 10908, url: https://github.com/mkuhn/cite-web\n", + "sparklemotion/mechanize - id: 10910, url: https://github.com/sparklemotion/mechanize\n", + "mattetti/merb_paginate - id: 10916, url: https://github.com/mattetti/merb_paginate\n", + "qxjit/deep-test - id: 10923, url: https://github.com/qxjit/deep-test\n", + "pyu10055/signal-wiki - id: 10926, url: https://github.com/pyu10055/signal-wiki\n", + "martinjackson/clojure-mcp - id: 10932, url: https://github.com/martinjackson/clojure-mcp\n", + "simb/flexrestauth - id: 10938, url: https://github.com/simb/flexrestauth\n", + "bkirsch/cambertest - id: 10944, url: https://github.com/bkirsch/cambertest\n", + "booch/rails-base - id: 10951, url: https://github.com/booch/rails-base\n", + "TekNoLogic/Buffet - id: 10954, url: https://github.com/TekNoLogic/Buffet\n", + "mvanholstyn/paperclip - id: 10956, url: https://github.com/mvanholstyn/paperclip\n", + "diasjorge/insoshi - id: 10961, url: https://github.com/diasjorge/insoshi\n", + "leewbutler/xdressed_clickables - id: 10964, url: https://github.com/leewbutler/xdressed_clickables\n", + "jacqui/model_stubbing - id: 10981, url: https://github.com/jacqui/model_stubbing\n", + "lazyatom/engines - id: 10985, url: https://github.com/lazyatom/engines\n", + "dustin/memcached-test - id: 10992, url: https://github.com/dustin/memcached-test\n", + "cardmagic/dm-works - id: 10993, url: https://github.com/cardmagic/dm-works\n", + "ELLIOTTCABLE/pertinacious - id: 10994, url: https://github.com/ELLIOTTCABLE/pertinacious\n", + "TekNoLogic/StealYourCarbon - id: 10995, url: https://github.com/TekNoLogic/StealYourCarbon\n", + "gdagley/related_news - id: 10997, url: https://github.com/gdagley/related_news\n", + "zdennis/strac - id: 10998, url: https://github.com/zdennis/strac\n", + "rubyredrick/integration_upload_plugin - id: 11006, url: https://github.com/rubyredrick/integration_upload_plugin\n", + "schacon/grit - id: 11018, url: https://github.com/schacon/grit\n", + "davidjrice/mowawi - id: 11046, url: https://github.com/davidjrice/mowawi\n", + "davidjrice/test_unit_to_rspec_converter - id: 11047, url: https://github.com/davidjrice/test_unit_to_rspec_converter\n", + "davidjrice/protect_params - id: 11050, url: https://github.com/davidjrice/protect_params\n", + "davidjrice/ordered_list_forms - id: 11052, url: https://github.com/davidjrice/ordered_list_forms\n", + "davidjrice/ajax_validation - id: 11053, url: https://github.com/davidjrice/ajax_validation\n", + "tomlion/lovd-by-less - id: 11078, url: https://github.com/tomlion/lovd-by-less\n", + "paltman-archive/pycalais - id: 11080, url: https://github.com/paltman-archive/pycalais\n", + "paltman-archive/pyvimeo - id: 11081, url: https://github.com/paltman-archive/pyvimeo\n", + "lukemelia/rspec - id: 11091, url: https://github.com/lukemelia/rspec\n", + "cv/compositions - id: 11098, url: https://github.com/cv/compositions\n", + "we4tech/semantic-repository - id: 11099, url: https://github.com/we4tech/semantic-repository\n", + "draganbabic/uni-form - id: 11104, url: https://github.com/draganbabic/uni-form\n", + "Empact/validates_email_veracity_of - id: 11107, url: https://github.com/Empact/validates_email_veracity_of\n", + "urandom/iwl - id: 11108, url: https://github.com/urandom/iwl\n", + "deepakjois/gchartrb - id: 11115, url: https://github.com/deepakjois/gchartrb\n", + "sudara/lepilo-rails - id: 11116, url: https://github.com/sudara/lepilo-rails\n", + "rlisowski/wydatki - id: 11119, url: https://github.com/rlisowski/wydatki\n", + "gdagley/display_flash_helper - id: 11120, url: https://github.com/gdagley/display_flash_helper\n", + "rsim/ruby-plsql - id: 11137, url: https://github.com/rsim/ruby-plsql\n", + "chuyeow/activecouch - id: 11141, url: https://github.com/chuyeow/activecouch\n", + "norbert/braid - id: 11146, url: https://github.com/norbert/braid\n", + "scoopr/ld11 - id: 11167, url: https://github.com/scoopr/ld11\n", + "urandom/swfupload - id: 11170, url: https://github.com/urandom/swfupload\n", + "aanand/itunes-web-interface - id: 11173, url: https://github.com/aanand/itunes-web-interface\n", + "urandom/p2js - id: 11174, url: https://github.com/urandom/p2js\n", + "darcy/acts_as_loggable - id: 11180, url: https://github.com/darcy/acts_as_loggable\n", + "sr/sinatra - id: 11181, url: https://github.com/sr/sinatra\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hvammen/webgallery - id: 11210, url: https://github.com/hvammen/webgallery\n", + "publicdisplay/acts_as_taggable_on_steroids - id: 11213, url: https://github.com/publicdisplay/acts_as_taggable_on_steroids\n", + "infused/retrospect-gds - id: 11214, url: https://github.com/infused/retrospect-gds\n", + "evocateur/coldfusion-tmbundle - id: 11215, url: https://github.com/evocateur/coldfusion-tmbundle\n", + "vanpelt/merb-more - id: 11218, url: https://github.com/vanpelt/merb-more\n", + "biochimia/viscose - id: 11223, url: https://github.com/biochimia/viscose\n", + "victor/mephisto - id: 11230, url: https://github.com/victor/mephisto\n", + "matsuu/powertop - id: 11238, url: https://github.com/matsuu/powertop\n", + "devender/clean-mail - id: 11242, url: https://github.com/devender/clean-mail\n", + "halorgium/nbu2vcard - id: 11248, url: https://github.com/halorgium/nbu2vcard\n", + "rjmackay/jojo_internal_links - id: 11252, url: https://github.com/rjmackay/jojo_internal_links\n", + "captproton/mephisto_contact_form-plugin - id: 11254, url: https://github.com/captproton/mephisto_contact_form-plugin\n", + "captproton/mephisto-lightbox-image-gallery-filter - id: 11258, url: https://github.com/captproton/mephisto-lightbox-image-gallery-filter\n", + "TekNoLogic/teksLoot - id: 11262, url: https://github.com/TekNoLogic/teksLoot\n", + "cho45/histogram-as - id: 11270, url: https://github.com/cho45/histogram-as\n", + "jqr/air_speakers - id: 11272, url: https://github.com/jqr/air_speakers\n", + "santana/ruby-informix - id: 11276, url: https://github.com/santana/ruby-informix\n", + "bruce/rtex - id: 11281, url: https://github.com/bruce/rtex\n", + "lorenjohnson/facebook-multiselect - id: 11286, url: https://github.com/lorenjohnson/facebook-multiselect\n", + "keita/dtask - id: 11287, url: https://github.com/keita/dtask\n", + "psq/matzbot - id: 11296, url: https://github.com/psq/matzbot\n", + "dustin/loginit - id: 11299, url: https://github.com/dustin/loginit\n", + "wuts/footprint - id: 11304, url: https://github.com/wuts/footprint\n", + "dyoder/autocode - id: 11305, url: https://github.com/dyoder/autocode\n", + "rzownir/webfaction-rails-environment - id: 11315, url: https://github.com/rzownir/webfaction-rails-environment\n", + "andykent/edgy - id: 11317, url: https://github.com/andykent/edgy\n", + "simojenki/rspecjava - id: 11320, url: https://github.com/simojenki/rspecjava\n", + "jnicklas/chianna - id: 11326, url: https://github.com/jnicklas/chianna\n", + "planetbeing/libdmg-hfsplus - id: 11332, url: https://github.com/planetbeing/libdmg-hfsplus\n", + "mhl/cryptic-crossword-indicators-and-abbreviations - id: 11337, url: https://github.com/mhl/cryptic-crossword-indicators-and-abbreviations\n", + "universal/ownpastie - id: 11338, url: https://github.com/universal/ownpastie\n", + "hadley/profr - id: 11342, url: https://github.com/hadley/profr\n", + "reubencornel/vision - id: 11344, url: https://github.com/reubencornel/vision\n", + "DrMark/rubyamp-cheatsheet - id: 11348, url: https://github.com/DrMark/rubyamp-cheatsheet\n", + "jicknan/dotfiles_linux - id: 11353, url: https://github.com/jicknan/dotfiles_linux\n", + "Yves-xx/dss - id: 11359, url: https://github.com/Yves-xx/dss\n", + "mdk/flickroff - id: 11360, url: https://github.com/mdk/flickroff\n", + "kad3nce/altered_beast - id: 11370, url: https://github.com/kad3nce/altered_beast\n", + "abossenbroek/odesolvers - id: 11371, url: https://github.com/abossenbroek/odesolvers\n", + "atduskgreg/gas - id: 11377, url: https://github.com/atduskgreg/gas\n", + "semblance/bishop - id: 11381, url: https://github.com/semblance/bishop\n", + "hvolkmer/git-playground - id: 11385, url: https://github.com/hvolkmer/git-playground\n", + "porras/language_detection - id: 11387, url: https://github.com/porras/language_detection\n", + "loe/lighthouse-bugzilla-importer - id: 11391, url: https://github.com/loe/lighthouse-bugzilla-importer\n", + "sanderm/webgallery - id: 11402, url: https://github.com/sanderm/webgallery\n", + "Peeja/rubot - id: 11407, url: https://github.com/Peeja/rubot\n", + "levinalex/tfh_rts1 - id: 11410, url: https://github.com/levinalex/tfh_rts1\n", + "dmarkow/slimtimer4r - id: 11411, url: https://github.com/dmarkow/slimtimer4r\n", + "jasonroelofs/rbgccxml - id: 11412, url: https://github.com/jasonroelofs/rbgccxml\n", + "jasonroelofs/rbplusplus - id: 11413, url: https://github.com/jasonroelofs/rbplusplus\n", + "jakehow/webrat - id: 11414, url: https://github.com/jakehow/webrat\n", + "captblanket/h2tx - id: 11415, url: https://github.com/captblanket/h2tx\n", + "bmizerany/rack-mirror - id: 11419, url: https://github.com/bmizerany/rack-mirror\n", + "bmizerany/thin - id: 11420, url: https://github.com/bmizerany/thin\n", + "alsemyonov/rotuka-rails-extender - id: 11422, url: https://github.com/alsemyonov/rotuka-rails-extender\n", + "sparklemotion/csspool - id: 11423, url: https://github.com/sparklemotion/csspool\n", + "cristiantacchi/arista-tres - id: 11426, url: https://github.com/cristiantacchi/arista-tres\n", + "tapajos/brazilian-rails - id: 11428, url: https://github.com/tapajos/brazilian-rails\n", + "joshfrench/rakismet - id: 11432, url: https://github.com/joshfrench/rakismet\n", + "technicalpickles/thescotchzone - id: 11434, url: https://github.com/technicalpickles/thescotchzone\n", + "derailed/mole - id: 11440, url: https://github.com/derailed/mole\n", + "patrickt/scraps - id: 11450, url: https://github.com/patrickt/scraps\n", + "bscofield/movielist - id: 11454, url: https://github.com/bscofield/movielist\n", + "stephencelis/timeframe - id: 11466, url: https://github.com/stephencelis/timeframe\n", + "peimei/jitsu-framework-gem - id: 11474, url: https://github.com/peimei/jitsu-framework-gem\n", + "peimei/jitsu-framework-base-website - id: 11475, url: https://github.com/peimei/jitsu-framework-base-website\n", + "pluskid/kidy - id: 11477, url: https://github.com/pluskid/kidy\n", + "segfault/mephisto - id: 11479, url: https://github.com/segfault/mephisto\n", + "astine/subship - id: 11481, url: https://github.com/astine/subship\n", + "dileepfrog/dileepfrog - id: 11483, url: https://github.com/dileepfrog/dileepfrog\n", + "wkorfhage/filematcher - id: 11484, url: https://github.com/wkorfhage/filematcher\n", + "brendano/nlp_jobs - id: 11485, url: https://github.com/brendano/nlp_jobs\n", + "testapi11/testopensocial - id: 11486, url: https://github.com/testapi11/testopensocial\n", + "twitter-archive/kestrel - id: 11493, url: https://github.com/twitter-archive/kestrel\n", + "xman/reversi - id: 11496, url: https://github.com/xman/reversi\n", + "xman/utility - id: 11499, url: https://github.com/xman/utility\n", + "voitto/timeframe - id: 11505, url: https://github.com/voitto/timeframe\n", + "mojodna/oauth-proxy - id: 11510, url: https://github.com/mojodna/oauth-proxy\n", + "valdar/wiigesture - id: 11511, url: https://github.com/valdar/wiigesture\n", + "pat/active-matchers - id: 11512, url: https://github.com/pat/active-matchers\n", + "zmalltalker/dry-report - id: 11530, url: https://github.com/zmalltalker/dry-report\n", + "dfugere/flat_lady - id: 11531, url: https://github.com/dfugere/flat_lady\n", + "halfbyte/localhost3000-de-wordpress-theme - id: 11538, url: https://github.com/halfbyte/localhost3000-de-wordpress-theme\n", + "larrytheliquid/will_paginate - id: 11545, url: https://github.com/larrytheliquid/will_paginate\n", + "klauern/callingruby - id: 11546, url: https://github.com/klauern/callingruby\n", + "ayb/chuckslist - id: 11558, url: https://github.com/ayb/chuckslist\n", + "brian-lc/ajax-rdoc - id: 11559, url: https://github.com/brian-lc/ajax-rdoc\n", + "pengwynn/ujs_sort_helper - id: 11560, url: https://github.com/pengwynn/ujs_sort_helper\n", + "grigio/xmp-manager - id: 11563, url: https://github.com/grigio/xmp-manager\n", + "markbates/genosaurus - id: 11566, url: https://github.com/markbates/genosaurus\n", + "squeejee/ujs_sort_helper - id: 11571, url: https://github.com/squeejee/ujs_sort_helper\n", + "dams/params-check-faster - id: 11572, url: https://github.com/dams/params-check-faster\n", + "mootools/mootools-core - id: 11573, url: https://github.com/mootools/mootools-core\n", + "flogic/shmemeter - id: 11586, url: https://github.com/flogic/shmemeter\n", + "pilt/stream-server - id: 11594, url: https://github.com/pilt/stream-server\n", + "Shopify/active_shipping - id: 11598, url: https://github.com/Shopify/active_shipping\n", + "Shopify/delayed_job - id: 11599, url: https://github.com/Shopify/delayed_job\n", + "timwah/trdotcom - id: 11604, url: https://github.com/timwah/trdotcom\n", + "Shopify/response_bank - id: 11605, url: https://github.com/Shopify/response_bank\n", + "jamesmacaulay/active_shipping - id: 11611, url: https://github.com/jamesmacaulay/active_shipping\n", + "jfontan/manchea - id: 11614, url: https://github.com/jfontan/manchea\n", + "jgarber/redcloth - id: 11635, url: https://github.com/jgarber/redcloth\n", + "gimmi/webnotes - id: 11637, url: https://github.com/gimmi/webnotes\n", + "sunny/mariokartwiit - id: 11639, url: https://github.com/sunny/mariokartwiit\n", + "jede/list_for - id: 11643, url: https://github.com/jede/list_for\n", + "britt/github-java - id: 11647, url: https://github.com/britt/github-java\n", + "jmettraux/ruote-fluo - id: 11648, url: https://github.com/jmettraux/ruote-fluo\n", + "Grayson/applescripttodictionarywithnutoo - id: 11650, url: https://github.com/Grayson/applescripttodictionarywithnutoo\n", + "jeremyf/rdoc_test - id: 11657, url: https://github.com/jeremyf/rdoc_test\n", + "cardmagic/do - id: 11660, url: https://github.com/cardmagic/do\n", + "technicalpickles/vlad-extras - id: 11669, url: https://github.com/technicalpickles/vlad-extras\n", + "krobertson/dm-paperclip - id: 11671, url: https://github.com/krobertson/dm-paperclip\n", + "softprops/captcha_with_question - id: 11675, url: https://github.com/softprops/captcha_with_question\n", + "cnk/restful-authentication - id: 11676, url: https://github.com/cnk/restful-authentication\n", + "jeremyf/rspec-custom-matchers - id: 11682, url: https://github.com/jeremyf/rspec-custom-matchers\n", + "corasaurus-hex/limechat-grayzone - id: 11683, url: https://github.com/corasaurus-hex/limechat-grayzone\n", + "keita/ruby-iso4217 - id: 11685, url: https://github.com/keita/ruby-iso4217\n", + "jonbro/jonbro_snippets - id: 11687, url: https://github.com/jonbro/jonbro_snippets\n", + "kennyp/projector-control - id: 11690, url: https://github.com/kennyp/projector-control\n", + "freels/acts_as_continuable - id: 11693, url: https://github.com/freels/acts_as_continuable\n", + "santana/binpatch - id: 11698, url: https://github.com/santana/binpatch\n", + "jautero/google-app-engine-weekend-projects - id: 11701, url: https://github.com/jautero/google-app-engine-weekend-projects\n", + "uhlenbrock/body_matcher - id: 11702, url: https://github.com/uhlenbrock/body_matcher\n", + "daqing/aeolus - id: 11703, url: https://github.com/daqing/aeolus\n", + "tenderlove/raop - id: 11707, url: https://github.com/tenderlove/raop\n", + "mhw/will_paginate - id: 11710, url: https://github.com/mhw/will_paginate\n", + "standout/s3storage - id: 11713, url: https://github.com/standout/s3storage\n", + "yob/prawn - id: 11717, url: https://github.com/yob/prawn\n", + "jorrel/sp - id: 11722, url: https://github.com/jorrel/sp\n", + "brauteseth/myfirstapple - id: 11725, url: https://github.com/brauteseth/myfirstapple\n", + "uzytkownik/merb_global - id: 11726, url: https://github.com/uzytkownik/merb_global\n", + "roidrage/macistrano - id: 11733, url: https://github.com/roidrage/macistrano\n", + "lutzky/deskbar_ff3 - id: 11735, url: https://github.com/lutzky/deskbar_ff3\n", + "andrzejkrzywda/attribute_fu - id: 11745, url: https://github.com/andrzejkrzywda/attribute_fu\n", + "egoens/core-blog - id: 11750, url: https://github.com/egoens/core-blog\n", + "zhhz/barby - id: 11755, url: https://github.com/zhhz/barby\n", + "aaronkhawkins/sitdown - id: 11757, url: https://github.com/aaronkhawkins/sitdown\n", + "sudara/pretty-text - id: 11760, url: https://github.com/sudara/pretty-text\n", + "jweiss/macistrano - id: 11762, url: https://github.com/jweiss/macistrano\n", + "frioux/webdict - id: 11772, url: https://github.com/frioux/webdict\n", + "CMon/dld - id: 11779, url: https://github.com/CMon/dld\n", + "wspr/mmapkg - id: 11780, url: https://github.com/wspr/mmapkg\n", + "speedmax/h2o-php - id: 11784, url: https://github.com/speedmax/h2o-php\n", + "speedmax/h2o - id: 11785, url: https://github.com/speedmax/h2o\n", + "rpj/qwit - id: 11789, url: https://github.com/rpj/qwit\n", + "subtleGradient/ruby.tmbundle - id: 11794, url: https://github.com/subtleGradient/ruby.tmbundle\n", + "winton/acts_as_relationable - id: 11797, url: https://github.com/winton/acts_as_relationable\n", + "mwarnock/activesesame - id: 11798, url: https://github.com/mwarnock/activesesame\n", + "viking/posy - id: 11804, url: https://github.com/viking/posy\n", + "bickfordb/haskell-taglib - id: 11806, url: https://github.com/bickfordb/haskell-taglib\n", + "jezdez/gitserve - id: 11823, url: https://github.com/jezdez/gitserve\n", + "rmm5t/github-media - id: 11825, url: https://github.com/rmm5t/github-media\n", + "hookercookerman/merb_facebooker - id: 11827, url: https://github.com/hookercookerman/merb_facebooker\n", + "jamesarosen/ruby-tidbits - id: 11830, url: https://github.com/jamesarosen/ruby-tidbits\n", + "heracek/36los-uloha-1 - id: 11831, url: https://github.com/heracek/36los-uloha-1\n", + "viking/posy-dev - id: 11832, url: https://github.com/viking/posy-dev\n", + "peregrine/merb_paginate - id: 11840, url: https://github.com/peregrine/merb_paginate\n", + "h-lame/stegosaurus - id: 11847, url: https://github.com/h-lame/stegosaurus\n", + "dayne/zunkfs - id: 11848, url: https://github.com/dayne/zunkfs\n", + "bronson/--hobostarter - id: 11857, url: https://github.com/bronson/--hobostarter\n", + "bronson/zzz-railsstarter - id: 11859, url: https://github.com/bronson/zzz-railsstarter\n", + "atog/twingle - id: 11863, url: https://github.com/atog/twingle\n", + "dsutedja/mack - id: 11876, url: https://github.com/dsutedja/mack\n", + "teknofire/zunkfs - id: 11877, url: https://github.com/teknofire/zunkfs\n", + "yrashk/rbmodexcl - id: 11878, url: https://github.com/yrashk/rbmodexcl\n", + "dsutedja/genosaurus - id: 11881, url: https://github.com/dsutedja/genosaurus\n", + "spy555/merb-core - id: 11884, url: https://github.com/spy555/merb-core\n", + "py5gol/java - id: 11893, url: https://github.com/py5gol/java\n", + "kitplummer/xmpp4rails - id: 11894, url: https://github.com/kitplummer/xmpp4rails\n", + "vitaly/lazyeval - id: 11896, url: https://github.com/vitaly/lazyeval\n", + "Bjoern/asteroids-controller - id: 11904, url: https://github.com/Bjoern/asteroids-controller\n", + "seanohalpin/doodle - id: 11919, url: https://github.com/seanohalpin/doodle\n", + "xjunior/milx - id: 11932, url: https://github.com/xjunior/milx\n", + "drze/zunkfs - id: 11942, url: https://github.com/drze/zunkfs\n", + "jhenry/jdhresume - id: 11946, url: https://github.com/jhenry/jdhresume\n", + "mtodd/slapp - id: 11953, url: https://github.com/mtodd/slapp\n", + "publicdisplay/rubber - id: 11958, url: https://github.com/publicdisplay/rubber\n", + "davidlinyi/slapp - id: 11959, url: https://github.com/davidlinyi/slapp\n", + "wfarr/rcirc-notify-el - id: 11993, url: https://github.com/wfarr/rcirc-notify-el\n", + "nex3/rcirc-notify-el - id: 11994, url: https://github.com/nex3/rcirc-notify-el\n", + "btbytes/teh - id: 11995, url: https://github.com/btbytes/teh\n", + "kerryb/rspec-on-rails-matchers - id: 12000, url: https://github.com/kerryb/rspec-on-rails-matchers\n", + "pkordel/backgrounder - id: 12003, url: https://github.com/pkordel/backgrounder\n", + "penryu/linode-tools - id: 12011, url: https://github.com/penryu/linode-tools\n", + "nesquena/testing_extensions - id: 12022, url: https://github.com/nesquena/testing_extensions\n", + "alsemyonov/annotate_models - id: 12027, url: https://github.com/alsemyonov/annotate_models\n", + "puttiz/suspend-yard - id: 12030, url: https://github.com/puttiz/suspend-yard\n", + "lachie/menki - id: 12040, url: https://github.com/lachie/menki\n", + "herrtreas/rspactor - id: 12044, url: https://github.com/herrtreas/rspactor\n", + "drone-rites/plus-one - id: 12051, url: https://github.com/drone-rites/plus-one\n", + "hookercookerman/merb-core - id: 12059, url: https://github.com/hookercookerman/merb-core\n", + "kmarsh/chart_fu - id: 12072, url: https://github.com/kmarsh/chart_fu\n", + "jmay/pipeline - id: 12077, url: https://github.com/jmay/pipeline\n", + "josephjaramillo/active_shipping - id: 12082, url: https://github.com/josephjaramillo/active_shipping\n", + "fosk/olsr-frsa - id: 12086, url: https://github.com/fosk/olsr-frsa\n", + "dharding/rails - id: 12089, url: https://github.com/dharding/rails\n", + "cpjolicoeur/timeframe - id: 12093, url: https://github.com/cpjolicoeur/timeframe\n", + "michaelmelanson/cweb-tmbundle - id: 12101, url: https://github.com/michaelmelanson/cweb-tmbundle\n", + "wilkes/expectorant - id: 12107, url: https://github.com/wilkes/expectorant\n", + "farktronix/senfoundation - id: 12109, url: https://github.com/farktronix/senfoundation\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "farktronix/freegoban - id: 12110, url: https://github.com/farktronix/freegoban\n", + "ericstewart/fixture-scenarios - id: 12123, url: https://github.com/ericstewart/fixture-scenarios\n", + "alsemyonov/jrails - id: 12125, url: https://github.com/alsemyonov/jrails\n", + "itirksme/itirksme-com - id: 12128, url: https://github.com/itirksme/itirksme-com\n", + "bmizerany/cheat - id: 12134, url: https://github.com/bmizerany/cheat\n", + "jbarnette/stateful - id: 12141, url: https://github.com/jbarnette/stateful\n", + "imownbey/docbox - id: 12145, url: https://github.com/imownbey/docbox\n", + "dsabanin/models-to-sql-rails-plugin - id: 12157, url: https://github.com/dsabanin/models-to-sql-rails-plugin\n", + "quinn/nex3-s-blog-engine - id: 12170, url: https://github.com/quinn/nex3-s-blog-engine\n", + "typester/data-clmemo - id: 12173, url: https://github.com/typester/data-clmemo\n", + "justinweiss/weisscast - id: 12174, url: https://github.com/justinweiss/weisscast\n", + "spent/pain-point - id: 12175, url: https://github.com/spent/pain-point\n", + "oboxodo/acts_as_extensible - id: 12177, url: https://github.com/oboxodo/acts_as_extensible\n", + "kernow/god - id: 12179, url: https://github.com/kernow/god\n", + "madsimian/masquerade - id: 12180, url: https://github.com/madsimian/masquerade\n", + "kykim/cache_fu - id: 12183, url: https://github.com/kykim/cache_fu\n", + "lukemelia/gchart - id: 12186, url: https://github.com/lukemelia/gchart\n", + "AArnott/atom2blogger - id: 12199, url: https://github.com/AArnott/atom2blogger\n", + "jmettraux/ruote-web - id: 12203, url: https://github.com/jmettraux/ruote-web\n", + "psq/dm-core - id: 12212, url: https://github.com/psq/dm-core\n", + "sudara/permalink_fu - id: 12215, url: https://github.com/sudara/permalink_fu\n", + "ianwhite/inherit_views - id: 12217, url: https://github.com/ianwhite/inherit_views\n", + "defunkt/currency_converter - id: 12220, url: https://github.com/defunkt/currency_converter\n", + "kch/railz_scout - id: 12228, url: https://github.com/kch/railz_scout\n", + "alexeypegov/b3v - id: 12229, url: https://github.com/alexeypegov/b3v\n", + "felipec/gst-openmax - id: 12234, url: https://github.com/felipec/gst-openmax\n", + "felipec/msn-pecan - id: 12237, url: https://github.com/felipec/msn-pecan\n", + "pyrat/ruby-on-rails-tmbundle - id: 12240, url: https://github.com/pyrat/ruby-on-rails-tmbundle\n", + "beenhero/mephisto - id: 12248, url: https://github.com/beenhero/mephisto\n", + "Beladona/wowcompares - id: 12253, url: https://github.com/Beladona/wowcompares\n", + "tslocke/agility2 - id: 12261, url: https://github.com/tslocke/agility2\n", + "gma/git-me-up - id: 12264, url: https://github.com/gma/git-me-up\n", + "deweerdt/netfilter-hook - id: 12268, url: https://github.com/deweerdt/netfilter-hook\n", + "jasonroelofs/gccxml_gem - id: 12274, url: https://github.com/jasonroelofs/gccxml_gem\n", + "johnreilly/github-fogbugz - id: 12283, url: https://github.com/johnreilly/github-fogbugz\n", + "derailed/snitch - id: 12296, url: https://github.com/derailed/snitch\n", + "netphase/aaap - id: 12300, url: https://github.com/netphase/aaap\n", + "planetbeing/forcedeth-osx - id: 12316, url: https://github.com/planetbeing/forcedeth-osx\n", + "collectiveidea/namecase - id: 12318, url: https://github.com/collectiveidea/namecase\n", + "bakineggs/recurring_events_for - id: 12321, url: https://github.com/bakineggs/recurring_events_for\n", + "fabiokung/jetty-rails - id: 12322, url: https://github.com/fabiokung/jetty-rails\n", + "grantr/workling - id: 12336, url: https://github.com/grantr/workling\n", + "swombat/flails - id: 12339, url: https://github.com/swombat/flails\n", + "bpot/amazing-widgets - id: 12342, url: https://github.com/bpot/amazing-widgets\n", + "lukec/cpan-mocked - id: 12361, url: https://github.com/lukec/cpan-mocked\n", + "pzingg/table-diff - id: 12369, url: https://github.com/pzingg/table-diff\n", + "sudothinker/backgroundjob - id: 12373, url: https://github.com/sudothinker/backgroundjob\n", + "schleyfox/wikimapper - id: 12375, url: https://github.com/schleyfox/wikimapper\n", + "kmtrowbr/remindblast - id: 12379, url: https://github.com/kmtrowbr/remindblast\n", + "monkpow/vim - id: 12385, url: https://github.com/monkpow/vim\n", + "tms005/cvs - id: 12395, url: https://github.com/tms005/cvs\n", + "abbra/midcom - id: 12396, url: https://github.com/abbra/midcom\n", + "amikula/promotego-org - id: 12402, url: https://github.com/amikula/promotego-org\n", + "eto/etocom - id: 12403, url: https://github.com/eto/etocom\n", + "zpao/blarg - id: 12408, url: https://github.com/zpao/blarg\n", + "toastdriven/euler - id: 12409, url: https://github.com/toastdriven/euler\n", + "atduskgreg/ruby-blogger - id: 12414, url: https://github.com/atduskgreg/ruby-blogger\n", + "fightinjoe/merb-autoscaffold - id: 12415, url: https://github.com/fightinjoe/merb-autoscaffold\n", + "pat/not-a-mock - id: 12418, url: https://github.com/pat/not-a-mock\n", + "jwiegley/ready-lisp - id: 12422, url: https://github.com/jwiegley/ready-lisp\n", + "mortent/tillsammans - id: 12424, url: https://github.com/mortent/tillsammans\n", + "mikaelvik/tillsammans - id: 12425, url: https://github.com/mikaelvik/tillsammans\n", + "rohankini/solowiki - id: 12426, url: https://github.com/rohankini/solowiki\n", + "hotchpotch/as3rails2u - id: 12427, url: https://github.com/hotchpotch/as3rails2u\n", + "mhw/crud_paginate - id: 12428, url: https://github.com/mhw/crud_paginate\n", + "benschwarz/muxtape-rb - id: 12440, url: https://github.com/benschwarz/muxtape-rb\n", + "Inviz/sequel - id: 12444, url: https://github.com/Inviz/sequel\n", + "motemen/hengband-lua - id: 12447, url: https://github.com/motemen/hengband-lua\n", + "hubris/starengine - id: 12448, url: https://github.com/hubris/starengine\n", + "hubris/stargraphics - id: 12449, url: https://github.com/hubris/stargraphics\n", + "hubris/starinput - id: 12451, url: https://github.com/hubris/starinput\n", + "hubris/starmath - id: 12452, url: https://github.com/hubris/starmath\n", + "hubris/starutils - id: 12453, url: https://github.com/hubris/starutils\n", + "robertfeldt/clolog - id: 12455, url: https://github.com/robertfeldt/clolog\n", + "svenax/bagpipemusic - id: 12457, url: https://github.com/svenax/bagpipemusic\n", + "Inviz/merb-core - id: 12458, url: https://github.com/Inviz/merb-core\n", + "calavera/oos-with-shoes - id: 12459, url: https://github.com/calavera/oos-with-shoes\n", + "melo/perl-class-events - id: 12461, url: https://github.com/melo/perl-class-events\n", + "mwalker/sinatra - id: 12465, url: https://github.com/mwalker/sinatra\n", + "relevance/relevance-ruby-samples - id: 12471, url: https://github.com/relevance/relevance-ruby-samples\n", + "fdb/nodebox-cpp - id: 12473, url: https://github.com/fdb/nodebox-cpp\n", + "jkramer/shell-fm - id: 12478, url: https://github.com/jkramer/shell-fm\n", + "haru01/easy-open-tmbundle - id: 12480, url: https://github.com/haru01/easy-open-tmbundle\n", + "hebrewhammer/sparrow - id: 12489, url: https://github.com/hebrewhammer/sparrow\n", + "ckreager/prototype - id: 12491, url: https://github.com/ckreager/prototype\n", + "pezra/rspec-mode - id: 12494, url: https://github.com/pezra/rspec-mode\n", + "mattb/identity-matcher - id: 12503, url: https://github.com/mattb/identity-matcher\n", + "viking/krails - id: 12506, url: https://github.com/viking/krails\n", + "yrashk/strokedb-site - id: 12507, url: https://github.com/yrashk/strokedb-site\n", + "maxim/trachouse - id: 12510, url: https://github.com/maxim/trachouse\n", + "yrashk/lilu - id: 12511, url: https://github.com/yrashk/lilu\n", + "ianwhite/garlic - id: 12512, url: https://github.com/ianwhite/garlic\n", + "brosner/bosnobot - id: 12513, url: https://github.com/brosner/bosnobot\n", + "vic/vico - id: 12515, url: https://github.com/vic/vico\n", + "lilyball/osx-plist - id: 12516, url: https://github.com/lilyball/osx-plist\n", + "eLmatador/revolting-sun - id: 12521, url: https://github.com/eLmatador/revolting-sun\n", + "hadley/crantastic - id: 12522, url: https://github.com/hadley/crantastic\n", + "kogakure/django-kogakure.de - id: 12526, url: https://github.com/kogakure/django-kogakure.de\n", + "defunkt/choice - id: 12527, url: https://github.com/defunkt/choice\n", + "tominsam/shelf-python - id: 12530, url: https://github.com/tominsam/shelf-python\n", + "lowlee/tourguide - id: 12553, url: https://github.com/lowlee/tourguide\n", + "mjb/farcry - id: 12555, url: https://github.com/mjb/farcry\n", + "eklitzke/evan-haskell-euler - id: 12557, url: https://github.com/eklitzke/evan-haskell-euler\n", + "makkalot/pyalgorithm - id: 12560, url: https://github.com/makkalot/pyalgorithm\n", + "kch/search_object - id: 12561, url: https://github.com/kch/search_object\n", + "michaelee/cs105 - id: 12567, url: https://github.com/michaelee/cs105\n", + "leanucci/fpt - id: 12569, url: https://github.com/leanucci/fpt\n", + "tedkulp/phpspec - id: 12587, url: https://github.com/tedkulp/phpspec\n", + "gugod/dbix-cssquery - id: 12594, url: https://github.com/gugod/dbix-cssquery\n", + "nicksieger/ruby-processing - id: 12595, url: https://github.com/nicksieger/ruby-processing\n", + "asolove/nu - id: 12598, url: https://github.com/asolove/nu\n", + "libin/fliqz4r - id: 12601, url: https://github.com/libin/fliqz4r\n", + "rakuto/jrails_in_place_editing - id: 12603, url: https://github.com/rakuto/jrails_in_place_editing\n", + "hank/life - id: 12604, url: https://github.com/hank/life\n", + "drnic/github-badges - id: 12605, url: https://github.com/drnic/github-badges\n", + "giom/merb-core - id: 12606, url: https://github.com/giom/merb-core\n", + "henrik/annotate_models - id: 12622, url: https://github.com/henrik/annotate_models\n", + "defunkt/mapreducerb - id: 12627, url: https://github.com/defunkt/mapreducerb\n", + "defunkt/ambitious_activerecord - id: 12641, url: https://github.com/defunkt/ambitious_activerecord\n", + "peterellis/pmecms - id: 12647, url: https://github.com/peterellis/pmecms\n", + "Amar/ambition - id: 12654, url: https://github.com/Amar/ambition\n", + "fred/myhouse-project - id: 12657, url: https://github.com/fred/myhouse-project\n", + "fred/christian_cms - id: 12659, url: https://github.com/fred/christian_cms\n", + "dtsato/dojosp - id: 12661, url: https://github.com/dtsato/dojosp\n", + "potatosalad/rak - id: 12663, url: https://github.com/potatosalad/rak\n", + "nesquena/cap-recipes - id: 12666, url: https://github.com/nesquena/cap-recipes\n", + "gma/god - id: 12668, url: https://github.com/gma/god\n", + "robertbrook/depositscraper - id: 12670, url: https://github.com/robertbrook/depositscraper\n", + "jaoswald/cl-comfy-6502 - id: 12679, url: https://github.com/jaoswald/cl-comfy-6502\n", + "fidothe/rspec-tmbundle - id: 12687, url: https://github.com/fidothe/rspec-tmbundle\n", + "henrik/title_helpers - id: 12691, url: https://github.com/henrik/title_helpers\n", + "larssg/gae-score-keeper - id: 12695, url: https://github.com/larssg/gae-score-keeper\n", + "dscape/e-archia - id: 12700, url: https://github.com/dscape/e-archia\n", + "TekNoLogic/Panda - id: 12702, url: https://github.com/TekNoLogic/Panda\n", + "jezdez/limechat-whisper - id: 12715, url: https://github.com/jezdez/limechat-whisper\n", + "timparkin/timparkingallery - id: 12716, url: https://github.com/timparkin/timparkingallery\n", + "rictic/gunit - id: 12727, url: https://github.com/rictic/gunit\n", + "norbauer/sprocket_express - id: 12731, url: https://github.com/norbauer/sprocket_express\n", + "moorage/encryption_fu - id: 12732, url: https://github.com/moorage/encryption_fu\n", + "timparkin/into-the-light - id: 12741, url: https://github.com/timparkin/into-the-light\n", + "aviflombaum/merb-core - id: 12745, url: https://github.com/aviflombaum/merb-core\n", + "benjeffery/ilcsoft-py - id: 12748, url: https://github.com/benjeffery/ilcsoft-py\n", + "igorgue/git-sharp - id: 12749, url: https://github.com/igorgue/git-sharp\n", + "benjeffery/lciotools - id: 12752, url: https://github.com/benjeffery/lciotools\n", + "lukec/socialcalc-xocom - id: 12757, url: https://github.com/lukec/socialcalc-xocom\n", + "cappelaere/ruote-web - id: 12763, url: https://github.com/cappelaere/ruote-web\n", + "collectiveidea/perfecttime - id: 12768, url: https://github.com/collectiveidea/perfecttime\n", + "mattetti/googlecharts - id: 12773, url: https://github.com/mattetti/googlecharts\n", + "relevance/github_hook - id: 12774, url: https://github.com/relevance/github_hook\n", + "TekNoLogic/Engravings - id: 12776, url: https://github.com/TekNoLogic/Engravings\n", + "takeo/googlecharts - id: 12777, url: https://github.com/takeo/googlecharts\n", + "masatomo/nnn - id: 12781, url: https://github.com/masatomo/nnn\n", + "beppu/squatting - id: 12784, url: https://github.com/beppu/squatting\n", + "mattetti/book_mdar - id: 12794, url: https://github.com/mattetti/book_mdar\n", + "motemen/git-vim - id: 12802, url: https://github.com/motemen/git-vim\n", + "dyoder/filebase - id: 12803, url: https://github.com/dyoder/filebase\n", + "mrschyte/template-sort-library - id: 12807, url: https://github.com/mrschyte/template-sort-library\n", + "carlo/wow-dwarvenizer-trollizer - id: 12809, url: https://github.com/carlo/wow-dwarvenizer-trollizer\n", + "btakita/piston - id: 12811, url: https://github.com/btakita/piston\n", + "xilinus/gmaps_demo - id: 12813, url: https://github.com/xilinus/gmaps_demo\n", + "houzongming/app - id: 12820, url: https://github.com/houzongming/app\n", + "btakita/screw-unit - id: 12824, url: https://github.com/btakita/screw-unit\n", + "kneath/greed - id: 12827, url: https://github.com/kneath/greed\n", + "zerok/django-zsutils - id: 12829, url: https://github.com/zerok/django-zsutils\n", + "yob/pdf-wrapper - id: 12830, url: https://github.com/yob/pdf-wrapper\n", + "thinkerbot/tap-website - id: 12861, url: https://github.com/thinkerbot/tap-website\n", + "schleyfox/wikipedia-api - id: 12868, url: https://github.com/schleyfox/wikipedia-api\n", + "cmorss/flashme - id: 12884, url: https://github.com/cmorss/flashme\n", + "johnnyjacob/evolution - id: 12888, url: https://github.com/johnnyjacob/evolution\n", + "ynadji/python - id: 12890, url: https://github.com/ynadji/python\n", + "thinkerbot/tap - id: 12896, url: https://github.com/thinkerbot/tap\n", + "herrtreas/aafautorebuild - id: 12902, url: https://github.com/herrtreas/aafautorebuild\n", + "justinwiley/woot-watcher - id: 12904, url: https://github.com/justinwiley/woot-watcher\n", + "kerryb/wp-kerrybuckley - id: 12914, url: https://github.com/kerryb/wp-kerrybuckley\n", + "motemen/jusk - id: 12918, url: https://github.com/motemen/jusk\n", + "sxross/jquery_plugins - id: 12920, url: https://github.com/sxross/jquery_plugins\n", + "winton/stutools - id: 12922, url: https://github.com/winton/stutools\n", + "jlsync/castanaut - id: 12924, url: https://github.com/jlsync/castanaut\n", + "prabhu/desistartups - id: 12925, url: https://github.com/prabhu/desistartups\n", + "mkultra/mkultra - id: 12928, url: https://github.com/mkultra/mkultra\n", + "tuper/thin - id: 12937, url: https://github.com/tuper/thin\n", + "dustin/memcached - id: 12943, url: https://github.com/dustin/memcached\n", + "lukec/onepagewiki - id: 12952, url: https://github.com/lukec/onepagewiki\n", + "jmckible/version_fu - id: 12955, url: https://github.com/jmckible/version_fu\n", + "reinh/gitviz - id: 12957, url: https://github.com/reinh/gitviz\n", + "dblake/supertest - id: 12958, url: https://github.com/dblake/supertest\n", + "waltz/bubblegum - id: 12960, url: https://github.com/waltz/bubblegum\n", + "tobinibot/test-project - id: 12961, url: https://github.com/tobinibot/test-project\n", + "dan-manges/unit-record - id: 12962, url: https://github.com/dan-manges/unit-record\n", + "crzwdjk/rabbit-tk - id: 12964, url: https://github.com/crzwdjk/rabbit-tk\n", + "hugs/bah - id: 12980, url: https://github.com/hugs/bah\n", + "mbleigh/relates-to - id: 12982, url: https://github.com/mbleigh/relates-to\n", + "joshuabates/acts_as_url_param - id: 12984, url: https://github.com/joshuabates/acts_as_url_param\n", + "giom/merb-plugins - id: 12988, url: https://github.com/giom/merb-plugins\n", + "jschementi/silverline - id: 12991, url: https://github.com/jschementi/silverline\n", + "jedbrown/spectral-petsc - id: 12992, url: https://github.com/jedbrown/spectral-petsc\n", + "henrik/git-tmbundle - id: 12999, url: https://github.com/henrik/git-tmbundle\n", + "typester/clon - id: 13003, url: https://github.com/typester/clon\n", + "rubaidh/mongrel-proxy - id: 13009, url: https://github.com/rubaidh/mongrel-proxy\n", + "ismasan/attachment_fu - id: 13011, url: https://github.com/ismasan/attachment_fu\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "thinkerbot/constants - id: 13027, url: https://github.com/thinkerbot/constants\n", + "gaubert/java-balivernes - id: 13038, url: https://github.com/gaubert/java-balivernes\n", + "thoughthill/ruberion_server_tools - id: 13061, url: https://github.com/thoughthill/ruberion_server_tools\n", + "GFunk911/rubytypeassert - id: 13064, url: https://github.com/GFunk911/rubytypeassert\n", + "koke/wp-statpanel - id: 13070, url: https://github.com/koke/wp-statpanel\n", + "eeejay/liblouisxml - id: 13081, url: https://github.com/eeejay/liblouisxml\n", + "tclarke/coan - id: 13083, url: https://github.com/tclarke/coan\n", + "Interrupt/text-notezer - id: 13087, url: https://github.com/Interrupt/text-notezer\n", + "thinkerbot/hansen_lab - id: 13088, url: https://github.com/thinkerbot/hansen_lab\n", + "reinh/bin - id: 13089, url: https://github.com/reinh/bin\n", + "chriseppstein/haml - id: 13096, url: https://github.com/chriseppstein/haml\n", + "croaky/no_cache - id: 13104, url: https://github.com/croaky/no_cache\n", + "kennethkalmer/activerecord-tableless-models - id: 13113, url: https://github.com/kennethkalmer/activerecord-tableless-models\n", + "davemerwin/960-grid-system - id: 13114, url: https://github.com/davemerwin/960-grid-system\n", + "danielw/mephisto - id: 13121, url: https://github.com/danielw/mephisto\n", + "ayn/acts-as-taggable-on - id: 13124, url: https://github.com/ayn/acts-as-taggable-on\n", + "TwP/webby - id: 13128, url: https://github.com/TwP/webby\n", + "ianwhite/nested_has_many_through - id: 13133, url: https://github.com/ianwhite/nested_has_many_through\n", + "viking/r-yaml - id: 13136, url: https://github.com/viking/r-yaml\n", + "lifedraft/dhonishow - id: 13139, url: https://github.com/lifedraft/dhonishow\n", + "aseever/pci4r - id: 13143, url: https://github.com/aseever/pci4r\n", + "zodttd/gameboy4iphone - id: 13149, url: https://github.com/zodttd/gameboy4iphone\n", + "nel/deliver_to_me - id: 13151, url: https://github.com/nel/deliver_to_me\n", + "zodttd/snes4iphone - id: 13154, url: https://github.com/zodttd/snes4iphone\n", + "jomz/radiant-wym-editor-filter-extension - id: 13156, url: https://github.com/jomz/radiant-wym-editor-filter-extension\n", + "pjhyett/github-services - id: 13163, url: https://github.com/pjhyett/github-services\n", + "nuxlli/odfmobile - id: 13164, url: https://github.com/nuxlli/odfmobile\n", + "jzting/foodfinder - id: 13174, url: https://github.com/jzting/foodfinder\n", + "openquery/dpm - id: 13176, url: https://github.com/openquery/dpm\n", + "jgornick/proto - id: 13178, url: https://github.com/jgornick/proto\n", + "OwlManAtt/imageforum-ys - id: 13180, url: https://github.com/OwlManAtt/imageforum-ys\n", + "adkron/actsaswizard - id: 13193, url: https://github.com/adkron/actsaswizard\n", + "conorh/rannotate - id: 13200, url: https://github.com/conorh/rannotate\n", + "yob/thinking-sphinx - id: 13204, url: https://github.com/yob/thinking-sphinx\n", + "lwiq/proiectpractica_v2 - id: 13214, url: https://github.com/lwiq/proiectpractica_v2\n", + "omghax/einstein - id: 13223, url: https://github.com/omghax/einstein\n", + "royzhu/test - id: 13229, url: https://github.com/royzhu/test\n", + "dag/ruby-statgrab - id: 13238, url: https://github.com/dag/ruby-statgrab\n", + "markwhite/teamleaderonline - id: 13249, url: https://github.com/markwhite/teamleaderonline\n", + "gareth/ruby-freebase - id: 13250, url: https://github.com/gareth/ruby-freebase\n", + "yrashk/zoid - id: 13255, url: https://github.com/yrashk/zoid\n", + "kylecordes/mathdrill - id: 13260, url: https://github.com/kylecordes/mathdrill\n", + "qxjit/test_warning - id: 13263, url: https://github.com/qxjit/test_warning\n", + "abossenbroek/caosde - id: 13266, url: https://github.com/abossenbroek/caosde\n", + "svenfuchs/safemode - id: 13268, url: https://github.com/svenfuchs/safemode\n", + "royzhu/kuplayer - id: 13271, url: https://github.com/royzhu/kuplayer\n", + "nmeans/twitdo - id: 13280, url: https://github.com/nmeans/twitdo\n", + "timconstan/vtcalendar - id: 13291, url: https://github.com/timconstan/vtcalendar\n", + "aiwilliams/spec_integration - id: 13293, url: https://github.com/aiwilliams/spec_integration\n", + "aiwilliams/spec_goodies - id: 13295, url: https://github.com/aiwilliams/spec_goodies\n", + "zmack/badjo - id: 13296, url: https://github.com/zmack/badjo\n", + "aiwilliams/access_controlled_system - id: 13297, url: https://github.com/aiwilliams/access_controlled_system\n", + "openmoney/openmoney-client - id: 13299, url: https://github.com/openmoney/openmoney-client\n", + "zhhz/dm-core - id: 13300, url: https://github.com/zhhz/dm-core\n", + "openmoney/openmoney-server - id: 13301, url: https://github.com/openmoney/openmoney-server\n", + "openmoney/openmoney-plugin - id: 13302, url: https://github.com/openmoney/openmoney-plugin\n", + "GFunk911/baseball-stats - id: 13315, url: https://github.com/GFunk911/baseball-stats\n", + "lamdor/programming-erlang - id: 13317, url: https://github.com/lamdor/programming-erlang\n", + "bruce/stencil - id: 13318, url: https://github.com/bruce/stencil\n", + "baldwindavid/dnb_public_shell - id: 13319, url: https://github.com/baldwindavid/dnb_public_shell\n", + "aogail/platform - id: 13320, url: https://github.com/aogail/platform\n", + "granth/sake - id: 13321, url: https://github.com/granth/sake\n", + "dang/kvm - id: 13329, url: https://github.com/dang/kvm\n", + "dmarkow/tmail_bounce_parser - id: 13334, url: https://github.com/dmarkow/tmail_bounce_parser\n", + "seancribbs/radiant-copy-move - id: 13344, url: https://github.com/seancribbs/radiant-copy-move\n", + "auser/god - id: 13355, url: https://github.com/auser/god\n", + "terrbear/leetwit - id: 13360, url: https://github.com/terrbear/leetwit\n", + "vitaly/facebooker-old - id: 13361, url: https://github.com/vitaly/facebooker-old\n", + "nelstrom/elastosass - id: 13363, url: https://github.com/nelstrom/elastosass\n", + "tmm1/haml - id: 13367, url: https://github.com/tmm1/haml\n", + "jonshea/config-files - id: 13374, url: https://github.com/jonshea/config-files\n", + "norbauer/has_accent - id: 13379, url: https://github.com/norbauer/has_accent\n", + "leewbutler/show_hidden_fields - id: 13389, url: https://github.com/leewbutler/show_hidden_fields\n", + "natacado/restful-authentication - id: 13391, url: https://github.com/natacado/restful-authentication\n", + "runderwood/redberry - id: 13392, url: https://github.com/runderwood/redberry\n", + "dsisnero/emacs-rails - id: 13393, url: https://github.com/dsisnero/emacs-rails\n", + "mojodna/fireeagle - id: 13404, url: https://github.com/mojodna/fireeagle\n", + "benjeffery/lcfivertex - id: 13411, url: https://github.com/benjeffery/lcfivertex\n", + "broughcut/openschema - id: 13414, url: https://github.com/broughcut/openschema\n", + "zpinter/interlock - id: 13417, url: https://github.com/zpinter/interlock\n", + "douglasjarquin/ruby-haml-tmbundle - id: 13419, url: https://github.com/douglasjarquin/ruby-haml-tmbundle\n", + "farktronix/frontprocesscheckr - id: 13425, url: https://github.com/farktronix/frontprocesscheckr\n", + "mbsullivan/plus-one - id: 13427, url: https://github.com/mbsullivan/plus-one\n", + "farktronix/gittools - id: 13437, url: https://github.com/farktronix/gittools\n", + "jugglebird/rails-template - id: 13438, url: https://github.com/jugglebird/rails-template\n", + "eric/sevenscale-scout-plugins - id: 13445, url: https://github.com/eric/sevenscale-scout-plugins\n", + "magnusjonsson/microtracker - id: 13446, url: https://github.com/magnusjonsson/microtracker\n", + "typester/www-favicon - id: 13447, url: https://github.com/typester/www-favicon\n", + "Shadowfiend/awesome_fields - id: 13449, url: https://github.com/Shadowfiend/awesome_fields\n", + "mghaught/radiant-page-event - id: 13451, url: https://github.com/mghaught/radiant-page-event\n", + "vidriloco/gideon - id: 13454, url: https://github.com/vidriloco/gideon\n", + "trentono/insoshi - id: 13455, url: https://github.com/trentono/insoshi\n", + "vidriloco/evaluador - id: 13457, url: https://github.com/vidriloco/evaluador\n", + "caged/lighthouse-api - id: 13458, url: https://github.com/caged/lighthouse-api\n", + "iamjwc/timetracker - id: 13459, url: https://github.com/iamjwc/timetracker\n", + "nkallen/rails - id: 13461, url: https://github.com/nkallen/rails\n", + "juanger/scielo-dev - id: 13463, url: https://github.com/juanger/scielo-dev\n", + "timcharper/railswhere - id: 13464, url: https://github.com/timcharper/railswhere\n", + "ayn/acts-as-readable - id: 13466, url: https://github.com/ayn/acts-as-readable\n", + "napcs/docbook5-tmbundle - id: 13469, url: https://github.com/napcs/docbook5-tmbundle\n", + "cv/rolling-with-the-punches - id: 13481, url: https://github.com/cv/rolling-with-the-punches\n", + "madrobby/scripty2 - id: 13484, url: https://github.com/madrobby/scripty2\n", + "deweerdt/tamis - id: 13487, url: https://github.com/deweerdt/tamis\n", + "jcnetdev/gullery - id: 13495, url: https://github.com/jcnetdev/gullery\n", + "topochan/master-of-pupets - id: 13496, url: https://github.com/topochan/master-of-pupets\n", + "koke/warp_lms - id: 13500, url: https://github.com/koke/warp_lms\n", + "jwillebrands/git - id: 13503, url: https://github.com/jwillebrands/git\n", + "ianwhite/response_for - id: 13508, url: https://github.com/ianwhite/response_for\n", + "economysizegeek/postie - id: 13510, url: https://github.com/economysizegeek/postie\n", + "michaelbarton/cost_in_evolution - id: 13537, url: https://github.com/michaelbarton/cost_in_evolution\n", + "mojodna/fireeagle-tutorial - id: 13539, url: https://github.com/mojodna/fireeagle-tutorial\n", + "potatosalad/auto_migrations - id: 13558, url: https://github.com/potatosalad/auto_migrations\n", + "michaelbarton/organised_experiments - id: 13563, url: https://github.com/michaelbarton/organised_experiments\n", + "philsmirnov/metajunk - id: 13571, url: https://github.com/philsmirnov/metajunk\n", + "lak/puppet-rails - id: 13573, url: https://github.com/lak/puppet-rails\n", + "lak/puppet-ruby - id: 13574, url: https://github.com/lak/puppet-ruby\n", + "lak/puppet-rubygems - id: 13575, url: https://github.com/lak/puppet-rubygems\n", + "granth/sake-git - id: 13583, url: https://github.com/granth/sake-git\n", + "binnyva/apiextractor - id: 13586, url: https://github.com/binnyva/apiextractor\n", + "damg/bsvc-stable - id: 13587, url: https://github.com/damg/bsvc-stable\n", + "halfbyte/reactivision_test - id: 13595, url: https://github.com/halfbyte/reactivision_test\n", + "redinger/validation_reflection - id: 13596, url: https://github.com/redinger/validation_reflection\n", + "jramirez00/demo - id: 13600, url: https://github.com/jramirez00/demo\n", + "lak/facter - id: 13601, url: https://github.com/lak/facter\n", + "rehsifttam/torrent-search - id: 13602, url: https://github.com/rehsifttam/torrent-search\n", + "ab5tract/chewy - id: 13603, url: https://github.com/ab5tract/chewy\n", + "TwP/bitwise - id: 13605, url: https://github.com/TwP/bitwise\n", + "yar/engines - id: 13607, url: https://github.com/yar/engines\n", + "nklein/com-nklein-util-general - id: 13617, url: https://github.com/nklein/com-nklein-util-general\n", + "ksdtech/priorities - id: 13621, url: https://github.com/ksdtech/priorities\n", + "nklein/com-nklein-util-vec-math - id: 13622, url: https://github.com/nklein/com-nklein-util-vec-math\n", + "modgeosys/acts_as_state_machine - id: 13624, url: https://github.com/modgeosys/acts_as_state_machine\n", + "nklein/com-nklein-gl-springs - id: 13625, url: https://github.com/nklein/com-nklein-gl-springs\n", + "thewoolleyman/timeliner - id: 13640, url: https://github.com/thewoolleyman/timeliner\n", + "vuq/test1 - id: 13644, url: https://github.com/vuq/test1\n", + "brupm/onda - id: 13658, url: https://github.com/brupm/onda\n", + "pharaohsd/config - id: 13660, url: https://github.com/pharaohsd/config\n", + "mudiarto/redmine_repository_maintenance - id: 13663, url: https://github.com/mudiarto/redmine_repository_maintenance\n", + "jim/gizmos - id: 13664, url: https://github.com/jim/gizmos\n", + "DanielKehoe/foodmoves - id: 13667, url: https://github.com/DanielKehoe/foodmoves\n", + "CarlosGabaldon/hacking-log - id: 13670, url: https://github.com/CarlosGabaldon/hacking-log\n", + "hans/twitkit - id: 13674, url: https://github.com/hans/twitkit\n", + "weavejester/compojure - id: 13677, url: https://github.com/weavejester/compojure\n", + "tiegz/shoes-textmate-bundle - id: 13678, url: https://github.com/tiegz/shoes-textmate-bundle\n", + "supaspoida/bip - id: 13681, url: https://github.com/supaspoida/bip\n", + "reubencornel/cl-decisiontree - id: 13687, url: https://github.com/reubencornel/cl-decisiontree\n", + "juanger/rorgate - id: 13691, url: https://github.com/juanger/rorgate\n", + "quake/cache_fu - id: 13692, url: https://github.com/quake/cache_fu\n", + "aussiegeek/capmongrel - id: 13694, url: https://github.com/aussiegeek/capmongrel\n", + "quake/will_paginate - id: 13695, url: https://github.com/quake/will_paginate\n", + "bradfitz/perl-net-openid - id: 13698, url: https://github.com/bradfitz/perl-net-openid\n", + "jmac/seamonster - id: 13702, url: https://github.com/jmac/seamonster\n", + "ryanlowe/audit_mass_assignment - id: 13703, url: https://github.com/ryanlowe/audit_mass_assignment\n", + "TwP/bones - id: 13705, url: https://github.com/TwP/bones\n", + "dag/bob - id: 13708, url: https://github.com/dag/bob\n", + "gilesbowkett/visijax - id: 13709, url: https://github.com/gilesbowkett/visijax\n", + "ryanlowe/client_date - id: 13710, url: https://github.com/ryanlowe/client_date\n", + "ryanlowe/easy_format - id: 13714, url: https://github.com/ryanlowe/easy_format\n", + "sur/auto_tags_rails - id: 13716, url: https://github.com/sur/auto_tags_rails\n", + "abharambe/821plus - id: 13724, url: https://github.com/abharambe/821plus\n", + "pjhyett/zoned - id: 13727, url: https://github.com/pjhyett/zoned\n", + "xilinus/prototypeui - id: 13729, url: https://github.com/xilinus/prototypeui\n", + "broughcut/rorapi - id: 13737, url: https://github.com/broughcut/rorapi\n", + "deanmao/nusax - id: 13756, url: https://github.com/deanmao/nusax\n", + "osteele/jquery-profile - id: 13759, url: https://github.com/osteele/jquery-profile\n", + "siannopollo/utilities - id: 13763, url: https://github.com/siannopollo/utilities\n", + "marceloguedes/theora-davinci - id: 13764, url: https://github.com/marceloguedes/theora-davinci\n", + "Singletoned/wiseguy - id: 13768, url: https://github.com/Singletoned/wiseguy\n", + "tomtt/tomtt_emacslisp - id: 13769, url: https://github.com/tomtt/tomtt_emacslisp\n", + "maddox/iphone2itunes - id: 13773, url: https://github.com/maddox/iphone2itunes\n", + "gbovee/insoshi - id: 13774, url: https://github.com/gbovee/insoshi\n", + "rpheath/acts_as_lookup - id: 13775, url: https://github.com/rpheath/acts_as_lookup\n", + "Constellation/javascript - id: 13780, url: https://github.com/Constellation/javascript\n", + "dchelimsky/sinatra - id: 13789, url: https://github.com/dchelimsky/sinatra\n", + "ryanlowe/acts_as_indestructible - id: 13792, url: https://github.com/ryanlowe/acts_as_indestructible\n", + "mikepea/github-test - id: 13794, url: https://github.com/mikepea/github-test\n", + "georgepalmer/backgroundrb_merb - id: 13795, url: https://github.com/georgepalmer/backgroundrb_merb\n", + "bert/libdxf - id: 13803, url: https://github.com/bert/libdxf\n", + "steffen/ordered_attributes - id: 13804, url: https://github.com/steffen/ordered_attributes\n", + "joannou/nstableviewftw - id: 13808, url: https://github.com/joannou/nstableviewftw\n", + "lazyatom/backchat - id: 13810, url: https://github.com/lazyatom/backchat\n", + "jvoorhis/lucene_query - id: 13824, url: https://github.com/jvoorhis/lucene_query\n", + "mhennemeyer/prag_dave_testing - id: 13829, url: https://github.com/mhennemeyer/prag_dave_testing\n", + "dxoigmn/nymble - id: 13835, url: https://github.com/dxoigmn/nymble\n", + "austintaylor/scrollwork - id: 13847, url: https://github.com/austintaylor/scrollwork\n", + "danielharan/addressbookimporter - id: 13853, url: https://github.com/danielharan/addressbookimporter\n", + "collectiveidea/recursable - id: 13863, url: https://github.com/collectiveidea/recursable\n", + "sbenhaim/bike_contest - id: 13867, url: https://github.com/sbenhaim/bike_contest\n", + "collectiveidea/migration_test_helper - id: 13869, url: https://github.com/collectiveidea/migration_test_helper\n", + "austintaylor/nitrous - id: 13870, url: https://github.com/austintaylor/nitrous\n", + "taasaa/lazyeval - id: 13871, url: https://github.com/taasaa/lazyeval\n", + "bneumeier/xorg-superproject - id: 13875, url: https://github.com/bneumeier/xorg-superproject\n", + "paulnicholson/eassl - id: 13877, url: https://github.com/paulnicholson/eassl\n", + "akapadia/nymble - id: 13878, url: https://github.com/akapadia/nymble\n", + "dustin/beanstalk-client-ruby - id: 13884, url: https://github.com/dustin/beanstalk-client-ruby\n", + "tobi/throttle - id: 13885, url: https://github.com/tobi/throttle\n", + "harrisj/activerecord-dbslayer-adapter - id: 13887, url: https://github.com/harrisj/activerecord-dbslayer-adapter\n", + "zackchandler/acts_as_quickbooks_model - id: 13888, url: https://github.com/zackchandler/acts_as_quickbooks_model\n", + "matthanlon/playground - id: 13894, url: https://github.com/matthanlon/playground\n", + "pt/insoshi - id: 13897, url: https://github.com/pt/insoshi\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mheath/adbcj - id: 13899, url: https://github.com/mheath/adbcj\n", + "githubnow/lucene_query - id: 13902, url: https://github.com/githubnow/lucene_query\n", + "adamhjk/puppet - id: 13904, url: https://github.com/adamhjk/puppet\n", + "adamhjk/facter - id: 13905, url: https://github.com/adamhjk/facter\n", + "caged/lighthouse-digest - id: 13908, url: https://github.com/caged/lighthouse-digest\n", + "griff/osx-firewall - id: 13914, url: https://github.com/griff/osx-firewall\n", + "nnnnon/rails - id: 13919, url: https://github.com/nnnnon/rails\n", + "cho45/cutagem - id: 13920, url: https://github.com/cho45/cutagem\n", + "norbauer/salty_slugs - id: 13924, url: https://github.com/norbauer/salty_slugs\n", + "flogic/acts-as-range - id: 13932, url: https://github.com/flogic/acts-as-range\n", + "mdiep/mtdweb - id: 13938, url: https://github.com/mdiep/mtdweb\n", + "lak/puppetshow - id: 13940, url: https://github.com/lak/puppetshow\n", + "flogic/shatnr - id: 13943, url: https://github.com/flogic/shatnr\n", + "dyoder/pages - id: 13949, url: https://github.com/dyoder/pages\n", + "logan/ircquotes - id: 13950, url: https://github.com/logan/ircquotes\n", + "harold/twodportalquake - id: 13953, url: https://github.com/harold/twodportalquake\n", + "mislav/hanna - id: 13960, url: https://github.com/mislav/hanna\n", + "jmhodges/rfeedparser - id: 13963, url: https://github.com/jmhodges/rfeedparser\n", + "infused/dbf - id: 13966, url: https://github.com/infused/dbf\n", + "guan/rails - id: 13969, url: https://github.com/guan/rails\n", + "fred/amazon_ruby_tools - id: 13972, url: https://github.com/fred/amazon_ruby_tools\n", + "mallipeddi/django-pipes - id: 13978, url: https://github.com/mallipeddi/django-pipes\n", + "calvincorreli/pinds_utils - id: 13979, url: https://github.com/calvincorreli/pinds_utils\n", + "robmckinnon/twfynz - id: 13980, url: https://github.com/robmckinnon/twfynz\n", + "imkite/rspec-rails - id: 13986, url: https://github.com/imkite/rspec-rails\n", + "calvincorreli/exception_textable - id: 13988, url: https://github.com/calvincorreli/exception_textable\n", + "jhenry/netnewswire-friendfeed - id: 13998, url: https://github.com/jhenry/netnewswire-friendfeed\n", + "calvincorreli/redirect_routing - id: 14023, url: https://github.com/calvincorreli/redirect_routing\n", + "mhennemeyer/shoulda - id: 14031, url: https://github.com/mhennemeyer/shoulda\n", + "mtodd/halcyon-clients - id: 14034, url: https://github.com/mtodd/halcyon-clients\n", + "monde/hurl - id: 14038, url: https://github.com/monde/hurl\n", + "tore/trafficsim - id: 14040, url: https://github.com/tore/trafficsim\n", + "joshuamiller/flotilla - id: 14044, url: https://github.com/joshuamiller/flotilla\n", + "vertiginous/ambitious-wmi - id: 14045, url: https://github.com/vertiginous/ambitious-wmi\n", + "mtodd/ranger - id: 14055, url: https://github.com/mtodd/ranger\n", + "jrray/gotefarm - id: 14073, url: https://github.com/jrray/gotefarm\n", + "austin/paperclip - id: 14081, url: https://github.com/austin/paperclip\n", + "bottlecaplabs/gels - id: 14083, url: https://github.com/bottlecaplabs/gels\n", + "skippy/s3_rake_tasks - id: 14084, url: https://github.com/skippy/s3_rake_tasks\n", + "stympy/active_merchant - id: 14087, url: https://github.com/stympy/active_merchant\n", + "mallipeddi/django-yslow - id: 14096, url: https://github.com/mallipeddi/django-yslow\n", + "ericallam/docrails - id: 14098, url: https://github.com/ericallam/docrails\n", + "TekNoLogic/controlfreak - id: 14103, url: https://github.com/TekNoLogic/controlfreak\n", + "dustin/annotate_models - id: 14108, url: https://github.com/dustin/annotate_models\n", + "jnewland/god_web - id: 14115, url: https://github.com/jnewland/god_web\n", + "adam/yard-tmbundle - id: 14119, url: https://github.com/adam/yard-tmbundle\n", + "sd/notsomate - id: 14120, url: https://github.com/sd/notsomate\n", + "programming-nu/nusax - id: 14122, url: https://github.com/programming-nu/nusax\n", + "jfernandez/submarine - id: 14125, url: https://github.com/jfernandez/submarine\n", + "melo/munin - id: 14126, url: https://github.com/melo/munin\n", + "krh/razor - id: 14128, url: https://github.com/krh/razor\n", + "melo/scripts - id: 14135, url: https://github.com/melo/scripts\n", + "jordanfowler/shadow - id: 14137, url: https://github.com/jordanfowler/shadow\n", + "seancribbs/restful_workflow - id: 14141, url: https://github.com/seancribbs/restful_workflow\n", + "soemirno/studypal - id: 14146, url: https://github.com/soemirno/studypal\n", + "mfilej/fluid-twitter - id: 14150, url: https://github.com/mfilej/fluid-twitter\n", + "jmhodges/rchardet - id: 14154, url: https://github.com/jmhodges/rchardet\n", + "jgm/peg-markdown - id: 14156, url: https://github.com/jgm/peg-markdown\n", + "ynadji/website - id: 14158, url: https://github.com/ynadji/website\n", + "dan-manges/unit-controller - id: 14159, url: https://github.com/dan-manges/unit-controller\n", + "DrMark/brain_buster - id: 14161, url: https://github.com/DrMark/brain_buster\n", + "drone-rites/satori - id: 14162, url: https://github.com/drone-rites/satori\n", + "btakita/capistrano - id: 14166, url: https://github.com/btakita/capistrano\n", + "djwonk/method_trails - id: 14167, url: https://github.com/djwonk/method_trails\n", + "jamis/sqlite-ruby - id: 14177, url: https://github.com/jamis/sqlite-ruby\n", + "xaviershay/sandbox - id: 14178, url: https://github.com/xaviershay/sandbox\n", + "KirinDave/fuzed - id: 14187, url: https://github.com/KirinDave/fuzed\n", + "sl4mmy/grok-ansi-color-codes - id: 14189, url: https://github.com/sl4mmy/grok-ansi-color-codes\n", + "duncanbeevers/rails - id: 14190, url: https://github.com/duncanbeevers/rails\n", + "notbenh/www--content--inventory - id: 14191, url: https://github.com/notbenh/www--content--inventory\n", + "kylecronin/zap - id: 14192, url: https://github.com/kylecronin/zap\n", + "santana/activerecord-informix-adapter - id: 14195, url: https://github.com/santana/activerecord-informix-adapter\n", + "dann/dotfiles - id: 14197, url: https://github.com/dann/dotfiles\n", + "DocSavage/bloog - id: 14203, url: https://github.com/DocSavage/bloog\n", + "jezdez/virtualmin-trac - id: 14206, url: https://github.com/jezdez/virtualmin-trac\n", + "pic/globalize - id: 14219, url: https://github.com/pic/globalize\n", + "youpy/newextension - id: 14224, url: https://github.com/youpy/newextension\n", + "fairchild/acts_as_quickbooks_model - id: 14226, url: https://github.com/fairchild/acts_as_quickbooks_model\n", + "alx/delicious-bot - id: 14237, url: https://github.com/alx/delicious-bot\n", + "EugZol/strokedb - id: 14239, url: https://github.com/EugZol/strokedb\n", + "lorenjohnson/restful_workflow - id: 14247, url: https://github.com/lorenjohnson/restful_workflow\n", + "dpc/dpcgoban - id: 14256, url: https://github.com/dpc/dpcgoban\n", + "mathieul/insoshi - id: 14258, url: https://github.com/mathieul/insoshi\n", + "zwily/iphototogallery - id: 14269, url: https://github.com/zwily/iphototogallery\n", + "dpc/dack - id: 14270, url: https://github.com/dpc/dack\n", + "topfunky/google-checkout - id: 14278, url: https://github.com/topfunky/google-checkout\n", + "xrg/asterisk-xrg - id: 14279, url: https://github.com/xrg/asterisk-xrg\n", + "ymendel/graphtunes - id: 14300, url: https://github.com/ymendel/graphtunes\n", + "danielharan/twitterjobbot - id: 14304, url: https://github.com/danielharan/twitterjobbot\n", + "imkite/rspec-custom-matchers - id: 14306, url: https://github.com/imkite/rspec-custom-matchers\n", + "orestis/django-localdates - id: 14307, url: https://github.com/orestis/django-localdates\n", + "webmat/try_require - id: 14311, url: https://github.com/webmat/try_require\n", + "tjackiw/uses_connection - id: 14312, url: https://github.com/tjackiw/uses_connection\n", + "wycats/benchwarmer - id: 14327, url: https://github.com/wycats/benchwarmer\n", + "urubatan/gedit_formatter - id: 14330, url: https://github.com/urubatan/gedit_formatter\n", + "tjackiw/acts_as_solr - id: 14335, url: https://github.com/tjackiw/acts_as_solr\n", + "jqr/super_range - id: 14344, url: https://github.com/jqr/super_range\n", + "johan/pike - id: 14345, url: https://github.com/johan/pike\n", + "jqr/has_one_autocreate - id: 14346, url: https://github.com/jqr/has_one_autocreate\n", + "jqr/postgres_sequence_support - id: 14352, url: https://github.com/jqr/postgres_sequence_support\n", + "paulstansifer/end-of-september - id: 14353, url: https://github.com/paulstansifer/end-of-september\n", + "iamjwc/stlflatpick-com - id: 14359, url: https://github.com/iamjwc/stlflatpick-com\n", + "captproton/rails - id: 14365, url: https://github.com/captproton/rails\n", + "mislav/shrubbery - id: 14366, url: https://github.com/mislav/shrubbery\n", + "lukemelia/sake-tasks - id: 14379, url: https://github.com/lukemelia/sake-tasks\n", + "dustin/nextvista - id: 14386, url: https://github.com/dustin/nextvista\n", + "jsmecham/CalendarView - id: 14388, url: https://github.com/jsmecham/CalendarView\n", + "kamu/wang - id: 14399, url: https://github.com/kamu/wang\n", + "swdyh/autopagerize - id: 14406, url: https://github.com/swdyh/autopagerize\n", + "pehlert/ruby-tilecache - id: 14409, url: https://github.com/pehlert/ruby-tilecache\n", + "kastner/audio-sinner - id: 14410, url: https://github.com/kastner/audio-sinner\n", + "youpy/autopagerize - id: 14411, url: https://github.com/youpy/autopagerize\n", + "jarkko/book_mdar - id: 14414, url: https://github.com/jarkko/book_mdar\n", + "gmomchilov/cakephp-yaml-migrations-and-fixtures - id: 14416, url: https://github.com/gmomchilov/cakephp-yaml-migrations-and-fixtures\n", + "wuts/lovingcare - id: 14426, url: https://github.com/wuts/lovingcare\n", + "zachinglis/mouth - id: 14428, url: https://github.com/zachinglis/mouth\n", + "ajaxmvc/ajax-mvc - id: 14440, url: https://github.com/ajaxmvc/ajax-mvc\n", + "youpy/directory-index-finder - id: 14441, url: https://github.com/youpy/directory-index-finder\n", + "m3talsmith/barter - id: 14445, url: https://github.com/m3talsmith/barter\n", + "cniehaus/tomate - id: 14448, url: https://github.com/cniehaus/tomate\n", + "woodhull/acts_as_solr - id: 14450, url: https://github.com/woodhull/acts_as_solr\n", + "johnmuhl/nginx-tmbundle - id: 14456, url: https://github.com/johnmuhl/nginx-tmbundle\n", + "captproton/rails-iui - id: 14459, url: https://github.com/captproton/rails-iui\n", + "rliebling/god - id: 14462, url: https://github.com/rliebling/god\n", + "nmerouze/action_presenter - id: 14463, url: https://github.com/nmerouze/action_presenter\n", + "dokai/hexagonit-swfheader - id: 14476, url: https://github.com/dokai/hexagonit-swfheader\n", + "bpot/mbws - id: 14478, url: https://github.com/bpot/mbws\n", + "brennandunn/configurator - id: 14483, url: https://github.com/brennandunn/configurator\n", + "universal/rss-irc-bot - id: 14484, url: https://github.com/universal/rss-irc-bot\n", + "spoike/doodle - id: 14487, url: https://github.com/spoike/doodle\n", + "ezmobius/merbivore - id: 14497, url: https://github.com/ezmobius/merbivore\n", + "yannlugrin/tserver - id: 14503, url: https://github.com/yannlugrin/tserver\n", + "davidn/gtranscode - id: 14505, url: https://github.com/davidn/gtranscode\n", + "etrangedev/desert_tools - id: 14506, url: https://github.com/etrangedev/desert_tools\n", + "rsim/oracle-enhanced - id: 14507, url: https://github.com/rsim/oracle-enhanced\n", + "dbgrandi/ruby-aws - id: 14509, url: https://github.com/dbgrandi/ruby-aws\n", + "spoike/xnatilegraphics - id: 14511, url: https://github.com/spoike/xnatilegraphics\n", + "dwillis/fec-utilities - id: 14512, url: https://github.com/dwillis/fec-utilities\n", + "tmm1/screw-unit - id: 14515, url: https://github.com/tmm1/screw-unit\n", + "jcoglan/svn2git - id: 14518, url: https://github.com/jcoglan/svn2git\n", + "joshsusser/validates_existence - id: 14525, url: https://github.com/joshsusser/validates_existence\n", + "norbauer/letterpress - id: 14538, url: https://github.com/norbauer/letterpress\n", + "tageorgiou/comparch-bignum-rsa - id: 14541, url: https://github.com/tageorgiou/comparch-bignum-rsa\n", + "jjune/chicago - id: 14543, url: https://github.com/jjune/chicago\n", + "ivey/merbivore-blog - id: 14545, url: https://github.com/ivey/merbivore-blog\n", + "schacon/fireeaglet - id: 14548, url: https://github.com/schacon/fireeaglet\n", + "zamri/papers - id: 14551, url: https://github.com/zamri/papers\n", + "beppu/learning - id: 14565, url: https://github.com/beppu/learning\n", + "grantr/cached_associations - id: 14570, url: https://github.com/grantr/cached_associations\n", + "mattetti/dm-more - id: 14573, url: https://github.com/mattetti/dm-more\n", + "ryanb/exception_logger - id: 14574, url: https://github.com/ryanb/exception_logger\n", + "mreid/acrp - id: 14575, url: https://github.com/mreid/acrp\n", + "drnic/numbr5 - id: 14591, url: https://github.com/drnic/numbr5\n", + "glasswing28/lovd-by-less - id: 14594, url: https://github.com/glasswing28/lovd-by-less\n", + "clemency/dots - id: 14595, url: https://github.com/clemency/dots\n", + "prismofeverything/channel - id: 14598, url: https://github.com/prismofeverything/channel\n", + "wycats/osx-window-sizing - id: 14599, url: https://github.com/wycats/osx-window-sizing\n", + "mop/python-activeldap - id: 14601, url: https://github.com/mop/python-activeldap\n", + "purcell/darcs-to-git - id: 14602, url: https://github.com/purcell/darcs-to-git\n", + "purcell/airspeed - id: 14603, url: https://github.com/purcell/airspeed\n", + "purcell/db_console - id: 14604, url: https://github.com/purcell/db_console\n", + "purcell/dotr - id: 14605, url: https://github.com/purcell/dotr\n", + "purcell/gemdocindex - id: 14607, url: https://github.com/purcell/gemdocindex\n", + "purcell/maintenance_server - id: 14608, url: https://github.com/purcell/maintenance_server\n", + "purcell/mockr - id: 14609, url: https://github.com/purcell/mockr\n", + "purcell/rails-runit - id: 14610, url: https://github.com/purcell/rails-runit\n", + "purcell/renumber_migrations - id: 14612, url: https://github.com/purcell/renumber_migrations\n", + "vaanisharma/teh - id: 14618, url: https://github.com/vaanisharma/teh\n", + "dbgrandi/googlecharts - id: 14627, url: https://github.com/dbgrandi/googlecharts\n", + "deepblue/springnote_resources - id: 14631, url: https://github.com/deepblue/springnote_resources\n", + "arunthampi/activecouch - id: 14633, url: https://github.com/arunthampi/activecouch\n", + "dbr/tvdb_api - id: 14645, url: https://github.com/dbr/tvdb_api\n", + "gebi/jungerl - id: 14649, url: https://github.com/gebi/jungerl\n", + "jxdm-dmoreau/logiciel_de_compte - id: 14651, url: https://github.com/jxdm-dmoreau/logiciel_de_compte\n", + "jezdez/virtualmin-moinmoin - id: 14655, url: https://github.com/jezdez/virtualmin-moinmoin\n", + "matias4/saus - id: 14656, url: https://github.com/matias4/saus\n", + "jxdm-dmoreau/tan_update - id: 14662, url: https://github.com/jxdm-dmoreau/tan_update\n", + "ruimsf/pautas - id: 14664, url: https://github.com/ruimsf/pautas\n", + "eto/autopagerize - id: 14668, url: https://github.com/eto/autopagerize\n", + "koke/ruby-git - id: 14670, url: https://github.com/koke/ruby-git\n", + "zachinglis/magic_enums - id: 14671, url: https://github.com/zachinglis/magic_enums\n", + "bluemango/blue-mango-revolution-libraries - id: 14677, url: https://github.com/bluemango/blue-mango-revolution-libraries\n", + "zaach/codetch-ext - id: 14680, url: https://github.com/zaach/codetch-ext\n", + "Zariel/scapegoat - id: 14689, url: https://github.com/Zariel/scapegoat\n", + "jkk/goleague - id: 14695, url: https://github.com/jkk/goleague\n", + "fpuelz/kvideotranscoder - id: 14697, url: https://github.com/fpuelz/kvideotranscoder\n", + "dsutedja/mack-orm - id: 14698, url: https://github.com/dsutedja/mack-orm\n", + "cardmagic/classifier - id: 14702, url: https://github.com/cardmagic/classifier\n", + "KirinDave/classifier - id: 14704, url: https://github.com/KirinDave/classifier\n", + "boone/restful-authentication - id: 14707, url: https://github.com/boone/restful-authentication\n", + "shingara/typo_converteur - id: 14712, url: https://github.com/shingara/typo_converteur\n", + "spejman/permalink_fu - id: 14715, url: https://github.com/spejman/permalink_fu\n", + "manuel/based - id: 14717, url: https://github.com/manuel/based\n", + "yeameen/my-favourite-bangla-blogs - id: 14721, url: https://github.com/yeameen/my-favourite-bangla-blogs\n", + "PhilGeek/multiplyqualitative - id: 14722, url: https://github.com/PhilGeek/multiplyqualitative\n", + "Zariel/zarielbuffbar - id: 14729, url: https://github.com/Zariel/zarielbuffbar\n", + "SatoshiGardener/radiant-comments - id: 14735, url: https://github.com/SatoshiGardener/radiant-comments\n", + "farktronix/nsautocoder - id: 14738, url: https://github.com/farktronix/nsautocoder\n", + "caius/source-collection - id: 14742, url: https://github.com/caius/source-collection\n", + "pdeffendol/spatial_adapter - id: 14753, url: https://github.com/pdeffendol/spatial_adapter\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "khangtoh/feather - id: 14754, url: https://github.com/khangtoh/feather\n", + "stouset/rug - id: 14755, url: https://github.com/stouset/rug\n", + "halfbyte/amazon_product_lookup - id: 14763, url: https://github.com/halfbyte/amazon_product_lookup\n", + "matias4/sanks - id: 14766, url: https://github.com/matias4/sanks\n", + "turbana/dor - id: 14768, url: https://github.com/turbana/dor\n", + "piotrj/insoshi - id: 14771, url: https://github.com/piotrj/insoshi\n", + "freaker/prototypeui - id: 14782, url: https://github.com/freaker/prototypeui\n", + "CarlosGabaldon/reggie - id: 14784, url: https://github.com/CarlosGabaldon/reggie\n", + "telmich/gpm - id: 14786, url: https://github.com/telmich/gpm\n", + "ebb/pufn - id: 14790, url: https://github.com/ebb/pufn\n", + "caius/php-faker - id: 14793, url: https://github.com/caius/php-faker\n", + "fiveruns/altered_beast - id: 14795, url: https://github.com/fiveruns/altered_beast\n", + "kr/beanstalk-client-ruby - id: 14802, url: https://github.com/kr/beanstalk-client-ruby\n", + "cardmagic/prototype - id: 14803, url: https://github.com/cardmagic/prototype\n", + "cardmagic/scriptaculous - id: 14804, url: https://github.com/cardmagic/scriptaculous\n", + "cardmagic/capistrano - id: 14805, url: https://github.com/cardmagic/capistrano\n", + "cainlevy/semantic-attributes - id: 14817, url: https://github.com/cainlevy/semantic-attributes\n", + "fabien/merb-manage - id: 14821, url: https://github.com/fabien/merb-manage\n", + "michaelmelanson/erlyweb - id: 14822, url: https://github.com/michaelmelanson/erlyweb\n", + "alvin2ye/twitter - id: 14831, url: https://github.com/alvin2ye/twitter\n", + "lamdor/rubbish-emacs-setup - id: 14840, url: https://github.com/lamdor/rubbish-emacs-setup\n", + "jsmecham/MatrixView - id: 14842, url: https://github.com/jsmecham/MatrixView\n", + "pope/ticgit-watchtower - id: 14843, url: https://github.com/pope/ticgit-watchtower\n", + "adamsanderson/flourish - id: 14852, url: https://github.com/adamsanderson/flourish\n", + "wwwjscom/splat - id: 14853, url: https://github.com/wwwjscom/splat\n", + "rliebling/fake - id: 14856, url: https://github.com/rliebling/fake\n", + "wycats/textmate - id: 14861, url: https://github.com/wycats/textmate\n", + "p2presenter/p2presenter - id: 14863, url: https://github.com/p2presenter/p2presenter\n", + "lawrencepit/exception_logger - id: 14865, url: https://github.com/lawrencepit/exception_logger\n", + "flavorjones/git-rake - id: 14868, url: https://github.com/flavorjones/git-rake\n", + "tslocum/kumo - id: 14869, url: https://github.com/tslocum/kumo\n", + "gnufied/swat - id: 14871, url: https://github.com/gnufied/swat\n", + "Narnach/awesomeness - id: 14895, url: https://github.com/Narnach/awesomeness\n", + "rzownir/fusefs - id: 14910, url: https://github.com/rzownir/fusefs\n", + "nizze/test - id: 14911, url: https://github.com/nizze/test\n", + "bscofield/plugin-gemifier - id: 14915, url: https://github.com/bscofield/plugin-gemifier\n", + "heracek/python-ping - id: 14920, url: https://github.com/heracek/python-ping\n", + "jarib/celerity - id: 14925, url: https://github.com/jarib/celerity\n", + "tomtt/scaffold_views - id: 14931, url: https://github.com/tomtt/scaffold_views\n", + "geoffgarside/palmtree - id: 14939, url: https://github.com/geoffgarside/palmtree\n", + "metellius/alcquery - id: 14940, url: https://github.com/metellius/alcquery\n", + "ccdevnet/openc2e - id: 14947, url: https://github.com/ccdevnet/openc2e\n", + "jasonroelofs/ogrerb - id: 14957, url: https://github.com/jasonroelofs/ogrerb\n", + "robertbrook/petitions - id: 14962, url: https://github.com/robertbrook/petitions\n", + "mfb82/earth - id: 14967, url: https://github.com/mfb82/earth\n", + "erasmo08/meven - id: 14968, url: https://github.com/erasmo08/meven\n", + "deepblue/group_open_id - id: 14975, url: https://github.com/deepblue/group_open_id\n", + "deepblue/slugger - id: 14976, url: https://github.com/deepblue/slugger\n", + "broughcut/basket - id: 14979, url: https://github.com/broughcut/basket\n", + "polar/lovd-by-less - id: 14983, url: https://github.com/polar/lovd-by-less\n", + "ryanb/nifty-generators - id: 14990, url: https://github.com/ryanb/nifty-generators\n", + "timur/exception_logger - id: 14997, url: https://github.com/timur/exception_logger\n", + "dayne/tools - id: 15000, url: https://github.com/dayne/tools\n", + "nuin/beginning-python-for-bioinformatics - id: 15001, url: https://github.com/nuin/beginning-python-for-bioinformatics\n", + "andrew/feeddit - id: 15004, url: https://github.com/andrew/feeddit\n", + "polar/insoshi - id: 15007, url: https://github.com/polar/insoshi\n", + "michaeljones/wake - id: 15017, url: https://github.com/michaeljones/wake\n", + "dag/irc4r - id: 15036, url: https://github.com/dag/irc4r\n", + "schleyfox/peach - id: 15042, url: https://github.com/schleyfox/peach\n", + "drnic/dr-nic-magic-models - id: 15043, url: https://github.com/drnic/dr-nic-magic-models\n", + "koke/grit - id: 15046, url: https://github.com/koke/grit\n", + "tedkulp/cmsms-textmate-bundle - id: 15056, url: https://github.com/tedkulp/cmsms-textmate-bundle\n", + "luke0x/connector - id: 15063, url: https://github.com/luke0x/connector\n", + "duritong/puppetshow - id: 15065, url: https://github.com/duritong/puppetshow\n", + "danpreston/gittools - id: 15078, url: https://github.com/danpreston/gittools\n", + "ivey/merb_has_flash - id: 15080, url: https://github.com/ivey/merb_has_flash\n", + "jamtur01/redmine_tab - id: 15082, url: https://github.com/jamtur01/redmine_tab\n", + "ivey/merb_has_rails_plugins - id: 15083, url: https://github.com/ivey/merb_has_rails_plugins\n", + "wycats/newgem - id: 15087, url: https://github.com/wycats/newgem\n", + "guan/insoshi - id: 15092, url: https://github.com/guan/insoshi\n", + "dschew/mirasky - id: 15102, url: https://github.com/dschew/mirasky\n", + "drnic/google-gears-mechanizations - id: 15107, url: https://github.com/drnic/google-gears-mechanizations\n", + "krobertson/resteasy - id: 15108, url: https://github.com/krobertson/resteasy\n", + "codahale/esi-blog - id: 15109, url: https://github.com/codahale/esi-blog\n", + "ctcherry/modalbox_confirm - id: 15115, url: https://github.com/ctcherry/modalbox_confirm\n", + "SachaSchlegel/active_merchant - id: 15119, url: https://github.com/SachaSchlegel/active_merchant\n", + "sizix/rails - id: 15122, url: https://github.com/sizix/rails\n", + "kaichen/wicked - id: 15123, url: https://github.com/kaichen/wicked\n", + "cth/sdcg - id: 15136, url: https://github.com/cth/sdcg\n", + "weppos/www-delicious - id: 15156, url: https://github.com/weppos/www-delicious\n", + "shingara/book_mdar - id: 15180, url: https://github.com/shingara/book_mdar\n", + "Ideas2IT/insoshi - id: 15186, url: https://github.com/Ideas2IT/insoshi\n", + "ab5tract/cheat - id: 15189, url: https://github.com/ab5tract/cheat\n", + "wesabe/gozer - id: 15194, url: https://github.com/wesabe/gozer\n", + "alltom/ralltom - id: 15198, url: https://github.com/alltom/ralltom\n", + "vitaly/linguist - id: 15203, url: https://github.com/vitaly/linguist\n", + "jwillebrands/gif - id: 15209, url: https://github.com/jwillebrands/gif\n", + "suls/flotilla - id: 15212, url: https://github.com/suls/flotilla\n", + "taasaa/linguist - id: 15213, url: https://github.com/taasaa/linguist\n", + "koke/warp-userprofile - id: 15214, url: https://github.com/koke/warp-userprofile\n", + "cardmagic/rails - id: 15217, url: https://github.com/cardmagic/rails\n", + "lukemelia/cache_fu - id: 15220, url: https://github.com/lukemelia/cache_fu\n", + "eml/java-mogilefs - id: 15223, url: https://github.com/eml/java-mogilefs\n", + "dang/uml - id: 15228, url: https://github.com/dang/uml\n", + "dang/kvm-tools - id: 15229, url: https://github.com/dang/kvm-tools\n", + "araddon/potlatchblog - id: 15230, url: https://github.com/araddon/potlatchblog\n", + "shuber/curl - id: 15231, url: https://github.com/shuber/curl\n", + "ircat/ircat1 - id: 15236, url: https://github.com/ircat/ircat1\n", + "jmonteiro/aprendaaprogramar - id: 15242, url: https://github.com/jmonteiro/aprendaaprogramar\n", + "larrytheliquid/workling - id: 15244, url: https://github.com/larrytheliquid/workling\n", + "nominolo/darcs-to-git - id: 15246, url: https://github.com/nominolo/darcs-to-git\n", + "rdpeng/filehash - id: 15247, url: https://github.com/rdpeng/filehash\n", + "pkeane/dase-gae - id: 15255, url: https://github.com/pkeane/dase-gae\n", + "rails/thor - id: 15257, url: https://github.com/rails/thor\n", + "luke0x/actionjs - id: 15258, url: https://github.com/luke0x/actionjs\n", + "perihelion/basket - id: 15260, url: https://github.com/perihelion/basket\n", + "schleyfox/yaghb - id: 15261, url: https://github.com/schleyfox/yaghb\n", + "yannlugrin/globalize - id: 15262, url: https://github.com/yannlugrin/globalize\n", + "hallettj/openid_authentication_for_hobo - id: 15279, url: https://github.com/hallettj/openid_authentication_for_hobo\n", + "natacado/workling - id: 15291, url: https://github.com/natacado/workling\n", + "bcrypt-ruby/bcrypt-ruby - id: 15293, url: https://github.com/bcrypt-ruby/bcrypt-ruby\n", + "dlwh/oldsmr - id: 15294, url: https://github.com/dlwh/oldsmr\n", + "scientist/scientist - id: 15298, url: https://github.com/scientist/scientist\n", + "guan/flexible_plugin - id: 15303, url: https://github.com/guan/flexible_plugin\n", + "rue/oughtve - id: 15304, url: https://github.com/rue/oughtve\n", + "hallettj/tagging_for_nautilus - id: 15307, url: https://github.com/hallettj/tagging_for_nautilus\n", + "daveyb/chump - id: 15308, url: https://github.com/daveyb/chump\n", + "rayvinly/acts-as-readable - id: 15312, url: https://github.com/rayvinly/acts-as-readable\n", + "bradx3/rodolfo - id: 15314, url: https://github.com/bradx3/rodolfo\n", + "obie/can_flag - id: 15316, url: https://github.com/obie/can_flag\n", + "edavis10/redmine-customer-plugin - id: 15320, url: https://github.com/edavis10/redmine-customer-plugin\n", + "awk/iontv - id: 15323, url: https://github.com/awk/iontv\n", + "dag/jbojme - id: 15325, url: https://github.com/dag/jbojme\n", + "shad/column_control - id: 15326, url: https://github.com/shad/column_control\n", + "larrytheliquid/cry - id: 15327, url: https://github.com/larrytheliquid/cry\n", + "peteonrails/threadedcollections - id: 15330, url: https://github.com/peteonrails/threadedcollections\n", + "seancribbs/facebook-multiselect - id: 15334, url: https://github.com/seancribbs/facebook-multiselect\n", + "mzp/scheme-abc - id: 15342, url: https://github.com/mzp/scheme-abc\n", + "justinvt/framebuilder - id: 15351, url: https://github.com/justinvt/framebuilder\n", + "kjk/extremeoptimizations - id: 15352, url: https://github.com/kjk/extremeoptimizations\n", + "edwin-zz/rails - id: 15358, url: https://github.com/edwin-zz/rails\n", + "ingoweiss/resourceful_views - id: 15372, url: https://github.com/ingoweiss/resourceful_views\n", + "joerichsen/cruisecontrolrb - id: 15391, url: https://github.com/joerichsen/cruisecontrolrb\n", + "zby/rose--htmlx--form--dbic - id: 15393, url: https://github.com/zby/rose--htmlx--form--dbic\n", + "tedkulp/postie - id: 15399, url: https://github.com/tedkulp/postie\n", + "Fingertips/passengerpane - id: 15402, url: https://github.com/Fingertips/passengerpane\n", + "singingfish/rose--htmlx--form--dbic - id: 15403, url: https://github.com/singingfish/rose--htmlx--form--dbic\n", + "nominolo/home - id: 15409, url: https://github.com/nominolo/home\n", + "tuffy/python-audio-tools - id: 15422, url: https://github.com/tuffy/python-audio-tools\n", + "Shopify/liquid - id: 15435, url: https://github.com/Shopify/liquid\n", + "fiveruns/brain_buster - id: 15436, url: https://github.com/fiveruns/brain_buster\n", + "nullstyle/helpcenter - id: 15440, url: https://github.com/nullstyle/helpcenter\n", + "scc/slash - id: 15443, url: https://github.com/scc/slash\n", + "nklein/com-nklein-misc - id: 15444, url: https://github.com/nklein/com-nklein-misc\n", + "samleb/dependencies_resolver - id: 15445, url: https://github.com/samleb/dependencies_resolver\n", + "cainlevy/freemium - id: 15448, url: https://github.com/cainlevy/freemium\n", + "darius/yajson - id: 15450, url: https://github.com/darius/yajson\n", + "jem/cvxdist - id: 15453, url: https://github.com/jem/cvxdist\n", + "almirm/cvxdist - id: 15460, url: https://github.com/almirm/cvxdist\n", + "mdeiters/semr - id: 15464, url: https://github.com/mdeiters/semr\n", + "flogic/timely - id: 15465, url: https://github.com/flogic/timely\n", + "brennandunn/revisionary - id: 15469, url: https://github.com/brennandunn/revisionary\n", + "dbrown/krypteau - id: 15471, url: https://github.com/dbrown/krypteau\n", + "jwiegley/emacs-chess - id: 15478, url: https://github.com/jwiegley/emacs-chess\n", + "markoa/r2flickr - id: 15485, url: https://github.com/markoa/r2flickr\n", + "joshuamiller/cartographer - id: 15520, url: https://github.com/joshuamiller/cartographer\n", + "kastner/halo-stats - id: 15521, url: https://github.com/kastner/halo-stats\n", + "harmon/rails - id: 15524, url: https://github.com/harmon/rails\n", + "shapor/bashgal - id: 15535, url: https://github.com/shapor/bashgal\n", + "manveru/ramaze - id: 15536, url: https://github.com/manveru/ramaze\n", + "kernow/javascript_auto_include - id: 15540, url: https://github.com/kernow/javascript_auto_include\n", + "keita/ramaze - id: 15547, url: https://github.com/keita/ramaze\n", + "duncanbeevers/core_extension_loader - id: 15548, url: https://github.com/duncanbeevers/core_extension_loader\n", + "duncanbeevers/named_scope_for - id: 15552, url: https://github.com/duncanbeevers/named_scope_for\n", + "DeCarabas/mlsfu - id: 15555, url: https://github.com/DeCarabas/mlsfu\n", + "baldwindavid/dnb_core_ext - id: 15561, url: https://github.com/baldwindavid/dnb_core_ext\n", + "TekNoLogic/Quecho - id: 15569, url: https://github.com/TekNoLogic/Quecho\n", + "ryanb/railscasts - id: 15570, url: https://github.com/ryanb/railscasts\n", + "duncanbeevers/templated_form_builder - id: 15575, url: https://github.com/duncanbeevers/templated_form_builder\n", + "jparker/ruby-googlechart - id: 15577, url: https://github.com/jparker/ruby-googlechart\n", + "hemer/earth - id: 15580, url: https://github.com/hemer/earth\n", + "khigia/eocarve - id: 15581, url: https://github.com/khigia/eocarve\n", + "spoike/xnamemorycards - id: 15593, url: https://github.com/spoike/xnamemorycards\n", + "technolize/zsh-completions - id: 15604, url: https://github.com/technolize/zsh-completions\n", + "ruby-oembed/ruby-oembed - id: 15620, url: https://github.com/ruby-oembed/ruby-oembed\n", + "resistor/rsl-llvm - id: 15621, url: https://github.com/resistor/rsl-llvm\n", + "EricDuminil/picolena - id: 15623, url: https://github.com/EricDuminil/picolena\n", + "caillette/novelang - id: 15626, url: https://github.com/caillette/novelang\n", + "fatjam/acts_as_revisable - id: 15632, url: https://github.com/fatjam/acts_as_revisable\n", + "duritong/puppet-nagios - id: 15638, url: https://github.com/duritong/puppet-nagios\n", + "DeCarabas/pwlet - id: 15639, url: https://github.com/DeCarabas/pwlet\n", + "satoko/tinyurl_helper - id: 15643, url: https://github.com/satoko/tinyurl_helper\n", + "paul/resourceful - id: 15645, url: https://github.com/paul/resourceful\n", + "rpheath/easy_search - id: 15646, url: https://github.com/rpheath/easy_search\n", + "duritong/puppet-selinux - id: 15651, url: https://github.com/duritong/puppet-selinux\n", + "floere/contexts - id: 15652, url: https://github.com/floere/contexts\n", + "davidn/wicrawl-debian - id: 15653, url: https://github.com/davidn/wicrawl-debian\n", + "duelinmarkers/actionhelper - id: 15654, url: https://github.com/duelinmarkers/actionhelper\n", + "duncanbeevers/denormalizes - id: 15658, url: https://github.com/duncanbeevers/denormalizes\n", + "stick/puppet-nagios - id: 15660, url: https://github.com/stick/puppet-nagios\n", + "thrawn01/ollie - id: 15668, url: https://github.com/thrawn01/ollie\n", + "aslakhellesoy/rspec-distributed - id: 15671, url: https://github.com/aslakhellesoy/rspec-distributed\n", + "aslakhellesoy/rspec-ui - id: 15673, url: https://github.com/aslakhellesoy/rspec-ui\n", + "hober/stoutsd - id: 15675, url: https://github.com/hober/stoutsd\n", + "evansenter/gene - id: 15676, url: https://github.com/evansenter/gene\n", + "relevance/tarantula - id: 15677, url: https://github.com/relevance/tarantula\n", + "mdain/landing - id: 15681, url: https://github.com/mdain/landing\n", + "alx/rfeedreader - id: 15683, url: https://github.com/alx/rfeedreader\n", + "alx/rfeedfinder - id: 15684, url: https://github.com/alx/rfeedfinder\n", + "nando/be_indexed - id: 15689, url: https://github.com/nando/be_indexed\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "toim/insoshi - id: 15693, url: https://github.com/toim/insoshi\n", + "djwonk/docrails - id: 15696, url: https://github.com/djwonk/docrails\n", + "chrismdp/rspec-ui - id: 15707, url: https://github.com/chrismdp/rspec-ui\n", + "peregrine/vlad - id: 15713, url: https://github.com/peregrine/vlad\n", + "joevandyk/daily-caption - id: 15717, url: https://github.com/joevandyk/daily-caption\n", + "jaikoo/pmcdn - id: 15719, url: https://github.com/jaikoo/pmcdn\n", + "knzconnor/screw-unit - id: 15721, url: https://github.com/knzconnor/screw-unit\n", + "itfrombit/nu - id: 15724, url: https://github.com/itfrombit/nu\n", + "brosner/dpl - id: 15729, url: https://github.com/brosner/dpl\n", + "wycats/dm-adapters - id: 15730, url: https://github.com/wycats/dm-adapters\n", + "chollier/yahoowall - id: 15731, url: https://github.com/chollier/yahoowall\n", + "omgamibig/rontrillo - id: 15736, url: https://github.com/omgamibig/rontrillo\n", + "cptfinch/baobab - id: 15737, url: https://github.com/cptfinch/baobab\n", + "duncanbeevers/fluid_beanstalk_activity_refresh - id: 15740, url: https://github.com/duncanbeevers/fluid_beanstalk_activity_refresh\n", + "NoamB/acts_as_permissible - id: 15743, url: https://github.com/NoamB/acts_as_permissible\n", + "jdunphy/templette - id: 15752, url: https://github.com/jdunphy/templette\n", + "samleb/prototype-fruits - id: 15754, url: https://github.com/samleb/prototype-fruits\n", + "markchadwick/proxe - id: 15757, url: https://github.com/markchadwick/proxe\n", + "knewter/acts_as_kuler - id: 15760, url: https://github.com/knewter/acts_as_kuler\n", + "jameskyle/hellaruby - id: 15762, url: https://github.com/jameskyle/hellaruby\n", + "naoya/octopus - id: 15772, url: https://github.com/naoya/octopus\n", + "ynadji/wcurve - id: 15773, url: https://github.com/ynadji/wcurve\n", + "naoya/eijiro-pl - id: 15775, url: https://github.com/naoya/eijiro-pl\n", + "nathansobo/piston - id: 15777, url: https://github.com/nathansobo/piston\n", + "naoya/list-rubylike - id: 15780, url: https://github.com/naoya/list-rubylike\n", + "potionfactory/potionstore - id: 15784, url: https://github.com/potionfactory/potionstore\n", + "peteonrails/githubsidebar - id: 15785, url: https://github.com/peteonrails/githubsidebar\n", + "moklett/ruby-on-rails-tmbundle - id: 15786, url: https://github.com/moklett/ruby-on-rails-tmbundle\n", + "lancecarlson/hamr - id: 15791, url: https://github.com/lancecarlson/hamr\n", + "soemirno/heresy - id: 15794, url: https://github.com/soemirno/heresy\n", + "ikegam/gainer-monkey-s-place - id: 15795, url: https://github.com/ikegam/gainer-monkey-s-place\n", + "jrudolph/scolorz - id: 15796, url: https://github.com/jrudolph/scolorz\n", + "masterdriverz/geekcode - id: 15797, url: https://github.com/masterdriverz/geekcode\n", + "jkramer/post-fm - id: 15799, url: https://github.com/jkramer/post-fm\n", + "madrobby/prototype_helpers - id: 15800, url: https://github.com/madrobby/prototype_helpers\n", + "swdyh/quilt - id: 15801, url: https://github.com/swdyh/quilt\n", + "stuartloxton/jquery-microformats - id: 15804, url: https://github.com/stuartloxton/jquery-microformats\n", + "maxlapshin/orbit - id: 15806, url: https://github.com/maxlapshin/orbit\n", + "dbackeus/gonzobahn - id: 15807, url: https://github.com/dbackeus/gonzobahn\n", + "mblsha/psi - id: 15808, url: https://github.com/mblsha/psi\n", + "maxlapshin/intersys - id: 15809, url: https://github.com/maxlapshin/intersys\n", + "maxlapshin/nmea - id: 15811, url: https://github.com/maxlapshin/nmea\n", + "maxlapshin/exiv2 - id: 15813, url: https://github.com/maxlapshin/exiv2\n", + "fakechris/webit - id: 15815, url: https://github.com/fakechris/webit\n", + "hummbl/psi - id: 15817, url: https://github.com/hummbl/psi\n", + "esobchenko/rest-google - id: 15819, url: https://github.com/esobchenko/rest-google\n", + "esobchenko/cache-weak - id: 15820, url: https://github.com/esobchenko/cache-weak\n", + "esobchenko/object-mapper - id: 15821, url: https://github.com/esobchenko/object-mapper\n", + "fidothe/dpkg-tools - id: 15823, url: https://github.com/fidothe/dpkg-tools\n", + "nesh/py-emu - id: 15824, url: https://github.com/nesh/py-emu\n", + "simonjefford/tinyprojects - id: 15827, url: https://github.com/simonjefford/tinyprojects\n", + "hakobe/practice-of-beautiful-code - id: 15834, url: https://github.com/hakobe/practice-of-beautiful-code\n", + "jeremydurham/rails-sqlserver-adapter - id: 15837, url: https://github.com/jeremydurham/rails-sqlserver-adapter\n", + "CarlosGabaldon/calabro - id: 15843, url: https://github.com/CarlosGabaldon/calabro\n", + "jomz/radiant-tags-extension - id: 15848, url: https://github.com/jomz/radiant-tags-extension\n", + "jeremy-kunzhou/earth - id: 15855, url: https://github.com/jeremy-kunzhou/earth\n", + "pc/diplomacy - id: 15862, url: https://github.com/pc/diplomacy\n", + "ganaware/autopagerize - id: 15863, url: https://github.com/ganaware/autopagerize\n", + "niko/rails_proc_routing - id: 15865, url: https://github.com/niko/rails_proc_routing\n", + "mhennemeyer/rspec-ui - id: 15867, url: https://github.com/mhennemeyer/rspec-ui\n", + "etienne/jam - id: 15868, url: https://github.com/etienne/jam\n", + "wagenet/activerecord--mti - id: 15873, url: https://github.com/wagenet/activerecord--mti\n", + "ksdtech/assetmgr - id: 15877, url: https://github.com/ksdtech/assetmgr\n", + "rahulbahuguna/insoshi - id: 15878, url: https://github.com/rahulbahuguna/insoshi\n", + "jgross/heb_ruby - id: 15879, url: https://github.com/jgross/heb_ruby\n", + "duncanbeevers/model_pagination - id: 15884, url: https://github.com/duncanbeevers/model_pagination\n", + "btakita/treetop - id: 15886, url: https://github.com/btakita/treetop\n", + "chriseppstein/lame_stats - id: 15891, url: https://github.com/chriseppstein/lame_stats\n", + "koke/mydiff - id: 15906, url: https://github.com/koke/mydiff\n", + "rmm5t/strip_attributes - id: 15912, url: https://github.com/rmm5t/strip_attributes\n", + "etalia/conshell - id: 15913, url: https://github.com/etalia/conshell\n", + "thewoolleyman/ci_for_the_rails_guy_or_gal - id: 15914, url: https://github.com/thewoolleyman/ci_for_the_rails_guy_or_gal\n", + "raggi/github_post_receive_server - id: 15915, url: https://github.com/raggi/github_post_receive_server\n", + "bryanjswift/horizontally-delicious - id: 15919, url: https://github.com/bryanjswift/horizontally-delicious\n", + "jpeach/snippets - id: 15928, url: https://github.com/jpeach/snippets\n", + "github/albino - id: 15929, url: https://github.com/github/albino\n", + "github/hubahuba - id: 15930, url: https://github.com/github/hubahuba\n", + "github/jquery-hotkeys - id: 15931, url: https://github.com/github/jquery-hotkeys\n", + "github/jquery-relatize_date - id: 15932, url: https://github.com/github/jquery-relatize_date\n", + "github/request_timer - id: 15933, url: https://github.com/github/request_timer\n", + "github/will_paginate_with_hotkeys - id: 15934, url: https://github.com/github/will_paginate_with_hotkeys\n", + "defunkt/body_matcher - id: 15939, url: https://github.com/defunkt/body_matcher\n", + "itfische/taboo - id: 15953, url: https://github.com/itfische/taboo\n", + "carlosbrando/autotest-notification - id: 15958, url: https://github.com/carlosbrando/autotest-notification\n", + "davidyang/yappr - id: 15976, url: https://github.com/davidyang/yappr\n", + "mfb1982/earth - id: 15979, url: https://github.com/mfb1982/earth\n", + "psychs/cocoaoniguruma - id: 15983, url: https://github.com/psychs/cocoaoniguruma\n", + "psychs/inputswitcher - id: 15984, url: https://github.com/psychs/inputswitcher\n", + "dustin/cruisecontrolrb - id: 15988, url: https://github.com/dustin/cruisecontrolrb\n", + "harryxu/crazyas - id: 15991, url: https://github.com/harryxu/crazyas\n", + "naoya/mapreduce-lite - id: 15993, url: https://github.com/naoya/mapreduce-lite\n", + "mrflip/dynamic_snippet - id: 15994, url: https://github.com/mrflip/dynamic_snippet\n", + "jcfischer/referenz1 - id: 15999, url: https://github.com/jcfischer/referenz1\n", + "svenfuchs/scriptaculous-sortabletree - id: 16000, url: https://github.com/svenfuchs/scriptaculous-sortabletree\n", + "mislav/dotfiles - id: 16001, url: https://github.com/mislav/dotfiles\n", + "typester/www-google-docs-upload - id: 16002, url: https://github.com/typester/www-google-docs-upload\n", + "alx/pressmark - id: 16012, url: https://github.com/alx/pressmark\n", + "duritong/puppet-munin - id: 16017, url: https://github.com/duritong/puppet-munin\n", + "jkriss/monomic - id: 16018, url: https://github.com/jkriss/monomic\n", + "duritong/puppet-squid - id: 16020, url: https://github.com/duritong/puppet-squid\n", + "mjm/dotfiles - id: 16025, url: https://github.com/mjm/dotfiles\n", + "Sixeight/mode-vim - id: 16032, url: https://github.com/Sixeight/mode-vim\n", + "ctagg/flickr - id: 16033, url: https://github.com/ctagg/flickr\n", + "rmm5t/dotfiles - id: 16044, url: https://github.com/rmm5t/dotfiles\n", + "vitaly/rails - id: 16045, url: https://github.com/vitaly/rails\n", + "technomage/railsconf-2008-composite - id: 16053, url: https://github.com/technomage/railsconf-2008-composite\n", + "puls/tournament-director - id: 16061, url: https://github.com/puls/tournament-director\n", + "mk/reports_as_sparkline - id: 16068, url: https://github.com/mk/reports_as_sparkline\n", + "pzingg/dotfiles - id: 16076, url: https://github.com/pzingg/dotfiles\n", + "marc-lorber/oregano - id: 16077, url: https://github.com/marc-lorber/oregano\n", + "dustin/cruisecontrolrb-webhook - id: 16078, url: https://github.com/dustin/cruisecontrolrb-webhook\n", + "mojodna/searchable - id: 16079, url: https://github.com/mojodna/searchable\n", + "pamalite/earth_g3 - id: 16082, url: https://github.com/pamalite/earth_g3\n", + "mojodna/oauth-reverse-proxy - id: 16085, url: https://github.com/mojodna/oauth-reverse-proxy\n", + "TekNoLogic/teknicolor - id: 16086, url: https://github.com/TekNoLogic/teknicolor\n", + "gregfu/genius - id: 16094, url: https://github.com/gregfu/genius\n", + "brynary/dotfiles - id: 16096, url: https://github.com/brynary/dotfiles\n", + "rbonvall/fox - id: 16104, url: https://github.com/rbonvall/fox\n", + "Sixeight/git-support-vim - id: 16113, url: https://github.com/Sixeight/git-support-vim\n", + "archaelus/tsung - id: 16116, url: https://github.com/archaelus/tsung\n", + "zerowidth/iphone_data - id: 16120, url: https://github.com/zerowidth/iphone_data\n", + "gerhard/glz_custom_fields - id: 16121, url: https://github.com/gerhard/glz_custom_fields\n", + "jasonf/dotfiles - id: 16124, url: https://github.com/jasonf/dotfiles\n", + "richpoirier/arts - id: 16126, url: https://github.com/richpoirier/arts\n", + "richpoirier/livevalidation - id: 16128, url: https://github.com/richpoirier/livevalidation\n", + "ruby/b.r-l.o - id: 16143, url: https://github.com/ruby/b.r-l.o\n", + "frioux/cartool - id: 16152, url: https://github.com/frioux/cartool\n", + "TekNoLogic/Kennel - id: 16155, url: https://github.com/TekNoLogic/Kennel\n", + "acat/freefile - id: 16156, url: https://github.com/acat/freefile\n", + "ttarzan/cartool - id: 16159, url: https://github.com/ttarzan/cartool\n", + "mlandauer/shlib - id: 16166, url: https://github.com/mlandauer/shlib\n", + "dstest/bare_test_app - id: 16168, url: https://github.com/dstest/bare_test_app\n", + "janne/dotfiles - id: 16175, url: https://github.com/janne/dotfiles\n", + "dann/paffy - id: 16177, url: https://github.com/dann/paffy\n", + "tooeasy/tooeasy-interface-toolbox - id: 16180, url: https://github.com/tooeasy/tooeasy-interface-toolbox\n", + "cptfinch/gullery - id: 16183, url: https://github.com/cptfinch/gullery\n", + "jodosha/click-to-globalize - id: 16184, url: https://github.com/jodosha/click-to-globalize\n", + "joelw/page_attachments - id: 16187, url: https://github.com/joelw/page_attachments\n", + "simo2409/deviantart-lib - id: 16192, url: https://github.com/simo2409/deviantart-lib\n", + "bcotton/activewarehouse-demo - id: 16193, url: https://github.com/bcotton/activewarehouse-demo\n", + "urubatan/autotest-notification - id: 16197, url: https://github.com/urubatan/autotest-notification\n", + "GeekyTrend/rails - id: 16199, url: https://github.com/GeekyTrend/rails\n", + "bainonline/teamgit - id: 16201, url: https://github.com/bainonline/teamgit\n", + "cesare/webservice-timeline - id: 16211, url: https://github.com/cesare/webservice-timeline\n", + "ctagg/ebay_shopping - id: 16221, url: https://github.com/ctagg/ebay_shopping\n", + "gdagley/simple_comments - id: 16223, url: https://github.com/gdagley/simple_comments\n", + "manveru/ramaze-book - id: 16224, url: https://github.com/manveru/ramaze-book\n", + "stanaka/one-day-fulltext-search - id: 16241, url: https://github.com/stanaka/one-day-fulltext-search\n", + "jamesmacaulay/radiant-rss-reader - id: 16242, url: https://github.com/jamesmacaulay/radiant-rss-reader\n", + "Constellation/ldrfullfeed - id: 16254, url: https://github.com/Constellation/ldrfullfeed\n", + "codahale/faster-builder - id: 16260, url: https://github.com/codahale/faster-builder\n", + "universal/validationsstore - id: 16261, url: https://github.com/universal/validationsstore\n", + "steveicarus/iverilog - id: 16267, url: https://github.com/steveicarus/iverilog\n", + "cardmagic/lucash - id: 16277, url: https://github.com/cardmagic/lucash\n", + "programming-nu/programming-nu - id: 16283, url: https://github.com/programming-nu/programming-nu\n", + "jeresig/processing-js - id: 16287, url: https://github.com/jeresig/processing-js\n", + "sinkovsky/file-lockfile - id: 16294, url: https://github.com/sinkovsky/file-lockfile\n", + "JohnFord/kayak_search - id: 16301, url: https://github.com/JohnFord/kayak_search\n", + "duplys/git-issues - id: 16307, url: https://github.com/duplys/git-issues\n", + "ledger/ledger - id: 16309, url: https://github.com/ledger/ledger\n", + "lukeredpath/dotfiles - id: 16313, url: https://github.com/lukeredpath/dotfiles\n", + "djanowski/helm - id: 16314, url: https://github.com/djanowski/helm\n", + "trak3r/hamachi-for-os-x-start-up-on-boot - id: 16319, url: https://github.com/trak3r/hamachi-for-os-x-start-up-on-boot\n", + "jrk/git-wiki - id: 16322, url: https://github.com/jrk/git-wiki\n", + "jamesmacaulay/liquid - id: 16326, url: https://github.com/jamesmacaulay/liquid\n", + "geemus/acts_as_taggable_redux - id: 16330, url: https://github.com/geemus/acts_as_taggable_redux\n", + "artitesis/prueba-rails - id: 16334, url: https://github.com/artitesis/prueba-rails\n", + "ryanwood/data_table - id: 16335, url: https://github.com/ryanwood/data_table\n", + "myabc/dotfiles - id: 16336, url: https://github.com/myabc/dotfiles\n", + "captproton/lovd-by-less - id: 16338, url: https://github.com/captproton/lovd-by-less\n", + "cementhorses/schedulable - id: 16341, url: https://github.com/cementhorses/schedulable\n", + "jmhodges/erlake - id: 16346, url: https://github.com/jmhodges/erlake\n", + "esobchenko/probix - id: 16348, url: https://github.com/esobchenko/probix\n", + "jvantuyl/vertebra-py - id: 16351, url: https://github.com/jvantuyl/vertebra-py\n", + "duncanbeevers/find_random - id: 16357, url: https://github.com/duncanbeevers/find_random\n", + "eklitzke/cmemcache-yelp - id: 16376, url: https://github.com/eklitzke/cmemcache-yelp\n", + "danhodos/session_consistency - id: 16384, url: https://github.com/danhodos/session_consistency\n", + "automatthew/rakegen - id: 16385, url: https://github.com/automatthew/rakegen\n", + "xjunior/autotest-notification - id: 16386, url: https://github.com/xjunior/autotest-notification\n", + "danhodos/validates_all - id: 16392, url: https://github.com/danhodos/validates_all\n", + "rayvinly/will_paginate - id: 16397, url: https://github.com/rayvinly/will_paginate\n", + "jrk/config-files - id: 16400, url: https://github.com/jrk/config-files\n", + "kovyrin/magic-enum - id: 16401, url: https://github.com/kovyrin/magic-enum\n", + "tekkub/libdatabroker-1-1 - id: 16407, url: https://github.com/tekkub/libdatabroker-1-1\n", + "caffo/sinatra - id: 16411, url: https://github.com/caffo/sinatra\n", + "mayo/timetravel - id: 16415, url: https://github.com/mayo/timetravel\n", + "kraudio/webmaster_tools - id: 16416, url: https://github.com/kraudio/webmaster_tools\n", + "val-laboratory/repos - id: 16429, url: https://github.com/val-laboratory/repos\n", + "jfernandez/cj4r - id: 16430, url: https://github.com/jfernandez/cj4r\n", + "mromaine/eejpn_langfiles - id: 16434, url: https://github.com/mromaine/eejpn_langfiles\n", + "willis/java-memcached-client - id: 16440, url: https://github.com/willis/java-memcached-client\n", + "TekNoLogic/addontemplate - id: 16444, url: https://github.com/TekNoLogic/addontemplate\n", + "kschiess/similarity_engine - id: 16445, url: https://github.com/kschiess/similarity_engine\n", + "frabcus/acts_as_xapian - id: 16461, url: https://github.com/frabcus/acts_as_xapian\n", + "drnic/ruby-shoulda-tmbundle - id: 16463, url: https://github.com/drnic/ruby-shoulda-tmbundle\n", + "robertgaal/sass-textmate-bundle - id: 16466, url: https://github.com/robertgaal/sass-textmate-bundle\n", + "timmow/vimrc - id: 16470, url: https://github.com/timmow/vimrc\n", + "thbar/mephisto_amazon - id: 16472, url: https://github.com/thbar/mephisto_amazon\n", + "insipid/dotfiles - id: 16473, url: https://github.com/insipid/dotfiles\n", + "jodosha/acts-as-resource - id: 16474, url: https://github.com/jodosha/acts-as-resource\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "naoya/hadoop-streaming-frontend - id: 16475, url: https://github.com/naoya/hadoop-streaming-frontend\n", + "sunny/google-lucky-image - id: 16477, url: https://github.com/sunny/google-lucky-image\n", + "thbar/diacritics_fu - id: 16478, url: https://github.com/thbar/diacritics_fu\n", + "ericallam/processing-js - id: 16481, url: https://github.com/ericallam/processing-js\n", + "webmat/noavail - id: 16482, url: https://github.com/webmat/noavail\n", + "nominolo/flexcomp - id: 16483, url: https://github.com/nominolo/flexcomp\n", + "urubatan/gedit-rails - id: 16486, url: https://github.com/urubatan/gedit-rails\n", + "reynardmh/ultrasphinx - id: 16487, url: https://github.com/reynardmh/ultrasphinx\n", + "kesor/crowd - id: 16493, url: https://github.com/kesor/crowd\n", + "nestegg/acts_as_decimal - id: 16496, url: https://github.com/nestegg/acts_as_decimal\n", + "cementhorses/time_parseable - id: 16498, url: https://github.com/cementhorses/time_parseable\n", + "jodosha/sashimi - id: 16503, url: https://github.com/jodosha/sashimi\n", + "niklas/acts_as_configurable - id: 16505, url: https://github.com/niklas/acts_as_configurable\n", + "Shopify/active_fulfillment - id: 16508, url: https://github.com/Shopify/active_fulfillment\n", + "cho45/ioke - id: 16512, url: https://github.com/cho45/ioke\n", + "chrisvest/nanopool - id: 16516, url: https://github.com/chrisvest/nanopool\n", + "hirose31/ganglia-gmetric-xs - id: 16518, url: https://github.com/hirose31/ganglia-gmetric-xs\n", + "richpoirier/have_filter - id: 16524, url: https://github.com/richpoirier/have_filter\n", + "davidwinter/arcade-manager - id: 16526, url: https://github.com/davidwinter/arcade-manager\n", + "evocateur/donor-list - id: 16540, url: https://github.com/evocateur/donor-list\n", + "koke/wordpress-scripts - id: 16544, url: https://github.com/koke/wordpress-scripts\n", + "tomtt/elisp_behave - id: 16546, url: https://github.com/tomtt/elisp_behave\n", + "technomancy/rinari - id: 16547, url: https://github.com/technomancy/rinari\n", + "jacobat/oiorest - id: 16551, url: https://github.com/jacobat/oiorest\n", + "dalager/oiorest - id: 16553, url: https://github.com/dalager/oiorest\n", + "tobiashm/oiorest - id: 16554, url: https://github.com/tobiashm/oiorest\n", + "MichaelAronsen/oiorest - id: 16561, url: https://github.com/MichaelAronsen/oiorest\n", + "dalager/oiorest-rails-examples - id: 16563, url: https://github.com/dalager/oiorest-rails-examples\n", + "jacobat/oiorest-rails-examples - id: 16567, url: https://github.com/jacobat/oiorest-rails-examples\n", + "chorlton/contact - id: 16568, url: https://github.com/chorlton/contact\n", + "pepperone/radiant-gallery - id: 16569, url: https://github.com/pepperone/radiant-gallery\n", + "markusb/markus_scripts - id: 16573, url: https://github.com/markusb/markus_scripts\n", + "tobiashm/oiorest-rails-examples - id: 16586, url: https://github.com/tobiashm/oiorest-rails-examples\n", + "Orcateers/alonetone - id: 16595, url: https://github.com/Orcateers/alonetone\n", + "gabriel/as3httpclient - id: 16598, url: https://github.com/gabriel/as3httpclient\n", + "jmcdermott/chronicle - id: 16602, url: https://github.com/jmcdermott/chronicle\n", + "vincent/plight - id: 16603, url: https://github.com/vincent/plight\n", + "snowblink/pollen-london - id: 16608, url: https://github.com/snowblink/pollen-london\n", + "timcharper/active_resource_config - id: 16611, url: https://github.com/timcharper/active_resource_config\n", + "ultralaise/googlecharts - id: 16612, url: https://github.com/ultralaise/googlecharts\n", + "oakridgelanl/materialized-path - id: 16616, url: https://github.com/oakridgelanl/materialized-path\n", + "diclophis/wordsearch - id: 16623, url: https://github.com/diclophis/wordsearch\n", + "olleolleolle/oiorest-rails-examples - id: 16626, url: https://github.com/olleolleolle/oiorest-rails-examples\n", + "olleolleolle/oiorest - id: 16630, url: https://github.com/olleolleolle/oiorest\n", + "gps-sdr/gps-sdr - id: 16636, url: https://github.com/gps-sdr/gps-sdr\n", + "cmorss/flashtaculo-us - id: 16643, url: https://github.com/cmorss/flashtaculo-us\n", + "TekNoLogic/tekblock - id: 16645, url: https://github.com/TekNoLogic/tekblock\n", + "halorgium/thor - id: 16646, url: https://github.com/halorgium/thor\n", + "nex3/thor - id: 16647, url: https://github.com/nex3/thor\n", + "Sjors/openstreetmap-route-altitude-profile - id: 16653, url: https://github.com/Sjors/openstreetmap-route-altitude-profile\n", + "ciriarte/laundry - id: 16656, url: https://github.com/ciriarte/laundry\n", + "zodttd/genesis4iphone - id: 16657, url: https://github.com/zodttd/genesis4iphone\n", + "mattmccray/sequent - id: 16659, url: https://github.com/mattmccray/sequent\n", + "deepblue/whisper - id: 16660, url: https://github.com/deepblue/whisper\n", + "carlosbrando/poignant-br - id: 16662, url: https://github.com/carlosbrando/poignant-br\n", + "chrislloyd/gravtastic - id: 16663, url: https://github.com/chrislloyd/gravtastic\n", + "jruby/jruby-rack - id: 16667, url: https://github.com/jruby/jruby-rack\n", + "anildigital/dotfiles - id: 16669, url: https://github.com/anildigital/dotfiles\n", + "augustjoki/AreaCodes - id: 16670, url: https://github.com/augustjoki/AreaCodes\n", + "philiptran/iwi3945 - id: 16673, url: https://github.com/philiptran/iwi3945\n", + "glenc/caffeine - id: 16682, url: https://github.com/glenc/caffeine\n", + "diclophis/mandelbrot - id: 16684, url: https://github.com/diclophis/mandelbrot\n", + "baldwindavid/dumpimp - id: 16685, url: https://github.com/baldwindavid/dumpimp\n", + "tyler/iota - id: 16692, url: https://github.com/tyler/iota\n", + "ryanb/railscasts-episodes - id: 16694, url: https://github.com/ryanb/railscasts-episodes\n", + "scudco/taglob - id: 16696, url: https://github.com/scudco/taglob\n", + "wrobel/pardalys - id: 16698, url: https://github.com/wrobel/pardalys\n", + "chendo/translinkrss - id: 16704, url: https://github.com/chendo/translinkrss\n", + "tyler/collaborative_filter - id: 16709, url: https://github.com/tyler/collaborative_filter\n", + "fiveohg/insoshi - id: 16712, url: https://github.com/fiveohg/insoshi\n", + "bobbiewang/home - id: 16715, url: https://github.com/bobbiewang/home\n", + "be9/networq - id: 16720, url: https://github.com/be9/networq\n", + "wonsys/wonsys-open-source - id: 16723, url: https://github.com/wonsys/wonsys-open-source\n", + "henryhamon/poignant-br - id: 16724, url: https://github.com/henryhamon/poignant-br\n", + "kbingman/radiant-tags-extension - id: 16731, url: https://github.com/kbingman/radiant-tags-extension\n", + "ashizawa/autocompletion-php-functions - id: 16735, url: https://github.com/ashizawa/autocompletion-php-functions\n", + "mogya/eejpn_langfiles - id: 16738, url: https://github.com/mogya/eejpn_langfiles\n", + "stengland/resource-hacks-plugin - id: 16740, url: https://github.com/stengland/resource-hacks-plugin\n", + "ctrlaltdel/puppet - id: 16747, url: https://github.com/ctrlaltdel/puppet\n", + "kbingman/admin_tree_structure - id: 16756, url: https://github.com/kbingman/admin_tree_structure\n", + "fnzac/acts_as_state_machine - id: 16758, url: https://github.com/fnzac/acts_as_state_machine\n", + "yosmoc/postprojecteuler - id: 16767, url: https://github.com/yosmoc/postprojecteuler\n", + "cooldaemon/dotfiles - id: 16770, url: https://github.com/cooldaemon/dotfiles\n", + "cpjolicoeur/clothblue - id: 16774, url: https://github.com/cpjolicoeur/clothblue\n", + "fhwang/validates_with_block - id: 16777, url: https://github.com/fhwang/validates_with_block\n", + "skippy/freemium - id: 16780, url: https://github.com/skippy/freemium\n", + "wesabe/robot-army - id: 16782, url: https://github.com/wesabe/robot-army\n", + "tommorris/sdf - id: 16786, url: https://github.com/tommorris/sdf\n", + "stepheneb/jetty-rails - id: 16795, url: https://github.com/stepheneb/jetty-rails\n", + "cpjolicoeur/bluecloth - id: 16800, url: https://github.com/cpjolicoeur/bluecloth\n", + "haikuwebdev/editable_image_sample - id: 16801, url: https://github.com/haikuwebdev/editable_image_sample\n", + "wpc/minglefs - id: 16806, url: https://github.com/wpc/minglefs\n", + "haikuwebdev/editable-image - id: 16807, url: https://github.com/haikuwebdev/editable-image\n", + "dagvl/dotfiles-old - id: 16808, url: https://github.com/dagvl/dotfiles-old\n", + "jperla/webify - id: 16812, url: https://github.com/jperla/webify\n", + "rsl/skinny_spec - id: 16813, url: https://github.com/rsl/skinny_spec\n", + "piclez/feather-plugins - id: 16815, url: https://github.com/piclez/feather-plugins\n", + "madhusudancs/procfs - id: 16817, url: https://github.com/madhusudancs/procfs\n", + "adamhjk/mongrel_runit - id: 16819, url: https://github.com/adamhjk/mongrel_runit\n", + "ntalbott/radiant-quiz-extension - id: 16829, url: https://github.com/ntalbott/radiant-quiz-extension\n", + "fhwang/auto_cron - id: 16830, url: https://github.com/fhwang/auto_cron\n", + "ggriffiniii/home - id: 16838, url: https://github.com/ggriffiniii/home\n", + "ksdtech/ps-mailer - id: 16842, url: https://github.com/ksdtech/ps-mailer\n", + "cjbottaro/preference_izzle - id: 16843, url: https://github.com/cjbottaro/preference_izzle\n", + "TomK32/mephisto-themes - id: 16846, url: https://github.com/TomK32/mephisto-themes\n", + "ismasan/mini_flickr - id: 16855, url: https://github.com/ismasan/mini_flickr\n", + "nazar/git-rails-plugins - id: 16856, url: https://github.com/nazar/git-rails-plugins\n", + "kangax/css-tidbits - id: 16858, url: https://github.com/kangax/css-tidbits\n", + "codahale/baconhand - id: 16860, url: https://github.com/codahale/baconhand\n", + "diegooliveira/answer-card-recognition - id: 16861, url: https://github.com/diegooliveira/answer-card-recognition\n", + "kenegozi/monorail-aspview-demo - id: 16862, url: https://github.com/kenegozi/monorail-aspview-demo\n", + "HansJuergenHusel/complex_forms_demo_app - id: 16877, url: https://github.com/HansJuergenHusel/complex_forms_demo_app\n", + "reactrix/ruby-git - id: 16886, url: https://github.com/reactrix/ruby-git\n", + "aflatter/feather - id: 16888, url: https://github.com/aflatter/feather\n", + "aquasync/ruby-ometa - id: 16889, url: https://github.com/aquasync/ruby-ometa\n", + "henrik/attachment_fu - id: 16891, url: https://github.com/henrik/attachment_fu\n", + "orestis/pyobjc - id: 16895, url: https://github.com/orestis/pyobjc\n", + "protocool/ack-tmbundle - id: 16898, url: https://github.com/protocool/ack-tmbundle\n", + "scharris/jDBMD - id: 16899, url: https://github.com/scharris/jDBMD\n", + "cainlevy/components - id: 16901, url: https://github.com/cainlevy/components\n", + "pope/personal - id: 16908, url: https://github.com/pope/personal\n", + "myelin/bbm-tools - id: 16910, url: https://github.com/myelin/bbm-tools\n", + "rubygeek/bakeryman - id: 16916, url: https://github.com/rubygeek/bakeryman\n", + "manveru/nagoro - id: 16921, url: https://github.com/manveru/nagoro\n", + "edan/acts_as_list - id: 16926, url: https://github.com/edan/acts_as_list\n", + "lilyball/openri - id: 16929, url: https://github.com/lilyball/openri\n", + "lilyball/call_with_locals - id: 16931, url: https://github.com/lilyball/call_with_locals\n", + "subtleGradient/textmate - id: 16935, url: https://github.com/subtleGradient/textmate\n", + "francois/fogbugz_offline - id: 16939, url: https://github.com/francois/fogbugz_offline\n", + "jnewland/git-wiki - id: 16942, url: https://github.com/jnewland/git-wiki\n", + "RheoDesign/form_builders - id: 16944, url: https://github.com/RheoDesign/form_builders\n", + "jasonknight/exception_logger - id: 16953, url: https://github.com/jasonknight/exception_logger\n", + "ShinjiNakanishi/rails - id: 16956, url: https://github.com/ShinjiNakanishi/rails\n", + "enoki/dotfiles - id: 16958, url: https://github.com/enoki/dotfiles\n", + "ynadji/cs430-project - id: 16961, url: https://github.com/ynadji/cs430-project\n", + "ryan-allen/hiccup - id: 16962, url: https://github.com/ryan-allen/hiccup\n", + "ryan-allen/hack - id: 16963, url: https://github.com/ryan-allen/hack\n", + "ryan-allen/workflow - id: 16966, url: https://github.com/ryan-allen/workflow\n", + "hallettj/cloudrcs - id: 16970, url: https://github.com/hallettj/cloudrcs\n", + "jperla/python-challenge - id: 16978, url: https://github.com/jperla/python-challenge\n", + "btakita/rr - id: 16979, url: https://github.com/btakita/rr\n", + "cooldaemon/firefox_searchplugins - id: 16980, url: https://github.com/cooldaemon/firefox_searchplugins\n", + "codahale/ropen - id: 16985, url: https://github.com/codahale/ropen\n", + "blynn/netwalk - id: 16991, url: https://github.com/blynn/netwalk\n", + "blynn/gitmagic - id: 16992, url: https://github.com/blynn/gitmagic\n", + "bjeanes/make_abstract - id: 16993, url: https://github.com/bjeanes/make_abstract\n", + "jmettraux/ruote-transition - id: 17002, url: https://github.com/jmettraux/ruote-transition\n", + "jdg/rbvimeo - id: 17005, url: https://github.com/jdg/rbvimeo\n", + "jgp/cruisecontrolrb - id: 17015, url: https://github.com/jgp/cruisecontrolrb\n", + "koolontheweblog/blog - id: 17016, url: https://github.com/koolontheweblog/blog\n", + "arunalangar/rails - id: 17018, url: https://github.com/arunalangar/rails\n", + "arunalangar/restful-authentication - id: 17022, url: https://github.com/arunalangar/restful-authentication\n", + "Anks/elisp - id: 17027, url: https://github.com/Anks/elisp\n", + "myabc/mediateca - id: 17028, url: https://github.com/myabc/mediateca\n", + "siannopollo/mail_fetcher - id: 17031, url: https://github.com/siannopollo/mail_fetcher\n", + "oneup/guide-to-zen - id: 17033, url: https://github.com/oneup/guide-to-zen\n", + "pfig/file--find--rule--age - id: 17050, url: https://github.com/pfig/file--find--rule--age\n", + "jduff/ruby-satisfaction - id: 17053, url: https://github.com/jduff/ruby-satisfaction\n", + "joevandyk/lamb_chop - id: 17054, url: https://github.com/joevandyk/lamb_chop\n", + "davidwinter/gmail-notify - id: 17064, url: https://github.com/davidwinter/gmail-notify\n", + "worst/our-first-rails-project - id: 17066, url: https://github.com/worst/our-first-rails-project\n", + "jenmei/afterrender - id: 17069, url: https://github.com/jenmei/afterrender\n", + "staugaard/idn_actionmailer - id: 17073, url: https://github.com/staugaard/idn_actionmailer\n", + "xilinus/prototype-graphic - id: 17078, url: https://github.com/xilinus/prototype-graphic\n", + "NaTTs/rateme - id: 17080, url: https://github.com/NaTTs/rateme\n", + "haruska/polymorphic_include - id: 17083, url: https://github.com/haruska/polymorphic_include\n", + "haruska/multi_smtp - id: 17101, url: https://github.com/haruska/multi_smtp\n", + "olsonjeffery/boolangstudio - id: 17103, url: https://github.com/olsonjeffery/boolangstudio\n", + "apeiros/halsbe - id: 17105, url: https://github.com/apeiros/halsbe\n", + "dweinand/mesabi - id: 17119, url: https://github.com/dweinand/mesabi\n", + "planetbeing/xpwn - id: 17127, url: https://github.com/planetbeing/xpwn\n", + "johnsonch/google_maps_and_geokit_demo - id: 17133, url: https://github.com/johnsonch/google_maps_and_geokit_demo\n", + "siebertm/git-shelve - id: 17136, url: https://github.com/siebertm/git-shelve\n", + "mkdynamic/paperclip - id: 17139, url: https://github.com/mkdynamic/paperclip\n", + "zzed/cbdfs - id: 17142, url: https://github.com/zzed/cbdfs\n", + "aeden/rsaml - id: 17143, url: https://github.com/aeden/rsaml\n", + "joshuamiller/merb-autoscaffold - id: 17144, url: https://github.com/joshuamiller/merb-autoscaffold\n", + "harryf/urldammit - id: 17146, url: https://github.com/harryf/urldammit\n", + "chrismdp/rspec-dev - id: 17148, url: https://github.com/chrismdp/rspec-dev\n", + "tekin/acts_as_state_machine - id: 17151, url: https://github.com/tekin/acts_as_state_machine\n", + "tekin/file_column - id: 17156, url: https://github.com/tekin/file_column\n", + "ajh/acts_as_soft_deletable - id: 17165, url: https://github.com/ajh/acts_as_soft_deletable\n", + "gburd/xqd - id: 17171, url: https://github.com/gburd/xqd\n", + "dojosp/participant-s-projects - id: 17175, url: https://github.com/dojosp/participant-s-projects\n", + "gburd/dbsql - id: 17181, url: https://github.com/gburd/dbsql\n", + "cv/opencv-wrappers - id: 17182, url: https://github.com/cv/opencv-wrappers\n", + "ntalbott/radiant-reorder-extension - id: 17186, url: https://github.com/ntalbott/radiant-reorder-extension\n", + "mattly/maxlib - id: 17192, url: https://github.com/mattly/maxlib\n", + "loe/contacts - id: 17202, url: https://github.com/loe/contacts\n", + "franckv/magnolia-sync - id: 17204, url: https://github.com/franckv/magnolia-sync\n", + "fairchild/beamglue - id: 17209, url: https://github.com/fairchild/beamglue\n", + "TampaRuby/docrails - id: 17211, url: https://github.com/TampaRuby/docrails\n", + "psergi/cruisecontrolrb - id: 17218, url: https://github.com/psergi/cruisecontrolrb\n", + "gburd/wsim - id: 17221, url: https://github.com/gburd/wsim\n", + "gdagley/nonsense - id: 17222, url: https://github.com/gdagley/nonsense\n", + "bjeanes/ale-adjust - id: 17231, url: https://github.com/bjeanes/ale-adjust\n", + "stassats/mm - id: 17236, url: https://github.com/stassats/mm\n", + "gdagley/ad_templates - id: 17238, url: https://github.com/gdagley/ad_templates\n", + "timander/give-away-drawing - id: 17239, url: https://github.com/timander/give-away-drawing\n", + "allison-lara/trinketmenu_buttonfacade - id: 17240, url: https://github.com/allison-lara/trinketmenu_buttonfacade\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "webmat/capture_fu - id: 17241, url: https://github.com/webmat/capture_fu\n", + "macdigger/fleximage - id: 17251, url: https://github.com/macdigger/fleximage\n", + "motemen/orelog-vim - id: 17256, url: https://github.com/motemen/orelog-vim\n", + "mediogre/fixture-scenarios - id: 17257, url: https://github.com/mediogre/fixture-scenarios\n", + "fiveruns/instrument - id: 17260, url: https://github.com/fiveruns/instrument\n", + "stan/habari-plugins - id: 17263, url: https://github.com/stan/habari-plugins\n", + "pkinsel/test - id: 17265, url: https://github.com/pkinsel/test\n", + "psergi/grit - id: 17266, url: https://github.com/psergi/grit\n", + "mattetti/merb_babel - id: 17269, url: https://github.com/mattetti/merb_babel\n", + "walker/campaign-monitor-post-api-component - id: 17272, url: https://github.com/walker/campaign-monitor-post-api-component\n", + "front-end/front-end-blender - id: 17276, url: https://github.com/front-end/front-end-blender\n", + "freireag/poignant-br - id: 17280, url: https://github.com/freireag/poignant-br\n", + "mtodd/ramble - id: 17287, url: https://github.com/mtodd/ramble\n", + "nowa/jplus - id: 17290, url: https://github.com/nowa/jplus\n", + "stassats/emacs-config - id: 17293, url: https://github.com/stassats/emacs-config\n", + "rpm33/moba - id: 17294, url: https://github.com/rpm33/moba\n", + "kamme/csc - id: 17295, url: https://github.com/kamme/csc\n", + "jimneath/swfupload---paperclip-example-app - id: 17298, url: https://github.com/jimneath/swfupload---paperclip-example-app\n", + "rpm33/sandbox - id: 17300, url: https://github.com/rpm33/sandbox\n", + "resshin/duhi - id: 17311, url: https://github.com/resshin/duhi\n", + "weppos/curl - id: 17315, url: https://github.com/weppos/curl\n", + "koke/amlights - id: 17317, url: https://github.com/koke/amlights\n", + "scudco/dotfiles - id: 17322, url: https://github.com/scudco/dotfiles\n", + "adamhenry/my-silly-little-game - id: 17329, url: https://github.com/adamhenry/my-silly-little-game\n", + "bscofield/irkr - id: 17340, url: https://github.com/bscofield/irkr\n", + "asacalow/acts_as_versioned - id: 17342, url: https://github.com/asacalow/acts_as_versioned\n", + "neovintage/gruff - id: 17346, url: https://github.com/neovintage/gruff\n", + "r38y/hubahuba - id: 17347, url: https://github.com/r38y/hubahuba\n", + "madnificent/acts_as_taggable-done-right - id: 17349, url: https://github.com/madnificent/acts_as_taggable-done-right\n", + "redondos/zsh - id: 17355, url: https://github.com/redondos/zsh\n", + "ericallam/book_mdar - id: 17367, url: https://github.com/ericallam/book_mdar\n", + "papa99do/survey - id: 17371, url: https://github.com/papa99do/survey\n", + "erlangpack/erlang-oauth - id: 17372, url: https://github.com/erlangpack/erlang-oauth\n", + "redinger/jack - id: 17379, url: https://github.com/redinger/jack\n", + "cho45/List-Enumerator - id: 17385, url: https://github.com/cho45/List-Enumerator\n", + "devrieda/cookie_crumbs - id: 17390, url: https://github.com/devrieda/cookie_crumbs\n", + "myabc/roller-markdown - id: 17397, url: https://github.com/myabc/roller-markdown\n", + "ktf/newspipe - id: 17402, url: https://github.com/ktf/newspipe\n", + "rdpeng/cacher - id: 17404, url: https://github.com/rdpeng/cacher\n", + "armooo/kvmcontrol - id: 17406, url: https://github.com/armooo/kvmcontrol\n", + "activewarehouse/rails_sql_views - id: 17407, url: https://github.com/activewarehouse/rails_sql_views\n", + "activewarehouse/activewarehouse - id: 17409, url: https://github.com/activewarehouse/activewarehouse\n", + "synth/rails_sql_views - id: 17410, url: https://github.com/synth/rails_sql_views\n", + "activewarehouse/adapter_extensions - id: 17411, url: https://github.com/activewarehouse/adapter_extensions\n", + "rictic/launchdate - id: 17416, url: https://github.com/rictic/launchdate\n", + "herval/poignant-br - id: 17417, url: https://github.com/herval/poignant-br\n", + "grantneufeld/wayground-old - id: 17418, url: https://github.com/grantneufeld/wayground-old\n", + "tekin/betternestedset-patched - id: 17421, url: https://github.com/tekin/betternestedset-patched\n", + "developernotes/vim-setup - id: 17422, url: https://github.com/developernotes/vim-setup\n", + "bo198214/hyperops - id: 17425, url: https://github.com/bo198214/hyperops\n", + "mallipeddi/django-taskforce - id: 17428, url: https://github.com/mallipeddi/django-taskforce\n", + "DataWraith/rmenace - id: 17431, url: https://github.com/DataWraith/rmenace\n", + "vitaly/guilt - id: 17473, url: https://github.com/vitaly/guilt\n", + "sethwalker/democracyinaction - id: 17481, url: https://github.com/sethwalker/democracyinaction\n", + "piclez/feather - id: 17482, url: https://github.com/piclez/feather\n", + "aaronkhawkins/sitdown2 - id: 17495, url: https://github.com/aaronkhawkins/sitdown2\n", + "fleadope/merb_active_admin - id: 17499, url: https://github.com/fleadope/merb_active_admin\n", + "jwillebrands/justiceforall - id: 17500, url: https://github.com/jwillebrands/justiceforall\n", + "ELLIOTTCABLE/blog - id: 17502, url: https://github.com/ELLIOTTCABLE/blog\n", + "sporkmonger/instrument - id: 17503, url: https://github.com/sporkmonger/instrument\n", + "erector/erector - id: 17504, url: https://github.com/erector/erector\n", + "pivotalexperimental/js-test-core - id: 17505, url: https://github.com/pivotalexperimental/js-test-core\n", + "andykent/smoke - id: 17506, url: https://github.com/andykent/smoke\n", + "pivotalexperimental/screw-unit-server - id: 17508, url: https://github.com/pivotalexperimental/screw-unit-server\n", + "pivotalforks/screw-unit - id: 17510, url: https://github.com/pivotalforks/screw-unit\n", + "DanielVF/d-time-tracker - id: 17511, url: https://github.com/DanielVF/d-time-tracker\n", + "pivotalexperimental/js-spec-server - id: 17518, url: https://github.com/pivotalexperimental/js-spec-server\n", + "pgm/ittyflow - id: 17520, url: https://github.com/pgm/ittyflow\n", + "adamsanderson/ruby_diff - id: 17532, url: https://github.com/adamsanderson/ruby_diff\n", + "pivotalexperimental/desert - id: 17534, url: https://github.com/pivotalexperimental/desert\n", + "isaac/exception_logger - id: 17539, url: https://github.com/isaac/exception_logger\n", + "pivotalexperimental/polonium - id: 17545, url: https://github.com/pivotalexperimental/polonium\n", + "eklitzke/strutil - id: 17549, url: https://github.com/eklitzke/strutil\n", + "alltom/glapp - id: 17555, url: https://github.com/alltom/glapp\n", + "drnic/hobo-tmbundle - id: 17565, url: https://github.com/drnic/hobo-tmbundle\n", + "duritong/puppet-daemontools - id: 17568, url: https://github.com/duritong/puppet-daemontools\n", + "duritong/puppet-common - id: 17571, url: https://github.com/duritong/puppet-common\n", + "drnic/hobo-meeting-app - id: 17572, url: https://github.com/drnic/hobo-meeting-app\n", + "avdgaag/agw-toolbox - id: 17578, url: https://github.com/avdgaag/agw-toolbox\n", + "heracek/x36osy-producenti-konzumenti-processes - id: 17580, url: https://github.com/heracek/x36osy-producenti-konzumenti-processes\n", + "dennis/dnet - id: 17585, url: https://github.com/dennis/dnet\n", + "edspencer/ext-mvc-rails - id: 17589, url: https://github.com/edspencer/ext-mvc-rails\n", + "githorde/feeddit - id: 17592, url: https://github.com/githorde/feeddit\n", + "timcharper/annotate_models - id: 17599, url: https://github.com/timcharper/annotate_models\n", + "guillermo/active_record_each - id: 17607, url: https://github.com/guillermo/active_record_each\n", + "krobertson/skitchdav - id: 17611, url: https://github.com/krobertson/skitchdav\n", + "ahsap/alonetone - id: 17622, url: https://github.com/ahsap/alonetone\n", + "joux3/webrat - id: 17629, url: https://github.com/joux3/webrat\n", + "glenc/sp.py - id: 17637, url: https://github.com/glenc/sp.py\n", + "hamish/easystart - id: 17638, url: https://github.com/hamish/easystart\n", + "wilson/rpaste - id: 17639, url: https://github.com/wilson/rpaste\n", + "jongilbraith/simple-private-messages - id: 17645, url: https://github.com/jongilbraith/simple-private-messages\n", + "vanntastic/ibox-rails-plugin - id: 17659, url: https://github.com/vanntastic/ibox-rails-plugin\n", + "manveru/maruku - id: 17660, url: https://github.com/manveru/maruku\n", + "psq/flexmock - id: 17664, url: https://github.com/psq/flexmock\n", + "floere/representer-rails - id: 17666, url: https://github.com/floere/representer-rails\n", + "natan/gspell - id: 17671, url: https://github.com/natan/gspell\n", + "mattetti/i18n - id: 17674, url: https://github.com/mattetti/i18n\n", + "cyu/google_analytics - id: 17676, url: https://github.com/cyu/google_analytics\n", + "sr/atom-tools - id: 17680, url: https://github.com/sr/atom-tools\n", + "LeonB/callbacks - id: 17695, url: https://github.com/LeonB/callbacks\n", + "diclophis/risingcode - id: 17697, url: https://github.com/diclophis/risingcode\n", + "pragdave/codex - id: 17710, url: https://github.com/pragdave/codex\n", + "hidek/formvalidator-assets - id: 17712, url: https://github.com/hidek/formvalidator-assets\n", + "winton/cookbook - id: 17725, url: https://github.com/winton/cookbook\n", + "pivotalexperimental/fitnesse-ruby - id: 17727, url: https://github.com/pivotalexperimental/fitnesse-ruby\n", + "abhay/erlectricity - id: 17729, url: https://github.com/abhay/erlectricity\n", + "abhay/fuzed - id: 17736, url: https://github.com/abhay/fuzed\n", + "zmack/dotfiles - id: 17742, url: https://github.com/zmack/dotfiles\n", + "alx/reprap-arduino-firmware - id: 17749, url: https://github.com/alx/reprap-arduino-firmware\n", + "duritong/puppet-djbdns - id: 17753, url: https://github.com/duritong/puppet-djbdns\n", + "alx/reprap-host-software - id: 17759, url: https://github.com/alx/reprap-host-software\n", + "gingerhendrix/mushub - id: 17761, url: https://github.com/gingerhendrix/mushub\n", + "wonsys/acts_as_fulltextable - id: 17762, url: https://github.com/wonsys/acts_as_fulltextable\n", + "gingerhendrix/json_proxy - id: 17765, url: https://github.com/gingerhendrix/json_proxy\n", + "wonsys/configuration_manager - id: 17768, url: https://github.com/wonsys/configuration_manager\n", + "kowal/daldosso - id: 17769, url: https://github.com/kowal/daldosso\n", + "joshgoebel/solowiki - id: 17771, url: https://github.com/joshgoebel/solowiki\n", + "gingerhendrix/userscripts - id: 17772, url: https://github.com/gingerhendrix/userscripts\n", + "joshgoebel/rvlogger - id: 17777, url: https://github.com/joshgoebel/rvlogger\n", + "bert/pcb-footprints - id: 17785, url: https://github.com/bert/pcb-footprints\n", + "r-lib/evaluate - id: 17786, url: https://github.com/r-lib/evaluate\n", + "cth/codex - id: 17791, url: https://github.com/cth/codex\n", + "fenrrir/geditpycompletion - id: 17792, url: https://github.com/fenrrir/geditpycompletion\n", + "ecarnevale/pic18_firmware - id: 17801, url: https://github.com/ecarnevale/pic18_firmware\n", + "haikuwebdev/responds_to_parent - id: 17829, url: https://github.com/haikuwebdev/responds_to_parent\n", + "al/restfulauth - id: 17832, url: https://github.com/al/restfulauth\n", + "yrashk/caches.rb - id: 17836, url: https://github.com/yrashk/caches.rb\n", + "halfbyte/rosc - id: 17837, url: https://github.com/halfbyte/rosc\n", + "CarlosGabaldon/gadget-server - id: 17839, url: https://github.com/CarlosGabaldon/gadget-server\n", + "franckv/ma.gnolia-bookmarks-synchronizer - id: 17842, url: https://github.com/franckv/ma.gnolia-bookmarks-synchronizer\n", + "cmaxw/rubytrends - id: 17845, url: https://github.com/cmaxw/rubytrends\n", + "alx/arduino.tmbundle - id: 17849, url: https://github.com/alx/arduino.tmbundle\n", + "some1else/serialize_fu - id: 17857, url: https://github.com/some1else/serialize_fu\n", + "franckv/pygmail - id: 17862, url: https://github.com/franckv/pygmail\n", + "wzph/merb-more - id: 17863, url: https://github.com/wzph/merb-more\n", + "wzph/merb-core - id: 17864, url: https://github.com/wzph/merb-core\n", + "zpinter/request_routing - id: 17866, url: https://github.com/zpinter/request_routing\n", + "garrick/quips - id: 17868, url: https://github.com/garrick/quips\n", + "ljouglar/pando_proxy - id: 17869, url: https://github.com/ljouglar/pando_proxy\n", + "cypher/thor-git - id: 17873, url: https://github.com/cypher/thor-git\n", + "cth/genetic-soduku-generator - id: 17875, url: https://github.com/cth/genetic-soduku-generator\n", + "Ruleby/ruleby - id: 17876, url: https://github.com/Ruleby/ruleby\n", + "drnic/codex - id: 17879, url: https://github.com/drnic/codex\n", + "rubenfonseca/tarpipe-ruby - id: 17886, url: https://github.com/rubenfonseca/tarpipe-ruby\n", + "danteregis/monografia_dante - id: 17891, url: https://github.com/danteregis/monografia_dante\n", + "elind/restful_authorization - id: 17893, url: https://github.com/elind/restful_authorization\n", + "cypher/thor - id: 17895, url: https://github.com/cypher/thor\n", + "mmower/diffly - id: 17899, url: https://github.com/mmower/diffly\n", + "itsderek23/acts_as_versioned - id: 17903, url: https://github.com/itsderek23/acts_as_versioned\n", + "smtlaissezfaire/git_revision_number - id: 17905, url: https://github.com/smtlaissezfaire/git_revision_number\n", + "River/helpbot-web-ui - id: 17908, url: https://github.com/River/helpbot-web-ui\n", + "darius/squerm - id: 17913, url: https://github.com/darius/squerm\n", + "lsegal/yard-tmbundle - id: 17917, url: https://github.com/lsegal/yard-tmbundle\n", + "cjbottaro/param_protected - id: 17920, url: https://github.com/cjbottaro/param_protected\n", + "glasner/conf-nginx - id: 17922, url: https://github.com/glasner/conf-nginx\n", + "hidek/sandbox - id: 17923, url: https://github.com/hidek/sandbox\n", + "mlaks/cybergaon - id: 17924, url: https://github.com/mlaks/cybergaon\n", + "matschaffer/tickspot-ruby - id: 17928, url: https://github.com/matschaffer/tickspot-ruby\n", + "fczuardi/site-editor - id: 17933, url: https://github.com/fczuardi/site-editor\n", + "timcharper/bundle-fu - id: 17935, url: https://github.com/timcharper/bundle-fu\n", + "trey/lifestream - id: 17938, url: https://github.com/trey/lifestream\n", + "isabanin/viddler - id: 17942, url: https://github.com/isabanin/viddler\n", + "drnic/drnic-presentations - id: 17943, url: https://github.com/drnic/drnic-presentations\n", + "mwalker/nested_has_many_through - id: 17946, url: https://github.com/mwalker/nested_has_many_through\n", + "krobertson/dm-dbslayer - id: 17948, url: https://github.com/krobertson/dm-dbslayer\n", + "brendano/conplot - id: 17950, url: https://github.com/brendano/conplot\n", + "metade/shoes-bbc-radio - id: 17961, url: https://github.com/metade/shoes-bbc-radio\n", + "yokote/test2 - id: 17963, url: https://github.com/yokote/test2\n", + "mth/yeti - id: 17965, url: https://github.com/mth/yeti\n", + "archaelus/math_example - id: 17971, url: https://github.com/archaelus/math_example\n", + "gnufied/eventserver - id: 17972, url: https://github.com/gnufied/eventserver\n", + "puzzle/puppet-puppet - id: 17975, url: https://github.com/puzzle/puppet-puppet\n", + "puzzle/puppet-rubygems - id: 17976, url: https://github.com/puzzle/puppet-rubygems\n", + "puzzle/puppet-rails - id: 17977, url: https://github.com/puzzle/puppet-rails\n", + "puzzle/puppet-ruby - id: 17978, url: https://github.com/puzzle/puppet-ruby\n", + "puzzle/puppet-postgres - id: 17979, url: https://github.com/puzzle/puppet-postgres\n", + "puzzle/puppet-mongrel - id: 17980, url: https://github.com/puzzle/puppet-mongrel\n", + "scudco/wtf - id: 17982, url: https://github.com/scudco/wtf\n", + "fabien/im_magick - id: 17986, url: https://github.com/fabien/im_magick\n", + "robertfeldt/rockit - id: 17990, url: https://github.com/robertfeldt/rockit\n", + "cristibalan/dotfiles - id: 17996, url: https://github.com/cristibalan/dotfiles\n", + "redondos/mutt - id: 18002, url: https://github.com/redondos/mutt\n", + "bhamrick/gansu - id: 18006, url: https://github.com/bhamrick/gansu\n", + "sarathyuv/mutt - id: 18007, url: https://github.com/sarathyuv/mutt\n", + "drnic/codex-tmbundle - id: 18013, url: https://github.com/drnic/codex-tmbundle\n", + "takuma104/takuma104test - id: 18015, url: https://github.com/takuma104/takuma104test\n", + "puzzle/puppet - id: 18020, url: https://github.com/puzzle/puppet\n", + "hadley/ggplot2-book - id: 18027, url: https://github.com/hadley/ggplot2-book\n", + "halorgium/megaburst2 - id: 18032, url: https://github.com/halorgium/megaburst2\n", + "jboner/remoteproxy - id: 18034, url: https://github.com/jboner/remoteproxy\n", + "jeng/xpm-to-gif - id: 18035, url: https://github.com/jeng/xpm-to-gif\n", + "cjbottaro/kate_directory_project - id: 18044, url: https://github.com/cjbottaro/kate_directory_project\n", + "dsutedja/mack-localization - id: 18048, url: https://github.com/dsutedja/mack-localization\n", + "leahneukirchen/rexample - id: 18050, url: https://github.com/leahneukirchen/rexample\n", + "djanowski/google_services - id: 18052, url: https://github.com/djanowski/google_services\n", + "maximkulkin/pageless_browser - id: 18054, url: https://github.com/maximkulkin/pageless_browser\n", + "stouset/pathname3 - id: 18066, url: https://github.com/stouset/pathname3\n", + "captproton/i-like-local-bdd - id: 18068, url: https://github.com/captproton/i-like-local-bdd\n", + "cjbottaro/app_config - id: 18070, url: https://github.com/cjbottaro/app_config\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mainej/activewarehouse - id: 18081, url: https://github.com/mainej/activewarehouse\n", + "ZenCocoon/prototype-playground - id: 18087, url: https://github.com/ZenCocoon/prototype-playground\n", + "topfunky/ruby-hmac - id: 18089, url: https://github.com/topfunky/ruby-hmac\n", + "mainej/adapter_extensions - id: 18102, url: https://github.com/mainej/adapter_extensions\n", + "alibby/ldap_authenticated - id: 18103, url: https://github.com/alibby/ldap_authenticated\n", + "ericdwhite/merb-more - id: 18106, url: https://github.com/ericdwhite/merb-more\n", + "jamesgolick/has_browser - id: 18107, url: https://github.com/jamesgolick/has_browser\n", + "dhaas/rails - id: 18112, url: https://github.com/dhaas/rails\n", + "adamhooper/ngodb - id: 18114, url: https://github.com/adamhooper/ngodb\n", + "ymirpl/nsaper - id: 18117, url: https://github.com/ymirpl/nsaper\n", + "user-none/arora - id: 18119, url: https://github.com/user-none/arora\n", + "modano/daldosso - id: 18123, url: https://github.com/modano/daldosso\n", + "koke/github-services - id: 18131, url: https://github.com/koke/github-services\n", + "cainlevy/recordselect - id: 18134, url: https://github.com/cainlevy/recordselect\n", + "smtlaissezfaire/cap_db_dump - id: 18138, url: https://github.com/smtlaissezfaire/cap_db_dump\n", + "sudothinker/feather-plugins - id: 18139, url: https://github.com/sudothinker/feather-plugins\n", + "jebw/redbox - id: 18144, url: https://github.com/jebw/redbox\n", + "asis/rails-core-extras - id: 18148, url: https://github.com/asis/rails-core-extras\n", + "zhimin/rwebunit - id: 18164, url: https://github.com/zhimin/rwebunit\n", + "zhimin/rformspec - id: 18169, url: https://github.com/zhimin/rformspec\n", + "cjbottaro/migration_izzle - id: 18174, url: https://github.com/cjbottaro/migration_izzle\n", + "geemus/googleajax - id: 18178, url: https://github.com/geemus/googleajax\n", + "jgornick/protokit - id: 18180, url: https://github.com/jgornick/protokit\n", + "tbbooher/exception_logger - id: 18181, url: https://github.com/tbbooher/exception_logger\n", + "Sixeight/genvir - id: 18193, url: https://github.com/Sixeight/genvir\n", + "rollick/redmine_ticket_emailer - id: 18195, url: https://github.com/rollick/redmine_ticket_emailer\n", + "technicalpickles/g-gem - id: 18200, url: https://github.com/technicalpickles/g-gem\n", + "alltom/ruck - id: 18203, url: https://github.com/alltom/ruck\n", + "skwp/acts_as_taggable_redux - id: 18206, url: https://github.com/skwp/acts_as_taggable_redux\n", + "jsierles/js_named_routes - id: 18210, url: https://github.com/jsierles/js_named_routes\n", + "rpm33/dotfiles - id: 18211, url: https://github.com/rpm33/dotfiles\n", + "francois/mor9-refactoring-to-patterns - id: 18212, url: https://github.com/francois/mor9-refactoring-to-patterns\n", + "mikew/ipupdate - id: 18214, url: https://github.com/mikew/ipupdate\n", + "psergi/xmlsp - id: 18218, url: https://github.com/psergi/xmlsp\n", + "bmabey/rspec-dev - id: 18219, url: https://github.com/bmabey/rspec-dev\n", + "TomK32/plasticairships - id: 18220, url: https://github.com/TomK32/plasticairships\n", + "jboner/emacs-config - id: 18228, url: https://github.com/jboner/emacs-config\n", + "jeremy-kunzhou/segp2 - id: 18230, url: https://github.com/jeremy-kunzhou/segp2\n", + "datafirm/can_has_auth_core - id: 18231, url: https://github.com/datafirm/can_has_auth_core\n", + "faryne/xeteri - id: 18239, url: https://github.com/faryne/xeteri\n", + "stayen/siteverse - id: 18247, url: https://github.com/stayen/siteverse\n", + "jamesu/railscollab - id: 18257, url: https://github.com/jamesu/railscollab\n", + "hotchpotch/rascut - id: 18260, url: https://github.com/hotchpotch/rascut\n", + "dtsato/sequel - id: 18262, url: https://github.com/dtsato/sequel\n", + "imkite/friendly_id - id: 18268, url: https://github.com/imkite/friendly_id\n", + "Pistos/diakonos - id: 18272, url: https://github.com/Pistos/diakonos\n", + "Pistos/better-benchmark - id: 18282, url: https://github.com/Pistos/better-benchmark\n", + "cschneid/wink - id: 18285, url: https://github.com/cschneid/wink\n", + "leskiger/lovd-by-less - id: 18286, url: https://github.com/leskiger/lovd-by-less\n", + "copyhacker/backup_fu - id: 18287, url: https://github.com/copyhacker/backup_fu\n", + "takuma104/rubyizumi - id: 18291, url: https://github.com/takuma104/rubyizumi\n", + "activemerchant/active_merchant - id: 18294, url: https://github.com/activemerchant/active_merchant\n", + "jnewland/san_juan - id: 18307, url: https://github.com/jnewland/san_juan\n", + "walf443/classx - id: 18308, url: https://github.com/walf443/classx\n", + "kana/vim-flymake - id: 18309, url: https://github.com/kana/vim-flymake\n", + "judofyr/camping - id: 18311, url: https://github.com/judofyr/camping\n", + "zachinglis/docrails - id: 18314, url: https://github.com/zachinglis/docrails\n", + "fiveruns/memcache-client - id: 18315, url: https://github.com/fiveruns/memcache-client\n", + "akr4/natsulion - id: 18326, url: https://github.com/akr4/natsulion\n", + "cypher/textmate - id: 18327, url: https://github.com/cypher/textmate\n", + "mrb/many_helpers - id: 18332, url: https://github.com/mrb/many_helpers\n", + "jandot/sprolog - id: 18337, url: https://github.com/jandot/sprolog\n", + "drspin/chuckslist - id: 18338, url: https://github.com/drspin/chuckslist\n", + "mattalbright/merb-manage - id: 18345, url: https://github.com/mattalbright/merb-manage\n", + "bmabey/rspec-story-tmbundle - id: 18346, url: https://github.com/bmabey/rspec-story-tmbundle\n", + "jsierles/globalize_translator - id: 18350, url: https://github.com/jsierles/globalize_translator\n", + "collectiveidea/attribute_fu - id: 18355, url: https://github.com/collectiveidea/attribute_fu\n", + "jtanner/rubyamp - id: 18360, url: https://github.com/jtanner/rubyamp\n", + "viniciusteles/selenium_poetry - id: 18363, url: https://github.com/viniciusteles/selenium_poetry\n", + "bsag/tracks-old - id: 18367, url: https://github.com/bsag/tracks-old\n", + "laurynasl/rubyrogue - id: 18370, url: https://github.com/laurynasl/rubyrogue\n", + "samaaron/grit - id: 18375, url: https://github.com/samaaron/grit\n", + "wilson/inquisitor - id: 18400, url: https://github.com/wilson/inquisitor\n", + "mkdynamic/rspec - id: 18405, url: https://github.com/mkdynamic/rspec\n", + "mkdynamic/rspec-rails - id: 18407, url: https://github.com/mkdynamic/rspec-rails\n", + "mkdynamic/active-record-matchers - id: 18415, url: https://github.com/mkdynamic/active-record-matchers\n", + "jagregory/boolangstudio - id: 18420, url: https://github.com/jagregory/boolangstudio\n", + "dpp/lift-samples - id: 18425, url: https://github.com/dpp/lift-samples\n", + "nuance/smarter-todo - id: 18428, url: https://github.com/nuance/smarter-todo\n", + "DrMark/thinking-sphinx - id: 18429, url: https://github.com/DrMark/thinking-sphinx\n", + "pluskid/rmmseg-cpp - id: 18452, url: https://github.com/pluskid/rmmseg-cpp\n", + "macournoyer/meshu - id: 18455, url: https://github.com/macournoyer/meshu\n", + "tapajos/podcast - id: 18456, url: https://github.com/tapajos/podcast\n", + "dharmon/insoshi - id: 18465, url: https://github.com/dharmon/insoshi\n", + "dsparling/jclock - id: 18469, url: https://github.com/dsparling/jclock\n", + "guan/timeframe - id: 18472, url: https://github.com/guan/timeframe\n", + "Sjors/srtm2postgis - id: 18473, url: https://github.com/Sjors/srtm2postgis\n", + "jeng/asm6502 - id: 18475, url: https://github.com/jeng/asm6502\n", + "s-zzz-em/webar - id: 18478, url: https://github.com/s-zzz-em/webar\n", + "dsparling/regexpcommon - id: 18479, url: https://github.com/dsparling/regexpcommon\n", + "pzurek/psycho - id: 18483, url: https://github.com/pzurek/psycho\n", + "andronikos/radiant-tinymce_filter - id: 18496, url: https://github.com/andronikos/radiant-tinymce_filter\n", + "rughetto/dm-core - id: 18498, url: https://github.com/rughetto/dm-core\n", + "will/haskell-tmbundle - id: 18502, url: https://github.com/will/haskell-tmbundle\n", + "dayne/shoutr - id: 18506, url: https://github.com/dayne/shoutr\n", + "takuma104/natsulion - id: 18509, url: https://github.com/takuma104/natsulion\n", + "nshi/pymailheaders - id: 18512, url: https://github.com/nshi/pymailheaders\n", + "diclophis/projectwiki - id: 18515, url: https://github.com/diclophis/projectwiki\n", + "jerome/simply_versioned - id: 18519, url: https://github.com/jerome/simply_versioned\n", + "torkelo/boolangstudio - id: 18523, url: https://github.com/torkelo/boolangstudio\n", + "rtomayko/rpeg-markdown - id: 18526, url: https://github.com/rtomayko/rpeg-markdown\n", + "wilde4/exception_logger - id: 18527, url: https://github.com/wilde4/exception_logger\n", + "steveh/appengine-films - id: 18536, url: https://github.com/steveh/appengine-films\n", + "jandot/ruby-ensembl-api - id: 18542, url: https://github.com/jandot/ruby-ensembl-api\n", + "bts7r/agnome - id: 18549, url: https://github.com/bts7r/agnome\n", + "shanghaichris/rails - id: 18555, url: https://github.com/shanghaichris/rails\n", + "gnufied/backgroundrb - id: 18556, url: https://github.com/gnufied/backgroundrb\n", + "rails-users/rails-users.jp - id: 18558, url: https://github.com/rails-users/rails-users.jp\n", + "raine/armory - id: 18561, url: https://github.com/raine/armory\n", + "olabini/xample - id: 18564, url: https://github.com/olabini/xample\n", + "ktf/git-issues - id: 18574, url: https://github.com/ktf/git-issues\n", + "aunderwo/ruby-on-rails-tmbundle - id: 18575, url: https://github.com/aunderwo/ruby-on-rails-tmbundle\n", + "imnotpete/odds-and-ends - id: 18585, url: https://github.com/imnotpete/odds-and-ends\n", + "ymirpl/treemap - id: 18586, url: https://github.com/ymirpl/treemap\n", + "nitilaksha/merb-plugins - id: 18590, url: https://github.com/nitilaksha/merb-plugins\n", + "sshi/playground - id: 18593, url: https://github.com/sshi/playground\n", + "ambethia/smtp-tls - id: 18598, url: https://github.com/ambethia/smtp-tls\n", + "datafirm/merb-more - id: 18615, url: https://github.com/datafirm/merb-more\n", + "davidonlaptop/rails-contrib - id: 18617, url: https://github.com/davidonlaptop/rails-contrib\n", + "h3h/rb-title-case - id: 18618, url: https://github.com/h3h/rb-title-case\n", + "bborn/communityengine-extras - id: 18622, url: https://github.com/bborn/communityengine-extras\n", + "ricky/lovd-by-less - id: 18632, url: https://github.com/ricky/lovd-by-less\n", + "rudyyang2001/earth1 - id: 18633, url: https://github.com/rudyyang2001/earth1\n", + "jlindley/title_case - id: 18637, url: https://github.com/jlindley/title_case\n", + "karmatr0n/siesta - id: 18638, url: https://github.com/karmatr0n/siesta\n", + "activescaffold/active_scaffold - id: 18639, url: https://github.com/activescaffold/active_scaffold\n", + "haikuwebdev/aftimagr - id: 18641, url: https://github.com/haikuwebdev/aftimagr\n", + "hrmc/hrmc - id: 18645, url: https://github.com/hrmc/hrmc\n", + "activescaffold/active_scaffold_sortable - id: 18650, url: https://github.com/activescaffold/active_scaffold_sortable\n", + "cbellrel/rps - id: 18652, url: https://github.com/cbellrel/rps\n", + "rmm5t/tilda-bin - id: 18653, url: https://github.com/rmm5t/tilda-bin\n", + "ELLIOTTCABLE/my.rb - id: 18656, url: https://github.com/ELLIOTTCABLE/my.rb\n", + "death/pelib - id: 18658, url: https://github.com/death/pelib\n", + "vitaliel/breakout_integration - id: 18661, url: https://github.com/vitaliel/breakout_integration\n", + "bernardo/auto_complete_fu - id: 18666, url: https://github.com/bernardo/auto_complete_fu\n", + "unpush/tlec_user_prefs - id: 18667, url: https://github.com/unpush/tlec_user_prefs\n", + "granth/titleize - id: 18672, url: https://github.com/granth/titleize\n", + "tomato/gfc - id: 18675, url: https://github.com/tomato/gfc\n", + "vanntastic/ar_helper - id: 18676, url: https://github.com/vanntastic/ar_helper\n", + "pcg79/dotfiles - id: 18681, url: https://github.com/pcg79/dotfiles\n", + "tonetheman/pwdhash - id: 18682, url: https://github.com/tonetheman/pwdhash\n", + "veader/has_encrypted_attributes - id: 18685, url: https://github.com/veader/has_encrypted_attributes\n", + "bawNg/laineth - id: 18686, url: https://github.com/bawNg/laineth\n", + "tbueno/delicious-ext - id: 18695, url: https://github.com/tbueno/delicious-ext\n", + "dcolthorp/multiblock - id: 18697, url: https://github.com/dcolthorp/multiblock\n", + "koke/flickr-commentr - id: 18698, url: https://github.com/koke/flickr-commentr\n", + "mudge/title_case - id: 18706, url: https://github.com/mudge/title_case\n", + "weppos/activerecord-multiconditions - id: 18710, url: https://github.com/weppos/activerecord-multiconditions\n", + "ozeias/js_mask - id: 18714, url: https://github.com/ozeias/js_mask\n", + "drd/comatose - id: 18717, url: https://github.com/drd/comatose\n", + "kosqx/kosqx-test - id: 18719, url: https://github.com/kosqx/kosqx-test\n", + "samaaron/titlecase-rb - id: 18722, url: https://github.com/samaaron/titlecase-rb\n", + "lilyball/amatch - id: 18725, url: https://github.com/lilyball/amatch\n", + "vin/gerbilcount - id: 18728, url: https://github.com/vin/gerbilcount\n", + "soad241/teleticket - id: 18732, url: https://github.com/soad241/teleticket\n", + "dgiunta/server-status-plugin - id: 18734, url: https://github.com/dgiunta/server-status-plugin\n", + "bronson/ctest - id: 18736, url: https://github.com/bronson/ctest\n", + "aflatter/feather-plugins - id: 18738, url: https://github.com/aflatter/feather-plugins\n", + "fireeagleirc/fireeagle-irc-bot - id: 18747, url: https://github.com/fireeagleirc/fireeagle-irc-bot\n", + "luislavena/win32console - id: 18749, url: https://github.com/luislavena/win32console\n", + "michaelboutros/titlecase - id: 18753, url: https://github.com/michaelboutros/titlecase\n", + "walf443/github-post-reciever - id: 18761, url: https://github.com/walf443/github-post-reciever\n", + "bronson/tmtest - id: 18762, url: https://github.com/bronson/tmtest\n", + "sebasmagri/portage - id: 18764, url: https://github.com/sebasmagri/portage\n", + "death/copypathname - id: 18772, url: https://github.com/death/copypathname\n", + "death/brizo - id: 18774, url: https://github.com/death/brizo\n", + "death/smirk - id: 18775, url: https://github.com/death/smirk\n", + "death/sfvtool2 - id: 18776, url: https://github.com/death/sfvtool2\n", + "criscokid/rubypresentation - id: 18778, url: https://github.com/criscokid/rubypresentation\n", + "death/brizo-older - id: 18779, url: https://github.com/death/brizo-older\n", + "death/function-replacer - id: 18780, url: https://github.com/death/function-replacer\n", + "death/sde - id: 18783, url: https://github.com/death/sde\n", + "death/vbref - id: 18785, url: https://github.com/death/vbref\n", + "death/webwatch - id: 18788, url: https://github.com/death/webwatch\n", + "seven1m/my_snippets - id: 18792, url: https://github.com/seven1m/my_snippets\n", + "sunfmin/readtracking - id: 18793, url: https://github.com/sunfmin/readtracking\n", + "kjk/ars-framework - id: 18796, url: https://github.com/kjk/ars-framework\n", + "kjk/ipedia-palm - id: 18797, url: https://github.com/kjk/ipedia-palm\n", + "kjk/moriarty-sm - id: 18798, url: https://github.com/kjk/moriarty-sm\n", + "kjk/moriarty-palm - id: 18799, url: https://github.com/kjk/moriarty-palm\n", + "imkite/ibox-rails-plugin - id: 18801, url: https://github.com/imkite/ibox-rails-plugin\n", + "nbibler/devpay - id: 18802, url: https://github.com/nbibler/devpay\n", + "kjk/noah-palm - id: 18807, url: https://github.com/kjk/noah-palm\n", + "kjk/inoah-sm - id: 18808, url: https://github.com/kjk/inoah-sm\n", + "bakineggs/bakineggs.com - id: 18809, url: https://github.com/bakineggs/bakineggs.com\n", + "kjk/ipedia-sm - id: 18811, url: https://github.com/kjk/ipedia-sm\n", + "timcharper/calendar_date_select_demo - id: 18812, url: https://github.com/timcharper/calendar_date_select_demo\n", + "activescaffold/file_column - id: 18824, url: https://github.com/activescaffold/file_column\n", + "kjk/web-arslexis - id: 18826, url: https://github.com/kjk/web-arslexis\n", + "activescaffold/active_scaffold_demo - id: 18828, url: https://github.com/activescaffold/active_scaffold_demo\n", + "rcrowley/curvr - id: 18829, url: https://github.com/rcrowley/curvr\n", + "tmm1/ramaze - id: 18832, url: https://github.com/tmm1/ramaze\n", + "trondn/memcached - id: 18834, url: https://github.com/trondn/memcached\n", + "dustin/snippets - id: 18840, url: https://github.com/dustin/snippets\n", + "jaswanttak/scriptaculous - id: 18842, url: https://github.com/jaswanttak/scriptaculous\n", + "halfbyte/wie_teste_ich - id: 18845, url: https://github.com/halfbyte/wie_teste_ich\n", + "jeremiah/web-beacon - id: 18848, url: https://github.com/jeremiah/web-beacon\n", + "mchaz84/prototypeui - id: 18850, url: https://github.com/mchaz84/prototypeui\n", + "freesci/java-protein-domain-visualization - id: 18852, url: https://github.com/freesci/java-protein-domain-visualization\n", + "hotchpotch/test_hotchpotch - id: 18861, url: https://github.com/hotchpotch/test_hotchpotch\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "pontus/thunderbird-extensions - id: 18871, url: https://github.com/pontus/thunderbird-extensions\n", + "pontus/wsexport - id: 18872, url: https://github.com/pontus/wsexport\n", + "bjeanes/woodford - id: 18873, url: https://github.com/bjeanes/woodford\n", + "bjeanes/moovy - id: 18874, url: https://github.com/bjeanes/moovy\n", + "febuiles/dotemacs - id: 18875, url: https://github.com/febuiles/dotemacs\n", + "mataki/emacsdotfile - id: 18878, url: https://github.com/mataki/emacsdotfile\n", + "imamoglu/archlinux - id: 18887, url: https://github.com/imamoglu/archlinux\n", + "damienmckenna/annotate_models - id: 18897, url: https://github.com/damienmckenna/annotate_models\n", + "dwalker/dummy - id: 18898, url: https://github.com/dwalker/dummy\n", + "henrik/permalink_fu - id: 18910, url: https://github.com/henrik/permalink_fu\n", + "cndreisbach/spect - id: 18912, url: https://github.com/cndreisbach/spect\n", + "vanntastic/sidebar-plugin - id: 18914, url: https://github.com/vanntastic/sidebar-plugin\n", + "donw0wnod/dummy - id: 18919, url: https://github.com/donw0wnod/dummy\n", + "Pistos/m4dbi - id: 18926, url: https://github.com/Pistos/m4dbi\n", + "jasherai/libwebta - id: 18932, url: https://github.com/jasherai/libwebta\n", + "pcg79/tilda-bin - id: 18934, url: https://github.com/pcg79/tilda-bin\n", + "patrickt/numinder - id: 18938, url: https://github.com/patrickt/numinder\n", + "cpjolicoeur/parsehtml - id: 18942, url: https://github.com/cpjolicoeur/parsehtml\n", + "til/lunchrrr - id: 18943, url: https://github.com/til/lunchrrr\n", + "sproutit/sproutcore - id: 18944, url: https://github.com/sproutit/sproutcore\n", + "y2krockp/sms-fu - id: 18947, url: https://github.com/y2krockp/sms-fu\n", + "Grayson/nutitlecase - id: 18949, url: https://github.com/Grayson/nutitlecase\n", + "artemv/diff_to_html.rb - id: 18954, url: https://github.com/artemv/diff_to_html.rb\n", + "sproutit/sproutcore-samples - id: 18966, url: https://github.com/sproutit/sproutcore-samples\n", + "sproutit/sproutcore-buildtools - id: 18977, url: https://github.com/sproutit/sproutcore-buildtools\n", + "vanntastic/test_spec_on_rails - id: 18981, url: https://github.com/vanntastic/test_spec_on_rails\n", + "postpostmodern/restful-authentication - id: 18986, url: https://github.com/postpostmodern/restful-authentication\n", + "jbarnette/backpack-journal - id: 19000, url: https://github.com/jbarnette/backpack-journal\n", + "kerryb/twitterer - id: 19001, url: https://github.com/kerryb/twitterer\n", + "zach/marley - id: 19007, url: https://github.com/zach/marley\n", + "bterlson/reddit - id: 19017, url: https://github.com/bterlson/reddit\n", + "samuel/lua-quadtree - id: 19018, url: https://github.com/samuel/lua-quadtree\n", + "alejoduque/planktum - id: 19019, url: https://github.com/alejoduque/planktum\n", + "niklas/vimmate - id: 19021, url: https://github.com/niklas/vimmate\n", + "antogerva/archscript - id: 19022, url: https://github.com/antogerva/archscript\n", + "vicaya/hypertable - id: 19029, url: https://github.com/vicaya/hypertable\n", + "grantr/ultrasphinx - id: 19031, url: https://github.com/grantr/ultrasphinx\n", + "samuel/satel - id: 19032, url: https://github.com/samuel/satel\n", + "vicaya2/hypertable - id: 19033, url: https://github.com/vicaya2/hypertable\n", + "cooldaemon/gauche-dbd-mysql5 - id: 19043, url: https://github.com/cooldaemon/gauche-dbd-mysql5\n", + "seven1m/simple_restful_openid - id: 19055, url: https://github.com/seven1m/simple_restful_openid\n", + "planet-argonbot/boxcar-conductor - id: 19060, url: https://github.com/planet-argonbot/boxcar-conductor\n", + "bjeanes/tv-renamer - id: 19066, url: https://github.com/bjeanes/tv-renamer\n", + "sjlombardo/acts_as_network - id: 19069, url: https://github.com/sjlombardo/acts_as_network\n", + "holoidal/blerb - id: 19079, url: https://github.com/holoidal/blerb\n", + "hakobe/forblog - id: 19082, url: https://github.com/hakobe/forblog\n", + "suratpyari/blogging_app - id: 19094, url: https://github.com/suratpyari/blogging_app\n", + "thunder75/scriptaculous - id: 19096, url: https://github.com/thunder75/scriptaculous\n", + "w4x/boolangstudio - id: 19108, url: https://github.com/w4x/boolangstudio\n", + "crowbot/acts_as_solr - id: 19110, url: https://github.com/crowbot/acts_as_solr\n", + "kmdsbng/graphviz_store - id: 19116, url: https://github.com/kmdsbng/graphviz_store\n", + "banjun/opmlreader - id: 19126, url: https://github.com/banjun/opmlreader\n", + "dummied/endless_pageless - id: 19130, url: https://github.com/dummied/endless_pageless\n", + "chmurph2/dotfiles - id: 19131, url: https://github.com/chmurph2/dotfiles\n", + "mrchucho/cap - id: 19135, url: https://github.com/mrchucho/cap\n", + "chmurph2/ruby-shoulda-tmbundle - id: 19136, url: https://github.com/chmurph2/ruby-shoulda-tmbundle\n", + "nuggetwheat/hypertable - id: 19137, url: https://github.com/nuggetwheat/hypertable\n", + "Spakman/jobby - id: 19139, url: https://github.com/Spakman/jobby\n", + "nominolo/proofs - id: 19141, url: https://github.com/nominolo/proofs\n", + "tiendung/vinova - id: 19152, url: https://github.com/tiendung/vinova\n", + "cho45/grit - id: 19162, url: https://github.com/cho45/grit\n", + "motemen/hexic-vim - id: 19165, url: https://github.com/motemen/hexic-vim\n", + "rafaelss/joeh-curl - id: 19168, url: https://github.com/rafaelss/joeh-curl\n", + "spohlenz/acts_as_authenticated_user - id: 19171, url: https://github.com/spohlenz/acts_as_authenticated_user\n", + "ismasan/masquerade - id: 19175, url: https://github.com/ismasan/masquerade\n", + "xentac/panalyze - id: 19178, url: https://github.com/xentac/panalyze\n", + "spohlenz/excel_importer - id: 19179, url: https://github.com/spohlenz/excel_importer\n", + "IceskYsl/vlad - id: 19180, url: https://github.com/IceskYsl/vlad\n", + "walf443/test - id: 19181, url: https://github.com/walf443/test\n", + "caius/loremgenerator - id: 19189, url: https://github.com/caius/loremgenerator\n", + "cho45/gitalone - id: 19190, url: https://github.com/cho45/gitalone\n", + "flavorjones/emacs-rails - id: 19192, url: https://github.com/flavorjones/emacs-rails\n", + "henrik/slugalizer - id: 19193, url: https://github.com/henrik/slugalizer\n", + "nathansobo/disco - id: 19194, url: https://github.com/nathansobo/disco\n", + "xlymian/git - id: 19205, url: https://github.com/xlymian/git\n", + "johnlarusic/arrow - id: 19208, url: https://github.com/johnlarusic/arrow\n", + "dmichael/marionette - id: 19213, url: https://github.com/dmichael/marionette\n", + "captproton/ride_the_fireeagle - id: 19214, url: https://github.com/captproton/ride_the_fireeagle\n", + "dmichael/marionette-greenfield - id: 19216, url: https://github.com/dmichael/marionette-greenfield\n", + "outten45/merb-plugins - id: 19218, url: https://github.com/outten45/merb-plugins\n", + "timburks/cocoa-programming-with-nu - id: 19219, url: https://github.com/timburks/cocoa-programming-with-nu\n", + "henrik/rails-footnotes - id: 19221, url: https://github.com/henrik/rails-footnotes\n", + "adamhjk/github-commit-email - id: 19233, url: https://github.com/adamhjk/github-commit-email\n", + "texel/actsas80shasbeen - id: 19240, url: https://github.com/texel/actsas80shasbeen\n", + "rik/little-scripts - id: 19246, url: https://github.com/rik/little-scripts\n", + "ismail/config - id: 19247, url: https://github.com/ismail/config\n", + "pureza/config - id: 19249, url: https://github.com/pureza/config\n", + "evanfarrar/opensprints - id: 19253, url: https://github.com/evanfarrar/opensprints\n", + "flogic/flame - id: 19254, url: https://github.com/flogic/flame\n", + "PeeDee/daily_pictures - id: 19255, url: https://github.com/PeeDee/daily_pictures\n", + "pureza/scripts - id: 19256, url: https://github.com/pureza/scripts\n", + "pureza/work - id: 19258, url: https://github.com/pureza/work\n", + "andreasofua/uaftpd - id: 19259, url: https://github.com/andreasofua/uaftpd\n", + "alleylab/communityengine - id: 19266, url: https://github.com/alleylab/communityengine\n", + "howethomas/engineyard-pbx - id: 19270, url: https://github.com/howethomas/engineyard-pbx\n", + "howethomas/engineyard-admin-tool - id: 19272, url: https://github.com/howethomas/engineyard-admin-tool\n", + "gslin/albumexpander - id: 19274, url: https://github.com/gslin/albumexpander\n", + "drewolson/block-chainable - id: 19278, url: https://github.com/drewolson/block-chainable\n", + "jnicklas/templater - id: 19280, url: https://github.com/jnicklas/templater\n", + "djcp/radiant-fckeditor - id: 19292, url: https://github.com/djcp/radiant-fckeditor\n", + "francois/clitt - id: 19293, url: https://github.com/francois/clitt\n", + "trogdoro/faqbot - id: 19294, url: https://github.com/trogdoro/faqbot\n", + "samsouder/titlecase - id: 19296, url: https://github.com/samsouder/titlecase\n", + "zackchandler/bj - id: 19300, url: https://github.com/zackchandler/bj\n", + "walf443/rack-auth-ip - id: 19306, url: https://github.com/walf443/rack-auth-ip\n", + "planetbeing/iphonelinux - id: 19309, url: https://github.com/planetbeing/iphonelinux\n", + "grosser/acts_as_searchable - id: 19311, url: https://github.com/grosser/acts_as_searchable\n", + "nowa/fireyupoo - id: 19317, url: https://github.com/nowa/fireyupoo\n", + "cederberg/plotkit-patches - id: 19321, url: https://github.com/cederberg/plotkit-patches\n", + "tslocke/rubydoctest - id: 19339, url: https://github.com/tslocke/rubydoctest\n", + "vanto/trac-cc - id: 19340, url: https://github.com/vanto/trac-cc\n", + "yasuhito/nova - id: 19350, url: https://github.com/yasuhito/nova\n", + "death/reddit-mode - id: 19355, url: https://github.com/death/reddit-mode\n", + "IanEsling/squid - id: 19357, url: https://github.com/IanEsling/squid\n", + "apeiros/breezeforms - id: 19363, url: https://github.com/apeiros/breezeforms\n", + "mislav/standardista - id: 19364, url: https://github.com/mislav/standardista\n", + "elight/jrsplenda - id: 19365, url: https://github.com/elight/jrsplenda\n", + "hassox/merb-auth - id: 19366, url: https://github.com/hassox/merb-auth\n", + "damg/mobilesim-fedora9-fixes - id: 19371, url: https://github.com/damg/mobilesim-fedora9-fixes\n", + "rbarazi/simply_searchable - id: 19382, url: https://github.com/rbarazi/simply_searchable\n", + "jptix/ruby_class_browser - id: 19384, url: https://github.com/jptix/ruby_class_browser\n", + "joevandyk/research - id: 19387, url: https://github.com/joevandyk/research\n", + "beastaugh/access_control - id: 19390, url: https://github.com/beastaugh/access_control\n", + "lukebayes/project-sprouts - id: 19391, url: https://github.com/lukebayes/project-sprouts\n", + "henryhamon/hublator - id: 19392, url: https://github.com/henryhamon/hublator\n", + "petertodd/alternate-pace - id: 19394, url: https://github.com/petertodd/alternate-pace\n", + "fenrrir/xorgrecord - id: 19396, url: https://github.com/fenrrir/xorgrecord\n", + "mojombo/egitd - id: 19398, url: https://github.com/mojombo/egitd\n", + "lutzky/ttime - id: 19402, url: https://github.com/lutzky/ttime\n", + "ELLIOTTCABLE/wolo - id: 19404, url: https://github.com/ELLIOTTCABLE/wolo\n", + "mks-m/wower - id: 19407, url: https://github.com/mks-m/wower\n", + "gadial/ttime - id: 19408, url: https://github.com/gadial/ttime\n", + "xeb/flowdle - id: 19410, url: https://github.com/xeb/flowdle\n", + "nixme/thinking-sphinx - id: 19417, url: https://github.com/nixme/thinking-sphinx\n", + "damg/pioneer-robot-remote-controller - id: 19422, url: https://github.com/damg/pioneer-robot-remote-controller\n", + "geoffgarside/primehosting - id: 19428, url: https://github.com/geoffgarside/primehosting\n", + "JosephPecoraro/scripts - id: 19436, url: https://github.com/JosephPecoraro/scripts\n", + "bjeanes/imdb - id: 19437, url: https://github.com/bjeanes/imdb\n", + "tidyverse/ggplot2 - id: 19438, url: https://github.com/tidyverse/ggplot2\n", + "bkerley/tdigester - id: 19443, url: https://github.com/bkerley/tdigester\n", + "engineyard/mongrel - id: 19448, url: https://github.com/engineyard/mongrel\n", + "swanand/rextral - id: 19455, url: https://github.com/swanand/rextral\n", + "diclophis/sig - id: 19456, url: https://github.com/diclophis/sig\n", + "ryanlowe/save_or_raise - id: 19461, url: https://github.com/ryanlowe/save_or_raise\n", + "drnic/ruby-doctest-tmbundle - id: 19463, url: https://github.com/drnic/ruby-doctest-tmbundle\n", + "bert/pcb-plugins - id: 19471, url: https://github.com/bert/pcb-plugins\n", + "ryz/dotfiles - id: 19472, url: https://github.com/ryz/dotfiles\n", + "mattetti/han-converter - id: 19475, url: https://github.com/mattetti/han-converter\n", + "fhwang/http_log_reader - id: 19476, url: https://github.com/fhwang/http_log_reader\n", + "cnu/pyvmg - id: 19479, url: https://github.com/cnu/pyvmg\n", + "xrg/cups-usbbackend - id: 19481, url: https://github.com/xrg/cups-usbbackend\n", + "swombat/blog - id: 19486, url: https://github.com/swombat/blog\n", + "atmos/pars - id: 19487, url: https://github.com/atmos/pars\n", + "diclophis/siffd - id: 19488, url: https://github.com/diclophis/siffd\n", + "fabianbuch/nagoro - id: 19492, url: https://github.com/fabianbuch/nagoro\n", + "jptix/ri_outputter - id: 19496, url: https://github.com/jptix/ri_outputter\n", + "rynr/atmelprojects - id: 19499, url: https://github.com/rynr/atmelprojects\n", + "ymirpl/intel - id: 19503, url: https://github.com/ymirpl/intel\n", + "yasuhito/bf - id: 19507, url: https://github.com/yasuhito/bf\n", + "duritong/puppet-virtual - id: 19509, url: https://github.com/duritong/puppet-virtual\n", + "blundellc/cran2deb - id: 19511, url: https://github.com/blundellc/cran2deb\n", + "nickg/iverilog - id: 19513, url: https://github.com/nickg/iverilog\n", + "gregfu/active_merchant - id: 19514, url: https://github.com/gregfu/active_merchant\n", + "srveit/scaffold-resource-matrix - id: 19517, url: https://github.com/srveit/scaffold-resource-matrix\n", + "fadec/sqlpilot - id: 19519, url: https://github.com/fadec/sqlpilot\n", + "lachie/cheepcheep - id: 19522, url: https://github.com/lachie/cheepcheep\n", + "mootoh/rubigraph - id: 19524, url: https://github.com/mootoh/rubigraph\n", + "rgraff/validates_existence - id: 19526, url: https://github.com/rgraff/validates_existence\n", + "pokeb/php-mvc-router - id: 19530, url: https://github.com/pokeb/php-mvc-router\n", + "anildigital/planet - id: 19533, url: https://github.com/anildigital/planet\n", + "torbjornvatn/tillsammans - id: 19542, url: https://github.com/torbjornvatn/tillsammans\n", + "rija/test-more-behaviours - id: 19552, url: https://github.com/rija/test-more-behaviours\n", + "saucytiger/livepipe-ui - id: 19556, url: https://github.com/saucytiger/livepipe-ui\n", + "knewter/communityengine - id: 19560, url: https://github.com/knewter/communityengine\n", + "knewter/liberty_alabama - id: 19561, url: https://github.com/knewter/liberty_alabama\n", + "dcolthorp/render_with - id: 19565, url: https://github.com/dcolthorp/render_with\n", + "bernardo/markdown_fu - id: 19566, url: https://github.com/bernardo/markdown_fu\n", + "josip/backgroundrb_merb - id: 19573, url: https://github.com/josip/backgroundrb_merb\n", + "slangevi/bruse - id: 19580, url: https://github.com/slangevi/bruse\n", + "jsyedidia/cocoa-programming-with-nu - id: 19581, url: https://github.com/jsyedidia/cocoa-programming-with-nu\n", + "aunderwo/primehosting - id: 19582, url: https://github.com/aunderwo/primehosting\n", + "akitaonrails/rolling_with_rails_tutorial - id: 19583, url: https://github.com/akitaonrails/rolling_with_rails_tutorial\n", + "pelle/agree2-client - id: 19586, url: https://github.com/pelle/agree2-client\n", + "petertodd/entropy-oscillator - id: 19590, url: https://github.com/petertodd/entropy-oscillator\n", + "xjunior/blind-chameleon - id: 19591, url: https://github.com/xjunior/blind-chameleon\n", + "nnnnon/merb-core - id: 19598, url: https://github.com/nnnnon/merb-core\n", + "nnnnon/rolling_with_rails_tutorial - id: 19599, url: https://github.com/nnnnon/rolling_with_rails_tutorial\n", + "hagabaka/rbot-plugins - id: 19601, url: https://github.com/hagabaka/rbot-plugins\n", + "michaelklishin/el4r - id: 19602, url: https://github.com/michaelklishin/el4r\n", + "nnnnon/myminiblog - id: 19604, url: https://github.com/nnnnon/myminiblog\n", + "Phoenix591/arora - id: 19613, url: https://github.com/Phoenix591/arora\n", + "benvinegar/freshbooks.rb - id: 19616, url: https://github.com/benvinegar/freshbooks.rb\n", + "captproton/github-gem - id: 19621, url: https://github.com/captproton/github-gem\n", + "captproton/mofo - id: 19623, url: https://github.com/captproton/mofo\n", + "drnic/github-tmbundle - id: 19624, url: https://github.com/drnic/github-tmbundle\n", + "joshsusser/teldra_prime - id: 19625, url: https://github.com/joshsusser/teldra_prime\n", + "littleidea/puppet - id: 19627, url: https://github.com/littleidea/puppet\n", + "makkalot/func - id: 19628, url: https://github.com/makkalot/func\n", + "avdi/curator - id: 19631, url: https://github.com/avdi/curator\n", + "avdi/sinatra - id: 19632, url: https://github.com/avdi/sinatra\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "matthewfallshaw/dotfiles - id: 19633, url: https://github.com/matthewfallshaw/dotfiles\n", + "rcrowley/powncefs - id: 19635, url: https://github.com/rcrowley/powncefs\n", + "tabepro/nanitabe - id: 19640, url: https://github.com/tabepro/nanitabe\n", + "ohma/ostream - id: 19642, url: https://github.com/ohma/ostream\n", + "jacques/bsdtrafstats - id: 19645, url: https://github.com/jacques/bsdtrafstats\n", + "ujihisa/git-support-vim - id: 19650, url: https://github.com/ujihisa/git-support-vim\n", + "mihairu/config-files - id: 19657, url: https://github.com/mihairu/config-files\n", + "keizo/kulu - id: 19661, url: https://github.com/keizo/kulu\n", + "jarkko/merb-more - id: 19662, url: https://github.com/jarkko/merb-more\n", + "elim/muxtape-snatcher - id: 19666, url: https://github.com/elim/muxtape-snatcher\n", + "henrik/raising_finders - id: 19669, url: https://github.com/henrik/raising_finders\n", + "danlucraft/valar - id: 19680, url: https://github.com/danlucraft/valar\n", + "dchelimsky/webby - id: 19689, url: https://github.com/dchelimsky/webby\n", + "mutle/github-tmbundle - id: 19693, url: https://github.com/mutle/github-tmbundle\n", + "jesperronn/jquery-round-corners - id: 19696, url: https://github.com/jesperronn/jquery-round-corners\n", + "modulargaming/kittokittokitto - id: 19701, url: https://github.com/modulargaming/kittokittokitto\n", + "BMills/scriptaculous - id: 19705, url: https://github.com/BMills/scriptaculous\n", + "gadial/rex - id: 19710, url: https://github.com/gadial/rex\n", + "HatemMahmoud/storemate - id: 19717, url: https://github.com/HatemMahmoud/storemate\n", + "pneff/servicegen - id: 19718, url: https://github.com/pneff/servicegen\n", + "madx/merb-todolist - id: 19719, url: https://github.com/madx/merb-todolist\n", + "kommen/swiff-prototype - id: 19722, url: https://github.com/kommen/swiff-prototype\n", + "typester/blooxm - id: 19724, url: https://github.com/typester/blooxm\n", + "calas/bash-completion-extras - id: 19725, url: https://github.com/calas/bash-completion-extras\n", + "bricooke/backpack-journal - id: 19729, url: https://github.com/bricooke/backpack-journal\n", + "subblue/simpleattractor - id: 19735, url: https://github.com/subblue/simpleattractor\n", + "mhennemeyer/output_catcher - id: 19741, url: https://github.com/mhennemeyer/output_catcher\n", + "kennethkalmer/bind-dlz-on-rails - id: 19747, url: https://github.com/kennethkalmer/bind-dlz-on-rails\n", + "schleyfox/ruby_kml - id: 19750, url: https://github.com/schleyfox/ruby_kml\n", + "chrisinammo/arthurmcneil - id: 19758, url: https://github.com/chrisinammo/arthurmcneil\n", + "bts7r/test - id: 19760, url: https://github.com/bts7r/test\n", + "kumo/acts_as_confirmable - id: 19761, url: https://github.com/kumo/acts_as_confirmable\n", + "kwe/kwe_generator - id: 19773, url: https://github.com/kwe/kwe_generator\n", + "MamaTux/zencart-1.3.8-danish - id: 19793, url: https://github.com/MamaTux/zencart-1.3.8-danish\n", + "crafterm/twilight-emacs - id: 19796, url: https://github.com/crafterm/twilight-emacs\n", + "rafaelss/joeh-template - id: 19797, url: https://github.com/rafaelss/joeh-template\n", + "matthewfallshaw/utilities - id: 19799, url: https://github.com/matthewfallshaw/utilities\n", + "raykrueger/hibernate-memcached - id: 19816, url: https://github.com/raykrueger/hibernate-memcached\n", + "PeeDee/csv-to-sql - id: 19819, url: https://github.com/PeeDee/csv-to-sql\n", + "isaac/mephisto-erb-templates-plugin - id: 19834, url: https://github.com/isaac/mephisto-erb-templates-plugin\n", + "isaac/mephisto-haml-templates-plugin - id: 19835, url: https://github.com/isaac/mephisto-haml-templates-plugin\n", + "captproton/caboo.se-sample-app-v3 - id: 19843, url: https://github.com/captproton/caboo.se-sample-app-v3\n", + "majimojo/my-app - id: 19853, url: https://github.com/majimojo/my-app\n", + "mkllnk/gedit-rails-extensions - id: 19859, url: https://github.com/mkllnk/gedit-rails-extensions\n", + "dustin/web-thermometer - id: 19861, url: https://github.com/dustin/web-thermometer\n", + "amwaterston-zz/towers - id: 19863, url: https://github.com/amwaterston-zz/towers\n", + "timloo0710/merb-core - id: 19864, url: https://github.com/timloo0710/merb-core\n", + "timloo0710/merb-plugins - id: 19865, url: https://github.com/timloo0710/merb-plugins\n", + "calas/spree - id: 19868, url: https://github.com/calas/spree\n", + "pdorrell/tenblocks - id: 19875, url: https://github.com/pdorrell/tenblocks\n", + "axelson/my-scripts - id: 19882, url: https://github.com/axelson/my-scripts\n", + "Joker/jstreedrive - id: 19885, url: https://github.com/Joker/jstreedrive\n", + "madx/gp2sass - id: 19888, url: https://github.com/madx/gp2sass\n", + "wharsojo/w2tags - id: 19896, url: https://github.com/wharsojo/w2tags\n", + "mox601/grafica - id: 19911, url: https://github.com/mox601/grafica\n", + "spejman/simplified_fk - id: 19924, url: https://github.com/spejman/simplified_fk\n", + "lancew/twitter2snarl - id: 19925, url: https://github.com/lancew/twitter2snarl\n", + "ddemaree/sylar - id: 19929, url: https://github.com/ddemaree/sylar\n", + "flavorjones/active_scaffold - id: 19930, url: https://github.com/flavorjones/active_scaffold\n", + "mattfoster/dotfiles-old - id: 19952, url: https://github.com/mattfoster/dotfiles-old\n", + "yrashk/merb_strokedb - id: 19959, url: https://github.com/yrashk/merb_strokedb\n", + "siuying/rmmseg-cpp - id: 19963, url: https://github.com/siuying/rmmseg-cpp\n", + "benburkert/merb-e-mart - id: 19971, url: https://github.com/benburkert/merb-e-mart\n", + "heracek/36par-upo-zprava - id: 19974, url: https://github.com/heracek/36par-upo-zprava\n", + "taf2/mogul - id: 19983, url: https://github.com/taf2/mogul\n", + "obenauer-zz/equilibrium - id: 19992, url: https://github.com/obenauer-zz/equilibrium\n", + "mejibyte/arca - id: 20008, url: https://github.com/mejibyte/arca\n", + "yrashk/merb-core - id: 20017, url: https://github.com/yrashk/merb-core\n", + "nakajima/the-little-schemer-in-ruby - id: 20023, url: https://github.com/nakajima/the-little-schemer-in-ruby\n", + "schacon/git-lighthouse - id: 20024, url: https://github.com/schacon/git-lighthouse\n", + "senu/psi - id: 20025, url: https://github.com/senu/psi\n", + "allison-lara/rbot-plugins - id: 20028, url: https://github.com/allison-lara/rbot-plugins\n", + "btakita/rspec_hpricot_matchers - id: 20031, url: https://github.com/btakita/rspec_hpricot_matchers\n", + "kadamski/func - id: 20036, url: https://github.com/kadamski/func\n", + "GregNeighbors/insoshi - id: 20039, url: https://github.com/GregNeighbors/insoshi\n", + "flavorjones/the-little-schemer-in-ruby - id: 20041, url: https://github.com/flavorjones/the-little-schemer-in-ruby\n", + "mblsha/psi_ru - id: 20043, url: https://github.com/mblsha/psi_ru\n", + "Mikachu/openbox - id: 20045, url: https://github.com/Mikachu/openbox\n", + "LeonB/acts_as_queue - id: 20051, url: https://github.com/LeonB/acts_as_queue\n", + "imkite/lovd-by-less - id: 20055, url: https://github.com/imkite/lovd-by-less\n", + "minichate/prototype - id: 20063, url: https://github.com/minichate/prototype\n", + "solars/github-vim - id: 20070, url: https://github.com/solars/github-vim\n", + "stympy/openid-rails-kit - id: 20075, url: https://github.com/stympy/openid-rails-kit\n", + "asolove/critex - id: 20076, url: https://github.com/asolove/critex\n", + "bostonrb/bostonrb - id: 20088, url: https://github.com/bostonrb/bostonrb\n", + "granth/rake-examine - id: 20090, url: https://github.com/granth/rake-examine\n", + "cnk/in_place_editing_unsafe - id: 20098, url: https://github.com/cnk/in_place_editing_unsafe\n", + "garrick/rayd8or - id: 20100, url: https://github.com/garrick/rayd8or\n", + "timloo0710/spree - id: 20101, url: https://github.com/timloo0710/spree\n", + "TekNoLogic/instantiation - id: 20102, url: https://github.com/TekNoLogic/instantiation\n", + "petertodd/alternate-pace.elec - id: 20103, url: https://github.com/petertodd/alternate-pace.elec\n", + "petertodd/alternate-pace.firm - id: 20104, url: https://github.com/petertodd/alternate-pace.firm\n", + "neshmi/super_simple_cms - id: 20119, url: https://github.com/neshmi/super_simple_cms\n", + "texel/diet_hacker - id: 20121, url: https://github.com/texel/diet_hacker\n", + "schacon/asgit - id: 20140, url: https://github.com/schacon/asgit\n", + "bkyle/emacs - id: 20144, url: https://github.com/bkyle/emacs\n", + "avdi/rack_base_uri - id: 20145, url: https://github.com/avdi/rack_base_uri\n", + "aggieben/cl-slimtimer - id: 20151, url: https://github.com/aggieben/cl-slimtimer\n", + "apasha/rails - id: 20153, url: https://github.com/apasha/rails\n", + "kemayo/instantiation - id: 20159, url: https://github.com/kemayo/instantiation\n", + "mattetti/multibyte - id: 20160, url: https://github.com/mattetti/multibyte\n", + "rictic/processing-tower-defense - id: 20163, url: https://github.com/rictic/processing-tower-defense\n", + "fstmarketing/authenticated-bcrypt - id: 20182, url: https://github.com/fstmarketing/authenticated-bcrypt\n", + "cristibalan/asset_auto_include - id: 20196, url: https://github.com/cristibalan/asset_auto_include\n", + "ruphy/arora - id: 20209, url: https://github.com/ruphy/arora\n", + "patrickt/nu - id: 20210, url: https://github.com/patrickt/nu\n", + "curzonj/ext-extensions - id: 20214, url: https://github.com/curzonj/ext-extensions\n", + "jxa/mysnippets - id: 20216, url: https://github.com/jxa/mysnippets\n", + "zh/turl - id: 20217, url: https://github.com/zh/turl\n", + "robertpfeiffer/io - id: 20222, url: https://github.com/robertpfeiffer/io\n", + "wilku/wilku - id: 20231, url: https://github.com/wilku/wilku\n", + "isaacfeliu/attachment_fu - id: 20233, url: https://github.com/isaacfeliu/attachment_fu\n", + "isaacfeliu/aws-s3 - id: 20234, url: https://github.com/isaacfeliu/aws-s3\n", + "dtsato/sinatra - id: 20243, url: https://github.com/dtsato/sinatra\n", + "miguelvall/arora - id: 20245, url: https://github.com/miguelvall/arora\n", + "exploradoreselectronicos/pressmark - id: 20247, url: https://github.com/exploradoreselectronicos/pressmark\n", + "jon/deskweb - id: 20250, url: https://github.com/jon/deskweb\n", + "sebnow/aur2 - id: 20251, url: https://github.com/sebnow/aur2\n", + "tomtaylor/term-extractor - id: 20252, url: https://github.com/tomtaylor/term-extractor\n", + "emdash/gst-editor - id: 20257, url: https://github.com/emdash/gst-editor\n", + "tma/html_helpers - id: 20263, url: https://github.com/tma/html_helpers\n", + "tobinibot/ruby-snippets - id: 20267, url: https://github.com/tobinibot/ruby-snippets\n", + "bru/masquerade - id: 20274, url: https://github.com/bru/masquerade\n", + "opie4624/pyrss2twitter - id: 20275, url: https://github.com/opie4624/pyrss2twitter\n", + "jgoday/katetabbarplugin - id: 20293, url: https://github.com/jgoday/katetabbarplugin\n", + "sbecker/github_editor_theme - id: 20299, url: https://github.com/sbecker/github_editor_theme\n", + "tadman/has_revisions - id: 20302, url: https://github.com/tadman/has_revisions\n", + "avdi/rails - id: 20307, url: https://github.com/avdi/rails\n", + "jamesarosen/pinball - id: 20317, url: https://github.com/jamesarosen/pinball\n", + "aks/showtable - id: 20318, url: https://github.com/aks/showtable\n", + "jdelStrother/nanofibre - id: 20320, url: https://github.com/jdelStrother/nanofibre\n", + "tvc123/lovd-by-less - id: 20325, url: https://github.com/tvc123/lovd-by-less\n", + "tachim/fluids - id: 20328, url: https://github.com/tachim/fluids\n", + "halorgium/xmpp_rubyerl - id: 20332, url: https://github.com/halorgium/xmpp_rubyerl\n", + "takkaw/vizrake - id: 20333, url: https://github.com/takkaw/vizrake\n", + "agibralter/ruby-haml-tmbundle - id: 20342, url: https://github.com/agibralter/ruby-haml-tmbundle\n", + "pkqk/scrobbletron - id: 20344, url: https://github.com/pkqk/scrobbletron\n", + "sd/notso-app - id: 20350, url: https://github.com/sd/notso-app\n", + "michaelmelanson/spider - id: 20351, url: https://github.com/michaelmelanson/spider\n", + "megchou/ultimate-beast - id: 20358, url: https://github.com/megchou/ultimate-beast\n", + "megchou/altered_beast - id: 20359, url: https://github.com/megchou/altered_beast\n", + "mrchucho/bbot - id: 20362, url: https://github.com/mrchucho/bbot\n", + "JosephPecoraro/choice - id: 20364, url: https://github.com/JosephPecoraro/choice\n", + "travis/erlang-uuid - id: 20383, url: https://github.com/travis/erlang-uuid\n", + "StudyWorks/lipsiadmin - id: 20386, url: https://github.com/StudyWorks/lipsiadmin\n", + "dustin/elock - id: 20400, url: https://github.com/dustin/elock\n", + "ianwhite/clag - id: 20401, url: https://github.com/ianwhite/clag\n", + "typester/pdf-fromimage - id: 20402, url: https://github.com/typester/pdf-fromimage\n", + "abhay/sample-rpc-server - id: 20404, url: https://github.com/abhay/sample-rpc-server\n", + "fabien/ultraminx - id: 20407, url: https://github.com/fabien/ultraminx\n", + "wzph/merb_paginate - id: 20409, url: https://github.com/wzph/merb_paginate\n", + "plus7/bagel - id: 20414, url: https://github.com/plus7/bagel\n", + "rune79/zencart-1.3.8-danish - id: 20415, url: https://github.com/rune79/zencart-1.3.8-danish\n", + "zmack/tribby - id: 20423, url: https://github.com/zmack/tribby\n", + "mloughran/api_cache - id: 20425, url: https://github.com/mloughran/api_cache\n", + "duritong/puppet-yum - id: 20433, url: https://github.com/duritong/puppet-yum\n", + "hallison/clearly - id: 20436, url: https://github.com/hallison/clearly\n", + "Mercedes/ratonesytortillas - id: 20437, url: https://github.com/Mercedes/ratonesytortillas\n", + "fabien/multibyte - id: 20439, url: https://github.com/fabien/multibyte\n", + "jandot/bio-graphics - id: 20440, url: https://github.com/jandot/bio-graphics\n", + "manveru/sociar - id: 20452, url: https://github.com/manveru/sociar\n", + "jlong/popupjs - id: 20461, url: https://github.com/jlong/popupjs\n", + "dcai/pydict - id: 20467, url: https://github.com/dcai/pydict\n", + "mynyml/merb-in-file-templates - id: 20468, url: https://github.com/mynyml/merb-in-file-templates\n", + "nnnnon/malijun - id: 20474, url: https://github.com/nnnnon/malijun\n", + "jerodsanto/dotfiles - id: 20477, url: https://github.com/jerodsanto/dotfiles\n", + "Zariel/zarielcastingbar - id: 20481, url: https://github.com/Zariel/zarielcastingbar\n", + "duritong/puppet-puppet - id: 20484, url: https://github.com/duritong/puppet-puppet\n", + "duritong/puppet-mongrel - id: 20487, url: https://github.com/duritong/puppet-mongrel\n", + "duritong/puppet-rubygems - id: 20488, url: https://github.com/duritong/puppet-rubygems\n", + "duritong/puppet-ruby - id: 20489, url: https://github.com/duritong/puppet-ruby\n", + "duritong/puppet-rails - id: 20490, url: https://github.com/duritong/puppet-rails\n", + "tylerhunt/find-param - id: 20494, url: https://github.com/tylerhunt/find-param\n", + "thomasritz/dotfiles - id: 20497, url: https://github.com/thomasritz/dotfiles\n", + "cflipse/altered_beast - id: 20506, url: https://github.com/cflipse/altered_beast\n", + "jgleason/test-repo - id: 20516, url: https://github.com/jgleason/test-repo\n", + "lancecarlson/timespec - id: 20519, url: https://github.com/lancecarlson/timespec\n", + "lamsek/rails - id: 20524, url: https://github.com/lamsek/rails\n", + "lancecarlson/managespec - id: 20525, url: https://github.com/lancecarlson/managespec\n", + "sd/dot_rails - id: 20526, url: https://github.com/sd/dot_rails\n", + "svenfuchs/stubby - id: 20527, url: https://github.com/svenfuchs/stubby\n", + "heavysixer/name_nanny - id: 20532, url: https://github.com/heavysixer/name_nanny\n", + "chapados/nu - id: 20535, url: https://github.com/chapados/nu\n", + "scharris/hmq - id: 20539, url: https://github.com/scharris/hmq\n", + "abhay/dynomite - id: 20540, url: https://github.com/abhay/dynomite\n", + "rails/account_location - id: 20544, url: https://github.com/rails/account_location\n", + "markplee/portfolio - id: 20545, url: https://github.com/markplee/portfolio\n", + "sorbits/six - id: 20546, url: https://github.com/sorbits/six\n", + "rails/acts_as_list - id: 20547, url: https://github.com/rails/acts_as_list\n", + "rails/acts_as_nested_set - id: 20548, url: https://github.com/rails/acts_as_nested_set\n", + "luislavena/mysql-gem - id: 20549, url: https://github.com/luislavena/mysql-gem\n", + "rails/acts_as_tree - id: 20550, url: https://github.com/rails/acts_as_tree\n", + "rails/atom_feed_helper - id: 20552, url: https://github.com/rails/atom_feed_helper\n", + "rails/auto_complete - id: 20553, url: https://github.com/rails/auto_complete\n", + "rails/continuous_builder - id: 20554, url: https://github.com/rails/continuous_builder\n", + "rails/deadlock_retry - id: 20555, url: https://github.com/rails/deadlock_retry\n", + "rails/exception_notification - id: 20556, url: https://github.com/rails/exception_notification\n", + "rails/http_authentication - id: 20557, url: https://github.com/rails/http_authentication\n", + "aaronharnly/scala-options - id: 20558, url: https://github.com/aaronharnly/scala-options\n", + "rails/in_place_editing - id: 20559, url: https://github.com/rails/in_place_editing\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rails/javascript_test - id: 20560, url: https://github.com/rails/javascript_test\n", + "rails/localization - id: 20561, url: https://github.com/rails/localization\n", + "rails/open_id_authentication - id: 20563, url: https://github.com/rails/open_id_authentication\n", + "paulmwatson/feedside - id: 20567, url: https://github.com/paulmwatson/feedside\n", + "rails/scaffolding - id: 20568, url: https://github.com/rails/scaffolding\n", + "rails/scriptaculous_slider - id: 20569, url: https://github.com/rails/scriptaculous_slider\n", + "rails/ssl_requirement - id: 20571, url: https://github.com/rails/ssl_requirement\n", + "ljouglar/card-set - id: 20572, url: https://github.com/ljouglar/card-set\n", + "rails/token_generator - id: 20573, url: https://github.com/rails/token_generator\n", + "rails/tzinfo_timezone - id: 20574, url: https://github.com/rails/tzinfo_timezone\n", + "rails/tztime - id: 20579, url: https://github.com/rails/tztime\n", + "rails/upload_progress - id: 20581, url: https://github.com/rails/upload_progress\n", + "tobbez/tisel-server - id: 20584, url: https://github.com/tobbez/tisel-server\n", + "dce/aaap - id: 20586, url: https://github.com/dce/aaap\n", + "joegoggins/capistrano - id: 20597, url: https://github.com/joegoggins/capistrano\n", + "sergiobuj/videos - id: 20599, url: https://github.com/sergiobuj/videos\n", + "jashmenn/waltz - id: 20603, url: https://github.com/jashmenn/waltz\n", + "akatz/rails - id: 20608, url: https://github.com/akatz/rails\n", + "cout/rice - id: 20609, url: https://github.com/cout/rice\n", + "thechrisoshow/tarantula - id: 20610, url: https://github.com/thechrisoshow/tarantula\n", + "svenfuchs/routing-filter - id: 20620, url: https://github.com/svenfuchs/routing-filter\n", + "nono/github_vim_theme - id: 20622, url: https://github.com/nono/github_vim_theme\n", + "dustin/elock-ruby - id: 20645, url: https://github.com/dustin/elock-ruby\n", + "heavysixer/acts_as_dismissible - id: 20653, url: https://github.com/heavysixer/acts_as_dismissible\n", + "tmm1/thin - id: 20661, url: https://github.com/tmm1/thin\n", + "cout/ruby-libjit - id: 20663, url: https://github.com/cout/ruby-libjit\n", + "cout/ludicrous - id: 20664, url: https://github.com/cout/ludicrous\n", + "TwP/logging - id: 20669, url: https://github.com/TwP/logging\n", + "stalcottsmith/limber - id: 20678, url: https://github.com/stalcottsmith/limber\n", + "stalcottsmith/savasana - id: 20681, url: https://github.com/stalcottsmith/savasana\n", + "scottwhite/simple_smugmug - id: 20682, url: https://github.com/scottwhite/simple_smugmug\n", + "workstation/blue-channel - id: 20684, url: https://github.com/workstation/blue-channel\n", + "ellen/cosmo - id: 20686, url: https://github.com/ellen/cosmo\n", + "jmathai/epiphany - id: 20693, url: https://github.com/jmathai/epiphany\n", + "fiveruns/fiveruns_tuneup - id: 20694, url: https://github.com/fiveruns/fiveruns_tuneup\n", + "eric/signal - id: 20697, url: https://github.com/eric/signal\n", + "BluntBox/config - id: 20699, url: https://github.com/BluntBox/config\n", + "avinash/nanofibre - id: 20705, url: https://github.com/avinash/nanofibre\n", + "captproton/i-like-local-bdd2 - id: 20706, url: https://github.com/captproton/i-like-local-bdd2\n", + "rayvinly/acts-as-taggable-on - id: 20707, url: https://github.com/rayvinly/acts-as-taggable-on\n", + "asacalow/asacalow.co.uk - id: 20710, url: https://github.com/asacalow/asacalow.co.uk\n", + "Madrack/test - id: 20712, url: https://github.com/Madrack/test\n", + "reedlaw/myweblog - id: 20715, url: https://github.com/reedlaw/myweblog\n", + "jezdez/django-de - id: 20717, url: https://github.com/jezdez/django-de\n", + "tonybo/3laviesync - id: 20719, url: https://github.com/tonybo/3laviesync\n", + "dokai/gitctl - id: 20721, url: https://github.com/dokai/gitctl\n", + "neo4jrb/activegraph - id: 20724, url: https://github.com/neo4jrb/activegraph\n", + "chirag/ashacache - id: 20728, url: https://github.com/chirag/ashacache\n", + "hanneswu/communityengine - id: 20731, url: https://github.com/hanneswu/communityengine\n", + "Madrack/pymail - id: 20734, url: https://github.com/Madrack/pymail\n", + "rjp/irc_muc - id: 20736, url: https://github.com/rjp/irc_muc\n", + "madx/mtest - id: 20739, url: https://github.com/madx/mtest\n", + "zmalltalker/neo4j.rb - id: 20749, url: https://github.com/zmalltalker/neo4j.rb\n", + "phred/viewsticky - id: 20751, url: https://github.com/phred/viewsticky\n", + "mhennemeyer/model_factory - id: 20758, url: https://github.com/mhennemeyer/model_factory\n", + "kbingman/paperclipped - id: 20759, url: https://github.com/kbingman/paperclipped\n", + "starpeak/prototypeui - id: 20761, url: https://github.com/starpeak/prototypeui\n", + "jrudolph/jcosmos - id: 20765, url: https://github.com/jrudolph/jcosmos\n", + "davetroy/geohash-js - id: 20768, url: https://github.com/davetroy/geohash-js\n", + "andyshearer/radiofall - id: 20773, url: https://github.com/andyshearer/radiofall\n", + "cheesytrees/june - id: 20789, url: https://github.com/cheesytrees/june\n", + "starpeak/prototypeui_plugin - id: 20790, url: https://github.com/starpeak/prototypeui_plugin\n", + "damienmckenna/contact-demo-app - id: 20794, url: https://github.com/damienmckenna/contact-demo-app\n", + "duncanbeevers/default_scope - id: 20795, url: https://github.com/duncanbeevers/default_scope\n", + "davidfstr/rdiscount - id: 20797, url: https://github.com/davidfstr/rdiscount\n", + "svenfuchs/reference_tracking - id: 20798, url: https://github.com/svenfuchs/reference_tracking\n", + "dsisnero/gdata-ruby - id: 20806, url: https://github.com/dsisnero/gdata-ruby\n", + "kevinclark/robot-army - id: 20807, url: https://github.com/kevinclark/robot-army\n", + "klingerf/fixture-scenarios - id: 20808, url: https://github.com/klingerf/fixture-scenarios\n", + "notahat/not_a_mock - id: 20810, url: https://github.com/notahat/not_a_mock\n", + "jsmilani/acts_as_solr - id: 20811, url: https://github.com/jsmilani/acts_as_solr\n", + "langalex/totally-restful-authorization - id: 20812, url: https://github.com/langalex/totally-restful-authorization\n", + "jsmilani/will_paginate - id: 20814, url: https://github.com/jsmilani/will_paginate\n", + "pragmainline/scriptaculous - id: 20823, url: https://github.com/pragmainline/scriptaculous\n", + "madrobby/sprockets - id: 20826, url: https://github.com/madrobby/sprockets\n", + "mathieul/rastman - id: 20834, url: https://github.com/mathieul/rastman\n", + "agibralter/rspec-story-tmbundle - id: 20835, url: https://github.com/agibralter/rspec-story-tmbundle\n", + "agibralter/rspec-tmbundle - id: 20836, url: https://github.com/agibralter/rspec-tmbundle\n", + "ozeias/gedit_git_branch - id: 20837, url: https://github.com/ozeias/gedit_git_branch\n", + "JackDanger/jack - id: 20840, url: https://github.com/JackDanger/jack\n", + "brendano/dlanalysis - id: 20844, url: https://github.com/brendano/dlanalysis\n", + "sandrods/new - id: 20853, url: https://github.com/sandrods/new\n", + "pwkoolj/title_case - id: 20861, url: https://github.com/pwkoolj/title_case\n", + "laisladencanta/la-isla-de-encanta - id: 20864, url: https://github.com/laisladencanta/la-isla-de-encanta\n", + "thillerson/rubyamf - id: 20872, url: https://github.com/thillerson/rubyamf\n", + "aurelian/bingnore - id: 20874, url: https://github.com/aurelian/bingnore\n", + "jathayde/maxmsplib - id: 20877, url: https://github.com/jathayde/maxmsplib\n", + "jathayde/hba_signup - id: 20891, url: https://github.com/jathayde/hba_signup\n", + "charettes/prototypeui - id: 20900, url: https://github.com/charettes/prototypeui\n", + "somebox/eavesdrop - id: 20901, url: https://github.com/somebox/eavesdrop\n", + "abhay/mochiweb.old - id: 20906, url: https://github.com/abhay/mochiweb.old\n", + "gary/dotfiles - id: 20907, url: https://github.com/gary/dotfiles\n", + "kjk/fofou - id: 20912, url: https://github.com/kjk/fofou\n", + "kastner/jeff4good - id: 20914, url: https://github.com/kastner/jeff4good\n", + "simont/snplotyper - id: 20915, url: https://github.com/simont/snplotyper\n", + "nixme/input_css - id: 20916, url: https://github.com/nixme/input_css\n", + "jathayde/richmond_sunlight - id: 20918, url: https://github.com/jathayde/richmond_sunlight\n", + "cainlevy/benchmarkforrails - id: 20926, url: https://github.com/cainlevy/benchmarkforrails\n", + "jerrett/rails_money - id: 20931, url: https://github.com/jerrett/rails_money\n", + "haruska/fb2twit - id: 20933, url: https://github.com/haruska/fb2twit\n", + "btakita/mspec - id: 20936, url: https://github.com/btakita/mspec\n", + "dbussink/dm-timeline - id: 20937, url: https://github.com/dbussink/dm-timeline\n", + "btakita/rubyspec - id: 20938, url: https://github.com/btakita/rubyspec\n", + "lachlanhardy/arduino-sketches - id: 20946, url: https://github.com/lachlanhardy/arduino-sketches\n", + "notahat/time_travel - id: 20947, url: https://github.com/notahat/time_travel\n", + "btakita/rubinius - id: 20949, url: https://github.com/btakita/rubinius\n", + "kr/async-observer - id: 20952, url: https://github.com/kr/async-observer\n", + "eagleas/webmoney - id: 20954, url: https://github.com/eagleas/webmoney\n", + "osake/rspec_on_hobo - id: 20956, url: https://github.com/osake/rspec_on_hobo\n", + "melo/github-tmbundle - id: 20960, url: https://github.com/melo/github-tmbundle\n", + "GomiHisae/chibikame - id: 20963, url: https://github.com/GomiHisae/chibikame\n", + "halorgium/erlectricity - id: 20964, url: https://github.com/halorgium/erlectricity\n", + "rija/daily-comics-python-experiment - id: 20969, url: https://github.com/rija/daily-comics-python-experiment\n", + "pptaszynski/rectblurfilter-x86 - id: 20973, url: https://github.com/pptaszynski/rectblurfilter-x86\n", + "willbryant/attachment_saver - id: 20975, url: https://github.com/willbryant/attachment_saver\n", + "ianwhite/truncate_html - id: 20976, url: https://github.com/ianwhite/truncate_html\n", + "willbryant/foreign_key_saver - id: 20977, url: https://github.com/willbryant/foreign_key_saver\n", + "kangax/proto.menu - id: 20979, url: https://github.com/kangax/proto.menu\n", + "awendt/hyggelig - id: 20981, url: https://github.com/awendt/hyggelig\n", + "markusb/pdf-create - id: 20985, url: https://github.com/markusb/pdf-create\n", + "EugZol/lilu - id: 20988, url: https://github.com/EugZol/lilu\n", + "leahneukirchen/rack - id: 20990, url: https://github.com/leahneukirchen/rack\n", + "alx/ruby-processing - id: 20992, url: https://github.com/alx/ruby-processing\n", + "mhennemeyer/rspec-dev - id: 20993, url: https://github.com/mhennemeyer/rspec-dev\n", + "fczuardi-trash/gae-rest - id: 20996, url: https://github.com/fczuardi-trash/gae-rest\n", + "Abeaudrian/insoshi - id: 20997, url: https://github.com/Abeaudrian/insoshi\n", + "jamesgolick/invisible - id: 20998, url: https://github.com/jamesgolick/invisible\n", + "pjf/sweeperbot - id: 21005, url: https://github.com/pjf/sweeperbot\n", + "jlong/serve - id: 21007, url: https://github.com/jlong/serve\n", + "pjf/autodie - id: 21009, url: https://github.com/pjf/autodie\n", + "chad/gitjour - id: 21012, url: https://github.com/chad/gitjour\n", + "pjf/ipc-system-simple - id: 21019, url: https://github.com/pjf/ipc-system-simple\n", + "dchelimsky/rubyspec - id: 21022, url: https://github.com/dchelimsky/rubyspec\n", + "tkmr/as2js - id: 21024, url: https://github.com/tkmr/as2js\n", + "dchelimsky/mspec - id: 21027, url: https://github.com/dchelimsky/mspec\n", + "scolobb/filterfs - id: 21031, url: https://github.com/scolobb/filterfs\n", + "wzph/dm-core - id: 21032, url: https://github.com/wzph/dm-core\n", + "adamhenry/p1cdoset1 - id: 21036, url: https://github.com/adamhenry/p1cdoset1\n", + "namelessjon/picture_fox - id: 21037, url: https://github.com/namelessjon/picture_fox\n", + "ninjudd/record_cache - id: 21038, url: https://github.com/ninjudd/record_cache\n", + "texasjusticar/presence - id: 21040, url: https://github.com/texasjusticar/presence\n", + "mblsha/breakpad-test - id: 21045, url: https://github.com/mblsha/breakpad-test\n", + "iwarshak/ssl_requirement - id: 21047, url: https://github.com/iwarshak/ssl_requirement\n", + "skwp/wfh - id: 21053, url: https://github.com/skwp/wfh\n", + "zerowidth/gitjour - id: 21054, url: https://github.com/zerowidth/gitjour\n", + "abedra/presentations - id: 21060, url: https://github.com/abedra/presentations\n", + "superchris/rubyjs - id: 21066, url: https://github.com/superchris/rubyjs\n", + "ntalbott/23hacks - id: 21068, url: https://github.com/ntalbott/23hacks\n", + "rlingle/github-gem - id: 21070, url: https://github.com/rlingle/github-gem\n", + "seaofclouds/pop - id: 21072, url: https://github.com/seaofclouds/pop\n", + "schleyfox/gigantron - id: 21073, url: https://github.com/schleyfox/gigantron\n", + "ggoodale/gitjour - id: 21074, url: https://github.com/ggoodale/gitjour\n", + "towski/mator - id: 21075, url: https://github.com/towski/mator\n", + "jsyedidia/nugraphdraw - id: 21078, url: https://github.com/jsyedidia/nugraphdraw\n", + "jathayde/rsm - id: 21080, url: https://github.com/jathayde/rsm\n", + "JosephPecoraro/rr - id: 21088, url: https://github.com/JosephPecoraro/rr\n", + "davidB/scala-tools-parent - id: 21091, url: https://github.com/davidB/scala-tools-parent\n", + "hornbeck/fuzed - id: 21093, url: https://github.com/hornbeck/fuzed\n", + "yariv/twoorl - id: 21096, url: https://github.com/yariv/twoorl\n", + "jamesgolick/scrawny - id: 21098, url: https://github.com/jamesgolick/scrawny\n", + "davidB/scala-maven-plugin - id: 21099, url: https://github.com/davidB/scala-maven-plugin\n", + "jhubert/ruby-date-recur - id: 21103, url: https://github.com/jhubert/ruby-date-recur\n", + "spadequack/miscellaneous-weewar-things - id: 21106, url: https://github.com/spadequack/miscellaneous-weewar-things\n", + "GUI/after_commit - id: 21108, url: https://github.com/GUI/after_commit\n", + "tobowers/motionbox-eventhandler - id: 21109, url: https://github.com/tobowers/motionbox-eventhandler\n", + "GUI/thinking-sphinx - id: 21114, url: https://github.com/GUI/thinking-sphinx\n", + "dustin/beanstalkd - id: 21117, url: https://github.com/dustin/beanstalkd\n", + "sholder/crazymonkeystyle - id: 21120, url: https://github.com/sholder/crazymonkeystyle\n", + "zenhob/modelfactory - id: 21125, url: https://github.com/zenhob/modelfactory\n", + "dimus/gni - id: 21126, url: https://github.com/dimus/gni\n", + "adkron/gitjour - id: 21130, url: https://github.com/adkron/gitjour\n", + "nicksieger/gitjour - id: 21135, url: https://github.com/nicksieger/gitjour\n", + "WardCunningham/morse - id: 21137, url: https://github.com/WardCunningham/morse\n", + "kennethlove/little-black-book - id: 21139, url: https://github.com/kennethlove/little-black-book\n", + "jakehow/multi_app_routing - id: 21142, url: https://github.com/jakehow/multi_app_routing\n", + "nkpart/scala-buildr-base - id: 21143, url: https://github.com/nkpart/scala-buildr-base\n", + "AntonyBlakey/smalltalk.tmbundle - id: 21150, url: https://github.com/AntonyBlakey/smalltalk.tmbundle\n", + "agibralter/github-tmbundle - id: 21151, url: https://github.com/agibralter/github-tmbundle\n", + "chas/golf-stats - id: 21153, url: https://github.com/chas/golf-stats\n", + "matthewfallshaw/change_tempo - id: 21154, url: https://github.com/matthewfallshaw/change_tempo\n", + "rhoiberg/radiant-event-calendar - id: 21156, url: https://github.com/rhoiberg/radiant-event-calendar\n", + "bscofield/self-flagellation - id: 21162, url: https://github.com/bscofield/self-flagellation\n", + "jmalonzo/pywebkitgtk - id: 21171, url: https://github.com/jmalonzo/pywebkitgtk\n", + "pjf/voting-condorcet-rankedpairs - id: 21173, url: https://github.com/pjf/voting-condorcet-rankedpairs\n", + "kevinclark/dust - id: 21180, url: https://github.com/kevinclark/dust\n", + "lethain/lifeflow - id: 21181, url: https://github.com/lethain/lifeflow\n", + "ngerakines/wrs - id: 21187, url: https://github.com/ngerakines/wrs\n", + "cjbottaro/without_callbacks - id: 21193, url: https://github.com/cjbottaro/without_callbacks\n", + "Kagemaru/rubybot - id: 21198, url: https://github.com/Kagemaru/rubybot\n", + "SatoshiGardener/rolerequirement - id: 21205, url: https://github.com/SatoshiGardener/rolerequirement\n", + "daveyb/flashcard - id: 21207, url: https://github.com/daveyb/flashcard\n", + "DimaD/parrot.tmbundle - id: 21212, url: https://github.com/DimaD/parrot.tmbundle\n", + "jhubert/normalize-us-street-address - id: 21216, url: https://github.com/jhubert/normalize-us-street-address\n", + "adkron/sinatratumblog - id: 21218, url: https://github.com/adkron/sinatratumblog\n", + "glguy/hpaste - id: 21224, url: https://github.com/glguy/hpaste\n", + "tuplebunny/retris - id: 21236, url: https://github.com/tuplebunny/retris\n", + "ngerakines/erlang_twitter - id: 21241, url: https://github.com/ngerakines/erlang_twitter\n", + "adambair/fu-fu - id: 21242, url: https://github.com/adambair/fu-fu\n", + "wilson/gitjour - id: 21243, url: https://github.com/wilson/gitjour\n", + "jf/feather-plugins - id: 21247, url: https://github.com/jf/feather-plugins\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "credmp/color-theme-arjen - id: 21252, url: https://github.com/credmp/color-theme-arjen\n", + "davidaff/wahoom - id: 21255, url: https://github.com/davidaff/wahoom\n", + "derhans/hartmut - id: 21262, url: https://github.com/derhans/hartmut\n", + "niko/js.tile - id: 21264, url: https://github.com/niko/js.tile\n", + "wmadden/pariah-site - id: 21267, url: https://github.com/wmadden/pariah-site\n", + "NeuroProductions/neuro-productions-source - id: 21279, url: https://github.com/NeuroProductions/neuro-productions-source\n", + "Zariel/ouf_kanne2 - id: 21282, url: https://github.com/Zariel/ouf_kanne2\n", + "subwindow/negative-captcha - id: 21308, url: https://github.com/subwindow/negative-captcha\n", + "rtaneza/malarm - id: 21321, url: https://github.com/rtaneza/malarm\n", + "pmark/jivepages - id: 21322, url: https://github.com/pmark/jivepages\n", + "auser/backcall - id: 21325, url: https://github.com/auser/backcall\n", + "dan-manges/deep-test - id: 21330, url: https://github.com/dan-manges/deep-test\n", + "tkmr/ffm - id: 21333, url: https://github.com/tkmr/ffm\n", + "jhubert/chronic - id: 21339, url: https://github.com/jhubert/chronic\n", + "Lifeplus/lifeplus - id: 21340, url: https://github.com/Lifeplus/lifeplus\n", + "wwwjscom/ir--top-k-graphs - id: 21341, url: https://github.com/wwwjscom/ir--top-k-graphs\n", + "palewire/twitter-mistadobalina - id: 21353, url: https://github.com/palewire/twitter-mistadobalina\n", + "lackac/teatime - id: 21357, url: https://github.com/lackac/teatime\n", + "lackac/prevnext - id: 21361, url: https://github.com/lackac/prevnext\n", + "lackac/callout - id: 21364, url: https://github.com/lackac/callout\n", + "kubicek/xnet_php_client - id: 21371, url: https://github.com/kubicek/xnet_php_client\n", + "cth/approximatize - id: 21379, url: https://github.com/cth/approximatize\n", + "Ramarren/opengl-text - id: 21383, url: https://github.com/Ramarren/opengl-text\n", + "zeuz/travian - id: 21386, url: https://github.com/zeuz/travian\n", + "ashanan/cosmo - id: 21390, url: https://github.com/ashanan/cosmo\n", + "ssoroka/irc-log-parser - id: 21397, url: https://github.com/ssoroka/irc-log-parser\n", + "myers/id3v2 - id: 21398, url: https://github.com/myers/id3v2\n", + "dustin/async-observer - id: 21399, url: https://github.com/dustin/async-observer\n", + "cndreisbach/tofublox - id: 21403, url: https://github.com/cndreisbach/tofublox\n", + "bru/gigolojoe - id: 21407, url: https://github.com/bru/gigolojoe\n", + "PeeDee/dh-fcgi-test - id: 21412, url: https://github.com/PeeDee/dh-fcgi-test\n", + "mutle/fu2 - id: 21414, url: https://github.com/mutle/fu2\n", + "acangiano/ruby-benchmark-suite - id: 21417, url: https://github.com/acangiano/ruby-benchmark-suite\n", + "eclecticdave/issuetracker - id: 21419, url: https://github.com/eclecticdave/issuetracker\n", + "drd/rails - id: 21423, url: https://github.com/drd/rails\n", + "maiha/dsl_accessor - id: 21429, url: https://github.com/maiha/dsl_accessor\n", + "jacius/rebirth - id: 21436, url: https://github.com/jacius/rebirth\n", + "pdorrell/keevalbak - id: 21441, url: https://github.com/pdorrell/keevalbak\n", + "ukstudio/acts_as_bits - id: 21444, url: https://github.com/ukstudio/acts_as_bits\n", + "wfarr/newskit - id: 21447, url: https://github.com/wfarr/newskit\n", + "nuance/java-nlp-utils - id: 21450, url: https://github.com/nuance/java-nlp-utils\n", + "IceskYsl/backup_fu - id: 21456, url: https://github.com/IceskYsl/backup_fu\n", + "kmeister2000/mtdweb - id: 21458, url: https://github.com/kmeister2000/mtdweb\n", + "dcolthorp/rspec - id: 21469, url: https://github.com/dcolthorp/rspec\n", + "pdxrod/clearcut - id: 21471, url: https://github.com/pdxrod/clearcut\n", + "pdorrell/localenv - id: 21473, url: https://github.com/pdorrell/localenv\n", + "tenderlove/betabrite - id: 21474, url: https://github.com/tenderlove/betabrite\n", + "hagabaka/texter - id: 21477, url: https://github.com/hagabaka/texter\n", + "richdownie/otterlodge - id: 21478, url: https://github.com/richdownie/otterlodge\n", + "ngerakines/erlang_geohash - id: 21480, url: https://github.com/ngerakines/erlang_geohash\n", + "fczuardi/teh - id: 21482, url: https://github.com/fczuardi/teh\n", + "francois/workling - id: 21483, url: https://github.com/francois/workling\n", + "msztolcman/downloads - id: 21496, url: https://github.com/msztolcman/downloads\n", + "pjf/games-everquest-loglineparser - id: 21498, url: https://github.com/pjf/games-everquest-loglineparser\n", + "tsukkee/tasko-vim - id: 21502, url: https://github.com/tsukkee/tasko-vim\n", + "saimonmoore/fiveruns_tuneup - id: 21506, url: https://github.com/saimonmoore/fiveruns_tuneup\n", + "intinig/ruby-benchmark-suite - id: 21507, url: https://github.com/intinig/ruby-benchmark-suite\n", + "diclophis/myringr - id: 21508, url: https://github.com/diclophis/myringr\n", + "digitalronin/acts_as_state_machine - id: 21517, url: https://github.com/digitalronin/acts_as_state_machine\n", + "kumo/me-money - id: 21522, url: https://github.com/kumo/me-money\n", + "tanz/ruby-on-rails-tmbundle - id: 21523, url: https://github.com/tanz/ruby-on-rails-tmbundle\n", + "shachi/plugindb - id: 21525, url: https://github.com/shachi/plugindb\n", + "melo/search-in-project-with-ack-tmcommand - id: 21526, url: https://github.com/melo/search-in-project-with-ack-tmcommand\n", + "koenigm/hartmut - id: 21537, url: https://github.com/koenigm/hartmut\n", + "ismasan/webrat - id: 21540, url: https://github.com/ismasan/webrat\n", + "gyulalaszlo/continuous_scroller_js - id: 21542, url: https://github.com/gyulalaszlo/continuous_scroller_js\n", + "ismasan/acts_as_taggable_on_steroids - id: 21552, url: https://github.com/ismasan/acts_as_taggable_on_steroids\n", + "ariya/screenie - id: 21553, url: https://github.com/ariya/screenie\n", + "icarusz/habitizer - id: 21558, url: https://github.com/icarusz/habitizer\n", + "hanneswu/insoshi - id: 21568, url: https://github.com/hanneswu/insoshi\n", + "amoore/sms--send--us--ipipi - id: 21571, url: https://github.com/amoore/sms--send--us--ipipi\n", + "cccarey/dotnetxmlswfchart - id: 21574, url: https://github.com/cccarey/dotnetxmlswfchart\n", + "joelw/database_form - id: 21576, url: https://github.com/joelw/database_form\n", + "jandot/ruby-ucsc-api - id: 21585, url: https://github.com/jandot/ruby-ucsc-api\n", + "jarkko/dm-core - id: 21586, url: https://github.com/jarkko/dm-core\n", + "72squared/glu-php - id: 21589, url: https://github.com/72squared/glu-php\n", + "sketerpot/verilog-mangler - id: 21590, url: https://github.com/sketerpot/verilog-mangler\n", + "diasjorge/bash-completion-extras - id: 21607, url: https://github.com/diasjorge/bash-completion-extras\n", + "dbora/mephisto - id: 21608, url: https://github.com/dbora/mephisto\n", + "mvdetsen/mvdetsen - id: 21611, url: https://github.com/mvdetsen/mvdetsen\n", + "roddotnet/clearcut - id: 21626, url: https://github.com/roddotnet/clearcut\n", + "mikeweber/restful-textmate-bundle - id: 21627, url: https://github.com/mikeweber/restful-textmate-bundle\n", + "cmorss/dm-core - id: 21632, url: https://github.com/cmorss/dm-core\n", + "nogoth/gitjour - id: 21640, url: https://github.com/nogoth/gitjour\n", + "veganstraightedge/htmldog - id: 21644, url: https://github.com/veganstraightedge/htmldog\n", + "oneman/rawdod - id: 21647, url: https://github.com/oneman/rawdod\n", + "golgote/frigo - id: 21650, url: https://github.com/golgote/frigo\n", + "mbleigh/subdomain-fu - id: 21653, url: https://github.com/mbleigh/subdomain-fu\n", + "u196598/insoshi - id: 21668, url: https://github.com/u196598/insoshi\n", + "chanceagency/chance - id: 21670, url: https://github.com/chanceagency/chance\n", + "duncanbeevers/prototype - id: 21671, url: https://github.com/duncanbeevers/prototype\n", + "andyh/typo3-automation - id: 21680, url: https://github.com/andyh/typo3-automation\n", + "pelargir/ocadia_mephisto - id: 21684, url: https://github.com/pelargir/ocadia_mephisto\n", + "methodmissing/rails - id: 21686, url: https://github.com/methodmissing/rails\n", + "DarkSwoop/attachment_fu_hacks - id: 21687, url: https://github.com/DarkSwoop/attachment_fu_hacks\n", + "FooBarWidget/rubyenterpriseedition - id: 21688, url: https://github.com/FooBarWidget/rubyenterpriseedition\n", + "peter123/rails - id: 21689, url: https://github.com/peter123/rails\n", + "edavis10/redmine - id: 21692, url: https://github.com/edavis10/redmine\n", + "rfunduk/flot - id: 21694, url: https://github.com/rfunduk/flot\n", + "PeeDee/timeline - id: 21701, url: https://github.com/PeeDee/timeline\n", + "robmckinnon/rugalytics - id: 21703, url: https://github.com/robmckinnon/rugalytics\n", + "scott-steadman/exception_reporter - id: 21709, url: https://github.com/scott-steadman/exception_reporter\n", + "matschaffer/simpleinvoicing - id: 21714, url: https://github.com/matschaffer/simpleinvoicing\n", + "yob/pdf-reader - id: 21716, url: https://github.com/yob/pdf-reader\n", + "webmat/git_remote_branch - id: 21719, url: https://github.com/webmat/git_remote_branch\n", + "jstewart/system_messages - id: 21720, url: https://github.com/jstewart/system_messages\n", + "riddochc/rubypdb - id: 21728, url: https://github.com/riddochc/rubypdb\n", + "testwinuser/mydocuments - id: 21735, url: https://github.com/testwinuser/mydocuments\n", + "aemoncannon/as3-mode - id: 21736, url: https://github.com/aemoncannon/as3-mode\n", + "drnic/gitjour - id: 21737, url: https://github.com/drnic/gitjour\n", + "chaupt/rakismet - id: 21739, url: https://github.com/chaupt/rakismet\n", + "francois/github-fogbugz - id: 21745, url: https://github.com/francois/github-fogbugz\n", + "superpea/xbmc-fork - id: 21747, url: https://github.com/superpea/xbmc-fork\n", + "jmettraux/rogue_parser - id: 21749, url: https://github.com/jmettraux/rogue_parser\n", + "barto/agility2 - id: 21750, url: https://github.com/barto/agility2\n", + "infews/amaz.infews - id: 21758, url: https://github.com/infews/amaz.infews\n", + "xauz/poignant-br - id: 21765, url: https://github.com/xauz/poignant-br\n", + "mernen/json-jruby - id: 21766, url: https://github.com/mernen/json-jruby\n", + "kommen/quikiee - id: 21778, url: https://github.com/kommen/quikiee\n", + "dmilith/dsipcom - id: 21779, url: https://github.com/dmilith/dsipcom\n", + "dongbin/my_emacs - id: 21791, url: https://github.com/dongbin/my_emacs\n", + "emir-xx/emir - id: 21793, url: https://github.com/emir-xx/emir\n", + "stan/asaph - id: 21796, url: https://github.com/stan/asaph\n", + "chrisa/ruby-dtrace - id: 21804, url: https://github.com/chrisa/ruby-dtrace\n", + "kadamski/certmaster - id: 21805, url: https://github.com/kadamski/certmaster\n", + "freshtonic/undarcs - id: 21810, url: https://github.com/freshtonic/undarcs\n", + "woochica/home - id: 21811, url: https://github.com/woochica/home\n", + "sudara/scripty2 - id: 21821, url: https://github.com/sudara/scripty2\n", + "smallone/astrowars-proxy - id: 21824, url: https://github.com/smallone/astrowars-proxy\n", + "bdarcus/mysite - id: 21825, url: https://github.com/bdarcus/mysite\n", + "thoughtbot/factory_bot - id: 21829, url: https://github.com/thoughtbot/factory_bot\n", + "vitaliel/stage_demo - id: 21831, url: https://github.com/vitaliel/stage_demo\n", + "dslife/blog-starter-kit - id: 21833, url: https://github.com/dslife/blog-starter-kit\n", + "verdurin/bioimagelogin - id: 21834, url: https://github.com/verdurin/bioimagelogin\n", + "cpjolicoeur/bb-ruby - id: 21840, url: https://github.com/cpjolicoeur/bb-ruby\n", + "elim/dotemacs - id: 21841, url: https://github.com/elim/dotemacs\n", + "edgarjs/ajaxful-rating - id: 21853, url: https://github.com/edgarjs/ajaxful-rating\n", + "edgarjs/readable-numbers - id: 21856, url: https://github.com/edgarjs/readable-numbers\n", + "edgarjs/validates-as-clabe - id: 21858, url: https://github.com/edgarjs/validates-as-clabe\n", + "edgarjs/youtube-model - id: 21860, url: https://github.com/edgarjs/youtube-model\n", + "david/minibot - id: 21863, url: https://github.com/david/minibot\n", + "jasherai/jquery-microformats - id: 21869, url: https://github.com/jasherai/jquery-microformats\n", + "ujihisa/vim-flymake - id: 21873, url: https://github.com/ujihisa/vim-flymake\n", + "drongous/ems - id: 21875, url: https://github.com/drongous/ems\n", + "rjeffries/rj-test - id: 21876, url: https://github.com/rjeffries/rj-test\n", + "duncanbeevers/swf_object_helper - id: 21879, url: https://github.com/duncanbeevers/swf_object_helper\n", + "min/datepicker-fu - id: 21894, url: https://github.com/min/datepicker-fu\n", + "h1labs/dm-observers - id: 21900, url: https://github.com/h1labs/dm-observers\n", + "ZungBang/undbx - id: 21902, url: https://github.com/ZungBang/undbx\n", + "imagine/nextmeeting - id: 21911, url: https://github.com/imagine/nextmeeting\n", + "pnowak2/globalite - id: 21916, url: https://github.com/pnowak2/globalite\n", + "simojenki/letterbox - id: 21918, url: https://github.com/simojenki/letterbox\n", + "mikehale/icalextractor - id: 21919, url: https://github.com/mikehale/icalextractor\n", + "jbarnette/pastejour - id: 21922, url: https://github.com/jbarnette/pastejour\n", + "chmurph2/tilda-bin - id: 21924, url: https://github.com/chmurph2/tilda-bin\n", + "ihower/validates_url_of - id: 21931, url: https://github.com/ihower/validates_url_of\n", + "nickludlam/ruby-mythtv - id: 21932, url: https://github.com/nickludlam/ruby-mythtv\n", + "engineyard/vertebra-erl - id: 21933, url: https://github.com/engineyard/vertebra-erl\n", + "drongo/drongo - id: 21934, url: https://github.com/drongo/drongo\n", + "tmm1/xmpp4em - id: 21939, url: https://github.com/tmm1/xmpp4em\n", + "imedo/thc2 - id: 21940, url: https://github.com/imedo/thc2\n", + "rubber/rubber - id: 21950, url: https://github.com/rubber/rubber\n", + "taf2/nginx-esi - id: 21971, url: https://github.com/taf2/nginx-esi\n", + "pdsphil/ruby-whatcounts - id: 21986, url: https://github.com/pdsphil/ruby-whatcounts\n", + "nachof/augosite - id: 21991, url: https://github.com/nachof/augosite\n", + "etiquettedude/etiquette - id: 21993, url: https://github.com/etiquettedude/etiquette\n", + "martinstannard/processing - id: 22004, url: https://github.com/martinstannard/processing\n", + "texel/gchart - id: 22013, url: https://github.com/texel/gchart\n", + "kr/curl-multi - id: 22018, url: https://github.com/kr/curl-multi\n", + "imkite/system_messages - id: 22019, url: https://github.com/imkite/system_messages\n", + "imkite/acts_as_dismissible - id: 22023, url: https://github.com/imkite/acts_as_dismissible\n", + "datafirm/test - id: 22032, url: https://github.com/datafirm/test\n", + "trak3r/openvpn-for-os-x-start-up-on-boot - id: 22040, url: https://github.com/trak3r/openvpn-for-os-x-start-up-on-boot\n", + "dfl/factories-and-workers - id: 22041, url: https://github.com/dfl/factories-and-workers\n", + "mrflip/htmlentities - id: 22044, url: https://github.com/mrflip/htmlentities\n", + "typester/flight - id: 22045, url: https://github.com/typester/flight\n", + "nogoth/pastejour - id: 22048, url: https://github.com/nogoth/pastejour\n", + "atmos/yardbull - id: 22056, url: https://github.com/atmos/yardbull\n", + "alexvollmer/gitjour - id: 22061, url: https://github.com/alexvollmer/gitjour\n", + "hygkui/ffsion-cn - id: 22066, url: https://github.com/hygkui/ffsion-cn\n", + "joho/rspec_xml_validation_matchers - id: 22067, url: https://github.com/joho/rspec_xml_validation_matchers\n", + "activescaffold/active_scaffold_sortable_demo - id: 22081, url: https://github.com/activescaffold/active_scaffold_sortable_demo\n", + "bdainton/camptweet - id: 22088, url: https://github.com/bdainton/camptweet\n", + "evanphx/gemjour - id: 22091, url: https://github.com/evanphx/gemjour\n", + "ubermajestix/rentmappr - id: 22092, url: https://github.com/ubermajestix/rentmappr\n", + "jeffrafter/xmlrpc - id: 22100, url: https://github.com/jeffrafter/xmlrpc\n", + "mza/sprolog - id: 22102, url: https://github.com/mza/sprolog\n", + "jeffrafter/supersonic - id: 22104, url: https://github.com/jeffrafter/supersonic\n", + "nogoth/gemjour - id: 22105, url: https://github.com/nogoth/gemjour\n", + "winton/studicious_coming_soon - id: 22109, url: https://github.com/winton/studicious_coming_soon\n", + "drnic/gemjour - id: 22113, url: https://github.com/drnic/gemjour\n", + "jf/feather - id: 22117, url: https://github.com/jf/feather\n", + "jnicklas/gibberish_attributes - id: 22118, url: https://github.com/jnicklas/gibberish_attributes\n", + "alip/paludis-utils - id: 22129, url: https://github.com/alip/paludis-utils\n", + "xdite/twitio.us - id: 22130, url: https://github.com/xdite/twitio.us\n", + "matthewtodd/doh - id: 22131, url: https://github.com/matthewtodd/doh\n", + "matthewtodd/joyent_deployment - id: 22137, url: https://github.com/matthewtodd/joyent_deployment\n", + "edbond/erlang - id: 22140, url: https://github.com/edbond/erlang\n", + "matthewtodd/perquackey - id: 22144, url: https://github.com/matthewtodd/perquackey\n", + "josephwilk/semanticpy - id: 22145, url: https://github.com/josephwilk/semanticpy\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "paulauskas/wsu - id: 22148, url: https://github.com/paulauskas/wsu\n", + "matthewtodd/wordpress-release - id: 22150, url: https://github.com/matthewtodd/wordpress-release\n", + "tinogomes/atalhos-para-rails - id: 22155, url: https://github.com/tinogomes/atalhos-para-rails\n", + "nsf/bmpanel - id: 22156, url: https://github.com/nsf/bmpanel\n", + "myobie/factories-and-workers - id: 22162, url: https://github.com/myobie/factories-and-workers\n", + "superisaac/rainy - id: 22164, url: https://github.com/superisaac/rainy\n", + "Venut/thesandbox - id: 22173, url: https://github.com/Venut/thesandbox\n", + "ruphy/screenie - id: 22176, url: https://github.com/ruphy/screenie\n", + "ruphy/speedcrunch - id: 22177, url: https://github.com/ruphy/speedcrunch\n", + "jugyo/rail_data_converter - id: 22183, url: https://github.com/jugyo/rail_data_converter\n", + "mikE83/salva - id: 22190, url: https://github.com/mikE83/salva\n", + "harrisj/dm-dbslayer - id: 22197, url: https://github.com/harrisj/dm-dbslayer\n", + "reinh/idiomatic-ruby - id: 22199, url: https://github.com/reinh/idiomatic-ruby\n", + "ddollar/remember-the-ruby - id: 22201, url: https://github.com/ddollar/remember-the-ruby\n", + "ddollar/preferences - id: 22204, url: https://github.com/ddollar/preferences\n", + "kehh/gna-ror - id: 22206, url: https://github.com/kehh/gna-ror\n", + "ltackett/sass-blueprint-grid-generator - id: 22208, url: https://github.com/ltackett/sass-blueprint-grid-generator\n", + "mjcaboose/test - id: 22212, url: https://github.com/mjcaboose/test\n", + "sloser/emuonrails - id: 22213, url: https://github.com/sloser/emuonrails\n", + "aasmith/feed-normalizer - id: 22221, url: https://github.com/aasmith/feed-normalizer\n", + "magagnon/rspec - id: 22222, url: https://github.com/magagnon/rspec\n", + "daviruiz/nobre - id: 22224, url: https://github.com/daviruiz/nobre\n", + "vfiodor/recaptcha - id: 22230, url: https://github.com/vfiodor/recaptcha\n", + "nixme/attribute_fu - id: 22231, url: https://github.com/nixme/attribute_fu\n", + "rkoby/insoshi - id: 22238, url: https://github.com/rkoby/insoshi\n", + "adelcambre/authenticated_rss_proxy - id: 22242, url: https://github.com/adelcambre/authenticated_rss_proxy\n", + "rks/application_support - id: 22245, url: https://github.com/rks/application_support\n", + "credmp/worklog - id: 22248, url: https://github.com/credmp/worklog\n", + "chris/auto_complete_jquery - id: 22252, url: https://github.com/chris/auto_complete_jquery\n", + "paulbersch/python-simple-blog - id: 22255, url: https://github.com/paulbersch/python-simple-blog\n", + "langalex/local_cache - id: 22259, url: https://github.com/langalex/local_cache\n", + "nuxlli/asset_packager - id: 22261, url: https://github.com/nuxlli/asset_packager\n", + "adamhooper/memoizer - id: 22262, url: https://github.com/adamhooper/memoizer\n", + "brendanjerwin/emcrepstrap - id: 22268, url: https://github.com/brendanjerwin/emcrepstrap\n", + "svenfuchs/adva_cms - id: 22278, url: https://github.com/svenfuchs/adva_cms\n", + "Bjwebb/freedometer - id: 22281, url: https://github.com/Bjwebb/freedometer\n", + "jgross/acts_as_linkable - id: 22283, url: https://github.com/jgross/acts_as_linkable\n", + "aughey/isandy - id: 22285, url: https://github.com/aughey/isandy\n", + "daniel-kun/xstartonce - id: 22288, url: https://github.com/daniel-kun/xstartonce\n", + "mvaz/matlabgraffle - id: 22297, url: https://github.com/mvaz/matlabgraffle\n", + "Nguma/old_nuniverse - id: 22298, url: https://github.com/Nguma/old_nuniverse\n", + "lnussbaum/xmpp4r - id: 22305, url: https://github.com/lnussbaum/xmpp4r\n", + "shuber/authentication - id: 22311, url: https://github.com/shuber/authentication\n", + "shuber/authorization - id: 22313, url: https://github.com/shuber/authorization\n", + "shuber/subdomain_account - id: 22315, url: https://github.com/shuber/subdomain_account\n", + "mhennemeyer/bulk_management_example - id: 22318, url: https://github.com/mhennemeyer/bulk_management_example\n", + "bumi/gettext2db - id: 22320, url: https://github.com/bumi/gettext2db\n", + "jnicklas/eb_nested_set - id: 22321, url: https://github.com/jnicklas/eb_nested_set\n", + "ryantm/staticmatic - id: 22343, url: https://github.com/ryantm/staticmatic\n", + "tenderlove/dejour - id: 22345, url: https://github.com/tenderlove/dejour\n", + "eadz/restful-authentication - id: 22346, url: https://github.com/eadz/restful-authentication\n", + "poe/hotdate - id: 22348, url: https://github.com/poe/hotdate\n", + "neomindryan/mp4maker - id: 22349, url: https://github.com/neomindryan/mp4maker\n", + "nitenichiryu/rubyenterpriseedition - id: 22353, url: https://github.com/nitenichiryu/rubyenterpriseedition\n", + "nitenichiryu/passenger - id: 22355, url: https://github.com/nitenichiryu/passenger\n", + "trogdoro/xiki - id: 22361, url: https://github.com/trogdoro/xiki\n", + "loe/github-commit-email - id: 22369, url: https://github.com/loe/github-commit-email\n", + "engineyard/vertebra-rb - id: 22381, url: https://github.com/engineyard/vertebra-rb\n", + "engineyard/xmpp4em - id: 22382, url: https://github.com/engineyard/xmpp4em\n", + "qwzybug/junebug - id: 22386, url: https://github.com/qwzybug/junebug\n", + "apeiros/chronos - id: 22387, url: https://github.com/apeiros/chronos\n", + "tehcurtis/rplatform - id: 22388, url: https://github.com/tehcurtis/rplatform\n", + "ruport/ruport - id: 22389, url: https://github.com/ruport/ruport\n", + "guan/active_scaffold_demo - id: 22398, url: https://github.com/guan/active_scaffold_demo\n", + "cannikin/watchmemakethis - id: 22399, url: https://github.com/cannikin/watchmemakethis\n", + "wfarr/telepathy-mission-control-sharp - id: 22402, url: https://github.com/wfarr/telepathy-mission-control-sharp\n", + "rschroed/whole - id: 22403, url: https://github.com/rschroed/whole\n", + "thewoolleyman/lightningtalk_geminstaller - id: 22411, url: https://github.com/thewoolleyman/lightningtalk_geminstaller\n", + "jeppster/xbmc-fork - id: 22415, url: https://github.com/jeppster/xbmc-fork\n", + "jazongreat/zencart-1.3.8-danish - id: 22418, url: https://github.com/jazongreat/zencart-1.3.8-danish\n", + "kkubasik/neumont-photo - id: 22419, url: https://github.com/kkubasik/neumont-photo\n", + "vasvlad/pomni - id: 22421, url: https://github.com/vasvlad/pomni\n", + "choonkeat/better_scaffold - id: 22422, url: https://github.com/choonkeat/better_scaffold\n", + "brushbox/sequel - id: 22428, url: https://github.com/brushbox/sequel\n", + "we5/test-spec-tmbundle - id: 22438, url: https://github.com/we5/test-spec-tmbundle\n", + "choonkeat/krjs - id: 22442, url: https://github.com/choonkeat/krjs\n", + "choonkeat/web_sg_form_builder - id: 22444, url: https://github.com/choonkeat/web_sg_form_builder\n", + "maiha/include_for - id: 22448, url: https://github.com/maiha/include_for\n", + "maiha/named_options - id: 22449, url: https://github.com/maiha/named_options\n", + "taweili/renren - id: 22466, url: https://github.com/taweili/renren\n", + "tomafro/dotfiles - id: 22467, url: https://github.com/tomafro/dotfiles\n", + "joerichsen/slow_request_notification - id: 22469, url: https://github.com/joerichsen/slow_request_notification\n", + "Pavel-xx/pomni - id: 22473, url: https://github.com/Pavel-xx/pomni\n", + "DimaD/lilu - id: 22475, url: https://github.com/DimaD/lilu\n", + "skrat/radiant-metaweblog-extension - id: 22476, url: https://github.com/skrat/radiant-metaweblog-extension\n", + "andreyvit/yoursway-projectsync - id: 22478, url: https://github.com/andreyvit/yoursway-projectsync\n", + "newzealandpaul/facebox - id: 22479, url: https://github.com/newzealandpaul/facebox\n", + "geoffgarside/server-scripts - id: 22482, url: https://github.com/geoffgarside/server-scripts\n", + "azambuja/pagerankmapreduce - id: 22489, url: https://github.com/azambuja/pagerankmapreduce\n", + "dams/curses-toolkit - id: 22493, url: https://github.com/dams/curses-toolkit\n", + "ihower/acts_as_state_pattern - id: 22494, url: https://github.com/ihower/acts_as_state_pattern\n", + "ujihisa/quickrun - id: 22497, url: https://github.com/ujihisa/quickrun\n", + "taq/vim-git-branch-info - id: 22499, url: https://github.com/taq/vim-git-branch-info\n", + "nesquena/conditions_fu - id: 22500, url: https://github.com/nesquena/conditions_fu\n", + "soemirno/timesheets - id: 22503, url: https://github.com/soemirno/timesheets\n", + "anselmo/god - id: 22505, url: https://github.com/anselmo/god\n", + "brownsm/capistrano-bells - id: 22508, url: https://github.com/brownsm/capistrano-bells\n", + "pierrevalade/trackit - id: 22518, url: https://github.com/pierrevalade/trackit\n", + "jetspeed/emacs - id: 22521, url: https://github.com/jetspeed/emacs\n", + "matthieup/config - id: 22522, url: https://github.com/matthieup/config\n", + "sschroed/restful_ezm - id: 22523, url: https://github.com/sschroed/restful_ezm\n", + "weisjohn/neumont-photo - id: 22524, url: https://github.com/weisjohn/neumont-photo\n", + "takai/twitty-console - id: 22525, url: https://github.com/takai/twitty-console\n", + "thilo/social_feed - id: 22527, url: https://github.com/thilo/social_feed\n", + "martinbtt/userstamp - id: 22543, url: https://github.com/martinbtt/userstamp\n", + "thillerson/shoulda - id: 22548, url: https://github.com/thillerson/shoulda\n", + "bhuga/capistrano - id: 22551, url: https://github.com/bhuga/capistrano\n", + "bhuga/net-ssh - id: 22559, url: https://github.com/bhuga/net-ssh\n", + "irjudson/bozon - id: 22566, url: https://github.com/irjudson/bozon\n", + "tc-/mars - id: 22570, url: https://github.com/tc-/mars\n", + "ruport/ruport-util - id: 22571, url: https://github.com/ruport/ruport-util\n", + "kuroshiro/tourguide - id: 22575, url: https://github.com/kuroshiro/tourguide\n", + "bhuga/net-ssh-gateway - id: 22576, url: https://github.com/bhuga/net-ssh-gateway\n", + "ruport/acts_as_reportable - id: 22578, url: https://github.com/ruport/acts_as_reportable\n", + "ruport/murdoch - id: 22580, url: https://github.com/ruport/murdoch\n", + "sporkmonger/addressable - id: 22601, url: https://github.com/sporkmonger/addressable\n", + "Pluto-zz/aipluto - id: 22603, url: https://github.com/Pluto-zz/aipluto\n", + "abhay/skydeck - id: 22610, url: https://github.com/abhay/skydeck\n", + "niko/dot.t - id: 22613, url: https://github.com/niko/dot.t\n", + "hypomodern/prototype_humanized_messages - id: 22623, url: https://github.com/hypomodern/prototype_humanized_messages\n", + "tenderlove/meow - id: 22630, url: https://github.com/tenderlove/meow\n", + "hypomodern/prototype_filtered_table - id: 22631, url: https://github.com/hypomodern/prototype_filtered_table\n", + "Shopify/vision - id: 22643, url: https://github.com/Shopify/vision\n", + "Pluto-zz/test - id: 22644, url: https://github.com/Pluto-zz/test\n", + "pangloss/cache_fu - id: 22650, url: https://github.com/pangloss/cache_fu\n", + "nimbletechnique/did-my-team-win - id: 22655, url: https://github.com/nimbletechnique/did-my-team-win\n", + "jdamick/jetty-rails - id: 22662, url: https://github.com/jdamick/jetty-rails\n", + "clarabstract/rails - id: 22670, url: https://github.com/clarabstract/rails\n", + "loe/hypodermic - id: 22671, url: https://github.com/loe/hypodermic\n", + "flogic/ultraspinx - id: 22673, url: https://github.com/flogic/ultraspinx\n", + "sticks/weewar.net - id: 22685, url: https://github.com/sticks/weewar.net\n", + "jbarnette/dr-nic-magic-awesome - id: 22697, url: https://github.com/jbarnette/dr-nic-magic-awesome\n", + "averyj/ramazon - id: 22698, url: https://github.com/averyj/ramazon\n", + "evanphx/dr-nic-magic-awesome - id: 22699, url: https://github.com/evanphx/dr-nic-magic-awesome\n", + "wycats/dr-nic-magic-awesome - id: 22703, url: https://github.com/wycats/dr-nic-magic-awesome\n", + "dball/acts_as_calendar - id: 22705, url: https://github.com/dball/acts_as_calendar\n", + "stevenbristol/dr-nic-magic-awesome - id: 22706, url: https://github.com/stevenbristol/dr-nic-magic-awesome\n", + "iboard/iboard_obsolete - id: 22712, url: https://github.com/iboard/iboard_obsolete\n", + "schacon/fuzec2 - id: 22714, url: https://github.com/schacon/fuzec2\n", + "qwzybug/camping - id: 22715, url: https://github.com/qwzybug/camping\n", + "scrooloose/archangel - id: 22722, url: https://github.com/scrooloose/archangel\n", + "Arora/arora - id: 22729, url: https://github.com/Arora/arora\n", + "psycotica0/xopulse - id: 22734, url: https://github.com/psycotica0/xopulse\n", + "drnic/dr-nic-magic-awesome - id: 22737, url: https://github.com/drnic/dr-nic-magic-awesome\n", + "tmm1/god - id: 22739, url: https://github.com/tmm1/god\n", + "pol/bozon - id: 22741, url: https://github.com/pol/bozon\n", + "onehub/contacts - id: 22743, url: https://github.com/onehub/contacts\n", + "nam/ltt - id: 22744, url: https://github.com/nam/ltt\n", + "clee/rump - id: 22758, url: https://github.com/clee/rump\n", + "Oshuma/gambler - id: 22761, url: https://github.com/Oshuma/gambler\n", + "zacclark/Balor - id: 22769, url: https://github.com/zacclark/Balor\n", + "jmettraux/reshell - id: 22772, url: https://github.com/jmettraux/reshell\n", + "ajsharp/mass_assignment_murderer - id: 22777, url: https://github.com/ajsharp/mass_assignment_murderer\n", + "bellroy/radiant-compress-css-filter-extension - id: 22781, url: https://github.com/bellroy/radiant-compress-css-filter-extension\n", + "janmejay/nested_has_many_through - id: 22785, url: https://github.com/janmejay/nested_has_many_through\n", + "bellroy/radiant-trike-tags-extension - id: 22790, url: https://github.com/bellroy/radiant-trike-tags-extension\n", + "francois/clip - id: 22794, url: https://github.com/francois/clip\n", + "ahoward/codeforpeople - id: 22797, url: https://github.com/ahoward/codeforpeople\n", + "mikkel/irrklangrb - id: 22804, url: https://github.com/mikkel/irrklangrb\n", + "pellucidity/rank_fu - id: 22823, url: https://github.com/pellucidity/rank_fu\n", + "marcel/aws-s3 - id: 22826, url: https://github.com/marcel/aws-s3\n", + "mootoh/qc_gainer - id: 22833, url: https://github.com/mootoh/qc_gainer\n", + "sleistner/burnify - id: 22837, url: https://github.com/sleistner/burnify\n", + "sleistner/migration_fu - id: 22844, url: https://github.com/sleistner/migration_fu\n", + "gtlabs/as3socialbookmarking - id: 22847, url: https://github.com/gtlabs/as3socialbookmarking\n", + "toshiki/abyssinian - id: 22849, url: https://github.com/toshiki/abyssinian\n", + "rormonitex/alonetone - id: 22850, url: https://github.com/rormonitex/alonetone\n", + "nilaccount/validates_existence_of - id: 22855, url: https://github.com/nilaccount/validates_existence_of\n", + "saimonmoore/jsjac - id: 22863, url: https://github.com/saimonmoore/jsjac\n", + "darren/xmpp4r - id: 22865, url: https://github.com/darren/xmpp4r\n", + "FrederikVernelen/gst-openmax - id: 22870, url: https://github.com/FrederikVernelen/gst-openmax\n", + "toretore/siegfried - id: 22872, url: https://github.com/toretore/siegfried\n", + "ropiku/validatesexistanceof - id: 22874, url: https://github.com/ropiku/validatesexistanceof\n", + "sschroed/validates_unlike - id: 22875, url: https://github.com/sschroed/validates_unlike\n", + "takkaw/peepit - id: 22880, url: https://github.com/takkaw/peepit\n", + "ceyusa/ytv - id: 22884, url: https://github.com/ceyusa/ytv\n", + "mootoh/gainer_plusplus - id: 22893, url: https://github.com/mootoh/gainer_plusplus\n", + "stuarthalloway/bad-ruby - id: 22894, url: https://github.com/stuarthalloway/bad-ruby\n", + "mootoh/socketreaderplugin - id: 22896, url: https://github.com/mootoh/socketreaderplugin\n", + "samuraixx/rookie - id: 22898, url: https://github.com/samuraixx/rookie\n", + "raul/translate_routes - id: 22906, url: https://github.com/raul/translate_routes\n", + "mootoh/qs_rubycocoa - id: 22911, url: https://github.com/mootoh/qs_rubycocoa\n", + "mootoh/QSTweet - id: 22912, url: https://github.com/mootoh/QSTweet\n", + "trac-hacks/ticket2rtm - id: 22913, url: https://github.com/trac-hacks/ticket2rtm\n", + "mootoh/id_availability - id: 22915, url: https://github.com/mootoh/id_availability\n", + "mootoh/wp_calendar_cloud - id: 22916, url: https://github.com/mootoh/wp_calendar_cloud\n", + "doon/mod_sql_tds - id: 22922, url: https://github.com/doon/mod_sql_tds\n", + "slagyr/limelight - id: 22927, url: https://github.com/slagyr/limelight\n", + "kpumuk/assetpackager.net - id: 22933, url: https://github.com/kpumuk/assetpackager.net\n", + "grigio/shortcut-notifier - id: 22938, url: https://github.com/grigio/shortcut-notifier\n", + "ericallam/merb-oauth - id: 22940, url: https://github.com/ericallam/merb-oauth\n", + "matschaffer/fakemail - id: 22942, url: https://github.com/matschaffer/fakemail\n", + "rheimbuch/iauthu - id: 22946, url: https://github.com/rheimbuch/iauthu\n", + "carlosbrando/rails21-book - id: 22952, url: https://github.com/carlosbrando/rails21-book\n", + "rahulbahuguna/communityengine - id: 22957, url: https://github.com/rahulbahuguna/communityengine\n", + "dbravender/twoorl - id: 22971, url: https://github.com/dbravender/twoorl\n", + "ericjohniglesia/alonetone - id: 22977, url: https://github.com/ericjohniglesia/alonetone\n", + "lilyball/ruby_diff - id: 22980, url: https://github.com/lilyball/ruby_diff\n", + "florian-zz/terminverwaltunggae - id: 22983, url: https://github.com/florian-zz/terminverwaltunggae\n", + "wuputah/active_scaffold - id: 22987, url: https://github.com/wuputah/active_scaffold\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cndreisbach/active_files - id: 22993, url: https://github.com/cndreisbach/active_files\n", + "bpeel/clutter-md2 - id: 23003, url: https://github.com/bpeel/clutter-md2\n", + "bpeel/tractordodge - id: 23008, url: https://github.com/bpeel/tractordodge\n", + "heythisisnate/globalize - id: 23016, url: https://github.com/heythisisnate/globalize\n", + "chrisjpowers/iterm_window - id: 23018, url: https://github.com/chrisjpowers/iterm_window\n", + "carlosbrando/rails21-book-br - id: 23019, url: https://github.com/carlosbrando/rails21-book-br\n", + "elskwid/munger - id: 23028, url: https://github.com/elskwid/munger\n", + "timothykim/hcsuzukiviolin.com - id: 23031, url: https://github.com/timothykim/hcsuzukiviolin.com\n", + "methodmissing/tester_xtreme - id: 23039, url: https://github.com/methodmissing/tester_xtreme\n", + "quirkey/attachment_fu - id: 23040, url: https://github.com/quirkey/attachment_fu\n", + "jamesarosen/rcal - id: 23041, url: https://github.com/jamesarosen/rcal\n", + "brennandunn/ozark - id: 23046, url: https://github.com/brennandunn/ozark\n", + "bryanjswift/mootools-core - id: 23049, url: https://github.com/bryanjswift/mootools-core\n", + "agentcoops/gridsweeper - id: 23050, url: https://github.com/agentcoops/gridsweeper\n", + "adamwiggins/rack - id: 23056, url: https://github.com/adamwiggins/rack\n", + "dima/restfulx_framework - id: 23064, url: https://github.com/dima/restfulx_framework\n", + "wycats/w3c-dom - id: 23066, url: https://github.com/wycats/w3c-dom\n", + "adamhenry/mslg2 - id: 23070, url: https://github.com/adamhenry/mslg2\n", + "dcolthorp/objectdiff - id: 23073, url: https://github.com/dcolthorp/objectdiff\n", + "jicksta/adhearsion - id: 23076, url: https://github.com/jicksta/adhearsion\n", + "auser/rubber - id: 23083, url: https://github.com/auser/rubber\n", + "eklitzke/splogger - id: 23090, url: https://github.com/eklitzke/splogger\n", + "bellmyer/settings - id: 23091, url: https://github.com/bellmyer/settings\n", + "chris/cruisecontrolrb_perforce - id: 23093, url: https://github.com/chris/cruisecontrolrb_perforce\n", + "edwinmoss/rfpdf - id: 23095, url: https://github.com/edwinmoss/rfpdf\n", + "edwinmoss/active_scaffold_localize - id: 23098, url: https://github.com/edwinmoss/active_scaffold_localize\n", + "Gazer/falta-uno - id: 23106, url: https://github.com/Gazer/falta-uno\n", + "anthonybarone/merb-more - id: 23110, url: https://github.com/anthonybarone/merb-more\n", + "Shadowfiend/headerize - id: 23111, url: https://github.com/Shadowfiend/headerize\n", + "petertodd/meter-clock - id: 23121, url: https://github.com/petertodd/meter-clock\n", + "petertodd/meter-clock.schem - id: 23122, url: https://github.com/petertodd/meter-clock.schem\n", + "petertodd/meter-clock.hard - id: 23125, url: https://github.com/petertodd/meter-clock.hard\n", + "aroth/backup_fu - id: 23128, url: https://github.com/aroth/backup_fu\n", + "lovelyvik293/fireeagle - id: 23133, url: https://github.com/lovelyvik293/fireeagle\n", + "bigtiger/fish - id: 23134, url: https://github.com/bigtiger/fish\n", + "anotherjesse/webpy-appengine-helloworld - id: 23136, url: https://github.com/anotherjesse/webpy-appengine-helloworld\n", + "StudyWorks/altered_beast - id: 23137, url: https://github.com/StudyWorks/altered_beast\n", + "jdunphy/kablame-gem - id: 23140, url: https://github.com/jdunphy/kablame-gem\n", + "delgado-xx/translate_routes - id: 23141, url: https://github.com/delgado-xx/translate_routes\n", + "al2o3cr/hobo-plugins - id: 23143, url: https://github.com/al2o3cr/hobo-plugins\n", + "markus/resource_controller - id: 23144, url: https://github.com/markus/resource_controller\n", + "cho45/theruck - id: 23149, url: https://github.com/cho45/theruck\n", + "bruce/rocksteady - id: 23150, url: https://github.com/bruce/rocksteady\n", + "eelco/mailfile - id: 23162, url: https://github.com/eelco/mailfile\n", + "drnic/rubycocoa-tmbundle - id: 23168, url: https://github.com/drnic/rubycocoa-tmbundle\n", + "astro/xmpp4r - id: 23173, url: https://github.com/astro/xmpp4r\n", + "oggy/ruby-bash-completion - id: 23180, url: https://github.com/oggy/ruby-bash-completion\n", + "EricDuminil/rapidshare_downloader - id: 23185, url: https://github.com/EricDuminil/rapidshare_downloader\n", + "jslade/gruff - id: 23187, url: https://github.com/jslade/gruff\n", + "arturaz/as_lt_words - id: 23191, url: https://github.com/arturaz/as_lt_words\n", + "metade/music-news - id: 23192, url: https://github.com/metade/music-news\n", + "balinterdi/codekata - id: 23193, url: https://github.com/balinterdi/codekata\n", + "johnson/chito - id: 23197, url: https://github.com/johnson/chito\n", + "xrmx/mib2opennms - id: 23199, url: https://github.com/xrmx/mib2opennms\n", + "arturaz/authorization_hooks - id: 23200, url: https://github.com/arturaz/authorization_hooks\n", + "stepheneb/activerecord-jdbc-adapter - id: 23201, url: https://github.com/stepheneb/activerecord-jdbc-adapter\n", + "arturaz/validates_slugization_of - id: 23202, url: https://github.com/arturaz/validates_slugization_of\n", + "s1m2b3/test - id: 23203, url: https://github.com/s1m2b3/test\n", + "arturaz/render_error - id: 23204, url: https://github.com/arturaz/render_error\n", + "arturaz/flash_divs - id: 23205, url: https://github.com/arturaz/flash_divs\n", + "lono175/labcv - id: 23208, url: https://github.com/lono175/labcv\n", + "arturaz/ruby_extensions - id: 23209, url: https://github.com/arturaz/ruby_extensions\n", + "arturaz/ufo_helper - id: 23210, url: https://github.com/arturaz/ufo_helper\n", + "arturaz/prototype_helpers - id: 23211, url: https://github.com/arturaz/prototype_helpers\n", + "arturaz/set_names_utf8 - id: 23213, url: https://github.com/arturaz/set_names_utf8\n", + "arturaz/rss_helper - id: 23215, url: https://github.com/arturaz/rss_helper\n", + "ckalu/hmo - id: 23221, url: https://github.com/ckalu/hmo\n", + "arturaz/acts_as_taggable_on_steroids - id: 23225, url: https://github.com/arturaz/acts_as_taggable_on_steroids\n", + "judofyr/filtering_camping - id: 23229, url: https://github.com/judofyr/filtering_camping\n", + "henrosoft/nehsics - id: 23231, url: https://github.com/henrosoft/nehsics\n", + "andreaja/dotemacs - id: 23233, url: https://github.com/andreaja/dotemacs\n", + "dyoder/functor - id: 23237, url: https://github.com/dyoder/functor\n", + "caring/composition_generator - id: 23245, url: https://github.com/caring/composition_generator\n", + "rks/label_with_error_messages - id: 23249, url: https://github.com/rks/label_with_error_messages\n", + "4rc0s/battstatt - id: 23250, url: https://github.com/4rc0s/battstatt\n", + "auser/sprinkle - id: 23261, url: https://github.com/auser/sprinkle\n", + "agateau/yokadi - id: 23262, url: https://github.com/agateau/yokadi\n", + "jeresig/env-js - id: 23267, url: https://github.com/jeresig/env-js\n", + "davie/old-git4idea - id: 23271, url: https://github.com/davie/old-git4idea\n", + "caike/rails21-book - id: 23273, url: https://github.com/caike/rails21-book\n", + "yosh/taboo - id: 23276, url: https://github.com/yosh/taboo\n", + "yosh/s3 - id: 23277, url: https://github.com/yosh/s3\n", + "yosh/finally - id: 23278, url: https://github.com/yosh/finally\n", + "kastner/ruby-junk - id: 23279, url: https://github.com/kastner/ruby-junk\n", + "smcpherson/todo_test - id: 23284, url: https://github.com/smcpherson/todo_test\n", + "Zariel/oUF_Grid - id: 23290, url: https://github.com/Zariel/oUF_Grid\n", + "jchris/fsevent - id: 23294, url: https://github.com/jchris/fsevent\n", + "dslife/acts_as_state_machine - id: 23296, url: https://github.com/dslife/acts_as_state_machine\n", + "dslife/restful-authentication - id: 23297, url: https://github.com/dslife/restful-authentication\n", + "jney/jquery.pageless - id: 23300, url: https://github.com/jney/jquery.pageless\n", + "books4dev/data-structures - id: 23302, url: https://github.com/books4dev/data-structures\n", + "kazu/grit - id: 23303, url: https://github.com/kazu/grit\n", + "napcs/lazy_developer - id: 23315, url: https://github.com/napcs/lazy_developer\n", + "jrimmer/memcached_dotnet - id: 23320, url: https://github.com/jrimmer/memcached_dotnet\n", + "chad/rubyspec - id: 23325, url: https://github.com/chad/rubyspec\n", + "zpinter/rails - id: 23329, url: https://github.com/zpinter/rails\n", + "chas/todoist-share - id: 23331, url: https://github.com/chas/todoist-share\n", + "jqr/gitjour - id: 23337, url: https://github.com/jqr/gitjour\n", + "imkite/acts_as_network - id: 23338, url: https://github.com/imkite/acts_as_network\n", + "tokyovigilante/plex - id: 23339, url: https://github.com/tokyovigilante/plex\n", + "tmm1/youtube-g - id: 23341, url: https://github.com/tmm1/youtube-g\n", + "evanmonroig/cl-blogapp - id: 23342, url: https://github.com/evanmonroig/cl-blogapp\n", + "xaviershay/kamel - id: 23343, url: https://github.com/xaviershay/kamel\n", + "fnando/kitabu - id: 23352, url: https://github.com/fnando/kitabu\n", + "halorgium/xmpp4r - id: 23355, url: https://github.com/halorgium/xmpp4r\n", + "carlosmcevilly/aws-s3-command-line-tools - id: 23358, url: https://github.com/carlosmcevilly/aws-s3-command-line-tools\n", + "mcarlson/processing-js - id: 23364, url: https://github.com/mcarlson/processing-js\n", + "eadz/git_revision_number - id: 23370, url: https://github.com/eadz/git_revision_number\n", + "eadz/attachment_fu - id: 23373, url: https://github.com/eadz/attachment_fu\n", + "engineyard/vertebra-gem - id: 23375, url: https://github.com/engineyard/vertebra-gem\n", + "eadz/exception_notification - id: 23377, url: https://github.com/eadz/exception_notification\n", + "eadz/upload_progress - id: 23379, url: https://github.com/eadz/upload_progress\n", + "bigcartel/informant - id: 23382, url: https://github.com/bigcartel/informant\n", + "david/logbot - id: 23384, url: https://github.com/david/logbot\n", + "adamwiggins/sinatra - id: 23387, url: https://github.com/adamwiggins/sinatra\n", + "JJ/euro-2008 - id: 23388, url: https://github.com/JJ/euro-2008\n", + "nicolasacchi/s3rbackup - id: 23389, url: https://github.com/nicolasacchi/s3rbackup\n", + "mleung/old_school - id: 23390, url: https://github.com/mleung/old_school\n", + "Stephan/mymimir - id: 23391, url: https://github.com/Stephan/mymimir\n", + "n0ha/yui-compressor-ant-task - id: 23393, url: https://github.com/n0ha/yui-compressor-ant-task\n", + "lono175/easycv - id: 23394, url: https://github.com/lono175/easycv\n", + "Stephan/mymimir_sdk - id: 23395, url: https://github.com/Stephan/mymimir_sdk\n", + "n0ha/cvs-status - id: 23396, url: https://github.com/n0ha/cvs-status\n", + "madx/dicelib - id: 23397, url: https://github.com/madx/dicelib\n", + "bert/libtgb1990 - id: 23398, url: https://github.com/bert/libtgb1990\n", + "floere/contexts-rails - id: 23400, url: https://github.com/floere/contexts-rails\n", + "garbagecat/eventmachine - id: 23404, url: https://github.com/garbagecat/eventmachine\n", + "mattsheppard/constant-css - id: 23409, url: https://github.com/mattsheppard/constant-css\n", + "danielegozzi/radiant-copy-move - id: 23415, url: https://github.com/danielegozzi/radiant-copy-move\n", + "jrun/svn_auth_file - id: 23419, url: https://github.com/jrun/svn_auth_file\n", + "jtrupiano/passenger-recipes - id: 23422, url: https://github.com/jtrupiano/passenger-recipes\n", + "takkaw/beeptoys - id: 23424, url: https://github.com/takkaw/beeptoys\n", + "jtrupiano/capistrano-extensions - id: 23425, url: https://github.com/jtrupiano/capistrano-extensions\n", + "khigia/ocaml-anneal - id: 23430, url: https://github.com/khigia/ocaml-anneal\n", + "pgr0ss/rake_commit_tasks - id: 23431, url: https://github.com/pgr0ss/rake_commit_tasks\n", + "tjweir/tyler-config - id: 23432, url: https://github.com/tjweir/tyler-config\n", + "traviskroberts/travisonrails - id: 23434, url: https://github.com/traviskroberts/travisonrails\n", + "edavis10/git-wiki - id: 23456, url: https://github.com/edavis10/git-wiki\n", + "shingara/will_paginate - id: 23457, url: https://github.com/shingara/will_paginate\n", + "activeconference/rails_plugin - id: 23465, url: https://github.com/activeconference/rails_plugin\n", + "abachman/book_service - id: 23470, url: https://github.com/abachman/book_service\n", + "bkerley/quals08 - id: 23472, url: https://github.com/bkerley/quals08\n", + "jnunemaker/common_helpers - id: 23476, url: https://github.com/jnunemaker/common_helpers\n", + "jaz303/tipsy - id: 23478, url: https://github.com/jaz303/tipsy\n", + "zukunftsalick/rails21-book - id: 23485, url: https://github.com/zukunftsalick/rails21-book\n", + "cullman/ffmpeg-fork - id: 23492, url: https://github.com/cullman/ffmpeg-fork\n", + "nickludlam/mythtv2dsvideo - id: 23497, url: https://github.com/nickludlam/mythtv2dsvideo\n", + "dgiunta/make_conf - id: 23498, url: https://github.com/dgiunta/make_conf\n", + "xorg62/tty-clock - id: 23513, url: https://github.com/xorg62/tty-clock\n", + "technomage/secure-magic - id: 23515, url: https://github.com/technomage/secure-magic\n", + "siraj/arora - id: 23518, url: https://github.com/siraj/arora\n", + "yav/haskell-zipper - id: 23520, url: https://github.com/yav/haskell-zipper\n", + "mfoemmel/erlang-otp - id: 23524, url: https://github.com/mfoemmel/erlang-otp\n", + "masutu/xnotify - id: 23525, url: https://github.com/masutu/xnotify\n", + "lazeb/grease - id: 23527, url: https://github.com/lazeb/grease\n", + "al2o3cr/hobo-sprolog - id: 23529, url: https://github.com/al2o3cr/hobo-sprolog\n", + "wuts/avenon - id: 23532, url: https://github.com/wuts/avenon\n", + "freireag/rails21-book - id: 23537, url: https://github.com/freireag/rails21-book\n", + "shadowmaru/rails21-book - id: 23538, url: https://github.com/shadowmaru/rails21-book\n", + "ko1/simplepaste - id: 23539, url: https://github.com/ko1/simplepaste\n", + "chungjmax/franklinchart - id: 23547, url: https://github.com/chungjmax/franklinchart\n", + "petertodd/64-bit-counter - id: 23549, url: https://github.com/petertodd/64-bit-counter\n", + "petertodd/64-bit-counter.elec - id: 23553, url: https://github.com/petertodd/64-bit-counter.elec\n", + "petertodd/64-bit-counter.firm - id: 23554, url: https://github.com/petertodd/64-bit-counter.firm\n", + "winton/app_helpers - id: 23557, url: https://github.com/winton/app_helpers\n", + "peterarmstrong/helloflex - id: 23558, url: https://github.com/peterarmstrong/helloflex\n", + "andydude/hyperops - id: 23570, url: https://github.com/andydude/hyperops\n", + "mrflip/acts_as_pimp - id: 23574, url: https://github.com/mrflip/acts_as_pimp\n", + "sujal/capistrano-s3-fork - id: 23579, url: https://github.com/sujal/capistrano-s3-fork\n", + "btakita/eventmachine - id: 23582, url: https://github.com/btakita/eventmachine\n", + "malept/tweet - id: 23583, url: https://github.com/malept/tweet\n", + "orcdork/todo - id: 23585, url: https://github.com/orcdork/todo\n", + "alloy/pasternakredux - id: 23586, url: https://github.com/alloy/pasternakredux\n", + "mattn/labo-mattn - id: 23610, url: https://github.com/mattn/labo-mattn\n", + "melo/perl-hotel - id: 23612, url: https://github.com/melo/perl-hotel\n", + "mrflip/open_id_doodads - id: 23618, url: https://github.com/mrflip/open_id_doodads\n", + "halorgium/merbunity-bot - id: 23623, url: https://github.com/halorgium/merbunity-bot\n", + "melo/presentations - id: 23626, url: https://github.com/melo/presentations\n", + "Jimoid/python-exercises - id: 23630, url: https://github.com/Jimoid/python-exercises\n", + "aoldak/restful-authentication - id: 23632, url: https://github.com/aoldak/restful-authentication\n", + "eadz/typus - id: 23640, url: https://github.com/eadz/typus\n", + "britman/fansbuzz - id: 23645, url: https://github.com/britman/fansbuzz\n", + "dchelimsky/screw-unit - id: 23648, url: https://github.com/dchelimsky/screw-unit\n", + "taq/phpreports - id: 23654, url: https://github.com/taq/phpreports\n", + "raggi/rack - id: 23666, url: https://github.com/raggi/rack\n", + "ericallam/merb-oauth-example - id: 23671, url: https://github.com/ericallam/merb-oauth-example\n", + "harrisj/passenger - id: 23684, url: https://github.com/harrisj/passenger\n", + "quirkey/imanip - id: 23686, url: https://github.com/quirkey/imanip\n", + "picomiles/copenhagen-calender - id: 23690, url: https://github.com/picomiles/copenhagen-calender\n", + "jamesgolick/expectations - id: 23691, url: https://github.com/jamesgolick/expectations\n", + "prd/pleasework - id: 23695, url: https://github.com/prd/pleasework\n", + "scsimofo/test - id: 23696, url: https://github.com/scsimofo/test\n", + "danbernier/whistler - id: 23703, url: https://github.com/danbernier/whistler\n", + "pelle/talk.org - id: 23704, url: https://github.com/pelle/talk.org\n", + "mootools/mootools-more - id: 23715, url: https://github.com/mootools/mootools-more\n", + "pmark/jivepages-sample-app - id: 23720, url: https://github.com/pmark/jivepages-sample-app\n", + "eduardoreche/irun-old - id: 23726, url: https://github.com/eduardoreche/irun-old\n", + "Pistos/weewar-ai - id: 23730, url: https://github.com/Pistos/weewar-ai\n", + "tokumine/awesome_nested_set - id: 23736, url: https://github.com/tokumine/awesome_nested_set\n", + "ryanraaum/r-3 - id: 23745, url: https://github.com/ryanraaum/r-3\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hallison/weblooks - id: 23755, url: https://github.com/hallison/weblooks\n", + "tobytripp/dotfiles - id: 23758, url: https://github.com/tobytripp/dotfiles\n", + "TechnoTony/insoshi - id: 23768, url: https://github.com/TechnoTony/insoshi\n", + "korsakov/ohcount - id: 23769, url: https://github.com/korsakov/ohcount\n", + "mcmire/fedex - id: 23770, url: https://github.com/mcmire/fedex\n", + "jicksta/visual-dialplans - id: 23772, url: https://github.com/jicksta/visual-dialplans\n", + "pelargir/railspdf - id: 23775, url: https://github.com/pelargir/railspdf\n", + "tmm1/mailfactory - id: 23778, url: https://github.com/tmm1/mailfactory\n", + "ebot/hiking - id: 23784, url: https://github.com/ebot/hiking\n", + "smart/younety_client_plugin - id: 23786, url: https://github.com/smart/younety_client_plugin\n", + "dimus/gna-hosting - id: 23787, url: https://github.com/dimus/gna-hosting\n", + "ozgun/oktest - id: 23792, url: https://github.com/ozgun/oktest\n", + "scott-stewart/rails - id: 23831, url: https://github.com/scott-stewart/rails\n", + "kkubasik/human-evolution-database - id: 23842, url: https://github.com/kkubasik/human-evolution-database\n", + "danushka/my-work - id: 23850, url: https://github.com/danushka/my-work\n", + "guan/ruby-on-rails-tmbundle - id: 23853, url: https://github.com/guan/ruby-on-rails-tmbundle\n", + "tuxmonkey/minion - id: 23872, url: https://github.com/tuxmonkey/minion\n", + "kakutani/yaml_waml - id: 23880, url: https://github.com/kakutani/yaml_waml\n", + "markus/rubber - id: 23884, url: https://github.com/markus/rubber\n", + "Netcyberas/prog-3-upf - id: 23885, url: https://github.com/Netcyberas/prog-3-upf\n", + "oggy/validates_existence - id: 23890, url: https://github.com/oggy/validates_existence\n", + "PromyLOPh/pianobar - id: 23892, url: https://github.com/PromyLOPh/pianobar\n", + "drewolson/def_macro - id: 23893, url: https://github.com/drewolson/def_macro\n", + "kino/mootools-core - id: 23905, url: https://github.com/kino/mootools-core\n", + "kino/moogrid - id: 23907, url: https://github.com/kino/moogrid\n", + "git-cola/git-cola - id: 23916, url: https://github.com/git-cola/git-cola\n", + "mattwill/insoshi - id: 23918, url: https://github.com/mattwill/insoshi\n", + "diasjorge/feather - id: 23919, url: https://github.com/diasjorge/feather\n", + "diasjorge/feather-plugins - id: 23920, url: https://github.com/diasjorge/feather-plugins\n", + "isiri/radiant-comments-extension - id: 23925, url: https://github.com/isiri/radiant-comments-extension\n", + "ryan-allen/lumberjack - id: 23931, url: https://github.com/ryan-allen/lumberjack\n", + "ryan-allen/modelling - id: 23933, url: https://github.com/ryan-allen/modelling\n", + "hassox/dm-adapters - id: 23941, url: https://github.com/hassox/dm-adapters\n", + "saturnflyer/radiant-portfolio - id: 23955, url: https://github.com/saturnflyer/radiant-portfolio\n", + "ryanlowe/ottawaruby - id: 23958, url: https://github.com/ryanlowe/ottawaruby\n", + "martinbtt/morph - id: 23966, url: https://github.com/martinbtt/morph\n", + "cschneid/jruby-rack - id: 23975, url: https://github.com/cschneid/jruby-rack\n", + "clairvy/doc - id: 23988, url: https://github.com/clairvy/doc\n", + "elsifaka/taoteny - id: 23989, url: https://github.com/elsifaka/taoteny\n", + "mikehale/nokahuna-fluid - id: 23995, url: https://github.com/mikehale/nokahuna-fluid\n", + "unageanu/javaclass - id: 24001, url: https://github.com/unageanu/javaclass\n", + "queso/github-services - id: 24003, url: https://github.com/queso/github-services\n", + "toreriklinnerud/automaton - id: 24004, url: https://github.com/toreriklinnerud/automaton\n", + "ymirpl/a5graph - id: 24010, url: https://github.com/ymirpl/a5graph\n", + "jugend/permalink_fu - id: 24011, url: https://github.com/jugend/permalink_fu\n", + "markus/braid - id: 24013, url: https://github.com/markus/braid\n", + "jfernandez/acts_as_php - id: 24018, url: https://github.com/jfernandez/acts_as_php\n", + "watson/comatose - id: 24025, url: https://github.com/watson/comatose\n", + "phloe/amoeba - id: 24026, url: https://github.com/phloe/amoeba\n", + "ruphy/aku - id: 24031, url: https://github.com/ruphy/aku\n", + "jandot/biorake - id: 24038, url: https://github.com/jandot/biorake\n", + "spatten/ruboss_framework - id: 24040, url: https://github.com/spatten/ruboss_framework\n", + "deepblue/springnote_client - id: 24044, url: https://github.com/deepblue/springnote_client\n", + "alediaferia/aku - id: 24052, url: https://github.com/alediaferia/aku\n", + "markbates/configatron - id: 24053, url: https://github.com/markbates/configatron\n", + "olasd/pythagore - id: 24056, url: https://github.com/olasd/pythagore\n", + "nyxwulf/ruby-backup - id: 24057, url: https://github.com/nyxwulf/ruby-backup\n", + "deepblue/hotruby - id: 24058, url: https://github.com/deepblue/hotruby\n", + "brianjlandau/action_button - id: 24066, url: https://github.com/brianjlandau/action_button\n", + "anutron/mootools-core - id: 24070, url: https://github.com/anutron/mootools-core\n", + "joakimk/mtag - id: 24073, url: https://github.com/joakimk/mtag\n", + "odyn-owl/ober - id: 24075, url: https://github.com/odyn-owl/ober\n", + "vitaly/hg2git - id: 24078, url: https://github.com/vitaly/hg2git\n", + "mokisystems/radiant-fragment-cacher - id: 24080, url: https://github.com/mokisystems/radiant-fragment-cacher\n", + "technoweenie/sentry - id: 24083, url: https://github.com/technoweenie/sentry\n", + "alex/django-ajax-validation - id: 24085, url: https://github.com/alex/django-ajax-validation\n", + "weppos/docbook5-tmbundle - id: 24097, url: https://github.com/weppos/docbook5-tmbundle\n", + "jaggederest/ragi - id: 24098, url: https://github.com/jaggederest/ragi\n", + "h-lame/lruggery - id: 24099, url: https://github.com/h-lame/lruggery\n", + "rikur/ramaze - id: 24103, url: https://github.com/rikur/ramaze\n", + "evan/has_many_polymorphs - id: 24111, url: https://github.com/evan/has_many_polymorphs\n", + "evan/interlock - id: 24112, url: https://github.com/evan/interlock\n", + "rmanalan/exception_notification - id: 24114, url: https://github.com/rmanalan/exception_notification\n", + "TekNoLogic/fuzzylogic - id: 24122, url: https://github.com/TekNoLogic/fuzzylogic\n", + "saucytiger/livepipe.net-documentation - id: 24124, url: https://github.com/saucytiger/livepipe.net-documentation\n", + "ornitorrincos/archinator - id: 24128, url: https://github.com/ornitorrincos/archinator\n", + "moonpolysoft/commonpool - id: 24131, url: https://github.com/moonpolysoft/commonpool\n", + "shuber/restful_rails - id: 24133, url: https://github.com/shuber/restful_rails\n", + "duncanbeevers/populate_association_lazily - id: 24153, url: https://github.com/duncanbeevers/populate_association_lazily\n", + "bpokosh/nifty-generators - id: 24155, url: https://github.com/bpokosh/nifty-generators\n", + "jaz303/clicky - id: 24159, url: https://github.com/jaz303/clicky\n", + "apeiros/silverplatter-irc - id: 24160, url: https://github.com/apeiros/silverplatter-irc\n", + "trotter/belongs_to_demeter - id: 24167, url: https://github.com/trotter/belongs_to_demeter\n", + "siaukia/jumbletext - id: 24173, url: https://github.com/siaukia/jumbletext\n", + "adzap/calendar_helper - id: 24178, url: https://github.com/adzap/calendar_helper\n", + "simont/ncbowebapp - id: 24179, url: https://github.com/simont/ncbowebapp\n", + "soveran/spawn - id: 24180, url: https://github.com/soveran/spawn\n", + "eadz/acts_as_list - id: 24185, url: https://github.com/eadz/acts_as_list\n", + "eadz/gibberish - id: 24186, url: https://github.com/eadz/gibberish\n", + "eadz/gibberish_rails - id: 24188, url: https://github.com/eadz/gibberish_rails\n", + "eadz/wym_editor_helper - id: 24191, url: https://github.com/eadz/wym_editor_helper\n", + "eadz/yaml_db - id: 24196, url: https://github.com/eadz/yaml_db\n", + "mattetti/youtube-g - id: 24199, url: https://github.com/mattetti/youtube-g\n", + "iamjwc/blackjack - id: 24210, url: https://github.com/iamjwc/blackjack\n", + "dfl/friendly_fixtures - id: 24211, url: https://github.com/dfl/friendly_fixtures\n", + "ihower/facebox_render - id: 24214, url: https://github.com/ihower/facebox_render\n", + "chendo/attachment_fu - id: 24215, url: https://github.com/chendo/attachment_fu\n", + "yob/onix - id: 24221, url: https://github.com/yob/onix\n", + "felipec/libomxil-bellagio - id: 24229, url: https://github.com/felipec/libomxil-bellagio\n", + "quake/db_profiling - id: 24234, url: https://github.com/quake/db_profiling\n", + "brice/pelmel - id: 24236, url: https://github.com/brice/pelmel\n", + "adamwiggins/heroku-client - id: 24242, url: https://github.com/adamwiggins/heroku-client\n", + "adamwiggins/yaml_db - id: 24246, url: https://github.com/adamwiggins/yaml_db\n", + "nfglynn/emacs - id: 24251, url: https://github.com/nfglynn/emacs\n", + "jodosha/globalize - id: 24262, url: https://github.com/jodosha/globalize\n", + "ryanlowe/ottawaruby-rails2_1 - id: 24263, url: https://github.com/ryanlowe/ottawaruby-rails2_1\n", + "Yuffster/rabidwidgets - id: 24265, url: https://github.com/Yuffster/rabidwidgets\n", + "MagnusEnger/normarc4koha - id: 24270, url: https://github.com/MagnusEnger/normarc4koha\n", + "solars/hobo-vim - id: 24275, url: https://github.com/solars/hobo-vim\n", + "dcthe1/mars - id: 24276, url: https://github.com/dcthe1/mars\n", + "joergd/fluttervoice - id: 24279, url: https://github.com/joergd/fluttervoice\n", + "solars/hobo-tmbundle - id: 24280, url: https://github.com/solars/hobo-tmbundle\n", + "mk/erlang-tmbundle - id: 24282, url: https://github.com/mk/erlang-tmbundle\n", + "xaviershay/dotfiles - id: 24283, url: https://github.com/xaviershay/dotfiles\n", + "floere/representer - id: 24289, url: https://github.com/floere/representer\n", + "gdelfino/sparklines - id: 24290, url: https://github.com/gdelfino/sparklines\n", + "Pistos/ramaze - id: 24296, url: https://github.com/Pistos/ramaze\n", + "AmkG/snap - id: 24299, url: https://github.com/AmkG/snap\n", + "noelklein/exabuch - id: 24302, url: https://github.com/noelklein/exabuch\n", + "kwe/passenger-django-wsgi-example - id: 24303, url: https://github.com/kwe/passenger-django-wsgi-example\n", + "agateau/svnci - id: 24308, url: https://github.com/agateau/svnci\n", + "samaaron/monome - id: 24313, url: https://github.com/samaaron/monome\n", + "semdinsp/stomp_message - id: 24315, url: https://github.com/semdinsp/stomp_message\n", + "reinh/wizardry - id: 24318, url: https://github.com/reinh/wizardry\n", + "redondos/gmailcontacts - id: 24323, url: https://github.com/redondos/gmailcontacts\n", + "bpokosh/useful-tmbundles - id: 24329, url: https://github.com/bpokosh/useful-tmbundles\n", + "winton/admin - id: 24331, url: https://github.com/winton/admin\n", + "eadz/title_helper - id: 24338, url: https://github.com/eadz/title_helper\n", + "grobald/test - id: 24341, url: https://github.com/grobald/test\n", + "pptaszynski/changepitch - id: 24355, url: https://github.com/pptaszynski/changepitch\n", + "neshmi/attachment_fu - id: 24356, url: https://github.com/neshmi/attachment_fu\n", + "arydjmal/to_csv - id: 24357, url: https://github.com/arydjmal/to_csv\n", + "jaredtse/rails - id: 24361, url: https://github.com/jaredtse/rails\n", + "topfunky/ar_fixtures - id: 24363, url: https://github.com/topfunky/ar_fixtures\n", + "curzonj/makes_sense - id: 24372, url: https://github.com/curzonj/makes_sense\n", + "judofyr/junebug - id: 24373, url: https://github.com/judofyr/junebug\n", + "davemerwin/starter-kit - id: 24375, url: https://github.com/davemerwin/starter-kit\n", + "ncr/configurator - id: 24392, url: https://github.com/ncr/configurator\n", + "xcoil/agility2 - id: 24394, url: https://github.com/xcoil/agility2\n", + "dsparling/romannumerals - id: 24397, url: https://github.com/dsparling/romannumerals\n", + "pptaszynski/aisdi-graf - id: 24402, url: https://github.com/pptaszynski/aisdi-graf\n", + "tswicegood/erlyweb - id: 24410, url: https://github.com/tswicegood/erlyweb\n", + "tpinto/coordinate - id: 24411, url: https://github.com/tpinto/coordinate\n", + "morhekil/communityengine - id: 24412, url: https://github.com/morhekil/communityengine\n", + "madrobby/acornkittens - id: 24415, url: https://github.com/madrobby/acornkittens\n", + "evan/allison - id: 24437, url: https://github.com/evan/allison\n", + "evan/bleak_house - id: 24439, url: https://github.com/evan/bleak_house\n", + "adamhjk/adduser-ldap - id: 24443, url: https://github.com/adamhjk/adduser-ldap\n", + "revolutionhealth/rails - id: 24446, url: https://github.com/revolutionhealth/rails\n", + "joshfrench/thinking-sphinx - id: 24448, url: https://github.com/joshfrench/thinking-sphinx\n", + "arthurnn/memcached - id: 24449, url: https://github.com/arthurnn/memcached\n", + "evan/ultrasphinx - id: 24451, url: https://github.com/evan/ultrasphinx\n", + "revolutionhealth/test-repo - id: 24455, url: https://github.com/revolutionhealth/test-repo\n", + "JonathanBeck/amd - id: 24460, url: https://github.com/JonathanBeck/amd\n", + "mhorbul/merbums - id: 24467, url: https://github.com/mhorbul/merbums\n", + "asheidan/dotfiles - id: 24468, url: https://github.com/asheidan/dotfiles\n", + "rgarver/tarantula - id: 24474, url: https://github.com/rgarver/tarantula\n", + "howcast/backgroundjob - id: 24477, url: https://github.com/howcast/backgroundjob\n", + "seaofclouds/tweet - id: 24480, url: https://github.com/seaofclouds/tweet\n", + "holizz/twitterui - id: 24482, url: https://github.com/holizz/twitterui\n", + "andyh/codename-generator - id: 24495, url: https://github.com/andyh/codename-generator\n", + "tqbf/asymy - id: 24497, url: https://github.com/tqbf/asymy\n", + "publicdisplay/icalendar - id: 24499, url: https://github.com/publicdisplay/icalendar\n", + "flavorjones/mechanize - id: 24500, url: https://github.com/flavorjones/mechanize\n", + "cmorss/association_cache - id: 24501, url: https://github.com/cmorss/association_cache\n", + "jcnetdev/jobberrails - id: 24504, url: https://github.com/jcnetdev/jobberrails\n", + "pkqk/dot-files - id: 24507, url: https://github.com/pkqk/dot-files\n", + "guan/mephisto - id: 24514, url: https://github.com/guan/mephisto\n", + "dylanz/ehcache - id: 24522, url: https://github.com/dylanz/ehcache\n", + "tbuser/stoker - id: 24530, url: https://github.com/tbuser/stoker\n", + "Leefmc/bcrf - id: 24534, url: https://github.com/Leefmc/bcrf\n", + "jfkw/ledgersmb - id: 24546, url: https://github.com/jfkw/ledgersmb\n", + "jswanner/scrum - id: 24547, url: https://github.com/jswanner/scrum\n", + "jamesiha/smashing-pumpkins - id: 24548, url: https://github.com/jamesiha/smashing-pumpkins\n", + "identityxx/penrose-studio - id: 24552, url: https://github.com/identityxx/penrose-studio\n", + "naoya/perl-template-plugin-hatena - id: 24557, url: https://github.com/naoya/perl-template-plugin-hatena\n", + "timcharper/role_requirement - id: 24558, url: https://github.com/timcharper/role_requirement\n", + "isiri/radiant-trike-tags-extension - id: 24559, url: https://github.com/isiri/radiant-trike-tags-extension\n", + "algesh/exception_logger - id: 24561, url: https://github.com/algesh/exception_logger\n", + "lsegal/tadpole - id: 24564, url: https://github.com/lsegal/tadpole\n", + "roidrage/scripts-collection - id: 24576, url: https://github.com/roidrage/scripts-collection\n", + "metade/music-recommendations - id: 24577, url: https://github.com/metade/music-recommendations\n", + "tooky/karma - id: 24581, url: https://github.com/tooky/karma\n", + "nickretallack/elemental-chess - id: 24583, url: https://github.com/nickretallack/elemental-chess\n", + "patmaddox/rspec - id: 24584, url: https://github.com/patmaddox/rspec\n", + "antoine/ibrouteur - id: 24587, url: https://github.com/antoine/ibrouteur\n", + "eathena/eathena - id: 24589, url: https://github.com/eathena/eathena\n", + "grundprinzip/dblp - id: 24606, url: https://github.com/grundprinzip/dblp\n", + "asacalow/net-ssh - id: 24608, url: https://github.com/asacalow/net-ssh\n", + "danlucraft/rak - id: 24609, url: https://github.com/danlucraft/rak\n", + "vickeryj/sequel - id: 24615, url: https://github.com/vickeryj/sequel\n", + "cv/cruise-information-radiators - id: 24616, url: https://github.com/cv/cruise-information-radiators\n", + "apeiros/ruby-pro - id: 24618, url: https://github.com/apeiros/ruby-pro\n", + "fred/com - id: 24620, url: https://github.com/fred/com\n", + "Pistos/ruby-pro - id: 24621, url: https://github.com/Pistos/ruby-pro\n", + "porras/random_items - id: 24642, url: https://github.com/porras/random_items\n", + "Sai/codename.chobits - id: 24644, url: https://github.com/Sai/codename.chobits\n", + "baobab/bart - id: 24649, url: https://github.com/baobab/bart\n", + "gotascii/simple_importer - id: 24652, url: https://github.com/gotascii/simple_importer\n", + "notahat/wraps_attribute - id: 24656, url: https://github.com/notahat/wraps_attribute\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "carlopecchia/rails21-book - id: 24676, url: https://github.com/carlopecchia/rails21-book\n", + "revolutionhealth/metricks - id: 24679, url: https://github.com/revolutionhealth/metricks\n", + "andrewroth/active_scaffold_sortable_demo - id: 24691, url: https://github.com/andrewroth/active_scaffold_sortable_demo\n", + "Gautier/test_git - id: 24701, url: https://github.com/Gautier/test_git\n", + "sbfaulkner/pretty_dates - id: 24703, url: https://github.com/sbfaulkner/pretty_dates\n", + "mejibyte/acm - id: 24706, url: https://github.com/mejibyte/acm\n", + "eric/god - id: 24707, url: https://github.com/eric/god\n", + "codepo8/easy-youtube - id: 24718, url: https://github.com/codepo8/easy-youtube\n", + "tacvbo/yaflac2mp3 - id: 24722, url: https://github.com/tacvbo/yaflac2mp3\n", + "chris/better_nested_set - id: 24724, url: https://github.com/chris/better_nested_set\n", + "danielharan/restful-authentication - id: 24726, url: https://github.com/danielharan/restful-authentication\n", + "72photos/mephisto_seventy_two_photos - id: 24727, url: https://github.com/72photos/mephisto_seventy_two_photos\n", + "AdamSee/testing-purposes - id: 24730, url: https://github.com/AdamSee/testing-purposes\n", + "sbfaulkner/elapsed_time - id: 24731, url: https://github.com/sbfaulkner/elapsed_time\n", + "grzegorzkazulak/mootools-on-rails - id: 24737, url: https://github.com/grzegorzkazulak/mootools-on-rails\n", + "TBD/smarty - id: 24750, url: https://github.com/TBD/smarty\n", + "miloops/random-key - id: 24756, url: https://github.com/miloops/random-key\n", + "markluffel/atlhack-stats-and-plots - id: 24759, url: https://github.com/markluffel/atlhack-stats-and-plots\n", + "identityxx/penrose-server - id: 24768, url: https://github.com/identityxx/penrose-server\n", + "marcuhlig/insoshi - id: 24770, url: https://github.com/marcuhlig/insoshi\n", + "andrewroth/active_scaffold_sortable_subforms - id: 24773, url: https://github.com/andrewroth/active_scaffold_sortable_subforms\n", + "potatosalad/thinking-sphinx - id: 24777, url: https://github.com/potatosalad/thinking-sphinx\n", + "shadowmaru/microformats_helper - id: 24781, url: https://github.com/shadowmaru/microformats_helper\n", + "thesnarky1/php_mafia - id: 24791, url: https://github.com/thesnarky1/php_mafia\n", + "evanphx/osx-notify - id: 24795, url: https://github.com/evanphx/osx-notify\n", + "caring/default_routing - id: 24806, url: https://github.com/caring/default_routing\n", + "jsgoecke/twinners_ivr_menu - id: 24825, url: https://github.com/jsgoecke/twinners_ivr_menu\n", + "jinzhu/configure - id: 24832, url: https://github.com/jinzhu/configure\n", + "timloo0710/globalite-example - id: 24835, url: https://github.com/timloo0710/globalite-example\n", + "gaffo/active_scaffold - id: 24840, url: https://github.com/gaffo/active_scaffold\n", + "gaffo/the_incentosaur - id: 24841, url: https://github.com/gaffo/the_incentosaur\n", + "hypomodern/dr-nic-magic-models - id: 24843, url: https://github.com/hypomodern/dr-nic-magic-models\n", + "spicycode/rcov - id: 24844, url: https://github.com/spicycode/rcov\n", + "hagabaka/chatzilla-plugins - id: 24847, url: https://github.com/hagabaka/chatzilla-plugins\n", + "chrissundberg/learning-rails - id: 24857, url: https://github.com/chrissundberg/learning-rails\n", + "tiagowhite/poignant-br - id: 24858, url: https://github.com/tiagowhite/poignant-br\n", + "xdite/openid_pack - id: 24868, url: https://github.com/xdite/openid_pack\n", + "lukemelia/rspec-story-tmbundle - id: 24869, url: https://github.com/lukemelia/rspec-story-tmbundle\n", + "ezyang/git-ftp - id: 24871, url: https://github.com/ezyang/git-ftp\n", + "yjcqwliu/--api-asp-- - id: 24875, url: https://github.com/yjcqwliu/--api-asp--\n", + "lachie/starjour - id: 24877, url: https://github.com/lachie/starjour\n", + "hassox/dm-polymorphic - id: 24878, url: https://github.com/hassox/dm-polymorphic\n", + "bellroy/radiant-redirecting-fnf-page-extension - id: 24881, url: https://github.com/bellroy/radiant-redirecting-fnf-page-extension\n", + "bellroy/radiant-greedy-page-extension - id: 24884, url: https://github.com/bellroy/radiant-greedy-page-extension\n", + "bellroy/radiant-multi-site-hacks-extension - id: 24885, url: https://github.com/bellroy/radiant-multi-site-hacks-extension\n", + "bellroy/radiant-shopping-trike-extension - id: 24887, url: https://github.com/bellroy/radiant-shopping-trike-extension\n", + "bellroy/radiant-static-caching-extension - id: 24888, url: https://github.com/bellroy/radiant-static-caching-extension\n", + "jpshackelford/activemessaging - id: 24898, url: https://github.com/jpshackelford/activemessaging\n", + "semdinsp/smsc_manager - id: 24900, url: https://github.com/semdinsp/smsc_manager\n", + "semdinsp/mmsc_manager - id: 24901, url: https://github.com/semdinsp/mmsc_manager\n", + "semdinsp/billing-web-services - id: 24902, url: https://github.com/semdinsp/billing-web-services\n", + "guan/ruboss_rails_integration - id: 24903, url: https://github.com/guan/ruboss_rails_integration\n", + "guan/ruboss_framework - id: 24905, url: https://github.com/guan/ruboss_framework\n", + "richardkiss/myspace_blog_post - id: 24906, url: https://github.com/richardkiss/myspace_blog_post\n", + "semdinsp/simple-sms-services - id: 24907, url: https://github.com/semdinsp/simple-sms-services\n", + "koshian/foltia-the-next-generation - id: 24908, url: https://github.com/koshian/foltia-the-next-generation\n", + "jparker/home - id: 24909, url: https://github.com/jparker/home\n", + "semdinsp/ficonab_tools - id: 24910, url: https://github.com/semdinsp/ficonab_tools\n", + "slim/bashoola - id: 24913, url: https://github.com/slim/bashoola\n", + "andrew/hellococoa - id: 24922, url: https://github.com/andrew/hellococoa\n", + "jlsync/meetup-api - id: 24925, url: https://github.com/jlsync/meetup-api\n", + "kassens/mootools-more - id: 24933, url: https://github.com/kassens/mootools-more\n", + "sudharsh/openmoko-gsoc2008 - id: 24937, url: https://github.com/sudharsh/openmoko-gsoc2008\n", + "intinig/chuck_norris - id: 24940, url: https://github.com/intinig/chuck_norris\n", + "grzegorzkazulak/codeigniter_history - id: 24944, url: https://github.com/grzegorzkazulak/codeigniter_history\n", + "yevgeny/aws-s3 - id: 24948, url: https://github.com/yevgeny/aws-s3\n", + "ruby-i18n/i18n - id: 24954, url: https://github.com/ruby-i18n/i18n\n", + "rwanderley/rswconfigs - id: 24957, url: https://github.com/rwanderley/rswconfigs\n", + "zukunftsalick/docuca - id: 24958, url: https://github.com/zukunftsalick/docuca\n", + "baobab/mateme - id: 24960, url: https://github.com/baobab/mateme\n", + "JEG2/rrdb - id: 24965, url: https://github.com/JEG2/rrdb\n", + "koichiro/tdiary-mixing-plugin - id: 24969, url: https://github.com/koichiro/tdiary-mixing-plugin\n", + "flogic/acts-as-dag - id: 24983, url: https://github.com/flogic/acts-as-dag\n", + "AdamSee/rails-footnotes - id: 24984, url: https://github.com/AdamSee/rails-footnotes\n", + "sinclair/acts-as-taggable-on - id: 24993, url: https://github.com/sinclair/acts-as-taggable-on\n", + "hoanga/reshell - id: 24995, url: https://github.com/hoanga/reshell\n", + "eschulte/rinari - id: 24997, url: https://github.com/eschulte/rinari\n", + "Manfred/unichars - id: 24999, url: https://github.com/Manfred/unichars\n", + "gramos/rails21-book-es - id: 25000, url: https://github.com/gramos/rails21-book-es\n", + "evan/bax - id: 25006, url: https://github.com/evan/bax\n", + "evan/benchmark_unit - id: 25008, url: https://github.com/evan/benchmark_unit\n", + "evan/ccsv - id: 25011, url: https://github.com/evan/ccsv\n", + "evan/echoe - id: 25013, url: https://github.com/evan/echoe\n", + "evan/facebook_exceptions - id: 25015, url: https://github.com/evan/facebook_exceptions\n", + "evan/kirby - id: 25016, url: https://github.com/evan/kirby\n", + "evan/raspell - id: 25017, url: https://github.com/evan/raspell\n", + "evan/rv - id: 25018, url: https://github.com/evan/rv\n", + "evan/shadow - id: 25019, url: https://github.com/evan/shadow\n", + "evan/sweeper - id: 25020, url: https://github.com/evan/sweeper\n", + "ljukee/ljukee_arch - id: 25023, url: https://github.com/ljukee/ljukee_arch\n", + "evan/twist - id: 25026, url: https://github.com/evan/twist\n", + "JackDanger/gchart - id: 25029, url: https://github.com/JackDanger/gchart\n", + "sujal/interlock - id: 25037, url: https://github.com/sujal/interlock\n", + "hypomodern/json_xml_parser - id: 25038, url: https://github.com/hypomodern/json_xml_parser\n", + "jrudolph/graphicterm - id: 25041, url: https://github.com/jrudolph/graphicterm\n", + "glyde/rails - id: 25045, url: https://github.com/glyde/rails\n", + "millerhj/nlm_eutils - id: 25046, url: https://github.com/millerhj/nlm_eutils\n", + "atiaxi/porttown - id: 25048, url: https://github.com/atiaxi/porttown\n", + "drone-rites/spark - id: 25053, url: https://github.com/drone-rites/spark\n", + "jmoses/calais - id: 25057, url: https://github.com/jmoses/calais\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "technoweenie/app_bootstrap - id: 25060, url: https://github.com/technoweenie/app_bootstrap\n", + "gnurag/ilugbom - id: 25061, url: https://github.com/gnurag/ilugbom\n", + "ngauthier/ruby-on-rails-polymorphism-benchmarks - id: 25066, url: https://github.com/ngauthier/ruby-on-rails-polymorphism-benchmarks\n", + "mikehale/radiant-ratings-extension - id: 25069, url: https://github.com/mikehale/radiant-ratings-extension\n", + "jnunemaker/javascripts - id: 25070, url: https://github.com/jnunemaker/javascripts\n", + "sakurada/test - id: 25075, url: https://github.com/sakurada/test\n", + "phedders/hobo-template - id: 25083, url: https://github.com/phedders/hobo-template\n", + "karnowski/test-spec-tmbundle - id: 25099, url: https://github.com/karnowski/test-spec-tmbundle\n", + "codemac/hriki - id: 25108, url: https://github.com/codemac/hriki\n", + "knodi/globalize_with_google - id: 25112, url: https://github.com/knodi/globalize_with_google\n", + "mwmitchell/snap - id: 25114, url: https://github.com/mwmitchell/snap\n", + "endisd/penrose-server - id: 25121, url: https://github.com/endisd/penrose-server\n", + "jaz303/droppy - id: 25129, url: https://github.com/jaz303/droppy\n", + "BadMinus/merb_paginate - id: 25150, url: https://github.com/BadMinus/merb_paginate\n", + "bmo/jupload - id: 25151, url: https://github.com/bmo/jupload\n", + "bronson/rzh - id: 25155, url: https://github.com/bronson/rzh\n", + "wesabe/git-tools - id: 25159, url: https://github.com/wesabe/git-tools\n", + "bronson/io - id: 25161, url: https://github.com/bronson/io\n", + "pd/dotfiles - id: 25162, url: https://github.com/pd/dotfiles\n", + "rgarver/opensocial - id: 25168, url: https://github.com/rgarver/opensocial\n", + "semdinsp/workflow - id: 25173, url: https://github.com/semdinsp/workflow\n", + "semdinsp/process - id: 25175, url: https://github.com/semdinsp/process\n", + "karnowski/ruby-tmbundle - id: 25180, url: https://github.com/karnowski/ruby-tmbundle\n", + "drnic/rubycocoa-cloned-apps - id: 25181, url: https://github.com/drnic/rubycocoa-cloned-apps\n", + "alltom/audio - id: 25188, url: https://github.com/alltom/audio\n", + "godfat/cubeat - id: 25193, url: https://github.com/godfat/cubeat\n", + "godfat/ludy - id: 25195, url: https://github.com/godfat/ludy\n", + "holtonma/golfap_old_2008 - id: 25204, url: https://github.com/holtonma/golfap_old_2008\n", + "devon/tiny_mce_plus - id: 25207, url: https://github.com/devon/tiny_mce_plus\n", + "kastner/elastic-css.tmbundle - id: 25213, url: https://github.com/kastner/elastic-css.tmbundle\n", + "jbroadway/sitellite - id: 25221, url: https://github.com/jbroadway/sitellite\n", + "scharfie/blog-slate-plugin - id: 25222, url: https://github.com/scharfie/blog-slate-plugin\n", + "magpieuk/utility_scripts - id: 25224, url: https://github.com/magpieuk/utility_scripts\n", + "SamSaffron/logviewer - id: 25225, url: https://github.com/SamSaffron/logviewer\n", + "remy/jquery-api-browser - id: 25229, url: https://github.com/remy/jquery-api-browser\n", + "jsyedidia/nu - id: 25230, url: https://github.com/jsyedidia/nu\n", + "mootoh/refe2-vim - id: 25232, url: https://github.com/mootoh/refe2-vim\n", + "markcatley/advanced_errors - id: 25233, url: https://github.com/markcatley/advanced_errors\n", + "kana/mootoh-vim-refe2 - id: 25238, url: https://github.com/kana/mootoh-vim-refe2\n", + "hegjon/enterprisebooking - id: 25245, url: https://github.com/hegjon/enterprisebooking\n", + "kings/alonetone - id: 25247, url: https://github.com/kings/alonetone\n", + "hex-ci/CodeIgniter-HMVC - id: 25252, url: https://github.com/hex-ci/CodeIgniter-HMVC\n", + "Curfew/laineth - id: 25255, url: https://github.com/Curfew/laineth\n", + "universal/rails_diff - id: 25257, url: https://github.com/universal/rails_diff\n", + "cho45/future - id: 25261, url: https://github.com/cho45/future\n", + "zwolu/zwtets - id: 25262, url: https://github.com/zwolu/zwtets\n", + "nelstrom/radiant-subscriber-lists-extension - id: 25276, url: https://github.com/nelstrom/radiant-subscriber-lists-extension\n", + "sponsoredbythewind/insoshi - id: 25288, url: https://github.com/sponsoredbythewind/insoshi\n", + "hirman/railsdb - id: 25305, url: https://github.com/hirman/railsdb\n", + "pieter/gitx - id: 25306, url: https://github.com/pieter/gitx\n", + "mhennemeyer/restful-authentication - id: 25308, url: https://github.com/mhennemeyer/restful-authentication\n", + "Limoto/arch - id: 25311, url: https://github.com/Limoto/arch\n", + "jtrupiano/ruby-on-rails-polymorphism-benchmarks - id: 25312, url: https://github.com/jtrupiano/ruby-on-rails-polymorphism-benchmarks\n", + "atduskgreg/slipcover - id: 25313, url: https://github.com/atduskgreg/slipcover\n", + "springnet/searchslides - id: 25316, url: https://github.com/springnet/searchslides\n", + "ivey/merb_doorman - id: 25317, url: https://github.com/ivey/merb_doorman\n", + "ipeev/flowergarden - id: 25320, url: https://github.com/ipeev/flowergarden\n", + "hamano/test - id: 25322, url: https://github.com/hamano/test\n", + "haeru/tefu - id: 25325, url: https://github.com/haeru/tefu\n", + "spranesh/lprog - id: 25330, url: https://github.com/spranesh/lprog\n", + "griff/judge - id: 25331, url: https://github.com/griff/judge\n", + "stef/wshare - id: 25332, url: https://github.com/stef/wshare\n", + "saev/mathdrill - id: 25334, url: https://github.com/saev/mathdrill\n", + "magnusjonsson/tidder-icfpc-2008 - id: 25338, url: https://github.com/magnusjonsson/tidder-icfpc-2008\n", + "apotonick/apotomo - id: 25348, url: https://github.com/apotonick/apotomo\n", + "bpot/boinc-haskell - id: 25360, url: https://github.com/bpot/boinc-haskell\n", + "lmacken/func - id: 25362, url: https://github.com/lmacken/func\n", + "leifkb/freecritters - id: 25363, url: https://github.com/leifkb/freecritters\n", + "klbostee/dumbo - id: 25372, url: https://github.com/klbostee/dumbo\n", + "wwwjscom/search - id: 25373, url: https://github.com/wwwjscom/search\n", + "ducduong/yuml - id: 25377, url: https://github.com/ducduong/yuml\n", + "nagey/jobyssey - id: 25386, url: https://github.com/nagey/jobyssey\n", + "marcus/property-management - id: 25390, url: https://github.com/marcus/property-management\n", + "imkite/klick - id: 25391, url: https://github.com/imkite/klick\n", + "nex3/pidgin-latex - id: 25402, url: https://github.com/nex3/pidgin-latex\n", + "wmadden/pariah-wallpaper - id: 25403, url: https://github.com/wmadden/pariah-wallpaper\n", + "otsune/foltia-the-next-generation - id: 25404, url: https://github.com/otsune/foltia-the-next-generation\n", + "rick/litestream - id: 25405, url: https://github.com/rick/litestream\n", + "wmadden/snake-3d - id: 25409, url: https://github.com/wmadden/snake-3d\n", + "wireframe/shard - id: 25412, url: https://github.com/wireframe/shard\n", + "newtonapple/math-libs - id: 25416, url: https://github.com/newtonapple/math-libs\n", + "ippa/acts_as_mysqlsearchable - id: 25420, url: https://github.com/ippa/acts_as_mysqlsearchable\n", + "spranesh/xkcdget - id: 25422, url: https://github.com/spranesh/xkcdget\n", + "endisd/test - id: 25424, url: https://github.com/endisd/test\n", + "tehcurtis/rplatform-rails - id: 25427, url: https://github.com/tehcurtis/rplatform-rails\n", + "mircea/tigus - id: 25434, url: https://github.com/mircea/tigus\n", + "springnet/lovd-by-less - id: 25440, url: https://github.com/springnet/lovd-by-less\n", + "potatosalad/active_merchant - id: 25441, url: https://github.com/potatosalad/active_merchant\n", + "buntekuh/git-wiki - id: 25442, url: https://github.com/buntekuh/git-wiki\n", + "potatosalad/rspec - id: 25443, url: https://github.com/potatosalad/rspec\n", + "footix/firstproject - id: 25449, url: https://github.com/footix/firstproject\n", + "footix/project01 - id: 25453, url: https://github.com/footix/project01\n", + "huzhenghui37/ppcat - id: 25458, url: https://github.com/huzhenghui37/ppcat\n", + "motemen/arrow-js - id: 25461, url: https://github.com/motemen/arrow-js\n", + "davecheney/make-gdc-apple - id: 25462, url: https://github.com/davecheney/make-gdc-apple\n", + "epall/tracks - id: 25463, url: https://github.com/epall/tracks\n", + "monojohnny/blogthief - id: 25467, url: https://github.com/monojohnny/blogthief\n", + "spatten/ruboss_rails_integration - id: 25468, url: https://github.com/spatten/ruboss_rails_integration\n", + "kinghajj/rpn - id: 25471, url: https://github.com/kinghajj/rpn\n", + "gandalfar/wp-fireeagle - id: 25472, url: https://github.com/gandalfar/wp-fireeagle\n", + "calavera/atompub-server - id: 25476, url: https://github.com/calavera/atompub-server\n", + "eadz/clickatell - id: 25478, url: https://github.com/eadz/clickatell\n", + "sekimura/greasemonkey-scripts - id: 25483, url: https://github.com/sekimura/greasemonkey-scripts\n", + "qartis/attack - id: 25487, url: https://github.com/qartis/attack\n", + "perplexes/gullery - id: 25491, url: https://github.com/perplexes/gullery\n", + "stevej/dfold - id: 25494, url: https://github.com/stevej/dfold\n", + "progmatica/clr_turing_test - id: 25500, url: https://github.com/progmatica/clr_turing_test\n", + "lemarsu/git-ssh - id: 25504, url: https://github.com/lemarsu/git-ssh\n", + "c1de0x/iphonelinux - id: 25518, url: https://github.com/c1de0x/iphonelinux\n", + "monojohnny/jdbc-tester - id: 25519, url: https://github.com/monojohnny/jdbc-tester\n", + "cyu/negative-captcha - id: 25520, url: https://github.com/cyu/negative-captcha\n", + "ruphy/g2t - id: 25523, url: https://github.com/ruphy/g2t\n", + "somebee/rbench - id: 25525, url: https://github.com/somebee/rbench\n", + "jakedahn/taboo - id: 25526, url: https://github.com/jakedahn/taboo\n", + "takai/jruby-dsl-example - id: 25528, url: https://github.com/takai/jruby-dsl-example\n", + "DrMark/skeleton - id: 25534, url: https://github.com/DrMark/skeleton\n", + "rauchg/mootools-more - id: 25543, url: https://github.com/rauchg/mootools-more\n", + "frugalware/frugalware-current - id: 25545, url: https://github.com/frugalware/frugalware-current\n", + "scharfie/harvest-slate-theme - id: 25546, url: https://github.com/scharfie/harvest-slate-theme\n", + "dekart/mygiftapp - id: 25549, url: https://github.com/dekart/mygiftapp\n", + "frugalware/frugalware-stable - id: 25550, url: https://github.com/frugalware/frugalware-stable\n", + "felipec/libgmsn - id: 25551, url: https://github.com/felipec/libgmsn\n", + "ymendel/fsevents - id: 25553, url: https://github.com/ymendel/fsevents\n", + "myles/django-photo-gallery - id: 25558, url: https://github.com/myles/django-photo-gallery\n", + "bronson/makefile-death - id: 25565, url: https://github.com/bronson/makefile-death\n", + "bryanjswift/mootools-plugins - id: 25571, url: https://github.com/bryanjswift/mootools-plugins\n", + "andrewguy9/kernelpanic - id: 25572, url: https://github.com/andrewguy9/kernelpanic\n", + "sween/intersys - id: 25577, url: https://github.com/sween/intersys\n", + "anotherjesse/droplet - id: 25578, url: https://github.com/anotherjesse/droplet\n", + "maddox/mobile_scores - id: 25581, url: https://github.com/maddox/mobile_scores\n", + "realcarlos/LeetCode - id: 25582, url: https://github.com/realcarlos/LeetCode\n", + "knewter/the-copypirate - id: 25589, url: https://github.com/knewter/the-copypirate\n", + "neshmi/restful-authentication - id: 25595, url: https://github.com/neshmi/restful-authentication\n", + "techpeace/asked_and_answered - id: 25597, url: https://github.com/techpeace/asked_and_answered\n", + "geoffreyd/gash - id: 25599, url: https://github.com/geoffreyd/gash\n", + "kings/jobberrails - id: 25605, url: https://github.com/kings/jobberrails\n", + "viz/trackmyjobs - id: 25606, url: https://github.com/viz/trackmyjobs\n", + "yob/san - id: 25609, url: https://github.com/yob/san\n", + "jacius/rubygame - id: 25613, url: https://github.com/jacius/rubygame\n", + "chriseppstein/rails - id: 25614, url: https://github.com/chriseppstein/rails\n", + "matthewtodd/icalendar_templates - id: 25615, url: https://github.com/matthewtodd/icalendar_templates\n", + "mpetnuch/latex-renderer - id: 25618, url: https://github.com/mpetnuch/latex-renderer\n", + "ianhard/brunny - id: 25619, url: https://github.com/ianhard/brunny\n", + "ianhard/radiant-gallery - id: 25620, url: https://github.com/ianhard/radiant-gallery\n", + "algnod/insoshi - id: 25630, url: https://github.com/algnod/insoshi\n", + "kehh/gna-hosting - id: 25642, url: https://github.com/kehh/gna-hosting\n", + "feed2imap/ruby-feedparser - id: 25652, url: https://github.com/feed2imap/ruby-feedparser\n", + "feed2imap/feed2imap - id: 25654, url: https://github.com/feed2imap/feed2imap\n", + "timcharper/uber-builder - id: 25655, url: https://github.com/timcharper/uber-builder\n", + "jasontorres/ibox_helper - id: 25657, url: https://github.com/jasontorres/ibox_helper\n", + "alenoosh/ojs - id: 25679, url: https://github.com/alenoosh/ojs\n", + "copyhacker/lucene_query - id: 25680, url: https://github.com/copyhacker/lucene_query\n", + "bkerley/chimichanga - id: 25687, url: https://github.com/bkerley/chimichanga\n", + "mellon85/demonadizer - id: 25689, url: https://github.com/mellon85/demonadizer\n", + "Pistos/authac - id: 25691, url: https://github.com/Pistos/authac\n", + "galeta/globalite - id: 25695, url: https://github.com/galeta/globalite\n", + "onno/dutchfaker - id: 25700, url: https://github.com/onno/dutchfaker\n", + "oleganza/literate - id: 25701, url: https://github.com/oleganza/literate\n", + "nitenichiryu/nbgit - id: 25704, url: https://github.com/nitenichiryu/nbgit\n", + "SamB/ohcount - id: 25710, url: https://github.com/SamB/ohcount\n", + "matteon/rails - id: 25715, url: https://github.com/matteon/rails\n", + "drogus/apache-upload-progress-module - id: 25721, url: https://github.com/drogus/apache-upload-progress-module\n", + "moklett/piston - id: 25724, url: https://github.com/moklett/piston\n", + "Calamitous/vim - id: 25726, url: https://github.com/Calamitous/vim\n", + "jaredat2nd/mydocuments - id: 25734, url: https://github.com/jaredat2nd/mydocuments\n", + "wmoxam/immutable-attribute-plugin - id: 25737, url: https://github.com/wmoxam/immutable-attribute-plugin\n", + "revolutionhealth/acts_as_seo_friendly - id: 25747, url: https://github.com/revolutionhealth/acts_as_seo_friendly\n", + "faultier/fastladder_plugin - id: 25758, url: https://github.com/faultier/fastladder_plugin\n", + "ku/autopagerize - id: 25760, url: https://github.com/ku/autopagerize\n", + "samaaron/monomer - id: 25770, url: https://github.com/samaaron/monomer\n", + "gottcode/novprog - id: 25775, url: https://github.com/gottcode/novprog\n", + "gottcode/cutemaze - id: 25776, url: https://github.com/gottcode/cutemaze\n", + "gottcode/gottet - id: 25777, url: https://github.com/gottcode/gottet\n", + "gottcode/tetzle - id: 25784, url: https://github.com/gottcode/tetzle\n", + "bigsur0/jetty-rails - id: 25787, url: https://github.com/bigsur0/jetty-rails\n", + "brianjlandau/unobtrusive_date_picker - id: 25791, url: https://github.com/brianjlandau/unobtrusive_date_picker\n", + "hendra/image-to-array - id: 25793, url: https://github.com/hendra/image-to-array\n", + "fkchang/jrsplenda - id: 25797, url: https://github.com/fkchang/jrsplenda\n", + "FooBarWidget/mikuru - id: 25804, url: https://github.com/FooBarWidget/mikuru\n", + "eastmedia/cinder - id: 25807, url: https://github.com/eastmedia/cinder\n", + "look/railz_scout - id: 25811, url: https://github.com/look/railz_scout\n", + "bguthrie/rake_commit_tasks - id: 25819, url: https://github.com/bguthrie/rake_commit_tasks\n", + "chris/markaby - id: 25821, url: https://github.com/chris/markaby\n", + "msepcot/svn_task - id: 25828, url: https://github.com/msepcot/svn_task\n", + "xwu/trait-o-matic - id: 25830, url: https://github.com/xwu/trait-o-matic\n", + "markbates/mack-more - id: 25833, url: https://github.com/markbates/mack-more\n", + "agibralter/github_textmate_theme - id: 25836, url: https://github.com/agibralter/github_textmate_theme\n", + "e12win/acts_as_state_machine - id: 25841, url: https://github.com/e12win/acts_as_state_machine\n", + "fhwang/activescaffold - id: 25855, url: https://github.com/fhwang/activescaffold\n", + "aaronchi/jrails - id: 25856, url: https://github.com/aaronchi/jrails\n", + "juliamae/soft_validations - id: 25866, url: https://github.com/juliamae/soft_validations\n", + "bumi/actsaslove - id: 25869, url: https://github.com/bumi/actsaslove\n", + "mbsullivan/sparklemotion - id: 25877, url: https://github.com/mbsullivan/sparklemotion\n", + "stigi/monomer - id: 25879, url: https://github.com/stigi/monomer\n", + "taylanpince/taylanpince - id: 25880, url: https://github.com/taylanpince/taylanpince\n", + "joakimk/caribbean-onslaught - id: 25881, url: https://github.com/joakimk/caribbean-onslaught\n", + "abhay/eunit - id: 25885, url: https://github.com/abhay/eunit\n", + "michaelmelanson/twitter_weatherbot - id: 25886, url: https://github.com/michaelmelanson/twitter_weatherbot\n", + "justindz/rubymud - id: 25893, url: https://github.com/justindz/rubymud\n", + "guan/active_scaffold - id: 25897, url: https://github.com/guan/active_scaffold\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tapajos/php-filesharing - id: 25900, url: https://github.com/tapajos/php-filesharing\n", + "peterkeen/emacs - id: 25906, url: https://github.com/peterkeen/emacs\n", + "jdhuntington/rinari - id: 25914, url: https://github.com/jdhuntington/rinari\n", + "nkchenz/zfspy - id: 25915, url: https://github.com/nkchenz/zfspy\n", + "jdunphy/kablame - id: 25918, url: https://github.com/jdunphy/kablame\n", + "janmejay/bakery - id: 25919, url: https://github.com/janmejay/bakery\n", + "tapajos/php-pagamento - id: 25920, url: https://github.com/tapajos/php-pagamento\n", + "Afton/whiteboard - id: 25921, url: https://github.com/Afton/whiteboard\n", + "larrytheliquid/paralyze - id: 25923, url: https://github.com/larrytheliquid/paralyze\n", + "tapajos/pocker-e-sueca - id: 25924, url: https://github.com/tapajos/pocker-e-sueca\n", + "bellroy/radiant-file-browser-extension - id: 25932, url: https://github.com/bellroy/radiant-file-browser-extension\n", + "SatoshiGardener/paperclip - id: 25937, url: https://github.com/SatoshiGardener/paperclip\n", + "adnanali/munch - id: 25940, url: https://github.com/adnanali/munch\n", + "lukec/yitancast - id: 25949, url: https://github.com/lukec/yitancast\n", + "uzytkownik/merb_restcontroller - id: 25954, url: https://github.com/uzytkownik/merb_restcontroller\n", + "akil-zz/qtwebkit - id: 25964, url: https://github.com/akil-zz/qtwebkit\n", + "dsp/vcap - id: 25975, url: https://github.com/dsp/vcap\n", + "toretore/experiments - id: 25976, url: https://github.com/toretore/experiments\n", + "nakao/proserver-netinstaller - id: 25984, url: https://github.com/nakao/proserver-netinstaller\n", + "matthijshorsman/testproject - id: 25994, url: https://github.com/matthijshorsman/testproject\n", + "h-lame/rails-sqlserver-adapter - id: 25997, url: https://github.com/h-lame/rails-sqlserver-adapter\n", + "ayoy/qtwitter - id: 25999, url: https://github.com/ayoy/qtwitter\n", + "scharfie/eztime - id: 26012, url: https://github.com/scharfie/eztime\n", + "open80/slugger - id: 26013, url: https://github.com/open80/slugger\n", + "adzap/date_time_text_field_helpers - id: 26016, url: https://github.com/adzap/date_time_text_field_helpers\n", + "peritus/django_templatecomponents - id: 26018, url: https://github.com/peritus/django_templatecomponents\n", + "lachie/appjour - id: 26023, url: https://github.com/lachie/appjour\n", + "Sutto/ninjahideout-toolkit - id: 26027, url: https://github.com/Sutto/ninjahideout-toolkit\n", + "morgdx/jfin-datemath - id: 26028, url: https://github.com/morgdx/jfin-datemath\n", + "schleyfox/ascends_viz - id: 26035, url: https://github.com/schleyfox/ascends_viz\n", + "Arbow/initiale - id: 26039, url: https://github.com/Arbow/initiale\n", + "Arbow/erlycache - id: 26040, url: https://github.com/Arbow/erlycache\n", + "quirkey/basecamphp - id: 26042, url: https://github.com/quirkey/basecamphp\n", + "mikea/scheme-llvm - id: 26048, url: https://github.com/mikea/scheme-llvm\n", + "dvrensk/tobago - id: 26052, url: https://github.com/dvrensk/tobago\n", + "inz/find_fu - id: 26055, url: https://github.com/inz/find_fu\n", + "dwalker/myapp - id: 26056, url: https://github.com/dwalker/myapp\n", + "pzingg/gapps-email-migration - id: 26060, url: https://github.com/pzingg/gapps-email-migration\n", + "dsutedja/foo - id: 26061, url: https://github.com/dsutedja/foo\n", + "kspaans/e-k-summer-08 - id: 26063, url: https://github.com/kspaans/e-k-summer-08\n", + "stigi/activediscogs - id: 26067, url: https://github.com/stigi/activediscogs\n", + "austinrfnd/kablame-gem - id: 26070, url: https://github.com/austinrfnd/kablame-gem\n", + "sponsoredbythewind/extlib - id: 26076, url: https://github.com/sponsoredbythewind/extlib\n", + "adamchronister/commercial-site-skin - id: 26077, url: https://github.com/adamchronister/commercial-site-skin\n", + "edavis10/tracks - id: 26080, url: https://github.com/edavis10/tracks\n", + "smart/standfor - id: 26094, url: https://github.com/smart/standfor\n", + "ripta/johnson - id: 26104, url: https://github.com/ripta/johnson\n", + "cschneid/sinatra-book - id: 26110, url: https://github.com/cschneid/sinatra-book\n", + "harm/exception_logger - id: 26111, url: https://github.com/harm/exception_logger\n", + "canadaduane/rubydoctest - id: 26119, url: https://github.com/canadaduane/rubydoctest\n", + "revolutionhealth/resources_controller - id: 26121, url: https://github.com/revolutionhealth/resources_controller\n", + "Zelnox/cruisecontrolrb - id: 26126, url: https://github.com/Zelnox/cruisecontrolrb\n", + "raggi/thin - id: 26127, url: https://github.com/raggi/thin\n", + "davie/jettybuilder - id: 26132, url: https://github.com/davie/jettybuilder\n", + "revolutionhealth/acts_as_paranoid - id: 26133, url: https://github.com/revolutionhealth/acts_as_paranoid\n", + "tenderlove/meowhub - id: 26135, url: https://github.com/tenderlove/meowhub\n", + "mikeymicrophone/basicblog - id: 26141, url: https://github.com/mikeymicrophone/basicblog\n", + "jmckible/lucifer - id: 26143, url: https://github.com/jmckible/lucifer\n", + "josephgrossberg/dotfiles-for-portable-configuration - id: 26145, url: https://github.com/josephgrossberg/dotfiles-for-portable-configuration\n", + "PhilGeek/bib - id: 26146, url: https://github.com/PhilGeek/bib\n", + "ismasan/mini_twitter - id: 26149, url: https://github.com/ismasan/mini_twitter\n", + "andreaja/ircbot - id: 26151, url: https://github.com/andreaja/ircbot\n", + "jgoizueta/float-formats - id: 26155, url: https://github.com/jgoizueta/float-formats\n", + "bryanl/simple-daemon - id: 26157, url: https://github.com/bryanl/simple-daemon\n", + "howcast/howcast-gem - id: 26160, url: https://github.com/howcast/howcast-gem\n", + "seancribbs/weewar - id: 26161, url: https://github.com/seancribbs/weewar\n", + "kad3nce/openid_dm_store - id: 26167, url: https://github.com/kad3nce/openid_dm_store\n", + "0x6e6562/shovel - id: 26173, url: https://github.com/0x6e6562/shovel\n", + "dougjohnston/restful-authentication - id: 26174, url: https://github.com/dougjohnston/restful-authentication\n", + "jgoizueta/ruby-decimal - id: 26191, url: https://github.com/jgoizueta/ruby-decimal\n", + "cjbottaro/has_easy - id: 26192, url: https://github.com/cjbottaro/has_easy\n", + "jgoizueta/nio - id: 26203, url: https://github.com/jgoizueta/nio\n", + "jgrimshi/rts - id: 26210, url: https://github.com/jgrimshi/rts\n", + "agent229/onn - id: 26213, url: https://github.com/agent229/onn\n", + "jomz/navigation_tags - id: 26222, url: https://github.com/jomz/navigation_tags\n", + "gwoo/ohlair - id: 26225, url: https://github.com/gwoo/ohlair\n", + "xkenneth/buildoutbuilder - id: 26232, url: https://github.com/xkenneth/buildoutbuilder\n", + "terrbear/logpwnr - id: 26236, url: https://github.com/terrbear/logpwnr\n", + "whatupdave/nant-build - id: 26243, url: https://github.com/whatupdave/nant-build\n", + "sousk/openid-engine - id: 26244, url: https://github.com/sousk/openid-engine\n", + "tmm1/nginxr - id: 26245, url: https://github.com/tmm1/nginxr\n", + "GUI/mini_magick - id: 26251, url: https://github.com/GUI/mini_magick\n", + "toddlipcon/plc - id: 26252, url: https://github.com/toddlipcon/plc\n", + "GUI/attachment_fu - id: 26254, url: https://github.com/GUI/attachment_fu\n", + "nofxx/rufi - id: 26255, url: https://github.com/nofxx/rufi\n", + "Aaron2Ti/records_sequence - id: 26258, url: https://github.com/Aaron2Ti/records_sequence\n", + "warrenfromaustin/scriptaculous - id: 26259, url: https://github.com/warrenfromaustin/scriptaculous\n", + "jflam/kanvas - id: 26261, url: https://github.com/jflam/kanvas\n", + "mikeymicrophone/splurgel - id: 26262, url: https://github.com/mikeymicrophone/splurgel\n", + "bcurren/cruisecontrolrb_perforce - id: 26264, url: https://github.com/bcurren/cruisecontrolrb_perforce\n", + "hokten/emlaksitesi - id: 26272, url: https://github.com/hokten/emlaksitesi\n", + "kstephens/ll - id: 26276, url: https://github.com/kstephens/ll\n", + "sudothinker/feather-slice - id: 26279, url: https://github.com/sudothinker/feather-slice\n", + "hamano/erlang-users.jp - id: 26283, url: https://github.com/hamano/erlang-users.jp\n", + "TylerRick/command-line - id: 26285, url: https://github.com/TylerRick/command-line\n", + "remco-xx/insoshi - id: 26287, url: https://github.com/remco-xx/insoshi\n", + "hotchpotch/hparser - id: 26288, url: https://github.com/hotchpotch/hparser\n", + "danielegozzi/radiant-extensions - id: 26295, url: https://github.com/danielegozzi/radiant-extensions\n", + "grossbart/photo-promenade - id: 26303, url: https://github.com/grossbart/photo-promenade\n", + "arunthampi/injour - id: 26309, url: https://github.com/arunthampi/injour\n", + "zmalltalker/tweettweet - id: 26313, url: https://github.com/zmalltalker/tweettweet\n", + "saimonmoore/waves - id: 26318, url: https://github.com/saimonmoore/waves\n", + "quamen/starjour - id: 26328, url: https://github.com/quamen/starjour\n", + "eadz/permalink_fu - id: 26333, url: https://github.com/eadz/permalink_fu\n", + "vlarsen/foosball - id: 26335, url: https://github.com/vlarsen/foosball\n", + "lutzky/linux_cs_primer - id: 26337, url: https://github.com/lutzky/linux_cs_primer\n", + "bioruby/bioruby - id: 26343, url: https://github.com/bioruby/bioruby\n", + "vlarsen/foostour - id: 26348, url: https://github.com/vlarsen/foostour\n", + "remco-xx/communityengine - id: 26353, url: https://github.com/remco-xx/communityengine\n", + "tdjohn/redfrog - id: 26358, url: https://github.com/tdjohn/redfrog\n", + "melo/thread--criticalsection - id: 26359, url: https://github.com/melo/thread--criticalsection\n", + "chrismear/twiller - id: 26361, url: https://github.com/chrismear/twiller\n", + "chriseppstein/freebase - id: 26367, url: https://github.com/chriseppstein/freebase\n", + "xkenneth/pydrill - id: 26369, url: https://github.com/xkenneth/pydrill\n", + "xkenneth/decoder - id: 26377, url: https://github.com/xkenneth/decoder\n", + "svenfuchs/rails - id: 26392, url: https://github.com/svenfuchs/rails\n", + "jmkogut/framework - id: 26396, url: https://github.com/jmkogut/framework\n", + "eastmedia/gitrails - id: 26400, url: https://github.com/eastmedia/gitrails\n", + "phedders/git-cont - id: 26412, url: https://github.com/phedders/git-cont\n", + "plugins-xx/ip_whitelist - id: 26414, url: https://github.com/plugins-xx/ip_whitelist\n", + "rpheath/has_params - id: 26420, url: https://github.com/rpheath/has_params\n", + "DesigningPatterns/hanna - id: 26424, url: https://github.com/DesigningPatterns/hanna\n", + "ezwerx/patient-pricer-rails - id: 26428, url: https://github.com/ezwerx/patient-pricer-rails\n", + "thechrisoshow/rails-sqlserver-adapter - id: 26433, url: https://github.com/thechrisoshow/rails-sqlserver-adapter\n", + "reinh/rubinius - id: 26434, url: https://github.com/reinh/rubinius\n", + "gentoofan23/gentoofan23-s-gentoo-repository - id: 26441, url: https://github.com/gentoofan23/gentoofan23-s-gentoo-repository\n", + "zuckschwerdt/asciidoc.tmbundle - id: 26443, url: https://github.com/zuckschwerdt/asciidoc.tmbundle\n", + "coderifous/mxtelecom_api - id: 26444, url: https://github.com/coderifous/mxtelecom_api\n", + "tobytripp/rake_commit_tasks - id: 26452, url: https://github.com/tobytripp/rake_commit_tasks\n", + "viking/coupler - id: 26456, url: https://github.com/viking/coupler\n", + "mislav/curly - id: 26460, url: https://github.com/mislav/curly\n", + "jbfeldis/upshot-smash-uploader - id: 26473, url: https://github.com/jbfeldis/upshot-smash-uploader\n", + "pelle/oauth - id: 26479, url: https://github.com/pelle/oauth\n", + "bryansray/has_messages - id: 26480, url: https://github.com/bryansray/has_messages\n", + "sproutit/sproutcore-tmbundle - id: 26481, url: https://github.com/sproutit/sproutcore-tmbundle\n", + "jamesarosen/grammar - id: 26482, url: https://github.com/jamesarosen/grammar\n", + "imedo/background - id: 26485, url: https://github.com/imedo/background\n", + "lukas/mailfactory - id: 26488, url: https://github.com/lukas/mailfactory\n", + "mikeymicrophone/smtpecho - id: 26492, url: https://github.com/mikeymicrophone/smtpecho\n", + "eric/rubyrrdtool - id: 26502, url: https://github.com/eric/rubyrrdtool\n", + "pelle/ezcrypto - id: 26503, url: https://github.com/pelle/ezcrypto\n", + "drnic/injour - id: 26504, url: https://github.com/drnic/injour\n", + "wr0ngway/nettica - id: 26506, url: https://github.com/wr0ngway/nettica\n", + "imedo/dry_plugin_test_helper - id: 26512, url: https://github.com/imedo/dry_plugin_test_helper\n", + "til/oauth - id: 26521, url: https://github.com/til/oauth\n", + "beastaugh/absolutify - id: 26529, url: https://github.com/beastaugh/absolutify\n", + "nothingmuch/poe-api-peek - id: 26535, url: https://github.com/nothingmuch/poe-api-peek\n", + "jcrosby/oauth - id: 26536, url: https://github.com/jcrosby/oauth\n", + "quirkey/flashdance - id: 26541, url: https://github.com/quirkey/flashdance\n", + "henrosoft/henrosoftbrickles - id: 26543, url: https://github.com/henrosoft/henrosoftbrickles\n", + "kspaans/kylicious - id: 26546, url: https://github.com/kspaans/kylicious\n", + "engineyard/vertebra-xen - id: 26548, url: https://github.com/engineyard/vertebra-xen\n", + "kspaans/geninterp - id: 26550, url: https://github.com/kspaans/geninterp\n", + "goodwink/hearth - id: 26553, url: https://github.com/goodwink/hearth\n", + "reddit-archive/reddit - id: 26554, url: https://github.com/reddit-archive/reddit\n", + "darrenhinderer/xbmc-ftp - id: 26558, url: https://github.com/darrenhinderer/xbmc-ftp\n", + "quelgar/capkit - id: 26560, url: https://github.com/quelgar/capkit\n", + "gizm0duck/happy_seo - id: 26561, url: https://github.com/gizm0duck/happy_seo\n", + "cmak/reddit - id: 26562, url: https://github.com/cmak/reddit\n", + "pedro/rack - id: 26566, url: https://github.com/pedro/rack\n", + "shakaran/apogeus - id: 26577, url: https://github.com/shakaran/apogeus\n", + "tikhon/rails-footnotes - id: 26579, url: https://github.com/tikhon/rails-footnotes\n", + "3n/inputclear - id: 26582, url: https://github.com/3n/inputclear\n", + "steffen/ext.ux.rowwithcellselectionmodel - id: 26583, url: https://github.com/steffen/ext.ux.rowwithcellselectionmodel\n", + "gerrit/spec_integration - id: 26589, url: https://github.com/gerrit/spec_integration\n", + "agiletortoise/attachment_fu - id: 26592, url: https://github.com/agiletortoise/attachment_fu\n", + "ckhsponge/pokerpronto - id: 26594, url: https://github.com/ckhsponge/pokerpronto\n", + "Pistos/ramaze-book - id: 26610, url: https://github.com/Pistos/ramaze-book\n", + "vanntastic/uploadcolumn - id: 26625, url: https://github.com/vanntastic/uploadcolumn\n", + "maimuzo/rockettest - id: 26628, url: https://github.com/maimuzo/rockettest\n", + "mja/connector - id: 26630, url: https://github.com/mja/connector\n", + "jschementi/kanvas - id: 26631, url: https://github.com/jschementi/kanvas\n", + "shenry/crushlogic - id: 26642, url: https://github.com/shenry/crushlogic\n", + "n8agrin/minify-urls-for-twitter - id: 26643, url: https://github.com/n8agrin/minify-urls-for-twitter\n", + "dongbin/faster-xml-simple - id: 26648, url: https://github.com/dongbin/faster-xml-simple\n", + "gislan/gsoc - id: 26649, url: https://github.com/gislan/gsoc\n", + "azabaj/restful-authentication - id: 26655, url: https://github.com/azabaj/restful-authentication\n", + "robin/chit - id: 26657, url: https://github.com/robin/chit\n", + "electric/savatrise - id: 26660, url: https://github.com/electric/savatrise\n", + "peritustest/testremotegitreposync - id: 26663, url: https://github.com/peritustest/testremotegitreposync\n", + "h-lame/factory_bot - id: 26664, url: https://github.com/h-lame/factory_bot\n", + "TylerRick/first_name_equivalencies - id: 26669, url: https://github.com/TylerRick/first_name_equivalencies\n", + "aunderwo/sprolog - id: 26673, url: https://github.com/aunderwo/sprolog\n", + "TylerRick/nick_names - id: 26674, url: https://github.com/TylerRick/nick_names\n", + "lvv/git-prompt - id: 26676, url: https://github.com/lvv/git-prompt\n", + "robin/chitsheet - id: 26677, url: https://github.com/robin/chitsheet\n", + "credmp/maven-emacs-plugin - id: 26695, url: https://github.com/credmp/maven-emacs-plugin\n", + "matthewrudy/rudeq - id: 26703, url: https://github.com/matthewrudy/rudeq\n", + "ryanwood/logging - id: 26708, url: https://github.com/ryanwood/logging\n", + "GFunk911/tracks - id: 26712, url: https://github.com/GFunk911/tracks\n", + "oomu/sproutcore-samples - id: 26714, url: https://github.com/oomu/sproutcore-samples\n", + "simonoff/rails-smslink-plugin - id: 26716, url: https://github.com/simonoff/rails-smslink-plugin\n", + "nick/mephisto_feedback - id: 26723, url: https://github.com/nick/mephisto_feedback\n", + "pfig/net--fireeagle - id: 26743, url: https://github.com/pfig/net--fireeagle\n", + "thechrisoshow/shoulda - id: 26746, url: https://github.com/thechrisoshow/shoulda\n", + "whistlerbrk/biotools - id: 26750, url: https://github.com/whistlerbrk/biotools\n", + "gotascii/crags - id: 26754, url: https://github.com/gotascii/crags\n", + "kumo/partial_range.rb - id: 26756, url: https://github.com/kumo/partial_range.rb\n", + "jipumarino/matricula - id: 26759, url: https://github.com/jipumarino/matricula\n", + "SFEley/habtm_list - id: 26760, url: https://github.com/SFEley/habtm_list\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "yoon/icalendar - id: 26765, url: https://github.com/yoon/icalendar\n", + "kazjote/multitest - id: 26767, url: https://github.com/kazjote/multitest\n", + "exceptional/exceptional - id: 26774, url: https://github.com/exceptional/exceptional\n", + "ds-vmurthy/testvmdf - id: 26779, url: https://github.com/ds-vmurthy/testvmdf\n", + "s5ot/futulina - id: 26782, url: https://github.com/s5ot/futulina\n", + "sw0rdfish/demo - id: 26784, url: https://github.com/sw0rdfish/demo\n", + "shuyo/cpp - id: 26786, url: https://github.com/shuyo/cpp\n", + "foysavas/dm-geokit - id: 26787, url: https://github.com/foysavas/dm-geokit\n", + "dbussink/dm-searchable - id: 26794, url: https://github.com/dbussink/dm-searchable\n", + "dbergey/task-tmbundle - id: 26797, url: https://github.com/dbergey/task-tmbundle\n", + "reframeit/merb-core - id: 26803, url: https://github.com/reframeit/merb-core\n", + "klauern/rubyscriptlibrary - id: 26805, url: https://github.com/klauern/rubyscriptlibrary\n", + "lancecarlson/rspec_basecamp - id: 26809, url: https://github.com/lancecarlson/rspec_basecamp\n", + "foysavas/geokit-core - id: 26810, url: https://github.com/foysavas/geokit-core\n", + "andrew/bumble - id: 26814, url: https://github.com/andrew/bumble\n", + "e12win/aasm - id: 26815, url: https://github.com/e12win/aasm\n", + "ryanb/render-caching - id: 26816, url: https://github.com/ryanb/render-caching\n", + "pangloss/query_trace - id: 26826, url: https://github.com/pangloss/query_trace\n", + "anttih/libgrowl - id: 26833, url: https://github.com/anttih/libgrowl\n", + "codeprimate/video-library - id: 26840, url: https://github.com/codeprimate/video-library\n", + "ssantiago/rufi - id: 26841, url: https://github.com/ssantiago/rufi\n", + "codeprimate/password-vault - id: 26844, url: https://github.com/codeprimate/password-vault\n", + "codeprimate/scripts - id: 26845, url: https://github.com/codeprimate/scripts\n", + "shut1n/testing - id: 26846, url: https://github.com/shut1n/testing\n", + "dmichael/merb-uploader - id: 26852, url: https://github.com/dmichael/merb-uploader\n", + "dylanz/tsearchable - id: 26865, url: https://github.com/dylanz/tsearchable\n", + "andry1/acts_as_rateable - id: 26867, url: https://github.com/andry1/acts_as_rateable\n", + "ynadji/ilocation - id: 26882, url: https://github.com/ynadji/ilocation\n", + "cradle/dotfiles - id: 26886, url: https://github.com/cradle/dotfiles\n", + "cradle/utilities - id: 26887, url: https://github.com/cradle/utilities\n", + "tmm1/erlectricity - id: 26891, url: https://github.com/tmm1/erlectricity\n", + "bryanjswift/mootools-more - id: 26892, url: https://github.com/bryanjswift/mootools-more\n", + "kkubasik/grace-church - id: 26893, url: https://github.com/kkubasik/grace-church\n", + "cho45/lt.js - id: 26895, url: https://github.com/cho45/lt.js\n", + "paxx2/rails-base - id: 26903, url: https://github.com/paxx2/rails-base\n", + "joho/mapmaker - id: 26905, url: https://github.com/joho/mapmaker\n", + "sdague/smugrb - id: 26911, url: https://github.com/sdague/smugrb\n", + "cndreisbach/talk_oscon2008_rails_plugins - id: 26913, url: https://github.com/cndreisbach/talk_oscon2008_rails_plugins\n", + "MrJag/ghost - id: 26914, url: https://github.com/MrJag/ghost\n", + "app/ananas-labs - id: 26922, url: https://github.com/app/ananas-labs\n", + "mcm-xx/redmine - id: 26924, url: https://github.com/mcm-xx/redmine\n", + "mattapayne/jambase4rails - id: 26930, url: https://github.com/mattapayne/jambase4rails\n", + "pangloss/active_merchant - id: 26932, url: https://github.com/pangloss/active_merchant\n", + "melriffe/spatial_adapter - id: 26945, url: https://github.com/melriffe/spatial_adapter\n", + "nitenichiryu/fuzed - id: 26949, url: https://github.com/nitenichiryu/fuzed\n", + "keita/wpjkit - id: 26951, url: https://github.com/keita/wpjkit\n", + "duxzitta/infopool.web.uba - id: 26952, url: https://github.com/duxzitta/infopool.web.uba\n", + "patmaddox/starter-app - id: 26953, url: https://github.com/patmaddox/starter-app\n", + "nowa/chitsheet - id: 26958, url: https://github.com/nowa/chitsheet\n", + "nowa/chit - id: 26960, url: https://github.com/nowa/chit\n", + "dkr/ananas-labs - id: 26961, url: https://github.com/dkr/ananas-labs\n", + "dchelimsky/thor-git - id: 26962, url: https://github.com/dchelimsky/thor-git\n", + "Empact/polymorphic_include - id: 26967, url: https://github.com/Empact/polymorphic_include\n", + "smingins/zookeeper - id: 26968, url: https://github.com/smingins/zookeeper\n", + "roidrage/activemessaging - id: 26974, url: https://github.com/roidrage/activemessaging\n", + "Narnach/minitest - id: 26980, url: https://github.com/Narnach/minitest\n", + "spejman/bn4r - id: 26987, url: https://github.com/spejman/bn4r\n", + "spejman/gga4r - id: 26988, url: https://github.com/spejman/gga4r\n", + "spejman/festivaltts4r - id: 26994, url: https://github.com/spejman/festivaltts4r\n", + "FND/todotxt - id: 26995, url: https://github.com/FND/todotxt\n", + "simon-engledew/mootools-core - id: 27001, url: https://github.com/simon-engledew/mootools-core\n", + "sg/xmpp4r - id: 27002, url: https://github.com/sg/xmpp4r\n", + "rubys/riggr - id: 27006, url: https://github.com/rubys/riggr\n", + "mixonic/tables_on_cows - id: 27032, url: https://github.com/mixonic/tables_on_cows\n", + "dtsato/jist - id: 27037, url: https://github.com/dtsato/jist\n", + "tpope/vim-haml - id: 27039, url: https://github.com/tpope/vim-haml\n", + "kastner/inspiration - id: 27042, url: https://github.com/kastner/inspiration\n", + "revolutionhealth/config_loader - id: 27045, url: https://github.com/revolutionhealth/config_loader\n", + "radiant/radiant - id: 27046, url: https://github.com/radiant/radiant\n", + "gotascii/rmonome - id: 27048, url: https://github.com/gotascii/rmonome\n", + "radiant/radiant-extension-registry - id: 27053, url: https://github.com/radiant/radiant-extension-registry\n", + "radiant/radiant-prototype - id: 27055, url: https://github.com/radiant/radiant-prototype\n", + "radiant/radiant-trac - id: 27059, url: https://github.com/radiant/radiant-trac\n", + "radiant/radiant-wiki - id: 27061, url: https://github.com/radiant/radiant-wiki\n", + "lsegal/couchio - id: 27063, url: https://github.com/lsegal/couchio\n", + "radiant/radiant-artwork - id: 27065, url: https://github.com/radiant/radiant-artwork\n", + "radiant/radiant-mockups - id: 27066, url: https://github.com/radiant/radiant-mockups\n", + "lsegal/couch-todo - id: 27067, url: https://github.com/lsegal/couch-todo\n", + "radiant/radiant-website - id: 27068, url: https://github.com/radiant/radiant-website\n", + "noahlt/dotfiles - id: 27071, url: https://github.com/noahlt/dotfiles\n", + "radiant/radiant-aggregation-extension - id: 27073, url: https://github.com/radiant/radiant-aggregation-extension\n", + "elim/dotfiles - id: 27081, url: https://github.com/elim/dotfiles\n", + "radiant/radiant-import-export-extension - id: 27082, url: https://github.com/radiant/radiant-import-export-extension\n", + "radiant/radiant-page-attachments-extension - id: 27085, url: https://github.com/radiant/radiant-page-attachments-extension\n", + "saturnflyer/radiant - id: 27087, url: https://github.com/saturnflyer/radiant\n", + "radiant/radiant-search-extension - id: 27088, url: https://github.com/radiant/radiant-search-extension\n", + "revolutionhealth/metrics - id: 27090, url: https://github.com/revolutionhealth/metrics\n", + "radiant/radiant-event-calendar-extension - id: 27091, url: https://github.com/radiant/radiant-event-calendar-extension\n", + "radiant/radiant-ldap-extension - id: 27092, url: https://github.com/radiant/radiant-ldap-extension\n", + "saturnflyer/radiant-prototype - id: 27093, url: https://github.com/saturnflyer/radiant-prototype\n", + "saturnflyer/radiant-aggregation-extension - id: 27094, url: https://github.com/saturnflyer/radiant-aggregation-extension\n", + "radiant/radiant-related-content-extension - id: 27095, url: https://github.com/radiant/radiant-related-content-extension\n", + "JGailor/photoclimbingroutes - id: 27096, url: https://github.com/JGailor/photoclimbingroutes\n", + "radiant/radiant-share-layouts-extension - id: 27107, url: https://github.com/radiant/radiant-share-layouts-extension\n", + "radiant/radiant-link-roll-extension - id: 27108, url: https://github.com/radiant/radiant-link-roll-extension\n", + "radiant/radiant-reorder-extension - id: 27109, url: https://github.com/radiant/radiant-reorder-extension\n", + "radiant/radiant-mailer-extension - id: 27111, url: https://github.com/radiant/radiant-mailer-extension\n", + "radiant/radiant-multi-site-extension - id: 27114, url: https://github.com/radiant/radiant-multi-site-extension\n", + "radiant/radiant-scheduler-extension - id: 27116, url: https://github.com/radiant/radiant-scheduler-extension\n", + "shadowmaru/brazilian-rails - id: 27126, url: https://github.com/shadowmaru/brazilian-rails\n" + ] + }, + { + "ename": "ForbiddenError", + "evalue": "403 API rate limit exceeded for 138.199.5.98. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mForbiddenError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mrepository\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mgh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mall_repositories\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'{0} - id: {0.id}, url: {0.html_url}'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrepository\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\github3\\structs.py\u001b[0m in \u001b[0;36m__iter__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 87\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0metag\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mresponse\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mheaders\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"ETag\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 88\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 89\u001b[1;33m \u001b[0mjson\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_json\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 90\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 91\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mjson\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\github3\\structs.py\u001b[0m in \u001b[0;36m_get_json\u001b[1;34m(self, response)\u001b[0m\n\u001b[0;32m 134\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_get_json\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mresponse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 136\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_json\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m200\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 137\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 138\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mrefresh\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mconditional\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\github3\\models.py\u001b[0m in \u001b[0;36m_json\u001b[1;34m(self, response, expected_status_code, include_cache_info)\u001b[0m\n\u001b[0;32m 151\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mactual_status_code\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[0mexpected_status_code\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 152\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mactual_status_code\u001b[0m \u001b[1;33m>=\u001b[0m \u001b[1;36m400\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 153\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mexceptions\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0merror_for\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 154\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 155\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mactual_status_code\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m304\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mForbiddenError\u001b[0m: 403 API rate limit exceeded for 138.199.5.98. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" + ] } ], - "metadata": {} + "source": [ + "for repository in gh.all_repositories():\n", + " print('{0} - id: {0.id}, url: {0.html_url}'.format(repository))" + ] } - ] -} \ No newline at end of file + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/example-notebooks/contents-api.ipynb b/example-notebooks/contents-api.ipynb index a71357553..261aadf9e 100644 --- a/example-notebooks/contents-api.ipynb +++ b/example-notebooks/contents-api.ipynb @@ -1,612 +1,595 @@ { - "metadata": { - "name": "", - "signature": "sha256:2a5438fc20dfd72328eb42f08327a4c176de03fe0009f6a33ecd15f27d7f51df" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "Contents API" - ] - }, - { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Retrieving a File's Contents" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import github3" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "repo = github3.repository('sigmavirus24', 'github3.py')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "contents = repo.file_contents('github3/repos/contents.py')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we have the contents of the file at `github3/repos/contents.py` we can get information about it. We can find the name, the SHA of the commit that most recently updated it, etc." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(contents.name)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "contents.py\n" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(contents.sha)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "ec9f27e0cc18a5440952ebb7dc9b3b9402b93702\n" - ] - } - ], - "prompt_number": 5 - }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Contents API" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Retrieving a File's Contents" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import github3" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "repo = github3.repository('sigmavirus24', 'github3.py')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "contents = repo.file_contents('github3/repos/contents.py')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have the contents of the file at `github3/repos/contents.py` we can get information about it. We can find the name, the SHA of the commit that most recently updated it, etc." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also get the contents of the file:" + "name": "stdout", + "output_type": "stream", + "text": [ + "contents.py\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(contents.content)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIiIiCmdpdGh1YjMucmVwb3MuY29u\n", - "dGVudHMKPT09PT09PT09PT09PT09PT09PT09PQoKVGhpcyBtb2R1bGUgY29u\n", - "dGFpbnMgdGhlIENvbnRlbnRzIG9iamVjdCBwZXJ0YWluaW5nIHRvIFJFQURN\n", - "RXMgYW5kIG90aGVyIGZpbGVzCnRoYXQgY2FuIGJlIGFjY2Vzc2VkIHZpYSB0\n", - "aGUgR2l0SHViIEFQSS4KCiIiIgpmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVu\n", - "aWNvZGVfbGl0ZXJhbHMKCmZyb20ganNvbiBpbXBvcnQgZHVtcHMKZnJvbSBi\n", - "YXNlNjQgaW1wb3J0IGI2NGRlY29kZSwgYjY0ZW5jb2RlCmZyb20gLi5naXQg\n", - "aW1wb3J0IENvbW1pdApmcm9tIC4ubW9kZWxzIGltcG9ydCBHaXRIdWJDb3Jl\n", - "CmZyb20gLi5kZWNvcmF0b3JzIGltcG9ydCByZXF1aXJlc19hdXRoCgoKY2xh\n", - "c3MgQ29udGVudHMoR2l0SHViQ29yZSk6CiAgICAiIiJUaGUgOmNsYXNzOmBD\n", - "b250ZW50cyA8Q29udGVudHM+YCBvYmplY3QuIEl0IGhvbGRzIHRoZSBpbmZv\n", - "cm1hdGlvbgogICAgY29uY2VybmluZyBhbnkgY29udGVudCBpbiBhIHJlcG9z\n", - "aXRvcnkgcmVxdWVzdGVkIHZpYSB0aGUgQVBJLgoKICAgIFR3byBjb250ZW50\n", - "IGluc3RhbmNlcyBjYW4gYmUgY2hlY2tlZCBsaWtlIHNvOjoKCiAgICAgICAg\n", - "YzEgPT0gYzIKICAgICAgICBjMSAhPSBjMgoKICAgIEFuZCBpcyBlcXVpdmFs\n", - "ZW50IHRvOjoKCiAgICAgICAgYzEuc2hhID09IGMyLnNoYQogICAgICAgIGMx\n", - "LnNoYSAhPSBjMi5zaGEKCiAgICBTZWUgYWxzbzogaHR0cDovL2RldmVsb3Bl\n", - "ci5naXRodWIuY29tL3YzL3JlcG9zL2NvbnRlbnRzLwogICAgIiIiCiAgICBk\n", - "ZWYgX3VwZGF0ZV9hdHRyaWJ1dGVzKHNlbGYsIGNvbnRlbnQpOgogICAgICAg\n", - "ICMgbGlua3MKICAgICAgICBzZWxmLl9hcGkgPSBjb250ZW50LmdldCgndXJs\n", - "JykKICAgICAgICAjOiBEaWN0aW9uYXJ5IG9mIGxpbmtzCiAgICAgICAgc2Vs\n", - "Zi5saW5rcyA9IGNvbnRlbnQuZ2V0KCdfbGlua3MnKQoKICAgICAgICAjOiBV\n", - "Ukwgb2YgdGhlIFJFQURNRSBvbiBnaXRodWIuY29tCiAgICAgICAgc2VsZi5o\n", - "dG1sX3VybCA9IGNvbnRlbnQuZ2V0KCdodG1sX3VybCcpCgogICAgICAgICM6\n", - "IFVSTCBmb3IgdGhlIGdpdCBhcGkgcGVydGFpbmluZyB0byB0aGUgUkVBRE1F\n", - "CiAgICAgICAgc2VsZi5naXRfdXJsID0gY29udGVudC5nZXQoJ2dpdF91cmwn\n", - "KQoKICAgICAgICAjOiBnaXQ6Ly8gVVJMIG9mIHRoZSBjb250ZW50IGlmIGl0\n", - "IGlzIGEgc3VibW9kdWxlCiAgICAgICAgc2VsZi5zdWJtb2R1bGVfZ2l0X3Vy\n", - "bCA9IGNvbnRlbnQuZ2V0KCdzdWJtb2R1bGVfZ2l0X3VybCcpCgogICAgICAg\n", - "ICMgc2hvdWxkIGFsd2F5cyBiZSAnYmFzZTY0JwogICAgICAgICM6IFJldHVy\n", - "bnMgZW5jb2RpbmcgdXNlZCBvbiB0aGUgY29udGVudC4KICAgICAgICBzZWxm\n", - "LmVuY29kaW5nID0gY29udGVudC5nZXQoJ2VuY29kaW5nJywgJycpCgogICAg\n", - "ICAgICMgY29udGVudCwgYmFzZTY0IGVuY29kZWQgYW5kIGRlY29kZWQKICAg\n", - "ICAgICAjOiBCYXNlNjQtZW5jb2RlZCBjb250ZW50IG9mIHRoZSBmaWxlLgog\n", - "ICAgICAgIHNlbGYuY29udGVudCA9IGNvbnRlbnQuZ2V0KCdjb250ZW50Jywg\n", - "JycpCgogICAgICAgICM6IERlY29kZWQgY29udGVudCBvZiB0aGUgZmlsZSBh\n", - "cyBhIGJ5dGVzIG9iamVjdC4gSWYgd2UgdHJ5IHRvIGRlY29kZQogICAgICAg\n", - "ICM6IHRvIGNoYXJhY3RlciBzZXQgZm9yIHlvdSwgd2UgbWlnaHQgZW5jb3Vu\n", - "dGVyIGFuIGV4Y2VwdGlvbiB3aGljaAogICAgICAgICM6IHdpbGwgcHJldmVu\n", - "dCB0aGUgb2JqZWN0IGZyb20gYmVpbmcgY3JlYXRlZC4gT24gcHl0aG9uMiB0\n", - "aGlzIGlzIHRoZQogICAgICAgICM6IHNhbWUgYXMgYSBzdHJpbmcsIGJ1dCBv\n", - "biBweXRob24zIHlvdSBzaG91bGQgY2FsbCB0aGUgZGVjb2RlIG1ldGhvZAog\n", - "ICAgICAgICM6IHdpdGggdGhlIGNoYXJhY3RlciBzZXQgeW91IHdpc2ggdG8g\n", - "dXNlLCBlLmcuLAogICAgICAgICM6IGBgY29udGVudC5kZWNvZGVkLmRlY29k\n", - "ZSgndXRmLTgnKWBgLgogICAgICAgICM6IC4uIHZlcnNpb25jaGFuZ2VkOjog\n", - "MC41LjIKICAgICAgICBzZWxmLmRlY29kZWQgPSAnJwogICAgICAgIGlmIHNl\n", - "bGYuZW5jb2RpbmcgPT0gJ2Jhc2U2NCcgYW5kIHNlbGYuY29udGVudDoKICAg\n", - "ICAgICAgICAgc2VsZi5kZWNvZGVkID0gYjY0ZGVjb2RlKHNlbGYuY29udGVu\n", - "dC5lbmNvZGUoKSkKCiAgICAgICAgIyBmaWxlIG5hbWUsIHBhdGgsIGFuZCBz\n", - "aXplCiAgICAgICAgIzogTmFtZSBvZiB0aGUgY29udGVudC4KICAgICAgICBz\n", - "ZWxmLm5hbWUgPSBjb250ZW50LmdldCgnbmFtZScsICcnKQogICAgICAgICM6\n", - "IFBhdGggdG8gdGhlIGNvbnRlbnQuCiAgICAgICAgc2VsZi5wYXRoID0gY29u\n", - "dGVudC5nZXQoJ3BhdGgnLCAnJykKICAgICAgICAjOiBTaXplIG9mIHRoZSBj\n", - "b250ZW50CiAgICAgICAgc2VsZi5zaXplID0gY29udGVudC5nZXQoJ3NpemUn\n", - "LCAwKQogICAgICAgICM6IFNIQSBzdHJpbmcuCiAgICAgICAgc2VsZi5zaGEg\n", - "PSBjb250ZW50LmdldCgnc2hhJywgJycpCiAgICAgICAgIzogVHlwZSBvZiBj\n", - "b250ZW50LiAoJ2ZpbGUnLCAnc3ltbGluaycsICdzdWJtb2R1bGUnKQogICAg\n", - "ICAgIHNlbGYudHlwZSA9IGNvbnRlbnQuZ2V0KCd0eXBlJywgJycpCiAgICAg\n", - "ICAgIzogVGFyZ2V0IHdpbGwgb25seSBiZSBzZXQgb2YgdHlwZSBpcyBhIHN5\n", - "bWxpbmsuIFRoaXMgaXMgd2hhdCB0aGUgbGluawogICAgICAgICM6IHBvaW50\n", - "cyB0bwogICAgICAgIHNlbGYudGFyZ2V0ID0gY29udGVudC5nZXQoJ3Rhcmdl\n", - "dCcsICcnKQoKICAgICAgICBzZWxmLl91bmlxID0gc2VsZi5zaGEKCiAgICBk\n", - "ZWYgX3JlcHIoc2VsZik6CiAgICAgICAgcmV0dXJuICc8Q29udGVudCBbezB9\n", - "XT4nLmZvcm1hdChzZWxmLnBhdGgpCgogICAgZGVmIF9fZXFfXyhzZWxmLCBv\n", - "dGhlcik6CiAgICAgICAgcmV0dXJuIHNlbGYuZGVjb2RlZCA9PSBvdGhlcgoK\n", - "ICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgogICAgICAgIHJldHVybiBz\n", - "ZWxmLnNoYSAhPSBvdGhlcgoKICAgIEByZXF1aXJlc19hdXRoCiAgICBkZWYg\n", - "ZGVsZXRlKHNlbGYsIG1lc3NhZ2UsIGNvbW1pdHRlcj1Ob25lLCBhdXRob3I9\n", - "Tm9uZSk6CiAgICAgICAgIiIiRGVsZXRlIHRoaXMgZmlsZS4KCiAgICAgICAg\n", - "OnBhcmFtIHN0ciBtZXNzYWdlOiAocmVxdWlyZWQpLCBjb21taXQgbWVzc2Fn\n", - "ZSB0byBkZXNjcmliZSB0aGUgcmVtb3ZhbAogICAgICAgIDpwYXJhbSBkaWN0\n", - "IGNvbW1pdHRlcjogKG9wdGlvbmFsKSwgaWYgbm8gaW5mb3JtYXRpb24gaXMg\n", - "Z2l2ZW4gdGhlCiAgICAgICAgICAgIGF1dGhlbnRpY2F0ZWQgdXNlcidzIGlu\n", - "Zm9ybWF0aW9uIHdpbGwgYmUgdXNlZC4gWW91IG11c3Qgc3BlY2lmeQogICAg\n", - "ICAgICAgICBib3RoIGEgbmFtZSBhbmQgZW1haWwuCiAgICAgICAgOnBhcmFt\n", - "IGRpY3QgYXV0aG9yOiAob3B0aW9uYWwpLCBpZiBvbWl0dGVkIHRoaXMgd2ls\n", - "bCBiZSBmaWxsZWQgaW4gd2l0aAogICAgICAgICAgICBjb21taXR0ZXIgaW5m\n", - "b3JtYXRpb24uIElmIHBhc3NlZCwgeW91IG11c3Qgc3BlY2lmeSBib3RoIGEg\n", - "bmFtZSBhbmQKICAgICAgICAgICAgZW1haWwuCiAgICAgICAgOnJldHVybnM6\n", - "IGRpY3Rpb25hcnkgb2YgbmV3IGNvbnRlbnQgYW5kIGFzc29jaWF0ZWQgY29t\n", - "bWl0CiAgICAgICAgOnJ0eXBlOiA6Y2xhc3M6YH5naXRodWIzLnJlcG9zLmNv\n", - "bnRlbnRzLkNvbnRlbnRzYCBhbmQKICAgICAgICAgICAgOmNsYXNzOmB+Z2l0\n", - "aHViMy5naXQuQ29tbWl0YAogICAgICAgICIiIgogICAgICAgIGpzb24gPSB7\n", - "fQogICAgICAgIGlmIG1lc3NhZ2U6CiAgICAgICAgICAgIGRhdGEgPSB7J21l\n", - "c3NhZ2UnOiBtZXNzYWdlLCAnc2hhJzogc2VsZi5zaGEsCiAgICAgICAgICAg\n", - "ICAgICAgICAgJ2NvbW1pdHRlcic6IHZhbGlkYXRlX2NvbW1taXR0ZXIoY29t\n", - "bWl0dGVyKSwKICAgICAgICAgICAgICAgICAgICAnYXV0aG9yJzogdmFsaWRh\n", - "dGVfY29tbW1pdHRlcihhdXRob3IpfQogICAgICAgICAgICBzZWxmLl9yZW1v\n", - "dmVfbm9uZShkYXRhKQogICAgICAgICAgICBqc29uID0gc2VsZi5fanNvbihz\n", - "ZWxmLl9kZWxldGUoc2VsZi5fYXBpLCBkYXRhPWR1bXBzKGRhdGEpKSwgMjAw\n", - "KQogICAgICAgICAgICBpZiAnY29tbWl0JyBpbiBqc29uOgogICAgICAgICAg\n", - "ICAgICAganNvblsnY29tbWl0J10gPSBDb21taXQoanNvblsnY29tbWl0J10s\n", - "IHNlbGYpCiAgICAgICAgICAgIGlmICdjb250ZW50JyBpbiBqc29uOgogICAg\n", - "ICAgICAgICAgICAganNvblsnY29udGVudCddID0gc2VsZi5faW5zdGFuY2Vf\n", - "b3JfbnVsbChDb250ZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAg\n", - "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvblsnY29udGVudCdd\n", - "KQogICAgICAgIHJldHVybiBqc29uCgogICAgQHJlcXVpcmVzX2F1dGgKICAg\n", - "IGRlZiB1cGRhdGUoc2VsZiwgbWVzc2FnZSwgY29udGVudCwgY29tbWl0dGVy\n", - "PU5vbmUsIGF1dGhvcj1Ob25lKToKICAgICAgICAiIiJVcGRhdGUgdGhpcyBm\n", - "aWxlLgoKICAgICAgICA6cGFyYW0gc3RyIG1lc3NhZ2U6IChyZXF1aXJlZCks\n", - "IGNvbW1pdCBtZXNzYWdlIHRvIGRlc2NyaWJlIHRoZSB1cGRhdGUKICAgICAg\n", - "ICA6cGFyYW0gc3RyIGNvbnRlbnQ6IChyZXF1aXJlZCksIGNvbnRlbnQgdG8g\n", - "dXBkYXRlIHRoZSBmaWxlIHdpdGgKICAgICAgICA6cGFyYW0gZGljdCBjb21t\n", - "aXR0ZXI6IChvcHRpb25hbCksIGlmIG5vIGluZm9ybWF0aW9uIGlzIGdpdmVu\n", - "IHRoZQogICAgICAgICAgICBhdXRoZW50aWNhdGVkIHVzZXIncyBpbmZvcm1h\n", - "dGlvbiB3aWxsIGJlIHVzZWQuIFlvdSBtdXN0IHNwZWNpZnkKICAgICAgICAg\n", - "ICAgYm90aCBhIG5hbWUgYW5kIGVtYWlsLgogICAgICAgIDpwYXJhbSBkaWN0\n", - "IGF1dGhvcjogKG9wdGlvbmFsKSwgaWYgb21pdHRlZCB0aGlzIHdpbGwgYmUg\n", - "ZmlsbGVkIGluIHdpdGgKICAgICAgICAgICAgY29tbWl0dGVyIGluZm9ybWF0\n", - "aW9uLiBJZiBwYXNzZWQsIHlvdSBtdXN0IHNwZWNpZnkgYm90aCBhIG5hbWUg\n", - "YW5kCiAgICAgICAgICAgIGVtYWlsLgogICAgICAgIDpyZXR1cm5zOiBkaWN0\n", - "aW9uYXJ5IGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgY29udGVudHMgb2JqZWN0\n", - "IGFuZCB0aGUKICAgICAgICAgICAgY29tbWl0IGluIHdoaWNoIGl0IHdhcyBj\n", - "aGFuZ2VkLgogICAgICAgIDpydHlwZTogZGljdGlvbmFyeSBvZiA6Y2xhc3M6\n", - "YH5naXRodWIzLnJlcG9zLmNvbnRlbnRzLkNvbnRlbnRzYCBhbmQKICAgICAg\n", - "ICAgICAgOmNsYXNzOmB+Z2l0aHViMy5naXQuQ29tbWl0YAogICAgICAgICIi\n", - "IgogICAgICAgIGlmIGNvbnRlbnQgYW5kIG5vdCBpc2luc3RhbmNlKGNvbnRl\n", - "bnQsIGJ5dGVzKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvciggICMg\n", - "KE5vIGNvdmVyYWdlKQogICAgICAgICAgICAgICAgJ2NvbnRlbnQgbXVzdCBi\n", - "ZSBhIGJ5dGVzIG9iamVjdCcpICAjIChObyBjb3ZlcmFnZSkKCiAgICAgICAg\n", - "anNvbiA9IE5vbmUKICAgICAgICBpZiBtZXNzYWdlIGFuZCBjb250ZW50Ogog\n", - "ICAgICAgICAgICBjb250ZW50ID0gYjY0ZW5jb2RlKGNvbnRlbnQpLmRlY29k\n", - "ZSgndXRmLTgnKQogICAgICAgICAgICBkYXRhID0geydtZXNzYWdlJzogbWVz\n", - "c2FnZSwgJ2NvbnRlbnQnOiBjb250ZW50LCAnc2hhJzogc2VsZi5zaGEsCiAg\n", - "ICAgICAgICAgICAgICAgICAgJ2NvbW1pdHRlcic6IHZhbGlkYXRlX2NvbW1t\n", - "aXR0ZXIoY29tbWl0dGVyKSwKICAgICAgICAgICAgICAgICAgICAnYXV0aG9y\n", - "JzogdmFsaWRhdGVfY29tbW1pdHRlcihhdXRob3IpfQogICAgICAgICAgICBz\n", - "ZWxmLl9yZW1vdmVfbm9uZShkYXRhKQogICAgICAgICAgICBqc29uID0gc2Vs\n", - "Zi5fanNvbihzZWxmLl9wdXQoc2VsZi5fYXBpLCBkYXRhPWR1bXBzKGRhdGEp\n", - "KSwgMjAwKQogICAgICAgICAgICBpZiAnY29udGVudCcgaW4ganNvbjoKICAg\n", - "ICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9hdHRyaWJ1dGVzKGpzb25bJ2Nv\n", - "bnRlbnQnXSkKICAgICAgICAgICAgICAgIGpzb25bJ2NvbnRlbnQnXSA9IHNl\n", - "bGYKICAgICAgICAgICAgaWYgJ2NvbW1pdCcgaW4ganNvbjoKICAgICAgICAg\n", - "ICAgICAgIGpzb25bJ2NvbW1pdCddID0gQ29tbWl0KGpzb25bJ2NvbW1pdCdd\n", - "LCBzZWxmKQogICAgICAgIHJldHVybiBqc29uCgoKZGVmIHZhbGlkYXRlX2Nv\n", - "bW1taXR0ZXIoZCk6CiAgICBpZiBkIGFuZCBkLmdldCgnbmFtZScpIGFuZCBk\n", - "LmdldCgnZW1haWwnKToKICAgICAgICByZXR1cm4gZAogICAgcmV0dXJuIE5v\n", - "bmUK\n", - "\n" - ] - } - ], - "prompt_number": 6 - }, + } + ], + "source": [ + "print(contents.name)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "But that's base64 encoded text. So github3.py provides the content decoded as well:" + "name": "stdout", + "output_type": "stream", + "text": [ + "ec9f27e0cc18a5440952ebb7dc9b3b9402b93702\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(contents.decoded)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "# -*- coding: utf-8 -*-\n", - "\"\"\"\n", - "github3.repos.contents\n", - "======================\n", - "\n", - "This module contains the Contents object pertaining to READMEs and other files\n", - "that can be accessed via the GitHub API.\n", - "\n", - "\"\"\"\n", - "from __future__ import unicode_literals\n", - "\n", - "from json import dumps\n", - "from base64 import b64decode, b64encode\n", - "from ..git import Commit\n", - "from ..models import GitHubCore\n", - "from ..decorators import requires_auth\n", - "\n", - "\n", - "class Contents(GitHubCore):\n", - " \"\"\"The :class:`Contents ` object. It holds the information\n", - " concerning any content in a repository requested via the API.\n", - "\n", - " Two content instances can be checked like so::\n", - "\n", - " c1 == c2\n", - " c1 != c2\n", - "\n", - " And is equivalent to::\n", - "\n", - " c1.sha == c2.sha\n", - " c1.sha != c2.sha\n", - "\n", - " See also: http://developer.github.com/v3/repos/contents/\n", - " \"\"\"\n", - " def _update_attributes(self, content):\n", - " # links\n", - " self._api = content.get('url')\n", - " #: Dictionary of links\n", - " self.links = content.get('_links')\n", - "\n", - " #: URL of the README on github.com\n", - " self.html_url = content.get('html_url')\n", - "\n", - " #: URL for the git api pertaining to the README\n", - " self.git_url = content.get('git_url')\n", - "\n", - " #: git:// URL of the content if it is a submodule\n", - " self.submodule_git_url = content.get('submodule_git_url')\n", - "\n", - " # should always be 'base64'\n", - " #: Returns encoding used on the content.\n", - " self.encoding = content.get('encoding', '')\n", - "\n", - " # content, base64 encoded and decoded\n", - " #: Base64-encoded content of the file.\n", - " self.content = content.get('content', '')\n", - "\n", - " #: Decoded content of the file as a bytes object. If we try to decode\n", - " #: to character set for you, we might encounter an exception which\n", - " #: will prevent the object from being created. On python2 this is the\n", - " #: same as a string, but on python3 you should call the decode method\n", - " #: with the character set you wish to use, e.g.,\n", - " #: ``content.decoded.decode('utf-8')``.\n", - " #: .. versionchanged:: 0.5.2\n", - " self.decoded = ''\n", - " if self.encoding == 'base64' and self.content:\n", - " self.decoded = b64decode(self.content.encode())\n", - "\n", - " # file name, path, and size\n", - " #: Name of the content.\n", - " self.name = content.get('name', '')\n", - " #: Path to the content.\n", - " self.path = content.get('path', '')\n", - " #: Size of the content\n", - " self.size = content.get('size', 0)\n", - " #: SHA string.\n", - " self.sha = content.get('sha', '')\n", - " #: Type of content. ('file', 'symlink', 'submodule')\n", - " self.type = content.get('type', '')\n", - " #: Target will only be set of type is a symlink. This is what the link\n", - " #: points to\n", - " self.target = content.get('target', '')\n", - "\n", - " self._uniq = self.sha\n", - "\n", - " def _repr(self):\n", - " return ''.format(self.path)\n", - "\n", - " def __eq__(self, other):\n", - " return self.decoded == other\n", - "\n", - " def __ne__(self, other):\n", - " return self.sha != other\n", - "\n", - " @requires_auth\n", - " def delete(self, message, committer=None, author=None):\n", - " \"\"\"Delete this file.\n", - "\n", - " :param str message: (required), commit message to describe the removal\n", - " :param dict committer: (optional), if no information is given the\n", - " authenticated user's information will be used. You must specify\n", - " both a name and email.\n", - " :param dict author: (optional), if omitted this will be filled in with\n", - " committer information. If passed, you must specify both a name and\n", - " email.\n", - " :returns: dictionary of new content and associated commit\n", - " :rtype: :class:`~github3.repos.contents.Contents` and\n", - " :class:`~github3.git.Commit`\n", - " \"\"\"\n", - " json = {}\n", - " if message:\n", - " data = {'message': message, 'sha': self.sha,\n", - " 'committer': validate_commmitter(committer),\n", - " 'author': validate_commmitter(author)}\n", - " self._remove_none(data)\n", - " json = self._json(self._delete(self._api, data=dumps(data)), 200)\n", - " if 'commit' in json:\n", - " json['commit'] = Commit(json['commit'], self)\n", - " if 'content' in json:\n", - " json['content'] = self._instance_or_null(Contents,\n", - " json['content'])\n", - " return json\n", - "\n", - " @requires_auth\n", - " def update(self, message, content, committer=None, author=None):\n", - " \"\"\"Update this file.\n", - "\n", - " :param str message: (required), commit message to describe the update\n", - " :param str content: (required), content to update the file with\n", - " :param dict committer: (optional), if no information is given the\n", - " authenticated user's information will be used. You must specify\n", - " both a name and email.\n", - " :param dict author: (optional), if omitted this will be filled in with\n", - " committer information. If passed, you must specify both a name and\n", - " email.\n", - " :returns: dictionary containing the updated contents object and the\n", - " commit in which it was changed.\n", - " :rtype: dictionary of :class:`~github3.repos.contents.Contents` and\n", - " :class:`~github3.git.Commit`\n", - " \"\"\"\n", - " if content and not isinstance(content, bytes):\n", - " raise ValueError( # (No coverage)\n", - " 'content must be a bytes object') # (No coverage)\n", - "\n", - " json = None\n", - " if message and content:\n", - " content = b64encode(content).decode('utf-8')\n", - " data = {'message': message, 'content': content, 'sha': self.sha,\n", - " 'committer': validate_commmitter(committer),\n", - " 'author': validate_commmitter(author)}\n", - " self._remove_none(data)\n", - " json = self._json(self._put(self._api, data=dumps(data)), 200)\n", - " if 'content' in json:\n", - " self._update_attributes(json['content'])\n", - " json['content'] = self\n", - " if 'commit' in json:\n", - " json['commit'] = Commit(json['commit'], self)\n", - " return json\n", - "\n", - "\n", - "def validate_commmitter(d):\n", - " if d and d.get('name') and d.get('email'):\n", - " return d\n", - " return None\n", - "\n" - ] - } - ], - "prompt_number": 7 - }, + } + ], + "source": [ + "print(contents.sha)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also get the contents of the file:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "github3.py tries to preserve original names of data it receives so that users can access that easily and without having to guess. From here, (if we were logged in) we could easily update or even delete this file altogether." + "name": "stdout", + "output_type": "stream", + "text": [ + "IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIiIiCmdpdGh1YjMucmVwb3MuY29u\n", + "dGVudHMKPT09PT09PT09PT09PT09PT09PT09PQoKVGhpcyBtb2R1bGUgY29u\n", + "dGFpbnMgdGhlIENvbnRlbnRzIG9iamVjdCBwZXJ0YWluaW5nIHRvIFJFQURN\n", + "RXMgYW5kIG90aGVyIGZpbGVzCnRoYXQgY2FuIGJlIGFjY2Vzc2VkIHZpYSB0\n", + "aGUgR2l0SHViIEFQSS4KCiIiIgpmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVu\n", + "aWNvZGVfbGl0ZXJhbHMKCmZyb20ganNvbiBpbXBvcnQgZHVtcHMKZnJvbSBi\n", + "YXNlNjQgaW1wb3J0IGI2NGRlY29kZSwgYjY0ZW5jb2RlCmZyb20gLi5naXQg\n", + "aW1wb3J0IENvbW1pdApmcm9tIC4ubW9kZWxzIGltcG9ydCBHaXRIdWJDb3Jl\n", + "CmZyb20gLi5kZWNvcmF0b3JzIGltcG9ydCByZXF1aXJlc19hdXRoCgoKY2xh\n", + "c3MgQ29udGVudHMoR2l0SHViQ29yZSk6CiAgICAiIiJUaGUgOmNsYXNzOmBD\n", + "b250ZW50cyA8Q29udGVudHM+YCBvYmplY3QuIEl0IGhvbGRzIHRoZSBpbmZv\n", + "cm1hdGlvbgogICAgY29uY2VybmluZyBhbnkgY29udGVudCBpbiBhIHJlcG9z\n", + "aXRvcnkgcmVxdWVzdGVkIHZpYSB0aGUgQVBJLgoKICAgIFR3byBjb250ZW50\n", + "IGluc3RhbmNlcyBjYW4gYmUgY2hlY2tlZCBsaWtlIHNvOjoKCiAgICAgICAg\n", + "YzEgPT0gYzIKICAgICAgICBjMSAhPSBjMgoKICAgIEFuZCBpcyBlcXVpdmFs\n", + "ZW50IHRvOjoKCiAgICAgICAgYzEuc2hhID09IGMyLnNoYQogICAgICAgIGMx\n", + "LnNoYSAhPSBjMi5zaGEKCiAgICBTZWUgYWxzbzogaHR0cDovL2RldmVsb3Bl\n", + "ci5naXRodWIuY29tL3YzL3JlcG9zL2NvbnRlbnRzLwogICAgIiIiCiAgICBk\n", + "ZWYgX3VwZGF0ZV9hdHRyaWJ1dGVzKHNlbGYsIGNvbnRlbnQpOgogICAgICAg\n", + "ICMgbGlua3MKICAgICAgICBzZWxmLl9hcGkgPSBjb250ZW50LmdldCgndXJs\n", + "JykKICAgICAgICAjOiBEaWN0aW9uYXJ5IG9mIGxpbmtzCiAgICAgICAgc2Vs\n", + "Zi5saW5rcyA9IGNvbnRlbnQuZ2V0KCdfbGlua3MnKQoKICAgICAgICAjOiBV\n", + "Ukwgb2YgdGhlIFJFQURNRSBvbiBnaXRodWIuY29tCiAgICAgICAgc2VsZi5o\n", + "dG1sX3VybCA9IGNvbnRlbnQuZ2V0KCdodG1sX3VybCcpCgogICAgICAgICM6\n", + "IFVSTCBmb3IgdGhlIGdpdCBhcGkgcGVydGFpbmluZyB0byB0aGUgUkVBRE1F\n", + "CiAgICAgICAgc2VsZi5naXRfdXJsID0gY29udGVudC5nZXQoJ2dpdF91cmwn\n", + "KQoKICAgICAgICAjOiBnaXQ6Ly8gVVJMIG9mIHRoZSBjb250ZW50IGlmIGl0\n", + "IGlzIGEgc3VibW9kdWxlCiAgICAgICAgc2VsZi5zdWJtb2R1bGVfZ2l0X3Vy\n", + "bCA9IGNvbnRlbnQuZ2V0KCdzdWJtb2R1bGVfZ2l0X3VybCcpCgogICAgICAg\n", + "ICMgc2hvdWxkIGFsd2F5cyBiZSAnYmFzZTY0JwogICAgICAgICM6IFJldHVy\n", + "bnMgZW5jb2RpbmcgdXNlZCBvbiB0aGUgY29udGVudC4KICAgICAgICBzZWxm\n", + "LmVuY29kaW5nID0gY29udGVudC5nZXQoJ2VuY29kaW5nJywgJycpCgogICAg\n", + "ICAgICMgY29udGVudCwgYmFzZTY0IGVuY29kZWQgYW5kIGRlY29kZWQKICAg\n", + "ICAgICAjOiBCYXNlNjQtZW5jb2RlZCBjb250ZW50IG9mIHRoZSBmaWxlLgog\n", + "ICAgICAgIHNlbGYuY29udGVudCA9IGNvbnRlbnQuZ2V0KCdjb250ZW50Jywg\n", + "JycpCgogICAgICAgICM6IERlY29kZWQgY29udGVudCBvZiB0aGUgZmlsZSBh\n", + "cyBhIGJ5dGVzIG9iamVjdC4gSWYgd2UgdHJ5IHRvIGRlY29kZQogICAgICAg\n", + "ICM6IHRvIGNoYXJhY3RlciBzZXQgZm9yIHlvdSwgd2UgbWlnaHQgZW5jb3Vu\n", + "dGVyIGFuIGV4Y2VwdGlvbiB3aGljaAogICAgICAgICM6IHdpbGwgcHJldmVu\n", + "dCB0aGUgb2JqZWN0IGZyb20gYmVpbmcgY3JlYXRlZC4gT24gcHl0aG9uMiB0\n", + "aGlzIGlzIHRoZQogICAgICAgICM6IHNhbWUgYXMgYSBzdHJpbmcsIGJ1dCBv\n", + "biBweXRob24zIHlvdSBzaG91bGQgY2FsbCB0aGUgZGVjb2RlIG1ldGhvZAog\n", + "ICAgICAgICM6IHdpdGggdGhlIGNoYXJhY3RlciBzZXQgeW91IHdpc2ggdG8g\n", + "dXNlLCBlLmcuLAogICAgICAgICM6IGBgY29udGVudC5kZWNvZGVkLmRlY29k\n", + "ZSgndXRmLTgnKWBgLgogICAgICAgICM6IC4uIHZlcnNpb25jaGFuZ2VkOjog\n", + "MC41LjIKICAgICAgICBzZWxmLmRlY29kZWQgPSAnJwogICAgICAgIGlmIHNl\n", + "bGYuZW5jb2RpbmcgPT0gJ2Jhc2U2NCcgYW5kIHNlbGYuY29udGVudDoKICAg\n", + "ICAgICAgICAgc2VsZi5kZWNvZGVkID0gYjY0ZGVjb2RlKHNlbGYuY29udGVu\n", + "dC5lbmNvZGUoKSkKCiAgICAgICAgIyBmaWxlIG5hbWUsIHBhdGgsIGFuZCBz\n", + "aXplCiAgICAgICAgIzogTmFtZSBvZiB0aGUgY29udGVudC4KICAgICAgICBz\n", + "ZWxmLm5hbWUgPSBjb250ZW50LmdldCgnbmFtZScsICcnKQogICAgICAgICM6\n", + "IFBhdGggdG8gdGhlIGNvbnRlbnQuCiAgICAgICAgc2VsZi5wYXRoID0gY29u\n", + "dGVudC5nZXQoJ3BhdGgnLCAnJykKICAgICAgICAjOiBTaXplIG9mIHRoZSBj\n", + "b250ZW50CiAgICAgICAgc2VsZi5zaXplID0gY29udGVudC5nZXQoJ3NpemUn\n", + "LCAwKQogICAgICAgICM6IFNIQSBzdHJpbmcuCiAgICAgICAgc2VsZi5zaGEg\n", + "PSBjb250ZW50LmdldCgnc2hhJywgJycpCiAgICAgICAgIzogVHlwZSBvZiBj\n", + "b250ZW50LiAoJ2ZpbGUnLCAnc3ltbGluaycsICdzdWJtb2R1bGUnKQogICAg\n", + "ICAgIHNlbGYudHlwZSA9IGNvbnRlbnQuZ2V0KCd0eXBlJywgJycpCiAgICAg\n", + "ICAgIzogVGFyZ2V0IHdpbGwgb25seSBiZSBzZXQgb2YgdHlwZSBpcyBhIHN5\n", + "bWxpbmsuIFRoaXMgaXMgd2hhdCB0aGUgbGluawogICAgICAgICM6IHBvaW50\n", + "cyB0bwogICAgICAgIHNlbGYudGFyZ2V0ID0gY29udGVudC5nZXQoJ3Rhcmdl\n", + "dCcsICcnKQoKICAgICAgICBzZWxmLl91bmlxID0gc2VsZi5zaGEKCiAgICBk\n", + "ZWYgX3JlcHIoc2VsZik6CiAgICAgICAgcmV0dXJuICc8Q29udGVudCBbezB9\n", + "XT4nLmZvcm1hdChzZWxmLnBhdGgpCgogICAgZGVmIF9fZXFfXyhzZWxmLCBv\n", + "dGhlcik6CiAgICAgICAgcmV0dXJuIHNlbGYuZGVjb2RlZCA9PSBvdGhlcgoK\n", + "ICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgogICAgICAgIHJldHVybiBz\n", + "ZWxmLnNoYSAhPSBvdGhlcgoKICAgIEByZXF1aXJlc19hdXRoCiAgICBkZWYg\n", + "ZGVsZXRlKHNlbGYsIG1lc3NhZ2UsIGNvbW1pdHRlcj1Ob25lLCBhdXRob3I9\n", + "Tm9uZSk6CiAgICAgICAgIiIiRGVsZXRlIHRoaXMgZmlsZS4KCiAgICAgICAg\n", + "OnBhcmFtIHN0ciBtZXNzYWdlOiAocmVxdWlyZWQpLCBjb21taXQgbWVzc2Fn\n", + "ZSB0byBkZXNjcmliZSB0aGUgcmVtb3ZhbAogICAgICAgIDpwYXJhbSBkaWN0\n", + "IGNvbW1pdHRlcjogKG9wdGlvbmFsKSwgaWYgbm8gaW5mb3JtYXRpb24gaXMg\n", + "Z2l2ZW4gdGhlCiAgICAgICAgICAgIGF1dGhlbnRpY2F0ZWQgdXNlcidzIGlu\n", + "Zm9ybWF0aW9uIHdpbGwgYmUgdXNlZC4gWW91IG11c3Qgc3BlY2lmeQogICAg\n", + "ICAgICAgICBib3RoIGEgbmFtZSBhbmQgZW1haWwuCiAgICAgICAgOnBhcmFt\n", + "IGRpY3QgYXV0aG9yOiAob3B0aW9uYWwpLCBpZiBvbWl0dGVkIHRoaXMgd2ls\n", + "bCBiZSBmaWxsZWQgaW4gd2l0aAogICAgICAgICAgICBjb21taXR0ZXIgaW5m\n", + "b3JtYXRpb24uIElmIHBhc3NlZCwgeW91IG11c3Qgc3BlY2lmeSBib3RoIGEg\n", + "bmFtZSBhbmQKICAgICAgICAgICAgZW1haWwuCiAgICAgICAgOnJldHVybnM6\n", + "IGRpY3Rpb25hcnkgb2YgbmV3IGNvbnRlbnQgYW5kIGFzc29jaWF0ZWQgY29t\n", + "bWl0CiAgICAgICAgOnJ0eXBlOiA6Y2xhc3M6YH5naXRodWIzLnJlcG9zLmNv\n", + "bnRlbnRzLkNvbnRlbnRzYCBhbmQKICAgICAgICAgICAgOmNsYXNzOmB+Z2l0\n", + "aHViMy5naXQuQ29tbWl0YAogICAgICAgICIiIgogICAgICAgIGpzb24gPSB7\n", + "fQogICAgICAgIGlmIG1lc3NhZ2U6CiAgICAgICAgICAgIGRhdGEgPSB7J21l\n", + "c3NhZ2UnOiBtZXNzYWdlLCAnc2hhJzogc2VsZi5zaGEsCiAgICAgICAgICAg\n", + "ICAgICAgICAgJ2NvbW1pdHRlcic6IHZhbGlkYXRlX2NvbW1taXR0ZXIoY29t\n", + "bWl0dGVyKSwKICAgICAgICAgICAgICAgICAgICAnYXV0aG9yJzogdmFsaWRh\n", + "dGVfY29tbW1pdHRlcihhdXRob3IpfQogICAgICAgICAgICBzZWxmLl9yZW1v\n", + "dmVfbm9uZShkYXRhKQogICAgICAgICAgICBqc29uID0gc2VsZi5fanNvbihz\n", + "ZWxmLl9kZWxldGUoc2VsZi5fYXBpLCBkYXRhPWR1bXBzKGRhdGEpKSwgMjAw\n", + "KQogICAgICAgICAgICBpZiAnY29tbWl0JyBpbiBqc29uOgogICAgICAgICAg\n", + "ICAgICAganNvblsnY29tbWl0J10gPSBDb21taXQoanNvblsnY29tbWl0J10s\n", + "IHNlbGYpCiAgICAgICAgICAgIGlmICdjb250ZW50JyBpbiBqc29uOgogICAg\n", + "ICAgICAgICAgICAganNvblsnY29udGVudCddID0gc2VsZi5faW5zdGFuY2Vf\n", + "b3JfbnVsbChDb250ZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAg\n", + "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvblsnY29udGVudCdd\n", + "KQogICAgICAgIHJldHVybiBqc29uCgogICAgQHJlcXVpcmVzX2F1dGgKICAg\n", + "IGRlZiB1cGRhdGUoc2VsZiwgbWVzc2FnZSwgY29udGVudCwgY29tbWl0dGVy\n", + "PU5vbmUsIGF1dGhvcj1Ob25lKToKICAgICAgICAiIiJVcGRhdGUgdGhpcyBm\n", + "aWxlLgoKICAgICAgICA6cGFyYW0gc3RyIG1lc3NhZ2U6IChyZXF1aXJlZCks\n", + "IGNvbW1pdCBtZXNzYWdlIHRvIGRlc2NyaWJlIHRoZSB1cGRhdGUKICAgICAg\n", + "ICA6cGFyYW0gc3RyIGNvbnRlbnQ6IChyZXF1aXJlZCksIGNvbnRlbnQgdG8g\n", + "dXBkYXRlIHRoZSBmaWxlIHdpdGgKICAgICAgICA6cGFyYW0gZGljdCBjb21t\n", + "aXR0ZXI6IChvcHRpb25hbCksIGlmIG5vIGluZm9ybWF0aW9uIGlzIGdpdmVu\n", + "IHRoZQogICAgICAgICAgICBhdXRoZW50aWNhdGVkIHVzZXIncyBpbmZvcm1h\n", + "dGlvbiB3aWxsIGJlIHVzZWQuIFlvdSBtdXN0IHNwZWNpZnkKICAgICAgICAg\n", + "ICAgYm90aCBhIG5hbWUgYW5kIGVtYWlsLgogICAgICAgIDpwYXJhbSBkaWN0\n", + "IGF1dGhvcjogKG9wdGlvbmFsKSwgaWYgb21pdHRlZCB0aGlzIHdpbGwgYmUg\n", + "ZmlsbGVkIGluIHdpdGgKICAgICAgICAgICAgY29tbWl0dGVyIGluZm9ybWF0\n", + "aW9uLiBJZiBwYXNzZWQsIHlvdSBtdXN0IHNwZWNpZnkgYm90aCBhIG5hbWUg\n", + "YW5kCiAgICAgICAgICAgIGVtYWlsLgogICAgICAgIDpyZXR1cm5zOiBkaWN0\n", + "aW9uYXJ5IGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgY29udGVudHMgb2JqZWN0\n", + "IGFuZCB0aGUKICAgICAgICAgICAgY29tbWl0IGluIHdoaWNoIGl0IHdhcyBj\n", + "aGFuZ2VkLgogICAgICAgIDpydHlwZTogZGljdGlvbmFyeSBvZiA6Y2xhc3M6\n", + "YH5naXRodWIzLnJlcG9zLmNvbnRlbnRzLkNvbnRlbnRzYCBhbmQKICAgICAg\n", + "ICAgICAgOmNsYXNzOmB+Z2l0aHViMy5naXQuQ29tbWl0YAogICAgICAgICIi\n", + "IgogICAgICAgIGlmIGNvbnRlbnQgYW5kIG5vdCBpc2luc3RhbmNlKGNvbnRl\n", + "bnQsIGJ5dGVzKToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvciggICMg\n", + "KE5vIGNvdmVyYWdlKQogICAgICAgICAgICAgICAgJ2NvbnRlbnQgbXVzdCBi\n", + "ZSBhIGJ5dGVzIG9iamVjdCcpICAjIChObyBjb3ZlcmFnZSkKCiAgICAgICAg\n", + "anNvbiA9IE5vbmUKICAgICAgICBpZiBtZXNzYWdlIGFuZCBjb250ZW50Ogog\n", + "ICAgICAgICAgICBjb250ZW50ID0gYjY0ZW5jb2RlKGNvbnRlbnQpLmRlY29k\n", + "ZSgndXRmLTgnKQogICAgICAgICAgICBkYXRhID0geydtZXNzYWdlJzogbWVz\n", + "c2FnZSwgJ2NvbnRlbnQnOiBjb250ZW50LCAnc2hhJzogc2VsZi5zaGEsCiAg\n", + "ICAgICAgICAgICAgICAgICAgJ2NvbW1pdHRlcic6IHZhbGlkYXRlX2NvbW1t\n", + "aXR0ZXIoY29tbWl0dGVyKSwKICAgICAgICAgICAgICAgICAgICAnYXV0aG9y\n", + "JzogdmFsaWRhdGVfY29tbW1pdHRlcihhdXRob3IpfQogICAgICAgICAgICBz\n", + "ZWxmLl9yZW1vdmVfbm9uZShkYXRhKQogICAgICAgICAgICBqc29uID0gc2Vs\n", + "Zi5fanNvbihzZWxmLl9wdXQoc2VsZi5fYXBpLCBkYXRhPWR1bXBzKGRhdGEp\n", + "KSwgMjAwKQogICAgICAgICAgICBpZiAnY29udGVudCcgaW4ganNvbjoKICAg\n", + "ICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9hdHRyaWJ1dGVzKGpzb25bJ2Nv\n", + "bnRlbnQnXSkKICAgICAgICAgICAgICAgIGpzb25bJ2NvbnRlbnQnXSA9IHNl\n", + "bGYKICAgICAgICAgICAgaWYgJ2NvbW1pdCcgaW4ganNvbjoKICAgICAgICAg\n", + "ICAgICAgIGpzb25bJ2NvbW1pdCddID0gQ29tbWl0KGpzb25bJ2NvbW1pdCdd\n", + "LCBzZWxmKQogICAgICAgIHJldHVybiBqc29uCgoKZGVmIHZhbGlkYXRlX2Nv\n", + "bW1taXR0ZXIoZCk6CiAgICBpZiBkIGFuZCBkLmdldCgnbmFtZScpIGFuZCBk\n", + "LmdldCgnZW1haWwnKToKICAgICAgICByZXR1cm4gZAogICAgcmV0dXJuIE5v\n", + "bmUK\n", + "\n" ] - }, + } + ], + "source": [ + "print(contents.content)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But that's base64 encoded text. So github3.py provides the content decoded as well:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ { - "cell_type": "heading", - "level": 2, - "metadata": {}, - "source": [ - "Retrieving a directory's contents" + "name": "stdout", + "output_type": "stream", + "text": [ + "# -*- coding: utf-8 -*-\n", + "\"\"\"\n", + "github3.repos.contents\n", + "======================\n", + "\n", + "This module contains the Contents object pertaining to READMEs and other files\n", + "that can be accessed via the GitHub API.\n", + "\n", + "\"\"\"\n", + "from __future__ import unicode_literals\n", + "\n", + "from json import dumps\n", + "from base64 import b64decode, b64encode\n", + "from ..git import Commit\n", + "from ..models import GitHubCore\n", + "from ..decorators import requires_auth\n", + "\n", + "\n", + "class Contents(GitHubCore):\n", + " \"\"\"The :class:`Contents ` object. It holds the information\n", + " concerning any content in a repository requested via the API.\n", + "\n", + " Two content instances can be checked like so::\n", + "\n", + " c1 == c2\n", + " c1 != c2\n", + "\n", + " And is equivalent to::\n", + "\n", + " c1.sha == c2.sha\n", + " c1.sha != c2.sha\n", + "\n", + " See also: http://developer.github.com/v3/repos/contents/\n", + " \"\"\"\n", + " def _update_attributes(self, content):\n", + " # links\n", + " self._api = content.get('url')\n", + " #: Dictionary of links\n", + " self.links = content.get('_links')\n", + "\n", + " #: URL of the README on github.com\n", + " self.html_url = content.get('html_url')\n", + "\n", + " #: URL for the git api pertaining to the README\n", + " self.git_url = content.get('git_url')\n", + "\n", + " #: git:// URL of the content if it is a submodule\n", + " self.submodule_git_url = content.get('submodule_git_url')\n", + "\n", + " # should always be 'base64'\n", + " #: Returns encoding used on the content.\n", + " self.encoding = content.get('encoding', '')\n", + "\n", + " # content, base64 encoded and decoded\n", + " #: Base64-encoded content of the file.\n", + " self.content = content.get('content', '')\n", + "\n", + " #: Decoded content of the file as a bytes object. If we try to decode\n", + " #: to character set for you, we might encounter an exception which\n", + " #: will prevent the object from being created. On python2 this is the\n", + " #: same as a string, but on python3 you should call the decode method\n", + " #: with the character set you wish to use, e.g.,\n", + " #: ``content.decoded.decode('utf-8')``.\n", + " #: .. versionchanged:: 0.5.2\n", + " self.decoded = ''\n", + " if self.encoding == 'base64' and self.content:\n", + " self.decoded = b64decode(self.content.encode())\n", + "\n", + " # file name, path, and size\n", + " #: Name of the content.\n", + " self.name = content.get('name', '')\n", + " #: Path to the content.\n", + " self.path = content.get('path', '')\n", + " #: Size of the content\n", + " self.size = content.get('size', 0)\n", + " #: SHA string.\n", + " self.sha = content.get('sha', '')\n", + " #: Type of content. ('file', 'symlink', 'submodule')\n", + " self.type = content.get('type', '')\n", + " #: Target will only be set of type is a symlink. This is what the link\n", + " #: points to\n", + " self.target = content.get('target', '')\n", + "\n", + " self._uniq = self.sha\n", + "\n", + " def _repr(self):\n", + " return ''.format(self.path)\n", + "\n", + " def __eq__(self, other):\n", + " return self.decoded == other\n", + "\n", + " def __ne__(self, other):\n", + " return self.sha != other\n", + "\n", + " @requires_auth\n", + " def delete(self, message, committer=None, author=None):\n", + " \"\"\"Delete this file.\n", + "\n", + " :param str message: (required), commit message to describe the removal\n", + " :param dict committer: (optional), if no information is given the\n", + " authenticated user's information will be used. You must specify\n", + " both a name and email.\n", + " :param dict author: (optional), if omitted this will be filled in with\n", + " committer information. If passed, you must specify both a name and\n", + " email.\n", + " :returns: dictionary of new content and associated commit\n", + " :rtype: :class:`~github3.repos.contents.Contents` and\n", + " :class:`~github3.git.Commit`\n", + " \"\"\"\n", + " json = {}\n", + " if message:\n", + " data = {'message': message, 'sha': self.sha,\n", + " 'committer': validate_commmitter(committer),\n", + " 'author': validate_commmitter(author)}\n", + " self._remove_none(data)\n", + " json = self._json(self._delete(self._api, data=dumps(data)), 200)\n", + " if 'commit' in json:\n", + " json['commit'] = Commit(json['commit'], self)\n", + " if 'content' in json:\n", + " json['content'] = self._instance_or_null(Contents,\n", + " json['content'])\n", + " return json\n", + "\n", + " @requires_auth\n", + " def update(self, message, content, committer=None, author=None):\n", + " \"\"\"Update this file.\n", + "\n", + " :param str message: (required), commit message to describe the update\n", + " :param str content: (required), content to update the file with\n", + " :param dict committer: (optional), if no information is given the\n", + " authenticated user's information will be used. You must specify\n", + " both a name and email.\n", + " :param dict author: (optional), if omitted this will be filled in with\n", + " committer information. If passed, you must specify both a name and\n", + " email.\n", + " :returns: dictionary containing the updated contents object and the\n", + " commit in which it was changed.\n", + " :rtype: dictionary of :class:`~github3.repos.contents.Contents` and\n", + " :class:`~github3.git.Commit`\n", + " \"\"\"\n", + " if content and not isinstance(content, bytes):\n", + " raise ValueError( # (No coverage)\n", + " 'content must be a bytes object') # (No coverage)\n", + "\n", + " json = None\n", + " if message and content:\n", + " content = b64encode(content).decode('utf-8')\n", + " data = {'message': message, 'content': content, 'sha': self.sha,\n", + " 'committer': validate_commmitter(committer),\n", + " 'author': validate_commmitter(author)}\n", + " self._remove_none(data)\n", + " json = self._json(self._put(self._api, data=dumps(data)), 200)\n", + " if 'content' in json:\n", + " self._update_attributes(json['content'])\n", + " json['content'] = self\n", + " if 'commit' in json:\n", + " json['commit'] = Commit(json['commit'], self)\n", + " return json\n", + "\n", + "\n", + "def validate_commmitter(d):\n", + " if d and d.get('name') and d.get('email'):\n", + " return d\n", + " return None\n", + "\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import github3" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 8 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "repo = github3.repository('sigmavirus24', 'github3.py')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dir_contents = repo.directory_contents('github3/search/')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 10 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dir_contents" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 11, - "text": [ - "[(u'__init__.py', ),\n", - " (u'code.py', ),\n", - " (u'issue.py', ),\n", - " (u'repository.py', ),\n", - " (u'user.py', )]" - ] - } - ], - "prompt_number": 11 - }, + } + ], + "source": [ + "print(contents.decoded)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "github3.py tries to preserve original names of data it receives so that users can access that easily and without having to guess. From here, (if we were logged in) we could easily update or even delete this file altogether." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Retrieving a directory's contents" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import github3" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "repo = github3.repository('sigmavirus24', 'github3.py')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "dir_contents = repo.directory_contents('github3/search/')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "dc = dict(dir_contents)" - ], - "language": "python", + "data": { + "text/plain": [ + "[(u'__init__.py', ),\n", + " (u'code.py', ),\n", + " (u'issue.py', ),\n", + " (u'repository.py', ),\n", + " (u'user.py', )]" + ] + }, + "execution_count": 11, "metadata": {}, - "outputs": [], - "prompt_number": 12 - }, + "output_type": "execute_result" + } + ], + "source": [ + "dir_contents" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "dc = dict(dir_contents)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "dc['user.py'].decoded" - ], - "language": "python", + "data": { + "text/plain": [ + "u''" + ] + }, + "execution_count": 13, "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 13, - "text": [ - "u''" - ] - } - ], - "prompt_number": 13 - }, + "output_type": "execute_result" + } + ], + "source": [ + "dc['user.py'].decoded" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In many instances when GitHub returns more than one instance of a resource, they don't return the entirety of each resource. Here's we have an example of this. The file bodies would be expensive to return for a directory with a lot of files, so GitHub omits them. We can still retrieve it. We just need to make another call to the API for the information." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In many instances when GitHub returns more than one instance of a resource, they don't return the entirety of each resource. Here's we have an example of this. The file bodies would be expensive to return for a directory with a lot of files, so GitHub omits them. We can still retrieve it. We just need to make another call to the API for the information." + "name": "stdout", + "output_type": "stream", + "text": [ + "# -*- coding: utf-8 -*-\n", + "from __future__ import unicode_literals\n", + "\n", + "from ..models import GitHubCore\n", + "from ..users import User\n", + "\n", + "\n", + "class UserSearchResult(GitHubCore):\n", + " def _update_attributes(self, data):\n", + " result = data.copy()\n", + " #: Score of this search result\n", + " self.score = result.pop('score')\n", + " #: Text matches\n", + " self.text_matches = result.pop('text_matches', [])\n", + " #: User object matching the search\n", + " self.user = User(result, self)\n", + "\n", + " def _repr(self):\n", + " return ''.format(self.user)\n", + "\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dc['user.py'].refresh()\n", - "print(dc['user.py'].decoded)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "# -*- coding: utf-8 -*-\n", - "from __future__ import unicode_literals\n", - "\n", - "from ..models import GitHubCore\n", - "from ..users import User\n", - "\n", - "\n", - "class UserSearchResult(GitHubCore):\n", - " def _update_attributes(self, data):\n", - " result = data.copy()\n", - " #: Score of this search result\n", - " self.score = result.pop('score')\n", - " #: Text matches\n", - " self.text_matches = result.pop('text_matches', [])\n", - " #: User object matching the search\n", - " self.user = User(result, self)\n", - "\n", - " def _repr(self):\n", - " return ''.format(self.user)\n", - "\n" - ] - } - ], - "prompt_number": 15 } ], - "metadata": {} + "source": [ + "dc['user.py'].refresh()\n", + "print(dc['user.py'].decoded)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" } - ] -} \ No newline at end of file + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/example-notebooks/forking_repositories_by.ipynb b/example-notebooks/forking_repositories_by.ipynb index a4fbc49db..c214d1b74 100644 --- a/example-notebooks/forking_repositories_by.ipynb +++ b/example-notebooks/forking_repositories_by.ipynb @@ -1,176 +1,177 @@ { - "metadata": { - "name": "", - "signature": "sha256:2d234b400db23a8a564289d081cd262369729acb74813177cd991585e0f66fe9" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "Listing repositories by their owner" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import github3" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for repository in github3.repositories_by('sigmavirus24'):\n", - " print('{0} created at {0.created_at}'.format(repository))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "sigmavirus24/betamax created at 2013-07-16 03:23:22+00:00\n", - "sigmavirus24/betamax_matchers created at 2014-07-19 18:51:39+00:00\n", - "sigmavirus24/catapultpgh created at 2013-02-11 17:16:43+00:00\n", - "sigmavirus24/charade created at 2012-11-28 03:24:20+00:00\n", - "sigmavirus24/clint created at 2013-02-10 21:09:02+00:00\n", - "sigmavirus24/contrib-hub created at 2013-11-30 18:36:55+00:00\n", - "sigmavirus24/crequests created at 2013-01-24 22:54:17+00:00\n", - "sigmavirus24/curryer created at 2013-11-10 02:03:42+00:00\n", - "sigmavirus24/c_libs created at 2012-06-11 14:45:35+00:00\n", - "sigmavirus24/ddg created at 2012-12-16 22:11:35+00:00\n", - "sigmavirus24/developer.github.com created at 2012-05-27 04:19:17+00:00\n", - "sigmavirus24/dream-python created at 2014-08-13 15:55:44+00:00\n", - "sigmavirus24/elephant created at 2013-03-27 18:25:03+00:00\n", - "sigmavirus24/euler.hs created at 2013-10-19 01:19:03+00:00\n", - "sigmavirus24/expecter created at 2012-07-25 03:02:58+00:00\n", - "sigmavirus24/format-geojson.clj created at 2013-10-25 22:17:20+00:00\n", - "sigmavirus24/ghsync created at 2012-10-17 13:49:42+00:00\n", - "sigmavirus24/git-hub created at 2012-10-05 19:35:45+00:00\n", - "sigmavirus24/GITenberg created at 2012-09-25 21:07:30+00:00\n", - "sigmavirus24/github-cli created at 2012-07-05 14:58:47+00:00\n", - "sigmavirus24/github3.py created at 2012-03-13 19:58:53+00:00\n", - "sigmavirus24/GitPython created at 2012-11-28 16:27:22+00:00\n", - "sigmavirus24/grequests created at 2012-12-30 23:04:12+00:00\n", - "sigmavirus24/gtk-vikb created at 2012-07-16 23:18:15+00:00\n", - "sigmavirus24/heroku-buildpack-python created at 2013-01-19 18:09:35+00:00\n", - "sigmavirus24/http11 created at 2014-07-21 01:57:47+00:00\n", - "sigmavirus24/httpbin created at 2013-07-19 18:53:30+00:00\n", - "sigmavirus24/hyper created at 2014-02-20 16:02:48+00:00\n", - "sigmavirus24/issues.py created at 2012-02-25 21:32:31+00:00\n", - "sigmavirus24/LendingClubAutoInvestor created at 2013-05-08 14:56:33+00:00\n", - "sigmavirus24/libyaml created at 2013-12-01 18:27:17+00:00\n", - "sigmavirus24/lyahfgg created at 2013-07-31 02:47:36+00:00\n", - "sigmavirus24/madison_geojson created at 2013-10-25 20:40:41+00:00\n", - "sigmavirus24/mccabe created at 2014-04-18 18:30:26+00:00\n", - "sigmavirus24/mixfaster created at 2012-06-30 00:13:21+00:00\n", - "sigmavirus24/mixminion created at 2011-09-06 13:34:15+00:00\n", - "sigmavirus24/mock_github_api created at 2012-12-21 23:14:08+00:00\n", - "sigmavirus24/nothub created at 2013-01-29 18:00:15+00:00\n", - "sigmavirus24/No_Agenda_Bat_Sig created at 2010-11-05 03:18:10+00:00\n", - "sigmavirus24/octokit.rb created at 2013-12-12 02:32:30+00:00\n", - "sigmavirus24/ordinary created at 2013-06-15 18:09:48+00:00\n", - "sigmavirus24/patch-converter created at 2012-11-26 13:52:57+00:00\n", - "sigmavirus24/pelican created at 2012-06-14 14:25:45+00:00\n", - "sigmavirus24/pelican-themes created at 2012-06-14 13:51:35+00:00\n", - "sigmavirus24/pep8 created at 2012-09-06 14:13:14+00:00\n", - "sigmavirus24/pip created at 2014-01-07 14:27:24+00:00\n", - "sigmavirus24/polynomials.py created at 2013-04-10 03:12:06+00:00\n", - "sigmavirus24/PyF-ck created at 2013-05-01 22:14:11+00:00\n", - "sigmavirus24/pyflakes created at 2014-07-23 15:06:17+00:00\n", - "sigmavirus24/pyflakes-old created at 2013-01-28 00:25:27+00:00\n", - "sigmavirus24/python-guide created at 2012-06-15 18:00:03+00:00\n", - "sigmavirus24/python-interview-questions created at 2014-08-13 02:32:38+00:00\n", - "sigmavirus24/pyyaml created at 2013-12-01 18:29:02+00:00\n", - "sigmavirus24/rack created at 2014-07-13 00:51:30+00:00\n", - "sigmavirus24/recipes created at 2013-01-25 04:31:44+00:00\n", - "sigmavirus24/repl_fun created at 2013-03-30 15:13:42+00:00\n", - "sigmavirus24/requests created at 2012-06-15 13:47:06+00:00\n", - "sigmavirus24/requests-data-schemes created at 2013-01-07 04:49:50+00:00\n", - "sigmavirus24/requests-ntlm created at 2014-07-18 21:32:31+00:00\n", - "sigmavirus24/requests-toolbelt created at 2013-12-29 21:19:08+00:00\n", - "sigmavirus24/requests.rb created at 2013-02-01 02:52:28+00:00\n", - "sigmavirus24/rfc3986 created at 2014-06-25 14:25:11+00:00\n", - "sigmavirus24/shipit created at 2013-05-22 19:32:18+00:00\n", - "sigmavirus24/solarized-pygment created at 2013-01-13 23:36:54+00:00\n", - "sigmavirus24/sprunge.py created at 2012-06-09 14:19:26+00:00\n", - "sigmavirus24/subscribed created at 2012-10-07 03:40:31+00:00\n", - "sigmavirus24/Todo.txt-python created at 2012-09-16 19:31:58+00:00\n", - "sigmavirus24/update_firefox created at 2012-06-19 01:56:02+00:00\n", - "sigmavirus24/uritemplate created at 2013-05-14 16:52:08+00:00\n", - "sigmavirus24/urllib3 created at 2013-12-04 03:04:13+00:00\n", - "sigmavirus24/vcr created at 2013-09-18 03:15:42+00:00\n", - "sigmavirus24/vim-stopsign created at 2013-09-03 13:26:03+00:00\n", - "sigmavirus24/www.gittip.com created at 2013-01-16 13:15:38+00:00\n", - "sigmavirus24/x11-ssh-askpass created at 2011-09-08 15:25:05+00:00\n", - "sigmavirus24/zero created at 2013-09-15 02:17:30+00:00\n", - "sigmavirus24/zero_buffer created at 2014-07-31 18:46:36+00:00\n" - ] - } - ], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can also login and fork each of these repositories." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "gh = github3.login('username', 'password')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for repository in gh.repositories_by('sigmavirus24'):\n", - " repository.create_fork()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Listing repositories by their owner" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import github3" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you wanted to fork an organization to you, you could do the following: " + "name": "stdout", + "output_type": "stream", + "text": [ + "sigmavirus24/betamax created at 2013-07-16 03:23:22+00:00\n", + "sigmavirus24/betamax_matchers created at 2014-07-19 18:51:39+00:00\n", + "sigmavirus24/catapultpgh created at 2013-02-11 17:16:43+00:00\n", + "sigmavirus24/charade created at 2012-11-28 03:24:20+00:00\n", + "sigmavirus24/clint created at 2013-02-10 21:09:02+00:00\n", + "sigmavirus24/contrib-hub created at 2013-11-30 18:36:55+00:00\n", + "sigmavirus24/crequests created at 2013-01-24 22:54:17+00:00\n", + "sigmavirus24/curryer created at 2013-11-10 02:03:42+00:00\n", + "sigmavirus24/c_libs created at 2012-06-11 14:45:35+00:00\n", + "sigmavirus24/ddg created at 2012-12-16 22:11:35+00:00\n", + "sigmavirus24/developer.github.com created at 2012-05-27 04:19:17+00:00\n", + "sigmavirus24/dream-python created at 2014-08-13 15:55:44+00:00\n", + "sigmavirus24/elephant created at 2013-03-27 18:25:03+00:00\n", + "sigmavirus24/euler.hs created at 2013-10-19 01:19:03+00:00\n", + "sigmavirus24/expecter created at 2012-07-25 03:02:58+00:00\n", + "sigmavirus24/format-geojson.clj created at 2013-10-25 22:17:20+00:00\n", + "sigmavirus24/ghsync created at 2012-10-17 13:49:42+00:00\n", + "sigmavirus24/git-hub created at 2012-10-05 19:35:45+00:00\n", + "sigmavirus24/GITenberg created at 2012-09-25 21:07:30+00:00\n", + "sigmavirus24/github-cli created at 2012-07-05 14:58:47+00:00\n", + "sigmavirus24/github3.py created at 2012-03-13 19:58:53+00:00\n", + "sigmavirus24/GitPython created at 2012-11-28 16:27:22+00:00\n", + "sigmavirus24/grequests created at 2012-12-30 23:04:12+00:00\n", + "sigmavirus24/gtk-vikb created at 2012-07-16 23:18:15+00:00\n", + "sigmavirus24/heroku-buildpack-python created at 2013-01-19 18:09:35+00:00\n", + "sigmavirus24/http11 created at 2014-07-21 01:57:47+00:00\n", + "sigmavirus24/httpbin created at 2013-07-19 18:53:30+00:00\n", + "sigmavirus24/hyper created at 2014-02-20 16:02:48+00:00\n", + "sigmavirus24/issues.py created at 2012-02-25 21:32:31+00:00\n", + "sigmavirus24/LendingClubAutoInvestor created at 2013-05-08 14:56:33+00:00\n", + "sigmavirus24/libyaml created at 2013-12-01 18:27:17+00:00\n", + "sigmavirus24/lyahfgg created at 2013-07-31 02:47:36+00:00\n", + "sigmavirus24/madison_geojson created at 2013-10-25 20:40:41+00:00\n", + "sigmavirus24/mccabe created at 2014-04-18 18:30:26+00:00\n", + "sigmavirus24/mixfaster created at 2012-06-30 00:13:21+00:00\n", + "sigmavirus24/mixminion created at 2011-09-06 13:34:15+00:00\n", + "sigmavirus24/mock_github_api created at 2012-12-21 23:14:08+00:00\n", + "sigmavirus24/nothub created at 2013-01-29 18:00:15+00:00\n", + "sigmavirus24/No_Agenda_Bat_Sig created at 2010-11-05 03:18:10+00:00\n", + "sigmavirus24/octokit.rb created at 2013-12-12 02:32:30+00:00\n", + "sigmavirus24/ordinary created at 2013-06-15 18:09:48+00:00\n", + "sigmavirus24/patch-converter created at 2012-11-26 13:52:57+00:00\n", + "sigmavirus24/pelican created at 2012-06-14 14:25:45+00:00\n", + "sigmavirus24/pelican-themes created at 2012-06-14 13:51:35+00:00\n", + "sigmavirus24/pep8 created at 2012-09-06 14:13:14+00:00\n", + "sigmavirus24/pip created at 2014-01-07 14:27:24+00:00\n", + "sigmavirus24/polynomials.py created at 2013-04-10 03:12:06+00:00\n", + "sigmavirus24/PyF-ck created at 2013-05-01 22:14:11+00:00\n", + "sigmavirus24/pyflakes created at 2014-07-23 15:06:17+00:00\n", + "sigmavirus24/pyflakes-old created at 2013-01-28 00:25:27+00:00\n", + "sigmavirus24/python-guide created at 2012-06-15 18:00:03+00:00\n", + "sigmavirus24/python-interview-questions created at 2014-08-13 02:32:38+00:00\n", + "sigmavirus24/pyyaml created at 2013-12-01 18:29:02+00:00\n", + "sigmavirus24/rack created at 2014-07-13 00:51:30+00:00\n", + "sigmavirus24/recipes created at 2013-01-25 04:31:44+00:00\n", + "sigmavirus24/repl_fun created at 2013-03-30 15:13:42+00:00\n", + "sigmavirus24/requests created at 2012-06-15 13:47:06+00:00\n", + "sigmavirus24/requests-data-schemes created at 2013-01-07 04:49:50+00:00\n", + "sigmavirus24/requests-ntlm created at 2014-07-18 21:32:31+00:00\n", + "sigmavirus24/requests-toolbelt created at 2013-12-29 21:19:08+00:00\n", + "sigmavirus24/requests.rb created at 2013-02-01 02:52:28+00:00\n", + "sigmavirus24/rfc3986 created at 2014-06-25 14:25:11+00:00\n", + "sigmavirus24/shipit created at 2013-05-22 19:32:18+00:00\n", + "sigmavirus24/solarized-pygment created at 2013-01-13 23:36:54+00:00\n", + "sigmavirus24/sprunge.py created at 2012-06-09 14:19:26+00:00\n", + "sigmavirus24/subscribed created at 2012-10-07 03:40:31+00:00\n", + "sigmavirus24/Todo.txt-python created at 2012-09-16 19:31:58+00:00\n", + "sigmavirus24/update_firefox created at 2012-06-19 01:56:02+00:00\n", + "sigmavirus24/uritemplate created at 2013-05-14 16:52:08+00:00\n", + "sigmavirus24/urllib3 created at 2013-12-04 03:04:13+00:00\n", + "sigmavirus24/vcr created at 2013-09-18 03:15:42+00:00\n", + "sigmavirus24/vim-stopsign created at 2013-09-03 13:26:03+00:00\n", + "sigmavirus24/www.gittip.com created at 2013-01-16 13:15:38+00:00\n", + "sigmavirus24/x11-ssh-askpass created at 2011-09-08 15:25:05+00:00\n", + "sigmavirus24/zero created at 2013-09-15 02:17:30+00:00\n", + "sigmavirus24/zero_buffer created at 2014-07-31 18:46:36+00:00\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for repository in gh.repositories_by('sigmavirus24'):\n", - " repository.create_fork('my-organization')" - ], - "language": "python", - "metadata": {}, - "outputs": [] } ], - "metadata": {} + "source": [ + "for repository in github3.repositories_by('sigmavirus24'):\n", + " print('{0} created at {0.created_at}'.format(repository))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also login and fork each of these repositories." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "gh = github3.login('username', 'password')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for repository in gh.repositories_by('sigmavirus24'):\n", + " repository.create_fork()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you wanted to fork an organization to you, you could do the following: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for repository in gh.repositories_by('sigmavirus24'):\n", + " repository.create_fork('my-organization')" + ] } - ] -} \ No newline at end of file + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/example-notebooks/issues.ipynb b/example-notebooks/issues.ipynb index 6b9302829..741ddfac3 100644 --- a/example-notebooks/issues.ipynb +++ b/example-notebooks/issues.ipynb @@ -1,241 +1,230 @@ { - "metadata": { - "name": "", - "signature": "sha256:ed4e83114104bffcc56d1edfe91758409ac02198e3daf0df5518ba2420c3a6f0" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The Issues API in github3.py" + ] + }, { - "cells": [ + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import github3" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "issue = github3.issue('sigmavirus24', 'github3.py', 187)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "The Issues API in github3.py" + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import github3" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "issue = github3.issue('sigmavirus24', 'github3.py', 187)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(issue.comments_count)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "3\n" - ] - } - ], - "prompt_number": 3 - }, + } + ], + "source": [ + "print(issue.comments_count)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "for label in issue.labels():\n", - " print(label)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Bug\n", - "Easy\n", - "Enhancement\n", - "Pair with Ian\n" - ] - } - ], - "prompt_number": 4 - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "Bug\n", + "Easy\n", + "Enhancement\n", + "Pair with Ian\n" + ] + } + ], + "source": [ + "for label in issue.labels():\n", + " print(label)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With an Issue object, we can retrieve a lot of information about the issue itself.\n", + "\n", + "We can also retrieve an issue's text (or body) in *three* ways:\n", + "\n", + "1. HTML\n", + "1. Plain text\n", + "1. Plain markdown" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With an Issue object, we can retrieve a lot of information about the issue itself.\n", - "\n", - "We can also retrieve an issue's text (or body) in *three* ways:\n", + "name": "stdout", + "output_type": "stream", + "text": [ + "

https://twitter.com/brian_curtin/status/420665317270900736 made me realize I never documented it at all.

\n", "\n", - "1. HTML\n", - "1. Plain text\n", - "1. Plain markdown" + "

Also it needs to be added to the github3.login function. We need a few good examples to document it with.

\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(issue.body_html)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "

https://twitter.com/brian_curtin/status/420665317270900736 made me realize I never documented it at all.

\n", - "\n", - "

Also it needs to be added to the github3.login function. We need a few good examples to document it with.

\n" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(issue.body_text)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "https://twitter.com/brian_curtin/status/420665317270900736 made me realize I never documented it at all.\n", - "\n", - "Also it needs to be added to the github3.login function. We need a few good examples to document it with.\n" - ] - } - ], - "prompt_number": 6 - }, + } + ], + "source": [ + "print(issue.body_html)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(issue.body)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "https://twitter.com/brian_curtin/status/420665317270900736 made me realize I never documented it *at all*.\r\n", - "\r\n", - "Also it needs to be added to the `github3.login` function. We need a few good examples to document it with.\n" - ] - } - ], - "prompt_number": 10 - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "https://twitter.com/brian_curtin/status/420665317270900736 made me realize I never documented it at all.\n", + "\n", + "Also it needs to be added to the github3.login function. We need a few good examples to document it with.\n" + ] + } + ], + "source": [ + "print(issue.body_text)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(issue.html_url)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "https://github.com/sigmavirus24/github3.py/issues/187\n" - ] - } - ], - "prompt_number": 7 - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "https://twitter.com/brian_curtin/status/420665317270900736 made me realize I never documented it *at all*.\r\n", + "\r\n", + "Also it needs to be added to the `github3.login` function. We need a few good examples to document it with.\n" + ] + } + ], + "source": [ + "print(issue.body)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "print('#{0.number}: \"{0.title}\" opened by {0.user}'.format(issue))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "#187: \"Document two factor auth\" opened by sigmavirus24\n" - ] - } - ], - "prompt_number": 8 - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "https://github.com/sigmavirus24/github3.py/issues/187\n" + ] + } + ], + "source": [ + "print(issue.html_url)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "for comment in issue.comments():\n", - " print('\"{0.body_text}\" posted by {0.user}'.format(comment))\n", - " print('-' * 80)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\"Note to self: Don't merge without documentation :-p \n", - "\n", - "But I totally thought I had some REPL/iPython output from testing this when it was implemented that would have worked well for an example.\" posted by esacteksab\n", - "--------------------------------------------------------------------------------\n", - "\"On Tue, Jan 07, 2014 at 05:48:28PM -0800, Barry Morrison wrote:\n", - " Note to self: _Don't merge without documentation_ :-p\n", - "A thousand times this.\n", - " But I totally thought I had some REPL/iPython output from testing this when\n", - " it was implemented that would have worked well for an example.\n", - "I'll take it!\" posted by sigmavirus24\n", - "--------------------------------------------------------------------------------\n", - "\"Went back through my things. I don't have anything. :(\" posted by esacteksab\n", - "--------------------------------------------------------------------------------\n" - ] - } - ], - "prompt_number": 11 - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "#187: \"Document two factor auth\" opened by sigmavirus24\n" + ] + } + ], + "source": [ + "print('#{0.number}: \"{0.title}\" opened by {0.user}'.format(issue))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As you can see above [esacteksab](https://github.com/esacteksab) originally thought of using IPython notebooks to document github3.py" + "name": "stdout", + "output_type": "stream", + "text": [ + "\"Note to self: Don't merge without documentation :-p \n", + "\n", + "But I totally thought I had some REPL/iPython output from testing this when it was implemented that would have worked well for an example.\" posted by esacteksab\n", + "--------------------------------------------------------------------------------\n", + "\"On Tue, Jan 07, 2014 at 05:48:28PM -0800, Barry Morrison wrote:\n", + " Note to self: _Don't merge without documentation_ :-p\n", + "A thousand times this.\n", + " But I totally thought I had some REPL/iPython output from testing this when\n", + " it was implemented that would have worked well for an example.\n", + "I'll take it!\" posted by sigmavirus24\n", + "--------------------------------------------------------------------------------\n", + "\"Went back through my things. I don't have anything. :(\" posted by esacteksab\n", + "--------------------------------------------------------------------------------\n" ] } ], - "metadata": {} + "source": [ + "for comment in issue.comments():\n", + " print('\"{0.body_text}\" posted by {0.user}'.format(comment))\n", + " print('-' * 80)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see above [esacteksab](https://github.com/esacteksab) originally thought of using IPython notebooks to document github3.py" + ] } - ] + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 1 } diff --git a/example-notebooks/iterating_over_public_gists.ipynb b/example-notebooks/iterating_over_public_gists.ipynb index 10fc46011..4b821019d 100644 --- a/example-notebooks/iterating_over_public_gists.ipynb +++ b/example-notebooks/iterating_over_public_gists.ipynb @@ -1,132 +1,134 @@ { - "metadata": { - "name": "", - "signature": "sha256:6aebb45445a1bc5b493ba1825ffdc9d557439c023767e0e1eb2503c915db0960" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "An example of retrieving and iterating over public gists on GitHub" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import github3" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for gist in github3.public_gists(number=50):\n", - " print('Gist {0.id} was created by {0.owner} on {0.created_at} and can be viewed at {0.html_url}'.format(gist))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Gist ac738b75a14615b88477 was created by adilakhter on 2014-08-17 19:20:24+00:00 and can be viewed at https://gist.github.com/ac738b75a14615b88477\n", - "Gist 0a9a309a9abcc6b5c4bf was created by openpanzer on 2014-08-17 19:20:10+00:00 and can be viewed at https://gist.github.com/0a9a309a9abcc6b5c4bf\n", - "Gist 7683f4f65b38f845db77 was created by rodoard on 2014-08-17 19:19:36+00:00 and can be viewed at https://gist.github.com/7683f4f65b38f845db77\n", - "Gist 9e0c32c8a14be8f5d5a6 was created by alexdgarland on 2014-08-17 19:18:18+00:00 and can be viewed at https://gist.github.com/9e0c32c8a14be8f5d5a6\n", - "Gist 0e7360f80a7c3e1314b1 was created by netsmertia on 2014-08-17 19:17:25+00:00 and can be viewed at https://gist.github.com/0e7360f80a7c3e1314b1\n", - "Gist 9d4801fea0a79a64d65f was created by johnjohnsp1 on 2014-08-17 19:16:57+00:00 and can be viewed at https://gist.github.com/9d4801fea0a79a64d65f\n", - "Gist 697b7c19baef76a7e255 was created by francescoagati on 2014-08-17 19:14:52+00:00 and can be viewed at https://gist.github.com/697b7c19baef76a7e255\n", - "Gist 2b3654bcc548ea46fd5a was created by jkhosla on 2014-08-17 19:14:37+00:00 and can be viewed at https://gist.github.com/2b3654bcc548ea46fd5a\n", - "Gist 52aef973e8cd3814273d was created by netsmertia on 2014-08-17 19:14:35+00:00 and can be viewed at https://gist.github.com/52aef973e8cd3814273d\n", - "Gist 0ebb15e96051435a8495 was created by ivycheung1208 on 2014-08-17 19:14:07+00:00 and can be viewed at https://gist.github.com/0ebb15e96051435a8495\n", - "Gist 3e5e5344a8f4d7497ccd was created by mitsuhiko on 2014-08-17 19:13:32+00:00 and can be viewed at https://gist.github.com/3e5e5344a8f4d7497ccd\n", - "Gist a5619a2de7ab2c207977 was created by asez73 on 2014-08-17 19:13:24+00:00 and can be viewed at https://gist.github.com/a5619a2de7ab2c207977\n", - "Gist 2a0ef712770ed207f046 was created by 1992chenlu on 2014-08-17 19:13:15+00:00 and can be viewed at https://gist.github.com/2a0ef712770ed207f046\n", - "Gist 81f1ea72ec368b282e12 was created by jdehlin on 2014-08-17 19:13:08+00:00 and can be viewed at https://gist.github.com/81f1ea72ec368b282e12\n", - "Gist 6c864bdfced90b81d0a4 was created by rodoard on 2014-08-17 19:12:48+00:00 and can be viewed at https://gist.github.com/6c864bdfced90b81d0a4\n", - "Gist b38bcc0d9882507c918d was created by intothev01d on 2014-08-17 19:12:18+00:00 and can be viewed at https://gist.github.com/b38bcc0d9882507c918d\n", - "Gist 300f20f2705ccfff121f was created by sfujiwara on 2014-08-17 19:12:03+00:00 and can be viewed at https://gist.github.com/300f20f2705ccfff121f\n", - "Gist cf20734ce190c295bce0 was created by rodoard on 2014-08-17 19:10:04+00:00 and can be viewed at https://gist.github.com/cf20734ce190c295bce0\n", - "Gist 3ef046deac453abe5281 was created by dior001 on 2014-08-17 19:09:35+00:00 and can be viewed at https://gist.github.com/3ef046deac453abe5281\n", - "Gist 30e1572599d409ea60ce was created by wilbyang on 2014-08-17 19:09:15+00:00 and can be viewed at https://gist.github.com/30e1572599d409ea60ce\n", - "Gist 67e992f23aeb0c56c8a6 was created by rodoard on 2014-08-17 19:07:53+00:00 and can be viewed at https://gist.github.com/67e992f23aeb0c56c8a6\n", - "Gist 3c5aca83fc49137db35d was created by openpanzer on 2014-08-17 19:07:52+00:00 and can be viewed at https://gist.github.com/3c5aca83fc49137db35d\n", - "Gist 57099359cefcbbb4c07f was created by Arexxk on 2014-08-17 19:07:42+00:00 and can be viewed at https://gist.github.com/57099359cefcbbb4c07f\n", - "Gist b4ca18b8868485ada245 was created by krushd on 2014-08-17 19:07:15+00:00 and can be viewed at https://gist.github.com/b4ca18b8868485ada245\n", - "Gist 06b688f9857475215d88 was created by sanjuthomas on 2014-08-17 19:06:49+00:00 and can be viewed at https://gist.github.com/06b688f9857475215d88\n", - "Gist aa929546abe78aa2be81 was created by sanjuthomas on 2014-08-17 19:05:39+00:00 and can be viewed at https://gist.github.com/aa929546abe78aa2be81\n", - "Gist 593a3e39950d6ccf6d28 was created by CHLibrarian on 2014-08-17 19:05:36+00:00 and can be viewed at https://gist.github.com/593a3e39950d6ccf6d28\n", - "Gist 07bb9aa25f2dec34c353 was created by CHLibrarian on 2014-08-17 19:04:57+00:00 and can be viewed at https://gist.github.com/07bb9aa25f2dec34c353\n", - "Gist 77445b12dccddf898869 was created by sheolseol on 2014-08-17 19:04:42+00:00 and can be viewed at https://gist.github.com/77445b12dccddf898869\n", - "Gist 8fd26b4887231d2b6de7 was created by sackio on 2014-08-17 19:04:30+00:00 and can be viewed at https://gist.github.com/8fd26b4887231d2b6de7\n", - "Gist 03e46b12816e092a1f21 was created by CHLibrarian on 2014-08-17 19:04:17+00:00 and can be viewed at https://gist.github.com/03e46b12816e092a1f21\n", - "Gist faaa524186cd804fc059 was created by ramntry on 2014-08-17 19:03:47+00:00 and can be viewed at https://gist.github.com/faaa524186cd804fc059\n", - "Gist 4f8322e21803a97058fe was created by grondilu on 2014-08-17 19:03:34+00:00 and can be viewed at https://gist.github.com/4f8322e21803a97058fe\n", - "Gist 20cf25445e5ac9bf0028 was created by sanjuthomas on 2014-08-17 19:03:10+00:00 and can be viewed at https://gist.github.com/20cf25445e5ac9bf0028\n", - "Gist beb09796768d42ce9523 was created by CHLibrarian on 2014-08-17 19:03:08+00:00 and can be viewed at https://gist.github.com/beb09796768d42ce9523\n", - "Gist 0ed95c271587870feb5b was created by jakelodwick on 2014-08-17 19:02:38+00:00 and can be viewed at https://gist.github.com/0ed95c271587870feb5b\n", - "Gist e22429a340cd28f2f626 was created by sanjuthomas on 2014-08-17 19:02:14+00:00 and can be viewed at https://gist.github.com/e22429a340cd28f2f626\n", - "Gist 5a62eddbe67dca0a45e2 was created by jakelodwick on 2014-08-17 19:01:46+00:00 and can be viewed at https://gist.github.com/5a62eddbe67dca0a45e2\n", - "Gist 3cbc187e86e302016fd3 was created by synthtech on 2014-08-17 19:01:25+00:00 and can be viewed at https://gist.github.com/3cbc187e86e302016fd3\n", - "Gist ef40230b822a2207c95b was created by sackio on 2014-08-17 19:00:04+00:00 and can be viewed at https://gist.github.com/ef40230b822a2207c95b\n", - "Gist 77df801086743a8159e7 was created by CHLibrarian on 2014-08-17 18:59:12+00:00 and can be viewed at https://gist.github.com/77df801086743a8159e7\n", - "Gist 0de978159530abcbba98 was created by sackio on 2014-08-17 18:59:05+00:00 and can be viewed at https://gist.github.com/0de978159530abcbba98\n", - "Gist fbc99df944d2fd369d10 was created by cythux on 2014-08-17 18:58:42+00:00 and can be viewed at https://gist.github.com/fbc99df944d2fd369d10\n", - "Gist 9ae1fe82f8c335af5160 was created by santiblanko on 2014-08-17 18:58:37+00:00 and can be viewed at https://gist.github.com/9ae1fe82f8c335af5160\n", - "Gist c241cb84f28250a77232 was created by pudquick on 2014-08-17 18:55:26+00:00 and can be viewed at https://gist.github.com/c241cb84f28250a77232\n", - "Gist 187815899d6c3b4cb36e was created by sackio on 2014-08-17 18:55:19+00:00 and can be viewed at https://gist.github.com/187815899d6c3b4cb36e\n", - "Gist 798fa78c90642eebb3b4 was created by prakhar1989 on 2014-08-17 18:55:08+00:00 and can be viewed at https://gist.github.com/798fa78c90642eebb3b4\n", - "Gist 0042d48fbb469ce4bd4c was created by Softsapiens on 2014-08-17 18:54:50+00:00 and can be viewed at https://gist.github.com/0042d48fbb469ce4bd4c\n", - "Gist 91fd537b432b96979459 was created by georgkreimer on 2014-08-17 18:54:11+00:00 and can be viewed at https://gist.github.com/91fd537b432b96979459\n", - "Gist 3a43e1ee0ae57fd4a3d7 was created by yagudaev on 2014-08-17 18:54:07+00:00 and can be viewed at https://gist.github.com/3a43e1ee0ae57fd4a3d7\n" - ] - } - ], - "prompt_number": 3 - }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# An example of retrieving and iterating over public gists on GitHub" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import github3" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you omit the number argument, github3.py will attempt to iterate over all public gists on GitHub. Unfortunately with a ratelimit of 60 unauthenticated requests per hour you will not be able to list them quickly. To increase your ratelimit you would have to do the following (or something similar)." + "name": "stdout", + "output_type": "stream", + "text": [ + "Gist ac738b75a14615b88477 was created by adilakhter on 2014-08-17 19:20:24+00:00 and can be viewed at https://gist.github.com/ac738b75a14615b88477\n", + "Gist 0a9a309a9abcc6b5c4bf was created by openpanzer on 2014-08-17 19:20:10+00:00 and can be viewed at https://gist.github.com/0a9a309a9abcc6b5c4bf\n", + "Gist 7683f4f65b38f845db77 was created by rodoard on 2014-08-17 19:19:36+00:00 and can be viewed at https://gist.github.com/7683f4f65b38f845db77\n", + "Gist 9e0c32c8a14be8f5d5a6 was created by alexdgarland on 2014-08-17 19:18:18+00:00 and can be viewed at https://gist.github.com/9e0c32c8a14be8f5d5a6\n", + "Gist 0e7360f80a7c3e1314b1 was created by netsmertia on 2014-08-17 19:17:25+00:00 and can be viewed at https://gist.github.com/0e7360f80a7c3e1314b1\n", + "Gist 9d4801fea0a79a64d65f was created by johnjohnsp1 on 2014-08-17 19:16:57+00:00 and can be viewed at https://gist.github.com/9d4801fea0a79a64d65f\n", + "Gist 697b7c19baef76a7e255 was created by francescoagati on 2014-08-17 19:14:52+00:00 and can be viewed at https://gist.github.com/697b7c19baef76a7e255\n", + "Gist 2b3654bcc548ea46fd5a was created by jkhosla on 2014-08-17 19:14:37+00:00 and can be viewed at https://gist.github.com/2b3654bcc548ea46fd5a\n", + "Gist 52aef973e8cd3814273d was created by netsmertia on 2014-08-17 19:14:35+00:00 and can be viewed at https://gist.github.com/52aef973e8cd3814273d\n", + "Gist 0ebb15e96051435a8495 was created by ivycheung1208 on 2014-08-17 19:14:07+00:00 and can be viewed at https://gist.github.com/0ebb15e96051435a8495\n", + "Gist 3e5e5344a8f4d7497ccd was created by mitsuhiko on 2014-08-17 19:13:32+00:00 and can be viewed at https://gist.github.com/3e5e5344a8f4d7497ccd\n", + "Gist a5619a2de7ab2c207977 was created by asez73 on 2014-08-17 19:13:24+00:00 and can be viewed at https://gist.github.com/a5619a2de7ab2c207977\n", + "Gist 2a0ef712770ed207f046 was created by 1992chenlu on 2014-08-17 19:13:15+00:00 and can be viewed at https://gist.github.com/2a0ef712770ed207f046\n", + "Gist 81f1ea72ec368b282e12 was created by jdehlin on 2014-08-17 19:13:08+00:00 and can be viewed at https://gist.github.com/81f1ea72ec368b282e12\n", + "Gist 6c864bdfced90b81d0a4 was created by rodoard on 2014-08-17 19:12:48+00:00 and can be viewed at https://gist.github.com/6c864bdfced90b81d0a4\n", + "Gist b38bcc0d9882507c918d was created by intothev01d on 2014-08-17 19:12:18+00:00 and can be viewed at https://gist.github.com/b38bcc0d9882507c918d\n", + "Gist 300f20f2705ccfff121f was created by sfujiwara on 2014-08-17 19:12:03+00:00 and can be viewed at https://gist.github.com/300f20f2705ccfff121f\n", + "Gist cf20734ce190c295bce0 was created by rodoard on 2014-08-17 19:10:04+00:00 and can be viewed at https://gist.github.com/cf20734ce190c295bce0\n", + "Gist 3ef046deac453abe5281 was created by dior001 on 2014-08-17 19:09:35+00:00 and can be viewed at https://gist.github.com/3ef046deac453abe5281\n", + "Gist 30e1572599d409ea60ce was created by wilbyang on 2014-08-17 19:09:15+00:00 and can be viewed at https://gist.github.com/30e1572599d409ea60ce\n", + "Gist 67e992f23aeb0c56c8a6 was created by rodoard on 2014-08-17 19:07:53+00:00 and can be viewed at https://gist.github.com/67e992f23aeb0c56c8a6\n", + "Gist 3c5aca83fc49137db35d was created by openpanzer on 2014-08-17 19:07:52+00:00 and can be viewed at https://gist.github.com/3c5aca83fc49137db35d\n", + "Gist 57099359cefcbbb4c07f was created by Arexxk on 2014-08-17 19:07:42+00:00 and can be viewed at https://gist.github.com/57099359cefcbbb4c07f\n", + "Gist b4ca18b8868485ada245 was created by krushd on 2014-08-17 19:07:15+00:00 and can be viewed at https://gist.github.com/b4ca18b8868485ada245\n", + "Gist 06b688f9857475215d88 was created by sanjuthomas on 2014-08-17 19:06:49+00:00 and can be viewed at https://gist.github.com/06b688f9857475215d88\n", + "Gist aa929546abe78aa2be81 was created by sanjuthomas on 2014-08-17 19:05:39+00:00 and can be viewed at https://gist.github.com/aa929546abe78aa2be81\n", + "Gist 593a3e39950d6ccf6d28 was created by CHLibrarian on 2014-08-17 19:05:36+00:00 and can be viewed at https://gist.github.com/593a3e39950d6ccf6d28\n", + "Gist 07bb9aa25f2dec34c353 was created by CHLibrarian on 2014-08-17 19:04:57+00:00 and can be viewed at https://gist.github.com/07bb9aa25f2dec34c353\n", + "Gist 77445b12dccddf898869 was created by sheolseol on 2014-08-17 19:04:42+00:00 and can be viewed at https://gist.github.com/77445b12dccddf898869\n", + "Gist 8fd26b4887231d2b6de7 was created by sackio on 2014-08-17 19:04:30+00:00 and can be viewed at https://gist.github.com/8fd26b4887231d2b6de7\n", + "Gist 03e46b12816e092a1f21 was created by CHLibrarian on 2014-08-17 19:04:17+00:00 and can be viewed at https://gist.github.com/03e46b12816e092a1f21\n", + "Gist faaa524186cd804fc059 was created by ramntry on 2014-08-17 19:03:47+00:00 and can be viewed at https://gist.github.com/faaa524186cd804fc059\n", + "Gist 4f8322e21803a97058fe was created by grondilu on 2014-08-17 19:03:34+00:00 and can be viewed at https://gist.github.com/4f8322e21803a97058fe\n", + "Gist 20cf25445e5ac9bf0028 was created by sanjuthomas on 2014-08-17 19:03:10+00:00 and can be viewed at https://gist.github.com/20cf25445e5ac9bf0028\n", + "Gist beb09796768d42ce9523 was created by CHLibrarian on 2014-08-17 19:03:08+00:00 and can be viewed at https://gist.github.com/beb09796768d42ce9523\n", + "Gist 0ed95c271587870feb5b was created by jakelodwick on 2014-08-17 19:02:38+00:00 and can be viewed at https://gist.github.com/0ed95c271587870feb5b\n", + "Gist e22429a340cd28f2f626 was created by sanjuthomas on 2014-08-17 19:02:14+00:00 and can be viewed at https://gist.github.com/e22429a340cd28f2f626\n", + "Gist 5a62eddbe67dca0a45e2 was created by jakelodwick on 2014-08-17 19:01:46+00:00 and can be viewed at https://gist.github.com/5a62eddbe67dca0a45e2\n", + "Gist 3cbc187e86e302016fd3 was created by synthtech on 2014-08-17 19:01:25+00:00 and can be viewed at https://gist.github.com/3cbc187e86e302016fd3\n", + "Gist ef40230b822a2207c95b was created by sackio on 2014-08-17 19:00:04+00:00 and can be viewed at https://gist.github.com/ef40230b822a2207c95b\n", + "Gist 77df801086743a8159e7 was created by CHLibrarian on 2014-08-17 18:59:12+00:00 and can be viewed at https://gist.github.com/77df801086743a8159e7\n", + "Gist 0de978159530abcbba98 was created by sackio on 2014-08-17 18:59:05+00:00 and can be viewed at https://gist.github.com/0de978159530abcbba98\n", + "Gist fbc99df944d2fd369d10 was created by cythux on 2014-08-17 18:58:42+00:00 and can be viewed at https://gist.github.com/fbc99df944d2fd369d10\n", + "Gist 9ae1fe82f8c335af5160 was created by santiblanko on 2014-08-17 18:58:37+00:00 and can be viewed at https://gist.github.com/9ae1fe82f8c335af5160\n", + "Gist c241cb84f28250a77232 was created by pudquick on 2014-08-17 18:55:26+00:00 and can be viewed at https://gist.github.com/c241cb84f28250a77232\n", + "Gist 187815899d6c3b4cb36e was created by sackio on 2014-08-17 18:55:19+00:00 and can be viewed at https://gist.github.com/187815899d6c3b4cb36e\n", + "Gist 798fa78c90642eebb3b4 was created by prakhar1989 on 2014-08-17 18:55:08+00:00 and can be viewed at https://gist.github.com/798fa78c90642eebb3b4\n", + "Gist 0042d48fbb469ce4bd4c was created by Softsapiens on 2014-08-17 18:54:50+00:00 and can be viewed at https://gist.github.com/0042d48fbb469ce4bd4c\n", + "Gist 91fd537b432b96979459 was created by georgkreimer on 2014-08-17 18:54:11+00:00 and can be viewed at https://gist.github.com/91fd537b432b96979459\n", + "Gist 3a43e1ee0ae57fd4a3d7 was created by yagudaev on 2014-08-17 18:54:07+00:00 and can be viewed at https://gist.github.com/3a43e1ee0ae57fd4a3d7\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "gh = github3.login('username', 'password')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for gist in gh.public_gists():\n", - " print('Gist {0.id} was created by {0.owner} on {0.created_at} and can be viewed at {0.html_url}'.format(gist))" - ], - "language": "python", - "metadata": {}, - "outputs": [] } ], - "metadata": {} + "source": [ + "for gist in github3.public_gists(number=50):\n", + " print('Gist {0.id} was created by {0.owner} on {0.created_at} and can be viewed at {0.html_url}'.format(gist))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you omit the number argument, github3.py will attempt to iterate over all public gists on GitHub. Unfortunately with a ratelimit of 60 unauthenticated requests per hour you will not be able to list them quickly. To increase your ratelimit you would have to do the following (or something similar)." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "gh = github3.login('username', 'password')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for gist in gh.public_gists():\n", + " print('Gist {0.id} was created by {0.owner} on {0.created_at} and can be viewed at {0.html_url}'.format(gist))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" } - ] + }, + "nbformat": 4, + "nbformat_minor": 1 } diff --git a/example-notebooks/managing_issues.ipynb b/example-notebooks/managing_issues.ipynb index 03316e802..398ceaf03 100644 --- a/example-notebooks/managing_issues.ipynb +++ b/example-notebooks/managing_issues.ipynb @@ -1,403 +1,390 @@ { - "metadata": { - "name": "", - "signature": "sha256:b8cf2efcee4cc8dbd7cc3243958fbb66c6b0bd59d6d977e1c84b98e3058a616a" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ + "cells": [ { - "cells": [ - { - "cell_type": "heading", - "level": 1, - "metadata": {}, - "source": [ - "Creating, Editing, Closing, and Adding Labels to Issues" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import github3" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import os" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "gh = github3.login(os.environ['GH_USERNAME'], os.environ['GH_PASSWORD'])" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we've created an authenticated client, let's fetch the repository we need to create our issue on." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "r = gh.repository('github3py', 'fork_this')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next we create the issue using the `create_issue` method on the `Repository` object. It only requires that you pass the first parameter, `title`, to give the issue a title. The next parameter is `body` and it allows you to provide a description of the bug." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "i = r.create_issue('Here is a title', body='I ran into this bug using version 0.1-alpha the other day ...')" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 5 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "repr(i)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 6, - "text": [ - "''" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "What if we accidentally created an invalid bug report? We can close it right from here!" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "help(i.close)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Help on method close in module github3.issues.issue:\n", - "\n", - "close() method of github3.issues.issue.Issue instance\n", - " Close this issue.\n", - " \n", - " :returns: bool\n", - "\n" - ] - } - ], - "prompt_number": 7 - }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Creating, Editing, Closing, and Adding Labels to Issues" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import github3" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import os" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "gh = github3.login(os.environ['GH_USERNAME'], os.environ['GH_PASSWORD'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we've created an authenticated client, let's fetch the repository we need to create our issue on." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "r = gh.repository('github3py', 'fork_this')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we create the issue using the `create_issue` method on the `Repository` object. It only requires that you pass the first parameter, `title`, to give the issue a title. The next parameter is `body` and it allows you to provide a description of the bug." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "i = r.create_issue('Here is a title', body='I ran into this bug using version 0.1-alpha the other day ...')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "i.close()" - ], - "language": "python", + "data": { + "text/plain": [ + "''" + ] + }, + "execution_count": 6, "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 8, - "text": [ - "True" - ] - } - ], - "prompt_number": 8 - }, + "output_type": "execute_result" + } + ], + "source": [ + "repr(i)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What if we accidentally created an invalid bug report? We can close it right from here!" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "But actually, we were just able to reproduce the issue. Let's re-open it, then we'll add some more details to the description." + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on method close in module github3.issues.issue:\n", + "\n", + "close() method of github3.issues.issue.Issue instance\n", + " Close this issue.\n", + " \n", + " :returns: bool\n", + "\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "i.reopen()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 9, - "text": [ - "True" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "body = i.body" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 10 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "i.edit(body=(body + 'I tried to call reopen on an open issue and then ...'))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 11, - "text": [ - "True" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "print(i.body)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "I ran into this bug using version 0.1-alpha the other day ...I tried to call reopen on an open issue and then ...\n" - ] - } - ], - "prompt_number": 12 - }, + } + ], + "source": [ + "help(i.close)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 8, "metadata": {}, - "source": [ - "We can even add comments" - ] - }, + "output_type": "execute_result" + } + ], + "source": [ + "i.close()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But actually, we were just able to reproduce the issue. Let's re-open it, then we'll add some more details to the description." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "comment = i.create_comment('Thanks for this bug report!')" - ], - "language": "python", + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 9, "metadata": {}, - "outputs": [], - "prompt_number": 13 - }, + "output_type": "execute_result" + } + ], + "source": [ + "i.reopen()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "body = i.body" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ { - "cell_type": "code", - "collapsed": false, - "input": [ - "repr(comment)" - ], - "language": "python", + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 11, "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 14, - "text": [ - "''" - ] - } - ], - "prompt_number": 14 - }, + "output_type": "execute_result" + } + ], + "source": [ + "i.edit(body=(body + 'I tried to call reopen on an open issue and then ...'))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, if you're a collaborator on a repository, you can add labels or a milestone to an issue." + "name": "stdout", + "output_type": "stream", + "text": [ + "I ran into this bug using version 0.1-alpha the other day ...I tried to call reopen on an open issue and then ...\n" ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "i.add_labels('enhancement', 'bug')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 15, - "text": [ - "[