{"action":"created","comment":{"url":"https://api.github.com/repos/google/ggrc-core/pulls/comments/358175291","pull_request_review_id":332441777,"id":358175291,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDM1ODE3NTI5MQ==","diff_hunk":"@@ -0,0 +1,132 @@\n+# Copyright (C) 2019 Google Inc.\n+# Licensed under http://www.apache.org/licenses/LICENSE-2.0 <see LICENSE file>\n+\n+\"\"\"\n+  Migrate ExternalCustomAttributes back to CustomAttributes tables\n+\n+Create Date: 2019-11-29 12:38:49.648670\n+\"\"\"\n+# disable Invalid constant name pylint warning for mandatory Alembic variables.\n+# pylint: disable=invalid-name\n+\n+import logging\n+import sqlalchemy as sa\n+\n+from alembic import op\n+\n+# revision identifiers, used by Alembic.\n+revision = '794ec2bb70b2'\n+down_revision = '453a3f86e393'\n+\n+\n+logger = logging.getLogger(__name__)\n+logger.setLevel(logging.INFO)\n+\n+\n+def _get_new_ecads_ids(conn):\n+  \"\"\"Get IDs of for newly added ecad\"\"\"\n+  query = sa.text(\n+      \"\"\"\n+          SELECT ecad.id FROM external_custom_attribute_definitions as ecad\n+          WHERE ecad.id NOT IN (\n+          SELECT ecad.id FROM external_custom_attribute_definitions as ecad\n+          JOIN custom_attribute_definitions as cad ON\n+          (cad.id = ecad.id AND cad.definition_type IN (\"control\", \"risk\")));\n+      \"\"\"\n+  )\n+  id_s = [i for i, in conn.execute(query)]\n+  return id_s\n+\n+\n+def _get_old_ecads_ids(conn):\n+  \"\"\"Get IDs of for old ecad\"\"\"\n+  query = sa.text(\n+      \"\"\"\n+          SELECT ecad.id FROM external_custom_attribute_definitions as ecad\n+          JOIN custom_attribute_definitions as cad ON\n+          (cad.id = ecad.id AND cad.definition_type IN (\"control\", \"risk\"));\n+      \"\"\"\n+  )\n+  old_ids = [i for i, in conn.execute(query)]\n+  return old_ids\n+\n+\n+def _migrate_new_ecads(conn, ids):\n+  \"\"\"Migrating ecad_s data to CAD table\"\"\"\n+  query = sa.text(\n+      \"\"\"\n+          INSERT INTO custom_attribute_definitions(\n+              modified_by_id,\n+              context_id,\n+              created_at,\n+              updated_at,\n+              title,\n+              helptext,\n+              placeholder,\n+              definition_type,\n+              attribute_type,\n+              multi_choice_options,\n+              mandatory,\n+              previous_id,\n+              external_name)\n+          SELECT\n+              modified_by_id,\n+              context_id,\n+              created_at,\n+              updated_at,\n+              title,\n+              helptext,\n+              placeholder,\n+              definition_type,\n+              attribute_type,\n+              multi_choice_options,\n+              mandatory,\n+              id,\n+              external_name\n+          FROM external_custom_attribute_definitions as ecad\n+          WHERE ecad.id IN :id_s\n+      \"\"\"\n+  )\n+  conn.execute(query, id_s=ids)\n+\n+\n+def _update_old_cads(conn, ids):\n+  \"\"\"Update old cads with previous id\"\"\"\n+  query = sa.text(\n+      \"\"\"\n+          UPDATE custom_attribute_definitions as cad\n+          SET cad.previous_id = cad.id\n+          WHERE cad.id IN :ids\n+      \"\"\"\n+  )\n+\n+  conn.execute(query, ids=ids)\n+\n+\n+def upgrade():\n+  \"\"\"Upgrade database schema and/or data, creating a new revision.\"\"\"\n+  conn = op.get_bind()\n+  trans = conn.begin()\n+\n+  ids = _get_new_ecads_ids(conn)\n+  old_ids = _get_old_ecads_ids(conn)","path":"src/ggrc/migrations/versions/20191129_794ec2bb70b2_move_ecad_in_cad_table.py","position":112,"original_position":112,"commit_id":"eac3468b0e2f8cf9ced8dfb92a5b756121297b6c","original_commit_id":"eac3468b0e2f8cf9ced8dfb92a5b756121297b6c","user":{"login":"NikitaKulik","id":2116232,"node_id":"MDQ6VXNlcjIxMTYyMzI=","avatar_url":"https://avatars3.githubusercontent.com/u/2116232?v=4","gravatar_id":"","url":"https://api.github.com/users/NikitaKulik","html_url":"https://github.com/NikitaKulik","followers_url":"https://api.github.com/users/NikitaKulik/followers","following_url":"https://api.github.com/users/NikitaKulik/following{/other_user}","gists_url":"https://api.github.com/users/NikitaKulik/gists{/gist_id}","starred_url":"https://api.github.com/users/NikitaKulik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NikitaKulik/subscriptions","organizations_url":"https://api.github.com/users/NikitaKulik/orgs","repos_url":"https://api.github.com/users/NikitaKulik/repos","events_url":"https://api.github.com/users/NikitaKulik/events{/privacy}","received_events_url":"https://api.github.com/users/NikitaKulik/received_events","type":"User","site_admin":false},"body":"Please rename to 'initial_state_ids'","created_at":"2019-12-16T11:09:31Z","updated_at":"2019-12-16T11:19:22Z","html_url":"https://github.com/google/ggrc-core/pull/10365#discussion_r358175291","pull_request_url":"https://api.github.com/repos/google/ggrc-core/pulls/10365","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/google/ggrc-core/pulls/comments/358175291"},"html":{"href":"https://github.com/google/ggrc-core/pull/10365#discussion_r358175291"},"pull_request":{"href":"https://api.github.com/repos/google/ggrc-core/pulls/10365"}}},"pull_request":{"url":"https://api.github.com/repos/google/ggrc-core/pulls/10365","id":350415704,"node_id":"MDExOlB1bGxSZXF1ZXN0MzUwNDE1NzA0","html_url":"https://github.com/google/ggrc-core/pull/10365","diff_url":"https://github.com/google/ggrc-core/pull/10365.diff","patch_url":"https://github.com/google/ggrc-core/pull/10365.patch","issue_url":"https://api.github.com/repos/google/ggrc-core/issues/10365","number":10365,"state":"open","locked":false,"title":"[WIP][SCOPE SYNC] Backmerge of cads cavs","user":{"login":"pavelKhat","id":29396213,"node_id":"MDQ6VXNlcjI5Mzk2MjEz","avatar_url":"https://avatars1.githubusercontent.com/u/29396213?v=4","gravatar_id":"","url":"https://api.github.com/users/pavelKhat","html_url":"https://github.com/pavelKhat","followers_url":"https://api.github.com/users/pavelKhat/followers","following_url":"https://api.github.com/users/pavelKhat/following{/other_user}","gists_url":"https://api.github.com/users/pavelKhat/gists{/gist_id}","starred_url":"https://api.github.com/users/pavelKhat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pavelKhat/subscriptions","organizations_url":"https://api.github.com/users/pavelKhat/orgs","repos_url":"https://api.github.com/users/pavelKhat/repos","events_url":"https://api.github.com/users/pavelKhat/events{/privacy}","received_events_url":"https://api.github.com/users/pavelKhat/received_events","type":"User","site_admin":false},"body":"<!-- If your PR depends on other tickets or PRs, you can list them here\r\n# Dependencies\r\n\r\nThis PR is `on hold` until the dependencies are merged:\r\n\r\n- [ ] GGRC-1234\r\n- [ ] #1234\r\n-->\r\n\r\n# Issue description\r\n\r\n*Explain the issue that the changes in the pull request solve.*\r\n\r\n# Steps to test the changes\r\n\r\n*Include steps to test or reproduce (in case of a bugfix) the changes in the pull request. This section should help the reviewer verify your changes.*\r\n\r\n# Solution description\r\n\r\n*Briefly explain the solution or add a link to the technical design document (this will help the reviewer confirm the code does what you intend). Feel free to also mention alternative approaches that didn't work out.*\r\n\r\n# Sanity checklist\r\n\r\n- [ ] I have clicked through the app to make sure my changes work and not break the app.\r\n- [ ] I have applied the correct milestone and labels.\r\n- [ ] My changes fix the issue described in the description (and do nothing else). 🤞\r\n- [ ] My changes are covered by tests.\r\n- [ ] My changes follow our [performance guidelines](https://github.com/google/ggrc-core/blob/dev/docs/source/contributing/performance.rst).\r\n- [ ] My changes follow our [js](https://github.com/google/ggrc-core/blob/dev/docs/source/contributing/javascript.rst) and/or [python](https://github.com/google/ggrc-core/blob/dev/docs/source/contributing/python.rst) guidelines.\r\n- [ ] My commits follow our [commit guidelines](https://github.com/google/ggrc-core/blob/dev/docs/source/contributing/git/how_to_write_a_commit_message.rst).\r\n\r\n<!-- If your PR includes a migration include the additional checklist items\r\n# Migration checklist\r\n- [ ] Migration passes all checks from our [PR review guidelines](https://github.com/google/ggrc-core/blob/dev/docs/source/contributing/git/reviewing_pull_requests.rst#reviewing-a-pr-containing-database-migration-scripts)\r\n- [ ] Upon merging, add 'check migration chain' and 'kokoro:force-run' labels to all open PRs with a label 'migration'\r\n- [ ] Upon merging, update 'table structure changes' in weekly deployment documentation\r\n-->\r\n\r\n# PR Review checklist\r\n\r\n- [ ] The changes fix the issue and don't cause any apparent regressions.\r\n- [ ] Labels and milestone are correctly set.\r\n- [ ] The solution description matches the changes in the code.\r\n- [ ] There is no apparent way to improve the performance & design of the new code.\r\n- [ ] The pull request is opened against the correct base branch.\r\n- [ ] Upon merging, the Jira ticket's fixversion is correctly set and the ticket is moved to \"QA - In Progress\".\r\n\r\n<!-- If your code is not finished yet can include a TODO check list\r\n# TODO\r\n\r\n- [ ] First item on the TODO\r\n-->\r\n","created_at":"2019-12-08T14:04:15Z","updated_at":"2019-12-16T11:19:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c44efadcf41929514f0f9e6dfe6899753b6cc677","assignee":{"login":"NikitaKulik","id":2116232,"node_id":"MDQ6VXNlcjIxMTYyMzI=","avatar_url":"https://avatars3.githubusercontent.com/u/2116232?v=4","gravatar_id":"","url":"https://api.github.com/users/NikitaKulik","html_url":"https://github.com/NikitaKulik","followers_url":"https://api.github.com/users/NikitaKulik/followers","following_url":"https://api.github.com/users/NikitaKulik/following{/other_user}","gists_url":"https://api.github.com/users/NikitaKulik/gists{/gist_id}","starred_url":"https://api.github.com/users/NikitaKulik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NikitaKulik/subscriptions","organizations_url":"https://api.github.com/users/NikitaKulik/orgs","repos_url":"https://api.github.com/users/NikitaKulik/repos","events_url":"https://api.github.com/users/NikitaKulik/events{/privacy}","received_events_url":"https://api.github.com/users/NikitaKulik/received_events","type":"User","site_admin":false},"assignees":[{"login":"NikitaKulik","id":2116232,"node_id":"MDQ6VXNlcjIxMTYyMzI=","avatar_url":"https://avatars3.githubusercontent.com/u/2116232?v=4","gravatar_id":"","url":"https://api.github.com/users/NikitaKulik","html_url":"https://github.com/NikitaKulik","followers_url":"https://api.github.com/users/NikitaKulik/followers","following_url":"https://api.github.com/users/NikitaKulik/following{/other_user}","gists_url":"https://api.github.com/users/NikitaKulik/gists{/gist_id}","starred_url":"https://api.github.com/users/NikitaKulik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NikitaKulik/subscriptions","organizations_url":"https://api.github.com/users/NikitaKulik/orgs","repos_url":"https://api.github.com/users/NikitaKulik/repos","events_url":"https://api.github.com/users/NikitaKulik/events{/privacy}","received_events_url":"https://api.github.com/users/NikitaKulik/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":723760962,"node_id":"MDU6TGFiZWw3MjM3NjA5NjI=","url":"https://api.github.com/repos/google/ggrc-core/labels/check%20migration%20chain","name":"check migration chain","color":"dd6c67","default":false,"description":null},{"id":653911749,"node_id":"MDU6TGFiZWw2NTM5MTE3NDk=","url":"https://api.github.com/repos/google/ggrc-core/labels/cla:%20yes","name":"cla: yes","color":"ededed","default":false,"description":null},{"id":984628402,"node_id":"MDU6TGFiZWw5ODQ2Mjg0MDI=","url":"https://api.github.com/repos/google/ggrc-core/labels/complex","name":"complex","color":"681c8e","default":false,"description":""},{"id":86898350,"node_id":"MDU6TGFiZWw4Njg5ODM1MA==","url":"https://api.github.com/repos/google/ggrc-core/labels/migration","name":"migration","color":"0052cc","default":false,"description":"PR contains a migration and needs additional checks and additional steps after the merge."},{"id":86898803,"node_id":"MDU6TGFiZWw4Njg5ODgwMw==","url":"https://api.github.com/repos/google/ggrc-core/labels/needs%20work","name":"needs work","color":"f9d0c4","default":false,"description":null},{"id":35094741,"node_id":"MDU6TGFiZWwzNTA5NDc0MQ==","url":"https://api.github.com/repos/google/ggrc-core/labels/wrong%20branch","name":"wrong branch","color":"b60205","default":false,"description":null}],"milestone":null,"commits_url":"https://api.github.com/repos/google/ggrc-core/pulls/10365/commits","review_comments_url":"https://api.github.com/repos/google/ggrc-core/pulls/10365/comments","review_comment_url":"https://api.github.com/repos/google/ggrc-core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/google/ggrc-core/issues/10365/comments","statuses_url":"https://api.github.com/repos/google/ggrc-core/statuses/eac3468b0e2f8cf9ced8dfb92a5b756121297b6c","head":{"label":"pavelKhat:Scope_Sync_Backmerge_of_CADs","ref":"Scope_Sync_Backmerge_of_CADs","sha":"eac3468b0e2f8cf9ced8dfb92a5b756121297b6c","user":{"login":"pavelKhat","id":29396213,"node_id":"MDQ6VXNlcjI5Mzk2MjEz","avatar_url":"https://avatars1.githubusercontent.com/u/29396213?v=4","gravatar_id":"","url":"https://api.github.com/users/pavelKhat","html_url":"https://github.com/pavelKhat","followers_url":"https://api.github.com/users/pavelKhat/followers","following_url":"https://api.github.com/users/pavelKhat/following{/other_user}","gists_url":"https://api.github.com/users/pavelKhat/gists{/gist_id}","starred_url":"https://api.github.com/users/pavelKhat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pavelKhat/subscriptions","organizations_url":"https://api.github.com/users/pavelKhat/orgs","repos_url":"https://api.github.com/users/pavelKhat/repos","events_url":"https://api.github.com/users/pavelKhat/events{/privacy}","received_events_url":"https://api.github.com/users/pavelKhat/received_events","type":"User","site_admin":false},"repo":{"id":172670151,"node_id":"MDEwOlJlcG9zaXRvcnkxNzI2NzAxNTE=","name":"ggrc-core","full_name":"pavelKhat/ggrc-core","private":false,"owner":{"login":"pavelKhat","id":29396213,"node_id":"MDQ6VXNlcjI5Mzk2MjEz","avatar_url":"https://avatars1.githubusercontent.com/u/29396213?v=4","gravatar_id":"","url":"https://api.github.com/users/pavelKhat","html_url":"https://github.com/pavelKhat","followers_url":"https://api.github.com/users/pavelKhat/followers","following_url":"https://api.github.com/users/pavelKhat/following{/other_user}","gists_url":"https://api.github.com/users/pavelKhat/gists{/gist_id}","starred_url":"https://api.github.com/users/pavelKhat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pavelKhat/subscriptions","organizations_url":"https://api.github.com/users/pavelKhat/orgs","repos_url":"https://api.github.com/users/pavelKhat/repos","events_url":"https://api.github.com/users/pavelKhat/events{/privacy}","received_events_url":"https://api.github.com/users/pavelKhat/received_events","type":"User","site_admin":false},"html_url":"https://github.com/pavelKhat/ggrc-core","description":"GGRC Core","fork":true,"url":"https://api.github.com/repos/pavelKhat/ggrc-core","forks_url":"https://api.github.com/repos/pavelKhat/ggrc-core/forks","keys_url":"https://api.github.com/repos/pavelKhat/ggrc-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pavelKhat/ggrc-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pavelKhat/ggrc-core/teams","hooks_url":"https://api.github.com/repos/pavelKhat/ggrc-core/hooks","issue_events_url":"https://api.github.com/repos/pavelKhat/ggrc-core/issues/events{/number}","events_url":"https://api.github.com/repos/pavelKhat/ggrc-core/events","assignees_url":"https://api.github.com/repos/pavelKhat/ggrc-core/assignees{/user}","branches_url":"https://api.github.com/repos/pavelKhat/ggrc-core/branches{/branch}","tags_url":"https://api.github.com/repos/pavelKhat/ggrc-core/tags","blobs_url":"https://api.github.com/repos/pavelKhat/ggrc-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pavelKhat/ggrc-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pavelKhat/ggrc-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/pavelKhat/ggrc-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pavelKhat/ggrc-core/statuses/{sha}","languages_url":"https://api.github.com/repos/pavelKhat/ggrc-core/languages","stargazers_url":"https://api.github.com/repos/pavelKhat/ggrc-core/stargazers","contributors_url":"https://api.github.com/repos/pavelKhat/ggrc-core/contributors","subscribers_url":"https://api.github.com/repos/pavelKhat/ggrc-core/subscribers","subscription_url":"https://api.github.com/repos/pavelKhat/ggrc-core/subscription","commits_url":"https://api.github.com/repos/pavelKhat/ggrc-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/pavelKhat/ggrc-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/pavelKhat/ggrc-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/pavelKhat/ggrc-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/pavelKhat/ggrc-core/contents/{+path}","compare_url":"https://api.github.com/repos/pavelKhat/ggrc-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pavelKhat/ggrc-core/merges","archive_url":"https://api.github.com/repos/pavelKhat/ggrc-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pavelKhat/ggrc-core/downloads","issues_url":"https://api.github.com/repos/pavelKhat/ggrc-core/issues{/number}","pulls_url":"https://api.github.com/repos/pavelKhat/ggrc-core/pulls{/number}","milestones_url":"https://api.github.com/repos/pavelKhat/ggrc-core/milestones{/number}","notifications_url":"https://api.github.com/repos/pavelKhat/ggrc-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pavelKhat/ggrc-core/labels{/name}","releases_url":"https://api.github.com/repos/pavelKhat/ggrc-core/releases{/id}","deployments_url":"https://api.github.com/repos/pavelKhat/ggrc-core/deployments","created_at":"2019-02-26T08:32:36Z","updated_at":"2019-08-07T07:02:38Z","pushed_at":"2019-12-16T08:46:58Z","git_url":"git://github.com/pavelKhat/ggrc-core.git","ssh_url":"git@github.com:pavelKhat/ggrc-core.git","clone_url":"https://github.com/pavelKhat/ggrc-core.git","svn_url":"https://github.com/pavelKhat/ggrc-core","homepage":null,"size":97425,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"dev"}},"base":{"label":"google:dev","ref":"dev","sha":"cfa4ff0222707228898ad3bb3f8d7e9864e634a8","user":{"login":"google","id":1342004,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNDIwMDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/1342004?v=4","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"repo":{"id":9304637,"node_id":"MDEwOlJlcG9zaXRvcnk5MzA0NjM3","name":"ggrc-core","full_name":"google/ggrc-core","private":false,"owner":{"login":"google","id":1342004,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNDIwMDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/1342004?v=4","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/google/ggrc-core","description":"GGRC Core","fork":false,"url":"https://api.github.com/repos/google/ggrc-core","forks_url":"https://api.github.com/repos/google/ggrc-core/forks","keys_url":"https://api.github.com/repos/google/ggrc-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/google/ggrc-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/google/ggrc-core/teams","hooks_url":"https://api.github.com/repos/google/ggrc-core/hooks","issue_events_url":"https://api.github.com/repos/google/ggrc-core/issues/events{/number}","events_url":"https://api.github.com/repos/google/ggrc-core/events","assignees_url":"https://api.github.com/repos/google/ggrc-core/assignees{/user}","branches_url":"https://api.github.com/repos/google/ggrc-core/branches{/branch}","tags_url":"https://api.github.com/repos/google/ggrc-core/tags","blobs_url":"https://api.github.com/repos/google/ggrc-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/google/ggrc-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/google/ggrc-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/google/ggrc-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/google/ggrc-core/statuses/{sha}","languages_url":"https://api.github.com/repos/google/ggrc-core/languages","stargazers_url":"https://api.github.com/repos/google/ggrc-core/stargazers","contributors_url":"https://api.github.com/repos/google/ggrc-core/contributors","subscribers_url":"https://api.github.com/repos/google/ggrc-core/subscribers","subscription_url":"https://api.github.com/repos/google/ggrc-core/subscription","commits_url":"https://api.github.com/repos/google/ggrc-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/google/ggrc-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/google/ggrc-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/google/ggrc-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/google/ggrc-core/contents/{+path}","compare_url":"https://api.github.com/repos/google/ggrc-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/google/ggrc-core/merges","archive_url":"https://api.github.com/repos/google/ggrc-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/google/ggrc-core/downloads","issues_url":"https://api.github.com/repos/google/ggrc-core/issues{/number}","pulls_url":"https://api.github.com/repos/google/ggrc-core/pulls{/number}","milestones_url":"https://api.github.com/repos/google/ggrc-core/milestones{/number}","notifications_url":"https://api.github.com/repos/google/ggrc-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/google/ggrc-core/labels{/name}","releases_url":"https://api.github.com/repos/google/ggrc-core/releases{/id}","deployments_url":"https://api.github.com/repos/google/ggrc-core/deployments","created_at":"2013-04-08T19:16:28Z","updated_at":"2019-12-09T09:11:00Z","pushed_at":"2019-12-16T11:02:30Z","git_url":"git://github.com/google/ggrc-core.git","ssh_url":"git@github.com:google/ggrc-core.git","clone_url":"https://github.com/google/ggrc-core.git","svn_url":"https://github.com/google/ggrc-core","homepage":null,"size":97511,"stargazers_count":478,"watchers_count":478,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":335,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":95,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":335,"open_issues":95,"watchers":478,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/google/ggrc-core/pulls/10365"},"html":{"href":"https://github.com/google/ggrc-core/pull/10365"},"issue":{"href":"https://api.github.com/repos/google/ggrc-core/issues/10365"},"comments":{"href":"https://api.github.com/repos/google/ggrc-core/issues/10365/comments"},"review_comments":{"href":"https://api.github.com/repos/google/ggrc-core/pulls/10365/comments"},"review_comment":{"href":"https://api.github.com/repos/google/ggrc-core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/google/ggrc-core/pulls/10365/commits"},"statuses":{"href":"https://api.github.com/repos/google/ggrc-core/statuses/eac3468b0e2f8cf9ced8dfb92a5b756121297b6c"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"NikitaKulik"}}