{"action":"created","comment":{"url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/comments/209659823","pull_request_review_id":145715268,"id":209659823,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwOTY1OTgyMw==","diff_hunk":"@@ -0,0 +1,370 @@\n+import ballerina/http;\n+import ballerina/log;\n+import ballerina/mime;\n+import ballerina/io;\n+import ballerina/mysql;\n+//import ballerinax/docker;\n+//import ballerinax/kubernetes;\n+\n+//connect the student details table\n+endpoint mysql:Client testDB {\n+    host: \"localhost\",\n+    port: 3306,\n+    name: \"testdb\",\n+    username: \"root\",\n+    password: \"\",\n+    poolOptions: { maximumPoolSize: 5 },\n+    dbOptions: { useSSL: false }\n+};\n+//connect the student's results details table\n+endpoint mysql:Client testDB1 {\n+    host: \"localhost\",\n+    port: 3306,\n+    name: \"testdb1\",\n+    username: \"root\",\n+    password: \"\",\n+    poolOptions: { maximumPoolSize: 5 },\n+    dbOptions: { useSSL: false }\n+};\n+\n+//@kubernetes:Ingress {\n+//    hostname:\"ballerina.guides.io\",\n+//    name:\"message_transformation\",\n+//    path:\"/\"\n+//}\n+//@kubernetes:Service {\n+//    serviceType:\"NodePort\",\n+//    name:\"contentfilter\"\n+//}\n+//@kubernetes:Service {\n+//    serviceType:\"NodePort\",\n+//    name:\"validator\"\n+//}\n+//@kubernetes:Service {\n+//    serviceType:\"NodePort\",\n+//    name:\"enricher\"\n+//}\n+//@kubernetes:Service {\n+//    serviceType:\"NodePort\",\n+//    name:\"backend\"\n+//}\n+//@kubernetes:Deployment {\n+//    image:\"ballerina.guides.io/message_transformation_service:v1.0\",\n+//    name:\"ballerina-guides-message-transformation-service\",\n+//    baseImage:\"ballerina/ballerina-platform:0.980.0\",\n+//    copyFiles:[{target:\"/ballerina/runtime/bre/lib\",\n+//        source:\"/home/saneth/Documents/ballerina/mysql-connector-java-5.1.46.jar\"}]\n+//}\n+\n+//@docker:Config {\n+//    registry:\"ballerina.guides.io\",\n+//    name:\"message_transformation\",\n+//    tag:\"v1.0\",\n+//    baseImage:\"ballerina/ballerina-platform:0.980.0\"\n+//}\n+//@docker:CopyFiles {\n+//    files:[{source:\"/home/saneth/Documents/ballerina/mysql-connector-java-5.1.46.jar\",\n+//        target:\"/ballerina/runtime/bre/lib\"}]\n+//}\n+//\n+//@docker:Expose {}\n+endpoint http:Listener contentfilterEP {\n+    port:9090\n+};\n+endpoint http:Listener claimvaditadeEP {\n+    port:9094\n+};\n+endpoint http:Listener contentenricherEP {\n+    port:9092\n+};\n+endpoint http:Listener backendEP {\n+    port:9093\n+};\n+//define endpoints for services\n+endpoint http:Client validatorEP {\n+    url: \"http://localhost:9094/validator\"\n+};\n+endpoint http:Client enricherEP {\n+    url: \"http://localhost:9092/enricher\"\n+};\n+endpoint http:Client clientEP {\n+    url: \"http://localhost:9093/backend\"\n+};\n+\n+\n+\n+//define the global variables\n+public json payload1;\n+public json payload2;\n+\n+//service for the content filter pattern\n+service<http:Service> contentfilter bind contentfilterEP {\n+    @http:ResourceConfig {\n+        methods: [\"POST\"],\n+        path: \"/\"\n+    }\n+    contentfilter(endpoint caller, http:Request req) {\n+        http:Request filteredreq = req;\n+        var jsonMsg = req.getJsonPayload();\n+        match jsonMsg {\n+            json msg => {\n+                //create the student table in the DB\n+                var ret = testDB->update(\n+                                      \"CREATE TABLE student(id INT, name VARCHAR(255), city VARCHAR(255), gender VARCHAR(255))\"\n+                );\n+                handleUpdate(ret, \"Create the table\");\n+                //Error handling for the user inputs\n+                if (!check msg.id.toString().matches(\"\\\\d+\")) {\n+                    error err = { message: \"student ID containts invalid data\" };\n+                    http:Response res = new;\n+                    res.statusCode = 400;\n+                    res.setPayload(untaint err.message);\n+                    caller->respond(res) but { error e =>\n+                    log:printError(\"Error sending response\", err = e) };\n+                } else if (!check msg.name.toString().matches(\"[a-zA-Z]+\")) {\n+                    error err = { message: \"student Name containts invalid data\" };\n+                    http:Response res = new;\n+                    res.statusCode = 400;\n+                    res.setPayload(untaint err.message);\n+                    caller->respond(res) but { error e =>\n+                    log:printError(\"Error sending response\", err = e) };\n+                }else if (!check msg.city.toString().matches(\"^[a-zA-Z]+([\\\\-\\\\s]?[a-zA-Z0-9]+)*$\")) {\n+                    error err = { message: \"student city containts invalid data\" };\n+                    http:Response res = new;\n+                    res.statusCode = 400;\n+                    res.setPayload(untaint err.message);\n+                    caller->respond(res) but { error e =>\n+                    log:printError(\"Error sending response\", err = e) };\n+                }else if (!check msg.gender.toString().matches(\"[a-zA-Z]+\")) {\n+                    error err = { message: \"student gender containts invalid data\" };\n+                    http:Response res = new;\n+                    res.statusCode = 400;\n+                    res.setPayload(untaint err.message);\n+                    caller->respond(res) but { error e =>\n+                    log:printError(\"Error sending response\", err = e) };\n+                }\n+                else {\n+                    //Assign user input values to variables\n+                    int Idvalue = check <int>msg[\"id\"];\n+                    string nameString = check <string>msg[\"name\"];\n+                    string cityString = check <string>msg[\"city\"];\n+                    string genderString = check <string>msg[\"gender\"];\n+                    //add values to the student details table\n+                    ret = testDB->update(\"INSERT INTO student(id, name, city, gender) values (?, ?, ?, ?)\", Idvalue,\n+                        nameString, cityString, genderString);\n+                    handleUpdate(ret, \"Add details to the table\");\n+                    json iddetails= { id: Idvalue };\n+                    //set filtered payload to the request\n+                    filteredreq.setJsonPayload(untaint iddetails);\n+                    //forward request to the nesxt ID validating service\n+                    var clientResponse = validatorEP->forward(\"/\", filteredreq);\n+                    match clientResponse {\n+                        http:Response res => {\n+                            caller->respond(res) but { error e =>\n+                            log:printError(\"Error sending response\", err = e) };\n+                        }\n+                        error err => {\n+                            http:Response res = new;\n+                            res.statusCode = 500;\n+                            res.setPayload(err.message);\n+                            caller->respond(res) but { error e =>\n+                            log:printError(\"Error sending response\", err = e) };\n+                        }\n+                    }\n+                }\n+            }\n+            error err => {\n+                http:Response res = new;\n+                res.statusCode = 500;\n+                res.setPayload( untaint err.message);\n+                caller->respond(res) but { error e =>\n+                log:printError(\"Error while content reading\", err = e) };\n+            }\n+        }\n+\n+    }\n+}\n+\n+//the student ID validator service\n+service<http:Service> validator bind claimvaditadeEP {\n+    @http:ResourceConfig {\n+        methods: [\"POST\"],\n+        path: \"/\"\n+    }\n+    validator(endpoint caller, http:Request filteredreq) {\n+        http:Request validatededreq = filteredreq;\n+        //get the payload in the request (Student ID)\n+        var jsonMsg = filteredreq.getJsonPayload();\n+        match jsonMsg {\n+            json msg => {\n+                int Idvalue = check <int>msg[\"id\"];\n+                //validate the student's ID\n+                //In this example student's ID should be in between 100 to 110\n+                if ((100 <= Idvalue)&&(Idvalue <= 110))  {\n+                    //print the validity\n+                    io:println(\"The  Student ID is succussfully validated\");\n+                    //forward the request to the enricher service\n+                    var clientResponse = enricherEP->forward(\"/\", validatededreq);\n+                    match clientResponse {\n+                        http:Response res => {\n+                            caller->respond(res) but { error e =>\n+                            log:printError(\"Error sending response\", err = e) };\n+                        }\n+                        error err => {\n+                            http:Response res = new;\n+                            res.statusCode = 500;\n+                            res.setPayload(untaint err.message);\n+                            caller->respond(res) but { error e =>\n+                            log:printError(\"Error sending response\", err = e) };\n+                        }\n+                    }\n+                }\n+                else {\n+                    error err = { message: \"Student ID: \" + Idvalue + \" is not found\" };\n+                    http:Response res = new;\n+                    res.statusCode = 500;\n+                    res.setPayload(untaint err.message);\n+                    caller->respond(res) but { error e =>\n+                    log:printError(\"Error sending response\", err = e) };\n+                }\n+            }\n+            error err => {\n+                http:Response res = new;\n+                res.statusCode = 500;\n+                res.setPayload(untaint err.message);\n+                caller->respond(res) but { error e =>\n+                log:printError(\"Error while content reading\", err = e) };\n+            }\n+        }\n+\n+    }\n+}\n+\n+//The content enricher service\n+service<http:Service> enricher bind contentenricherEP {\n+    @http:ResourceConfig {\n+        methods: [\"POST\"],\n+        path: \"/\"\n+    }\n+    enricher(endpoint caller, http:Request validatedreq) {\n+        http:Request enrichedreq = validatedreq;\n+        var jsonMsg = validatedreq.getJsonPayload();\n+        match jsonMsg {\n+            json msg => {\n+                //get the student's ID value\n+                int Idvalue = check <int>msg[\"id\"];\n+                //select details from the data table according to the student's ID\n+                var selectRet = testDB->select(\"SELECT * FROM student\", ());\n+                table dt;\n+                match selectRet {\n+                    table tableReturned => dt = tableReturned;\n+                    error e => io:println(\"Select data from student table failed: \"\n+                            + e.message);\n+                }\n+                //convert the details to a jason file\n+                io:println(\"\\nConvert the table into json\");\n+                var jsonConversionRet = <json>dt;\n+                match jsonConversionRet {\n+                    json jsonRes => {\n+                        //set student's details to the global variable\n+                        payload1= untaint jsonRes;\n+                        io:println(payload1);\n+                    }\n+                    error e => io:println(\"Error in student table to json conversion\");\n+                }\n+                //drop the student details table\n+                var ret = testDB->update(\"DROP TABLE student\");\n+                handleUpdate(ret, \"Drop table student\");\n+                //select student's results from the student results data table, according to the student's ID\n+                var selectRet1 = testDB1->select(\"select Com_Maths,Physics,Chemistry from StudentDetails where ID = ?\", (), Idvalue);","path":"guide/message_transformation/message_transformation.bal","position":279,"original_position":279,"commit_id":"568be5f8a8c056fbf53e28f15b166c0b131b5bf7","original_commit_id":"568be5f8a8c056fbf53e28f15b166c0b131b5bf7","user":{"login":"ldclakmal","id":9639050,"node_id":"MDQ6VXNlcjk2MzkwNTA=","avatar_url":"https://avatars0.githubusercontent.com/u/9639050?v=4","gravatar_id":"","url":"https://api.github.com/users/ldclakmal","html_url":"https://github.com/ldclakmal","followers_url":"https://api.github.com/users/ldclakmal/followers","following_url":"https://api.github.com/users/ldclakmal/following{/other_user}","gists_url":"https://api.github.com/users/ldclakmal/gists{/gist_id}","starred_url":"https://api.github.com/users/ldclakmal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ldclakmal/subscriptions","organizations_url":"https://api.github.com/users/ldclakmal/orgs","repos_url":"https://api.github.com/users/ldclakmal/repos","events_url":"https://api.github.com/users/ldclakmal/events{/privacy}","received_events_url":"https://api.github.com/users/ldclakmal/received_events","type":"User","site_admin":false},"body":"Shall we rename the SQL keywords with ALL CAPS?","created_at":"2018-08-13T15:44:45Z","updated_at":"2018-08-13T15:44:45Z","html_url":"https://github.com/ballerina-guides/eip-message-transformation/pull/1#discussion_r209659823","pull_request_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/1","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/comments/209659823"},"html":{"href":"https://github.com/ballerina-guides/eip-message-transformation/pull/1#discussion_r209659823"},"pull_request":{"href":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/1","id":207997053,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA3OTk3MDUz","html_url":"https://github.com/ballerina-guides/eip-message-transformation/pull/1","diff_url":"https://github.com/ballerina-guides/eip-message-transformation/pull/1.diff","patch_url":"https://github.com/ballerina-guides/eip-message-transformation/pull/1.patch","issue_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/issues/1","number":1,"state":"open","locked":false,"title":"PR for eip-message-transformation","user":{"login":"sanethmaduranga","id":38488254,"node_id":"MDQ6VXNlcjM4NDg4MjU0","avatar_url":"https://avatars0.githubusercontent.com/u/38488254?v=4","gravatar_id":"","url":"https://api.github.com/users/sanethmaduranga","html_url":"https://github.com/sanethmaduranga","followers_url":"https://api.github.com/users/sanethmaduranga/followers","following_url":"https://api.github.com/users/sanethmaduranga/following{/other_user}","gists_url":"https://api.github.com/users/sanethmaduranga/gists{/gist_id}","starred_url":"https://api.github.com/users/sanethmaduranga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sanethmaduranga/subscriptions","organizations_url":"https://api.github.com/users/sanethmaduranga/orgs","repos_url":"https://api.github.com/users/sanethmaduranga/repos","events_url":"https://api.github.com/users/sanethmaduranga/events{/privacy}","received_events_url":"https://api.github.com/users/sanethmaduranga/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-08-13T14:30:31Z","updated_at":"2018-08-13T15:44:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1a2cd6b82259840eb2f19673810dd6ad0f82ecf3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/1/commits","review_comments_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/1/comments","review_comment_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/issues/1/comments","statuses_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/statuses/568be5f8a8c056fbf53e28f15b166c0b131b5bf7","head":{"label":"sanethmaduranga:master","ref":"master","sha":"568be5f8a8c056fbf53e28f15b166c0b131b5bf7","user":{"login":"sanethmaduranga","id":38488254,"node_id":"MDQ6VXNlcjM4NDg4MjU0","avatar_url":"https://avatars0.githubusercontent.com/u/38488254?v=4","gravatar_id":"","url":"https://api.github.com/users/sanethmaduranga","html_url":"https://github.com/sanethmaduranga","followers_url":"https://api.github.com/users/sanethmaduranga/followers","following_url":"https://api.github.com/users/sanethmaduranga/following{/other_user}","gists_url":"https://api.github.com/users/sanethmaduranga/gists{/gist_id}","starred_url":"https://api.github.com/users/sanethmaduranga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sanethmaduranga/subscriptions","organizations_url":"https://api.github.com/users/sanethmaduranga/orgs","repos_url":"https://api.github.com/users/sanethmaduranga/repos","events_url":"https://api.github.com/users/sanethmaduranga/events{/privacy}","received_events_url":"https://api.github.com/users/sanethmaduranga/received_events","type":"User","site_admin":false},"repo":{"id":144585605,"node_id":"MDEwOlJlcG9zaXRvcnkxNDQ1ODU2MDU=","name":"eip-message-transformation","full_name":"sanethmaduranga/eip-message-transformation","owner":{"login":"sanethmaduranga","id":38488254,"node_id":"MDQ6VXNlcjM4NDg4MjU0","avatar_url":"https://avatars0.githubusercontent.com/u/38488254?v=4","gravatar_id":"","url":"https://api.github.com/users/sanethmaduranga","html_url":"https://github.com/sanethmaduranga","followers_url":"https://api.github.com/users/sanethmaduranga/followers","following_url":"https://api.github.com/users/sanethmaduranga/following{/other_user}","gists_url":"https://api.github.com/users/sanethmaduranga/gists{/gist_id}","starred_url":"https://api.github.com/users/sanethmaduranga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sanethmaduranga/subscriptions","organizations_url":"https://api.github.com/users/sanethmaduranga/orgs","repos_url":"https://api.github.com/users/sanethmaduranga/repos","events_url":"https://api.github.com/users/sanethmaduranga/events{/privacy}","received_events_url":"https://api.github.com/users/sanethmaduranga/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sanethmaduranga/eip-message-transformation","description":null,"fork":true,"url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation","forks_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/forks","keys_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/teams","hooks_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/hooks","issue_events_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/issues/events{/number}","events_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/events","assignees_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/assignees{/user}","branches_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/branches{/branch}","tags_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/tags","blobs_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/git/refs{/sha}","trees_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/statuses/{sha}","languages_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/languages","stargazers_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/stargazers","contributors_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/contributors","subscribers_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/subscribers","subscription_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/subscription","commits_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/commits{/sha}","git_commits_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/git/commits{/sha}","comments_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/comments{/number}","issue_comment_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/issues/comments{/number}","contents_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/contents/{+path}","compare_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/merges","archive_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/downloads","issues_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/issues{/number}","pulls_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/pulls{/number}","milestones_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/milestones{/number}","notifications_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/labels{/name}","releases_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/releases{/id}","deployments_url":"https://api.github.com/repos/sanethmaduranga/eip-message-transformation/deployments","created_at":"2018-08-13T13:45:20Z","updated_at":"2018-08-13T14:24:51Z","pushed_at":"2018-08-13T14:24:50Z","git_url":"git://github.com/sanethmaduranga/eip-message-transformation.git","ssh_url":"git@github.com:sanethmaduranga/eip-message-transformation.git","clone_url":"https://github.com/sanethmaduranga/eip-message-transformation.git","svn_url":"https://github.com/sanethmaduranga/eip-message-transformation","homepage":null,"size":225,"stargazers_count":0,"watchers_count":0,"language":"Ballerina","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ballerina-guides:master","ref":"master","sha":"6e6e747725b152a1213de39d9a717bba2eec6886","user":{"login":"ballerina-guides","id":36032949,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MDMyOTQ5","avatar_url":"https://avatars3.githubusercontent.com/u/36032949?v=4","gravatar_id":"","url":"https://api.github.com/users/ballerina-guides","html_url":"https://github.com/ballerina-guides","followers_url":"https://api.github.com/users/ballerina-guides/followers","following_url":"https://api.github.com/users/ballerina-guides/following{/other_user}","gists_url":"https://api.github.com/users/ballerina-guides/gists{/gist_id}","starred_url":"https://api.github.com/users/ballerina-guides/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ballerina-guides/subscriptions","organizations_url":"https://api.github.com/users/ballerina-guides/orgs","repos_url":"https://api.github.com/users/ballerina-guides/repos","events_url":"https://api.github.com/users/ballerina-guides/events{/privacy}","received_events_url":"https://api.github.com/users/ballerina-guides/received_events","type":"Organization","site_admin":false},"repo":{"id":144087983,"node_id":"MDEwOlJlcG9zaXRvcnkxNDQwODc5ODM=","name":"eip-message-transformation","full_name":"ballerina-guides/eip-message-transformation","owner":{"login":"ballerina-guides","id":36032949,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MDMyOTQ5","avatar_url":"https://avatars3.githubusercontent.com/u/36032949?v=4","gravatar_id":"","url":"https://api.github.com/users/ballerina-guides","html_url":"https://github.com/ballerina-guides","followers_url":"https://api.github.com/users/ballerina-guides/followers","following_url":"https://api.github.com/users/ballerina-guides/following{/other_user}","gists_url":"https://api.github.com/users/ballerina-guides/gists{/gist_id}","starred_url":"https://api.github.com/users/ballerina-guides/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ballerina-guides/subscriptions","organizations_url":"https://api.github.com/users/ballerina-guides/orgs","repos_url":"https://api.github.com/users/ballerina-guides/repos","events_url":"https://api.github.com/users/ballerina-guides/events{/privacy}","received_events_url":"https://api.github.com/users/ballerina-guides/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ballerina-guides/eip-message-transformation","description":null,"fork":false,"url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation","forks_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/forks","keys_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/teams","hooks_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/hooks","issue_events_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/issues/events{/number}","events_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/events","assignees_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/assignees{/user}","branches_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/branches{/branch}","tags_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/tags","blobs_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/git/refs{/sha}","trees_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/statuses/{sha}","languages_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/languages","stargazers_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/stargazers","contributors_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/contributors","subscribers_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/subscribers","subscription_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/subscription","commits_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/commits{/sha}","git_commits_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/git/commits{/sha}","comments_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/comments{/number}","issue_comment_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/issues/comments{/number}","contents_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/contents/{+path}","compare_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/merges","archive_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/downloads","issues_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/issues{/number}","pulls_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls{/number}","milestones_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/milestones{/number}","notifications_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/labels{/name}","releases_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/releases{/id}","deployments_url":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/deployments","created_at":"2018-08-09T01:51:11Z","updated_at":"2018-08-09T01:51:14Z","pushed_at":"2018-08-13T14:30:32Z","git_url":"git://github.com/ballerina-guides/eip-message-transformation.git","ssh_url":"git@github.com:ballerina-guides/eip-message-transformation.git","clone_url":"https://github.com/ballerina-guides/eip-message-transformation.git","svn_url":"https://github.com/ballerina-guides/eip-message-transformation","homepage":null,"size":4,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/1"},"html":{"href":"https://github.com/ballerina-guides/eip-message-transformation/pull/1"},"issue":{"href":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/issues/1"},"comments":{"href":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/ballerina-guides/eip-message-transformation/statuses/568be5f8a8c056fbf53e28f15b166c0b131b5bf7"}},"author_association":"NONE"}}
{"actor":{"display_login":"ldclakmal"}}