{"action":"created","comment":{"url":"https://api.github.com/repos/newrelic/papers/pulls/comments/80731965","pull_request_review_id":1767195,"id":80731965,"diff_hunk":"@@ -26,6 +35,10 @@ def parse_options\n           options[:generate] = v\n         end\n \n+        opts.on(\"-u\", \"--update\", \"Update papers_manifest.yml for Rubygems\") do |v|","path":"lib/papers/cli.rb","position":33,"original_position":33,"commit_id":"4fbb4ba6c4aa872fe7e8775ec7b9aa1ba42f40f0","original_commit_id":"4d1ce899956a807e82aaf5e1998b04b157ca5a07","user":{"login":"rantler","id":73775,"avatar_url":"https://avatars.githubusercontent.com/u/73775?v=3","gravatar_id":"","url":"https://api.github.com/users/rantler","html_url":"https://github.com/rantler","followers_url":"https://api.github.com/users/rantler/followers","following_url":"https://api.github.com/users/rantler/following{/other_user}","gists_url":"https://api.github.com/users/rantler/gists{/gist_id}","starred_url":"https://api.github.com/users/rantler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rantler/subscriptions","organizations_url":"https://api.github.com/users/rantler/orgs","repos_url":"https://api.github.com/users/rantler/repos","events_url":"https://api.github.com/users/rantler/events{/privacy}","received_events_url":"https://api.github.com/users/rantler/received_events","type":"User","site_admin":false},"body":"Nit: L42 uses single quotes. Should do same here.","created_at":"2016-09-27T16:13:55Z","updated_at":"2016-09-27T16:31:55Z","html_url":"https://github.com/newrelic/papers/pull/19#discussion_r80731965","pull_request_url":"https://api.github.com/repos/newrelic/papers/pulls/19","_links":{"self":{"href":"https://api.github.com/repos/newrelic/papers/pulls/comments/80731965"},"html":{"href":"https://github.com/newrelic/papers/pull/19#discussion_r80731965"},"pull_request":{"href":"https://api.github.com/repos/newrelic/papers/pulls/19"}}},"pull_request":{"url":"https://api.github.com/repos/newrelic/papers/pulls/19","id":86961700,"html_url":"https://github.com/newrelic/papers/pull/19","diff_url":"https://github.com/newrelic/papers/pull/19.diff","patch_url":"https://github.com/newrelic/papers/pull/19.patch","issue_url":"https://api.github.com/repos/newrelic/papers/issues/19","number":19,"state":"open","locked":false,"title":"Support papers --update","user":{"login":"jasonrclark","id":130504,"avatar_url":"https://avatars.githubusercontent.com/u/130504?v=3","gravatar_id":"","url":"https://api.github.com/users/jasonrclark","html_url":"https://github.com/jasonrclark","followers_url":"https://api.github.com/users/jasonrclark/followers","following_url":"https://api.github.com/users/jasonrclark/following{/other_user}","gists_url":"https://api.github.com/users/jasonrclark/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonrclark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonrclark/subscriptions","organizations_url":"https://api.github.com/users/jasonrclark/orgs","repos_url":"https://api.github.com/users/jasonrclark/repos","events_url":"https://api.github.com/users/jasonrclark/events{/privacy}","received_events_url":"https://api.github.com/users/jasonrclark/received_events","type":"User","site_admin":false},"body":"It's a drag when you `bundle update` a bunch of gems and your papers break. Enter `papers --update`!\r\n\r\nThis uses similar logic to `papers --generate` does in the first place, and will modify your `papers_manifest.yml` with changed, new, and removed dependencies.\r\n\r\nThe Ruby support is richest since we have all of Bundler's information to run off of. Javascript, Bower and NPM all just `--generate` a bare list without version information out of the box, so that's how the `--update` works as well.\r\n\r\nHighlights of the change:\r\n* New command, `papers --update`\r\n* Extracted `ManifestCommand` class to share functionality between the existing `ManifestGenerator` and new `ManifestUpdater`\r\n* Updating bumps the version on existing gems in the file, and also adds new ones and removes old ones.\r\n* If a gem license doesn't match what's in the current manifest, it inserts an error message into the license to notify you for manual resolution.\r\n  * Note that for cases where the gemspec has a different license string than listed in the manifest (often done because of silly formatting reasons), each update will trigger the warning... might be worth setting your whitelist to include the gem's funky license string to avoid that.\r\n* Thorough specs for the `ManifestUpdater`!\r\n\r\n","created_at":"2016-09-27T16:10:01Z","updated_at":"2016-09-27T16:31:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c41a6b56d879c07aa202ea095c03e5c4452e0453","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/newrelic/papers/pulls/19/commits","review_comments_url":"https://api.github.com/repos/newrelic/papers/pulls/19/comments","review_comment_url":"https://api.github.com/repos/newrelic/papers/pulls/comments{/number}","comments_url":"https://api.github.com/repos/newrelic/papers/issues/19/comments","statuses_url":"https://api.github.com/repos/newrelic/papers/statuses/4fbb4ba6c4aa872fe7e8775ec7b9aa1ba42f40f0","head":{"label":"jasonrclark:jclark/papers-update","ref":"jclark/papers-update","sha":"4fbb4ba6c4aa872fe7e8775ec7b9aa1ba42f40f0","user":{"login":"jasonrclark","id":130504,"avatar_url":"https://avatars.githubusercontent.com/u/130504?v=3","gravatar_id":"","url":"https://api.github.com/users/jasonrclark","html_url":"https://github.com/jasonrclark","followers_url":"https://api.github.com/users/jasonrclark/followers","following_url":"https://api.github.com/users/jasonrclark/following{/other_user}","gists_url":"https://api.github.com/users/jasonrclark/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonrclark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonrclark/subscriptions","organizations_url":"https://api.github.com/users/jasonrclark/orgs","repos_url":"https://api.github.com/users/jasonrclark/repos","events_url":"https://api.github.com/users/jasonrclark/events{/privacy}","received_events_url":"https://api.github.com/users/jasonrclark/received_events","type":"User","site_admin":false},"repo":{"id":68968171,"name":"papers","full_name":"jasonrclark/papers","owner":{"login":"jasonrclark","id":130504,"avatar_url":"https://avatars.githubusercontent.com/u/130504?v=3","gravatar_id":"","url":"https://api.github.com/users/jasonrclark","html_url":"https://github.com/jasonrclark","followers_url":"https://api.github.com/users/jasonrclark/followers","following_url":"https://api.github.com/users/jasonrclark/following{/other_user}","gists_url":"https://api.github.com/users/jasonrclark/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonrclark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonrclark/subscriptions","organizations_url":"https://api.github.com/users/jasonrclark/orgs","repos_url":"https://api.github.com/users/jasonrclark/repos","events_url":"https://api.github.com/users/jasonrclark/events{/privacy}","received_events_url":"https://api.github.com/users/jasonrclark/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jasonrclark/papers","description":"Validates licenses of your Rails dependencies against a whitelist","fork":true,"url":"https://api.github.com/repos/jasonrclark/papers","forks_url":"https://api.github.com/repos/jasonrclark/papers/forks","keys_url":"https://api.github.com/repos/jasonrclark/papers/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jasonrclark/papers/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jasonrclark/papers/teams","hooks_url":"https://api.github.com/repos/jasonrclark/papers/hooks","issue_events_url":"https://api.github.com/repos/jasonrclark/papers/issues/events{/number}","events_url":"https://api.github.com/repos/jasonrclark/papers/events","assignees_url":"https://api.github.com/repos/jasonrclark/papers/assignees{/user}","branches_url":"https://api.github.com/repos/jasonrclark/papers/branches{/branch}","tags_url":"https://api.github.com/repos/jasonrclark/papers/tags","blobs_url":"https://api.github.com/repos/jasonrclark/papers/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jasonrclark/papers/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jasonrclark/papers/git/refs{/sha}","trees_url":"https://api.github.com/repos/jasonrclark/papers/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jasonrclark/papers/statuses/{sha}","languages_url":"https://api.github.com/repos/jasonrclark/papers/languages","stargazers_url":"https://api.github.com/repos/jasonrclark/papers/stargazers","contributors_url":"https://api.github.com/repos/jasonrclark/papers/contributors","subscribers_url":"https://api.github.com/repos/jasonrclark/papers/subscribers","subscription_url":"https://api.github.com/repos/jasonrclark/papers/subscription","commits_url":"https://api.github.com/repos/jasonrclark/papers/commits{/sha}","git_commits_url":"https://api.github.com/repos/jasonrclark/papers/git/commits{/sha}","comments_url":"https://api.github.com/repos/jasonrclark/papers/comments{/number}","issue_comment_url":"https://api.github.com/repos/jasonrclark/papers/issues/comments{/number}","contents_url":"https://api.github.com/repos/jasonrclark/papers/contents/{+path}","compare_url":"https://api.github.com/repos/jasonrclark/papers/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jasonrclark/papers/merges","archive_url":"https://api.github.com/repos/jasonrclark/papers/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jasonrclark/papers/downloads","issues_url":"https://api.github.com/repos/jasonrclark/papers/issues{/number}","pulls_url":"https://api.github.com/repos/jasonrclark/papers/pulls{/number}","milestones_url":"https://api.github.com/repos/jasonrclark/papers/milestones{/number}","notifications_url":"https://api.github.com/repos/jasonrclark/papers/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jasonrclark/papers/labels{/name}","releases_url":"https://api.github.com/repos/jasonrclark/papers/releases{/id}","deployments_url":"https://api.github.com/repos/jasonrclark/papers/deployments","created_at":"2016-09-22T22:45:02Z","updated_at":"2016-09-22T22:45:03Z","pushed_at":"2016-09-26T20:41:34Z","git_url":"git://github.com/jasonrclark/papers.git","ssh_url":"git@github.com:jasonrclark/papers.git","clone_url":"https://github.com/jasonrclark/papers.git","svn_url":"https://github.com/jasonrclark/papers","homepage":null,"size":86,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"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":"newrelic:master","ref":"master","sha":"46b0e137204088498e4ebedf2c85295353f169bb","user":{"login":"newrelic","id":31739,"avatar_url":"https://avatars.githubusercontent.com/u/31739?v=3","gravatar_id":"","url":"https://api.github.com/users/newrelic","html_url":"https://github.com/newrelic","followers_url":"https://api.github.com/users/newrelic/followers","following_url":"https://api.github.com/users/newrelic/following{/other_user}","gists_url":"https://api.github.com/users/newrelic/gists{/gist_id}","starred_url":"https://api.github.com/users/newrelic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/newrelic/subscriptions","organizations_url":"https://api.github.com/users/newrelic/orgs","repos_url":"https://api.github.com/users/newrelic/repos","events_url":"https://api.github.com/users/newrelic/events{/privacy}","received_events_url":"https://api.github.com/users/newrelic/received_events","type":"Organization","site_admin":false},"repo":{"id":7933541,"name":"papers","full_name":"newrelic/papers","owner":{"login":"newrelic","id":31739,"avatar_url":"https://avatars.githubusercontent.com/u/31739?v=3","gravatar_id":"","url":"https://api.github.com/users/newrelic","html_url":"https://github.com/newrelic","followers_url":"https://api.github.com/users/newrelic/followers","following_url":"https://api.github.com/users/newrelic/following{/other_user}","gists_url":"https://api.github.com/users/newrelic/gists{/gist_id}","starred_url":"https://api.github.com/users/newrelic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/newrelic/subscriptions","organizations_url":"https://api.github.com/users/newrelic/orgs","repos_url":"https://api.github.com/users/newrelic/repos","events_url":"https://api.github.com/users/newrelic/events{/privacy}","received_events_url":"https://api.github.com/users/newrelic/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/newrelic/papers","description":"Validates licenses of your Rails dependencies against a whitelist","fork":false,"url":"https://api.github.com/repos/newrelic/papers","forks_url":"https://api.github.com/repos/newrelic/papers/forks","keys_url":"https://api.github.com/repos/newrelic/papers/keys{/key_id}","collaborators_url":"https://api.github.com/repos/newrelic/papers/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/newrelic/papers/teams","hooks_url":"https://api.github.com/repos/newrelic/papers/hooks","issue_events_url":"https://api.github.com/repos/newrelic/papers/issues/events{/number}","events_url":"https://api.github.com/repos/newrelic/papers/events","assignees_url":"https://api.github.com/repos/newrelic/papers/assignees{/user}","branches_url":"https://api.github.com/repos/newrelic/papers/branches{/branch}","tags_url":"https://api.github.com/repos/newrelic/papers/tags","blobs_url":"https://api.github.com/repos/newrelic/papers/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/newrelic/papers/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/newrelic/papers/git/refs{/sha}","trees_url":"https://api.github.com/repos/newrelic/papers/git/trees{/sha}","statuses_url":"https://api.github.com/repos/newrelic/papers/statuses/{sha}","languages_url":"https://api.github.com/repos/newrelic/papers/languages","stargazers_url":"https://api.github.com/repos/newrelic/papers/stargazers","contributors_url":"https://api.github.com/repos/newrelic/papers/contributors","subscribers_url":"https://api.github.com/repos/newrelic/papers/subscribers","subscription_url":"https://api.github.com/repos/newrelic/papers/subscription","commits_url":"https://api.github.com/repos/newrelic/papers/commits{/sha}","git_commits_url":"https://api.github.com/repos/newrelic/papers/git/commits{/sha}","comments_url":"https://api.github.com/repos/newrelic/papers/comments{/number}","issue_comment_url":"https://api.github.com/repos/newrelic/papers/issues/comments{/number}","contents_url":"https://api.github.com/repos/newrelic/papers/contents/{+path}","compare_url":"https://api.github.com/repos/newrelic/papers/compare/{base}...{head}","merges_url":"https://api.github.com/repos/newrelic/papers/merges","archive_url":"https://api.github.com/repos/newrelic/papers/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/newrelic/papers/downloads","issues_url":"https://api.github.com/repos/newrelic/papers/issues{/number}","pulls_url":"https://api.github.com/repos/newrelic/papers/pulls{/number}","milestones_url":"https://api.github.com/repos/newrelic/papers/milestones{/number}","notifications_url":"https://api.github.com/repos/newrelic/papers/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/newrelic/papers/labels{/name}","releases_url":"https://api.github.com/repos/newrelic/papers/releases{/id}","deployments_url":"https://api.github.com/repos/newrelic/papers/deployments","created_at":"2013-01-31T09:10:18Z","updated_at":"2016-06-07T23:43:40Z","pushed_at":"2016-09-27T16:10:01Z","git_url":"git://github.com/newrelic/papers.git","ssh_url":"git@github.com:newrelic/papers.git","clone_url":"https://github.com/newrelic/papers.git","svn_url":"https://github.com/newrelic/papers","homepage":null,"size":477,"stargazers_count":20,"watchers_count":20,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":12,"mirror_url":null,"open_issues_count":3,"forks":12,"open_issues":3,"watchers":20,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/newrelic/papers/pulls/19"},"html":{"href":"https://github.com/newrelic/papers/pull/19"},"issue":{"href":"https://api.github.com/repos/newrelic/papers/issues/19"},"comments":{"href":"https://api.github.com/repos/newrelic/papers/issues/19/comments"},"review_comments":{"href":"https://api.github.com/repos/newrelic/papers/pulls/19/comments"},"review_comment":{"href":"https://api.github.com/repos/newrelic/papers/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/newrelic/papers/pulls/19/commits"},"statuses":{"href":"https://api.github.com/repos/newrelic/papers/statuses/4fbb4ba6c4aa872fe7e8775ec7b9aa1ba42f40f0"}}}}
{"actor":{"display_login":"rantler"}}