{"action":"created","comment":{"url":"https://api.github.com/repos/ipfs/go-ipfs/pulls/comments/31879149","id":31879149,"diff_hunk":"@@ -0,0 +1,36 @@\n+# Guidelines to create great commit messages\n+\n+\n+We use [GitCop](https://gitcop.com) to check that commit messages are\n+properly written. The rules are the following:\n+\n+* The first line of a commit message, called the subject line should\n+  not be more than 80 characters long.\n+\n+* The commit message should end with the following trailers:\n+\n+  ```\n+  Licence: MIT\n+  Signed-off-by: User Name <email@address>\n+  ```\n+\n+  where \"User Name\" is the author's real name and email@address one of","path":"commit-message.md","position":17,"original_position":17,"commit_id":"093916f7c6651f6329e3af9d2f4ab9f70ad1b7c7","original_commit_id":"093916f7c6651f6329e3af9d2f4ab9f70ad1b7c7","user":{"login":"wking","id":209920,"avatar_url":"https://avatars.githubusercontent.com/u/209920?v=3","gravatar_id":"","url":"https://api.github.com/users/wking","html_url":"https://github.com/wking","followers_url":"https://api.github.com/users/wking/followers","following_url":"https://api.github.com/users/wking/following{/other_user}","gists_url":"https://api.github.com/users/wking/gists{/gist_id}","starred_url":"https://api.github.com/users/wking/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wking/subscriptions","organizations_url":"https://api.github.com/users/wking/orgs","repos_url":"https://api.github.com/users/wking/repos","events_url":"https://api.github.com/users/wking/events{/privacy}","received_events_url":"https://api.github.com/users/wking/received_events","type":"User","site_admin":false},"body":"On Sun, Jun 07, 2015 at 10:59:27AM -0700, Christian Couder wrote:\n> Yeah I think it would work, but you need to be able to prove that\n> you used the pseudonym.\n\nI'm not a pseudonym-proponent myself, but you could probably handle\nthis part of it with an OpenPGP key specific to your pseudonym that\nyou use to sign all your commits [1,2,3].  Then you just demonstrate\nthat you can sign things with that key to make a fairly strong\nargument that you own that pseudonym.  Of course, anyone that steals\nyour key and cracks your passphrase could make the same argument, but\nthat's a much higher bar than “no, *I'm* foobar!”.\n\nOne drawback to the signed-commit route is that either @jbenet needs\nto drop his “I'll just reroll your branch for you” workflow or he'll\nhave to toss your signatures.  I don't have a handle on how much of an\ninconvenience the former would be, but if commits by a given pseudonym\nwere 90% signed by your key and 10% rerolled by @jbenet and unsigned,\nI expect you make a convincing argument to owning the 10% too.\n\n[1]: http://git.kernel.org/cgit/git/git.git/tree/Documentation/RelNotes/1.7.9.txt?id=v2.4.3#n56\n[2]: http://git.kernel.org/cgit/git/git.git/tree/Documentation/RelNotes/2.0.0.txt?id=v2.4.3#n135\n[3]: http://git.kernel.org/cgit/git/git.git/tree/Documentation/RelNotes/2.0.0.txt?id=v2.4.3#n138\n","created_at":"2015-06-07T18:19:38Z","updated_at":"2015-06-07T18:19:38Z","html_url":"https://github.com/ipfs/go-ipfs/pull/1338#discussion_r31879149","pull_request_url":"https://api.github.com/repos/ipfs/go-ipfs/pulls/1338","_links":{"self":{"href":"https://api.github.com/repos/ipfs/go-ipfs/pulls/comments/31879149"},"html":{"href":"https://github.com/ipfs/go-ipfs/pull/1338#discussion_r31879149"},"pull_request":{"href":"https://api.github.com/repos/ipfs/go-ipfs/pulls/1338"}}},"pull_request":{"url":"https://api.github.com/repos/ipfs/go-ipfs/pulls/1338","id":37093775,"html_url":"https://github.com/ipfs/go-ipfs/pull/1338","diff_url":"https://github.com/ipfs/go-ipfs/pull/1338.diff","patch_url":"https://github.com/ipfs/go-ipfs/pull/1338.patch","issue_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/1338","number":1338,"state":"open","locked":false,"title":"Add DCO and commit-message.md","user":{"login":"chriscool","id":208954,"avatar_url":"https://avatars.githubusercontent.com/u/208954?v=3","gravatar_id":"","url":"https://api.github.com/users/chriscool","html_url":"https://github.com/chriscool","followers_url":"https://api.github.com/users/chriscool/followers","following_url":"https://api.github.com/users/chriscool/following{/other_user}","gists_url":"https://api.github.com/users/chriscool/gists{/gist_id}","starred_url":"https://api.github.com/users/chriscool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chriscool/subscriptions","organizations_url":"https://api.github.com/users/chriscool/orgs","repos_url":"https://api.github.com/users/chriscool/repos","events_url":"https://api.github.com/users/chriscool/events{/privacy}","received_events_url":"https://api.github.com/users/chriscool/received_events","type":"User","site_admin":false},"body":"These are documents we might want to add if we use GitCop. I will perhaps add them to another PR instead of this one. So please don't merge for now.","created_at":"2015-06-06T17:24:04Z","updated_at":"2015-06-07T18:19:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f64c75c1cd574d74f419184fa00dd9739d2d5dc1","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ipfs/go-ipfs/pulls/1338/commits","review_comments_url":"https://api.github.com/repos/ipfs/go-ipfs/pulls/1338/comments","review_comment_url":"https://api.github.com/repos/ipfs/go-ipfs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/1338/comments","statuses_url":"https://api.github.com/repos/ipfs/go-ipfs/statuses/093916f7c6651f6329e3af9d2f4ab9f70ad1b7c7","head":{"label":"chriscool:commit-messages","ref":"commit-messages","sha":"093916f7c6651f6329e3af9d2f4ab9f70ad1b7c7","user":{"login":"chriscool","id":208954,"avatar_url":"https://avatars.githubusercontent.com/u/208954?v=3","gravatar_id":"","url":"https://api.github.com/users/chriscool","html_url":"https://github.com/chriscool","followers_url":"https://api.github.com/users/chriscool/followers","following_url":"https://api.github.com/users/chriscool/following{/other_user}","gists_url":"https://api.github.com/users/chriscool/gists{/gist_id}","starred_url":"https://api.github.com/users/chriscool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chriscool/subscriptions","organizations_url":"https://api.github.com/users/chriscool/orgs","repos_url":"https://api.github.com/users/chriscool/repos","events_url":"https://api.github.com/users/chriscool/events{/privacy}","received_events_url":"https://api.github.com/users/chriscool/received_events","type":"User","site_admin":false},"repo":{"id":25699578,"name":"go-ipfs","full_name":"chriscool/go-ipfs","owner":{"login":"chriscool","id":208954,"avatar_url":"https://avatars.githubusercontent.com/u/208954?v=3","gravatar_id":"","url":"https://api.github.com/users/chriscool","html_url":"https://github.com/chriscool","followers_url":"https://api.github.com/users/chriscool/followers","following_url":"https://api.github.com/users/chriscool/following{/other_user}","gists_url":"https://api.github.com/users/chriscool/gists{/gist_id}","starred_url":"https://api.github.com/users/chriscool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chriscool/subscriptions","organizations_url":"https://api.github.com/users/chriscool/orgs","repos_url":"https://api.github.com/users/chriscool/repos","events_url":"https://api.github.com/users/chriscool/events{/privacy}","received_events_url":"https://api.github.com/users/chriscool/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chriscool/go-ipfs","description":"ipfs implementation in go","fork":true,"url":"https://api.github.com/repos/chriscool/go-ipfs","forks_url":"https://api.github.com/repos/chriscool/go-ipfs/forks","keys_url":"https://api.github.com/repos/chriscool/go-ipfs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chriscool/go-ipfs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chriscool/go-ipfs/teams","hooks_url":"https://api.github.com/repos/chriscool/go-ipfs/hooks","issue_events_url":"https://api.github.com/repos/chriscool/go-ipfs/issues/events{/number}","events_url":"https://api.github.com/repos/chriscool/go-ipfs/events","assignees_url":"https://api.github.com/repos/chriscool/go-ipfs/assignees{/user}","branches_url":"https://api.github.com/repos/chriscool/go-ipfs/branches{/branch}","tags_url":"https://api.github.com/repos/chriscool/go-ipfs/tags","blobs_url":"https://api.github.com/repos/chriscool/go-ipfs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chriscool/go-ipfs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chriscool/go-ipfs/git/refs{/sha}","trees_url":"https://api.github.com/repos/chriscool/go-ipfs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chriscool/go-ipfs/statuses/{sha}","languages_url":"https://api.github.com/repos/chriscool/go-ipfs/languages","stargazers_url":"https://api.github.com/repos/chriscool/go-ipfs/stargazers","contributors_url":"https://api.github.com/repos/chriscool/go-ipfs/contributors","subscribers_url":"https://api.github.com/repos/chriscool/go-ipfs/subscribers","subscription_url":"https://api.github.com/repos/chriscool/go-ipfs/subscription","commits_url":"https://api.github.com/repos/chriscool/go-ipfs/commits{/sha}","git_commits_url":"https://api.github.com/repos/chriscool/go-ipfs/git/commits{/sha}","comments_url":"https://api.github.com/repos/chriscool/go-ipfs/comments{/number}","issue_comment_url":"https://api.github.com/repos/chriscool/go-ipfs/issues/comments{/number}","contents_url":"https://api.github.com/repos/chriscool/go-ipfs/contents/{+path}","compare_url":"https://api.github.com/repos/chriscool/go-ipfs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chriscool/go-ipfs/merges","archive_url":"https://api.github.com/repos/chriscool/go-ipfs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chriscool/go-ipfs/downloads","issues_url":"https://api.github.com/repos/chriscool/go-ipfs/issues{/number}","pulls_url":"https://api.github.com/repos/chriscool/go-ipfs/pulls{/number}","milestones_url":"https://api.github.com/repos/chriscool/go-ipfs/milestones{/number}","notifications_url":"https://api.github.com/repos/chriscool/go-ipfs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chriscool/go-ipfs/labels{/name}","releases_url":"https://api.github.com/repos/chriscool/go-ipfs/releases{/id}","created_at":"2014-10-24T17:25:31Z","updated_at":"2014-11-19T22:38:24Z","pushed_at":"2015-06-06T20:10:42Z","git_url":"git://github.com/chriscool/go-ipfs.git","ssh_url":"git@github.com:chriscool/go-ipfs.git","clone_url":"https://github.com/chriscool/go-ipfs.git","svn_url":"https://github.com/chriscool/go-ipfs","homepage":"https://github.com/jbenet/ipfs","size":18184,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"ipfs:master","ref":"master","sha":"13cd226bff5dd02219f030bd8d1d86f1e4621f9c","user":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"repo":{"id":21233191,"name":"go-ipfs","full_name":"ipfs/go-ipfs","owner":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ipfs/go-ipfs","description":"ipfs implementation in go","fork":false,"url":"https://api.github.com/repos/ipfs/go-ipfs","forks_url":"https://api.github.com/repos/ipfs/go-ipfs/forks","keys_url":"https://api.github.com/repos/ipfs/go-ipfs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ipfs/go-ipfs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ipfs/go-ipfs/teams","hooks_url":"https://api.github.com/repos/ipfs/go-ipfs/hooks","issue_events_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/events{/number}","events_url":"https://api.github.com/repos/ipfs/go-ipfs/events","assignees_url":"https://api.github.com/repos/ipfs/go-ipfs/assignees{/user}","branches_url":"https://api.github.com/repos/ipfs/go-ipfs/branches{/branch}","tags_url":"https://api.github.com/repos/ipfs/go-ipfs/tags","blobs_url":"https://api.github.com/repos/ipfs/go-ipfs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ipfs/go-ipfs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ipfs/go-ipfs/git/refs{/sha}","trees_url":"https://api.github.com/repos/ipfs/go-ipfs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ipfs/go-ipfs/statuses/{sha}","languages_url":"https://api.github.com/repos/ipfs/go-ipfs/languages","stargazers_url":"https://api.github.com/repos/ipfs/go-ipfs/stargazers","contributors_url":"https://api.github.com/repos/ipfs/go-ipfs/contributors","subscribers_url":"https://api.github.com/repos/ipfs/go-ipfs/subscribers","subscription_url":"https://api.github.com/repos/ipfs/go-ipfs/subscription","commits_url":"https://api.github.com/repos/ipfs/go-ipfs/commits{/sha}","git_commits_url":"https://api.github.com/repos/ipfs/go-ipfs/git/commits{/sha}","comments_url":"https://api.github.com/repos/ipfs/go-ipfs/comments{/number}","issue_comment_url":"https://api.github.com/repos/ipfs/go-ipfs/issues/comments{/number}","contents_url":"https://api.github.com/repos/ipfs/go-ipfs/contents/{+path}","compare_url":"https://api.github.com/repos/ipfs/go-ipfs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ipfs/go-ipfs/merges","archive_url":"https://api.github.com/repos/ipfs/go-ipfs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ipfs/go-ipfs/downloads","issues_url":"https://api.github.com/repos/ipfs/go-ipfs/issues{/number}","pulls_url":"https://api.github.com/repos/ipfs/go-ipfs/pulls{/number}","milestones_url":"https://api.github.com/repos/ipfs/go-ipfs/milestones{/number}","notifications_url":"https://api.github.com/repos/ipfs/go-ipfs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ipfs/go-ipfs/labels{/name}","releases_url":"https://api.github.com/repos/ipfs/go-ipfs/releases{/id}","created_at":"2014-06-26T08:14:34Z","updated_at":"2015-06-07T08:45:43Z","pushed_at":"2015-06-07T13:02:23Z","git_url":"git://github.com/ipfs/go-ipfs.git","ssh_url":"git@github.com:ipfs/go-ipfs.git","clone_url":"https://github.com/ipfs/go-ipfs.git","svn_url":"https://github.com/ipfs/go-ipfs","homepage":"https://github.com/ipfs/ipfs","size":31106,"stargazers_count":585,"watchers_count":585,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":104,"mirror_url":null,"open_issues_count":263,"forks":104,"open_issues":263,"watchers":585,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ipfs/go-ipfs/pulls/1338"},"html":{"href":"https://github.com/ipfs/go-ipfs/pull/1338"},"issue":{"href":"https://api.github.com/repos/ipfs/go-ipfs/issues/1338"},"comments":{"href":"https://api.github.com/repos/ipfs/go-ipfs/issues/1338/comments"},"review_comments":{"href":"https://api.github.com/repos/ipfs/go-ipfs/pulls/1338/comments"},"review_comment":{"href":"https://api.github.com/repos/ipfs/go-ipfs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ipfs/go-ipfs/pulls/1338/commits"},"statuses":{"href":"https://api.github.com/repos/ipfs/go-ipfs/statuses/093916f7c6651f6329e3af9d2f4ab9f70ad1b7c7"}}}}