{"action":"created","comment":{"url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments/200487230","pull_request_review_id":134814980,"id":200487230,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMDQ4NzIzMA==","diff_hunk":"@@ -0,0 +1,251 @@\n+#region Copyright & License Information\n+/*\n+ * Copyright 2007-2018 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.Drawing;\n+using System.Linq;\n+using OpenRA.GameRules;\n+using OpenRA.Mods.Common;\n+using OpenRA.Mods.Common.Traits;\n+using OpenRA.Mods.Common.Traits.Render;\n+using OpenRA.Primitives;\n+using OpenRA.Traits;\n+\n+namespace OpenRA.Mods.Cnc.Traits\n+{\n+\t[Desc(\"Implements the special case handling for the Chronoshiftable return on a construction yard.\",\n+\t\t\"Actors that are actively (un)deploying will be returned to the origin as the original actor.\",\n+\t\t\"Otherwise, a vortex animation is played and damage is dealt each tick, ignoring modifiers.\")]\n+\tpublic class ConyardChronoReturnInfo : ITraitInfo, Requires<HealthInfo>, Requires<WithSpriteBodyInfo>\n+\t{\n+\t\t[Desc(\"Sequence name with the baked-in vortex animation\"), SequenceReference]\n+\t\tpublic readonly string Sequence = \"pdox\";\n+\n+\t\t[Desc(\"Sprite body to play the vortex animation on.\")]\n+\t\tpublic readonly string Body = \"body\";\n+\n+\t\t[GrantedConditionReference]\n+\t\t[Desc(\"Condition to grant while the vortex animation plays.\")]\n+\t\tpublic readonly string Condition = null;\n+\n+\t\t[Desc(\"Amount of damage to apply each tick while the vortex animation plays.\")]\n+\t\tpublic readonly int Damage = 1000;\n+\n+\t\t[Desc(\"Apply the damage using these damagetypes.\")]\n+\t\tpublic readonly HashSet<string> DamageTypes = new HashSet<string>();\n+\n+\t\t[Desc(\"Actor to transform into when the timer expires during (un)deploy.\"), ActorReference, FieldLoader.Require]\n+\t\tpublic readonly string OriginalActor = null;\n+\n+\t\t[Desc(\"Facing of the returned actor.\")]\n+\t\tpublic readonly int Facing = 96;\n+\n+\t\tpublic readonly string ChronoshiftSound = \"chrono2.aud\";\n+\n+\t\t[Desc(\"The color the bar of the 'return-to-origin' logic has.\")]\n+\t\tpublic readonly Color TimeBarColor = Color.White;\n+\n+\t\tpublic object Create(ActorInitializer init) { return new ConyardChronoReturn(init, this); }\n+\t}\n+\n+\tpublic class ConyardChronoReturn : INotifyCreated, ITick, ISync, ISelectionBar, IDeathActorInitModifier,\n+\t\tITransformActorInitModifier, INotifyBuildComplete, INotifySold, INotifyTransform\n+\t{\n+\t\treadonly ConyardChronoReturnInfo info;\n+\t\treadonly WithSpriteBody wsb;\n+\t\treadonly Health health;\n+\t\treadonly Actor self;\n+\t\treadonly string faction;\n+\n+\t\tIPositionable positionable;\n+\t\tConditionManager conditionManager;\n+\t\tint conditionToken = ConditionManager.InvalidConditionToken;\n+\n+\t\tActor chronosphere;\n+\t\tint duration;\n+\t\tbool buildComplete;\n+\t\tbool selling;\n+\n+\t\t[Sync]\n+\t\tint returnTicks = 0;\n+\n+\t\t[Sync]\n+\t\tCPos origin;\n+\n+\t\t[Sync]\n+\t\tbool triggered;\n+\n+\t\tpublic ConyardChronoReturn(ActorInitializer init, ConyardChronoReturnInfo info)\n+\t\t{\n+\t\t\tthis.info = info;\n+\t\t\tself = init.Self;\n+\n+\t\t\thealth = self.Trait<Health>();\n+\t\t\twsb = self.TraitsImplementing<WithSpriteBody>().Single(w => w.Info.Name == info.Body);\n+\t\t\tfaction = init.Contains<FactionInit>() ? init.Get<FactionInit, string>() : self.Owner.Faction.InternalName;\n+\n+\t\t\tif (init.Contains<ChronoshiftReturnInit>())\n+\t\t\t\treturnTicks = init.Get<ChronoshiftReturnInit, int>();\n+\n+\t\t\tif (init.Contains<ChronoshiftDurationInit>())\n+\t\t\t\tduration = init.Get<ChronoshiftDurationInit, int>();\n+\n+\t\t\tif (init.Contains<ChronoshiftOriginInit>())\n+\t\t\t\torigin = init.Get<ChronoshiftOriginInit, CPos>();\n+\n+\t\t\tif (init.Contains<ChronoshiftChronosphereInit>())\n+\t\t\t\tchronosphere = init.Get<ChronoshiftChronosphereInit, Actor>();\n+\t\t}\n+\n+\t\tvoid INotifyCreated.Created(Actor self)\n+\t\t{\n+\t\t\tconditionManager = self.TraitOrDefault<ConditionManager>();\n+\t\t\tpositionable = self.TraitOrDefault<IPositionable>();\n+\t\t}\n+\n+\t\tvoid TriggerVortex()\n+\t\t{\n+\t\t\tif (!string.IsNullOrEmpty(info.Condition))\n+\t\t\t\tconditionToken = conditionManager.GrantCondition(self, info.Condition);\n+\n+\t\t\ttriggered = true;\n+\n+\t\t\t// Don't override the selling animation\n+\t\t\tif (selling)\n+\t\t\t\treturn;\n+\n+\t\t\twsb.PlayCustomAnimation(self, info.Sequence, () =>\n+\t\t\t{\n+\t\t\t\ttriggered = false;\n+\t\t\t\tif (conditionToken != ConditionManager.InvalidConditionToken)\n+\t\t\t\t\tconditionToken = conditionManager.RevokeCondition(self, conditionToken);\n+\t\t\t});\n+\t\t}\n+\n+\t\tCPos? ChooseBestDestinationCell(CPos destination)\n+\t\t{\n+\t\t\tif (chronosphere == null)\n+\t\t\t\treturn null;\n+\n+\t\t\tif (positionable.CanEnterCell(destination) && chronosphere.Owner.Shroud.IsExplored(destination))\n+\t\t\t\treturn destination;\n+\n+\t\t\tvar max = chronosphere.World.Map.Grid.MaximumTileSearchRange;\n+\t\t\tforeach (var tile in self.World.Map.FindTilesInCircle(destination, max))\n+\t\t\t\tif (chronosphere.Owner.Shroud.IsExplored(tile) && positionable.CanEnterCell(tile))","path":"OpenRA.Mods.Cnc/Traits/ConyardChronoReturn.cs","position":143,"original_position":143,"commit_id":"63b15c1861eec4663301c78dee47f7947639238b","original_commit_id":"1d84b18cd347d0fd42a30f0a297b04ca00c49d98","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 copied from the `Teleport` activity.  I agree that most of that code doesn't make sense, but changing that is out of scope of this PR.","created_at":"2018-07-05T20:55:30Z","updated_at":"2018-07-05T20:55:31Z","html_url":"https://github.com/OpenRA/OpenRA/pull/15300#discussion_r200487230","pull_request_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/15300","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments/200487230"},"html":{"href":"https://github.com/OpenRA/OpenRA/pull/15300#discussion_r200487230"},"pull_request":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/15300"}},"in_reply_to_id":200393550},"pull_request":{"url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/15300","id":197811633,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk3ODExNjMz","html_url":"https://github.com/OpenRA/OpenRA/pull/15300","diff_url":"https://github.com/OpenRA/OpenRA/pull/15300.diff","patch_url":"https://github.com/OpenRA/OpenRA/pull/15300.patch","issue_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/15300","number":15300,"state":"open","locked":false,"title":"Fix Chronoshift-return and Iron Curtain being lost when a RA MCV (un)deploys.","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 fixes the long-standing inconsistency (and similarly long-standing balance complaint from parts of the community) where MCVs (but no other actors) can opt out of the chronoshift return by simply deploying (and then optionally undeploying) before the timeout expires.\r\n\r\nThe timeout is now remembered across deploy/undeploy cycles, and if the MCV is deployed when the timer runs out it will ~~be returned to its origin in the undeployed form.~~ take a 50% damage hit.\r\n\r\nThe `ChronoshiftReturnTransformedActor` trait, like the rest of the Chronoshift logic, lives in the Mods.Cnc dll and therefore is not considered a general purpose trait.  There are a number of additional things that could be added to it as part of any future migration to Mods.Common, but for now these are out of scope.\r\n\r\nFixes #13473.","created_at":"2018-06-27T18:09:52Z","updated_at":"2018-07-05T20:55:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d4e5b5e8e94e6405ad21c075a74625e3bbf68057","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":118143255,"node_id":"MDU6TGFiZWwxMTgxNDMyNTU=","url":"https://api.github.com/repos/OpenRA/OpenRA/labels/PR:%20Needs%20+2","name":"PR: Needs +2","color":"009800","default":false}],"milestone":{"url":"https://api.github.com/repos/OpenRA/OpenRA/milestones/20","html_url":"https://github.com/OpenRA/OpenRA/milestone/20","labels_url":"https://api.github.com/repos/OpenRA/OpenRA/milestones/20/labels","id":2202516,"node_id":"MDk6TWlsZXN0b25lMjIwMjUxNg==","number":20,"title":"Next release","description":"","creator":{"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},"open_issues":9,"closed_issues":93,"state":"open","created_at":"2016-12-17T20:43:34Z","updated_at":"2018-07-05T15:51:17Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/15300/commits","review_comments_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/15300/comments","review_comment_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/15300/comments","statuses_url":"https://api.github.com/repos/OpenRA/OpenRA/statuses/63b15c1861eec4663301c78dee47f7947639238b","head":{"label":"pchote:chrono-return-deployed-mcv","ref":"chrono-return-deployed-mcv","sha":"63b15c1861eec4663301c78dee47f7947639238b","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","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},"private":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":"2018-04-22T20:04:15Z","pushed_at":"2018-07-04T17:47:35Z","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":134108,"stargazers_count":13,"watchers_count":13,"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,"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":13,"default_branch":"master"}},"base":{"label":"OpenRA:bleed","ref":"bleed","sha":"f31e5d17b3f8165f4dcf1e3bc2f0300d080c4231","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","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},"private":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":"2018-07-05T17:47:02Z","pushed_at":"2018-07-05T15:51:18Z","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":133263,"stargazers_count":5381,"watchers_count":5381,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1572,"mirror_url":null,"archived":false,"open_issues_count":1452,"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":1572,"open_issues":1452,"watchers":5381,"default_branch":"bleed"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/15300"},"html":{"href":"https://github.com/OpenRA/OpenRA/pull/15300"},"issue":{"href":"https://api.github.com/repos/OpenRA/OpenRA/issues/15300"},"comments":{"href":"https://api.github.com/repos/OpenRA/OpenRA/issues/15300/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/15300/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/15300/commits"},"statuses":{"href":"https://api.github.com/repos/OpenRA/OpenRA/statuses/63b15c1861eec4663301c78dee47f7947639238b"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"pchote"}}