{"action":"created","comment":{"url":"https://api.github.com/repos/giampaolo/psutil/pulls/comments/114137299","pull_request_review_id":35579660,"id":114137299,"diff_hunk":"@@ -273,3 +274,9 @@ doc:\n \tcd docs && make html && cd _build/html/ && zip doc.zip -r .\n \tmv docs/_build/html/doc.zip .\n \t@echo \"done; now manually upload doc.zip from here: https://pypi.python.org/pypi?:action=pkg_edit&name=psutil\"\n+\n+# check whether the links mentioned in some files are valid.\n+check-broken-links:\n+\t\tgit ls-files | grep \\\\.rst$ | xargs $(PYTHON) scripts/internal/check_broken_links.py\n+# Alternate method, DOCFILES need to be defined\n+# \t$(PYTHON) scripts/internal/check_broken_links.py $(DOCFILES)","path":"Makefile","position":null,"original_position":19,"commit_id":"552ee29eb1151ddec0b652db8d974abfa38440bd","original_commit_id":"a267c772eef1b762430e6aa831f7ce0d97dd9c9a","user":{"login":"himanshub16","id":14041572,"avatar_url":"https://avatars3.githubusercontent.com/u/14041572?v=3","gravatar_id":"","url":"https://api.github.com/users/himanshub16","html_url":"https://github.com/himanshub16","followers_url":"https://api.github.com/users/himanshub16/followers","following_url":"https://api.github.com/users/himanshub16/following{/other_user}","gists_url":"https://api.github.com/users/himanshub16/gists{/gist_id}","starred_url":"https://api.github.com/users/himanshub16/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/himanshub16/subscriptions","organizations_url":"https://api.github.com/users/himanshub16/orgs","repos_url":"https://api.github.com/users/himanshub16/repos","events_url":"https://api.github.com/users/himanshub16/events{/privacy}","received_events_url":"https://api.github.com/users/himanshub16/received_events","type":"User","site_admin":false},"body":"done","created_at":"2017-05-01T15:08:52Z","updated_at":"2017-05-01T15:08:52Z","html_url":"https://github.com/giampaolo/psutil/pull/1036#discussion_r114137299","pull_request_url":"https://api.github.com/repos/giampaolo/psutil/pulls/1036","_links":{"self":{"href":"https://api.github.com/repos/giampaolo/psutil/pulls/comments/114137299"},"html":{"href":"https://github.com/giampaolo/psutil/pull/1036#discussion_r114137299"},"pull_request":{"href":"https://api.github.com/repos/giampaolo/psutil/pulls/1036"}}},"pull_request":{"url":"https://api.github.com/repos/giampaolo/psutil/pulls/1036","id":118280704,"html_url":"https://github.com/giampaolo/psutil/pull/1036","diff_url":"https://github.com/giampaolo/psutil/pull/1036.diff","patch_url":"https://github.com/giampaolo/psutil/pull/1036.patch","issue_url":"https://api.github.com/repos/giampaolo/psutil/issues/1036","number":1036,"state":"open","locked":false,"title":"Check broken links","user":{"login":"himanshub16","id":14041572,"avatar_url":"https://avatars3.githubusercontent.com/u/14041572?v=3","gravatar_id":"","url":"https://api.github.com/users/himanshub16","html_url":"https://github.com/himanshub16","followers_url":"https://api.github.com/users/himanshub16/followers","following_url":"https://api.github.com/users/himanshub16/following{/other_user}","gists_url":"https://api.github.com/users/himanshub16/gists{/gist_id}","starred_url":"https://api.github.com/users/himanshub16/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/himanshub16/subscriptions","organizations_url":"https://api.github.com/users/himanshub16/orgs","repos_url":"https://api.github.com/users/himanshub16/repos","events_url":"https://api.github.com/users/himanshub16/events{/privacy}","received_events_url":"https://api.github.com/users/himanshub16/received_events","type":"User","site_admin":false},"body":"I've created a script to check for broken links as mentioned in #1034 \r\n**Features of the [script](https://github.com/himanshub16/psutil/blob/check-broken-links/scripts/internal/check_broken_links.py)**:\r\n* Takes file paths as command-line argument (absolute path).\r\n* Uses HTTP HEAD request to minimize bandwidth requirement.\r\n* Depends on [requests module](http://docs.python-requests.org/en/master/). Perhaps, it is now part of the Python standard library, as was available on Python2 on Ubuntu 17.04 (I haven't installed it).\r\n  If not, then I would recommend keeping **requests** as a dependency, as it handles many ugly details as handling http, https, separately, handling redirects, status codes if one tries **urllib2** or **httplib**.\r\n  Otherwise, the code is modular to support changing of background logic easily.\r\n\r\nTo use:\r\n```\r\nmake check-broken-links\r\n```\r\nThe list of files to be checked should be available in *Makefile* as [used here](https://github.com/himanshub16/psutil/blob/check-broken-links/Makefile#L278).\r\n\r\n\r\n> There is much room for improvement as the change in choice of regex for finding links will change results. The proper [references](https://github.com/himanshub16/psutil/blob/check-broken-links/scripts/internal/check_broken_links.py#L25) used are mentioned for future reference. ","created_at":"2017-04-29T16:30:09Z","updated_at":"2017-05-01T15:08:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"334dd7e94822c84ab7a02ebc45e28cf764d14002","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/giampaolo/psutil/pulls/1036/commits","review_comments_url":"https://api.github.com/repos/giampaolo/psutil/pulls/1036/comments","review_comment_url":"https://api.github.com/repos/giampaolo/psutil/pulls/comments{/number}","comments_url":"https://api.github.com/repos/giampaolo/psutil/issues/1036/comments","statuses_url":"https://api.github.com/repos/giampaolo/psutil/statuses/552ee29eb1151ddec0b652db8d974abfa38440bd","head":{"label":"himanshub16:check-broken-links","ref":"check-broken-links","sha":"552ee29eb1151ddec0b652db8d974abfa38440bd","user":{"login":"himanshub16","id":14041572,"avatar_url":"https://avatars3.githubusercontent.com/u/14041572?v=3","gravatar_id":"","url":"https://api.github.com/users/himanshub16","html_url":"https://github.com/himanshub16","followers_url":"https://api.github.com/users/himanshub16/followers","following_url":"https://api.github.com/users/himanshub16/following{/other_user}","gists_url":"https://api.github.com/users/himanshub16/gists{/gist_id}","starred_url":"https://api.github.com/users/himanshub16/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/himanshub16/subscriptions","organizations_url":"https://api.github.com/users/himanshub16/orgs","repos_url":"https://api.github.com/users/himanshub16/repos","events_url":"https://api.github.com/users/himanshub16/events{/privacy}","received_events_url":"https://api.github.com/users/himanshub16/received_events","type":"User","site_admin":false},"repo":{"id":89783006,"name":"psutil","full_name":"himanshub16/psutil","owner":{"login":"himanshub16","id":14041572,"avatar_url":"https://avatars3.githubusercontent.com/u/14041572?v=3","gravatar_id":"","url":"https://api.github.com/users/himanshub16","html_url":"https://github.com/himanshub16","followers_url":"https://api.github.com/users/himanshub16/followers","following_url":"https://api.github.com/users/himanshub16/following{/other_user}","gists_url":"https://api.github.com/users/himanshub16/gists{/gist_id}","starred_url":"https://api.github.com/users/himanshub16/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/himanshub16/subscriptions","organizations_url":"https://api.github.com/users/himanshub16/orgs","repos_url":"https://api.github.com/users/himanshub16/repos","events_url":"https://api.github.com/users/himanshub16/events{/privacy}","received_events_url":"https://api.github.com/users/himanshub16/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/himanshub16/psutil","description":"A cross-platform process and system utilities module for Python","fork":true,"url":"https://api.github.com/repos/himanshub16/psutil","forks_url":"https://api.github.com/repos/himanshub16/psutil/forks","keys_url":"https://api.github.com/repos/himanshub16/psutil/keys{/key_id}","collaborators_url":"https://api.github.com/repos/himanshub16/psutil/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/himanshub16/psutil/teams","hooks_url":"https://api.github.com/repos/himanshub16/psutil/hooks","issue_events_url":"https://api.github.com/repos/himanshub16/psutil/issues/events{/number}","events_url":"https://api.github.com/repos/himanshub16/psutil/events","assignees_url":"https://api.github.com/repos/himanshub16/psutil/assignees{/user}","branches_url":"https://api.github.com/repos/himanshub16/psutil/branches{/branch}","tags_url":"https://api.github.com/repos/himanshub16/psutil/tags","blobs_url":"https://api.github.com/repos/himanshub16/psutil/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/himanshub16/psutil/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/himanshub16/psutil/git/refs{/sha}","trees_url":"https://api.github.com/repos/himanshub16/psutil/git/trees{/sha}","statuses_url":"https://api.github.com/repos/himanshub16/psutil/statuses/{sha}","languages_url":"https://api.github.com/repos/himanshub16/psutil/languages","stargazers_url":"https://api.github.com/repos/himanshub16/psutil/stargazers","contributors_url":"https://api.github.com/repos/himanshub16/psutil/contributors","subscribers_url":"https://api.github.com/repos/himanshub16/psutil/subscribers","subscription_url":"https://api.github.com/repos/himanshub16/psutil/subscription","commits_url":"https://api.github.com/repos/himanshub16/psutil/commits{/sha}","git_commits_url":"https://api.github.com/repos/himanshub16/psutil/git/commits{/sha}","comments_url":"https://api.github.com/repos/himanshub16/psutil/comments{/number}","issue_comment_url":"https://api.github.com/repos/himanshub16/psutil/issues/comments{/number}","contents_url":"https://api.github.com/repos/himanshub16/psutil/contents/{+path}","compare_url":"https://api.github.com/repos/himanshub16/psutil/compare/{base}...{head}","merges_url":"https://api.github.com/repos/himanshub16/psutil/merges","archive_url":"https://api.github.com/repos/himanshub16/psutil/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/himanshub16/psutil/downloads","issues_url":"https://api.github.com/repos/himanshub16/psutil/issues{/number}","pulls_url":"https://api.github.com/repos/himanshub16/psutil/pulls{/number}","milestones_url":"https://api.github.com/repos/himanshub16/psutil/milestones{/number}","notifications_url":"https://api.github.com/repos/himanshub16/psutil/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/himanshub16/psutil/labels{/name}","releases_url":"https://api.github.com/repos/himanshub16/psutil/releases{/id}","deployments_url":"https://api.github.com/repos/himanshub16/psutil/deployments","created_at":"2017-04-29T12:08:47Z","updated_at":"2017-04-29T12:08:49Z","pushed_at":"2017-05-01T14:47:00Z","git_url":"git://github.com/himanshub16/psutil.git","ssh_url":"git@github.com:himanshub16/psutil.git","clone_url":"https://github.com/himanshub16/psutil.git","svn_url":"https://github.com/himanshub16/psutil","homepage":null,"size":29692,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"giampaolo:master","ref":"master","sha":"19514419f13526135394a95f6960169d9968fa84","user":{"login":"giampaolo","id":681260,"avatar_url":"https://avatars1.githubusercontent.com/u/681260?v=3","gravatar_id":"","url":"https://api.github.com/users/giampaolo","html_url":"https://github.com/giampaolo","followers_url":"https://api.github.com/users/giampaolo/followers","following_url":"https://api.github.com/users/giampaolo/following{/other_user}","gists_url":"https://api.github.com/users/giampaolo/gists{/gist_id}","starred_url":"https://api.github.com/users/giampaolo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/giampaolo/subscriptions","organizations_url":"https://api.github.com/users/giampaolo/orgs","repos_url":"https://api.github.com/users/giampaolo/repos","events_url":"https://api.github.com/users/giampaolo/events{/privacy}","received_events_url":"https://api.github.com/users/giampaolo/received_events","type":"User","site_admin":false},"repo":{"id":20101515,"name":"psutil","full_name":"giampaolo/psutil","owner":{"login":"giampaolo","id":681260,"avatar_url":"https://avatars1.githubusercontent.com/u/681260?v=3","gravatar_id":"","url":"https://api.github.com/users/giampaolo","html_url":"https://github.com/giampaolo","followers_url":"https://api.github.com/users/giampaolo/followers","following_url":"https://api.github.com/users/giampaolo/following{/other_user}","gists_url":"https://api.github.com/users/giampaolo/gists{/gist_id}","starred_url":"https://api.github.com/users/giampaolo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/giampaolo/subscriptions","organizations_url":"https://api.github.com/users/giampaolo/orgs","repos_url":"https://api.github.com/users/giampaolo/repos","events_url":"https://api.github.com/users/giampaolo/events{/privacy}","received_events_url":"https://api.github.com/users/giampaolo/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/giampaolo/psutil","description":"A cross-platform process and system utilities module for Python","fork":false,"url":"https://api.github.com/repos/giampaolo/psutil","forks_url":"https://api.github.com/repos/giampaolo/psutil/forks","keys_url":"https://api.github.com/repos/giampaolo/psutil/keys{/key_id}","collaborators_url":"https://api.github.com/repos/giampaolo/psutil/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/giampaolo/psutil/teams","hooks_url":"https://api.github.com/repos/giampaolo/psutil/hooks","issue_events_url":"https://api.github.com/repos/giampaolo/psutil/issues/events{/number}","events_url":"https://api.github.com/repos/giampaolo/psutil/events","assignees_url":"https://api.github.com/repos/giampaolo/psutil/assignees{/user}","branches_url":"https://api.github.com/repos/giampaolo/psutil/branches{/branch}","tags_url":"https://api.github.com/repos/giampaolo/psutil/tags","blobs_url":"https://api.github.com/repos/giampaolo/psutil/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/giampaolo/psutil/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/giampaolo/psutil/git/refs{/sha}","trees_url":"https://api.github.com/repos/giampaolo/psutil/git/trees{/sha}","statuses_url":"https://api.github.com/repos/giampaolo/psutil/statuses/{sha}","languages_url":"https://api.github.com/repos/giampaolo/psutil/languages","stargazers_url":"https://api.github.com/repos/giampaolo/psutil/stargazers","contributors_url":"https://api.github.com/repos/giampaolo/psutil/contributors","subscribers_url":"https://api.github.com/repos/giampaolo/psutil/subscribers","subscription_url":"https://api.github.com/repos/giampaolo/psutil/subscription","commits_url":"https://api.github.com/repos/giampaolo/psutil/commits{/sha}","git_commits_url":"https://api.github.com/repos/giampaolo/psutil/git/commits{/sha}","comments_url":"https://api.github.com/repos/giampaolo/psutil/comments{/number}","issue_comment_url":"https://api.github.com/repos/giampaolo/psutil/issues/comments{/number}","contents_url":"https://api.github.com/repos/giampaolo/psutil/contents/{+path}","compare_url":"https://api.github.com/repos/giampaolo/psutil/compare/{base}...{head}","merges_url":"https://api.github.com/repos/giampaolo/psutil/merges","archive_url":"https://api.github.com/repos/giampaolo/psutil/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/giampaolo/psutil/downloads","issues_url":"https://api.github.com/repos/giampaolo/psutil/issues{/number}","pulls_url":"https://api.github.com/repos/giampaolo/psutil/pulls{/number}","milestones_url":"https://api.github.com/repos/giampaolo/psutil/milestones{/number}","notifications_url":"https://api.github.com/repos/giampaolo/psutil/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/giampaolo/psutil/labels{/name}","releases_url":"https://api.github.com/repos/giampaolo/psutil/releases{/id}","deployments_url":"https://api.github.com/repos/giampaolo/psutil/deployments","created_at":"2014-05-23T14:01:48Z","updated_at":"2017-05-01T13:33:26Z","pushed_at":"2017-05-01T14:47:03Z","git_url":"git://github.com/giampaolo/psutil.git","ssh_url":"git@github.com:giampaolo/psutil.git","clone_url":"https://github.com/giampaolo/psutil.git","svn_url":"https://github.com/giampaolo/psutil","homepage":null,"size":29611,"stargazers_count":2517,"watchers_count":2517,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":430,"mirror_url":null,"open_issues_count":93,"forks":430,"open_issues":93,"watchers":2517,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/giampaolo/psutil/pulls/1036"},"html":{"href":"https://github.com/giampaolo/psutil/pull/1036"},"issue":{"href":"https://api.github.com/repos/giampaolo/psutil/issues/1036"},"comments":{"href":"https://api.github.com/repos/giampaolo/psutil/issues/1036/comments"},"review_comments":{"href":"https://api.github.com/repos/giampaolo/psutil/pulls/1036/comments"},"review_comment":{"href":"https://api.github.com/repos/giampaolo/psutil/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/giampaolo/psutil/pulls/1036/commits"},"statuses":{"href":"https://api.github.com/repos/giampaolo/psutil/statuses/552ee29eb1151ddec0b652db8d974abfa38440bd"}}}}
{"actor":{"display_login":"himanshub16"}}