GitHub PullRequestReviewCommentEvent at 2014-11-24 19:00:06
Repository: module.mailing-list
Actor: mathieumg
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/comments/20812924","id":20812924,"diff_hunk":"@@ -1,12 +1,334 @@\n import utils = require(\"mykoop-utils\");\n+import async = require(\"async\");\n+import _ = require(\"lodash\");\n import controllerList = require(\"./controllers/index\");\n+var logger = utils.getLogger(module);\n var ApplicationError = utils.errors.ApplicationError;\n+var DatabaseError = utils.errors.DatabaseError;\n \n class Module extends utils.BaseModule implements mkmailinglist.Module {\n+  db: mkdatabase.Module;\n+  user: mkuser.Module;\n   init() {\n+    this.db = <mkdatabase.Module>this.getModuleManager().get(\"database\");\n+    this.user = <mkuser.Module>this.getModuleManager().get(\"user\");\n     controllerList.attachControllers(new utils.ModuleControllersBinder(this));\n   }\n \n+  addMailingList(\n+    params: MailingList.AddMailingList.Params,\n+    callback: MailingList.AddMailingList.Callback\n+  ) {\n+    this.callWithConnection(\n+      this.__addMailingList,\n+      params,\n+      callback\n+    );\n+  }\n+\n+  __addMailingList(\n+    connection: mysql.IConnection,\n+    params: MailingList.AddMailingList.Params,\n+    callback: MailingList.AddMailingList.Callback\n+  ) {\n+    async.waterfall([\n+      function(callback) {\n+        var mailingList = {\n+          name: params.name,\n+          description: params.description\n+        };\n+        connection.query(\n+          \"INSERT INTO mailinglist SET ?\",\n+          [mailingList],\n+          function(err, res) {\n+            if(err && err.code === \"ER_DUP_ENTRY\") {\n+              return callback(new ApplicationError(\n+                err,\n+                {\n+                  name: \"duplicate\"\n+                }\n+              ));\n+            }\n+            callback(\n+              err && new DatabaseError(err),\n+              res && res.insertId\n+            );\n+          }\n+        )\n+      }\n+    ], function(err, id: any) {\n+      callback(err, {id: id});\n+    });\n+  }\n+\n+  deleteMailingList(\n+    params: MailingList.DeleteMailingList.Params,\n+    callback: MailingList.DeleteMailingList.Callback\n+  ) {\n+    this.callWithConnection(\n+      this.__deleteMailingList,\n+      params,\n+      callback\n+    );\n+  }\n+\n+  __deleteMailingList(\n+    connection: mysql.IConnection,\n+    params: MailingList.DeleteMailingList.Params,\n+    callback: MailingList.DeleteMailingList.Callback\n+  ) {\n+    async.waterfall([\n+      function(callback) {\n+        connection.query(\n+          \"DELETE FROM mailinglist WHERE idMailingList = ?\",\n+          [params.id],\n+          function(err, res) {\n+            if(!err && res.affectedRows === 0) {\n+              return callback(new ApplicationError(\n+                null,\n+                {\n+                  id: \"invalid\"\n+                }\n+              ));\n+            }\n+            callback(err && new DatabaseError(err));\n+          }\n+        )\n+      }\n+    ], function(err) {\n+      callback(err);\n+    });\n+  }\n+\n+  getMailingLists(\n+    params: MailingList.GetMailingList.Params,\n+    callback: MailingList.GetMailingList.Callback\n+  ) {\n+    this.callWithConnection(\n+      this.__getMailingLists,\n+      params,\n+      callback\n+    );\n+  }\n+\n+  __getMailingLists(\n+    connection: mysql.IConnection,\n+    params: MailingList.GetMailingList.Params,\n+    callback: MailingList.GetMailingList.Callback\n+  ) {\n+    async.waterfall([\n+      function(callback) {\n+        connection.query(\n+          \"SELECT idMailingList AS id, name, description FROM mailinglist\",\n+          [],\n+          function(err, rows) {\n+            if(err) {\n+              return callback(new DatabaseError(err));\n+            }\n+            var mailingLists = _.map(rows, function(row: any) {\n+              return {\n+                id: row.id,\n+                name: row.name,\n+                description: row.description\n+              }\n+            });\n+            callback(null, mailingLists);\n+          }\n+        )\n+      }\n+    ], function(err, result: any[]) {\n+      callback(err, result);\n+    });\n+  }\n+\n+  updateMailingList(\n+    params: MailingList.UpdateMailingList.Params,\n+    callback: MailingList.UpdateMailingList.Callback\n+  ) {\n+    this.callWithConnection(\n+      this.__updateMailingList,\n+      params,\n+      callback\n+    );\n+  }\n+\n+  __updateMailingList(\n+    connection: mysql.IConnection,\n+    params: MailingList.UpdateMailingList.Params,\n+    callback: MailingList.UpdateMailingList.Callback\n+  ) {\n+    async.waterfall([\n+      function(callback) {\n+        var mailingList = {\n+          name: params.name,\n+          description: params.description\n+        };\n+        connection.query(\n+          \"UPDATE mailinglist SET ? WHERE idMailingList = ?\",\n+          [mailingList, params.id],\n+          function(err, res) {\n+            if(err) {\n+              if(err.code === \"ER_DUP_ENTRY\") {\n+                return callback(new ApplicationError(\n+                  err,\n+                  {\n+                    name: \"duplicate\"\n+                  }\n+                ));\n+              }\n+              return callback(new DatabaseError(err));\n+            }\n+            if(res.affectedRows === 0) {\n+              return callback(new ApplicationError(null,\n+                {\n+                  id: \"invalid\"\n+                }\n+              ));\n+            }\n+            callback();\n+          }\n+        )\n+      }\n+    ], function(err) {\n+      callback(err);\n+    });\n+  }\n+\n+  registerToMailingLists(\n+    params: MailingList.RegisterToMailingLists.Params,\n+    callback: MailingList.RegisterToMailingLists.Callback\n+  ) {\n+    this.callWithConnection(\n+      this.__registerToMailingLists,\n+      params,\n+      callback\n+    );\n+  }\n+\n+  __registerToMailingLists(\n+    connection: mysql.IConnection,\n+    params: MailingList.RegisterToMailingLists.Params,\n+    callback: MailingList.RegisterToMailingLists.Callback\n+  ) {\n+    var self = this;\n+    logger.debug(\"User registering to mailing lists\", params);\n+    async.waterfall([\n+      function(callback) {\n+        self.user.__userExists(connection, {id: params.idUser}, function(err) {\n+          callback(err && new ApplicationError(err, {idUser: \"invalid\"}));\n+        });\n+      },\n+      function(callback) {\n+        async.eachSeries(params.idMailingLists, function(id, next) {\n+          var mailingListUser = {\n+            idUser: params.idUser,\n+            idMailingList: id\n+          };\n+          logger.debug(\"User registering to mailing list %d\", id);\n+          connection.query(\n+            \"INSERT INTO mailinglist_users set ?\",\n+            [mailingListUser],\n+            function(err, res) {\n+              if(err) {\n+                //accepted errors","path":"lib/module.ts","position":233,"original_position":233,"commit_id":"1b08e2ebf455ef6fe210358450dcd7c5214b3c0c","original_commit_id":"1b08e2ebf455ef6fe210358450dcd7c5214b3c0c","user":{"login":"mathieumg","id":1624812,"avatar_url":"https://avatars.githubusercontent.com/u/1624812?v=3","gravatar_id":"","url":"https://api.github.com/users/mathieumg","html_url":"https://github.com/mathieumg","followers_url":"https://api.github.com/users/mathieumg/followers","following_url":"https://api.github.com/users/mathieumg/following{/other_user}","gists_url":"https://api.github.com/users/mathieumg/gists{/gist_id}","starred_url":"https://api.github.com/users/mathieumg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathieumg/subscriptions","organizations_url":"https://api.github.com/users/mathieumg/orgs","repos_url":"https://api.github.com/users/mathieumg/repos","events_url":"https://api.github.com/users/mathieumg/events{/privacy}","received_events_url":"https://api.github.com/users/mathieumg/received_events","type":"User","site_admin":false},"body":"What do they represent?","created_at":"2014-11-24T19:00:06Z","updated_at":"2014-11-24T19:00:06Z","html_url":"https://github.com/my-koop/module.mailing-list/pull/4#discussion_r20812924","pull_request_url":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/4","_links":{"self":{"href":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/comments/20812924"},"html":{"href":"https://github.com/my-koop/module.mailing-list/pull/4#discussion_r20812924"},"pull_request":{"href":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/4"}}},"pull_request":{"url":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/4","id":24881829,"html_url":"https://github.com/my-koop/module.mailing-list/pull/4","diff_url":"https://github.com/my-koop/module.mailing-list/pull/4.diff","patch_url":"https://github.com/my-koop/module.mailing-list/pull/4.patch","issue_url":"https://api.github.com/repos/my-koop/module.mailing-list/issues/4","number":4,"state":"open","locked":false,"title":"Mailing Lists","user":{"login":"Cellule","id":4157103,"avatar_url":"https://avatars.githubusercontent.com/u/4157103?v=3","gravatar_id":"","url":"https://api.github.com/users/Cellule","html_url":"https://github.com/Cellule","followers_url":"https://api.github.com/users/Cellule/followers","following_url":"https://api.github.com/users/Cellule/following{/other_user}","gists_url":"https://api.github.com/users/Cellule/gists{/gist_id}","starred_url":"https://api.github.com/users/Cellule/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cellule/subscriptions","organizations_url":"https://api.github.com/users/Cellule/orgs","repos_url":"https://api.github.com/users/Cellule/repos","events_url":"https://api.github.com/users/Cellule/events{/privacy}","received_events_url":"https://api.github.com/users/Cellule/received_events","type":"User","site_admin":false},"body":"Combination of #1 #2 #3 also contains the fixes of #1\r\n\r\n","created_at":"2014-11-22T01:46:49Z","updated_at":"2014-11-24T19:00:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5eb85f8f620431e9df104ca47af9be1bea9365f7","assignee":{"login":"mathieumg","id":1624812,"avatar_url":"https://avatars.githubusercontent.com/u/1624812?v=3","gravatar_id":"","url":"https://api.github.com/users/mathieumg","html_url":"https://github.com/mathieumg","followers_url":"https://api.github.com/users/mathieumg/followers","following_url":"https://api.github.com/users/mathieumg/following{/other_user}","gists_url":"https://api.github.com/users/mathieumg/gists{/gist_id}","starred_url":"https://api.github.com/users/mathieumg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathieumg/subscriptions","organizations_url":"https://api.github.com/users/mathieumg/orgs","repos_url":"https://api.github.com/users/mathieumg/repos","events_url":"https://api.github.com/users/mathieumg/events{/privacy}","received_events_url":"https://api.github.com/users/mathieumg/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/my-koop/module.mailing-list/milestones/1","labels_url":"https://api.github.com/repos/my-koop/module.mailing-list/milestones/1/labels","id":873714,"number":1,"title":"1.0-rc","description":"Feature lock version of the initial stable release","creator":{"login":"Cellule","id":4157103,"avatar_url":"https://avatars.githubusercontent.com/u/4157103?v=3","gravatar_id":"","url":"https://api.github.com/users/Cellule","html_url":"https://github.com/Cellule","followers_url":"https://api.github.com/users/Cellule/followers","following_url":"https://api.github.com/users/Cellule/following{/other_user}","gists_url":"https://api.github.com/users/Cellule/gists{/gist_id}","starred_url":"https://api.github.com/users/Cellule/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Cellule/subscriptions","organizations_url":"https://api.github.com/users/Cellule/orgs","repos_url":"https://api.github.com/users/Cellule/repos","events_url":"https://api.github.com/users/Cellule/events{/privacy}","received_events_url":"https://api.github.com/users/Cellule/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":3,"state":"open","created_at":"2014-11-20T03:02:12Z","updated_at":"2014-11-22T01:46:55Z","due_on":"2014-11-28T05:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/4/commits","review_comments_url":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/4/comments","review_comment_url":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/comments/{number}","comments_url":"https://api.github.com/repos/my-koop/module.mailing-list/issues/4/comments","statuses_url":"https://api.github.com/repos/my-koop/module.mailing-list/statuses/1b08e2ebf455ef6fe210358450dcd7c5214b3c0c","head":{"label":"my-koop:mike_mailing_user","ref":"mike_mailing_user","sha":"1b08e2ebf455ef6fe210358450dcd7c5214b3c0c","user":{"login":"my-koop","id":8674744,"avatar_url":"https://avatars.githubusercontent.com/u/8674744?v=3","gravatar_id":"","url":"https://api.github.com/users/my-koop","html_url":"https://github.com/my-koop","followers_url":"https://api.github.com/users/my-koop/followers","following_url":"https://api.github.com/users/my-koop/following{/other_user}","gists_url":"https://api.github.com/users/my-koop/gists{/gist_id}","starred_url":"https://api.github.com/users/my-koop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/my-koop/subscriptions","organizations_url":"https://api.github.com/users/my-koop/orgs","repos_url":"https://api.github.com/users/my-koop/repos","events_url":"https://api.github.com/users/my-koop/events{/privacy}","received_events_url":"https://api.github.com/users/my-koop/received_events","type":"Organization","site_admin":false},"repo":{"id":26873224,"name":"module.mailing-list","full_name":"my-koop/module.mailing-list","owner":{"login":"my-koop","id":8674744,"avatar_url":"https://avatars.githubusercontent.com/u/8674744?v=3","gravatar_id":"","url":"https://api.github.com/users/my-koop","html_url":"https://github.com/my-koop","followers_url":"https://api.github.com/users/my-koop/followers","following_url":"https://api.github.com/users/my-koop/following{/other_user}","gists_url":"https://api.github.com/users/my-koop/gists{/gist_id}","starred_url":"https://api.github.com/users/my-koop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/my-koop/subscriptions","organizations_url":"https://api.github.com/users/my-koop/orgs","repos_url":"https://api.github.com/users/my-koop/repos","events_url":"https://api.github.com/users/my-koop/events{/privacy}","received_events_url":"https://api.github.com/users/my-koop/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/my-koop/module.mailing-list","description":"Mykoop module responsible to manage mailing lists","fork":false,"url":"https://api.github.com/repos/my-koop/module.mailing-list","forks_url":"https://api.github.com/repos/my-koop/module.mailing-list/forks","keys_url":"https://api.github.com/repos/my-koop/module.mailing-list/keys{/key_id}","collaborators_url":"https://api.github.com/repos/my-koop/module.mailing-list/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/my-koop/module.mailing-list/teams","hooks_url":"https://api.github.com/repos/my-koop/module.mailing-list/hooks","issue_events_url":"https://api.github.com/repos/my-koop/module.mailing-list/issues/events{/number}","events_url":"https://api.github.com/repos/my-koop/module.mailing-list/events","assignees_url":"https://api.github.com/repos/my-koop/module.mailing-list/assignees{/user}","branches_url":"https://api.github.com/repos/my-koop/module.mailing-list/branches{/branch}","tags_url":"https://api.github.com/repos/my-koop/module.mailing-list/tags","blobs_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/refs{/sha}","trees_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/trees{/sha}","statuses_url":"https://api.github.com/repos/my-koop/module.mailing-list/statuses/{sha}","languages_url":"https://api.github.com/repos/my-koop/module.mailing-list/languages","stargazers_url":"https://api.github.com/repos/my-koop/module.mailing-list/stargazers","contributors_url":"https://api.github.com/repos/my-koop/module.mailing-list/contributors","subscribers_url":"https://api.github.com/repos/my-koop/module.mailing-list/subscribers","subscription_url":"https://api.github.com/repos/my-koop/module.mailing-list/subscription","commits_url":"https://api.github.com/repos/my-koop/module.mailing-list/commits{/sha}","git_commits_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/commits{/sha}","comments_url":"https://api.github.com/repos/my-koop/module.mailing-list/comments{/number}","issue_comment_url":"https://api.github.com/repos/my-koop/module.mailing-list/issues/comments/{number}","contents_url":"https://api.github.com/repos/my-koop/module.mailing-list/contents/{+path}","compare_url":"https://api.github.com/repos/my-koop/module.mailing-list/compare/{base}...{head}","merges_url":"https://api.github.com/repos/my-koop/module.mailing-list/merges","archive_url":"https://api.github.com/repos/my-koop/module.mailing-list/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/my-koop/module.mailing-list/downloads","issues_url":"https://api.github.com/repos/my-koop/module.mailing-list/issues{/number}","pulls_url":"https://api.github.com/repos/my-koop/module.mailing-list/pulls{/number}","milestones_url":"https://api.github.com/repos/my-koop/module.mailing-list/milestones{/number}","notifications_url":"https://api.github.com/repos/my-koop/module.mailing-list/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/my-koop/module.mailing-list/labels{/name}","releases_url":"https://api.github.com/repos/my-koop/module.mailing-list/releases{/id}","created_at":"2014-11-19T17:36:21Z","updated_at":"2014-11-19T18:56:34Z","pushed_at":"2014-11-23T06:51:08Z","git_url":"git://github.com/my-koop/module.mailing-list.git","ssh_url":"git@github.com:my-koop/module.mailing-list.git","clone_url":"https://github.com/my-koop/module.mailing-list.git","svn_url":"https://github.com/my-koop/module.mailing-list","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"rc"}},"base":{"label":"my-koop:rc","ref":"rc","sha":"74bcac4c44b2492f5f11b5e3682bfa0dd1958fc1","user":{"login":"my-koop","id":8674744,"avatar_url":"https://avatars.githubusercontent.com/u/8674744?v=3","gravatar_id":"","url":"https://api.github.com/users/my-koop","html_url":"https://github.com/my-koop","followers_url":"https://api.github.com/users/my-koop/followers","following_url":"https://api.github.com/users/my-koop/following{/other_user}","gists_url":"https://api.github.com/users/my-koop/gists{/gist_id}","starred_url":"https://api.github.com/users/my-koop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/my-koop/subscriptions","organizations_url":"https://api.github.com/users/my-koop/orgs","repos_url":"https://api.github.com/users/my-koop/repos","events_url":"https://api.github.com/users/my-koop/events{/privacy}","received_events_url":"https://api.github.com/users/my-koop/received_events","type":"Organization","site_admin":false},"repo":{"id":26873224,"name":"module.mailing-list","full_name":"my-koop/module.mailing-list","owner":{"login":"my-koop","id":8674744,"avatar_url":"https://avatars.githubusercontent.com/u/8674744?v=3","gravatar_id":"","url":"https://api.github.com/users/my-koop","html_url":"https://github.com/my-koop","followers_url":"https://api.github.com/users/my-koop/followers","following_url":"https://api.github.com/users/my-koop/following{/other_user}","gists_url":"https://api.github.com/users/my-koop/gists{/gist_id}","starred_url":"https://api.github.com/users/my-koop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/my-koop/subscriptions","organizations_url":"https://api.github.com/users/my-koop/orgs","repos_url":"https://api.github.com/users/my-koop/repos","events_url":"https://api.github.com/users/my-koop/events{/privacy}","received_events_url":"https://api.github.com/users/my-koop/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/my-koop/module.mailing-list","description":"Mykoop module responsible to manage mailing lists","fork":false,"url":"https://api.github.com/repos/my-koop/module.mailing-list","forks_url":"https://api.github.com/repos/my-koop/module.mailing-list/forks","keys_url":"https://api.github.com/repos/my-koop/module.mailing-list/keys{/key_id}","collaborators_url":"https://api.github.com/repos/my-koop/module.mailing-list/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/my-koop/module.mailing-list/teams","hooks_url":"https://api.github.com/repos/my-koop/module.mailing-list/hooks","issue_events_url":"https://api.github.com/repos/my-koop/module.mailing-list/issues/events{/number}","events_url":"https://api.github.com/repos/my-koop/module.mailing-list/events","assignees_url":"https://api.github.com/repos/my-koop/module.mailing-list/assignees{/user}","branches_url":"https://api.github.com/repos/my-koop/module.mailing-list/branches{/branch}","tags_url":"https://api.github.com/repos/my-koop/module.mailing-list/tags","blobs_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/refs{/sha}","trees_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/trees{/sha}","statuses_url":"https://api.github.com/repos/my-koop/module.mailing-list/statuses/{sha}","languages_url":"https://api.github.com/repos/my-koop/module.mailing-list/languages","stargazers_url":"https://api.github.com/repos/my-koop/module.mailing-list/stargazers","contributors_url":"https://api.github.com/repos/my-koop/module.mailing-list/contributors","subscribers_url":"https://api.github.com/repos/my-koop/module.mailing-list/subscribers","subscription_url":"https://api.github.com/repos/my-koop/module.mailing-list/subscription","commits_url":"https://api.github.com/repos/my-koop/module.mailing-list/commits{/sha}","git_commits_url":"https://api.github.com/repos/my-koop/module.mailing-list/git/commits{/sha}","comments_url":"https://api.github.com/repos/my-koop/module.mailing-list/comments{/number}","issue_comment_url":"https://api.github.com/repos/my-koop/module.mailing-list/issues/comments/{number}","contents_url":"https://api.github.com/repos/my-koop/module.mailing-list/contents/{+path}","compare_url":"https://api.github.com/repos/my-koop/module.mailing-list/compare/{base}...{head}","merges_url":"https://api.github.com/repos/my-koop/module.mailing-list/merges","archive_url":"https://api.github.com/repos/my-koop/module.mailing-list/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/my-koop/module.mailing-list/downloads","issues_url":"https://api.github.com/repos/my-koop/module.mailing-list/issues{/number}","pulls_url":"https://api.github.com/repos/my-koop/module.mailing-list/pulls{/number}","milestones_url":"https://api.github.com/repos/my-koop/module.mailing-list/milestones{/number}","notifications_url":"https://api.github.com/repos/my-koop/module.mailing-list/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/my-koop/module.mailing-list/labels{/name}","releases_url":"https://api.github.com/repos/my-koop/module.mailing-list/releases{/id}","created_at":"2014-11-19T17:36:21Z","updated_at":"2014-11-19T18:56:34Z","pushed_at":"2014-11-23T06:51:08Z","git_url":"git://github.com/my-koop/module.mailing-list.git","ssh_url":"git@github.com:my-koop/module.mailing-list.git","clone_url":"https://github.com/my-koop/module.mailing-list.git","svn_url":"https://github.com/my-koop/module.mailing-list","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"rc"}},"_links":{"self":{"href":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/4"},"html":{"href":"https://github.com/my-koop/module.mailing-list/pull/4"},"issue":{"href":"https://api.github.com/repos/my-koop/module.mailing-list/issues/4"},"comments":{"href":"https://api.github.com/repos/my-koop/module.mailing-list/issues/4/comments"},"review_comments":{"href":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/4/comments"},"review_comment":{"href":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/my-koop/module.mailing-list/pulls/4/commits"},"statuses":{"href":"https://api.github.com/repos/my-koop/module.mailing-list/statuses/1b08e2ebf455ef6fe210358450dcd7c5214b3c0c"}}}}