Title: GitHub's Permission System is Flawed · Issue #113 · dear-github/dear-github · GitHub
Open Graph Title: GitHub's Permission System is Flawed · Issue #113 · dear-github/dear-github
X Title: GitHub's Permission System is Flawed · Issue #113 · dear-github/dear-github
Description: This is an open letter to @github on behalf of third-party app developers. For a very long time, permission scopes has been a common issue for both users and app developers. These scopes are extremely permissive and far too broad, preven...
Open Graph Description: This is an open letter to @github on behalf of third-party app developers. For a very long time, permission scopes has been a common issue for both users and app developers. These scopes are extrem...
X Description: This is an open letter to @github on behalf of third-party app developers. For a very long time, permission scopes has been a common issue for both users and app developers. These scopes are extrem...
Opengraph URL: https://github.com/dear-github/dear-github/issues/113
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"GitHub's Permission System is Flawed","articleBody":"_This is an open letter to @GitHub on behalf of third-party app developers._\n\nFor a very long time, [permission scopes](https://developer.github.com/v3/oauth/#scopes) has been a common issue for both users and app developers. \nThese scopes are extremely permissive and far too broad, preventing users from using third-party applications.\n\nWe need a more granular permission system and we hope you listen to this.\n\nBelow you can find some examples that describes exactly what we mean by how flawed the system is and some suggestions to improve it.\n\n---\n###### `gist` scope\n\n\u003e _Grants write access to gists._\n\nLet's say you want to build an app like [GistBox](http://gistboxapp.com) to organize gists. In order to read **read private gists** you would need to request the `gist` scope.\n\nHere's what users would see:\n\n\u003cimg width=\"425\" alt=\"gist\" src=\"https://cloud.githubusercontent.com/assets/398893/12970272/538a35a8-d041-11e5-9332-242d9f5b7da1.png\"\u003e\n\nEven if you don't want to create any gists, you still need to request write access. Some users may find that ok, but other users can be afraid of having someone creating or editing their precious code snippets.\n\n**Solution:** what if we had `read_public:gist`, `read_private:gist`, `write_public:gist`, and `write_private:gist` instead?\n\n---\n###### `public_repo` scope\n\n\u003e _Grants read/write access to code, commit statuses, collaborators, and deployment statuses for public repositories and organizations. Also required for starring public repositories._\n\nAnother example: let's say you want to create an app like [Waffle](https://waffle.io/), [HuBoard](https://huboard.com/), or [ZenHub](https://www.zenhub.io/) to manage your issues. In order to have a basic functionality like **creating issues on public repositories**, you would need to request the `public_repo` scope.\n\nHere's what users would see:\n\n\u003cimg width=\"425\" alt=\"public repo\" src=\"https://cloud.githubusercontent.com/assets/398893/12969874/ae303ce2-d03b-11e5-8540-2075d7fbaa1a.png\"\u003e\n\nNote how broad this permission is. These apps have no interest on wikis, deploy keys, webhooks, or anything like that. But still, that's the only way to go.\n\n**Solution:** what if we had `read_public:repo_code`, `read_public:repo_issues`, and `write_public:repo_stars` instead?\n\n---\n###### `repo` scope\n\n\u003e _Grants read/write access to code, commit statuses, collaborators, and deployment statuses for public and private repositories and organizations._\n\nFinally, the issue I'm personally facing right now. Let's say you want to build an app like [DevSpace](https://devspace.io/) to **read public and private events**. For this we'd have to use the `repo` scope.\n\nHere's what users would see:\n\n\u003cimg width=\"429\" alt=\"private repo\" src=\"https://cloud.githubusercontent.com/assets/398893/12969880/c9214b22-d03b-11e5-80d9-7691f41b2096.png\"\u003e\n\nThis is probably the most shocking permission scope. Even though we don't want to write anything we'd still need to request a permission that can change code, issues, and many other important things from private repos.\n\n**Solution:** what if we had `read_public:events_repo`, `read_private:events_repo`, `read_public:events_org`, and `read_private:events_org` instead?\n\n---\n\nYou see, those are just few examples, there are many other apps facing the same issue:\n- https://github.com/ZenHubIO/support/issues/77\n- https://github.com/waffleio/waffle.io/issues/1957\n- https://github.com/huboard/huboard/issues/203\n- https://github.com/huboard/huboard/issues/468\n- https://github.com/astralapp/astral/issues/1\n- https://github.com/astralapp/astral/issues/11\n- https://github.com/mozillascience/site/issues/11\n- https://github.com/jollygoodcode/jollygoodcode.github.io/issues/6\n- https://github.com/thoughtbot/hound/issues/925\n- https://github.com/bkeepers/github-notifications/issues/146\n- https://github.com/holman/ama/issues/635\n- https://github.com/isaacs/github/issues/268\n- https://github.com/isaacs/github/issues/311\n- https://github.com/isaacs/github/issues/31\n- https://twitter.com/iandees/status/692855774645604359\n- https://twitter.com/jasontrill/status/690813850350854144\n- https://twitter.com/omarqureshi/status/655148749019303936\n- https://twitter.com/YAMPST/status/623204972029734914\n- https://twitter.com/codingjester/status/613019497549705217\n- http://blog.waffle.io/updated-permissions/\n- https://gitter.zendesk.com/hc/en-us/articles/200176672-Authenticating-with-GitHub\n- https://blog.outlearn.com/shortcomings-of-github-oauth-for-multiple-scope-permission-levels-d4e959d2c6fe\n\n---\n\n@syropian, @ashumz, @acroca, @drusellers, @burtonjc, @pierrebeugnot, @rauhryan, @homeyer, @sxgao3001, @marydavis, @nparsons08, @zhangchiqing, @wbeard, @jamie, @diophore, @glenngillen, @troy, @winston do you agree?\n\n---\n\nI love GitHub and I hope this discussion contributes back to their product. There's a lot of potential on this community and I believe we can make a change.\n","author":{"url":"https://github.com/zenorocha","@type":"Person","name":"zenorocha"},"datePublished":"2016-02-11T07:32:10.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":101},"url":"https://github.com/113/dear-github/issues/113"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:942631b0-7cc5-c406-7638-495473e39158 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 817A:1DD20D:A67424:E0EFD4:6A5A8C53 |
| html-safe-nonce | 7b6cd5f5464f8bef97991abb52f1f61eb11314dcf632f0bf38928c73bdd1f38d |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MTdBOjFERDIwRDpBNjc0MjQ6RTBFRkQ0OjZBNUE4QzUzIiwidmlzaXRvcl9pZCI6IjE0NzU0MDYzNTk4NTIzODc0MTEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 7d65f95be35bff9a8b24e6979a5aaa616b45d9e17d578c9c34fd4d6cc9ba20db |
| hovercard-subject-tag | issue:132907872 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/dear-github/dear-github/113/issue_layout |
| twitter:image | https://opengraph.githubassets.com/03c44e9d2ef3192d783714973084d2e5880d85ad7a0f012f3b8dfecfd848ae95/dear-github/dear-github/issues/113 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/03c44e9d2ef3192d783714973084d2e5880d85ad7a0f012f3b8dfecfd848ae95/dear-github/dear-github/issues/113 |
| og:image:alt | This is an open letter to @github on behalf of third-party app developers. For a very long time, permission scopes has been a common issue for both users and app developers. These scopes are extrem... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | zenorocha |
| hostname | github.com |
| expected-hostname | github.com |
| None | 9989a1a1d89aa5a38a19e5d0c7ee88a8ffde84acde90048990492aae52f235db |
| turbo-cache-control | no-preview |
| go-import | github.com/dear-github/dear-github git https://github.com/dear-github/dear-github.git |
| octolytics-dimension-user_id | 16708458 |
| octolytics-dimension-user_login | dear-github |
| octolytics-dimension-repository_id | 49668250 |
| octolytics-dimension-repository_nwo | dear-github/dear-github |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 49668250 |
| octolytics-dimension-repository_network_root_nwo | dear-github/dear-github |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | ba6769fbf719c56dbf7bed650ce454dafc5b1528 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width