{"action":"created","comment":{"url":"https://api.github.com/repos/django/deps/pulls/comments/235624293","pull_request_review_id":177530487,"id":235624293,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNTYyNDI5Mw==","diff_hunk":"@@ -0,0 +1,542 @@\n+======================\n+DEP XXXX: DEP template\n+======================\n+\n+:DEP: XXXX\n+:Author: James Bennett\n+:Implementation Team: James Bennett, others to be determined\n+:Shepherd: Aymeric Augustin\n+:Status: Draft\n+:Type: Process\n+:Created: 2018-09-22\n+:Last-Modified: 2018-11-19\n+\n+.. contents:: Table of Contents\n+   :depth: 3\n+   :local:\n+\n+\n+Abstract\n+========\n+\n+This is a proposal to reform the organization of the Django\n+open-source project, by dissolving the current team of committers and\n+replacing it with a new governance model.\n+\n+For clarity, this DEP uses the following terms to refer to existing\n+groups:\n+\n+* \"Django core\": the set of people who have or have had permission to\n+  push to <https://github.com/django/django/>, or who have been\n+  members of the django-core mailing list, the #django-core IRC\n+  channel, or identified as members of \"Django core\" on the\n+  djangoproject.com website.\n+\n+* \"DSF Board\": the Board of Directors of the Django Software\n+  Foundation.\n+\n+* \"Django Fellows\": a list of multiple people who have been, and in\n+  two cases still are, paid by the Django Software Foundation to\n+  perform various tasks, including triaging issues, reviewing and\n+  merging pull requests, and managing Django's releases.\n+\n+This proposal deals only with replacing \"Django core\" as defined\n+above. No other team or group within the Django community is\n+considered here, nor will any other team or group be considered; the\n+scope of this proposal is solely \"Django core\".\n+\n+\n+Specification\n+=============\n+\n+Django core will be dissolved. This would involve:\n+\n+1. Removing push access to <https://github.com/django/django/> from\n+   nearly all people who currently have it.\n+\n+2. Closing the django-core mailing list and the #django-core IRC\n+   channel.\n+\n+3. Ceasing to recognize any special status within the Django\n+   open-source project for people who formerly had push access or were\n+   members of the django-core mailing list or #django-core IRC\n+   channel.\n+\n+In its place, the following model will be adopted for management of\n+Django's code:\n+\n+The Django framework's codebase shall be governed by a new Framework\n+team. The Framework team will be made up of general members, as well\n+as three specialized roles.\n+\n+The full details follow below, but a short description is:\n+\n+* Anyone who joins the django-developers mailing list is a member of\n+  the Framework team, and can take part in discussion, decision-making\n+  and elections.\n+\n+* A new role, Merger, exists and will consist of being responsible for\n+  merging pull requests.\n+\n+* A second new role, Releaser, exists and will consist of being\n+  responsible for issuing new packaged releases of Django.\n+\n+* Decision-making will occur on the django-developers mailing list,\n+  with participation open to anyone. Decisions will be made by voting,\n+  with Mergers keeping track of votes to determine if a consensus\n+  exists toward a particular decision.\n+\n+* A Technical Board, elected by the Framework team, will exist as a\n+  tie-breaker and to provide oversight of the Mergers.\n+\n+\n+New role: Merger\n+----------------\n+\n+In place of the committer, Django will formalize and expand the *de\n+facto* process already in place: the role of the Merger. A Merger is a\n+person who merges pull requests to https://github.com/django/django/.\n+\n+The set of Mergers should be small; the ideal would be between three\n+and five people, in order to spread the workload and avoid\n+over-burdening or burning out any individual Merger. In light of that,\n+the current Django Fellows will become the first set of Mergers, and\n+recruitment shall begin imediately thereafter to bring the number of\n+Mergers up to at least three. It shall not be a requirement that a\n+Merger also be a Django Fellow, but the Django Software Foundation\n+shall have the power to use funding of Fellow positions as a way to\n+make the role of Merger sustainable.\n+\n+\n+New role: Releaser\n+------------------\n+\n+Over its history, the Django project has granted various people\n+permission to issue packaged releases of Django. At present five\n+people have permission to upload releases to the Python Package Index.\n+\n+The role of Releaser will formalize this permission: a Releaser is a\n+person who has the authority (and will be granted the necessary\n+permissions) to upload packaged releases of Django to the Python\n+Package Index, and to djangoproject.com.\n+\n+A person may serve in the role of Releaser and Merger simultaneously.\n+\n+A person who has the role of Releaser will *not* automatically be\n+granted access to push code to <https://github.com/django/django/>.\n+\n+The initial set of Releasers will consist of the Django Fellows, and\n+one additional person chosen by the Technical Board from among those\n+who currently have permission to issue releases of Django. Thereafter,\n+the Technical Board will select Releasers as necessary to maintain\n+their number at three.\n+\n+Releasers will issue new releases of Django under the following\n+circumstances, using the terminology for releases outlined at\n+<https://docs.djangoproject.com/en/dev/internals/release-process/>:\n+\n+* Scheduled patch releases of supported versions of Django, on or\n+  about the first day of each calendar month, unless directed to wait\n+  by the Technical Board.\n+\n+* Security releases, at the request of the Django security team.\n+\n+* Feature releases, at the request of the Technical Board.\n+\n+* Alpha and beta releases at scheduled times to be determined by the\n+  Framework team.\n+\n+* Release candidate releases at scheduled times to be determined by\n+  the Technical Board.\n+\n+\n+Repurposed role: Technical Board\n+--------------------------------\n+\n+The Framework team shall elect a Technical Board. The mechanics and\n+timing of elections are discussed further below.\n+\n+The Technical Board will provide oversight of the development and\n+release process, take part in filling certain roles, and have a\n+tie-breaking vote when normal decision-making processes fail.\n+\n+The Technical Board will consist of five members, elected from among\n+the membership of the Framework team. To be qualified for election to\n+the Technical Board, a member of the Framework team must demonstrate:\n+\n+* A history of technical contributions to Django. This should involve\n+  some minimum number of merged contributions; at least five, and\n+  probably ten, with the first merged contribution occurring at least\n+  18 months prior to election to the Technical Board.\n+\n+* A history of participation in Django's development outside of\n+  contributions merged to the <https://github.com/django/django/>\n+  repository. This may include, but is not restricted to:\n+  participation in discussions on the django-developers mailing list;\n+  reviewing and offering feedback on pull requests in the Django\n+  source repository; and assisting in triage and management of the\n+  Django bug tracker.\n+\n+\n+How code is added to Django\n+---------------------------\n+\n+Any Merger may, on their own initiative, merge any pull request other\n+than one authored by that Marger. Mergers will be trusted to use their\n+judgment in deciding whether to merge any given pull request.\n+\n+Mergers should, however, wait to merge any pull request which adds a\n+significant new feature or API, or makes significant changes to an\n+existing feature or API, until discussion has occurred on the\n+django-developers mailing list. Any Merger may ask that the author of\n+a pull request begin such a discussion, or a Merger may make the\n+initial post to django-developers, and from that point the pull\n+request shall not be merged until at least one week has elapsed, from\n+the date of the first post in the django-developers thread, for\n+discussion of it.\n+\n+The only other methods for adding code to Django are:\n+\n+* Patches generated by the Django security team for the purpose of\n+  resolving security issues in Django. Once such a patch is signed off\n+  by the security team, it can and shall be merged by a Merger on the\n+  designated disclosure date.\n+\n+* When a release of Django is ready, Mergers may also make such\n+  commits as are necessary to carry out the mechanics of releasing\n+  Django (such as changing version numbers in configuration files,\n+  creating or updating release branches and tags, and so on).\n+\n+\n+The Framework team\n+------------------\n+\n+The process of adding code to Django will be governed by a Framework\n+team. Membership in this team is open to anyone who wants it, and the\n+business of the Framework team will be carried out in public on the\n+django-developers mailing list. Membership in the Framework team shall\n+be conferred automatically upon joining that mailing list.\n+\n+The Framework team shall operate on a consensus model. Whenever any\n+member of the Framework team wishes to get feedback on code, design\n+decisions or other technical proposals, they will post a summary to\n+the django-developers list for discussion. Any member of the Framework\n+team may respond and state their opinions or arguments for or against\n+the proposal, and their vote if they wish to make one. Votes shall be\n+of the form \"+1\" (in favor) or \"-1\" (not in favor). There shall be no\n+explicit \"abstain\", \"0\", \"+0\" or \"-0\" votes. Any member wishing to\n+participate in a discussion without casting a vote may simply do so,\n+with no need to announce an abstention.\n+\n+Mergers may request that a discussion close and any interested members\n+cast their votes; after making such a request, Mergers should wait at\n+least one week before treating the discussion and voting as closed.\n+\n+Mergers shall use the results of votes cast in the discussion as a\n+guide to their actions; their judgment will be trusted in determining\n+whether a consensus has formed for or against.\n+\n+\n+Role of the Technical Board in decision-making\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+The Technical Board will provide oversight of the release\n+process. While some releases (monthly patch releases, and alpha/beta\n+versions of feature releases) will occur on pre-determined schedules,\n+the following release decisions will be made by the Technical Board:\n+\n+* Release candidates for feature releases.\n+\n+* Feature releases.\n+\n+For these, the Mergers and Releasers shall have the prerogative to ask\n+the Technical Board for a determination of release readiness. Any\n+Merger or Releaser may make this request, on the django-developers\n+list. After such a request, the Technical Board shall have one week to\n+make a decision, using the voting process outlined below.\n+\n+The Technical Board shall have the prerogative to set the dates of its\n+own elections, or to fill vacancies in the Technical Board, using the\n+voting process outlined below, but subject to the constraints\n+specified elsewhere in this document on eligibility, the selection\n+process, and the frequency of elections.\n+\n+The Technical Board shall also appoint Releasers as needed to fill\n+vacancies in that role, using the voting process outlined\n+below. Nominations to fill the role of Releaser can be suggested by\n+any member of the Framework team, but only formally put to the\n+Technical Board by a member of the Technical Board.\n+\n+Once a process for selecting Mergers has been determined, the\n+Technical Board may participate in that process as needed, including\n+voting using the process outlined below.\n+\n+The Technical Board shall also act as a tie-breaker in the event that\n+a discussion of the Framework team fails to achieve consensus. If any\n+member of the Framework team feels productive discussion of a topic\n+has been exhausted without achieving consensus, they may request a\n+decision of the Technical Board. The Technical Board may, at its\n+discretion, decline and encourage further discussion, or may accept\n+the issue and make a decision using the voting process outlined below.\n+\n+\n+Voting process of the Technical Board\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+When a vote of the Technical Board is required, they shall use the\n+following process:\n+\n+1. Each member of the Technical Board shall have, from the time a\n+   question is put to them, one week to review the question and vote.\n+\n+2. Votes shall be made in public, on the django-developers mailing\n+   list.\n+\n+3. Each vote shall be of the form \"+1\" (in favor) or \"-1\" (not in\n+   favor). Each member should also provide, along with their vote,\n+   their rationale for voting as they did.\n+\n+4. Once sufficient votes in either direction have been cast to form a\n+   majority of the Technical Board, a call will be made for the\n+   remaining memebers to cast their votes. They shall have until the\n+   normal close of voting (one week from the question being put to the\n+   Technical Board) in which to do so).\n+\n+5. If the voting period closes without all members of the Technical\n+   Board having voted, but with a majority of the members voting for\n+   one of the options, that shall be the result of the vote.\n+\n+6. If the voting period closes without all members of the Technical\n+   Board having voted, and no option won a majority of the votes cast,\n+   the voting period shall be extended one week. This process shall\n+   repeat until one of the options receives the endorsement of a\n+   majority of members of the Technical Board.\n+\n+Votes of the Technical Board are binding. All members of the Framework\n+team, including all Mergers and Releasers, are expected to abide by\n+these decisions.\n+\n+Members of the Framework team may request that the Technical Board\n+revisit or reconsider a prior question, but not until at least six\n+months have elapsed since the time of the Technical Board's vote on\n+that question.\n+\n+Members of the Technical Board may request that the Technical Board\n+revisit a prior question at any time, but the Technical Board may\n+refuse the request.\n+\n+\n+Process of selecting Mergers\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+As noted above, the initial set of Mergers will be the current Django\n+Fellows. The Framework team shall then work to select at least one\n+additional Merger, and shall at all times attempt to maintain a roster\n+of at least three Mergers.\n+\n+Upon adoption of this proposal, the initial set of Mergers, and the\n+Technical Board, shall work together to design a process for selecting\n+future Mergers, and prior to adoption of that process, shall post it\n+to the django-developers mailing list for feedback and voting. The\n+consensus model described above will be used to determine whether to\n+adopt the process, but in the event of no clear consensus the result\n+shall be that the process is not adopted, and a new process shall be\n+drafted taking into account the feedback obtained from discussion.\n+\n+Whatever process is adopted, no person shall simultaneously serve as a\n+Merger and as a member of the Technical Board.\n+\n+Mergers may resign their role at any time, but are encouraged to\n+provide some advance notice in order to allow the selection of a\n+replacement. Termination of the contract of a Django Fellow by the\n+Django Software Foundation will temporarily suspend a Merger's role\n+until such time as the Technical Board can convene to determine a\n+course of action; they may, by majority vote, choose to retain the\n+Merger in that role, or to remove the Merger.\n+\n+Otherwise, a Merger may only be removed by:\n+\n+* Becoming disqualified due to election to the Technical Board, or\n+\n+* Becoming disqualified due to actions taken by the Code of Conduct\n+  committee of the Django Software Foundation, or\n+\n+* By a unanimous vote of the Technical Board.\n+\n+\n+Process of selecting Releasers\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+As noted above, the initial set of Releasers will be the current\n+Django Fellows, plus one additional person, chosen by the Technical\n+Board, from among those people who currently have permission to issue\n+releases of Django.\n+\n+Releasers may resign their role at any time, but are encouraged to\n+provide some advance notice in order to allow the selection of a\n+replacement. When a vacancy occurs among the Releasers, it shall be\n+filled by a decision of the Technical Board, using the voting process\n+outlined above.\n+\n+Termination of the contract of a Django Fellow by the Django Software\n+Foundation will temporarily suspend a Releaser's role until such time\n+as the Technical Board can convene to determine a course of action;\n+they may, by majority vote, choose to retain the Releaser in that\n+role, or to remove the Releaser.\n+\n+Otherwise, a Releaser may only be removed by:\n+\n+* Becoming disqualified due to actions taken by the Code of Conduct\n+  committee of the Django Software Foundation, or\n+\n+* By a unanimous vote of the Technical Board.\n+\n+\n+Process of selecting the Technical Board\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+The initial Technical Board shall be made up of the final technical\n+board elected by the dissolved Django core. They shall consult with\n+the Framework team membership, and then decide whether to call an\n+election immediately, or wait until the next scheduled election (see\n+below for how often Technical Board elections shall occur).\n+\n+Members of the Framework team are not required to vote in elections\n+for the Technical Board, but any member of the Framework team may vote\n+in any election. Although the Technical Board is subject to certain\n+qualifications, no history of technical contributions to Django shall\n+be required of voters.\n+\n+The DSF Board will act as a neutral arbiter and judge of technical\n+board elections. Members of the DSF Board can stand for election to\n+the Technical Board if qualified, but any DSF Board member who is a\n+current member of the Technical Board or a candidate in an upcoming\n+election shall be required to abstain from taking part in the DSF\n+Board's oversight of that Technical Board election. The DSF Board\n+shall have the authority to delegate aspects of its oversight\n+responsibilities (such as the technical details of constructing\n+registration and voting forms) if it chooses to do so, but only the\n+DSF Board may ratify the results of a Technical Board election.\n+\n+The process of electing a Technical Board shall be as follows:\n+\n+1. The existing Technical Board will post to the django-developers\n+   mailing list to announce an election.\n+\n+2. As soon as the election is announced, registration of voters will\n+   open. Any member of the Framework team may register to vote in the\n+   election; members must register for each election in which they\n+   wish to participate. The registration form and roll of voters will\n+   be overseen by the DSF Board. The DSF Board may challenge and\n+   reject the registration of voters it believes are registering in\n+   bad faith.\n+\n+3. Registration of voters will close two weeks after the announcement\n+   of the election. At that point, registration of candidates will\n+   begin. Any qualified member of the Framework team may register as a\n+   candidate; the candidate registration form and roster of candidates\n+   will be overseen by the DSF Board, and candidates will be required\n+   to provide evidence of their qualifications as part of\n+   registration. The DSF Board may challenge and reject the\n+   registration of candidates it believes do not meet the\n+   qualifications of members of the Technical Board.\n+\n+4. Registration of candidates will close two weeks after it has\n+   opened. One week after registration of candidates closes, the\n+   roster of candidates will be posted to the django-developers\n+   mailing list, and the election will begin. The DSF Board will\n+   provide a voting form accessible to registered voters, and shall be\n+   the custodian of the votes.\n+\n+5. The election will end one week after it begins. The DSF Board shall\n+   tally the votes and produce a summary, including the total number\n+   of votes cast and the number received by each candidate. This\n+   summary shall be ratified by a majority vote of the DSF Board, then\n+   posted to the django-developers mailing list. The five candidates\n+   with the highest vote totals will then become the new Framework\n+   team Technical Board.\n+\n+Django's release cycle currently consists of a major series with three\n+minor releases. For example, the 2.x major series will include the\n+minor releases 2.0, 2.1 and 2.2, after which the 3.x major series will\n+begin.\n+\n+At least one election of the Technical Board must occur for each major\n+series. If the final minor release of a major series is issued, and no\n+election has yet taken place, an election shall automatically be\n+triggered. The Technical Board may, at its discretion, choose to run\n+elections more often, but not more often than once per minor release.\n+\n+In the event a member of the Technical Board is temporarily unable to\n+serve, the Technical Board will continue to carry out its duties\n+unless it would be reduced to fewer than three active members; in that\n+case, the Technical Board may, by majority vote, appoint a person (who\n+is otherwise qualified for the Technical Board) to serve until such\n+time as at least three elected members are able to serve again, or the\n+next election is held.\n+\n+Members of the Technical Board cannot be removed from the technical\n+board once elected, unless it is determined by a unanimous vote of the\n+other Technical Board members and the DSF Board that they did not\n+possess the appropriate qualifications for the Technical Board, or\n+they become disqualified due to actions taken by the Code of Conduct\n+committee of the Django Software Foundation.\n+\n+\n+Motivation\n+==========\n+\n+The state of Django core is, at best, stagnant. New members are added\n+at a very slow rate, and most existing members rarely if ever make use\n+of their ability to push code to Django. Furthermore, the current\n+state of Django's codebase seems not to be amenable to ongoing\n+recruitment of new members to Django core; several people have\n+expressed the opinion (or variations on it) that most of the types of\n+issues traditionally used as an entry route to core are now resolved,\n+and it's unclear what the path to core membership would look like\n+without such issues as a route to familiarity with contributing to\n+Django.\n+\n+There is also a serious, ongoing lack of diversity in Django core, and\n+no clear path to addressing it. The changes proposed here are not\n+sufficient to resolve this, but some type of change along these lines\n+is likely a necessary step toward other initiatives which could\n+resolve it.\n+\n+The primary goal of this proposal is to remove the perceived status\n+associated with being able to push code to the primary Django\n+source-code repository, and to re-frame the ability to push code to\n+that repository as more of a bureaucratic role which carries with it\n+no special privileges or status of any sort.","path":"draft/XXXX-dissolve-core.rst","position":510,"original_position":510,"commit_id":"dc92940bcf6746c6438a8058493b4a4a841b4b4c","original_commit_id":"dc92940bcf6746c6438a8058493b4a4a841b4b4c","user":{"login":"claudep","id":143192,"node_id":"MDQ6VXNlcjE0MzE5Mg==","avatar_url":"https://avatars2.githubusercontent.com/u/143192?v=4","gravatar_id":"","url":"https://api.github.com/users/claudep","html_url":"https://github.com/claudep","followers_url":"https://api.github.com/users/claudep/followers","following_url":"https://api.github.com/users/claudep/following{/other_user}","gists_url":"https://api.github.com/users/claudep/gists{/gist_id}","starred_url":"https://api.github.com/users/claudep/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claudep/subscriptions","organizations_url":"https://api.github.com/users/claudep/orgs","repos_url":"https://api.github.com/users/claudep/repos","events_url":"https://api.github.com/users/claudep/events{/privacy}","received_events_url":"https://api.github.com/users/claudep/received_events","type":"User","site_admin":false},"body":"Just wanted to say that I couldn't agree more with Shai's position here. I don't see how eradicating any visible merit in the community will drive the project forward. I litterally spent months of free time on this project. I didn't do it for any celebrity position in the first place, but just wiping away any recognized value in that work could be interpreted as an insult for me and those having contributed a lot.","created_at":"2018-11-22T07:36:47Z","updated_at":"2018-11-22T07:36:47Z","html_url":"https://github.com/django/deps/pull/47#discussion_r235624293","pull_request_url":"https://api.github.com/repos/django/deps/pulls/47","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/django/deps/pulls/comments/235624293"},"html":{"href":"https://github.com/django/deps/pull/47#discussion_r235624293"},"pull_request":{"href":"https://api.github.com/repos/django/deps/pulls/47"}},"in_reply_to_id":235160004},"pull_request":{"url":"https://api.github.com/repos/django/deps/pulls/47","id":217481145,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE3NDgxMTQ1","html_url":"https://github.com/django/deps/pull/47","diff_url":"https://github.com/django/deps/pull/47.diff","patch_url":"https://github.com/django/deps/pull/47.patch","issue_url":"https://api.github.com/repos/django/deps/issues/47","number":47,"state":"open","locked":false,"title":"Add draft DEP dissolving Django core.","user":{"login":"ubernostrum","id":12384,"node_id":"MDQ6VXNlcjEyMzg0","avatar_url":"https://avatars0.githubusercontent.com/u/12384?v=4","gravatar_id":"","url":"https://api.github.com/users/ubernostrum","html_url":"https://github.com/ubernostrum","followers_url":"https://api.github.com/users/ubernostrum/followers","following_url":"https://api.github.com/users/ubernostrum/following{/other_user}","gists_url":"https://api.github.com/users/ubernostrum/gists{/gist_id}","starred_url":"https://api.github.com/users/ubernostrum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ubernostrum/subscriptions","organizations_url":"https://api.github.com/users/ubernostrum/orgs","repos_url":"https://api.github.com/users/ubernostrum/repos","events_url":"https://api.github.com/users/ubernostrum/events{/privacy}","received_events_url":"https://api.github.com/users/ubernostrum/received_events","type":"User","site_admin":false},"body":"Discussion has been taking place in the django-core and dsf-members mailing lists; refer there for background.","created_at":"2018-09-22T22:12:58Z","updated_at":"2018-11-22T07:36:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"027bb4183bc0316c9f7ae06ba6e984f8338dd5ca","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/django/deps/pulls/47/commits","review_comments_url":"https://api.github.com/repos/django/deps/pulls/47/comments","review_comment_url":"https://api.github.com/repos/django/deps/pulls/comments{/number}","comments_url":"https://api.github.com/repos/django/deps/issues/47/comments","statuses_url":"https://api.github.com/repos/django/deps/statuses/dc92940bcf6746c6438a8058493b4a4a841b4b4c","head":{"label":"ubernostrum:draft-dissolve-core","ref":"draft-dissolve-core","sha":"dc92940bcf6746c6438a8058493b4a4a841b4b4c","user":{"login":"ubernostrum","id":12384,"node_id":"MDQ6VXNlcjEyMzg0","avatar_url":"https://avatars0.githubusercontent.com/u/12384?v=4","gravatar_id":"","url":"https://api.github.com/users/ubernostrum","html_url":"https://github.com/ubernostrum","followers_url":"https://api.github.com/users/ubernostrum/followers","following_url":"https://api.github.com/users/ubernostrum/following{/other_user}","gists_url":"https://api.github.com/users/ubernostrum/gists{/gist_id}","starred_url":"https://api.github.com/users/ubernostrum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ubernostrum/subscriptions","organizations_url":"https://api.github.com/users/ubernostrum/orgs","repos_url":"https://api.github.com/users/ubernostrum/repos","events_url":"https://api.github.com/users/ubernostrum/events{/privacy}","received_events_url":"https://api.github.com/users/ubernostrum/received_events","type":"User","site_admin":false},"repo":{"id":149924208,"node_id":"MDEwOlJlcG9zaXRvcnkxNDk5MjQyMDg=","name":"deps","full_name":"ubernostrum/deps","private":false,"owner":{"login":"ubernostrum","id":12384,"node_id":"MDQ6VXNlcjEyMzg0","avatar_url":"https://avatars0.githubusercontent.com/u/12384?v=4","gravatar_id":"","url":"https://api.github.com/users/ubernostrum","html_url":"https://github.com/ubernostrum","followers_url":"https://api.github.com/users/ubernostrum/followers","following_url":"https://api.github.com/users/ubernostrum/following{/other_user}","gists_url":"https://api.github.com/users/ubernostrum/gists{/gist_id}","starred_url":"https://api.github.com/users/ubernostrum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ubernostrum/subscriptions","organizations_url":"https://api.github.com/users/ubernostrum/orgs","repos_url":"https://api.github.com/users/ubernostrum/repos","events_url":"https://api.github.com/users/ubernostrum/events{/privacy}","received_events_url":"https://api.github.com/users/ubernostrum/received_events","type":"User","site_admin":false},"html_url":"https://github.com/ubernostrum/deps","description":"Django Enhancement Proposals","fork":true,"url":"https://api.github.com/repos/ubernostrum/deps","forks_url":"https://api.github.com/repos/ubernostrum/deps/forks","keys_url":"https://api.github.com/repos/ubernostrum/deps/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ubernostrum/deps/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ubernostrum/deps/teams","hooks_url":"https://api.github.com/repos/ubernostrum/deps/hooks","issue_events_url":"https://api.github.com/repos/ubernostrum/deps/issues/events{/number}","events_url":"https://api.github.com/repos/ubernostrum/deps/events","assignees_url":"https://api.github.com/repos/ubernostrum/deps/assignees{/user}","branches_url":"https://api.github.com/repos/ubernostrum/deps/branches{/branch}","tags_url":"https://api.github.com/repos/ubernostrum/deps/tags","blobs_url":"https://api.github.com/repos/ubernostrum/deps/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ubernostrum/deps/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ubernostrum/deps/git/refs{/sha}","trees_url":"https://api.github.com/repos/ubernostrum/deps/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ubernostrum/deps/statuses/{sha}","languages_url":"https://api.github.com/repos/ubernostrum/deps/languages","stargazers_url":"https://api.github.com/repos/ubernostrum/deps/stargazers","contributors_url":"https://api.github.com/repos/ubernostrum/deps/contributors","subscribers_url":"https://api.github.com/repos/ubernostrum/deps/subscribers","subscription_url":"https://api.github.com/repos/ubernostrum/deps/subscription","commits_url":"https://api.github.com/repos/ubernostrum/deps/commits{/sha}","git_commits_url":"https://api.github.com/repos/ubernostrum/deps/git/commits{/sha}","comments_url":"https://api.github.com/repos/ubernostrum/deps/comments{/number}","issue_comment_url":"https://api.github.com/repos/ubernostrum/deps/issues/comments{/number}","contents_url":"https://api.github.com/repos/ubernostrum/deps/contents/{+path}","compare_url":"https://api.github.com/repos/ubernostrum/deps/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ubernostrum/deps/merges","archive_url":"https://api.github.com/repos/ubernostrum/deps/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ubernostrum/deps/downloads","issues_url":"https://api.github.com/repos/ubernostrum/deps/issues{/number}","pulls_url":"https://api.github.com/repos/ubernostrum/deps/pulls{/number}","milestones_url":"https://api.github.com/repos/ubernostrum/deps/milestones{/number}","notifications_url":"https://api.github.com/repos/ubernostrum/deps/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ubernostrum/deps/labels{/name}","releases_url":"https://api.github.com/repos/ubernostrum/deps/releases{/id}","deployments_url":"https://api.github.com/repos/ubernostrum/deps/deployments","created_at":"2018-09-22T21:58:40Z","updated_at":"2018-09-22T21:58:42Z","pushed_at":"2018-11-20T05:02:14Z","git_url":"git://github.com/ubernostrum/deps.git","ssh_url":"git@github.com:ubernostrum/deps.git","clone_url":"https://github.com/ubernostrum/deps.git","svn_url":"https://github.com/ubernostrum/deps","homepage":null,"size":206,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"django:master","ref":"master","sha":"414f5cb68277c499dbc080481de318afc4c005f8","user":{"login":"django","id":27804,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3ODA0","avatar_url":"https://avatars2.githubusercontent.com/u/27804?v=4","gravatar_id":"","url":"https://api.github.com/users/django","html_url":"https://github.com/django","followers_url":"https://api.github.com/users/django/followers","following_url":"https://api.github.com/users/django/following{/other_user}","gists_url":"https://api.github.com/users/django/gists{/gist_id}","starred_url":"https://api.github.com/users/django/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/django/subscriptions","organizations_url":"https://api.github.com/users/django/orgs","repos_url":"https://api.github.com/users/django/repos","events_url":"https://api.github.com/users/django/events{/privacy}","received_events_url":"https://api.github.com/users/django/received_events","type":"Organization","site_admin":false},"repo":{"id":18764735,"node_id":"MDEwOlJlcG9zaXRvcnkxODc2NDczNQ==","name":"deps","full_name":"django/deps","private":false,"owner":{"login":"django","id":27804,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3ODA0","avatar_url":"https://avatars2.githubusercontent.com/u/27804?v=4","gravatar_id":"","url":"https://api.github.com/users/django","html_url":"https://github.com/django","followers_url":"https://api.github.com/users/django/followers","following_url":"https://api.github.com/users/django/following{/other_user}","gists_url":"https://api.github.com/users/django/gists{/gist_id}","starred_url":"https://api.github.com/users/django/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/django/subscriptions","organizations_url":"https://api.github.com/users/django/orgs","repos_url":"https://api.github.com/users/django/repos","events_url":"https://api.github.com/users/django/events{/privacy}","received_events_url":"https://api.github.com/users/django/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/django/deps","description":"Django Enhancement Proposals","fork":false,"url":"https://api.github.com/repos/django/deps","forks_url":"https://api.github.com/repos/django/deps/forks","keys_url":"https://api.github.com/repos/django/deps/keys{/key_id}","collaborators_url":"https://api.github.com/repos/django/deps/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/django/deps/teams","hooks_url":"https://api.github.com/repos/django/deps/hooks","issue_events_url":"https://api.github.com/repos/django/deps/issues/events{/number}","events_url":"https://api.github.com/repos/django/deps/events","assignees_url":"https://api.github.com/repos/django/deps/assignees{/user}","branches_url":"https://api.github.com/repos/django/deps/branches{/branch}","tags_url":"https://api.github.com/repos/django/deps/tags","blobs_url":"https://api.github.com/repos/django/deps/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/django/deps/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/django/deps/git/refs{/sha}","trees_url":"https://api.github.com/repos/django/deps/git/trees{/sha}","statuses_url":"https://api.github.com/repos/django/deps/statuses/{sha}","languages_url":"https://api.github.com/repos/django/deps/languages","stargazers_url":"https://api.github.com/repos/django/deps/stargazers","contributors_url":"https://api.github.com/repos/django/deps/contributors","subscribers_url":"https://api.github.com/repos/django/deps/subscribers","subscription_url":"https://api.github.com/repos/django/deps/subscription","commits_url":"https://api.github.com/repos/django/deps/commits{/sha}","git_commits_url":"https://api.github.com/repos/django/deps/git/commits{/sha}","comments_url":"https://api.github.com/repos/django/deps/comments{/number}","issue_comment_url":"https://api.github.com/repos/django/deps/issues/comments{/number}","contents_url":"https://api.github.com/repos/django/deps/contents/{+path}","compare_url":"https://api.github.com/repos/django/deps/compare/{base}...{head}","merges_url":"https://api.github.com/repos/django/deps/merges","archive_url":"https://api.github.com/repos/django/deps/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/django/deps/downloads","issues_url":"https://api.github.com/repos/django/deps/issues{/number}","pulls_url":"https://api.github.com/repos/django/deps/pulls{/number}","milestones_url":"https://api.github.com/repos/django/deps/milestones{/number}","notifications_url":"https://api.github.com/repos/django/deps/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/django/deps/labels{/name}","releases_url":"https://api.github.com/repos/django/deps/releases{/id}","deployments_url":"https://api.github.com/repos/django/deps/deployments","created_at":"2014-04-14T14:59:32Z","updated_at":"2018-11-21T08:19:26Z","pushed_at":"2018-11-20T05:02:16Z","git_url":"git://github.com/django/deps.git","ssh_url":"git@github.com:django/deps.git","clone_url":"https://github.com/django/deps.git","svn_url":"https://github.com/django/deps","homepage":null,"size":192,"stargazers_count":247,"watchers_count":247,"language":null,"has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":52,"mirror_url":null,"archived":false,"open_issues_count":5,"license":null,"forks":52,"open_issues":5,"watchers":247,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/django/deps/pulls/47"},"html":{"href":"https://github.com/django/deps/pull/47"},"issue":{"href":"https://api.github.com/repos/django/deps/issues/47"},"comments":{"href":"https://api.github.com/repos/django/deps/issues/47/comments"},"review_comments":{"href":"https://api.github.com/repos/django/deps/pulls/47/comments"},"review_comment":{"href":"https://api.github.com/repos/django/deps/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/django/deps/pulls/47/commits"},"statuses":{"href":"https://api.github.com/repos/django/deps/statuses/dc92940bcf6746c6438a8058493b4a4a841b4b4c"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"claudep"}}