{"action":"created","comment":{"url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/comments/22910571","id":22910571,"diff_hunk":"@@ -45,75 +46,135 @@ var makeAnimation = function (transitions, customClassName) {\n         }.bind(this));\n       }.bind(this));\n     },\n-    componentWillEnter: function (callback) {\n-      this.setAnimationDomNode('enter', callback);\n-    },\n-\n-    componentWillLeave: function (callback) {\n-      this.setAnimationDomNode('leave', callback);\n-    },\n \n-    render: function () {\n+    componentWillMount: function () {\n       //Change all custom props or add them if prop not defined in default\n       for (var action in transitions) {\n-        for (var css in transitions[action]) {\n-\n-          //Duration prop work-----------------------------------------\n-          var duration = this.props.duration;\n-          //Use default if no duration prop defined\n-          if (duration) {\n-            //Case to accept if duration prop is a number\n-            if (typeof duration === \"number\") {\n-              duration = duration + \"ms\";\n+        if (action !== 'className') {\n+          var transition = transitions[action];\n+          for (var css in transition) {\n+            //Duration prop work-----------------------------------------\n+            var duration = this.props.duration;\n+            //Use default if no duration prop defined\n+            if (duration) {\n+              //Case to accept if duration prop is a number\n+              if (typeof duration === \"number\") {\n+                duration = duration + \"ms\";\n+              }\n+              transition['transition-duration'] = duration;\n             }\n-            transitions[action]['transition-duration'] = duration;\n-          }\n \n-          //Easing prop work-------------------------------------------\n-          var easing = this.props.easing;\n-          //Use default if no easing prop defined\n-          if (easing) {\n-            //Check to see if easing exists in default Easings object from the AnimationEasings module\n-            if (easing in Easings) {\n-              //Set easing to value of correpsonding key from Easings module object\n-              easing = Easings[easing];\n+            //Easing prop work-------------------------------------------\n+            var easing = this.props.easing;\n+            //Use default if no easing prop defined\n+            if (easing) {\n+              //Check to see if easing exists in default Easings object from the AnimationEasings module\n+              if (easing in Easings) {\n+                //Set easing to value of correpsonding key from Easings module object\n+                easing = Easings[easing];\n+              }\n+              transition['transition-timing-function'] =  easing;\n             }\n-            transitions[action]['transition-timing-function'] =  easing;\n-          }\n \n-          //Delay prop work--------------------------------------------\n-          var delay = this.props.delay;\n-          //Use default if no delay prop defined\n-          if (delay) {\n-            //Case to accept if delay prop is a number\n-            if (typeof delay === \"number\") {\n-              delay = delay + \"ms\";\n+            //Delay prop work--------------------------------------------\n+            var delay = this.props.delay;\n+            //Use default if no delay prop defined\n+            if (delay) {\n+              //Case to accept if delay prop is a number\n+              if (typeof delay === \"number\") {\n+                delay = delay + \"ms\";\n+              }\n+              transition['transition-delay'] =  delay;\n             }\n-            transitions[action]['transition-delay'] =  delay;\n-          }\n \n-          //Custom properties work-------------------------------------\n-          var custom = this.props.custom;\n-          if (custom) {\n-            for (var cssElement in custom) {\n-              transitions['enterActive'][cssElement] =  custom[cssElement];\n-              transitions['leave'][cssElement] =  custom[cssElement];\n+            //Custom prop work-------------------------------------\n+            var custom = this.props.custom;\n+            if (custom) {\n+              var enter = transitions['enter-active'];\n+              var leave =transitions['enter-active'];\n+              for (var cssElement in custom) {\n+                var cssEl = custom[cssElement];\n+                enter[cssElement] =  cssEl;\n+                leave[cssElement] =  cssEl;\n+              }\n             }\n-          }\n-        }\n+          }//End for css in transitions[action]\n+        }//End if action === className\n       }//End for loop for transitions\n+    },\n+\n+    componentWillEnter: function (callback) {\n+      this.setAnimationDomNode('enter', callback);\n+    },\n+\n+    componentWillLeave: function (callback) {\n+      this.setAnimationDomNode('leave', callback);\n+    },\n \n+    render: function () {\n       //Return new React.Dom element\n       return (\n         React.DOM.div(\n           {\n             className: className\n           },\n-           this.props.children\n+          this.props.animate\n         )\n       );\n     }\n    });\n };\n \n-module.exports = makeAnimation;\n+// createAnimationGroup FUNCTION: wraps custom animation component in a ReactTransitionGroup\n+  // @param Animation OBJECT: animation component based on custom properties\n+var createAnimationGroup = function (Animation, customClassName, tagToRender) {\n+\n+  tagToRender = tagToRender || 'span';\n+\n+  //React.createClass FUNCTION: function to create animation component\n+    //@param OBJECT: component setState, props, and render\n+  return React.createClass({\n+    // Set toAnimate initial state as an array that wraps custom Animation component\n+    // *** toAnimate is an array because ReactTransitionGroup only accepts multiple elements if wrapped in a single array\n+    getInitialState: function () {\n+      return {\n+        toAnimate: []\n+      }\n+    },\n+    //Used to update toAnimate\n+    componentWillReceiveProps: function (newProps) {\n+      this.setState({\n+        toAnimate: [].concat(newProps.children)\n+      })\n+    },\n+\n+    render: function () {\n+      //Wrap each component in animation because ReactTransitionGroup only accepts one element. Here we store these animation components in toAnimate\n+      var toAnimate = this.state.toAnimate.map(function (el) {\n+        //Pass in props to the Animation component\n+        return <Animation animate={el} duration={this.props.duration} delay={this.props.delay} easing={this.props.easing} custom={this.props.custom} />\n+      }.bind(this));\n+\n+      return (\n+        <ReactTransitionGroup className={customClassName} component={tagToRender}>\n+          {toAnimate}\n+        </ReactTransitionGroup>\n+      );\n+    }\n+  });\n+};\n+\n+// createAnimation FUNCTION: creates animation by creating a custom component based on the passed in props and transitions and wraps that component in a React Transition Group via the createAnimationGroup function","path":"src/TuxAnimations.js","position":196,"original_position":196,"commit_id":"a358de4b2b3d9824190ca36bd8815d0616b0580a","original_commit_id":"a358de4b2b3d9824190ca36bd8815d0616b0580a","user":{"login":"drabinowitz","id":7275304,"avatar_url":"https://avatars.githubusercontent.com/u/7275304?v=3","gravatar_id":"","url":"https://api.github.com/users/drabinowitz","html_url":"https://github.com/drabinowitz","followers_url":"https://api.github.com/users/drabinowitz/followers","following_url":"https://api.github.com/users/drabinowitz/following{/other_user}","gists_url":"https://api.github.com/users/drabinowitz/gists{/gist_id}","starred_url":"https://api.github.com/users/drabinowitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drabinowitz/subscriptions","organizations_url":"https://api.github.com/users/drabinowitz/orgs","repos_url":"https://api.github.com/users/drabinowitz/repos","events_url":"https://api.github.com/users/drabinowitz/events{/privacy}","received_events_url":"https://api.github.com/users/drabinowitz/received_events","type":"User","site_admin":false},"body":"Change references to `component` to `class` in comment.","created_at":"2015-01-14T01:22:27Z","updated_at":"2015-01-14T01:22:27Z","html_url":"https://github.com/TuxedoJS/TuxedoJS/pull/68#discussion_r22910571","pull_request_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/68","_links":{"self":{"href":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/comments/22910571"},"html":{"href":"https://github.com/TuxedoJS/TuxedoJS/pull/68#discussion_r22910571"},"pull_request":{"href":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/68"}}},"pull_request":{"url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/68","id":27155875,"html_url":"https://github.com/TuxedoJS/TuxedoJS/pull/68","diff_url":"https://github.com/TuxedoJS/TuxedoJS/pull/68.diff","patch_url":"https://github.com/TuxedoJS/TuxedoJS/pull/68.patch","issue_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/issues/68","number":68,"state":"open","locked":false,"title":"Update animation module and tests. Add rotate animations. Add animation documentation. ","user":{"login":"sjstebbins","id":455819,"avatar_url":"https://avatars.githubusercontent.com/u/455819?v=3","gravatar_id":"","url":"https://api.github.com/users/sjstebbins","html_url":"https://github.com/sjstebbins","followers_url":"https://api.github.com/users/sjstebbins/followers","following_url":"https://api.github.com/users/sjstebbins/following{/other_user}","gists_url":"https://api.github.com/users/sjstebbins/gists{/gist_id}","starred_url":"https://api.github.com/users/sjstebbins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sjstebbins/subscriptions","organizations_url":"https://api.github.com/users/sjstebbins/orgs","repos_url":"https://api.github.com/users/sjstebbins/repos","events_url":"https://api.github.com/users/sjstebbins/events{/privacy}","received_events_url":"https://api.github.com/users/sjstebbins/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-01-10T22:56:13Z","updated_at":"2015-01-14T01:22:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ab89ee76e861983e5c7afa8aaaf4388ddad2b736","assignee":{"login":"sjstebbins","id":455819,"avatar_url":"https://avatars.githubusercontent.com/u/455819?v=3","gravatar_id":"","url":"https://api.github.com/users/sjstebbins","html_url":"https://github.com/sjstebbins","followers_url":"https://api.github.com/users/sjstebbins/followers","following_url":"https://api.github.com/users/sjstebbins/following{/other_user}","gists_url":"https://api.github.com/users/sjstebbins/gists{/gist_id}","starred_url":"https://api.github.com/users/sjstebbins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sjstebbins/subscriptions","organizations_url":"https://api.github.com/users/sjstebbins/orgs","repos_url":"https://api.github.com/users/sjstebbins/repos","events_url":"https://api.github.com/users/sjstebbins/events{/privacy}","received_events_url":"https://api.github.com/users/sjstebbins/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/68/commits","review_comments_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/68/comments","review_comment_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/comments/{number}","comments_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/issues/68/comments","statuses_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/statuses/a358de4b2b3d9824190ca36bd8815d0616b0580a","head":{"label":"sjstebbins:Animations","ref":"Animations","sha":"a358de4b2b3d9824190ca36bd8815d0616b0580a","user":{"login":"sjstebbins","id":455819,"avatar_url":"https://avatars.githubusercontent.com/u/455819?v=3","gravatar_id":"","url":"https://api.github.com/users/sjstebbins","html_url":"https://github.com/sjstebbins","followers_url":"https://api.github.com/users/sjstebbins/followers","following_url":"https://api.github.com/users/sjstebbins/following{/other_user}","gists_url":"https://api.github.com/users/sjstebbins/gists{/gist_id}","starred_url":"https://api.github.com/users/sjstebbins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sjstebbins/subscriptions","organizations_url":"https://api.github.com/users/sjstebbins/orgs","repos_url":"https://api.github.com/users/sjstebbins/repos","events_url":"https://api.github.com/users/sjstebbins/events{/privacy}","received_events_url":"https://api.github.com/users/sjstebbins/received_events","type":"User","site_admin":false},"repo":{"id":28939005,"name":"TuxedoJS","full_name":"sjstebbins/TuxedoJS","owner":{"login":"sjstebbins","id":455819,"avatar_url":"https://avatars.githubusercontent.com/u/455819?v=3","gravatar_id":"","url":"https://api.github.com/users/sjstebbins","html_url":"https://github.com/sjstebbins","followers_url":"https://api.github.com/users/sjstebbins/followers","following_url":"https://api.github.com/users/sjstebbins/following{/other_user}","gists_url":"https://api.github.com/users/sjstebbins/gists{/gist_id}","starred_url":"https://api.github.com/users/sjstebbins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sjstebbins/subscriptions","organizations_url":"https://api.github.com/users/sjstebbins/orgs","repos_url":"https://api.github.com/users/sjstebbins/repos","events_url":"https://api.github.com/users/sjstebbins/events{/privacy}","received_events_url":"https://api.github.com/users/sjstebbins/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sjstebbins/TuxedoJS","description":"","fork":true,"url":"https://api.github.com/repos/sjstebbins/TuxedoJS","forks_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/forks","keys_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/teams","hooks_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/hooks","issue_events_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/issues/events{/number}","events_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/events","assignees_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/assignees{/user}","branches_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/branches{/branch}","tags_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/tags","blobs_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/git/refs{/sha}","trees_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/statuses/{sha}","languages_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/languages","stargazers_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/stargazers","contributors_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/contributors","subscribers_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/subscribers","subscription_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/subscription","commits_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/commits{/sha}","git_commits_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/git/commits{/sha}","comments_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/comments{/number}","issue_comment_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/issues/comments/{number}","contents_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/contents/{+path}","compare_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/merges","archive_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/downloads","issues_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/issues{/number}","pulls_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/pulls{/number}","milestones_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/milestones{/number}","notifications_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/labels{/name}","releases_url":"https://api.github.com/repos/sjstebbins/TuxedoJS/releases{/id}","created_at":"2015-01-07T23:20:05Z","updated_at":"2015-01-08T21:35:45Z","pushed_at":"2015-01-14T00:48:47Z","git_url":"git://github.com/sjstebbins/TuxedoJS.git","ssh_url":"git@github.com:sjstebbins/TuxedoJS.git","clone_url":"https://github.com/sjstebbins/TuxedoJS.git","svn_url":"https://github.com/sjstebbins/TuxedoJS","homepage":null,"size":185,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"TuxedoJS:master","ref":"master","sha":"4bdffa44c94f107e6785ddd928155d053531b9b3","user":{"login":"TuxedoJS","id":10237217,"avatar_url":"https://avatars.githubusercontent.com/u/10237217?v=3","gravatar_id":"","url":"https://api.github.com/users/TuxedoJS","html_url":"https://github.com/TuxedoJS","followers_url":"https://api.github.com/users/TuxedoJS/followers","following_url":"https://api.github.com/users/TuxedoJS/following{/other_user}","gists_url":"https://api.github.com/users/TuxedoJS/gists{/gist_id}","starred_url":"https://api.github.com/users/TuxedoJS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TuxedoJS/subscriptions","organizations_url":"https://api.github.com/users/TuxedoJS/orgs","repos_url":"https://api.github.com/users/TuxedoJS/repos","events_url":"https://api.github.com/users/TuxedoJS/events{/privacy}","received_events_url":"https://api.github.com/users/TuxedoJS/received_events","type":"Organization","site_admin":false},"repo":{"id":28203450,"name":"TuxedoJS","full_name":"TuxedoJS/TuxedoJS","owner":{"login":"TuxedoJS","id":10237217,"avatar_url":"https://avatars.githubusercontent.com/u/10237217?v=3","gravatar_id":"","url":"https://api.github.com/users/TuxedoJS","html_url":"https://github.com/TuxedoJS","followers_url":"https://api.github.com/users/TuxedoJS/followers","following_url":"https://api.github.com/users/TuxedoJS/following{/other_user}","gists_url":"https://api.github.com/users/TuxedoJS/gists{/gist_id}","starred_url":"https://api.github.com/users/TuxedoJS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TuxedoJS/subscriptions","organizations_url":"https://api.github.com/users/TuxedoJS/orgs","repos_url":"https://api.github.com/users/TuxedoJS/repos","events_url":"https://api.github.com/users/TuxedoJS/events{/privacy}","received_events_url":"https://api.github.com/users/TuxedoJS/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/TuxedoJS/TuxedoJS","description":"","fork":false,"url":"https://api.github.com/repos/TuxedoJS/TuxedoJS","forks_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/forks","keys_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/teams","hooks_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/hooks","issue_events_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/issues/events{/number}","events_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/events","assignees_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/assignees{/user}","branches_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/branches{/branch}","tags_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/tags","blobs_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/git/refs{/sha}","trees_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/statuses/{sha}","languages_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/languages","stargazers_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/stargazers","contributors_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/contributors","subscribers_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/subscribers","subscription_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/subscription","commits_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/commits{/sha}","git_commits_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/git/commits{/sha}","comments_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/comments{/number}","issue_comment_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/issues/comments/{number}","contents_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/contents/{+path}","compare_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/merges","archive_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/downloads","issues_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/issues{/number}","pulls_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls{/number}","milestones_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/milestones{/number}","notifications_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/labels{/name}","releases_url":"https://api.github.com/repos/TuxedoJS/TuxedoJS/releases{/id}","created_at":"2014-12-18T21:58:57Z","updated_at":"2015-01-13T21:52:37Z","pushed_at":"2015-01-13T21:52:37Z","git_url":"git://github.com/TuxedoJS/TuxedoJS.git","ssh_url":"git@github.com:TuxedoJS/TuxedoJS.git","clone_url":"https://github.com/TuxedoJS/TuxedoJS.git","svn_url":"https://github.com/TuxedoJS/TuxedoJS","homepage":null,"size":577,"stargazers_count":3,"watchers_count":3,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":12,"forks":4,"open_issues":12,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/68"},"html":{"href":"https://github.com/TuxedoJS/TuxedoJS/pull/68"},"issue":{"href":"https://api.github.com/repos/TuxedoJS/TuxedoJS/issues/68"},"comments":{"href":"https://api.github.com/repos/TuxedoJS/TuxedoJS/issues/68/comments"},"review_comments":{"href":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/68/comments"},"review_comment":{"href":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/TuxedoJS/TuxedoJS/pulls/68/commits"},"statuses":{"href":"https://api.github.com/repos/TuxedoJS/TuxedoJS/statuses/a358de4b2b3d9824190ca36bd8815d0616b0580a"}}}}