GitHub PullRequestReviewCommentEvent at 2014-08-14 10:41:49
Repository: fiware-connectors
Actor: kzangeli
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/comments/16231359","id":16231359,"diff_hunk":"@@ -1 +1,143 @@\n-TBD\n+# Adding new sinks development guide\n+\n+Cygnus allows for Orion context data persistence in certain storages by means of Flume sinks. As long as the current collection of sinks may be limited for your purposes, you can add your own sinks regarding a persistence technology of your choice and becoming an official Cygnus contributor!\n+\n+This document tries to guide you on the development of such alternative sinks, by giving you guidelines about how to write the sink code, but also how the different classes must be called, the accepted coding style, etc. \n+\n+## Before starting\n+\n+### Contributing to Cygnus\n+\n+You can contribute to Cygnus (open sourced) as usual:\n+\n+1. Fork our Github [Cygnus](https://github.com/telefonicaid/fiware-connectors) repository (you will need an account on Github).\n+2. Create a new branch where to code your fix/addon.\n+3. Submit a pull request to us!  \n+\n+We will not merge new code in the Cygnus repository coming from a different path.\n+\n+### Coding style \n+\n+Please, add the `fiware-connectors/flume/telefonica_checkstyle.xml` to you IDE as check style configuration. This XML file contains all the coding style rules accepted by Telefónica.\n+\n+We will not merge new code in the Cygnus repository if such coding style is not met.\n+\n+## New sink development\n+\n+### `OrionSink` class\n+`Orionsink` is the base class all the Cygnus sinks extend. This class governs the consumption of the Flume events put by `OrionRestHandler` in the sink channel, taking them from the channel and calling to the persistence abstract method which in final term is the unique method that must be implemented by the extending class. All the logic about starting and stoping the sink, begining, commiting and closing Flume transactions and many other features is already there, thus you will not have to deal with it.\n+\n+You will find this class at the pollwing path:\n+\n+    fiware-connectors/flume/src/main/java/es/tid/fiware/fiwareconnectors/cygnus/sinks/OrionSink.java\n+\n+`OrionSink`, on its side, extends `AbstractSink` from the Flume API; this class is the one providing all the necessary methods, as previously said. As can be seen, all of them are already implemented (`start`, `stop`, etc) or overriden (`process`). Only showing relevant parts:\n+\n+    public abstract class OrionSink extends AbstractSink implements Configurable {\n+\t\t/**\n+\t\t * Constructor\n+\t\t */ \n+\t\tpublic OrionSink() {\n+\t\t\tsuper();\n+\t\t\t...\n+\t\t} // OrionSink\n+\n+\t\t@Override\n+\t\tpublic Status process() throws EventDeliveryException {\n+\t\t\t...\n+\t\t\tch = getChannel();\n+\t\t\ttxn = ch.getTransaction();\n+\t\t\ttxn.begin();\n+\t\t\tevent = ch.take();\n+\t\t\tpersist(event);\n+\t\t\ttxn.commit();\n+\t\t\tstatus = Status.READY;\n+\t\t\t...\n+\t\t} // process\n+\n+\t\t/**\n+\t\t * Given an event, it is preprocessed before it is persisted. Depending on the content type, it is appropriately\n+\t\t * parsed (Json or XML) in order to obtain a NotifyContextRequest instance.\n+\t\t *\n+\t\t * @param event A Flume event containing the data to be persisted and certain metadata (headers).\n+\t\t * @throws Exception\n+\t\t */\n+\t\tprivate void persist(Event event) throws Exception {\n+\t\t\t...\n+\t\t} // persist\n+\n+\t\t/**\n+\t\t * This is the method the classes extending this class must implement when dealing with persistence.\n+\t\t * @param organization the organization/tenant to persist the data\n+\t\t * @param recvTimeTs the reception time of the context information\n+\t\t * @param contextResponses the context element responses to persist\n+\t\t * @throws Exception\n+\t\t */\n+\t\tabstract void persist(String organization, long recvTimeTs, ArrayList contextResponses) throws Exception;\n+    } // OrionSink   \n+\n+The `process` method is responsible for getting the channel, initiating a Flume transaction, taking an event and processing it by calling to the `persist` method. The abstract version of the `persist` method is the only piece of code a developer must create accordinglgy to the logic of his/her sink.\n+\n+Please notice the `process` method handles all the possible errors may occur during a Flume transaction by catching exceptions, specially those thrown by the abstract `persist` method. There exist a collection of Cygnus-related exceptions which usage is mandatory located at:\n+\n+    fiware-connectors/flume/src/main/java/es/tid/fiware/fiwareconnectors/cygnus/errors/\n+\n+### Sink configuration\n+\n+In addition to extending `AbstractSink`, `OrionSink` implements the `Configure` interface which allows for parameterizing the new sink from the general Cygnus configuration file.\n+\n+Configuration parameters must follow this schema:\n+\n+    cygnusagent.sources = http-source\n+    cygnusagent.sinks = <sink_name> <other_sink_names>\n+    cygnusagent.channels = <sink_channel_name> <other_sink_channel_names>\n+    ...\n+    cygnusagent.sinks.<sink_name>.<parameter_1_name> = <parameter_1_value>\n+    cygnusagent.sinks.<sink_name>.<parameter_2_name> = <parameter_2_value>\n+\t...\n+\tcygnusagent.sinks.<sink_name>.<parameter_N_name> = <parameter_N_value>\n+\t...\n+\n+### Flume events structure\n+\n+Orion notifications are sent by Orion to the default Flume HTTP source, which relies on `OrionRestHandler` for checking its validity (it is a POST request, the target is notify and the headers are OK), detecting the content type (it is in Json format), extracting the data (the Json part) and finally creating a Flume event to be put in the channel:\n+\n+    event={\n+\t\tbody=json_data,\n+\t\theaders={\n+\t\t\tcontent-type=application/json,\n+\t\t\tfiware-service=Org42,\n+\t\t\trecvTimeTs=1402409899391,\n+\t\t\ttransactionId=asdfasdfsdfa,\n+\t\t\tttl=10\n+\t\t}\n+\t}\n+\n+<b>NOTE: The above is an <i>object representation</i>, not Json data nor any other data format.</b>\n+\n+Let's have a look on the Flume event headers:\n+\n+* The <b>content-type</b> header is a replica of the Http one in order the different sinks know how to parse the event body, in this case it is Json.\n+* Note that Orion can include a Fiware-Service HTTP header specifying the tenant/organization associated to the notification, which is added to the event headers as well. Since version 0.3, Cygnus is able to support this header (<b>fiware-service</b>), although the actual processing of such tenant/organization depends on the particular sink. If the notification doesn't include the Fiware-Service header, then Cygnus will use the default organization specified in the default_organization configuration property.\n+* The notification reception time is included in the list of headers (as <b>recvTimeTs</b>) for timestamping purposes in the different sinks.\n+* The <b>transactionId</b> identifies a complete Cygnus transaction, starting at the source when the context data is notified, and finishing in the sink, where such data is finally persisted. Nothing special has to be done by a new sink developer.\n+* The time-to-live (or <b>ttl</b>) specifies the number of re-injection retries in the channel when something goes wrong while persisting the data. This re-injection mechanism is part of the reliability features of Flume. The ttl is managed by `OrionSink` and you, as a developer of a new sink, will not have to deal with it except for reporting errors. \n+\n+### Naming and placing the new sink\n+\n+New sink classes must be called `Orion<technology>Sink`, being <i>technology</i> the name of the persistence backend. Examples are `OrionHDFSSink`, `OrionCKANSink` or `OrionMySQLSink` (by the way, all of them already exist).\n+\n+Regarding the path where the new sink must be placed, it is:","path":"flume/doc/devel/add_new_sink.md","position":131,"original_position":131,"commit_id":"65330ea1661bd0fcc8f888ba823a11538177ee64","original_commit_id":"65330ea1661bd0fcc8f888ba823a11538177ee64","user":{"login":"kzangeli","id":5338380,"avatar_url":"https://avatars.githubusercontent.com/u/5338380?v=2","gravatar_id":"219ceb8e935c4c592687383e471b6310","url":"https://api.github.com/users/kzangeli","html_url":"https://github.com/kzangeli","followers_url":"https://api.github.com/users/kzangeli/followers","following_url":"https://api.github.com/users/kzangeli/following{/other_user}","gists_url":"https://api.github.com/users/kzangeli/gists{/gist_id}","starred_url":"https://api.github.com/users/kzangeli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kzangeli/subscriptions","organizations_url":"https://api.github.com/users/kzangeli/orgs","repos_url":"https://api.github.com/users/kzangeli/repos","events_url":"https://api.github.com/users/kzangeli/events{/privacy}","received_events_url":"https://api.github.com/users/kzangeli/received_events","type":"User","site_admin":false},"body":"Shorter and better:\r\n  The path where the new sink is to be placed:","created_at":"2014-08-14T10:41:49Z","updated_at":"2014-08-14T10:41:49Z","html_url":"https://github.com/telefonicaid/fiware-connectors/pull/142#discussion_r16231359","pull_request_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/142","_links":{"self":{"href":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/comments/16231359"},"html":{"href":"https://github.com/telefonicaid/fiware-connectors/pull/142#discussion_r16231359"},"pull_request":{"href":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/142"}}},"pull_request":{"url":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/142","id":19723126,"html_url":"https://github.com/telefonicaid/fiware-connectors/pull/142","diff_url":"https://github.com/telefonicaid/fiware-connectors/pull/142.diff","patch_url":"https://github.com/telefonicaid/fiware-connectors/pull/142.patch","issue_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues/142","number":142,"state":"open","locked":false,"title":"Hardening/136","user":{"login":"frbattid","id":3865056,"avatar_url":"https://avatars.githubusercontent.com/u/3865056?v=2","gravatar_id":"388ce615be3850197791a9cf67fa5dac","url":"https://api.github.com/users/frbattid","html_url":"https://github.com/frbattid","followers_url":"https://api.github.com/users/frbattid/followers","following_url":"https://api.github.com/users/frbattid/following{/other_user}","gists_url":"https://api.github.com/users/frbattid/gists{/gist_id}","starred_url":"https://api.github.com/users/frbattid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frbattid/subscriptions","organizations_url":"https://api.github.com/users/frbattid/orgs","repos_url":"https://api.github.com/users/frbattid/repos","events_url":"https://api.github.com/users/frbattid/events{/privacy}","received_events_url":"https://api.github.com/users/frbattid/received_events","type":"User","site_admin":false},"body":"Implements the issue https://github.com/telefonicaid/fiware-connectors/issues/136\r\n\r\nAdditionally, minor modifications have been done in the main README regarding missing Flume event headers.","created_at":"2014-08-13T13:17:43Z","updated_at":"2014-08-14T10:41:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9417ce374d86de75e9f19ee601857dd43aa13b4b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/142/commits","review_comments_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/142/comments","review_comment_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/comments/{number}","comments_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues/142/comments","statuses_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/statuses/65330ea1661bd0fcc8f888ba823a11538177ee64","head":{"label":"telefonicaid:hardening/136","ref":"hardening/136","sha":"65330ea1661bd0fcc8f888ba823a11538177ee64","user":{"login":"telefonicaid","id":968363,"avatar_url":"https://avatars.githubusercontent.com/u/968363?v=2","gravatar_id":"05c84be2ce3d0a014ac4253156a1eaff","url":"https://api.github.com/users/telefonicaid","html_url":"https://github.com/telefonicaid","followers_url":"https://api.github.com/users/telefonicaid/followers","following_url":"https://api.github.com/users/telefonicaid/following{/other_user}","gists_url":"https://api.github.com/users/telefonicaid/gists{/gist_id}","starred_url":"https://api.github.com/users/telefonicaid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telefonicaid/subscriptions","organizations_url":"https://api.github.com/users/telefonicaid/orgs","repos_url":"https://api.github.com/users/telefonicaid/repos","events_url":"https://api.github.com/users/telefonicaid/events{/privacy}","received_events_url":"https://api.github.com/users/telefonicaid/received_events","type":"Organization","site_admin":false},"repo":{"id":16607947,"name":"fiware-connectors","full_name":"telefonicaid/fiware-connectors","owner":{"login":"telefonicaid","id":968363,"avatar_url":"https://avatars.githubusercontent.com/u/968363?v=2","gravatar_id":"05c84be2ce3d0a014ac4253156a1eaff","url":"https://api.github.com/users/telefonicaid","html_url":"https://github.com/telefonicaid","followers_url":"https://api.github.com/users/telefonicaid/followers","following_url":"https://api.github.com/users/telefonicaid/following{/other_user}","gists_url":"https://api.github.com/users/telefonicaid/gists{/gist_id}","starred_url":"https://api.github.com/users/telefonicaid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telefonicaid/subscriptions","organizations_url":"https://api.github.com/users/telefonicaid/orgs","repos_url":"https://api.github.com/users/telefonicaid/repos","events_url":"https://api.github.com/users/telefonicaid/events{/privacy}","received_events_url":"https://api.github.com/users/telefonicaid/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/telefonicaid/fiware-connectors","description":"FI-WARE connectors","fork":false,"url":"https://api.github.com/repos/telefonicaid/fiware-connectors","forks_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/forks","keys_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/keys{/key_id}","collaborators_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/teams","hooks_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/hooks","issue_events_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues/events{/number}","events_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/events","assignees_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/assignees{/user}","branches_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/branches{/branch}","tags_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/tags","blobs_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/refs{/sha}","trees_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/trees{/sha}","statuses_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/statuses/{sha}","languages_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/languages","stargazers_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/stargazers","contributors_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/contributors","subscribers_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/subscribers","subscription_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/subscription","commits_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/commits{/sha}","git_commits_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/commits{/sha}","comments_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/comments{/number}","issue_comment_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues/comments/{number}","contents_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/contents/{+path}","compare_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/compare/{base}...{head}","merges_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/merges","archive_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/downloads","issues_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues{/number}","pulls_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls{/number}","milestones_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/milestones{/number}","notifications_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/labels{/name}","releases_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/releases{/id}","created_at":"2014-02-07T07:57:41Z","updated_at":"2014-07-06T03:19:35Z","pushed_at":"2014-08-13T13:15:15Z","git_url":"git://github.com/telefonicaid/fiware-connectors.git","ssh_url":"git@github.com:telefonicaid/fiware-connectors.git","clone_url":"https://github.com/telefonicaid/fiware-connectors.git","svn_url":"https://github.com/telefonicaid/fiware-connectors","homepage":"","size":93010,"stargazers_count":6,"watchers_count":6,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":4,"mirror_url":null,"open_issues_count":29,"forks":4,"open_issues":29,"watchers":6,"default_branch":"develop"}},"base":{"label":"telefonicaid:develop","ref":"develop","sha":"bd2f87f231708586840e2134e42b6e1c63405dc8","user":{"login":"telefonicaid","id":968363,"avatar_url":"https://avatars.githubusercontent.com/u/968363?v=2","gravatar_id":"05c84be2ce3d0a014ac4253156a1eaff","url":"https://api.github.com/users/telefonicaid","html_url":"https://github.com/telefonicaid","followers_url":"https://api.github.com/users/telefonicaid/followers","following_url":"https://api.github.com/users/telefonicaid/following{/other_user}","gists_url":"https://api.github.com/users/telefonicaid/gists{/gist_id}","starred_url":"https://api.github.com/users/telefonicaid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telefonicaid/subscriptions","organizations_url":"https://api.github.com/users/telefonicaid/orgs","repos_url":"https://api.github.com/users/telefonicaid/repos","events_url":"https://api.github.com/users/telefonicaid/events{/privacy}","received_events_url":"https://api.github.com/users/telefonicaid/received_events","type":"Organization","site_admin":false},"repo":{"id":16607947,"name":"fiware-connectors","full_name":"telefonicaid/fiware-connectors","owner":{"login":"telefonicaid","id":968363,"avatar_url":"https://avatars.githubusercontent.com/u/968363?v=2","gravatar_id":"05c84be2ce3d0a014ac4253156a1eaff","url":"https://api.github.com/users/telefonicaid","html_url":"https://github.com/telefonicaid","followers_url":"https://api.github.com/users/telefonicaid/followers","following_url":"https://api.github.com/users/telefonicaid/following{/other_user}","gists_url":"https://api.github.com/users/telefonicaid/gists{/gist_id}","starred_url":"https://api.github.com/users/telefonicaid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telefonicaid/subscriptions","organizations_url":"https://api.github.com/users/telefonicaid/orgs","repos_url":"https://api.github.com/users/telefonicaid/repos","events_url":"https://api.github.com/users/telefonicaid/events{/privacy}","received_events_url":"https://api.github.com/users/telefonicaid/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/telefonicaid/fiware-connectors","description":"FI-WARE connectors","fork":false,"url":"https://api.github.com/repos/telefonicaid/fiware-connectors","forks_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/forks","keys_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/keys{/key_id}","collaborators_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/teams","hooks_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/hooks","issue_events_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues/events{/number}","events_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/events","assignees_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/assignees{/user}","branches_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/branches{/branch}","tags_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/tags","blobs_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/refs{/sha}","trees_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/trees{/sha}","statuses_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/statuses/{sha}","languages_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/languages","stargazers_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/stargazers","contributors_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/contributors","subscribers_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/subscribers","subscription_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/subscription","commits_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/commits{/sha}","git_commits_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/git/commits{/sha}","comments_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/comments{/number}","issue_comment_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues/comments/{number}","contents_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/contents/{+path}","compare_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/compare/{base}...{head}","merges_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/merges","archive_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/downloads","issues_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues{/number}","pulls_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls{/number}","milestones_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/milestones{/number}","notifications_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/labels{/name}","releases_url":"https://api.github.com/repos/telefonicaid/fiware-connectors/releases{/id}","created_at":"2014-02-07T07:57:41Z","updated_at":"2014-07-06T03:19:35Z","pushed_at":"2014-08-13T13:15:15Z","git_url":"git://github.com/telefonicaid/fiware-connectors.git","ssh_url":"git@github.com:telefonicaid/fiware-connectors.git","clone_url":"https://github.com/telefonicaid/fiware-connectors.git","svn_url":"https://github.com/telefonicaid/fiware-connectors","homepage":"","size":93010,"stargazers_count":6,"watchers_count":6,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":4,"mirror_url":null,"open_issues_count":29,"forks":4,"open_issues":29,"watchers":6,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/142"},"html":{"href":"https://github.com/telefonicaid/fiware-connectors/pull/142"},"issue":{"href":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues/142"},"comments":{"href":"https://api.github.com/repos/telefonicaid/fiware-connectors/issues/142/comments"},"review_comments":{"href":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/142/comments"},"review_comment":{"href":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/telefonicaid/fiware-connectors/pulls/142/commits"},"statuses":{"href":"https://api.github.com/repos/telefonicaid/fiware-connectors/statuses/65330ea1661bd0fcc8f888ba823a11538177ee64"}}}}