HTTP/1.1 200 OK Server: nginx/0.6.31 Date: Thu, 06 Aug 2009 05:18:56 GMT Content-Type: application/x-yaml; charset=utf-8 Connection: keep-alive Set-Cookie: _github_ses=BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--884981fc5aa85daf318eeff084d98e2cff92578f; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly Status: 200 OK X-Runtime: 5065ms ETag: "cf88713ff12c8d35789400159323613d" Cache-Control: private, max-age=0, must-revalidate Content-Length: 32432 --- commits: - message: Sends data in body, not as params (missed Content-Lenght) parents: - id: 00fd8079dd423c2028a8a62e98a759c4e49258f9 url: http://github.com/fcoury/octopi/commit/57da65035236b8603c96866f0d5876c6cfe63e46 author: name: Felipe Coury email: felipe.coury@gmail.com id: 57da65035236b8603c96866f0d5876c6cfe63e46 committed_date: "2009-07-20T22:29:54-07:00" authored_date: "2009-07-20T22:29:54-07:00" tree: 67cf3f067fce0bff3c5af717754259cbb0a05d02 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- some git config options can have blank values (like pager) Signed-off-by: Felipe Coury parents: - id: 7b33a45ad9e535d8ee27069899ed4de7d703a5f8 url: http://github.com/fcoury/octopi/commit/ed07094122888df187a377b0739e25a5b195cc1e author: name: David Dollar email: ddollar@gmail.com id: ed07094122888df187a377b0739e25a5b195cc1e committed_date: "2009-07-17T16:33:23-07:00" authored_date: "2009-07-14T10:27:30-07:00" tree: 7a73f9f4fb057759248af2aa8eaaf7e83275b0f4 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: Fixes authorised calls to use https and adds api.commits parents: - id: 2bfa90160808b4d7ed281e5858164dc8029509bc url: http://github.com/fcoury/octopi/commit/21678ec8571a5f4ecb847a1d93d830d09cde9b68 author: name: philnash email: philnash@gmail.com id: 21678ec8571a5f4ecb847a1d93d830d09cde9b68 committed_date: "2009-06-01T19:30:01-07:00" authored_date: "2009-06-01T19:30:01-07:00" tree: 4212505490b89f57055fee5075a04804063c02ea committer: name: philnash email: philnash@gmail.com - message: |- Sleep between retries (because they are caused by github's rate limit) Signed-off-by: Felipe Coury parents: - id: fb5ba554b2d147f8dd62c12ac1dfce1608c2a850 url: http://github.com/fcoury/octopi/commit/2bfa90160808b4d7ed281e5858164dc8029509bc author: name: Nat Budin email: natbudin@gmail.com id: 2bfa90160808b4d7ed281e5858164dc8029509bc committed_date: "2009-05-23T09:57:44-07:00" authored_date: "2009-05-13T11:40:47-07:00" tree: f4da08ee7e177aa86ec0438ebc00d1f192670221 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- Allow retry on post as well as get Signed-off-by: Felipe Coury parents: - id: 3283fa78014bf066c36e5c1dea1a5dae18fec157 url: http://github.com/fcoury/octopi/commit/fb5ba554b2d147f8dd62c12ac1dfce1608c2a850 author: name: Nat Budin email: natbudin@gmail.com id: fb5ba554b2d147f8dd62c12ac1dfce1608c2a850 committed_date: "2009-05-23T09:57:32-07:00" authored_date: "2009-05-13T11:31:55-07:00" tree: a097806b41c3110597b9f902e447b838fd3f3a58 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- Added Public Key Management API hooks. Added methods add_key and keys to user. Added new Key resource to add and remove keys. parents: - id: 845fa497497e211944b13485fa596bf46f8f182a url: http://github.com/fcoury/octopi/commit/0a3417a353961c61a7f56818e566d04570c92600 author: name: Felipe Coury email: felipe.coury@gmail.com id: 0a3417a353961c61a7f56818e566d04570c92600 committed_date: "2009-04-25T20:02:08-07:00" authored_date: "2009-04-25T20:00:31-07:00" tree: a4fb1b35429d1241e6853c6c275dfb9caff12122 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: Missing end on octopi.rb, changed authenticated sample, renamed issue to Sample Issue parents: - id: d2617707a52f678dd8992a0a5c79f9ce305f24df url: http://github.com/fcoury/octopi/commit/845fa497497e211944b13485fa596bf46f8f182a author: name: Felipe Coury email: felipe.coury@gmail.com id: 845fa497497e211944b13485fa596bf46f8f182a committed_date: "2009-04-25T15:03:10-07:00" authored_date: "2009-04-25T15:03:10-07:00" tree: e83df2c4cf0265ddc08167f30b6c0b23b4bbd332 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- Limit number of repetitions for retryable requests If a RetryableAPIError exception is raised, we only repeat the request MAX_RETRIES number of times before raising an APIError. This guards against infinite loops, while still allowing most 403 errors to be worked around. As I explained in the commit message for 6cae2e317b2e4301200b62654e57a0394c9f8b46, this logic is still pretty vague because GitHub hasn't documented their rate limiting policy yet. parents: - id: 6cae2e317b2e4301200b62654e57a0394c9f8b46 url: http://github.com/fcoury/octopi/commit/a26df884ed2ecfab18da7ec25c563b38467b84a6 author: name: Run Paint Run Run email: runrun@runpaint.org id: a26df884ed2ecfab18da7ec25c563b38467b84a6 committed_date: "2009-04-25T13:18:39-07:00" authored_date: "2009-04-25T13:18:39-07:00" tree: b800c0319d7d2423e5f3dda9d890b4f69f30e1fe committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Retry 403s and Net::HTTPBadResponse errors. My testing strongly suggests that when GitHub returns status code 403 the request can be retried. This may be how they implement rate limiting. So, if we get a 403 we simply repeat the request. We don't wait between requests because there is not yet any evidence that it would benefit us. Hopefully, once the rate limiting is documented, we can revisit this issue. We also retry on Net::HTTPBadResponse exceptions. These are typically raised when something between the client and the server clobbers the response, so repeating the request is the most sensible approach. We don't limit the number of retries which means this code could end up looping forever. I'm loath to specify some arbitrary limit, however, without documentation on what to expect. For example, in the case of 403 errors, my testing reveals that sometimes we succeed after retrying twice, and other times it may take nearly ten retries. parents: - id: 7b3b8fc98339bd0f47f574ecd7e24f1f141b070e url: http://github.com/fcoury/octopi/commit/6cae2e317b2e4301200b62654e57a0394c9f8b46 author: name: Run Paint Run Run email: runrun@runpaint.org id: 6cae2e317b2e4301200b62654e57a0394c9f8b46 committed_date: "2009-04-24T22:05:35-07:00" authored_date: "2009-04-24T22:05:35-07:00" tree: dd6cf18e7832cb3b5c4eeb60a4aa131a49629e53 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: Add .branches method to Repository object. parents: - id: 385ce1d6989adae200b10c416e4ea614d24746c0 url: http://github.com/fcoury/octopi/commit/a37a352bd11b6859aa95419cbd0698f510051028 author: name: Run Paint Run Run email: runrun@runpaint.org id: a37a352bd11b6859aa95419cbd0698f510051028 committed_date: "2009-04-23T19:42:53-07:00" authored_date: "2009-04-23T19:42:53-07:00" tree: 9c4547fb3fa88948322cc3f0bfed1f450c4ce330 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Make .keys and .emails return Arrays. The .keys and .emails methods were returning HTTParty responses which were confusing to the caller, and contained an unnecessary level of depth. We now index the response with the appropriate hash key, thus returning its Array value. parents: - id: 03da49d56da895ee0750e256dfb1845bc4003260 url: http://github.com/fcoury/octopi/commit/3221a7f870af4126087451725f152411653f776e author: name: Run Paint Run Run email: runrun@runpaint.org id: 3221a7f870af4126087451725f152411653f776e committed_date: "2009-04-22T20:48:27-07:00" authored_date: "2009-04-22T20:48:27-07:00" tree: 3f6ee5d9c06eabd29d267e6f407023557f25b2c2 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Removing superfluous yield. The `submit` method yields to the block it's been passed, prints out a trace, then makes almost the same yield again. I assume that this is in error, and could have been caused by my previous merge. parents: - id: b13f6787c935b72dfc2d5bcd8e1debd9c3080719 url: http://github.com/fcoury/octopi/commit/03da49d56da895ee0750e256dfb1845bc4003260 author: name: Run Paint Run Run email: runrun@runpaint.org id: 03da49d56da895ee0750e256dfb1845bc4003260 committed_date: "2009-04-22T20:12:54-07:00" authored_date: "2009-04-22T20:12:54-07:00" tree: 9714482c07679b5e0e7223f7342980ea60a6973d committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Undo 3cb8fbddb6cbd0c9ef2d23e65363d48c42917a68. Commit 3cb8fbddb6cbd0c9ef2d23e65363d48c42917a68 has been made obsolete by commit 67320c5c3e09a23813367ff772d607d4a64642e5. Now we're appending the credentials to GET requests, .keys and .emails can return to using the correct request type. parents: - id: 67320c5c3e09a23813367ff772d607d4a64642e5 url: http://github.com/fcoury/octopi/commit/b13f6787c935b72dfc2d5bcd8e1debd9c3080719 author: name: Run Paint Run Run email: runrun@runpaint.org id: b13f6787c935b72dfc2d5bcd8e1debd9c3080719 committed_date: "2009-04-22T20:09:18-07:00" authored_date: "2009-04-22T20:09:18-07:00" tree: 92df231e4fd73c19da9d8b0e68161ddb84f08225 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Add credentials to `default_params` for auth'd GET. We want the token and login to be sent for all authenticated queries. They were being sent for POST requests, but, seemingly, not for GETs, causing methods relying on the latter to fail. HTTParty's `default_params` method causes parameters so set to be sent on every request. We specify `login` and `token` as default parameters if the request is authenticated. parents: - id: 3cb8fbddb6cbd0c9ef2d23e65363d48c42917a68 url: http://github.com/fcoury/octopi/commit/67320c5c3e09a23813367ff772d607d4a64642e5 author: name: Run Paint Run Run email: runrun@runpaint.org id: 67320c5c3e09a23813367ff772d607d4a64642e5 committed_date: "2009-04-22T20:02:51-07:00" authored_date: "2009-04-22T20:02:51-07:00" tree: d08a11ff5f253e97fad4faec681b6a69c4a97ae7 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- POST is required for /user/keys and /user/emails. The .keys and .emails methods returned a "not authenticated" error because they were fetched via GET and thus the credentials were not sent. Using POST fixes this bug. parents: - id: 1b8113663544a2a4998b3da051b8c91878362e37 url: http://github.com/fcoury/octopi/commit/3cb8fbddb6cbd0c9ef2d23e65363d48c42917a68 author: name: Run Paint Run Run email: runrun@runpaint.org id: 3cb8fbddb6cbd0c9ef2d23e65363d48c42917a68 committed_date: "2009-04-22T19:37:26-07:00" authored_date: "2009-04-22T19:37:26-07:00" tree: a5118d94496564dbd41855c59595c232da761412 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Merge branch 'master' of git://github.com/fcoury/octopi Conflicts: lib/octopi.rb parents: - id: 7fe95e3ea33d31f56a9d5aa73655b1e42407da07 - id: 0f92396690d15dc4f5704b0f1a6f80d60f6956ca url: http://github.com/fcoury/octopi/commit/006ecb2bc3fd3fa57b13bb870f76b72070770e52 author: name: Run Paint Run Run email: runrun@runpaint.org id: 006ecb2bc3fd3fa57b13bb870f76b72070770e52 committed_date: "2009-04-22T06:33:59-07:00" authored_date: "2009-04-22T06:33:59-07:00" tree: 5c6a0b9bac417516197ae710765481f915d2a8c3 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: "Seamless authentication using .gitconfig. Closes #15." parents: - id: 69e57cd8ea6ea782a75734f86dafc49e226b652f url: http://github.com/fcoury/octopi/commit/b425c53e7556387bf741aefa37e25ef829dccaf5 author: name: Felipe Coury email: felipe.coury@gmail.com id: b425c53e7556387bf741aefa37e25ef829dccaf5 committed_date: "2009-04-22T05:20:17-07:00" authored_date: "2009-04-22T05:20:17-07:00" tree: bd8079ddcebc81163162692e5d8b3b74d40f9bb6 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- Improved issues handing Added cURL and regular tracing options Improved documentation on README Renamed github.yml.default to example parents: - id: 7ae30402d1485da572c70cca2879241505dc64ba url: http://github.com/fcoury/octopi/commit/885694b7bbec122f5dd69cd7bbbcecef49ae6e41 author: name: Felipe Coury email: felipe.coury@gmail.com id: 885694b7bbec122f5dd69cd7bbbcecef49ae6e41 committed_date: "2009-04-21T07:43:13-07:00" authored_date: "2009-04-21T07:42:35-07:00" tree: a608b20022b019fdb9307b6f61482c227473c5f4 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- Complain about status code before content type. GitHub currently returns 500 errors as HTML. When we encountered this, the error message referred to the content type rather than the status code. Now we check the status code first, so errors are more informative. Signed-off-by: Felipe Coury parents: - id: 24f982454a9857eabc546ae807a1ea6501c4db48 url: http://github.com/fcoury/octopi/commit/cbcda568351da278fa9c028265d4e3f35e8bacde author: name: Run Paint Run Run email: runrun@runpaint.org id: cbcda568351da278fa9c028265d4e3f35e8bacde committed_date: "2009-04-21T05:53:05-07:00" authored_date: "2009-04-21T04:23:55-07:00" tree: 800618a23020d8fbbd788d750b363bb230b5872a committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- Complain about status code before content type. GitHub currently returns 500 errors as HTML. When we encountered this, the error message referred to the content type rather than the status code. Now we check the status code first, so errors are more informative. parents: - id: e7928010f2cc0e019afdacf9e94aae501a743e93 url: http://github.com/fcoury/octopi/commit/7fe95e3ea33d31f56a9d5aa73655b1e42407da07 author: name: Run Paint Run Run email: runrun@runpaint.org id: 7fe95e3ea33d31f56a9d5aa73655b1e42407da07 committed_date: "2009-04-21T04:23:55-07:00" authored_date: "2009-04-21T04:23:55-07:00" tree: 800618a23020d8fbbd788d750b363bb230b5872a committer: name: Run Paint Run Run email: runrun@runpaint.org - message: Added authenticated commands, but GitHub API is giving 500 errors for opening issues. parents: - id: 917b6ea8f221e47263bbb56317821b75a0f4bc07 url: http://github.com/fcoury/octopi/commit/545fff17a6c2a5f35e91352b5d75da47b7b05d41 author: name: Felipe Coury email: felipe.coury@gmail.com id: 545fff17a6c2a5f35e91352b5d75da47b7b05d41 committed_date: "2009-04-20T19:15:13-07:00" authored_date: "2009-04-20T19:15:13-07:00" tree: cbf1c98bbc6331521650c968d5a20a37990de989 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- Add Base.validate_args, refactored error classes. Children of Base can now call self.validate_args with a hash containing arguments as keys and a corresponding specification symbol as the key. If any arguments are invalidated, an informative ArgumentError is raised. parents: - id: ac42162a507f4eaa74a42168b2f0290fae233d68 url: http://github.com/fcoury/octopi/commit/9fbc19ce4f897e9f7b787d910ed66d84dcc18682 author: name: Run Paint Run Run email: runrun@runpaint.org id: 9fbc19ce4f897e9f7b787d910ed66d84dcc18682 committed_date: "2009-04-20T16:24:30-07:00" authored_date: "2009-04-20T16:24:30-07:00" tree: 369bafd01c6389ad0731d752c11ff2ab42517031 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Added issues API integration Refactoring on the way parameters are passed to commits and issues parents: - id: a6b6edaa0ce7e2c49ca6156523a33fbad2b2a4e9 url: http://github.com/fcoury/octopi/commit/8bcc40d2b5accc592b814f84ab960fc2b7cbf05f author: name: Felipe Coury email: felipe.coury@gmail.com id: 8bcc40d2b5accc592b814f84ab960fc2b7cbf05f committed_date: "2009-04-20T11:32:08-07:00" authored_date: "2009-04-20T11:32:08-07:00" tree: 98548123cdd1fb2d7a0c63e8f57dc87c87fde537 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: Updated overall.rb example and minor fixes on API interfaces parents: - id: 6882a99d4e43d394d14f7363ee2a0c40f16c0d3f url: http://github.com/fcoury/octopi/commit/107f3c9b7f1fa859bc990763e5858d63f971ddc9 author: name: Felipe Coury email: felipe.coury@gmail.com id: 107f3c9b7f1fa859bc990763e5858d63f971ddc9 committed_date: "2009-04-20T07:26:52-07:00" authored_date: "2009-04-20T07:26:52-07:00" tree: 20349d6b5f178328333ab4871d52af8591c6b5ea committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- Sanity check for response content type. The API should respond with data in the same format as we requested. If the Content-Type disagrees with what we expected, we raise an exception. This is currently broken for raw Git data as the API call returns the wrong content type. Reported as develop/develop.github.com#13 parents: - id: 060655bac4d9a6da8d763e6cc3bd1aef5037d351 url: http://github.com/fcoury/octopi/commit/6882a99d4e43d394d14f7363ee2a0c40f16c0d3f author: name: Run Paint Run Run email: runrun@runpaint.org id: 6882a99d4e43d394d14f7363ee2a0c40f16c0d3f committed_date: "2009-04-20T03:56:25-07:00" authored_date: "2009-04-20T03:56:25-07:00" tree: 6d69d0f09972675de7cf00a720b12ab49001b5ff committer: name: Run Paint Run Run email: runrun@runpaint.org - message: Split source over several files. parents: - id: edbd4df94ab578266ec966a7f90d7018bccec4e8 url: http://github.com/fcoury/octopi/commit/060655bac4d9a6da8d763e6cc3bd1aef5037d351 author: name: Run Paint Run Run email: runrun@runpaint.org id: 060655bac4d9a6da8d763e6cc3bd1aef5037d351 committed_date: "2009-04-20T03:08:55-07:00" authored_date: "2009-04-20T03:08:55-07:00" tree: 75033d55c59abfd07517dfb47815d217b929f5d6 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Add .clone_url method to Repository objects. Repository objects have a .clone_url method which returns their public clone URL. parents: - id: 102cc1bf2580e2864cc4fb86b405701cf6c43c9c url: http://github.com/fcoury/octopi/commit/edbd4df94ab578266ec966a7f90d7018bccec4e8 author: name: Run Paint Run Run email: runrun@runpaint.org id: edbd4df94ab578266ec966a7f90d7018bccec4e8 committed_date: "2009-04-19T19:02:15-07:00" authored_date: "2009-04-19T19:02:15-07:00" tree: f1de27f0584929594634c29013dfdbca6e00d998 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Let find/find_all methods accept objects. Initial draft of letting the user-facing methods, find/find_all, mostly, accept an object corresponding to the argument type instead of a string. parents: - id: d6a8242378a77161ba66634efac8c406487dbd59 url: http://github.com/fcoury/octopi/commit/102cc1bf2580e2864cc4fb86b405701cf6c43c9c author: name: Run Paint Run Run email: runrun@runpaint.org id: 102cc1bf2580e2864cc4fb86b405701cf6c43c9c committed_date: "2009-04-19T18:45:20-07:00" authored_date: "2009-04-19T18:45:20-07:00" tree: 2e12b79c7f64acad00b4e81d19a74f4370a1769e committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Tweaked Repository.find_all's argument handling. Repository.find_all accepted an array of 'words', which it concatenated with '+'. It now also accepts a single space-separated String, or any combination of the two. This method is still buggy, however, in that the query is not URI escaped; it's simply interpolated as-is into the URI. Peculiarly, the API doesn't accept URI-escaped space-separated queries, e.g. 'ruby%20spec'. This is non-standard enough to put off escaping until I know exactly what the API expects. parents: - id: f47cc6505cc816fa4f5cd6dde5adc20b0d9029be url: http://github.com/fcoury/octopi/commit/d6a8242378a77161ba66634efac8c406487dbd59 author: name: Run Paint Run Run email: runrun@runpaint.org id: d6a8242378a77161ba66634efac8c406487dbd59 committed_date: "2009-04-19T18:18:55-07:00" authored_date: "2009-04-19T18:18:55-07:00" tree: dbf4e9576dab1e8b25e0175c51498c62821e0243 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Tag.find accepts User a/o Repository object args. Tag.find(user,repo) assumed user and repo were Strings; now it does the right thing if one or both arguments are User or Repository objects, respectively. parents: - id: 6dcc3ee64fbe5a09e978b4a8c5397a16bab4ccd2 url: http://github.com/fcoury/octopi/commit/f47cc6505cc816fa4f5cd6dde5adc20b0d9029be author: name: Run Paint Run Run email: runrun@runpaint.org id: f47cc6505cc816fa4f5cd6dde5adc20b0d9029be committed_date: "2009-04-19T17:47:59-07:00" authored_date: "2009-04-19T17:47:59-07:00" tree: f59b86c124be86f65af001ab8f4a9f56a7d9dba0 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: Tweaked .find_all method; no func. changes. parents: - id: c6ac8abb00862dd9f70ea4376f4d37075f9764b1 url: http://github.com/fcoury/octopi/commit/6dcc3ee64fbe5a09e978b4a8c5397a16bab4ccd2 author: name: Run Paint Run Run email: runrun@runpaint.org id: 6dcc3ee64fbe5a09e978b4a8c5397a16bab4ccd2 committed_date: "2009-04-19T17:04:48-07:00" authored_date: "2009-04-19T17:04:48-07:00" tree: 322adc3d7c86606374d24b87f649bbde6659befd committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- find/find_all join Array arg with '/'. A number of callers were joining their arguments with '/' before passing them to find/find_all. Now these methods automatically do this if passed an array. There's still duplicate code, but it's better than it was. parents: - id: bb15be320cfaf1ab12740751d59650491d942c67 url: http://github.com/fcoury/octopi/commit/c6ac8abb00862dd9f70ea4376f4d37075f9764b1 author: name: Run Paint Run Run email: runrun@runpaint.org id: c6ac8abb00862dd9f70ea4376f4d37075f9764b1 committed_date: "2009-04-19T16:56:24-07:00" authored_date: "2009-04-19T16:56:24-07:00" tree: 744d7dd84430747aafe511319c8eff63c20a1d70 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Initial implementation of the Object API. * The `tree/show/:user/:repo/:tree_sha` call returns an array of objects in the given tree. This is exposed by the FileObject class. The name is convoluted because Object is a reserved word. 'Tree' is awkward because although the argument describes a tree, the returned objects aren't trees... We should probably call this Tree, and have it return an array of FileObject objects... * The `blob/show/:user/:repo/:tree_sha/:path` call is supported by Blob.find(user, repo, sha, path). * The `blob/show/:user/:repo/:sha` call returns raw Git data irrespective of caller's format preference. To handle this a get_raw method has been defined which simply requests a given path and returns the raw body without attempting to coerce it into a data structure. The right way to handle this is to format based on the Content-Type header in the response, but that is always set to text/html, so is useless. Blob.find(user, repo, sha) returns said raw data. * The .find method is now intelligent about arrays. If yaml[key] is an array, each element is assumed to be a hash constituting a new object. I still don't claim to understand all the magic of this module, so this enchantment may very well be unnecessary, but it enabled some hairy code to be factored out, so it stays for now. * The .find_all method now accepts a block, to which it passes the data it intends to construct a new object with. This is to allow callers to massage an arbitrary data structure into a simple hash. This is used for Tag.find because GitHub returns a single hash of tags, rather than one hash per tag. (Yes, I realise that this is a ridiculously long commit, and, yes, I have heard of cherry-pick...) parents: - id: 6fc1c143559b2434c19acb2980e93c5dd7290327 url: http://github.com/fcoury/octopi/commit/bb15be320cfaf1ab12740751d59650491d942c67 author: name: Run Paint Run Run email: runrun@runpaint.org id: bb15be320cfaf1ab12740751d59650491d942c67 committed_date: "2009-04-19T16:47:30-07:00" authored_date: "2009-04-19T16:14:53-07:00" tree: 6190fbfefdeb71b465fcaec228312202ac49e3ba committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Improved handling of API errors. GitHub API errors aren't reported consistently yet. Sometimes they return reams of HTML and a non-200 status code, other times they return a 200 status code and an error message. We now handle both of these cases by raising an APIError with an appropriate message. This will need to be updated as the API standardises. When it does, we want to interpret 404s, for example, as the object not being found, and thus provide an informative error message. parents: - id: 3763caf0e49c519710303f28635eb76f40e34e9e url: http://github.com/fcoury/octopi/commit/6fc1c143559b2434c19acb2980e93c5dd7290327 author: name: Run Paint Run Run email: runrun@runpaint.org id: 6fc1c143559b2434c19acb2980e93c5dd7290327 committed_date: "2009-04-19T13:22:58-07:00" authored_date: "2009-04-19T13:22:58-07:00" tree: 200a49489514b676a9e9f6887149eee517c4bb9f committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Support for viewing a repository's tags. There's now a Tag class so you can ask for the tags of user's repo with Tag.find(user, repo). Plus, all repository objects respond to .tags, which returns an array of Tag objects. This isn't the pretties code but it works, and that's enough for now. parents: - id: 773c939a5ca6b3a4f2ed903df04369caa2a0c536 url: http://github.com/fcoury/octopi/commit/3763caf0e49c519710303f28635eb76f40e34e9e author: name: Run Paint Run Run email: runrun@runpaint.org id: 3763caf0e49c519710303f28635eb76f40e34e9e committed_date: "2009-04-19T12:55:57-07:00" authored_date: "2009-04-19T12:55:57-07:00" tree: d8b6450cd634d4df077e6ec9328d9449cf33d90c committer: name: Run Paint Run Run email: runrun@runpaint.org - message: Added integration between user and repositories parents: - id: 38db7cc13b4728e628194fb56f95af04ba3b1a01 - id: 3dca3c53474643eb843f87b45d2c2df62ce828df url: http://github.com/fcoury/octopi/commit/8077ca332e44bf89bb93a9785673c477915bf4ea author: name: Felipe Coury email: felipe.coury@gmail.com id: 8077ca332e44bf89bb93a9785673c477915bf4ea committed_date: "2009-04-19T09:43:14-07:00" authored_date: "2009-04-19T09:43:14-07:00" tree: 47532c6d6a8f86e4bf4ad4323fbfb933e40d0836 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: Added commits suport and integration between repositories and commits parents: - id: e515ea648fc4b0a852531e312563243a817811b5 url: http://github.com/fcoury/octopi/commit/38db7cc13b4728e628194fb56f95af04ba3b1a01 author: name: Felipe Coury email: felipe.coury@gmail.com id: 38db7cc13b4728e628194fb56f95af04ba3b1a01 committed_date: "2009-04-19T09:26:27-07:00" authored_date: "2009-04-19T09:26:27-07:00" tree: b846cfbedcd53ddc4360b30bc52a8a12428bbdaf committer: name: Felipe Coury email: felipe.coury@gmail.com - message: |- Raise APIError if GitHub returns bad status code. If GitHub.com can't handle the API request, either due to user error or server error, it returns an utterly useless chunk of HTML. This confuses the library, so we now raise an APIError if the status code is anything other than 200. Better error handling will have to wait until the API supports it. parents: - id: 1e9e54acd4936644131dae6839995b4ef2bccd81 url: http://github.com/fcoury/octopi/commit/3dca3c53474643eb843f87b45d2c2df62ce828df author: name: Run Paint Run Run email: runrun@runpaint.org id: 3dca3c53474643eb843f87b45d2c2df62ce828df committed_date: "2009-04-19T09:15:04-07:00" authored_date: "2009-04-19T09:15:04-07:00" tree: 49e2764200c5a9982f8d48e5e8947968991da654 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: |- Let Repository.find(user) show user's repositories Hacked Repository.find so if called with a single argument, assumes it to be a user name, and returns an array of Repository objects corresponding to the user's repositories. I don't completely understand this library's architecture, so it's likely my implementation is Wrong. ;-) Works for me, though. parents: - id: 63c533fc7883efdd9717ed0a3be1bc033a471e00 url: http://github.com/fcoury/octopi/commit/1e9e54acd4936644131dae6839995b4ef2bccd81 author: name: Run Paint Run Run email: runrun@runpaint.org id: 1e9e54acd4936644131dae6839995b4ef2bccd81 committed_date: "2009-04-19T05:45:37-07:00" authored_date: "2009-04-19T05:45:37-07:00" tree: b74a6ee903fb261434e9336751ed6c563db26247 committer: name: Run Paint Run Run email: runrun@runpaint.org - message: Repository search allows multiple query words for AND searching parents: - id: f76482a8ec00dffd750cb8bc0937d466763aeddb url: http://github.com/fcoury/octopi/commit/83276d9a68f2590749749bfd40eebc1846219b13 author: name: Felipe Coury email: felipe.coury@gmail.com id: 83276d9a68f2590749749bfd40eebc1846219b13 committed_date: "2009-04-18T20:32:10-07:00" authored_date: "2009-04-18T20:32:10-07:00" tree: 0b735b6939b1943960c306d5553f7b5a08ffc37f committer: name: Felipe Coury email: felipe.coury@gmail.com - message: "More development on the anonymous API: user and repositories" parents: - id: f7effc366276ab1615185bdbdc3c98515ce41594 url: http://github.com/fcoury/octopi/commit/6d6fec76209b961d68341a1e026b19111a041c8b author: name: Felipe Coury email: felipe.coury@gmail.com id: 6d6fec76209b961d68341a1e026b19111a041c8b committed_date: "2009-04-18T20:11:04-07:00" authored_date: "2009-04-18T20:11:04-07:00" tree: a1ced58523b733130c2c10d6cec754b61b7ec503 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: Metaprogramming experimentation parents: - id: 5739978397271f146047c98ac314c12c439d7670 url: http://github.com/fcoury/octopi/commit/f7effc366276ab1615185bdbdc3c98515ce41594 author: name: Felipe Coury email: felipe.coury@gmail.com id: f7effc366276ab1615185bdbdc3c98515ce41594 committed_date: "2009-04-18T17:29:56-07:00" authored_date: "2009-04-18T17:29:43-07:00" tree: 6efec2f4c25786a8f725d919ed553d3e4d069380 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: Minor bug fixing, posting data still doesn't work parents: - id: 036e73f9ccc8daa375ed01b2fa4ab762b558d3d6 url: http://github.com/fcoury/octopi/commit/5739978397271f146047c98ac314c12c439d7670 author: name: Felipe Coury email: felipe.coury@gmail.com id: 5739978397271f146047c98ac314c12c439d7670 committed_date: "2009-04-18T01:03:30-07:00" authored_date: "2009-04-18T01:03:30-07:00" tree: 2d2c307c50e040c9bce473a889f06a2a91d2ac19 committer: name: Felipe Coury email: felipe.coury@gmail.com - message: Initial commit parents: [] url: http://github.com/fcoury/octopi/commit/036e73f9ccc8daa375ed01b2fa4ab762b558d3d6 author: name: Felipe Coury email: felipe.coury@gmail.com id: 036e73f9ccc8daa375ed01b2fa4ab762b558d3d6 committed_date: "2009-04-17T21:26:41-07:00" authored_date: "2009-04-17T21:26:41-07:00" tree: 43e6c11e3fd7af31bb1c4bc03f56f29e8b608908 committer: name: Felipe Coury email: felipe.coury@gmail.com