{"action":"created","comment":{"url":"https://api.github.com/repos/acemod/ACE3/pulls/comments/71694656","id":71694656,"diff_hunk":"@@ -522,229 +487,193 @@ if (isnil \"_return\") exitwith {};\n Global variables should not be used to pass along information from one function to another. Use arguments instead.\n \n Bad:\n-\n ```js\n fnc_example = {\n     hint GVAR(myVariable);\n };\n ```\n-\n ```js\n GVAR(myVariable) = \"hello my variable\";\n call fnc_example;\n ```\n \n Good:\n-\n ```js\n fnc_example = {\n    params [\"_content\"];\n    hint _content;\n };\n ```\n-\n ```js\n [\"hello my variable\"] call fnc_example;\n ```\n \n-\n ### 6.13. Temporary Objects & Variables\n Unnecessary temporary objects or variables should be avoided.\n \n ### 6.14. Commented out Code\n Code that is not used (commented out) shall be deleted.\n \n ### 6.15. Constant Global Variables\n-All global variables that are intended to be used as a constant shall be written in all caps with underscores between the words, with the exception of the prefix. This should be done through the usage of the `GVAR` macro family.\n-\n-Good:\n-\n-```js\n-ACE_Common_CATEGORY_NAME = 1;\n-GVAR(CATEGORY_NAME) = 1\n-```\n+There shall be no constant global variables, constants shall be put in a `#define`.\n \n ### 6.16. Logging\n Functions should whenever possible and logical, make use of logging functionality through the logging and debugging macros from CBA and ACE.\n \n ### 6.17. Constant Private Variables\n-Constant private variables that are used more as once should be put in a #define.\n+Constant private variables that are used more as once should be put in a `#define`.\n \n ### 6.18. Code used more than once\n-Any piece of code that could/is used more than once, should be put in a function and it’s seperate .sqf file, unless this code is less as 5 lines and used only in a per frame handler.\n+Any piece of code that could/is used more than once, should be put in a function and it's separate `.sqf` file, unless this code is less as 5 lines and used only in a per frame handler.\n+\n \n ## 7. Design considerations\n \n ### 7.1. Readability vs Performance\n-This is a large open source project that will get many different maintainers in it's lifespan. When writing code, keep in mind that other developers also need to be able to understand your code. Balancing readability and performance of code is a non black and white subject. The rule of tumb is:\n+This is a large open source project that will get many different maintainers in it's lifespan. When writing code, keep in mind that other developers also need to be able to understand your code. Balancing readability and performance of code is a non black and white subject. The rule of thumb is:\n \n-* When improving performance of code that sacrifices readability (or visa-versa), first see if the design of the implementation is done in the best possible way.\n-* Document that change with the reasoning in the code.\n+- When improving performance of code that sacrifices readability (or visa-versa), first see if the design of the implementation is done in the best possible way.\n+- Document that change with the reasoning in the code.\n \n ### 7.2. Scheduled vs Unscheduled\n-Avoid the usage of scheduled space as much as possible and stay in unscheduled. This is to provide a smooth experience to the user by guaranteeing code to run when we want it. See Performance considerations, Spawn & ExecVm for more information.\n+Avoid the usage of scheduled space as much as possible and stay in unscheduled. This is to provide a smooth experience to the user by guaranteeing code to run when we want it. See [Performance considerations, `spawn` & `execVM`](#avoid-spawn--execvm) for more information.\n \n This also helps avoid various bugs as a result of unguaranteed execution sequences when running multiple scripts.\n \n ### 7.3. Event driven\n All ACE3 components shall be implemented in an event driven fashion. This is done to ensure code only runs when it is required and allows for modularity through low coupling components.\n \n-Event handlers in ACE3 are implemented through our event system. They should be used to trigger or allow triggering of specific functionality.\n-\n-The commands are listed below.\n-\n-| Even Handler  |  Use |\n-| -------|---------|\n-|`[eventName, eventCodeBlock] call ace_common_fnc_addEventHandler` | adds an event handler with the event name and returns the event handler id.|\n-| `[eventName, args] call ace_common_fnc_globalEvent` | calls an event with the listed args on all machines, the local machine, and the server. |\n-|`[eventName, args] call ace_common_fnc_serverEvent` | calls an event just on the server computer (dedicated or self-hosted).|\n-| `[eventName, targetObject(s), args] call ace_common_fnc_targetEvent` | calls an event just on the targeted object or list of objects.|\n-|`[eventName, args] call ace_common_fnc_localEvent` | calls an event just on the local machine, useful for inter-module events.|\n-\n-Events can be removed or cleared with the following commands.\n-\n-| Even Handler  |  Use |\n-| -------|---------|\n-|`[eventName, eventHandlerId] call ace_common_fnc_removeEventHandler` | will remove a specific event handler of the event name, using the ID returned from `ace_common_fnc_addEventHandler`.|\n-|`[eventName] call ace_common_fnc_removeAllEventHandlers` | will remove all event handlers for that type of event.|\n+Event handlers in ACE3 are implemented through CBA event system (ACE3's own event system is deprecated since 3.6.0). They should be used to trigger or allow triggering of specific functionality.\n \n-More information on the [ACE3 Events System](https://ace3mod.com/wiki/ACE-Events-System) page.\n+More information on the [CBA Events System](https://github.com/CBATeam/CBA_A3/wiki/Custom-Events-System) and [CBA Player Events](https://github.com/CBATeam/CBA_A3/wiki/Player-Events) pages.\n \n ### 7.4. Hashes\n \n-When a key value pair is required, make use of the Hash implementation from ACE.\n+When a key value pair is required, make use of the hash implementation from ACE3.\n \n Hashes are a variable type that store key value pairs. They are not implemented natively in SQF, so there are a number of macros and functions for their usage in ACE3. If you are unfamiliar with the idea, they are similar in function to `setVariable`/`getVariable` but do not require an object to use.\n \n The following example is a simple usage using our macros which will be explained further below.\n \n ```js\n _hash = HASHCREATE;\n-HASH_SET(_hash, \"key\", \"value\");\n-if(HASH_HASKEY(_hash, \"key\")) then {\n-    player sideChat format[\"val: %1\", HASH_GET(_hash, \"key\"); // will print out \"val: value\"\n+HASH_SET(_hash,\"key\",\"value\");\n+if (HASH_HASKEY(_hash,\"key\")) then {\n+    player sideChat format [\"val: %1\", HASH_GET(_hash,\"key\"); // will print out \"val: value\"\n };\n-HASH_REM(_hash, \"key\");\n-if(HASH_HASKEY(_hash, \"key\")) then {\n+HASH_REM(_hash,\"key\");\n+if (HASH_HASKEY(_hash,\"key\")) then {\n     // this will never execute because we removed the hash key/val pair \"key\"\n };\n ```\n \n A description of the above macros is below.\n \n-| Macro  |  Use |\n-| -------|---------|\n-|`HASHCREATE` | used to create an empty hash.|\n-| `HASH_SET(hash, key, val)` | will set the hash key to that value, a key can be anything, even objects. |\n-|`HASH_GET(hash, key)` | will return the value of that key (or nil if it doesn't exist). |\n-| `HASH_HASKEY(hash, key)` | will return true/false if that key exists in the hash. |\n-| `HASH_REM(hash, key)` | will remove that hash key.|\n+| Macro | Use |\n+| ------|-------|\n+|`HASHCREATE` | Used to create an empty hash. |\n+|`HASH_SET(hash,key,val)` | Will set the hash key to that value, a key can be anything, even objects. |\n+|`HASH_GET(hash,key)` | Will return the value of that key (or nil if it doesn't exist). |\n+|`HASH_HASKEY(hash,key)` | Will return true/false if that key exists in the hash. |\n+|`HASH_REM(hash,key)` | Will remove that hash key. |\n \n #### 7.4.1. Hashlists\n \n-A hashlist is an extension of a hash. It is a list of hashes! The reason for having this special type of storage container rather than using a normal array is that an array of normal hashes that are are similar will duplicate a large amount of data in their storage of keys. A hashlist on the other hand uses a common list of keys and an array of unique value containers. The following will demonstrate it's usage.\n+A hashlist is an extension of a hash. It is a list of hashes! The reason for having this special type of storage container rather than using a normal array is that an array of normal hashes that are similar will duplicate a large amount of data in their storage of keys. A hashlist on the other hand uses a common list of keys and an array of unique value containers. The following will demonstrate it's usage.\n \n ```js\n-_defaultKeys = [\"key1\",\"key2\",\"key3\"];\n+_defaultKeys = [\"key1\", \"key2\", \"key3\"];\n // create a new hashlist using the above keys as default\n _hashList = HASHLIST_CREATELIST(_defaultKeys);\n \n //lets get a blank hash template out of this hashlist\n _hash = HASHLIST_CREATEHASH(_hashList);\n \n //_hash is now a standard hash...\n-HASH_SET(_hash, \"key1\", \"1\");\n+HASH_SET(_hash,\"key1\",\"1\");\n \n //to store it to the list we need to push it to the list\n HASHLIST_PUSH(_hashList, _hash);\n \n //now lets get it out and store it in something else for fun\n //it was pushed to an empty list, so it's index is 0\n-_anotherHash = HASHLIST_SELECT(_hashList, 0);\n+_anotherHash = HASHLIST_SELECT(_hashList,0);\n \n // this should print \"val: 1\"\n-player sideChat format[\"val: %1\", HASH_GET(_anotherHash, \"key1\")];\n+player sideChat format[\"val: %1\", HASH_GET(_anotherHash,\"key1\")];\n \n //Say we need to add a new key to the hashlist\n //that we didn't initialize it with? We can simply\n //set a new key using the standard HASH_SET macro\n-HASH_SET(_anotherHash, \"anotherKey\", \"another value\");\n+HASH_SET(_anotherHash,\"anotherKey\",\"another value\");\n ```\n \n As you can see above working with hashlists are fairly simple, a more in depth explanation of the macros is below.\n \n-\n | Macro  |  Use |\n | -------|---------|\n-|`HASHLIST_CREATELIST(keys)` | creates a new hashlist with the default keys, pass [] for no default keys.|\n-|`HASHLIST_CREATEHASH(hashlist)` | returns a blank hash template from a hashlist.|\n-|`HASHLIST_PUSH(hashList, hash)` | pushes a new hash onto the end of the list.|\n-|`HASHLIST_SELECT(hashlist, index)` | returns the hash at that index in the list. |\n-|`HASHLIST_SET(hashlist, index, hash)` | sets a specific index to that hash.|\n+|`HASHLIST_CREATELIST(keys)` | Creates a new hashlist with the default keys, pass [] for no default keys. |\n+|`HASHLIST_CREATEHASH(hashlist)` | Returns a blank hash template from a hashlist. |\n+|`HASHLIST_PUSH(hashList, hash)` | Pushes a new hash onto the end of the list. |\n+|`HASHLIST_SELECT(hashlist, index)` | Returns the hash at that index in the list. |\n+|`HASHLIST_SET(hashlist, index, hash)` | Sets a specific index to that hash. |\n \n ##### 7.4.1.1. A note on pass by reference and hashes\n \n-Hashes and hashlists are implemented with SQF arrays, and as such they are passed by reference to other functions. Remember to make copies (using the + operator) if you intend for the hash or hashlist to be modified with out the need for changing the original value.\n+Hashes and hashlists are implemented with SQF arrays, and as such they are passed by reference to other functions. Remember to make copies (using the `+` operator) if you intend for the hash or hashlist to be modified with out the need for changing the original value.\n \n ## 8. Performance Considerations\n \n ### 8.1. Adding Elements to Arrays\n-When adding new elements to an array, pushback shall be used instead of the binary addition or set. When adding multiple elements to an array `append` may be used instead of pushback.\n+When adding new elements to an array, `pushBack` shall be used instead of the binary addition or `set`. When adding multiple elements to an array `append` may be used instead.\n \n Good:\n-\n ```js\n-_a pushback _value;\n+_a pushBack _value;\n ```\n \n Also good:\n-\n ```js\n _a append [1,2,3];\n ```\n \n Bad:\n-\n ```js\n _a set [ count _a, _value];\n _a = a + _[value];\n ```\n \n-When adding an new element to a dynamic location in an array or when the index is precaluclated, set may be used.\n+When adding an new element to a dynamic location in an array or when the index is pre-calculated, `set` may be used.\n \n When adding multiple elements to an array, the binary addition may be used for the entire addition.\n \n-### 8.2. CreateVehicle\n-CreateVehicle array shall be used instead of createVehicle\n+### 8.2. `createVehicle`\n+`createVehicle` array shall be used.\n \n ### 8.3. Unscheduled vs Scheduled\n-All code that has a visable effect for the user or requires time specific guaranteed excution shall be written in unscheduled space.\n+All code that has a visible effect for the user or requires time specific guaranteed execution shall be written in unscheduled space.\n \n-### 8.4. Avoid Spawn & execVM\n-ExecVM and spawn are to be avoided wherever possible.\n+### 8.4. Avoid `spawn` & `execVM`\n+`execVM` and `spawn` are to be avoided wherever possible.\n \n ### 8.5. Empty Arrays\n-When checking if an array is empty, you can use both count or isEqualTo.\n+When checking if an array is empty `isEqualTo` shall be used.\n \n-### 8.6. For Loops\n+### 8.6. `for` Loops\n \n ```js\n for \"_y\" from # to # step # do { ... }\n ```\n-\n should be used instead of\n-\n ```js\n for [{ ... },{ ... },{ ... }] do { ... };\n ```\n-\n whenever possible.\n \n-### 8.7. While Loops\n-While is only allowed when used to perform a unknown finite amount of steps with unknown or variable increments. Infinited while loops are not allowed.\n+### 8.7. `while` Loops\n+While is only allowed when used to perform a unknown finite amount of steps with unknown or variable increments. Infinite `while` loops are not allowed.\n \n Good:\n-","path":"wiki/development/coding-guidelines.md","position":782,"original_position":782,"commit_id":"7b68c435e347a0ff2fe60cb20311442b63865d8b","original_commit_id":"7b68c435e347a0ff2fe60cb20311442b63865d8b","user":{"login":"jonpas","id":7935003,"avatar_url":"https://avatars.githubusercontent.com/u/7935003?v=3","gravatar_id":"","url":"https://api.github.com/users/jonpas","html_url":"https://github.com/jonpas","followers_url":"https://api.github.com/users/jonpas/followers","following_url":"https://api.github.com/users/jonpas/following{/other_user}","gists_url":"https://api.github.com/users/jonpas/gists{/gist_id}","starred_url":"https://api.github.com/users/jonpas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonpas/subscriptions","organizations_url":"https://api.github.com/users/jonpas/orgs","repos_url":"https://api.github.com/users/jonpas/repos","events_url":"https://api.github.com/users/jonpas/events{/privacy}","received_events_url":"https://api.github.com/users/jonpas/received_events","type":"User","site_admin":false},"body":"All they did was confuse me while editing, I got angry. ","created_at":"2016-07-21T12:20:26Z","updated_at":"2016-07-21T12:20:26Z","html_url":"https://github.com/acemod/ACE3/pull/4139#discussion_r71694656","pull_request_url":"https://api.github.com/repos/acemod/ACE3/pulls/4139","_links":{"self":{"href":"https://api.github.com/repos/acemod/ACE3/pulls/comments/71694656"},"html":{"href":"https://github.com/acemod/ACE3/pull/4139#discussion_r71694656"},"pull_request":{"href":"https://api.github.com/repos/acemod/ACE3/pulls/4139"}}},"pull_request":{"url":"https://api.github.com/repos/acemod/ACE3/pulls/4139","id":78232550,"html_url":"https://github.com/acemod/ACE3/pull/4139","diff_url":"https://github.com/acemod/ACE3/pull/4139.diff","patch_url":"https://github.com/acemod/ACE3/pull/4139.patch","issue_url":"https://api.github.com/repos/acemod/ACE3/issues/4139","number":4139,"state":"open","locked":false,"title":"Update coding guidelines (fix typos, wording, formatting, links)","user":{"login":"jonpas","id":7935003,"avatar_url":"https://avatars.githubusercontent.com/u/7935003?v=3","gravatar_id":"","url":"https://api.github.com/users/jonpas","html_url":"https://github.com/jonpas","followers_url":"https://api.github.com/users/jonpas/followers","following_url":"https://api.github.com/users/jonpas/following{/other_user}","gists_url":"https://api.github.com/users/jonpas/gists{/gist_id}","starred_url":"https://api.github.com/users/jonpas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonpas/subscriptions","organizations_url":"https://api.github.com/users/jonpas/orgs","repos_url":"https://api.github.com/users/jonpas/repos","events_url":"https://api.github.com/users/jonpas/events{/privacy}","received_events_url":"https://api.github.com/users/jonpas/received_events","type":"User","site_admin":false},"body":"**When merged this pull request will:**\r\n- Fix typos\r\n- Correct some wording\r\n- Make formatting consistent (no empty lines after titles and before code blocks)\r\n- Use code syntax (`code`) for all commands\r\n- Replace ACE3 events with CBA events (links to CBA wiki)\r\n- Replace dead commy2's Gist link for CBA macros to CBA macros file in CBA repo","created_at":"2016-07-20T22:47:04Z","updated_at":"2016-07-21T12:20:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7d8e426973cdddd71af1d49bb3e090d89e99d058","assignee":{"login":"jonpas","id":7935003,"avatar_url":"https://avatars.githubusercontent.com/u/7935003?v=3","gravatar_id":"","url":"https://api.github.com/users/jonpas","html_url":"https://github.com/jonpas","followers_url":"https://api.github.com/users/jonpas/followers","following_url":"https://api.github.com/users/jonpas/following{/other_user}","gists_url":"https://api.github.com/users/jonpas/gists{/gist_id}","starred_url":"https://api.github.com/users/jonpas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonpas/subscriptions","organizations_url":"https://api.github.com/users/jonpas/orgs","repos_url":"https://api.github.com/users/jonpas/repos","events_url":"https://api.github.com/users/jonpas/events{/privacy}","received_events_url":"https://api.github.com/users/jonpas/received_events","type":"User","site_admin":false},"assignees":[{"login":"jonpas","id":7935003,"avatar_url":"https://avatars.githubusercontent.com/u/7935003?v=3","gravatar_id":"","url":"https://api.github.com/users/jonpas","html_url":"https://github.com/jonpas","followers_url":"https://api.github.com/users/jonpas/followers","following_url":"https://api.github.com/users/jonpas/following{/other_user}","gists_url":"https://api.github.com/users/jonpas/gists{/gist_id}","starred_url":"https://api.github.com/users/jonpas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonpas/subscriptions","organizations_url":"https://api.github.com/users/jonpas/orgs","repos_url":"https://api.github.com/users/jonpas/repos","events_url":"https://api.github.com/users/jonpas/events{/privacy}","received_events_url":"https://api.github.com/users/jonpas/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/acemod/ACE3/milestones/4","html_url":"https://github.com/acemod/ACE3/milestones/Ongoing","labels_url":"https://api.github.com/repos/acemod/ACE3/milestones/4/labels","id":1074589,"number":4,"title":"Ongoing","description":"Tasks that do not have a specific due date and are ongoing as circumstances change.","creator":{"login":"NouberNou","id":9345914,"avatar_url":"https://avatars.githubusercontent.com/u/9345914?v=3","gravatar_id":"","url":"https://api.github.com/users/NouberNou","html_url":"https://github.com/NouberNou","followers_url":"https://api.github.com/users/NouberNou/followers","following_url":"https://api.github.com/users/NouberNou/following{/other_user}","gists_url":"https://api.github.com/users/NouberNou/gists{/gist_id}","starred_url":"https://api.github.com/users/NouberNou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NouberNou/subscriptions","organizations_url":"https://api.github.com/users/NouberNou/orgs","repos_url":"https://api.github.com/users/NouberNou/repos","events_url":"https://api.github.com/users/NouberNou/events{/privacy}","received_events_url":"https://api.github.com/users/NouberNou/received_events","type":"User","site_admin":false},"open_issues":33,"closed_issues":105,"state":"open","created_at":"2015-04-20T06:31:17Z","updated_at":"2016-07-20T22:47:04Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/acemod/ACE3/pulls/4139/commits","review_comments_url":"https://api.github.com/repos/acemod/ACE3/pulls/4139/comments","review_comment_url":"https://api.github.com/repos/acemod/ACE3/pulls/comments{/number}","comments_url":"https://api.github.com/repos/acemod/ACE3/issues/4139/comments","statuses_url":"https://api.github.com/repos/acemod/ACE3/statuses/7b68c435e347a0ff2fe60cb20311442b63865d8b","head":{"label":"acemod:fixMoreTypos","ref":"fixMoreTypos","sha":"7b68c435e347a0ff2fe60cb20311442b63865d8b","user":{"login":"acemod","id":11369030,"avatar_url":"https://avatars.githubusercontent.com/u/11369030?v=3","gravatar_id":"","url":"https://api.github.com/users/acemod","html_url":"https://github.com/acemod","followers_url":"https://api.github.com/users/acemod/followers","following_url":"https://api.github.com/users/acemod/following{/other_user}","gists_url":"https://api.github.com/users/acemod/gists{/gist_id}","starred_url":"https://api.github.com/users/acemod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acemod/subscriptions","organizations_url":"https://api.github.com/users/acemod/orgs","repos_url":"https://api.github.com/users/acemod/repos","events_url":"https://api.github.com/users/acemod/events{/privacy}","received_events_url":"https://api.github.com/users/acemod/received_events","type":"Organization","site_admin":false},"repo":{"id":29069174,"name":"ACE3","full_name":"acemod/ACE3","owner":{"login":"acemod","id":11369030,"avatar_url":"https://avatars.githubusercontent.com/u/11369030?v=3","gravatar_id":"","url":"https://api.github.com/users/acemod","html_url":"https://github.com/acemod","followers_url":"https://api.github.com/users/acemod/followers","following_url":"https://api.github.com/users/acemod/following{/other_user}","gists_url":"https://api.github.com/users/acemod/gists{/gist_id}","starred_url":"https://api.github.com/users/acemod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acemod/subscriptions","organizations_url":"https://api.github.com/users/acemod/orgs","repos_url":"https://api.github.com/users/acemod/repos","events_url":"https://api.github.com/users/acemod/events{/privacy}","received_events_url":"https://api.github.com/users/acemod/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/acemod/ACE3","description":"Open-source realism mod for Arma 3","fork":false,"url":"https://api.github.com/repos/acemod/ACE3","forks_url":"https://api.github.com/repos/acemod/ACE3/forks","keys_url":"https://api.github.com/repos/acemod/ACE3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/acemod/ACE3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/acemod/ACE3/teams","hooks_url":"https://api.github.com/repos/acemod/ACE3/hooks","issue_events_url":"https://api.github.com/repos/acemod/ACE3/issues/events{/number}","events_url":"https://api.github.com/repos/acemod/ACE3/events","assignees_url":"https://api.github.com/repos/acemod/ACE3/assignees{/user}","branches_url":"https://api.github.com/repos/acemod/ACE3/branches{/branch}","tags_url":"https://api.github.com/repos/acemod/ACE3/tags","blobs_url":"https://api.github.com/repos/acemod/ACE3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/acemod/ACE3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/acemod/ACE3/git/refs{/sha}","trees_url":"https://api.github.com/repos/acemod/ACE3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/acemod/ACE3/statuses/{sha}","languages_url":"https://api.github.com/repos/acemod/ACE3/languages","stargazers_url":"https://api.github.com/repos/acemod/ACE3/stargazers","contributors_url":"https://api.github.com/repos/acemod/ACE3/contributors","subscribers_url":"https://api.github.com/repos/acemod/ACE3/subscribers","subscription_url":"https://api.github.com/repos/acemod/ACE3/subscription","commits_url":"https://api.github.com/repos/acemod/ACE3/commits{/sha}","git_commits_url":"https://api.github.com/repos/acemod/ACE3/git/commits{/sha}","comments_url":"https://api.github.com/repos/acemod/ACE3/comments{/number}","issue_comment_url":"https://api.github.com/repos/acemod/ACE3/issues/comments{/number}","contents_url":"https://api.github.com/repos/acemod/ACE3/contents/{+path}","compare_url":"https://api.github.com/repos/acemod/ACE3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/acemod/ACE3/merges","archive_url":"https://api.github.com/repos/acemod/ACE3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/acemod/ACE3/downloads","issues_url":"https://api.github.com/repos/acemod/ACE3/issues{/number}","pulls_url":"https://api.github.com/repos/acemod/ACE3/pulls{/number}","milestones_url":"https://api.github.com/repos/acemod/ACE3/milestones{/number}","notifications_url":"https://api.github.com/repos/acemod/ACE3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/acemod/ACE3/labels{/name}","releases_url":"https://api.github.com/repos/acemod/ACE3/releases{/id}","deployments_url":"https://api.github.com/repos/acemod/ACE3/deployments","created_at":"2015-01-10T19:59:12Z","updated_at":"2016-07-21T06:55:09Z","pushed_at":"2016-07-21T02:54:53Z","git_url":"git://github.com/acemod/ACE3.git","ssh_url":"git@github.com:acemod/ACE3.git","clone_url":"https://github.com/acemod/ACE3.git","svn_url":"https://github.com/acemod/ACE3","homepage":"http://ace3mod.com/","size":488042,"stargazers_count":417,"watchers_count":417,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":337,"mirror_url":null,"open_issues_count":209,"forks":337,"open_issues":209,"watchers":417,"default_branch":"master"}},"base":{"label":"acemod:gh-pages","ref":"gh-pages","sha":"be24aa777f865494ae651423187813daa91f3c08","user":{"login":"acemod","id":11369030,"avatar_url":"https://avatars.githubusercontent.com/u/11369030?v=3","gravatar_id":"","url":"https://api.github.com/users/acemod","html_url":"https://github.com/acemod","followers_url":"https://api.github.com/users/acemod/followers","following_url":"https://api.github.com/users/acemod/following{/other_user}","gists_url":"https://api.github.com/users/acemod/gists{/gist_id}","starred_url":"https://api.github.com/users/acemod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acemod/subscriptions","organizations_url":"https://api.github.com/users/acemod/orgs","repos_url":"https://api.github.com/users/acemod/repos","events_url":"https://api.github.com/users/acemod/events{/privacy}","received_events_url":"https://api.github.com/users/acemod/received_events","type":"Organization","site_admin":false},"repo":{"id":29069174,"name":"ACE3","full_name":"acemod/ACE3","owner":{"login":"acemod","id":11369030,"avatar_url":"https://avatars.githubusercontent.com/u/11369030?v=3","gravatar_id":"","url":"https://api.github.com/users/acemod","html_url":"https://github.com/acemod","followers_url":"https://api.github.com/users/acemod/followers","following_url":"https://api.github.com/users/acemod/following{/other_user}","gists_url":"https://api.github.com/users/acemod/gists{/gist_id}","starred_url":"https://api.github.com/users/acemod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acemod/subscriptions","organizations_url":"https://api.github.com/users/acemod/orgs","repos_url":"https://api.github.com/users/acemod/repos","events_url":"https://api.github.com/users/acemod/events{/privacy}","received_events_url":"https://api.github.com/users/acemod/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/acemod/ACE3","description":"Open-source realism mod for Arma 3","fork":false,"url":"https://api.github.com/repos/acemod/ACE3","forks_url":"https://api.github.com/repos/acemod/ACE3/forks","keys_url":"https://api.github.com/repos/acemod/ACE3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/acemod/ACE3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/acemod/ACE3/teams","hooks_url":"https://api.github.com/repos/acemod/ACE3/hooks","issue_events_url":"https://api.github.com/repos/acemod/ACE3/issues/events{/number}","events_url":"https://api.github.com/repos/acemod/ACE3/events","assignees_url":"https://api.github.com/repos/acemod/ACE3/assignees{/user}","branches_url":"https://api.github.com/repos/acemod/ACE3/branches{/branch}","tags_url":"https://api.github.com/repos/acemod/ACE3/tags","blobs_url":"https://api.github.com/repos/acemod/ACE3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/acemod/ACE3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/acemod/ACE3/git/refs{/sha}","trees_url":"https://api.github.com/repos/acemod/ACE3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/acemod/ACE3/statuses/{sha}","languages_url":"https://api.github.com/repos/acemod/ACE3/languages","stargazers_url":"https://api.github.com/repos/acemod/ACE3/stargazers","contributors_url":"https://api.github.com/repos/acemod/ACE3/contributors","subscribers_url":"https://api.github.com/repos/acemod/ACE3/subscribers","subscription_url":"https://api.github.com/repos/acemod/ACE3/subscription","commits_url":"https://api.github.com/repos/acemod/ACE3/commits{/sha}","git_commits_url":"https://api.github.com/repos/acemod/ACE3/git/commits{/sha}","comments_url":"https://api.github.com/repos/acemod/ACE3/comments{/number}","issue_comment_url":"https://api.github.com/repos/acemod/ACE3/issues/comments{/number}","contents_url":"https://api.github.com/repos/acemod/ACE3/contents/{+path}","compare_url":"https://api.github.com/repos/acemod/ACE3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/acemod/ACE3/merges","archive_url":"https://api.github.com/repos/acemod/ACE3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/acemod/ACE3/downloads","issues_url":"https://api.github.com/repos/acemod/ACE3/issues{/number}","pulls_url":"https://api.github.com/repos/acemod/ACE3/pulls{/number}","milestones_url":"https://api.github.com/repos/acemod/ACE3/milestones{/number}","notifications_url":"https://api.github.com/repos/acemod/ACE3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/acemod/ACE3/labels{/name}","releases_url":"https://api.github.com/repos/acemod/ACE3/releases{/id}","deployments_url":"https://api.github.com/repos/acemod/ACE3/deployments","created_at":"2015-01-10T19:59:12Z","updated_at":"2016-07-21T06:55:09Z","pushed_at":"2016-07-21T02:54:53Z","git_url":"git://github.com/acemod/ACE3.git","ssh_url":"git@github.com:acemod/ACE3.git","clone_url":"https://github.com/acemod/ACE3.git","svn_url":"https://github.com/acemod/ACE3","homepage":"http://ace3mod.com/","size":488042,"stargazers_count":417,"watchers_count":417,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":337,"mirror_url":null,"open_issues_count":209,"forks":337,"open_issues":209,"watchers":417,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/acemod/ACE3/pulls/4139"},"html":{"href":"https://github.com/acemod/ACE3/pull/4139"},"issue":{"href":"https://api.github.com/repos/acemod/ACE3/issues/4139"},"comments":{"href":"https://api.github.com/repos/acemod/ACE3/issues/4139/comments"},"review_comments":{"href":"https://api.github.com/repos/acemod/ACE3/pulls/4139/comments"},"review_comment":{"href":"https://api.github.com/repos/acemod/ACE3/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/acemod/ACE3/pulls/4139/commits"},"statuses":{"href":"https://api.github.com/repos/acemod/ACE3/statuses/7b68c435e347a0ff2fe60cb20311442b63865d8b"}}}}
{"actor":{"display_login":"jonpas"}}