{"action":"created","comment":{"url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments/317555066","pull_request_review_id":279529067,"id":317555066,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMxNzU1NTA2Ng==","diff_hunk":"@@ -0,0 +1,211 @@\n+#region Copyright & License Information\n+/*\n+ * Copyright 2007-2019 The OpenRA Developers (see AUTHORS)\n+ * This file is part of OpenRA, which is free software. It is made\n+ * available to you under the terms of the GNU General Public License\n+ * as published by the Free Software Foundation, either version 3 of\n+ * the License, or (at your option) any later version. For more\n+ * information, see COPYING.\n+ */\n+#endregion\n+\n+using System.Collections.Generic;\n+using System.Linq;\n+using OpenRA.Mods.Common.Traits;\n+using OpenRA.Traits;\n+\n+namespace OpenRA.Mods.Cnc.Traits\n+{\n+\t[Desc(\"Grants a prerequisite while discharging at a configurable rate.\")]\n+\tpublic class GrantPrerequisiteChargeDrainPowerInfo : SupportPowerInfo, ITechTreePrerequisiteInfo\n+\t{\n+\t\t[Desc(\"Rate at which the power discharges compared to charging\")]\n+\t\tpublic readonly int DischargeModifier = 300;\n+\n+\t\t[FieldLoader.Require]\n+\t\t[Desc(\"The prerequisite type that this provides.\")]\n+\t\tpublic readonly string Prerequisite = null;\n+\n+\t\t[Translate]\n+\t\t[Desc(\"Label to display over the support power icon and in its tooltip while the power is active.\")]\n+\t\tpublic readonly string ActiveText = \"ACTIVE\";\n+\n+\t\t[Translate]\n+\t\t[Desc(\"Label to display over the support power icon and in its tooltip while the power is available but not active.\")]\n+\t\tpublic readonly string AvailableText = \"READY\";\n+\n+\t\tIEnumerable<string> ITechTreePrerequisiteInfo.Prerequisites(ActorInfo info)\n+\t\t{\n+\t\t\tyield return Prerequisite;\n+\t\t}\n+\n+\t\tpublic override object Create(ActorInitializer init) { return new GrantPrerequisiteChargeDrainPower(init.Self, this); }\n+\t}\n+\n+\tpublic class GrantPrerequisiteChargeDrainPower : SupportPower, ITechTreePrerequisite, INotifyOwnerChanged\n+\t{\n+\t\treadonly GrantPrerequisiteChargeDrainPowerInfo info;\n+\t\tTechTree techTree;\n+\t\tbool active;\n+\n+\t\tpublic GrantPrerequisiteChargeDrainPower(Actor self, GrantPrerequisiteChargeDrainPowerInfo info)\n+\t\t\t: base(self, info)\n+\t\t{\n+\t\t\tthis.info = info;\n+\t\t}\n+\n+\t\tprotected override void Created(Actor self)\n+\t\t{\n+\t\t\t// Special case handling is required for the Player actor.\n+\t\t\t// Created is called before Player.PlayerActor is assigned,\n+\t\t\t// so we must query other player traits from self, knowing that\n+\t\t\t// it refers to the same actor as self.Owner.PlayerActor\n+\t\t\tvar playerActor = self.Info.Name == \"player\" ? self : self.Owner.PlayerActor;\n+\n+\t\t\ttechTree = playerActor.Trait<TechTree>();\n+\n+\t\t\tbase.Created(self);\n+\t\t}\n+\n+\t\tvoid INotifyOwnerChanged.OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)\n+\t\t{\n+\t\t\ttechTree = newOwner.PlayerActor.Trait<TechTree>();\n+\t\t\tactive = false;\n+\t\t}\n+\n+\t\tpublic override SupportPowerInstance CreateInstance(string key, SupportPowerManager manager)\n+\t\t{\n+\t\t\treturn new DischargableSupportPowerInstance(key, info, manager);\n+\t\t}\n+\n+\t\tpublic void Activate(Actor self, SupportPowerInstance instance)\n+\t\t{\n+\t\t\tactive = true;\n+\t\t\ttechTree.ActorChanged(self);\n+\t\t}\n+\n+\t\tpublic void Deactivate(Actor self, SupportPowerInstance instance)\n+\t\t{\n+\t\t\tactive = false;\n+\t\t\ttechTree.ActorChanged(self);\n+\t\t}\n+\n+\t\tIEnumerable<string> ITechTreePrerequisite.ProvidesPrerequisites\n+\t\t{\n+\t\t\tget\n+\t\t\t{\n+\t\t\t\tif (!active)\n+\t\t\t\t\tyield break;\n+\n+\t\t\t\tyield return info.Prerequisite;\n+\t\t\t}\n+\t\t}\n+\n+\t\tpublic class DischargableSupportPowerInstance : SupportPowerInstance","path":"OpenRA.Mods.Cnc/Traits/SupportPowers/GrantPrerequisiteChargeDrainPower.cs","position":104,"original_position":104,"commit_id":"78cbfa9c8c0c354aa7d2afd029e90940aa6313b2","original_commit_id":"78cbfa9c8c0c354aa7d2afd029e90940aa6313b2","user":{"login":"pchote","id":167819,"node_id":"MDQ6VXNlcjE2NzgxOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/167819?v=4","gravatar_id":"","url":"https://api.github.com/users/pchote","html_url":"https://github.com/pchote","followers_url":"https://api.github.com/users/pchote/followers","following_url":"https://api.github.com/users/pchote/following{/other_user}","gists_url":"https://api.github.com/users/pchote/gists{/gist_id}","starred_url":"https://api.github.com/users/pchote/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pchote/subscriptions","organizations_url":"https://api.github.com/users/pchote/orgs","repos_url":"https://api.github.com/users/pchote/repos","events_url":"https://api.github.com/users/pchote/events{/privacy}","received_events_url":"https://api.github.com/users/pchote/received_events","type":"User","site_admin":false},"body":"This is an internal implementation detail that is only useful for things that are intentionally messing with the internal behaviour of the support power (the `DrainPrerequisitePowerOnDamage` trait), so yes.","created_at":"2019-08-26T11:05:14Z","updated_at":"2019-08-26T11:05:14Z","html_url":"https://github.com/OpenRA/OpenRA/pull/16347#discussion_r317555066","pull_request_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/16347","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments/317555066"},"html":{"href":"https://github.com/OpenRA/OpenRA/pull/16347#discussion_r317555066"},"pull_request":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/16347"}},"in_reply_to_id":317554445},"pull_request":{"url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/16347","id":263849023,"node_id":"MDExOlB1bGxSZXF1ZXN0MjYzODQ5MDIz","html_url":"https://github.com/OpenRA/OpenRA/pull/16347","diff_url":"https://github.com/OpenRA/OpenRA/pull/16347.diff","patch_url":"https://github.com/OpenRA/OpenRA/pull/16347.patch","issue_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/16347","number":16347,"state":"open","locked":false,"title":"Implement GrantPrerequisiteChargeDrainPower logic","user":{"login":"pchote","id":167819,"node_id":"MDQ6VXNlcjE2NzgxOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/167819?v=4","gravatar_id":"","url":"https://api.github.com/users/pchote","html_url":"https://github.com/pchote","followers_url":"https://api.github.com/users/pchote/followers","following_url":"https://api.github.com/users/pchote/following{/other_user}","gists_url":"https://api.github.com/users/pchote/gists{/gist_id}","starred_url":"https://api.github.com/users/pchote/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pchote/subscriptions","organizations_url":"https://api.github.com/users/pchote/orgs","repos_url":"https://api.github.com/users/pchote/repos","events_url":"https://api.github.com/users/pchote/events{/privacy}","received_events_url":"https://api.github.com/users/pchote/received_events","type":"User","site_admin":false},"body":"This PR generalizes the the support power logic to give implementations more flexibility in overriding their charging and targeting behaviour, and adds two new traits:\r\n\r\n* `GrantPrerequisiteChargeDrainPower`: Grants a prerequisite when activated, and then counts backwards at a rate controlled by `DischargeModifier` until the timer reaches 0. The player can deactivate the power before it runs out by selecting it again, and the timer will recharge from the intermediate point.  If the power was disabled manually (i.e. did not completely run out) then the player can reactivate it at any time.\r\n\r\n* `DrainPrerequisitePowerOnDamage`: If enabled, any damage recieved by this actor will be converted to a time using `DamageMultiplier` and `DamageDivisor` which will be subtracted from the `GrantPrerequisiteChargeDrainPower` with matching `OrderName`.\r\n\r\nThese traits implement the special case behaviour for the TS Firestorm Defense support power described by [UseChargeDrain](https://www.modenc.renegadeprojects.com/UseChargeDrain), [ChargeToDrainRatio](https://www.modenc.renegadeprojects.com/ChargeToDrainRatio), [FirestormWall](https://www.modenc.renegadeprojects.com/FirestormWall), and [DamageToFirestormDamageCoefficient](https://www.modenc.renegadeprojects.com/DamageToFirestormDamageCoefficient).\r\n\r\nThis is the first of three PRs that will resolve #10789.  The second PR will overhaul projectile blocking and effects before a third PR implements the Fire Storm Generator / Firestorm Wall / Firestorm Defense properly in TS.\r\n\r\nThe testcase demonstrates its use on the RA Iron Curtain. ","created_at":"2019-03-23T17:42:40Z","updated_at":"2019-08-26T11:05:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7a06b8ecf90c1f0ba00e5dbdc6da593e148f1c04","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":693572992,"node_id":"MDU6TGFiZWw2OTM1NzI5OTI=","url":"https://api.github.com/repos/OpenRA/OpenRA/labels/PR:%20Is%20Dependency","name":"PR: Is Dependency","color":"bbee04","default":false}],"milestone":{"url":"https://api.github.com/repos/OpenRA/OpenRA/milestones/29","html_url":"https://github.com/OpenRA/OpenRA/milestone/29","labels_url":"https://api.github.com/repos/OpenRA/OpenRA/milestones/29/labels","id":4249923,"node_id":"MDk6TWlsZXN0b25lNDI0OTkyMw==","number":29,"title":"Next+1","description":"","creator":{"login":"reaperrr","id":2857877,"node_id":"MDQ6VXNlcjI4NTc4Nzc=","avatar_url":"https://avatars3.githubusercontent.com/u/2857877?v=4","gravatar_id":"","url":"https://api.github.com/users/reaperrr","html_url":"https://github.com/reaperrr","followers_url":"https://api.github.com/users/reaperrr/followers","following_url":"https://api.github.com/users/reaperrr/following{/other_user}","gists_url":"https://api.github.com/users/reaperrr/gists{/gist_id}","starred_url":"https://api.github.com/users/reaperrr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/reaperrr/subscriptions","organizations_url":"https://api.github.com/users/reaperrr/orgs","repos_url":"https://api.github.com/users/reaperrr/repos","events_url":"https://api.github.com/users/reaperrr/events{/privacy}","received_events_url":"https://api.github.com/users/reaperrr/received_events","type":"User","site_admin":false},"open_issues":25,"closed_issues":0,"state":"open","created_at":"2019-04-22T22:31:10Z","updated_at":"2019-08-26T08:56:31Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/16347/commits","review_comments_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/16347/comments","review_comment_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/16347/comments","statuses_url":"https://api.github.com/repos/OpenRA/OpenRA/statuses/78cbfa9c8c0c354aa7d2afd029e90940aa6313b2","head":{"label":"pchote:discharge-supportpower","ref":"discharge-supportpower","sha":"78cbfa9c8c0c354aa7d2afd029e90940aa6313b2","user":{"login":"pchote","id":167819,"node_id":"MDQ6VXNlcjE2NzgxOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/167819?v=4","gravatar_id":"","url":"https://api.github.com/users/pchote","html_url":"https://github.com/pchote","followers_url":"https://api.github.com/users/pchote/followers","following_url":"https://api.github.com/users/pchote/following{/other_user}","gists_url":"https://api.github.com/users/pchote/gists{/gist_id}","starred_url":"https://api.github.com/users/pchote/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pchote/subscriptions","organizations_url":"https://api.github.com/users/pchote/orgs","repos_url":"https://api.github.com/users/pchote/repos","events_url":"https://api.github.com/users/pchote/events{/privacy}","received_events_url":"https://api.github.com/users/pchote/received_events","type":"User","site_admin":false},"repo":{"id":455831,"node_id":"MDEwOlJlcG9zaXRvcnk0NTU4MzE=","name":"OpenRA","full_name":"pchote/OpenRA","private":false,"owner":{"login":"pchote","id":167819,"node_id":"MDQ6VXNlcjE2NzgxOQ==","avatar_url":"https://avatars1.githubusercontent.com/u/167819?v=4","gravatar_id":"","url":"https://api.github.com/users/pchote","html_url":"https://github.com/pchote","followers_url":"https://api.github.com/users/pchote/followers","following_url":"https://api.github.com/users/pchote/following{/other_user}","gists_url":"https://api.github.com/users/pchote/gists{/gist_id}","starred_url":"https://api.github.com/users/pchote/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pchote/subscriptions","organizations_url":"https://api.github.com/users/pchote/orgs","repos_url":"https://api.github.com/users/pchote/repos","events_url":"https://api.github.com/users/pchote/events{/privacy}","received_events_url":"https://api.github.com/users/pchote/received_events","type":"User","site_admin":false},"html_url":"https://github.com/pchote/OpenRA","description":"Open Source real-time strategy game engine for early Westwood games such as Command & Conquer: Red Alert written in C# using SDL and OpenGL. Runs on Windows, Linux, *BSD and Mac OS X.","fork":true,"url":"https://api.github.com/repos/pchote/OpenRA","forks_url":"https://api.github.com/repos/pchote/OpenRA/forks","keys_url":"https://api.github.com/repos/pchote/OpenRA/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pchote/OpenRA/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pchote/OpenRA/teams","hooks_url":"https://api.github.com/repos/pchote/OpenRA/hooks","issue_events_url":"https://api.github.com/repos/pchote/OpenRA/issues/events{/number}","events_url":"https://api.github.com/repos/pchote/OpenRA/events","assignees_url":"https://api.github.com/repos/pchote/OpenRA/assignees{/user}","branches_url":"https://api.github.com/repos/pchote/OpenRA/branches{/branch}","tags_url":"https://api.github.com/repos/pchote/OpenRA/tags","blobs_url":"https://api.github.com/repos/pchote/OpenRA/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pchote/OpenRA/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pchote/OpenRA/git/refs{/sha}","trees_url":"https://api.github.com/repos/pchote/OpenRA/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pchote/OpenRA/statuses/{sha}","languages_url":"https://api.github.com/repos/pchote/OpenRA/languages","stargazers_url":"https://api.github.com/repos/pchote/OpenRA/stargazers","contributors_url":"https://api.github.com/repos/pchote/OpenRA/contributors","subscribers_url":"https://api.github.com/repos/pchote/OpenRA/subscribers","subscription_url":"https://api.github.com/repos/pchote/OpenRA/subscription","commits_url":"https://api.github.com/repos/pchote/OpenRA/commits{/sha}","git_commits_url":"https://api.github.com/repos/pchote/OpenRA/git/commits{/sha}","comments_url":"https://api.github.com/repos/pchote/OpenRA/comments{/number}","issue_comment_url":"https://api.github.com/repos/pchote/OpenRA/issues/comments{/number}","contents_url":"https://api.github.com/repos/pchote/OpenRA/contents/{+path}","compare_url":"https://api.github.com/repos/pchote/OpenRA/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pchote/OpenRA/merges","archive_url":"https://api.github.com/repos/pchote/OpenRA/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pchote/OpenRA/downloads","issues_url":"https://api.github.com/repos/pchote/OpenRA/issues{/number}","pulls_url":"https://api.github.com/repos/pchote/OpenRA/pulls{/number}","milestones_url":"https://api.github.com/repos/pchote/OpenRA/milestones{/number}","notifications_url":"https://api.github.com/repos/pchote/OpenRA/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pchote/OpenRA/labels{/name}","releases_url":"https://api.github.com/repos/pchote/OpenRA/releases{/id}","deployments_url":"https://api.github.com/repos/pchote/OpenRA/deployments","created_at":"2010-01-02T07:54:09Z","updated_at":"2019-08-26T09:20:34Z","pushed_at":"2019-08-26T09:20:26Z","git_url":"git://github.com/pchote/OpenRA.git","ssh_url":"git@github.com:pchote/OpenRA.git","clone_url":"https://github.com/pchote/OpenRA.git","svn_url":"https://github.com/pchote/OpenRA","homepage":"http://www.openra.net","size":142806,"stargazers_count":14,"watchers_count":14,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":0,"open_issues":0,"watchers":14,"default_branch":"master"}},"base":{"label":"OpenRA:bleed","ref":"bleed","sha":"2b4ad71151233fb128c0f9a2fd2260c26c34ab60","user":{"login":"OpenRA","id":409046,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQwOTA0Ng==","avatar_url":"https://avatars0.githubusercontent.com/u/409046?v=4","gravatar_id":"","url":"https://api.github.com/users/OpenRA","html_url":"https://github.com/OpenRA","followers_url":"https://api.github.com/users/OpenRA/followers","following_url":"https://api.github.com/users/OpenRA/following{/other_user}","gists_url":"https://api.github.com/users/OpenRA/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenRA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenRA/subscriptions","organizations_url":"https://api.github.com/users/OpenRA/orgs","repos_url":"https://api.github.com/users/OpenRA/repos","events_url":"https://api.github.com/users/OpenRA/events{/privacy}","received_events_url":"https://api.github.com/users/OpenRA/received_events","type":"Organization","site_admin":false},"repo":{"id":959908,"node_id":"MDEwOlJlcG9zaXRvcnk5NTk5MDg=","name":"OpenRA","full_name":"OpenRA/OpenRA","private":false,"owner":{"login":"OpenRA","id":409046,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQwOTA0Ng==","avatar_url":"https://avatars0.githubusercontent.com/u/409046?v=4","gravatar_id":"","url":"https://api.github.com/users/OpenRA","html_url":"https://github.com/OpenRA","followers_url":"https://api.github.com/users/OpenRA/followers","following_url":"https://api.github.com/users/OpenRA/following{/other_user}","gists_url":"https://api.github.com/users/OpenRA/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenRA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenRA/subscriptions","organizations_url":"https://api.github.com/users/OpenRA/orgs","repos_url":"https://api.github.com/users/OpenRA/repos","events_url":"https://api.github.com/users/OpenRA/events{/privacy}","received_events_url":"https://api.github.com/users/OpenRA/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/OpenRA/OpenRA","description":"Open Source real-time strategy game engine for early Westwood games such as Command & Conquer: Red Alert written in C# using SDL and OpenGL. Runs on Windows, Linux, *BSD and Mac OS X.","fork":false,"url":"https://api.github.com/repos/OpenRA/OpenRA","forks_url":"https://api.github.com/repos/OpenRA/OpenRA/forks","keys_url":"https://api.github.com/repos/OpenRA/OpenRA/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenRA/OpenRA/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenRA/OpenRA/teams","hooks_url":"https://api.github.com/repos/OpenRA/OpenRA/hooks","issue_events_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/events{/number}","events_url":"https://api.github.com/repos/OpenRA/OpenRA/events","assignees_url":"https://api.github.com/repos/OpenRA/OpenRA/assignees{/user}","branches_url":"https://api.github.com/repos/OpenRA/OpenRA/branches{/branch}","tags_url":"https://api.github.com/repos/OpenRA/OpenRA/tags","blobs_url":"https://api.github.com/repos/OpenRA/OpenRA/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenRA/OpenRA/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenRA/OpenRA/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenRA/OpenRA/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenRA/OpenRA/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenRA/OpenRA/languages","stargazers_url":"https://api.github.com/repos/OpenRA/OpenRA/stargazers","contributors_url":"https://api.github.com/repos/OpenRA/OpenRA/contributors","subscribers_url":"https://api.github.com/repos/OpenRA/OpenRA/subscribers","subscription_url":"https://api.github.com/repos/OpenRA/OpenRA/subscription","commits_url":"https://api.github.com/repos/OpenRA/OpenRA/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenRA/OpenRA/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenRA/OpenRA/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenRA/OpenRA/contents/{+path}","compare_url":"https://api.github.com/repos/OpenRA/OpenRA/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenRA/OpenRA/merges","archive_url":"https://api.github.com/repos/OpenRA/OpenRA/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenRA/OpenRA/downloads","issues_url":"https://api.github.com/repos/OpenRA/OpenRA/issues{/number}","pulls_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenRA/OpenRA/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenRA/OpenRA/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenRA/OpenRA/labels{/name}","releases_url":"https://api.github.com/repos/OpenRA/OpenRA/releases{/id}","deployments_url":"https://api.github.com/repos/OpenRA/OpenRA/deployments","created_at":"2010-10-04T07:38:05Z","updated_at":"2019-08-26T10:29:41Z","pushed_at":"2019-08-26T09:11:58Z","git_url":"git://github.com/OpenRA/OpenRA.git","ssh_url":"git@github.com:OpenRA/OpenRA.git","clone_url":"https://github.com/OpenRA/OpenRA.git","svn_url":"https://github.com/OpenRA/OpenRA","homepage":"http://www.openra.net","size":142312,"stargazers_count":6659,"watchers_count":6659,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1807,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1484,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":1807,"open_issues":1484,"watchers":6659,"default_branch":"bleed"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/16347"},"html":{"href":"https://github.com/OpenRA/OpenRA/pull/16347"},"issue":{"href":"https://api.github.com/repos/OpenRA/OpenRA/issues/16347"},"comments":{"href":"https://api.github.com/repos/OpenRA/OpenRA/issues/16347/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/16347/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/16347/commits"},"statuses":{"href":"https://api.github.com/repos/OpenRA/OpenRA/statuses/78cbfa9c8c0c354aa7d2afd029e90940aa6313b2"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"pchote"}}