{"action":"created","comment":{"url":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/comments/198723696","pull_request_review_id":132705011,"id":198723696,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5ODcyMzY5Ng==","diff_hunk":"@@ -0,0 +1,185 @@\n+/*\n+ * Tencent is pleased to support the open source community by making 蓝鲸 available.\n+ * Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.\n+ * Licensed under the MIT License (the \"License\"); you may not use this file except\n+ * in compliance with the License. You may obtain a copy of the License at\n+ * http://opensource.org/licenses/MIT\n+ * Unless required by applicable law or agreed to in writing, software distributed under\n+ * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\n+ * either express or implied. See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package main\n+\n+import (\n+\t\"flag\"\n+\t\"gopkg.in/mgo.v2\"\n+\t\"log\"\n+\t\"time\"\n+)\n+\n+var src = flag.String(\"source\", \"127.0.0.1:27017\", \"\")\n+var srcUser = flag.String(\"source_user\", \"cc\", \"\")\n+var srcPWD = flag.String(\"source_passwd\", \"cc\", \"\")\n+var srcDB = flag.String(\"source_db\", \"cmdb_bak\", \"\")\n+var target = flag.String(\"target\", \"127.0.0.1:27017\", \"\")\n+var targetDB = flag.String(\"target_db\", \"cmdb\", \"\")\n+var targetUser = flag.String(\"target_user\", \"cc\", \"\")\n+var targetPWD = flag.String(\"target_passwd\", \"cc\", \"\")\n+\n+func main() {\n+\tflag.Parse()\n+\tsrccli, err := mgo.DialWithInfo(&mgo.DialInfo{\n+\t\tAddrs:     []string{*src},\n+\t\tDirect:    false,\n+\t\tTimeout:   time.Second * 5,\n+\t\tDatabase:  *srcDB,\n+\t\tSource:    \"\",\n+\t\tUsername:  *srcUser,\n+\t\tPassword:  *srcPWD,\n+\t\tPoolLimit: 4096,\n+\t\tMechanism: \"\",\n+\t})\n+\tif err != nil {\n+\t\tpanic(err)\n+\t}\n+\ttarcli, err := mgo.DialWithInfo(&mgo.DialInfo{\n+\t\tAddrs:     []string{*target},\n+\t\tDirect:    false,\n+\t\tTimeout:   time.Second * 5,\n+\t\tDatabase:  *targetDB,\n+\t\tSource:    \"\",\n+\t\tUsername:  *targetUser,\n+\t\tPassword:  *targetPWD,\n+\t\tPoolLimit: 4096,\n+\t\tMechanism: \"\",\n+\t})\n+\tif err != nil {\n+\t\tpanic(err)\n+\t}\n+\n+\tif err := processCompare(srccli.DB(*srcDB), tarcli.DB(*targetDB)); err != nil {\n+\t\tpanic(err)\n+\t}\n+\n+\tlog.Println(\"congratulation, compare success\")\n+}\n+\n+var empty = map[string]interface{}{}\n+\n+func processCompare(srccli, tarcli *mgo.Database) error {\n+\ttablenames, err := srccli.CollectionNames()\n+\tassertNotErr(err)\n+\tfor _, tablename := range tablenames {\n+\t\tif ignoreTable[tablename] {\n+\t\t\tcontinue\n+\t\t}\n+\t\tsrcDatas := []map[string]interface{}{}\n+\t\terr = srccli.C(tablename).Find(empty).All(&srcDatas)\n+\t\tassertNotErr(err)\n+\t\tfor _, srcData := range srcDatas {\n+\t\t\ttableKey := tableKeys(tablename)\n+\t\t\tcondition := copyMap(srcData, tableKey.keys)\n+\t\t\ttarData := map[string]interface{}{}\n+\t\t\terr = tarcli.C(tablename).Find(condition).One(&tarData)\n+\t\t\tif err != nil {\n+\t\t\t\tlog.Fatalf(\"tablename %s, condition %v, error: %s\", tablename, condition, err.Error())\n+\t\t\t}\n+\t\t\tcompare(tablename, srcData, tarData, tableKey.ignores)\n+\t\t}\n+\t}\n+\treturn nil\n+}\n+\n+var ignoreTable = map[string]bool{\n+\t\"cc_OperationLog\": true,\n+\t\"cc_System\":       true,\n+}\n+\n+func compare(tablename string, srcData, tarData map[string]interface{}, ignores []string) {\n+\tignore := map[string]bool{}\n+\tfor _, key := range ignores {\n+\t\tignore[key] = true\n+\t}\n+\tfor key := range srcData {\n+\t\tif ignore[key] {\n+\t\t\tcontinue\n+\t\t}\n+\t\tequal := true\n+\t\tswitch val := srcData[key].(type) {\n+\t\tcase int, int64:\n+\t\t\tif toInt64(tarData[key]) != toInt64(val) {\n+\t\t\t\tequal = false\n+\t\t\t}\n+\t\tcase []interface{}:\n+\t\tcase map[string]interface{}:\n+\n+\t\tdefault:\n+\t\t\tif tarData[key] != srcData[key] {\n+\t\t\t\tequal = false\n+\t\t\t}\n+\t\t}\n+\t\tif !equal {\n+\t\t\tlog.Fatalf(\"not equal!! tablename: %s, key %s , expect %#v, actual %#v\", tablename, key, tarData[key], srcData[key])\n+\t\t}\n+\t}\n+}\n+\n+func toInt64(val interface{}) int64 {\n+\tswitch v := val.(type) {\n+\tcase int:\n+\t\treturn int64(v)\n+\tcase int64:\n+\t\treturn int64(v)\n+\t}\n+\treturn 0\n+}\n+\n+func copyMap(data map[string]interface{}, keys []string) map[string]interface{} {","path":"src/scene_server/admin_server/comparer/compare.go","position":139,"original_position":139,"commit_id":"19c17b5070a022f7c1414b657b3da9e59fe8be68","original_commit_id":"19c17b5070a022f7c1414b657b3da9e59fe8be68","user":{"login":"lowenitt","id":14356794,"node_id":"MDQ6VXNlcjE0MzU2Nzk0","avatar_url":"https://avatars0.githubusercontent.com/u/14356794?v=4","gravatar_id":"","url":"https://api.github.com/users/lowenitt","html_url":"https://github.com/lowenitt","followers_url":"https://api.github.com/users/lowenitt/followers","following_url":"https://api.github.com/users/lowenitt/following{/other_user}","gists_url":"https://api.github.com/users/lowenitt/gists{/gist_id}","starred_url":"https://api.github.com/users/lowenitt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lowenitt/subscriptions","organizations_url":"https://api.github.com/users/lowenitt/orgs","repos_url":"https://api.github.com/users/lowenitt/repos","events_url":"https://api.github.com/users/lowenitt/events{/privacy}","received_events_url":"https://api.github.com/users/lowenitt/received_events","type":"User","site_admin":false},"body":"这里同上","created_at":"2018-06-28T06:49:52Z","updated_at":"2018-06-28T06:49:52Z","html_url":"https://github.com/Tencent/bk-cmdb/pull/672#discussion_r198723696","pull_request_url":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/672","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/comments/198723696"},"html":{"href":"https://github.com/Tencent/bk-cmdb/pull/672#discussion_r198723696"},"pull_request":{"href":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/672"}}},"pull_request":{"url":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/672","id":197290911,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk3MjkwOTEx","html_url":"https://github.com/Tencent/bk-cmdb/pull/672","diff_url":"https://github.com/Tencent/bk-cmdb/pull/672.diff","patch_url":"https://github.com/Tencent/bk-cmdb/pull/672.patch","issue_url":"https://api.github.com/repos/Tencent/bk-cmdb/issues/672","number":672,"state":"open","locked":false,"title":"Migrate","user":{"login":"wusendong","id":9442975,"node_id":"MDQ6VXNlcjk0NDI5NzU=","avatar_url":"https://avatars2.githubusercontent.com/u/9442975?v=4","gravatar_id":"","url":"https://api.github.com/users/wusendong","html_url":"https://github.com/wusendong","followers_url":"https://api.github.com/users/wusendong/followers","following_url":"https://api.github.com/users/wusendong/following{/other_user}","gists_url":"https://api.github.com/users/wusendong/gists{/gist_id}","starred_url":"https://api.github.com/users/wusendong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wusendong/subscriptions","organizations_url":"https://api.github.com/users/wusendong/orgs","repos_url":"https://api.github.com/users/wusendong/repos","events_url":"https://api.github.com/users/wusendong/events{/privacy}","received_events_url":"https://api.github.com/users/wusendong/received_events","type":"User","site_admin":false},"body":"### 新加的功能:\r\n- 支持跨版本升级（3.x.x~3.y.y）\r\n\r\n### 修复的问题:\r\n- 自定义拓扑，关联防火墙模型，下拉的枚举数据不对\r\n- 子网区域改为云区域\r\n- 模型字段ID为0问题","created_at":"2018-06-26T03:19:39Z","updated_at":"2018-06-28T06:49:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d2ff1134e160ddd2390a2ccacc2e0d9e8635ba84","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/672/commits","review_comments_url":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/672/comments","review_comment_url":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Tencent/bk-cmdb/issues/672/comments","statuses_url":"https://api.github.com/repos/Tencent/bk-cmdb/statuses/19c17b5070a022f7c1414b657b3da9e59fe8be68","head":{"label":"wusendong:migrate","ref":"migrate","sha":"19c17b5070a022f7c1414b657b3da9e59fe8be68","user":{"login":"wusendong","id":9442975,"node_id":"MDQ6VXNlcjk0NDI5NzU=","avatar_url":"https://avatars2.githubusercontent.com/u/9442975?v=4","gravatar_id":"","url":"https://api.github.com/users/wusendong","html_url":"https://github.com/wusendong","followers_url":"https://api.github.com/users/wusendong/followers","following_url":"https://api.github.com/users/wusendong/following{/other_user}","gists_url":"https://api.github.com/users/wusendong/gists{/gist_id}","starred_url":"https://api.github.com/users/wusendong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wusendong/subscriptions","organizations_url":"https://api.github.com/users/wusendong/orgs","repos_url":"https://api.github.com/users/wusendong/repos","events_url":"https://api.github.com/users/wusendong/events{/privacy}","received_events_url":"https://api.github.com/users/wusendong/received_events","type":"User","site_admin":false},"repo":{"id":127694924,"node_id":"MDEwOlJlcG9zaXRvcnkxMjc2OTQ5MjQ=","name":"bk-cmdb","full_name":"wusendong/bk-cmdb","owner":{"login":"wusendong","id":9442975,"node_id":"MDQ6VXNlcjk0NDI5NzU=","avatar_url":"https://avatars2.githubusercontent.com/u/9442975?v=4","gravatar_id":"","url":"https://api.github.com/users/wusendong","html_url":"https://github.com/wusendong","followers_url":"https://api.github.com/users/wusendong/followers","following_url":"https://api.github.com/users/wusendong/following{/other_user}","gists_url":"https://api.github.com/users/wusendong/gists{/gist_id}","starred_url":"https://api.github.com/users/wusendong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wusendong/subscriptions","organizations_url":"https://api.github.com/users/wusendong/orgs","repos_url":"https://api.github.com/users/wusendong/repos","events_url":"https://api.github.com/users/wusendong/events{/privacy}","received_events_url":"https://api.github.com/users/wusendong/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wusendong/bk-cmdb","description":"蓝鲸智云配置平台(blueking cmdb)","fork":true,"url":"https://api.github.com/repos/wusendong/bk-cmdb","forks_url":"https://api.github.com/repos/wusendong/bk-cmdb/forks","keys_url":"https://api.github.com/repos/wusendong/bk-cmdb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wusendong/bk-cmdb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wusendong/bk-cmdb/teams","hooks_url":"https://api.github.com/repos/wusendong/bk-cmdb/hooks","issue_events_url":"https://api.github.com/repos/wusendong/bk-cmdb/issues/events{/number}","events_url":"https://api.github.com/repos/wusendong/bk-cmdb/events","assignees_url":"https://api.github.com/repos/wusendong/bk-cmdb/assignees{/user}","branches_url":"https://api.github.com/repos/wusendong/bk-cmdb/branches{/branch}","tags_url":"https://api.github.com/repos/wusendong/bk-cmdb/tags","blobs_url":"https://api.github.com/repos/wusendong/bk-cmdb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wusendong/bk-cmdb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wusendong/bk-cmdb/git/refs{/sha}","trees_url":"https://api.github.com/repos/wusendong/bk-cmdb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wusendong/bk-cmdb/statuses/{sha}","languages_url":"https://api.github.com/repos/wusendong/bk-cmdb/languages","stargazers_url":"https://api.github.com/repos/wusendong/bk-cmdb/stargazers","contributors_url":"https://api.github.com/repos/wusendong/bk-cmdb/contributors","subscribers_url":"https://api.github.com/repos/wusendong/bk-cmdb/subscribers","subscription_url":"https://api.github.com/repos/wusendong/bk-cmdb/subscription","commits_url":"https://api.github.com/repos/wusendong/bk-cmdb/commits{/sha}","git_commits_url":"https://api.github.com/repos/wusendong/bk-cmdb/git/commits{/sha}","comments_url":"https://api.github.com/repos/wusendong/bk-cmdb/comments{/number}","issue_comment_url":"https://api.github.com/repos/wusendong/bk-cmdb/issues/comments{/number}","contents_url":"https://api.github.com/repos/wusendong/bk-cmdb/contents/{+path}","compare_url":"https://api.github.com/repos/wusendong/bk-cmdb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wusendong/bk-cmdb/merges","archive_url":"https://api.github.com/repos/wusendong/bk-cmdb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wusendong/bk-cmdb/downloads","issues_url":"https://api.github.com/repos/wusendong/bk-cmdb/issues{/number}","pulls_url":"https://api.github.com/repos/wusendong/bk-cmdb/pulls{/number}","milestones_url":"https://api.github.com/repos/wusendong/bk-cmdb/milestones{/number}","notifications_url":"https://api.github.com/repos/wusendong/bk-cmdb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wusendong/bk-cmdb/labels{/name}","releases_url":"https://api.github.com/repos/wusendong/bk-cmdb/releases{/id}","deployments_url":"https://api.github.com/repos/wusendong/bk-cmdb/deployments","created_at":"2018-04-02T02:56:12Z","updated_at":"2018-06-05T07:59:43Z","pushed_at":"2018-06-28T06:39:21Z","git_url":"git://github.com/wusendong/bk-cmdb.git","ssh_url":"git@github.com:wusendong/bk-cmdb.git","clone_url":"https://github.com/wusendong/bk-cmdb.git","svn_url":"https://github.com/wusendong/bk-cmdb","homepage":"http://bk.tencent.com","size":30133,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Tencent:master","ref":"master","sha":"1bfaecab5a43be4633eaaee210a211b4898a59f7","user":{"login":"Tencent","id":18461506,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4NDYxNTA2","avatar_url":"https://avatars3.githubusercontent.com/u/18461506?v=4","gravatar_id":"","url":"https://api.github.com/users/Tencent","html_url":"https://github.com/Tencent","followers_url":"https://api.github.com/users/Tencent/followers","following_url":"https://api.github.com/users/Tencent/following{/other_user}","gists_url":"https://api.github.com/users/Tencent/gists{/gist_id}","starred_url":"https://api.github.com/users/Tencent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tencent/subscriptions","organizations_url":"https://api.github.com/users/Tencent/orgs","repos_url":"https://api.github.com/users/Tencent/repos","events_url":"https://api.github.com/users/Tencent/events{/privacy}","received_events_url":"https://api.github.com/users/Tencent/received_events","type":"Organization","site_admin":false},"repo":{"id":76221943,"node_id":"MDEwOlJlcG9zaXRvcnk3NjIyMTk0Mw==","name":"bk-cmdb","full_name":"Tencent/bk-cmdb","owner":{"login":"Tencent","id":18461506,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4NDYxNTA2","avatar_url":"https://avatars3.githubusercontent.com/u/18461506?v=4","gravatar_id":"","url":"https://api.github.com/users/Tencent","html_url":"https://github.com/Tencent","followers_url":"https://api.github.com/users/Tencent/followers","following_url":"https://api.github.com/users/Tencent/following{/other_user}","gists_url":"https://api.github.com/users/Tencent/gists{/gist_id}","starred_url":"https://api.github.com/users/Tencent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tencent/subscriptions","organizations_url":"https://api.github.com/users/Tencent/orgs","repos_url":"https://api.github.com/users/Tencent/repos","events_url":"https://api.github.com/users/Tencent/events{/privacy}","received_events_url":"https://api.github.com/users/Tencent/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Tencent/bk-cmdb","description":"蓝鲸智云配置平台(blueking cmdb)","fork":false,"url":"https://api.github.com/repos/Tencent/bk-cmdb","forks_url":"https://api.github.com/repos/Tencent/bk-cmdb/forks","keys_url":"https://api.github.com/repos/Tencent/bk-cmdb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Tencent/bk-cmdb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Tencent/bk-cmdb/teams","hooks_url":"https://api.github.com/repos/Tencent/bk-cmdb/hooks","issue_events_url":"https://api.github.com/repos/Tencent/bk-cmdb/issues/events{/number}","events_url":"https://api.github.com/repos/Tencent/bk-cmdb/events","assignees_url":"https://api.github.com/repos/Tencent/bk-cmdb/assignees{/user}","branches_url":"https://api.github.com/repos/Tencent/bk-cmdb/branches{/branch}","tags_url":"https://api.github.com/repos/Tencent/bk-cmdb/tags","blobs_url":"https://api.github.com/repos/Tencent/bk-cmdb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Tencent/bk-cmdb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Tencent/bk-cmdb/git/refs{/sha}","trees_url":"https://api.github.com/repos/Tencent/bk-cmdb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Tencent/bk-cmdb/statuses/{sha}","languages_url":"https://api.github.com/repos/Tencent/bk-cmdb/languages","stargazers_url":"https://api.github.com/repos/Tencent/bk-cmdb/stargazers","contributors_url":"https://api.github.com/repos/Tencent/bk-cmdb/contributors","subscribers_url":"https://api.github.com/repos/Tencent/bk-cmdb/subscribers","subscription_url":"https://api.github.com/repos/Tencent/bk-cmdb/subscription","commits_url":"https://api.github.com/repos/Tencent/bk-cmdb/commits{/sha}","git_commits_url":"https://api.github.com/repos/Tencent/bk-cmdb/git/commits{/sha}","comments_url":"https://api.github.com/repos/Tencent/bk-cmdb/comments{/number}","issue_comment_url":"https://api.github.com/repos/Tencent/bk-cmdb/issues/comments{/number}","contents_url":"https://api.github.com/repos/Tencent/bk-cmdb/contents/{+path}","compare_url":"https://api.github.com/repos/Tencent/bk-cmdb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Tencent/bk-cmdb/merges","archive_url":"https://api.github.com/repos/Tencent/bk-cmdb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Tencent/bk-cmdb/downloads","issues_url":"https://api.github.com/repos/Tencent/bk-cmdb/issues{/number}","pulls_url":"https://api.github.com/repos/Tencent/bk-cmdb/pulls{/number}","milestones_url":"https://api.github.com/repos/Tencent/bk-cmdb/milestones{/number}","notifications_url":"https://api.github.com/repos/Tencent/bk-cmdb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Tencent/bk-cmdb/labels{/name}","releases_url":"https://api.github.com/repos/Tencent/bk-cmdb/releases{/id}","deployments_url":"https://api.github.com/repos/Tencent/bk-cmdb/deployments","created_at":"2016-12-12T04:29:08Z","updated_at":"2018-06-28T06:24:35Z","pushed_at":"2018-06-28T06:39:22Z","git_url":"git://github.com/Tencent/bk-cmdb.git","ssh_url":"git@github.com:Tencent/bk-cmdb.git","clone_url":"https://github.com/Tencent/bk-cmdb.git","svn_url":"https://github.com/Tencent/bk-cmdb","homepage":"http://bk.tencent.com","size":30044,"stargazers_count":1264,"watchers_count":1264,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":507,"mirror_url":null,"archived":false,"open_issues_count":75,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":507,"open_issues":75,"watchers":1264,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/672"},"html":{"href":"https://github.com/Tencent/bk-cmdb/pull/672"},"issue":{"href":"https://api.github.com/repos/Tencent/bk-cmdb/issues/672"},"comments":{"href":"https://api.github.com/repos/Tencent/bk-cmdb/issues/672/comments"},"review_comments":{"href":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/672/comments"},"review_comment":{"href":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Tencent/bk-cmdb/pulls/672/commits"},"statuses":{"href":"https://api.github.com/repos/Tencent/bk-cmdb/statuses/19c17b5070a022f7c1414b657b3da9e59fe8be68"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"lowenitt"}}