Files
PyGithub/github/tests/ReplayData/Search.testUrlquotingOfQuery.txt
T
Vincent Jacques 9f2ac570f8 Fix urlencoding for search (see #237)
Parameters are encoded in Requester => simply remove urllib.quote
Path needs to be encoded => change to urllib.quote_plus as in #237
2014-03-16 10:47:31 -07:00

12 lines
20 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
https
GET
api.github.com
None
/search/issues?q=repo%3Asaltstack%2Fsalt-api+type%3AIssues+updated%3A%3E2014-03-04T18%3A28%3A11Z
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
null
200
[('status', '200 OK'), ('x-ratelimit-remaining', '29'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval'), ('x-github-request-id', '62E81E32:490B:3BB7A87:5325E2ED'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '19065'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '30'), ('cache-control', 'no-cache'), ('date', 'Sun, 16 Mar 2014 17:44:14 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1394991914')]
{"total_count":6,"items":[{"url":"https://api.github.com/repos/saltstack/salt-api/issues/144","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/144/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/144/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/144/events","html_url":"https://github.com/saltstack/salt-api/pull/144","id":29138794,"number":144,"title":"tools.cpstats.on needs to be placed under root","user":{"login":"LucasEwalt","id":193133,"avatar_url":"https://gravatar.com/avatar/34a7644f0fd54bbc2c41e0f34b0ef1ea?d=https%3A%2F%2Fidenticons.github.com%2Fd1ea33a87ab250461f229f3be959de3b.png&r=x","gravatar_id":"34a7644f0fd54bbc2c41e0f34b0ef1ea","url":"https://api.github.com/users/LucasEwalt","html_url":"https://github.com/LucasEwalt","followers_url":"https://api.github.com/users/LucasEwalt/followers","following_url":"https://api.github.com/users/LucasEwalt/following{/other_user}","gists_url":"https://api.github.com/users/LucasEwalt/gists{/gist_id}","starred_url":"https://api.github.com/users/LucasEwalt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LucasEwalt/subscriptions","organizations_url":"https://api.github.com/users/LucasEwalt/orgs","repos_url":"https://api.github.com/users/LucasEwalt/repos","events_url":"https://api.github.com/users/LucasEwalt/events{/privacy}","received_events_url":"https://api.github.com/users/LucasEwalt/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":0,"created_at":"2014-03-10T22:31:05Z","updated_at":"2014-03-10T22:32:46Z","closed_at":"2014-03-10T22:32:46Z","pull_request":{"html_url":"https://github.com/saltstack/salt-api/pull/144","diff_url":"https://github.com/saltstack/salt-api/pull/144.diff","patch_url":"https://github.com/saltstack/salt-api/pull/144.patch"},"body":"Small error, tools.cpstats.on actually needs to be under root for metrics to be collected for all requests.","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/143","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/143/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/143/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/143/events","html_url":"https://github.com/saltstack/salt-api/pull/143","id":29119248,"number":143,"title":"Expose cherrypy metrics","user":{"login":"LucasEwalt","id":193133,"avatar_url":"https://gravatar.com/avatar/34a7644f0fd54bbc2c41e0f34b0ef1ea?d=https%3A%2F%2Fidenticons.github.com%2Fd1ea33a87ab250461f229f3be959de3b.png&r=x","gravatar_id":"34a7644f0fd54bbc2c41e0f34b0ef1ea","url":"https://api.github.com/users/LucasEwalt","html_url":"https://github.com/LucasEwalt","followers_url":"https://api.github.com/users/LucasEwalt/followers","following_url":"https://api.github.com/users/LucasEwalt/following{/other_user}","gists_url":"https://api.github.com/users/LucasEwalt/gists{/gist_id}","starred_url":"https://api.github.com/users/LucasEwalt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LucasEwalt/subscriptions","organizations_url":"https://api.github.com/users/LucasEwalt/orgs","repos_url":"https://api.github.com/users/LucasEwalt/repos","events_url":"https://api.github.com/users/LucasEwalt/events{/privacy}","received_events_url":"https://api.github.com/users/LucasEwalt/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","assignee":null,"milestone":null,"comments":4,"created_at":"2014-03-10T18:20:29Z","updated_at":"2014-03-11T15:56:02Z","closed_at":"2014-03-10T22:08:21Z","pull_request":{"html_url":"https://github.com/saltstack/salt-api/pull/143","diff_url":"https://github.com/saltstack/salt-api/pull/143.diff","patch_url":"https://github.com/saltstack/salt-api/pull/143.patch"},"body":"Expose cherrycp cpstats via /stats URI. http://docs.cherrypy.org/en/latest/refman/lib/cpstats.html?highlight=cpstats#module-cherrypy.lib.cpstats","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/142","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/142/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/142/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/142/events","html_url":"https://github.com/saltstack/salt-api/issues/142","id":29074591,"number":142,"title":"Use PHP to call API ,produce 400 Bad RequestLowstates must be a list","user":{"login":"ivanwa","id":6895983,"avatar_url":"https://gravatar.com/avatar/5449da031675d985e6fb03f1d81dd6c2?d=https%3A%2F%2Fidenticons.github.com%2Fc7fd88fd0ac6e13142c23c2f1232baf5.png&r=x","gravatar_id":"5449da031675d985e6fb03f1d81dd6c2","url":"https://api.github.com/users/ivanwa","html_url":"https://github.com/ivanwa","followers_url":"https://api.github.com/users/ivanwa/followers","following_url":"https://api.github.com/users/ivanwa/following{/other_user}","gists_url":"https://api.github.com/users/ivanwa/gists{/gist_id}","starred_url":"https://api.github.com/users/ivanwa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ivanwa/subscriptions","organizations_url":"https://api.github.com/users/ivanwa/orgs","repos_url":"https://api.github.com/users/ivanwa/repos","events_url":"https://api.github.com/users/ivanwa/events{/privacy}","received_events_url":"https://api.github.com/users/ivanwa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":3,"created_at":"2014-03-10T06:15:11Z","updated_at":"2014-03-11T14:09:12Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"An error message:\r\n400 Bad Request\r\n\r\nLowstates must be a list\r\n\r\nTraceback (most recent call last):\r\n File \"/usr/lib/python2.6/site-packages/cherrypy/_cprequest.py\", line 656, in respond\r\n response.body = self.handler()\r\n File \"/usr/lib/python2.6/site-packages/cherrypy/lib/encoding.py\", line 188, in __call__\r\n self.body = self.oldhandler(*args, **kwargs)\r\n File \"/usr/lib/python2.6/site-packages/saltapi/netapi/rest_cherrypy/app.py\", line 273, in hypermedia_handler\r\n ret = cherrypy.serving.request._hypermedia_inner_handler(*args, **kwargs)\r\n File \"/usr/lib/python2.6/site-packages/cherrypy/_cpdispatch.py\", line 34, in __call__\r\n return self.callable(*self.args, **self.kwargs)\r\n File \"/usr/lib/python2.6/site-packages/saltapi/netapi/rest_cherrypy/app.py\", line 1074, in POST\r\n 'return': list(self.exec_lowstate()),\r\n File \"/usr/lib/python2.6/site-packages/saltapi/netapi/rest_cherrypy/app.py\", line 490, in exec_lowstate\r\n raise cherrypy.HTTPError(400, 'Lowstates must be a list')\r\nHTTPError: (400, 'Lowstates must be a list')\r\n\r\n--------------------------------------------------------------------------------------------------------------------------------\r\nAnd I use the command line to run, but it can be successful.\r\n[root@localhost salt]# curl -k https://192.168.1.159:8000/run/ \\\r\n> -H \"Accept: application/x-yaml\" \\\r\n> -d username='saltapi' \\\r\n> -d password='123456' \\\r\n> -d eauth='pam' \\\r\n> -d client='local' \\\r\n> -d tgt='*' \\\r\n> -d fun='test.ping'\r\nreturn:\r\n- {}\r\n\r\n--------------------------------------------------------------------------------------------------------------------------------\r\nMy PHP script : index.php\r\n$url = \"https://192.168.1.159:8000/run\";\r\n$post_data = array (\r\n\t\t\"username\" => \"saltapi\",\r\n\t\t\"password\" => \"123456\",\r\n\t\t\"eauth\" => \"pam\",\r\n\t\t\"client\" => \"local\",\r\n\t\t\"tgt\" => \"*\",\r\n\t\t\"fun\" => \"test.ping\",\r\n\t\t\"arg\"=>\"\"\r\n);\r\n$ch = curl_init ();\r\ncurl_setopt ( $ch, CURLOPT_URL, $url );\r\ncurl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );\r\ncurl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false );\r\ncurl_setopt($ch, CURLOPT_HTTPHEADER, array(\"Content-type: application/x-www-form-urlencoded\",'Expect:'));\r\ncurl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );\r\n\r\ncurl_setopt ( $ch, CURLOPT_POST, 1 );\r\ncurl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );\r\n$output = curl_exec ( $ch );\r\ncurl_close ( $ch );\r\n// print\r\nprint_r ( $output );\r\n\r\n--------------------------------------------------------------------------------------------------------------------------------\r\nMy master:\r\ninterface: 192.168.1.159\r\n\r\nrest_cherrypy:\r\n host: 0.0.0.0\r\n port: 8000\r\n debug: true\r\n static: /salt-webui/halite/halite\r\n app: /salt-webui/halite/halite\r\n ssl_crt: /etc/pki/tls/certs/localhost.crt\r\n ssl_key: /etc/pki/tls/private/localhost_nopass.key\r\n\r\nexternal_auth:\r\n pam:\r\n saltapi:\r\n - .*","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/141","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/141/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/141/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/141/events","html_url":"https://github.com/saltstack/salt-api/issues/141","id":28842635,"number":141,"title":"get error when start salt-api [ERROR ] Not loading 'rest_wsgi'. 'port' not specified in config","user":{"login":"justlooks","id":295168,"avatar_url":"https://gravatar.com/avatar/ca2d4ef0024cd926cc7a6218f7a4aed8?d=https%3A%2F%2Fidenticons.github.com%2F32491008424b6a810a81a3bfd7c139a9.png&r=x","gravatar_id":"ca2d4ef0024cd926cc7a6218f7a4aed8","url":"https://api.github.com/users/justlooks","html_url":"https://github.com/justlooks","followers_url":"https://api.github.com/users/justlooks/followers","following_url":"https://api.github.com/users/justlooks/following{/other_user}","gists_url":"https://api.github.com/users/justlooks/gists{/gist_id}","starred_url":"https://api.github.com/users/justlooks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justlooks/subscriptions","organizations_url":"https://api.github.com/users/justlooks/orgs","repos_url":"https://api.github.com/users/justlooks/repos","events_url":"https://api.github.com/users/justlooks/events{/privacy}","received_events_url":"https://api.github.com/users/justlooks/received_events","type":"User","site_admin":false},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":1,"created_at":"2014-03-06T01:23:22Z","updated_at":"2014-03-06T02:31:20Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"# service salt-api start\r\nStarting salt-api daemon: [ERROR ] Not loading 'rest_wsgi'. 'port' not specified in config\r\n[06/Mar/2014:09:20:31] ENGINE Listening for SIGHUP.\r\n[06/Mar/2014:09:20:31] ENGINE Listening for SIGTERM.\r\n[06/Mar/2014:09:20:31] ENGINE Listening for SIGUSR1.\r\n[06/Mar/2014:09:20:31] ENGINE Bus STARTING\r\nCherryPy Checker:\r\n'log_file' is obsolete. Use 'log.error_file' instead.\r\nsection: [saltopts]\r\n\r\n[06/Mar/2014:09:20:31] ENGINE Started monitor thread '_TimeoutMonitor'.\r\n[06/Mar/2014:09:20:31] ENGINE Started monitor thread 'Autoreloader'.\r\n[06/Mar/2014:09:20:31] ENGINE Serving on 0.0.0.0:8888\r\n[06/Mar/2014:09:20:31] ENGINE Bus STARTED\r\n","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/73","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/73/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/73/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/73/events","html_url":"https://github.com/saltstack/salt-api/issues/73","id":13141224,"number":73,"title":"Add a zero-dep, bare-WSGI REST module","user":{"login":"whiteinge","id":91293,"avatar_url":"https://gravatar.com/avatar/f0bb4c8e95d355891ab9028e4bac480e?d=https%3A%2F%2Fidenticons.github.com%2Fa310e640ddcc1bf22c861dddb9ff4f76.png&r=x","gravatar_id":"f0bb4c8e95d355891ab9028e4bac480e","url":"https://api.github.com/users/whiteinge","html_url":"https://github.com/whiteinge","followers_url":"https://api.github.com/users/whiteinge/followers","following_url":"https://api.github.com/users/whiteinge/following{/other_user}","gists_url":"https://api.github.com/users/whiteinge/gists{/gist_id}","starred_url":"https://api.github.com/users/whiteinge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/whiteinge/subscriptions","organizations_url":"https://api.github.com/users/whiteinge/orgs","repos_url":"https://api.github.com/users/whiteinge/repos","events_url":"https://api.github.com/users/whiteinge/events{/privacy}","received_events_url":"https://api.github.com/users/whiteinge/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/saltstack/salt-api/labels/0+-+Backlog","name":"0 - Backlog","color":"CCCCCC"}],"state":"closed","assignee":null,"milestone":{"url":"https://api.github.com/repos/saltstack/salt-api/milestones/2","labels_url":"https://api.github.com/repos/saltstack/salt-api/milestones/2/labels","id":187473,"number":2,"title":"Approved for future release","description":"","creator":{"login":"thatch45","id":507599,"avatar_url":"https://gravatar.com/avatar/ff7bc69b52eecf808141c470543db4f3?d=https%3A%2F%2Fidenticons.github.com%2F6a6eafefee200db675061e2df14be5f7.png&r=x","gravatar_id":"ff7bc69b52eecf808141c470543db4f3","url":"https://api.github.com/users/thatch45","html_url":"https://github.com/thatch45","followers_url":"https://api.github.com/users/thatch45/followers","following_url":"https://api.github.com/users/thatch45/following{/other_user}","gists_url":"https://api.github.com/users/thatch45/gists{/gist_id}","starred_url":"https://api.github.com/users/thatch45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thatch45/subscriptions","organizations_url":"https://api.github.com/users/thatch45/orgs","repos_url":"https://api.github.com/users/thatch45/repos","events_url":"https://api.github.com/users/thatch45/events{/privacy}","received_events_url":"https://api.github.com/users/thatch45/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":7,"state":"open","created_at":"2012-10-01T17:16:46Z","updated_at":"2014-03-04T18:08:09Z","due_on":null},"comments":1,"created_at":"2013-04-12T21:56:30Z","updated_at":"2014-03-04T21:13:47Z","closed_at":"2013-04-13T05:57:19Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"A bare-bones \"REST\" WSGI app could be accomplished with just the Python stdlib in about ~200 LOC so we might as well. :)\r\n\r\n* Only handles JSON in/out.\r\n* Only provide a single URL.\r\n* Basically mimic the ``/run`` URL in the ``rest_cherrypy`` module.","score":1.0},{"url":"https://api.github.com/repos/saltstack/salt-api/issues/49","labels_url":"https://api.github.com/repos/saltstack/salt-api/issues/49/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt-api/issues/49/comments","events_url":"https://api.github.com/repos/saltstack/salt-api/issues/49/events","html_url":"https://github.com/saltstack/salt-api/issues/49","id":11388256,"number":49,"title":"More information in jobs resource response","user":{"login":"sfdc-kho","id":3269880,"avatar_url":"https://gravatar.com/avatar/79dd31020b3bea2124d60cb5e3cd2edf?d=https%3A%2F%2Fidenticons.github.com%2Fad2f6831adfe0801e929c20710d3e537.png&r=x","gravatar_id":"79dd31020b3bea2124d60cb5e3cd2edf","url":"https://api.github.com/users/sfdc-kho","html_url":"https://github.com/sfdc-kho","followers_url":"https://api.github.com/users/sfdc-kho/followers","following_url":"https://api.github.com/users/sfdc-kho/following{/other_user}","gists_url":"https://api.github.com/users/sfdc-kho/gists{/gist_id}","starred_url":"https://api.github.com/users/sfdc-kho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sfdc-kho/subscriptions","organizations_url":"https://api.github.com/users/sfdc-kho/orgs","repos_url":"https://api.github.com/users/sfdc-kho/repos","events_url":"https://api.github.com/users/sfdc-kho/events{/privacy}","received_events_url":"https://api.github.com/users/sfdc-kho/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/saltstack/salt-api/labels/0+-+Backlog","name":"0 - Backlog","color":"CCCCCC"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/saltstack/salt-api/milestones/2","labels_url":"https://api.github.com/repos/saltstack/salt-api/milestones/2/labels","id":187473,"number":2,"title":"Approved for future release","description":"","creator":{"login":"thatch45","id":507599,"avatar_url":"https://gravatar.com/avatar/ff7bc69b52eecf808141c470543db4f3?d=https%3A%2F%2Fidenticons.github.com%2F6a6eafefee200db675061e2df14be5f7.png&r=x","gravatar_id":"ff7bc69b52eecf808141c470543db4f3","url":"https://api.github.com/users/thatch45","html_url":"https://github.com/thatch45","followers_url":"https://api.github.com/users/thatch45/followers","following_url":"https://api.github.com/users/thatch45/following{/other_user}","gists_url":"https://api.github.com/users/thatch45/gists{/gist_id}","starred_url":"https://api.github.com/users/thatch45/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thatch45/subscriptions","organizations_url":"https://api.github.com/users/thatch45/orgs","repos_url":"https://api.github.com/users/thatch45/repos","events_url":"https://api.github.com/users/thatch45/events{/privacy}","received_events_url":"https://api.github.com/users/thatch45/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":7,"state":"open","created_at":"2012-10-01T17:16:46Z","updated_at":"2014-03-04T18:08:09Z","due_on":null},"comments":4,"created_at":"2013-02-26T00:44:05Z","updated_at":"2014-03-04T18:28:12Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Currently, the minion response when a job hasn't completed is:\r\nbash-3.2$ curl -i localhost:8000/jobs/20130225115005304834 \\\r\n> -H \"X-Auth-Token: 129c6a5dadd1463932fd9db452b52148c44c6c91\" \\\r\n> -H \"Accept: application/json\"\r\nHTTP/1.1 200 OK\r\nContent-Length: 16\r\nVary: Accept-Encoding\r\nServer: CherryPy/3.2.2\r\nAllow: GET, HEAD, POST\r\nCache-Control: private\r\nDate: Mon, 25 Feb 2013 19:50:12 GMT\r\nContent-Type: application/json\r\nSet-Cookie: session_id=129c6a5dadd1463932fd9db452b52148c44c6c91; expires=Tue, 26 Feb 2013 05:50:12 GMT; Path=/\r\n\r\n{\"return\": [{}]}\r\n\r\nI am using this and a combination of saltutil.running to determine whether the job is still running, dead or completed. However, if the other issues like streaming responses get incorporated, it will become increasingly difficult to detect the state of any given job. Is it possible to return more information about what the state of the job is in the response?\r\n\r\n<!---\r\n@huboard:{\"order\":29.5,\"custom_state\":\"\"}\n-->\r\n","score":1.0}]}