{"action":"created","comment":{"url":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/comments/168766332","pull_request_review_id":97189795,"id":168766332,"diff_hunk":"@@ -0,0 +1,76 @@\n+from sqlalchemy import event\n+\n+from dataservice.extensions import db\n+from dataservice.api.common.model import Base\n+from dataservice.api.participant.models import Participant\n+\n+REVERSE_RELS = {\n+    'mother': 'child',\n+    'father': 'child',\n+    'sister': 'sister',\n+    'brother': 'brother'\n+}\n+\n+\n+class FamilyRelationship(db.Model, Base):\n+    \"\"\"\n+    Represents a relationship between two family members.\n+\n+    The relationship table represents a directed graph. One or more\n+    relationships may exist between any two participants.\n+    (P1 -> P2 is different than P2 -> P1)\n+\n+    :param kf_id: Primary key given by the Kid's First DCC\n+    :param created_at: Time of object creation\n+    :param modified_at: Last time of object modification\n+    :param participant_id: Kids first id of the first Participant in the\n+    relationship\n+    :param relative_id: Kids first id of the second Participant (or relative)\n+    in the relationship\n+    :param relationship_type: Text describing the nature of the\n+    relationship (i.e. father, mother, sister, brother)\n+    :param _rel_name: an autogenerated parameter used to ensure that the\n+    relationships are not duplicated and the graph is undirected\n+    \"\"\"\n+    __tablename__ = 'family_relationship'\n+    __table_args__ = (db.UniqueConstraint('participant_id', 'relative_id',\n+                                          'participant_to_relative_relation',\n+                                          'relative_to_participant_relation'),)\n+\n+    participant_id = db.Column(\n+        db.String(8),\n+        db.ForeignKey('participant.kf_id'), nullable=False)\n+\n+    relative_id = db.Column(\n+        db.String(8),\n+        db.ForeignKey('participant.kf_id'), nullable=False)\n+\n+    participant_to_relative_relation = db.Column(db.Text(), nullable=False)\n+\n+    relative_to_participant_relation = db.Column(db.Text())\n+\n+    participant = db.relationship(\n+        Participant,\n+        primaryjoin=participant_id == Participant.kf_id,\n+        backref=db.backref('outgoing_family_relationships',\n+                           cascade='all, delete-orphan'))\n+\n+    relative = db.relationship(\n+        Participant,\n+        primaryjoin=relative_id == Participant.kf_id,\n+        backref=db.backref('incoming_family_relationships',\n+                           cascade='all, delete-orphan'))\n+\n+    def __repr__(self):\n+        return '<{} is {} of {}>'.format(self.participant,\n+                                         self.participant_to_relative_relation,\n+                                         self.relative)\n+\n+\n+@event.listens_for(FamilyRelationship.participant_to_relative_relation, 'set')\n+def set_reverse_relation(target, value, oldvalue, initiator):\n+    \"\"\"\n+    Listen for set 'participant_to_relative_relation' events and\n+    set the reverse relationship, 'relative_to_participant_relation' attribute\n+    \"\"\"\n+    target.relative_to_participant_relation = REVERSE_RELS.get(value, None)","path":"dataservice/api/family_relationship/models.py","position":76,"original_position":76,"commit_id":"d9d51c92dfbd03523c2b1041fdf738d09b3b6abb","original_commit_id":"d9d51c92dfbd03523c2b1041fdf738d09b3b6abb","user":{"login":"znatty22","id":10283712,"avatar_url":"https://avatars2.githubusercontent.com/u/10283712?v=4","gravatar_id":"","url":"https://api.github.com/users/znatty22","html_url":"https://github.com/znatty22","followers_url":"https://api.github.com/users/znatty22/followers","following_url":"https://api.github.com/users/znatty22/following{/other_user}","gists_url":"https://api.github.com/users/znatty22/gists{/gist_id}","starred_url":"https://api.github.com/users/znatty22/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/znatty22/subscriptions","organizations_url":"https://api.github.com/users/znatty22/orgs","repos_url":"https://api.github.com/users/znatty22/repos","events_url":"https://api.github.com/users/znatty22/events{/privacy}","received_events_url":"https://api.github.com/users/znatty22/received_events","type":"User","site_admin":false},"body":"Probably eventually but for can we leave as free text? @allisonheath thoughts?","created_at":"2018-02-16T14:14:57Z","updated_at":"2018-02-16T14:14:57Z","html_url":"https://github.com/kids-first/kf-api-dataservice/pull/114#discussion_r168766332","pull_request_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/114","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/comments/168766332"},"html":{"href":"https://github.com/kids-first/kf-api-dataservice/pull/114#discussion_r168766332"},"pull_request":{"href":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/114"}},"in_reply_to_id":168656670},"pull_request":{"url":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/114","id":168063918,"html_url":"https://github.com/kids-first/kf-api-dataservice/pull/114","diff_url":"https://github.com/kids-first/kf-api-dataservice/pull/114.diff","patch_url":"https://github.com/kids-first/kf-api-dataservice/pull/114.patch","issue_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues/114","number":114,"state":"open","locked":false,"title":"✨ Family relationship model","user":{"login":"znatty22","id":10283712,"avatar_url":"https://avatars2.githubusercontent.com/u/10283712?v=4","gravatar_id":"","url":"https://api.github.com/users/znatty22","html_url":"https://github.com/znatty22","followers_url":"https://api.github.com/users/znatty22/followers","following_url":"https://api.github.com/users/znatty22/following{/other_user}","gists_url":"https://api.github.com/users/znatty22/gists{/gist_id}","starred_url":"https://api.github.com/users/znatty22/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/znatty22/subscriptions","organizations_url":"https://api.github.com/users/znatty22/orgs","repos_url":"https://api.github.com/users/znatty22/repos","events_url":"https://api.github.com/users/znatty22/events{/privacy}","received_events_url":"https://api.github.com/users/znatty22/received_events","type":"User","site_admin":false},"body":"Adds the family relationship model with updates to participant model\r\nAdds unit tests for the models\r\n\r\n**Some Notes**\r\nBased on discussions with team, I've modeled family relationships as an directed graph with multiple edges allowed between nodes. \r\n\r\nNodes in the graph are participants and edges are family relationships\r\nEach pair of participants can have one or more family relationships, either\r\nfrom p1 --> p2 or p2 --> p1. This allows for a lot of flexibility and a wide\r\nrange of relationships between participants.\r\n\r\nFor immediate family members, the reverse relationship is automatically added (immediate family relatives of a participant are considered to be mother, father, brother, sister). For example when the following relationship is created relationship Fred -- father of -- Pebbles, the reverse relationship, Pebbles -- child of -- Fred will automatically be added to the family relationships table as well. \r\n\r\nThere were a couple of different ways to model the family relationships and to implement the self-referential, many-to-many relationship here.\r\n\r\n- I chose to follow sqlalchemy's directed graph example: http://docs.sqlalchemy.org/en/latest/_modules/examples/graphs/directed_graph.html","created_at":"2018-02-08T19:23:28Z","updated_at":"2018-02-16T14:14:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"655c705c2dbfe40e7c54c835f4729fe78005a1ba","assignee":{"login":"znatty22","id":10283712,"avatar_url":"https://avatars2.githubusercontent.com/u/10283712?v=4","gravatar_id":"","url":"https://api.github.com/users/znatty22","html_url":"https://github.com/znatty22","followers_url":"https://api.github.com/users/znatty22/followers","following_url":"https://api.github.com/users/znatty22/following{/other_user}","gists_url":"https://api.github.com/users/znatty22/gists{/gist_id}","starred_url":"https://api.github.com/users/znatty22/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/znatty22/subscriptions","organizations_url":"https://api.github.com/users/znatty22/orgs","repos_url":"https://api.github.com/users/znatty22/repos","events_url":"https://api.github.com/users/znatty22/events{/privacy}","received_events_url":"https://api.github.com/users/znatty22/received_events","type":"User","site_admin":false},"assignees":[{"login":"znatty22","id":10283712,"avatar_url":"https://avatars2.githubusercontent.com/u/10283712?v=4","gravatar_id":"","url":"https://api.github.com/users/znatty22","html_url":"https://github.com/znatty22","followers_url":"https://api.github.com/users/znatty22/followers","following_url":"https://api.github.com/users/znatty22/following{/other_user}","gists_url":"https://api.github.com/users/znatty22/gists{/gist_id}","starred_url":"https://api.github.com/users/znatty22/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/znatty22/subscriptions","organizations_url":"https://api.github.com/users/znatty22/orgs","repos_url":"https://api.github.com/users/znatty22/repos","events_url":"https://api.github.com/users/znatty22/events{/privacy}","received_events_url":"https://api.github.com/users/znatty22/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"allisonheath","id":2213854,"avatar_url":"https://avatars3.githubusercontent.com/u/2213854?v=4","gravatar_id":"","url":"https://api.github.com/users/allisonheath","html_url":"https://github.com/allisonheath","followers_url":"https://api.github.com/users/allisonheath/followers","following_url":"https://api.github.com/users/allisonheath/following{/other_user}","gists_url":"https://api.github.com/users/allisonheath/gists{/gist_id}","starred_url":"https://api.github.com/users/allisonheath/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/allisonheath/subscriptions","organizations_url":"https://api.github.com/users/allisonheath/orgs","repos_url":"https://api.github.com/users/allisonheath/repos","events_url":"https://api.github.com/users/allisonheath/events{/privacy}","received_events_url":"https://api.github.com/users/allisonheath/received_events","type":"User","site_admin":false},{"login":"parimalak","id":20447220,"avatar_url":"https://avatars2.githubusercontent.com/u/20447220?v=4","gravatar_id":"","url":"https://api.github.com/users/parimalak","html_url":"https://github.com/parimalak","followers_url":"https://api.github.com/users/parimalak/followers","following_url":"https://api.github.com/users/parimalak/following{/other_user}","gists_url":"https://api.github.com/users/parimalak/gists{/gist_id}","starred_url":"https://api.github.com/users/parimalak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/parimalak/subscriptions","organizations_url":"https://api.github.com/users/parimalak/orgs","repos_url":"https://api.github.com/users/parimalak/repos","events_url":"https://api.github.com/users/parimalak/events{/privacy}","received_events_url":"https://api.github.com/users/parimalak/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":806490829,"url":"https://api.github.com/repos/kids-first/kf-api-dataservice/labels/data%20model","name":"data model","color":"027587","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/114/commits","review_comments_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/114/comments","review_comment_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues/114/comments","statuses_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/statuses/d9d51c92dfbd03523c2b1041fdf738d09b3b6abb","head":{"label":"kids-first:family-relationship-model","ref":"family-relationship-model","sha":"d9d51c92dfbd03523c2b1041fdf738d09b3b6abb","user":{"login":"kids-first","id":29782953,"avatar_url":"https://avatars2.githubusercontent.com/u/29782953?v=4","gravatar_id":"","url":"https://api.github.com/users/kids-first","html_url":"https://github.com/kids-first","followers_url":"https://api.github.com/users/kids-first/followers","following_url":"https://api.github.com/users/kids-first/following{/other_user}","gists_url":"https://api.github.com/users/kids-first/gists{/gist_id}","starred_url":"https://api.github.com/users/kids-first/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kids-first/subscriptions","organizations_url":"https://api.github.com/users/kids-first/orgs","repos_url":"https://api.github.com/users/kids-first/repos","events_url":"https://api.github.com/users/kids-first/events{/privacy}","received_events_url":"https://api.github.com/users/kids-first/received_events","type":"Organization","site_admin":false},"repo":{"id":116870795,"name":"kf-api-dataservice","full_name":"kids-first/kf-api-dataservice","owner":{"login":"kids-first","id":29782953,"avatar_url":"https://avatars2.githubusercontent.com/u/29782953?v=4","gravatar_id":"","url":"https://api.github.com/users/kids-first","html_url":"https://github.com/kids-first","followers_url":"https://api.github.com/users/kids-first/followers","following_url":"https://api.github.com/users/kids-first/following{/other_user}","gists_url":"https://api.github.com/users/kids-first/gists{/gist_id}","starred_url":"https://api.github.com/users/kids-first/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kids-first/subscriptions","organizations_url":"https://api.github.com/users/kids-first/orgs","repos_url":"https://api.github.com/users/kids-first/repos","events_url":"https://api.github.com/users/kids-first/events{/privacy}","received_events_url":"https://api.github.com/users/kids-first/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kids-first/kf-api-dataservice","description":":construction: Primary API for interacting with the Kids First datamodel","fork":false,"url":"https://api.github.com/repos/kids-first/kf-api-dataservice","forks_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/forks","keys_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/teams","hooks_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/hooks","issue_events_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues/events{/number}","events_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/events","assignees_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/assignees{/user}","branches_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/branches{/branch}","tags_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/tags","blobs_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/refs{/sha}","trees_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/statuses/{sha}","languages_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/languages","stargazers_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/stargazers","contributors_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/contributors","subscribers_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/subscribers","subscription_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/subscription","commits_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/commits{/sha}","git_commits_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/commits{/sha}","comments_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/comments{/number}","issue_comment_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues/comments{/number}","contents_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/contents/{+path}","compare_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/merges","archive_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/downloads","issues_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues{/number}","pulls_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls{/number}","milestones_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/milestones{/number}","notifications_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/labels{/name}","releases_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/releases{/id}","deployments_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/deployments","created_at":"2018-01-09T21:06:39Z","updated_at":"2018-01-25T13:49:24Z","pushed_at":"2018-02-15T21:28:06Z","git_url":"git://github.com/kids-first/kf-api-dataservice.git","ssh_url":"git@github.com:kids-first/kf-api-dataservice.git","clone_url":"https://github.com/kids-first/kf-api-dataservice.git","svn_url":"https://github.com/kids-first/kf-api-dataservice","homepage":"","size":1919,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":42,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":42,"watchers":1,"default_branch":"master"}},"base":{"label":"kids-first:master","ref":"master","sha":"943766f84db8c6d0e2d76e21dd2a160f89122aec","user":{"login":"kids-first","id":29782953,"avatar_url":"https://avatars2.githubusercontent.com/u/29782953?v=4","gravatar_id":"","url":"https://api.github.com/users/kids-first","html_url":"https://github.com/kids-first","followers_url":"https://api.github.com/users/kids-first/followers","following_url":"https://api.github.com/users/kids-first/following{/other_user}","gists_url":"https://api.github.com/users/kids-first/gists{/gist_id}","starred_url":"https://api.github.com/users/kids-first/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kids-first/subscriptions","organizations_url":"https://api.github.com/users/kids-first/orgs","repos_url":"https://api.github.com/users/kids-first/repos","events_url":"https://api.github.com/users/kids-first/events{/privacy}","received_events_url":"https://api.github.com/users/kids-first/received_events","type":"Organization","site_admin":false},"repo":{"id":116870795,"name":"kf-api-dataservice","full_name":"kids-first/kf-api-dataservice","owner":{"login":"kids-first","id":29782953,"avatar_url":"https://avatars2.githubusercontent.com/u/29782953?v=4","gravatar_id":"","url":"https://api.github.com/users/kids-first","html_url":"https://github.com/kids-first","followers_url":"https://api.github.com/users/kids-first/followers","following_url":"https://api.github.com/users/kids-first/following{/other_user}","gists_url":"https://api.github.com/users/kids-first/gists{/gist_id}","starred_url":"https://api.github.com/users/kids-first/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kids-first/subscriptions","organizations_url":"https://api.github.com/users/kids-first/orgs","repos_url":"https://api.github.com/users/kids-first/repos","events_url":"https://api.github.com/users/kids-first/events{/privacy}","received_events_url":"https://api.github.com/users/kids-first/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kids-first/kf-api-dataservice","description":":construction: Primary API for interacting with the Kids First datamodel","fork":false,"url":"https://api.github.com/repos/kids-first/kf-api-dataservice","forks_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/forks","keys_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/teams","hooks_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/hooks","issue_events_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues/events{/number}","events_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/events","assignees_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/assignees{/user}","branches_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/branches{/branch}","tags_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/tags","blobs_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/refs{/sha}","trees_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/statuses/{sha}","languages_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/languages","stargazers_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/stargazers","contributors_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/contributors","subscribers_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/subscribers","subscription_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/subscription","commits_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/commits{/sha}","git_commits_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/git/commits{/sha}","comments_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/comments{/number}","issue_comment_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues/comments{/number}","contents_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/contents/{+path}","compare_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/merges","archive_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/downloads","issues_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues{/number}","pulls_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls{/number}","milestones_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/milestones{/number}","notifications_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/labels{/name}","releases_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/releases{/id}","deployments_url":"https://api.github.com/repos/kids-first/kf-api-dataservice/deployments","created_at":"2018-01-09T21:06:39Z","updated_at":"2018-01-25T13:49:24Z","pushed_at":"2018-02-15T21:28:06Z","git_url":"git://github.com/kids-first/kf-api-dataservice.git","ssh_url":"git@github.com:kids-first/kf-api-dataservice.git","clone_url":"https://github.com/kids-first/kf-api-dataservice.git","svn_url":"https://github.com/kids-first/kf-api-dataservice","homepage":"","size":1919,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":42,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":42,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/114"},"html":{"href":"https://github.com/kids-first/kf-api-dataservice/pull/114"},"issue":{"href":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues/114"},"comments":{"href":"https://api.github.com/repos/kids-first/kf-api-dataservice/issues/114/comments"},"review_comments":{"href":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/114/comments"},"review_comment":{"href":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kids-first/kf-api-dataservice/pulls/114/commits"},"statuses":{"href":"https://api.github.com/repos/kids-first/kf-api-dataservice/statuses/d9d51c92dfbd03523c2b1041fdf738d09b3b6abb"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"znatty22"}}