{"action":"created","comment":{"url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/comments/177961981","pull_request_review_id":107934959,"id":177961981,"diff_hunk":"@@ -0,0 +1,105 @@\n+from rest_framework import serializers\n+\n+from .models import Reply\n+\n+\n+class FlatReplySerializer(serializers.ModelSerializer):\n+    \"\"\"\n+    返回一个扁平化的按发表时间倒序排序的 reply 列表，无视其层级关系。\n+    适合用在 user 详情页面的个人回复列表中。\n+    \"\"\"\n+    # TODO: 应该返回被回复帖子的 hyperlink，用户点击帖子标题后就跳转到帖子页面的回复处\n+    # TODO: 应该返父回复用户的 hyperlink，用户点击昵称后跳转到该用户的详情页\n+    # TODO：等帖子和用户的 API 确定后再修改\n+    post_title = serializers.SerializerMethodField(read_only=True)\n+    parent_user = serializers.SerializerMethodField(read_only=True)\n+\n+    # TODO: 统一到 user 中，等待 UserSerializer 的定义\n+    # 获取用户头像报 Unicode 编码错误\n+    # user_mugshot = serializers.SerializerMethodField(read_only=True)\n+    user_nickname = serializers.SerializerMethodField(read_only=True)\n+\n+    class Meta:\n+        model = Reply\n+        fields = (\n+            # 'user_mugshot',\n+            'user_nickname',\n+            'post_title',\n+            'submit_date',\n+            'comment',\n+            'parent_user',\n+        )\n+\n+    def get_post_title(self, obj):\n+        return obj.content_object.title\n+\n+    def get_parent_user(self, obj):\n+        if obj.parent:\n+            return obj.parent.user.nickname\n+        return None\n+\n+    def get_user_mugshot(self, obj):\n+        return obj.user.mugshot\n+\n+    def get_user_nickname(self, obj):\n+        return obj.user.nickname","path":"replies/serializers.py","position":48,"original_position":45,"commit_id":"9c01385858dbc558fb8bcc3617d9f28013f1a498","original_commit_id":"01421c90cc5c6c3ed7b4e250299437c6cef3e46e","user":{"login":"zmrenwu","id":13174219,"avatar_url":"https://avatars2.githubusercontent.com/u/13174219?v=4","gravatar_id":"","url":"https://api.github.com/users/zmrenwu","html_url":"https://github.com/zmrenwu","followers_url":"https://api.github.com/users/zmrenwu/followers","following_url":"https://api.github.com/users/zmrenwu/following{/other_user}","gists_url":"https://api.github.com/users/zmrenwu/gists{/gist_id}","starred_url":"https://api.github.com/users/zmrenwu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zmrenwu/subscriptions","organizations_url":"https://api.github.com/users/zmrenwu/orgs","repos_url":"https://api.github.com/users/zmrenwu/repos","events_url":"https://api.github.com/users/zmrenwu/events{/privacy}","received_events_url":"https://api.github.com/users/zmrenwu/received_events","type":"User","site_admin":false},"body":"嗯，是的是的，之后我换一种实现，这只是临时的，我想的是把user的信息包含到 user 这个字段中，用 UserSerializer","created_at":"2018-03-29T06:19:01Z","updated_at":"2018-03-29T06:19:02Z","html_url":"https://github.com/DjangoChinaOrg/Django-China-API/pull/10#discussion_r177961981","pull_request_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/10","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/comments/177961981"},"html":{"href":"https://github.com/DjangoChinaOrg/Django-China-API/pull/10#discussion_r177961981"},"pull_request":{"href":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/10"}},"in_reply_to_id":177621386},"pull_request":{"url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/10","id":177439197,"html_url":"https://github.com/DjangoChinaOrg/Django-China-API/pull/10","diff_url":"https://github.com/DjangoChinaOrg/Django-China-API/pull/10.diff","patch_url":"https://github.com/DjangoChinaOrg/Django-China-API/pull/10.patch","issue_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues/10","number":10,"state":"open","locked":false,"title":"回复 API","user":{"login":"zmrenwu","id":13174219,"avatar_url":"https://avatars2.githubusercontent.com/u/13174219?v=4","gravatar_id":"","url":"https://api.github.com/users/zmrenwu","html_url":"https://github.com/zmrenwu","followers_url":"https://api.github.com/users/zmrenwu/followers","following_url":"https://api.github.com/users/zmrenwu/following{/other_user}","gists_url":"https://api.github.com/users/zmrenwu/gists{/gist_id}","starred_url":"https://api.github.com/users/zmrenwu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zmrenwu/subscriptions","organizations_url":"https://api.github.com/users/zmrenwu/orgs","repos_url":"https://api.github.com/users/zmrenwu/repos","events_url":"https://api.github.com/users/zmrenwu/events{/privacy}","received_events_url":"https://api.github.com/users/zmrenwu/received_events","type":"User","site_admin":false},"body":"这个 PR 实现了以下功能：\r\n1. 创建回复的 API\r\n2. 获取扁平化的回复列表的 Serializer（各回复间的关系是树状的，子回复通过指向其父回复而构成树状结构，**适合用在获取某个用户的全部回复列表的 API 中**）\r\n3. 获取 2 层回复（根回复及其全部子孙回复，适合用在帖子详情页的回复列表中）\r\n\r\n## API 示例：\r\n\r\n### [New] 回复点赞\r\n终端：[POST] /replies/like/\r\n\r\n数据：\r\n```\r\n{\r\n    \"content_type\": 10,\r\n    \"object_id\": \"26\",\r\n    \"flag\": \"like\"\r\n}\r\n```\r\n返回：\r\n```\r\nHTTP 201 Created\r\nAllow: POST, OPTIONS\r\nContent-Type: application/json\r\nVary: Accept\r\n\r\n{\r\n    \"content_type\": 10,\r\n    \"object_id\": \"26\",\r\n    \"flag\": \"like\"\r\n}\r\n```\r\n\r\n### 创建回复(reply)\r\n终端：[POST] /reply/\r\n\r\n数据：\r\n```\r\n{\r\n    \"content_type\": 9,  # 帖子对应的 content_type id，数据库创建后就会固定不变\r\n    \"object_pk\": \"\",  # 被回复帖子的 id，注意必须是字符串形式\r\n    \"site\": 1,  # 站点 id，固定值为 1\r\n    \"comment\": \"\",  # 评论内容\r\n    \"submit_date\": null,  # 提交时间，若值为 null 则后台自动记录当前时间\r\n    \"ip_address\": null,  # null 或者用户的 ip，必须为字符串\r\n    \"parent\": null  # 如果是回复他人回复，则传入父回复的 id，否则传入 null\r\n}\r\n```\r\n返回：\r\n```\r\nHTTP 201 Created\r\nAllow: POST, OPTIONS\r\nContent-Type: application/json\r\nVary: Accept\r\n\r\n{\r\n    \"content_type\": 9,\r\n    \"object_pk\": \"1\",\r\n    \"site\": 1,\r\n    \"comment\": \"给对方更多\",\r\n    \"submit_date\": \"2018-03-27T23:38:50.095131+08:00\",\r\n    \"ip_address\": null,\r\n    \"parent\": null\r\n}\r\n```\r\n\r\n### 获取扁平化的回复列表序列化数据示例（不对外暴露，仅内部使用）FlatReplySerializer：\r\n```\r\n[\r\n    {\r\n        \"user_nickname\": \"admin\",\r\n        \"post_title\": \"测试帖子\",\r\n        \"submit_date\": \"2018-03-26T23:32:00+08:00\",\r\n        \"comment\": \"fsdfsdfsd\",\r\n        \"parent_user\": null\r\n    },\r\n    {\r\n        \"user_nickname\": \"admin\",\r\n        \"post_title\": \"测试帖子\",\r\n        \"submit_date\": \"2018-03-26T23:33:00+08:00\",\r\n        \"comment\": \"fdsfgsdfsd\",\r\n        \"parent_user\": \"admin\"\r\n    },\r\n    {\r\n        \"user_nickname\": \"admin\",\r\n        \"post_title\": \"测试帖子\",\r\n        \"submit_date\": \"2018-03-26T23:34:00+08:00\",\r\n        \"comment\": \"dasdasdasda\",\r\n        \"parent_user\": \"admin\"\r\n    },\r\n]\r\n```\r\n\r\n### 2 层回复列表序列化数据示例（不对外暴露，仅内部使用） TreeReplySerializer：\r\n\r\n```\r\n[\r\n    {\r\n        \"content_type\": 9,\r\n        \"object_pk\": \"1\",\r\n        \"user_nickname\": \"admin\",\r\n        \"comment\": \"fsdfsdfsd\",\r\n        \"submit_date\": \"2018-03-26T23:32:00+08:00\",\r\n        \"num_descendants\": 4,\r\n        \"descendants\": [\r\n            {\r\n                \"user_nickname\": \"admin\",\r\n                \"post_title\": \"测试帖子\",\r\n                \"submit_date\": \"2018-03-26T23:33:00+08:00\",\r\n                \"comment\": \"fdsfgsdfsd\",\r\n                \"parent_user\": \"admin\"\r\n            },\r\n            {\r\n                \"user_nickname\": \"admin\",\r\n                \"post_title\": \"测试帖子\",\r\n                \"submit_date\": \"2018-03-26T23:34:00+08:00\",\r\n                \"comment\": \"dasdasdasda\",\r\n                \"parent_user\": \"admin\"\r\n            },\r\n        ]\r\n    },\r\n    {\r\n        \"content_type\": 9,\r\n        \"object_pk\": \"1\",\r\n        \"user_nickname\": \"admin\",\r\n        \"comment\": \"dfsafsfsdfsdfsdfsd\",\r\n        \"submit_date\": \"2018-03-26T23:33:00+08:00\",\r\n        \"num_descendants\": 0,\r\n        \"descendants\": []\r\n    }\r\n]\r\n```\r\n\r\n**其它开发者无需关心 reply 的序列化内容，仅仅关注使用正确的 reply 序列化器即可，序列化的数据内容后期可能会调整。**\r\n","created_at":"2018-03-26T13:03:50Z","updated_at":"2018-03-29T06:19:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2edfaea146f9453a52d654a467abd3a5b404a490","assignee":null,"assignees":[],"requested_reviewers":[{"login":"yuyuyuhaoshi","id":19620122,"avatar_url":"https://avatars0.githubusercontent.com/u/19620122?v=4","gravatar_id":"","url":"https://api.github.com/users/yuyuyuhaoshi","html_url":"https://github.com/yuyuyuhaoshi","followers_url":"https://api.github.com/users/yuyuyuhaoshi/followers","following_url":"https://api.github.com/users/yuyuyuhaoshi/following{/other_user}","gists_url":"https://api.github.com/users/yuyuyuhaoshi/gists{/gist_id}","starred_url":"https://api.github.com/users/yuyuyuhaoshi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yuyuyuhaoshi/subscriptions","organizations_url":"https://api.github.com/users/yuyuyuhaoshi/orgs","repos_url":"https://api.github.com/users/yuyuyuhaoshi/repos","events_url":"https://api.github.com/users/yuyuyuhaoshi/events{/privacy}","received_events_url":"https://api.github.com/users/yuyuyuhaoshi/received_events","type":"User","site_admin":false},{"login":"Superb-x","id":20980828,"avatar_url":"https://avatars0.githubusercontent.com/u/20980828?v=4","gravatar_id":"","url":"https://api.github.com/users/Superb-x","html_url":"https://github.com/Superb-x","followers_url":"https://api.github.com/users/Superb-x/followers","following_url":"https://api.github.com/users/Superb-x/following{/other_user}","gists_url":"https://api.github.com/users/Superb-x/gists{/gist_id}","starred_url":"https://api.github.com/users/Superb-x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Superb-x/subscriptions","organizations_url":"https://api.github.com/users/Superb-x/orgs","repos_url":"https://api.github.com/users/Superb-x/repos","events_url":"https://api.github.com/users/Superb-x/events{/privacy}","received_events_url":"https://api.github.com/users/Superb-x/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/10/commits","review_comments_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/10/comments","review_comment_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues/10/comments","statuses_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/statuses/9c01385858dbc558fb8bcc3617d9f28013f1a498","head":{"label":"DjangoChinaOrg:yangxg-replies","ref":"yangxg-replies","sha":"9c01385858dbc558fb8bcc3617d9f28013f1a498","user":{"login":"DjangoChinaOrg","id":35912082,"avatar_url":"https://avatars3.githubusercontent.com/u/35912082?v=4","gravatar_id":"","url":"https://api.github.com/users/DjangoChinaOrg","html_url":"https://github.com/DjangoChinaOrg","followers_url":"https://api.github.com/users/DjangoChinaOrg/followers","following_url":"https://api.github.com/users/DjangoChinaOrg/following{/other_user}","gists_url":"https://api.github.com/users/DjangoChinaOrg/gists{/gist_id}","starred_url":"https://api.github.com/users/DjangoChinaOrg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DjangoChinaOrg/subscriptions","organizations_url":"https://api.github.com/users/DjangoChinaOrg/orgs","repos_url":"https://api.github.com/users/DjangoChinaOrg/repos","events_url":"https://api.github.com/users/DjangoChinaOrg/events{/privacy}","received_events_url":"https://api.github.com/users/DjangoChinaOrg/received_events","type":"Organization","site_admin":false},"repo":{"id":122849421,"name":"Django-China-API","full_name":"DjangoChinaOrg/Django-China-API","owner":{"login":"DjangoChinaOrg","id":35912082,"avatar_url":"https://avatars3.githubusercontent.com/u/35912082?v=4","gravatar_id":"","url":"https://api.github.com/users/DjangoChinaOrg","html_url":"https://github.com/DjangoChinaOrg","followers_url":"https://api.github.com/users/DjangoChinaOrg/followers","following_url":"https://api.github.com/users/DjangoChinaOrg/following{/other_user}","gists_url":"https://api.github.com/users/DjangoChinaOrg/gists{/gist_id}","starred_url":"https://api.github.com/users/DjangoChinaOrg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DjangoChinaOrg/subscriptions","organizations_url":"https://api.github.com/users/DjangoChinaOrg/orgs","repos_url":"https://api.github.com/users/DjangoChinaOrg/repos","events_url":"https://api.github.com/users/DjangoChinaOrg/events{/privacy}","received_events_url":"https://api.github.com/users/DjangoChinaOrg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DjangoChinaOrg/Django-China-API","description":null,"fork":false,"url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API","forks_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/forks","keys_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/teams","hooks_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/hooks","issue_events_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues/events{/number}","events_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/events","assignees_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/assignees{/user}","branches_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/branches{/branch}","tags_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/tags","blobs_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/refs{/sha}","trees_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/statuses/{sha}","languages_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/languages","stargazers_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/stargazers","contributors_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/contributors","subscribers_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/subscribers","subscription_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/subscription","commits_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/commits{/sha}","git_commits_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/commits{/sha}","comments_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/comments{/number}","issue_comment_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues/comments{/number}","contents_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/contents/{+path}","compare_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/merges","archive_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/downloads","issues_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues{/number}","pulls_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls{/number}","milestones_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/milestones{/number}","notifications_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/labels{/name}","releases_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/releases{/id}","deployments_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/deployments","created_at":"2018-02-25T15:37:58Z","updated_at":"2018-03-28T02:53:16Z","pushed_at":"2018-03-28T15:49:22Z","git_url":"git://github.com/DjangoChinaOrg/Django-China-API.git","ssh_url":"git@github.com:DjangoChinaOrg/Django-China-API.git","clone_url":"https://github.com/DjangoChinaOrg/Django-China-API.git","svn_url":"https://github.com/DjangoChinaOrg/Django-China-API","homepage":null,"size":1125,"stargazers_count":30,"watchers_count":30,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":10,"mirror_url":null,"archived":false,"open_issues_count":3,"license":null,"forks":10,"open_issues":3,"watchers":30,"default_branch":"dev"}},"base":{"label":"DjangoChinaOrg:dev","ref":"dev","sha":"cec7bc2bdb980d7aba65b118974c7d7c36fc30a4","user":{"login":"DjangoChinaOrg","id":35912082,"avatar_url":"https://avatars3.githubusercontent.com/u/35912082?v=4","gravatar_id":"","url":"https://api.github.com/users/DjangoChinaOrg","html_url":"https://github.com/DjangoChinaOrg","followers_url":"https://api.github.com/users/DjangoChinaOrg/followers","following_url":"https://api.github.com/users/DjangoChinaOrg/following{/other_user}","gists_url":"https://api.github.com/users/DjangoChinaOrg/gists{/gist_id}","starred_url":"https://api.github.com/users/DjangoChinaOrg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DjangoChinaOrg/subscriptions","organizations_url":"https://api.github.com/users/DjangoChinaOrg/orgs","repos_url":"https://api.github.com/users/DjangoChinaOrg/repos","events_url":"https://api.github.com/users/DjangoChinaOrg/events{/privacy}","received_events_url":"https://api.github.com/users/DjangoChinaOrg/received_events","type":"Organization","site_admin":false},"repo":{"id":122849421,"name":"Django-China-API","full_name":"DjangoChinaOrg/Django-China-API","owner":{"login":"DjangoChinaOrg","id":35912082,"avatar_url":"https://avatars3.githubusercontent.com/u/35912082?v=4","gravatar_id":"","url":"https://api.github.com/users/DjangoChinaOrg","html_url":"https://github.com/DjangoChinaOrg","followers_url":"https://api.github.com/users/DjangoChinaOrg/followers","following_url":"https://api.github.com/users/DjangoChinaOrg/following{/other_user}","gists_url":"https://api.github.com/users/DjangoChinaOrg/gists{/gist_id}","starred_url":"https://api.github.com/users/DjangoChinaOrg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DjangoChinaOrg/subscriptions","organizations_url":"https://api.github.com/users/DjangoChinaOrg/orgs","repos_url":"https://api.github.com/users/DjangoChinaOrg/repos","events_url":"https://api.github.com/users/DjangoChinaOrg/events{/privacy}","received_events_url":"https://api.github.com/users/DjangoChinaOrg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DjangoChinaOrg/Django-China-API","description":null,"fork":false,"url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API","forks_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/forks","keys_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/teams","hooks_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/hooks","issue_events_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues/events{/number}","events_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/events","assignees_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/assignees{/user}","branches_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/branches{/branch}","tags_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/tags","blobs_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/refs{/sha}","trees_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/statuses/{sha}","languages_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/languages","stargazers_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/stargazers","contributors_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/contributors","subscribers_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/subscribers","subscription_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/subscription","commits_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/commits{/sha}","git_commits_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/git/commits{/sha}","comments_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/comments{/number}","issue_comment_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues/comments{/number}","contents_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/contents/{+path}","compare_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/merges","archive_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/downloads","issues_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues{/number}","pulls_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls{/number}","milestones_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/milestones{/number}","notifications_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/labels{/name}","releases_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/releases{/id}","deployments_url":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/deployments","created_at":"2018-02-25T15:37:58Z","updated_at":"2018-03-28T02:53:16Z","pushed_at":"2018-03-28T15:49:22Z","git_url":"git://github.com/DjangoChinaOrg/Django-China-API.git","ssh_url":"git@github.com:DjangoChinaOrg/Django-China-API.git","clone_url":"https://github.com/DjangoChinaOrg/Django-China-API.git","svn_url":"https://github.com/DjangoChinaOrg/Django-China-API","homepage":null,"size":1125,"stargazers_count":30,"watchers_count":30,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":10,"mirror_url":null,"archived":false,"open_issues_count":3,"license":null,"forks":10,"open_issues":3,"watchers":30,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/10"},"html":{"href":"https://github.com/DjangoChinaOrg/Django-China-API/pull/10"},"issue":{"href":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues/10"},"comments":{"href":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/issues/10/comments"},"review_comments":{"href":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/10/comments"},"review_comment":{"href":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/pulls/10/commits"},"statuses":{"href":"https://api.github.com/repos/DjangoChinaOrg/Django-China-API/statuses/9c01385858dbc558fb8bcc3617d9f28013f1a498"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"zmrenwu"}}