Giter Site home page Giter Site logo

anonydog / anonydog Goto Github PK

View Code? Open in Web Editor NEW
145.0 145.0 6.0 777 KB

On the internet, nobody knows you're a dog

Home Page: anonydog-git-master.anonydog.vercel.app

License: MIT License

Ruby 32.38% Shell 7.72% HTML 19.52% CSS 3.05% JavaScript 16.51% HCL 20.64% Mustache 0.19%
bots developer-tools hacktoberfest

anonydog's Introduction

anonydog

Backers on Open Collective Sponsors on Open Collective

Woof! On the internet, nobody knows you're a dog.

Is your identity influencing the way project mantainers look at your pull requests? I can shed some light on that question!

I'm a bot (or a dog -- you'll never know for sure) that helps you stay anonymous on github.

To use me, add the anonydog extesion to your browser (available on Firefox and Chrome) and select "anonymous pull request" when opening your next PR.

If you'd rather do the process manually:

  1. Go to https://anonydog.org/fork and tell me which github repo you want to work on.
  2. Instead of forking anyuser/anyrepo, fork anonydog/anyrepo
  3. Create a branch and work as you normally would
  4. When you're done, open a pull request to anonydog/anyrepo

When I see that, I'll flip a magical coin and either (1) open the pull request to the original repo on your behalf or (2) strip your name from every possible author field and submit a pull request under my own name.

Don't worry. If your pull request gets accepted, I will reveal your github handle so that you can get credit for it.

Motivation

This, as most things, started as a conversation. @isislovecruft mentioned that they had been testing gnupg developers by using male and female pseudonyms. It didn't take long for someone to suggest automating that.

What would happen if a bot automatically anonymized opensource contributors?

What if it could randomly choose between anonymizing and not anonymizing?

Will some demographic groups get code merged more/less frequently when they're anonymous?

Get in touch

In case you're interested in helping or using anonydog, open an issue and we'll talk.

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

anonydog's People

Contributors

alinebezzoco avatar anonydog avatar asood123 avatar codersquirrel avatar dependabot[bot] avatar mandyellow avatar thiagoarrais avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

anonydog's Issues

multi-server support

The frontend and webhook webapps are currently served by one thin server process each. I'm pretty sure that github treats the webhook requests as "fire and forget", so that won't be a huge problem. But a slow user-facing frontend app can be very annoying (even if used only for requesting new forks).

browser extension

Remembering to send pull requests to anonydog is too cumbersome. It would be nice to have the computer remember that for us.

I propose a browser extension that watches over github's pull request pages and augments the "create pull request" button to "create anonymous pull request".

echo reviews

when someone comments on a line of code, anonydog should echo it back and forth to the original PR.

related to #2

Cannot link to contributor comment (?)

Github linked the original pull request from the anonymized one saying that "anonydog referenced this pull request in anonydog/ruby-bench-web some time ago."

I think that happens because anonydog links to the original comment when relaying maintainer comments to the contributor pull request. Need to test that.

https for webapp and webhook

We're currently serving everything with plain http. Although there isn't any known security issue It would be nice to use some Let's Encrypt cert or something.

The webhook requests that arrive to webhook.anonydog.org are signed by github using a shared secret. This prevents a random attacker from impersonating github and triggering a fake webhook action. But I'm not really sure about replay attacks.

browser extension: missing privacy policy

AMO says:

Please add a privacy policy to this add-on that details which remote API calls are being made and to what services. If your add-on makes it apparent to websites that it is installed, this must also be mentioned. The policy should be about the extension only, not a copy of the website's privacy policy. It should also be the actual text, as opposed to a link to a privacy policy on a website.

The original message from AMO can be found at https://gist.github.com/thiagoarrais/de5885c92d461b210468a0261c9bc0d2

Publish extension for Chrome

Anonydog has a browser extension that helps people remember to use it by changing the new PR page. It currently is only published in the Firefox store. But it was written using WebExtensions API, which makes it theoretically functional in Chrome also.

We need to verify that the extension really works in Chrome and publish it to the Chrome store.

Rebase did not get synchronized

Anonydog didn't synchronize the rebase below despite having received the webhook call correctly.

I think that the issue happens because anonydog uses its own fork master ref as base for the anonymization instead of the upstream master.

The issue was observed with pull request number 1 at anonydog/ruby-bench-web.

The anonymized pull request is number 233 at ruby-bench/ruby-bench-web.

The original (before rebase) branch tip was 1ebe381dbb449c41054a333c47b134911ead6023

The resulting (after rebase) branch tip was 8de94dbeeb68fa9c8096244852fa57cfa2fd64af

The original (before rebase) base was af145315330babc39066bf622645cb64f6b25be6

The new (after rebase) base was 0658fc75fcce9a31ab82c765be4089e6e671e13f

The bot fork master was at af145315330babc39066bf622645cb64f6b25be6 (which is also the original base)

Here is the webhook payload:

{
  "action": "synchronize",
  "number": 1,
  "pull_request": {
    "url": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls/1",
    "id": 131533048,
    "html_url": "https://github.com/anonydog/ruby-bench-web/pull/1",
    "diff_url": "https://github.com/anonydog/ruby-bench-web/pull/1.diff",
    "patch_url": "https://github.com/anonydog/ruby-bench-web/pull/1.patch",
    "issue_url": "https://api.github.com/repos/anonydog/ruby-bench-web/issues/1",
    "number": 1,
    "state": "open",
    "locked": false,
    "title": "Styling for error pages",
    "user": {
      "login": "thiagoarrais",
      "id": 3014,
      "avatar_url": "https://avatars3.githubusercontent.com/u/3014?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/thiagoarrais",
      "html_url": "https://github.com/thiagoarrais",
      "followers_url": "https://api.github.com/users/thiagoarrais/followers",
      "following_url": "https://api.github.com/users/thiagoarrais/following{/other_user}",
      "gists_url": "https://api.github.com/users/thiagoarrais/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/thiagoarrais/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/thiagoarrais/subscriptions",
      "organizations_url": "https://api.github.com/users/thiagoarrais/orgs",
      "repos_url": "https://api.github.com/users/thiagoarrais/repos",
      "events_url": "https://api.github.com/users/thiagoarrais/events{/privacy}",
      "received_events_url": "https://api.github.com/users/thiagoarrais/received_events",
      "type": "User",
      "site_admin": false
    },
    "body": "I'm trying to fix #46 \r\n\r\nThe pull request is currently just a first draft. I intend to build something\r\ntogether with you people.\r\n\r\nPlease take a look at my modified 404 page.\r\n\r\nI've started from the HTML for the \"Contributing\" page  and changed it to make a 404 message. Is this a step in the right direction? I mean... In the visual style sense?\r\n\r\n--------\r\n\r\nThis pull request was sent anonymously through anonydog.\r\n\r\nThere is a person behind the curtain. But the bot hides the real author.\r\n\r\nAnonydog wants to allow people to watch how Github project maintainers behave when they don't know who is behind the keyboard.\r\n\r\nBut the code is still in its early testing stages. I want to ask you to please spend some minutes trying to identify who is the real author of this pull request. In case you manage to do it, please open an issue with the `deanonymization` label in the `anonydog/anonydog` project telling me how did you do it.\r\n",
    "created_at": "2017-07-20T11:39:51Z",
    "updated_at": "2017-08-18T12:59:47Z",
    "closed_at": null,
    "merged_at": null,
    "merge_commit_sha": "66261f5b8e4486116d5a42741ed7d473357b4e42",
    "assignee": null,
    "assignees": [

    ],
    "requested_reviewers": [

    ],
    "milestone": null,
    "commits_url": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls/1/commits",
    "review_comments_url": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls/1/comments",
    "review_comment_url": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls/comments{/number}",
    "comments_url": "https://api.github.com/repos/anonydog/ruby-bench-web/issues/1/comments",
    "statuses_url": "https://api.github.com/repos/anonydog/ruby-bench-web/statuses/8de94dbeeb68fa9c8096244852fa57cfa2fd64af",
    "head": {
      "label": "thiagoarrais:styling-error-pages",
      "ref": "styling-error-pages",
      "sha": "8de94dbeeb68fa9c8096244852fa57cfa2fd64af",
      "user": {
        "login": "thiagoarrais",
        "id": 3014,
        "avatar_url": "https://avatars3.githubusercontent.com/u/3014?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/thiagoarrais",
        "html_url": "https://github.com/thiagoarrais",
        "followers_url": "https://api.github.com/users/thiagoarrais/followers",
        "following_url": "https://api.github.com/users/thiagoarrais/following{/other_user}",
        "gists_url": "https://api.github.com/users/thiagoarrais/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/thiagoarrais/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/thiagoarrais/subscriptions",
        "organizations_url": "https://api.github.com/users/thiagoarrais/orgs",
        "repos_url": "https://api.github.com/users/thiagoarrais/repos",
        "events_url": "https://api.github.com/users/thiagoarrais/events{/privacy}",
        "received_events_url": "https://api.github.com/users/thiagoarrais/received_events",
        "type": "User",
        "site_admin": false
      },
      "repo": {
        "id": 97649081,
        "name": "ruby-bench-web",
        "full_name": "thiagoarrais/ruby-bench-web",
        "owner": {
          "login": "thiagoarrais",
          "id": 3014,
          "avatar_url": "https://avatars3.githubusercontent.com/u/3014?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/thiagoarrais",
          "html_url": "https://github.com/thiagoarrais",
          "followers_url": "https://api.github.com/users/thiagoarrais/followers",
          "following_url": "https://api.github.com/users/thiagoarrais/following{/other_user}",
          "gists_url": "https://api.github.com/users/thiagoarrais/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/thiagoarrais/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/thiagoarrais/subscriptions",
          "organizations_url": "https://api.github.com/users/thiagoarrais/orgs",
          "repos_url": "https://api.github.com/users/thiagoarrais/repos",
          "events_url": "https://api.github.com/users/thiagoarrais/events{/privacy}",
          "received_events_url": "https://api.github.com/users/thiagoarrais/received_events",
          "type": "User",
          "site_admin": false
        },
        "private": false,
        "html_url": "https://github.com/thiagoarrais/ruby-bench-web",
        "description": "Long Running Ruby Benchmarks",
        "fork": true,
        "url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web",
        "forks_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/forks",
        "keys_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/keys{/key_id}",
        "collaborators_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/collaborators{/collaborator}",
        "teams_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/teams",
        "hooks_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/hooks",
        "issue_events_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/issues/events{/number}",
        "events_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/events",
        "assignees_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/assignees{/user}",
        "branches_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/branches{/branch}",
        "tags_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/tags",
        "blobs_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/git/blobs{/sha}",
        "git_tags_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/git/tags{/sha}",
        "git_refs_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/git/refs{/sha}",
        "trees_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/git/trees{/sha}",
        "statuses_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/statuses/{sha}",
        "languages_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/languages",
        "stargazers_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/stargazers",
        "contributors_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/contributors",
        "subscribers_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/subscribers",
        "subscription_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/subscription",
        "commits_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/commits{/sha}",
        "git_commits_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/git/commits{/sha}",
        "comments_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/comments{/number}",
        "issue_comment_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/issues/comments{/number}",
        "contents_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/contents/{+path}",
        "compare_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/compare/{base}...{head}",
        "merges_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/merges",
        "archive_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/{archive_format}{/ref}",
        "downloads_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/downloads",
        "issues_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/issues{/number}",
        "pulls_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/pulls{/number}",
        "milestones_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/milestones{/number}",
        "notifications_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/notifications{?since,all,participating}",
        "labels_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/labels{/name}",
        "releases_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/releases{/id}",
        "deployments_url": "https://api.github.com/repos/thiagoarrais/ruby-bench-web/deployments",
        "created_at": "2017-07-18T22:23:43Z",
        "updated_at": "2017-07-18T22:23:44Z",
        "pushed_at": "2017-08-18T12:59:47Z",
        "git_url": "git://github.com/thiagoarrais/ruby-bench-web.git",
        "ssh_url": "[email protected]:thiagoarrais/ruby-bench-web.git",
        "clone_url": "https://github.com/thiagoarrais/ruby-bench-web.git",
        "svn_url": "https://github.com/thiagoarrais/ruby-bench-web",
        "homepage": "https://rubybench.org",
        "size": 5011,
        "stargazers_count": 0,
        "watchers_count": 0,
        "language": "Ruby",
        "has_issues": false,
        "has_projects": true,
        "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": "anonydog:master",
      "ref": "master",
      "sha": "af145315330babc39066bf622645cb64f6b25be6",
      "user": {
        "login": "anonydog",
        "id": 24738062,
        "avatar_url": "https://avatars1.githubusercontent.com/u/24738062?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/anonydog",
        "html_url": "https://github.com/anonydog",
        "followers_url": "https://api.github.com/users/anonydog/followers",
        "following_url": "https://api.github.com/users/anonydog/following{/other_user}",
        "gists_url": "https://api.github.com/users/anonydog/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/anonydog/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/anonydog/subscriptions",
        "organizations_url": "https://api.github.com/users/anonydog/orgs",
        "repos_url": "https://api.github.com/users/anonydog/repos",
        "events_url": "https://api.github.com/users/anonydog/events{/privacy}",
        "received_events_url": "https://api.github.com/users/anonydog/received_events",
        "type": "User",
        "site_admin": false
      },
      "repo": {
        "id": 97828461,
        "name": "ruby-bench-web",
        "full_name": "anonydog/ruby-bench-web",
        "owner": {
          "login": "anonydog",
          "id": 24738062,
          "avatar_url": "https://avatars1.githubusercontent.com/u/24738062?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/anonydog",
          "html_url": "https://github.com/anonydog",
          "followers_url": "https://api.github.com/users/anonydog/followers",
          "following_url": "https://api.github.com/users/anonydog/following{/other_user}",
          "gists_url": "https://api.github.com/users/anonydog/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/anonydog/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/anonydog/subscriptions",
          "organizations_url": "https://api.github.com/users/anonydog/orgs",
          "repos_url": "https://api.github.com/users/anonydog/repos",
          "events_url": "https://api.github.com/users/anonydog/events{/privacy}",
          "received_events_url": "https://api.github.com/users/anonydog/received_events",
          "type": "User",
          "site_admin": false
        },
        "private": false,
        "html_url": "https://github.com/anonydog/ruby-bench-web",
        "description": "Long Running Ruby Benchmarks",
        "fork": true,
        "url": "https://api.github.com/repos/anonydog/ruby-bench-web",
        "forks_url": "https://api.github.com/repos/anonydog/ruby-bench-web/forks",
        "keys_url": "https://api.github.com/repos/anonydog/ruby-bench-web/keys{/key_id}",
        "collaborators_url": "https://api.github.com/repos/anonydog/ruby-bench-web/collaborators{/collaborator}",
        "teams_url": "https://api.github.com/repos/anonydog/ruby-bench-web/teams",
        "hooks_url": "https://api.github.com/repos/anonydog/ruby-bench-web/hooks",
        "issue_events_url": "https://api.github.com/repos/anonydog/ruby-bench-web/issues/events{/number}",
        "events_url": "https://api.github.com/repos/anonydog/ruby-bench-web/events",
        "assignees_url": "https://api.github.com/repos/anonydog/ruby-bench-web/assignees{/user}",
        "branches_url": "https://api.github.com/repos/anonydog/ruby-bench-web/branches{/branch}",
        "tags_url": "https://api.github.com/repos/anonydog/ruby-bench-web/tags",
        "blobs_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/blobs{/sha}",
        "git_tags_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/tags{/sha}",
        "git_refs_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/refs{/sha}",
        "trees_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/trees{/sha}",
        "statuses_url": "https://api.github.com/repos/anonydog/ruby-bench-web/statuses/{sha}",
        "languages_url": "https://api.github.com/repos/anonydog/ruby-bench-web/languages",
        "stargazers_url": "https://api.github.com/repos/anonydog/ruby-bench-web/stargazers",
        "contributors_url": "https://api.github.com/repos/anonydog/ruby-bench-web/contributors",
        "subscribers_url": "https://api.github.com/repos/anonydog/ruby-bench-web/subscribers",
        "subscription_url": "https://api.github.com/repos/anonydog/ruby-bench-web/subscription",
        "commits_url": "https://api.github.com/repos/anonydog/ruby-bench-web/commits{/sha}",
        "git_commits_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/commits{/sha}",
        "comments_url": "https://api.github.com/repos/anonydog/ruby-bench-web/comments{/number}",
        "issue_comment_url": "https://api.github.com/repos/anonydog/ruby-bench-web/issues/comments{/number}",
        "contents_url": "https://api.github.com/repos/anonydog/ruby-bench-web/contents/{+path}",
        "compare_url": "https://api.github.com/repos/anonydog/ruby-bench-web/compare/{base}...{head}",
        "merges_url": "https://api.github.com/repos/anonydog/ruby-bench-web/merges",
        "archive_url": "https://api.github.com/repos/anonydog/ruby-bench-web/{archive_format}{/ref}",
        "downloads_url": "https://api.github.com/repos/anonydog/ruby-bench-web/downloads",
        "issues_url": "https://api.github.com/repos/anonydog/ruby-bench-web/issues{/number}",
        "pulls_url": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls{/number}",
        "milestones_url": "https://api.github.com/repos/anonydog/ruby-bench-web/milestones{/number}",
        "notifications_url": "https://api.github.com/repos/anonydog/ruby-bench-web/notifications{?since,all,participating}",
        "labels_url": "https://api.github.com/repos/anonydog/ruby-bench-web/labels{/name}",
        "releases_url": "https://api.github.com/repos/anonydog/ruby-bench-web/releases{/id}",
        "deployments_url": "https://api.github.com/repos/anonydog/ruby-bench-web/deployments",
        "created_at": "2017-07-20T11:38:57Z",
        "updated_at": "2017-07-20T11:38:59Z",
        "pushed_at": "2017-07-26T14:27:06Z",
        "git_url": "git://github.com/anonydog/ruby-bench-web.git",
        "ssh_url": "[email protected]:anonydog/ruby-bench-web.git",
        "clone_url": "https://github.com/anonydog/ruby-bench-web.git",
        "svn_url": "https://github.com/anonydog/ruby-bench-web",
        "homepage": "https://rubybench.org",
        "size": 5011,
        "stargazers_count": 0,
        "watchers_count": 0,
        "language": "Ruby",
        "has_issues": false,
        "has_projects": true,
        "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"
      }
    },
    "_links": {
      "self": {
        "href": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls/1"
      },
      "html": {
        "href": "https://github.com/anonydog/ruby-bench-web/pull/1"
      },
      "issue": {
        "href": "https://api.github.com/repos/anonydog/ruby-bench-web/issues/1"
      },
      "comments": {
        "href": "https://api.github.com/repos/anonydog/ruby-bench-web/issues/1/comments"
      },
      "review_comments": {
        "href": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls/1/comments"
      },
      "review_comment": {
        "href": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls/comments{/number}"
      },
      "commits": {
        "href": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls/1/commits"
      },
      "statuses": {
        "href": "https://api.github.com/repos/anonydog/ruby-bench-web/statuses/8de94dbeeb68fa9c8096244852fa57cfa2fd64af"
      }
    },
    "merged": false,
    "mergeable": null,
    "rebaseable": null,
    "mergeable_state": "unknown",
    "merged_by": null,
    "comments": 20,
    "review_comments": 0,
    "maintainer_can_modify": true,
    "commits": 81,
    "additions": 1270,
    "deletions": 431,
    "changed_files": 57
  },
  "before": "1ebe381dbb449c41054a333c47b134911ead6023",
  "after": "8de94dbeeb68fa9c8096244852fa57cfa2fd64af",
  "repository": {
    "id": 97828461,
    "name": "ruby-bench-web",
    "full_name": "anonydog/ruby-bench-web",
    "owner": {
      "login": "anonydog",
      "id": 24738062,
      "avatar_url": "https://avatars1.githubusercontent.com/u/24738062?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/anonydog",
      "html_url": "https://github.com/anonydog",
      "followers_url": "https://api.github.com/users/anonydog/followers",
      "following_url": "https://api.github.com/users/anonydog/following{/other_user}",
      "gists_url": "https://api.github.com/users/anonydog/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/anonydog/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/anonydog/subscriptions",
      "organizations_url": "https://api.github.com/users/anonydog/orgs",
      "repos_url": "https://api.github.com/users/anonydog/repos",
      "events_url": "https://api.github.com/users/anonydog/events{/privacy}",
      "received_events_url": "https://api.github.com/users/anonydog/received_events",
      "type": "User",
      "site_admin": false
    },
    "private": false,
    "html_url": "https://github.com/anonydog/ruby-bench-web",
    "description": "Long Running Ruby Benchmarks",
    "fork": true,
    "url": "https://api.github.com/repos/anonydog/ruby-bench-web",
    "forks_url": "https://api.github.com/repos/anonydog/ruby-bench-web/forks",
    "keys_url": "https://api.github.com/repos/anonydog/ruby-bench-web/keys{/key_id}",
    "collaborators_url": "https://api.github.com/repos/anonydog/ruby-bench-web/collaborators{/collaborator}",
    "teams_url": "https://api.github.com/repos/anonydog/ruby-bench-web/teams",
    "hooks_url": "https://api.github.com/repos/anonydog/ruby-bench-web/hooks",
    "issue_events_url": "https://api.github.com/repos/anonydog/ruby-bench-web/issues/events{/number}",
    "events_url": "https://api.github.com/repos/anonydog/ruby-bench-web/events",
    "assignees_url": "https://api.github.com/repos/anonydog/ruby-bench-web/assignees{/user}",
    "branches_url": "https://api.github.com/repos/anonydog/ruby-bench-web/branches{/branch}",
    "tags_url": "https://api.github.com/repos/anonydog/ruby-bench-web/tags",
    "blobs_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/blobs{/sha}",
    "git_tags_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/tags{/sha}",
    "git_refs_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/refs{/sha}",
    "trees_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/trees{/sha}",
    "statuses_url": "https://api.github.com/repos/anonydog/ruby-bench-web/statuses/{sha}",
    "languages_url": "https://api.github.com/repos/anonydog/ruby-bench-web/languages",
    "stargazers_url": "https://api.github.com/repos/anonydog/ruby-bench-web/stargazers",
    "contributors_url": "https://api.github.com/repos/anonydog/ruby-bench-web/contributors",
    "subscribers_url": "https://api.github.com/repos/anonydog/ruby-bench-web/subscribers",
    "subscription_url": "https://api.github.com/repos/anonydog/ruby-bench-web/subscription",
    "commits_url": "https://api.github.com/repos/anonydog/ruby-bench-web/commits{/sha}",
    "git_commits_url": "https://api.github.com/repos/anonydog/ruby-bench-web/git/commits{/sha}",
    "comments_url": "https://api.github.com/repos/anonydog/ruby-bench-web/comments{/number}",
    "issue_comment_url": "https://api.github.com/repos/anonydog/ruby-bench-web/issues/comments{/number}",
    "contents_url": "https://api.github.com/repos/anonydog/ruby-bench-web/contents/{+path}",
    "compare_url": "https://api.github.com/repos/anonydog/ruby-bench-web/compare/{base}...{head}",
    "merges_url": "https://api.github.com/repos/anonydog/ruby-bench-web/merges",
    "archive_url": "https://api.github.com/repos/anonydog/ruby-bench-web/{archive_format}{/ref}",
    "downloads_url": "https://api.github.com/repos/anonydog/ruby-bench-web/downloads",
    "issues_url": "https://api.github.com/repos/anonydog/ruby-bench-web/issues{/number}",
    "pulls_url": "https://api.github.com/repos/anonydog/ruby-bench-web/pulls{/number}",
    "milestones_url": "https://api.github.com/repos/anonydog/ruby-bench-web/milestones{/number}",
    "notifications_url": "https://api.github.com/repos/anonydog/ruby-bench-web/notifications{?since,all,participating}",
    "labels_url": "https://api.github.com/repos/anonydog/ruby-bench-web/labels{/name}",
    "releases_url": "https://api.github.com/repos/anonydog/ruby-bench-web/releases{/id}",
    "deployments_url": "https://api.github.com/repos/anonydog/ruby-bench-web/deployments",
    "created_at": "2017-07-20T11:38:57Z",
    "updated_at": "2017-07-20T11:38:59Z",
    "pushed_at": "2017-07-26T14:27:06Z",
    "git_url": "git://github.com/anonydog/ruby-bench-web.git",
    "ssh_url": "[email protected]:anonydog/ruby-bench-web.git",
    "clone_url": "https://github.com/anonydog/ruby-bench-web.git",
    "svn_url": "https://github.com/anonydog/ruby-bench-web",
    "homepage": "https://rubybench.org",
    "size": 5011,
    "stargazers_count": 0,
    "watchers_count": 0,
    "language": "Ruby",
    "has_issues": false,
    "has_projects": true,
    "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"
  },
  "sender": {
    "login": "thiagoarrais",
    "id": 3014,
    "avatar_url": "https://avatars3.githubusercontent.com/u/3014?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/thiagoarrais",
    "html_url": "https://github.com/thiagoarrais",
    "followers_url": "https://api.github.com/users/thiagoarrais/followers",
    "following_url": "https://api.github.com/users/thiagoarrais/following{/other_user}",
    "gists_url": "https://api.github.com/users/thiagoarrais/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/thiagoarrais/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/thiagoarrais/subscriptions",
    "organizations_url": "https://api.github.com/users/thiagoarrais/orgs",
    "repos_url": "https://api.github.com/users/thiagoarrais/repos",
    "events_url": "https://api.github.com/users/thiagoarrais/events{/privacy}",
    "received_events_url": "https://api.github.com/users/thiagoarrais/received_events",
    "type": "User",
    "site_admin": false
  }
}

Webhook call ref is 1d2e4240-8415-11e7-8406-54fe9b5358f5

get that readme working!

  • anonydog.org doesn't even exist
  • check if the github api lets the bot do what we're saying it'll do
  • decide how to deanonimize contributor

need to start apps manually

I need to start the sinatra apps + rabbitmq consumer manually after creating the production server. It would be nice to have a script that spins up a new server that "just works".

comments don't get echoed

the bot could echo comments on the pull request pages back and forth. that would allow the contributor and the upstream team to talk without breaking anonymity.

Notify author when PR gets merged

The author currently does not get pinged when/if the anonymous pull request gets merged on the upstream repo.

Maybe closing the pull request is a good idea.

commits don't get added

the bot could add commits to its branch whenever the contributor added commits to theirs.

Por favor faça um logo para a gente

O avatar que o bot usa é de uma foto grátis de catálogo. Seria legal ter um logo para o projeto.

O logo precisa idealmente:

  • Lembrar um cachorro
  • Lembrar um robô
  • Passar a idéia de anonimidade

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.