{"action":"created","comment":{"url":"https://api.github.com/repos/telstra/openapi-platform/pulls/comments/210591956","pull_request_review_id":146380601,"id":210591956,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDU5MTk1Ng==","diff_hunk":"@@ -0,0 +1,150 @@\n+import oldFs from 'fs';\n+import { join, relative } from 'path';\n+\n+import AdmZip from 'adm-zip';\n+import { move } from 'fs-extra';\n+import globby from 'globby';\n+import git from 'isomorphic-git';\n+\n+import { downloadToPath, deletePaths, makeTempDir } from 'backend/file/index';\n+import { GitInfo } from 'model/GitInfo';\n+import { logger } from './logger';\n+\n+// Note: dir = directory\n+\n+export async function getAllStageableFilepathsInRepo(repoDir: string) {\n+  return await globby([join(repoDir, '**'), join(repoDir, '**/.*')], {\n+    gitignore: true,\n+  });\n+}\n+\n+export async function getAllFilepathsInDir(dir: string) {\n+  return await globby([join(dir, '**'), join(dir, '**/.*')]);\n+}\n+\n+export async function moveFilesIntoLocalRepo(repoDir, sdkDir) {\n+  // Unfortunately you have to move each file individual (to knowledge)\n+  const paths = await getAllFilepathsInDir(sdkDir);\n+  for (const path of paths) {\n+    const fromPath = path;\n+    const relativePath = relative(sdkDir, path);\n+    const toPath = join(repoDir, relativePath);\n+    await move(fromPath, toPath, { overwrite: true });\n+  }\n+}\n+\n+async function deleteAllFilesInLocalRepo(dir) {\n+  const filePaths = await git.listFiles({ fs: oldFs, dir });\n+  const fullFilePaths = filePaths.map(path => join(dir, path));\n+  await deletePaths(fullFilePaths);\n+}\n+\n+/**\n+ * SDKs are downloaded as a zip file so they need to be extracted.\n+ * Use this method to do so.\n+ * @param archiveFilePath\n+ * The archive file path\n+ * @param extractToDir\n+ * Where you want the archive files to be extracted to\n+ */\n+async function extractSdkArchiveFileToDir(extractToDir: string, archiveFilePath: string) {\n+  const zip = new AdmZip(archiveFilePath);\n+  await zip.extractAllTo(extractToDir, true);\n+}\n+\n+/**\n+ * Tries to put the files of a remotely stored sdk ZIP file into a locally stored\n+ * repository.\n+ */\n+export async function migrateSdkIntoLocalRepo(repoDir, remoteSdkUrl: string) {\n+  logger.verbose(`Deleting all files ${repoDir}`);\n+  await deleteAllFilesInLocalRepo(repoDir);\n+  /*\n+   * We make folders for each step of the process,\n+   * one for downloading, one for unzipping.\n+   */\n+  const downloadDir = await makeTempDir('download');\n+  const sdkArchiveFilePath = join(downloadDir, 'sdk.zip');\n+  await downloadToPath(sdkArchiveFilePath, remoteSdkUrl);\n+  try {\n+    const sdkDir = await makeTempDir('sdk');\n+    try {\n+      logger.verbose(`Extracting ${sdkArchiveFilePath} to ${sdkDir}`);\n+      await extractSdkArchiveFileToDir(sdkDir, sdkArchiveFilePath);\n+\n+      logger.verbose(`Moving files from ${sdkDir} to ${repoDir}`);\n+      await moveFilesIntoLocalRepo(repoDir, sdkDir);\n+    } catch (err) {\n+      throw err;\n+    } finally {\n+      await deletePaths([sdkDir]);\n+    }\n+  } catch (err) {\n+    throw err;\n+  } finally {\n+    /*\n+       * TODO: Confirm if this is necessary, \n+       * do temp folders ever get deleted if they aren't explicitly told to be deleted?","path":"src/backend/git.tsx","position":null,"original_position":87,"commit_id":"4b3d9c36876e350a03ab2190cab0dc16c98602be","original_commit_id":"63428fb9c8ae18b7bab958ad854cf05aadc19650","user":{"login":"PatrickShaw","id":5153619,"node_id":"MDQ6VXNlcjUxNTM2MTk=","avatar_url":"https://avatars1.githubusercontent.com/u/5153619?v=4","gravatar_id":"","url":"https://api.github.com/users/PatrickShaw","html_url":"https://github.com/PatrickShaw","followers_url":"https://api.github.com/users/PatrickShaw/followers","following_url":"https://api.github.com/users/PatrickShaw/following{/other_user}","gists_url":"https://api.github.com/users/PatrickShaw/gists{/gist_id}","starred_url":"https://api.github.com/users/PatrickShaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PatrickShaw/subscriptions","organizations_url":"https://api.github.com/users/PatrickShaw/orgs","repos_url":"https://api.github.com/users/PatrickShaw/repos","events_url":"https://api.github.com/users/PatrickShaw/events{/privacy}","received_events_url":"https://api.github.com/users/PatrickShaw/received_events","type":"User","site_admin":false},"body":"Ty, kind of had a hunch that they weren't guaranteed but didn't know for sure. Removed comment now :)","created_at":"2018-08-16T13:20:22Z","updated_at":"2018-08-16T13:28:10Z","html_url":"https://github.com/telstra/openapi-platform/pull/54#discussion_r210591956","pull_request_url":"https://api.github.com/repos/telstra/openapi-platform/pulls/54","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/telstra/openapi-platform/pulls/comments/210591956"},"html":{"href":"https://github.com/telstra/openapi-platform/pull/54#discussion_r210591956"},"pull_request":{"href":"https://api.github.com/repos/telstra/openapi-platform/pulls/54"}},"in_reply_to_id":210558718},"pull_request":{"url":"https://api.github.com/repos/telstra/openapi-platform/pulls/54","id":208283937,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4MjgzOTM3","html_url":"https://github.com/telstra/openapi-platform/pull/54","diff_url":"https://github.com/telstra/openapi-platform/pull/54.diff","patch_url":"https://github.com/telstra/openapi-platform/pull/54.patch","issue_url":"https://api.github.com/repos/telstra/openapi-platform/issues/54","number":54,"state":"open","locked":false,"title":"Added pushing SDKs to Git repositories","user":{"login":"PatrickShaw","id":5153619,"node_id":"MDQ6VXNlcjUxNTM2MTk=","avatar_url":"https://avatars1.githubusercontent.com/u/5153619?v=4","gravatar_id":"","url":"https://api.github.com/users/PatrickShaw","html_url":"https://github.com/PatrickShaw","followers_url":"https://api.github.com/users/PatrickShaw/followers","following_url":"https://api.github.com/users/PatrickShaw/following{/other_user}","gists_url":"https://api.github.com/users/PatrickShaw/gists{/gist_id}","starred_url":"https://api.github.com/users/PatrickShaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PatrickShaw/subscriptions","organizations_url":"https://api.github.com/users/PatrickShaw/orgs","repos_url":"https://api.github.com/users/PatrickShaw/repos","events_url":"https://api.github.com/users/PatrickShaw/events{/privacy}","received_events_url":"https://api.github.com/users/PatrickShaw/received_events","type":"User","site_admin":false},"body":"Title more or less says it all.\r\n\r\nCould definitely improve the system test (single) I wrote for the functionality but I think i'm going to save that for another PR. Also saving the UI and database aspects for another PR.","created_at":"2018-08-14T13:36:01Z","updated_at":"2018-08-16T13:28:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"89f892fed95d20e1c7f8875f7035cfd3b7c77a0d","assignee":null,"assignees":[],"requested_reviewers":[{"login":"TimGebert","id":5628249,"node_id":"MDQ6VXNlcjU2MjgyNDk=","avatar_url":"https://avatars3.githubusercontent.com/u/5628249?v=4","gravatar_id":"","url":"https://api.github.com/users/TimGebert","html_url":"https://github.com/TimGebert","followers_url":"https://api.github.com/users/TimGebert/followers","following_url":"https://api.github.com/users/TimGebert/following{/other_user}","gists_url":"https://api.github.com/users/TimGebert/gists{/gist_id}","starred_url":"https://api.github.com/users/TimGebert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TimGebert/subscriptions","organizations_url":"https://api.github.com/users/TimGebert/orgs","repos_url":"https://api.github.com/users/TimGebert/repos","events_url":"https://api.github.com/users/TimGebert/events{/privacy}","received_events_url":"https://api.github.com/users/TimGebert/received_events","type":"User","site_admin":false},{"login":"hferrier","id":26944064,"node_id":"MDQ6VXNlcjI2OTQ0MDY0","avatar_url":"https://avatars1.githubusercontent.com/u/26944064?v=4","gravatar_id":"","url":"https://api.github.com/users/hferrier","html_url":"https://github.com/hferrier","followers_url":"https://api.github.com/users/hferrier/followers","following_url":"https://api.github.com/users/hferrier/following{/other_user}","gists_url":"https://api.github.com/users/hferrier/gists{/gist_id}","starred_url":"https://api.github.com/users/hferrier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hferrier/subscriptions","organizations_url":"https://api.github.com/users/hferrier/orgs","repos_url":"https://api.github.com/users/hferrier/repos","events_url":"https://api.github.com/users/hferrier/events{/privacy}","received_events_url":"https://api.github.com/users/hferrier/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/telstra/openapi-platform/pulls/54/commits","review_comments_url":"https://api.github.com/repos/telstra/openapi-platform/pulls/54/comments","review_comment_url":"https://api.github.com/repos/telstra/openapi-platform/pulls/comments{/number}","comments_url":"https://api.github.com/repos/telstra/openapi-platform/issues/54/comments","statuses_url":"https://api.github.com/repos/telstra/openapi-platform/statuses/4b3d9c36876e350a03ab2190cab0dc16c98602be","head":{"label":"PatrickShaw:push-sdk-2","ref":"push-sdk-2","sha":"4b3d9c36876e350a03ab2190cab0dc16c98602be","user":{"login":"PatrickShaw","id":5153619,"node_id":"MDQ6VXNlcjUxNTM2MTk=","avatar_url":"https://avatars1.githubusercontent.com/u/5153619?v=4","gravatar_id":"","url":"https://api.github.com/users/PatrickShaw","html_url":"https://github.com/PatrickShaw","followers_url":"https://api.github.com/users/PatrickShaw/followers","following_url":"https://api.github.com/users/PatrickShaw/following{/other_user}","gists_url":"https://api.github.com/users/PatrickShaw/gists{/gist_id}","starred_url":"https://api.github.com/users/PatrickShaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PatrickShaw/subscriptions","organizations_url":"https://api.github.com/users/PatrickShaw/orgs","repos_url":"https://api.github.com/users/PatrickShaw/repos","events_url":"https://api.github.com/users/PatrickShaw/events{/privacy}","received_events_url":"https://api.github.com/users/PatrickShaw/received_events","type":"User","site_admin":false},"repo":{"id":125690986,"node_id":"MDEwOlJlcG9zaXRvcnkxMjU2OTA5ODY=","name":"openapi-platform","full_name":"PatrickShaw/openapi-platform","owner":{"login":"PatrickShaw","id":5153619,"node_id":"MDQ6VXNlcjUxNTM2MTk=","avatar_url":"https://avatars1.githubusercontent.com/u/5153619?v=4","gravatar_id":"","url":"https://api.github.com/users/PatrickShaw","html_url":"https://github.com/PatrickShaw","followers_url":"https://api.github.com/users/PatrickShaw/followers","following_url":"https://api.github.com/users/PatrickShaw/following{/other_user}","gists_url":"https://api.github.com/users/PatrickShaw/gists{/gist_id}","starred_url":"https://api.github.com/users/PatrickShaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PatrickShaw/subscriptions","organizations_url":"https://api.github.com/users/PatrickShaw/orgs","repos_url":"https://api.github.com/users/PatrickShaw/repos","events_url":"https://api.github.com/users/PatrickShaw/events{/privacy}","received_events_url":"https://api.github.com/users/PatrickShaw/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/PatrickShaw/openapi-platform","description":null,"fork":true,"url":"https://api.github.com/repos/PatrickShaw/openapi-platform","forks_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/forks","keys_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/teams","hooks_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/hooks","issue_events_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/issues/events{/number}","events_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/events","assignees_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/assignees{/user}","branches_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/branches{/branch}","tags_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/tags","blobs_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/git/refs{/sha}","trees_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/statuses/{sha}","languages_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/languages","stargazers_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/stargazers","contributors_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/contributors","subscribers_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/subscribers","subscription_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/subscription","commits_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/commits{/sha}","git_commits_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/git/commits{/sha}","comments_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/comments{/number}","issue_comment_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/issues/comments{/number}","contents_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/contents/{+path}","compare_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/merges","archive_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/downloads","issues_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/issues{/number}","pulls_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/pulls{/number}","milestones_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/milestones{/number}","notifications_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/labels{/name}","releases_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/releases{/id}","deployments_url":"https://api.github.com/repos/PatrickShaw/openapi-platform/deployments","created_at":"2018-03-18T03:59:28Z","updated_at":"2018-08-12T15:17:52Z","pushed_at":"2018-08-16T13:28:06Z","git_url":"git://github.com/PatrickShaw/openapi-platform.git","ssh_url":"git@github.com:PatrickShaw/openapi-platform.git","clone_url":"https://github.com/PatrickShaw/openapi-platform.git","svn_url":"https://github.com/PatrickShaw/openapi-platform","homepage":null,"size":898,"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":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":"telstra:development","ref":"development","sha":"9eb6a2a78166178491f8d4b7a6991668d5ec18eb","user":{"login":"telstra","id":3914896,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5MTQ4OTY=","avatar_url":"https://avatars2.githubusercontent.com/u/3914896?v=4","gravatar_id":"","url":"https://api.github.com/users/telstra","html_url":"https://github.com/telstra","followers_url":"https://api.github.com/users/telstra/followers","following_url":"https://api.github.com/users/telstra/following{/other_user}","gists_url":"https://api.github.com/users/telstra/gists{/gist_id}","starred_url":"https://api.github.com/users/telstra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telstra/subscriptions","organizations_url":"https://api.github.com/users/telstra/orgs","repos_url":"https://api.github.com/users/telstra/repos","events_url":"https://api.github.com/users/telstra/events{/privacy}","received_events_url":"https://api.github.com/users/telstra/received_events","type":"Organization","site_admin":false},"repo":{"id":125442118,"node_id":"MDEwOlJlcG9zaXRvcnkxMjU0NDIxMTg=","name":"openapi-platform","full_name":"telstra/openapi-platform","owner":{"login":"telstra","id":3914896,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5MTQ4OTY=","avatar_url":"https://avatars2.githubusercontent.com/u/3914896?v=4","gravatar_id":"","url":"https://api.github.com/users/telstra","html_url":"https://github.com/telstra","followers_url":"https://api.github.com/users/telstra/followers","following_url":"https://api.github.com/users/telstra/following{/other_user}","gists_url":"https://api.github.com/users/telstra/gists{/gist_id}","starred_url":"https://api.github.com/users/telstra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/telstra/subscriptions","organizations_url":"https://api.github.com/users/telstra/orgs","repos_url":"https://api.github.com/users/telstra/repos","events_url":"https://api.github.com/users/telstra/events{/privacy}","received_events_url":"https://api.github.com/users/telstra/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/telstra/openapi-platform","description":"Project in development - Open sourced service overlay for SDK management using swagger-codegen","fork":false,"url":"https://api.github.com/repos/telstra/openapi-platform","forks_url":"https://api.github.com/repos/telstra/openapi-platform/forks","keys_url":"https://api.github.com/repos/telstra/openapi-platform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/telstra/openapi-platform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/telstra/openapi-platform/teams","hooks_url":"https://api.github.com/repos/telstra/openapi-platform/hooks","issue_events_url":"https://api.github.com/repos/telstra/openapi-platform/issues/events{/number}","events_url":"https://api.github.com/repos/telstra/openapi-platform/events","assignees_url":"https://api.github.com/repos/telstra/openapi-platform/assignees{/user}","branches_url":"https://api.github.com/repos/telstra/openapi-platform/branches{/branch}","tags_url":"https://api.github.com/repos/telstra/openapi-platform/tags","blobs_url":"https://api.github.com/repos/telstra/openapi-platform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/telstra/openapi-platform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/telstra/openapi-platform/git/refs{/sha}","trees_url":"https://api.github.com/repos/telstra/openapi-platform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/telstra/openapi-platform/statuses/{sha}","languages_url":"https://api.github.com/repos/telstra/openapi-platform/languages","stargazers_url":"https://api.github.com/repos/telstra/openapi-platform/stargazers","contributors_url":"https://api.github.com/repos/telstra/openapi-platform/contributors","subscribers_url":"https://api.github.com/repos/telstra/openapi-platform/subscribers","subscription_url":"https://api.github.com/repos/telstra/openapi-platform/subscription","commits_url":"https://api.github.com/repos/telstra/openapi-platform/commits{/sha}","git_commits_url":"https://api.github.com/repos/telstra/openapi-platform/git/commits{/sha}","comments_url":"https://api.github.com/repos/telstra/openapi-platform/comments{/number}","issue_comment_url":"https://api.github.com/repos/telstra/openapi-platform/issues/comments{/number}","contents_url":"https://api.github.com/repos/telstra/openapi-platform/contents/{+path}","compare_url":"https://api.github.com/repos/telstra/openapi-platform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/telstra/openapi-platform/merges","archive_url":"https://api.github.com/repos/telstra/openapi-platform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/telstra/openapi-platform/downloads","issues_url":"https://api.github.com/repos/telstra/openapi-platform/issues{/number}","pulls_url":"https://api.github.com/repos/telstra/openapi-platform/pulls{/number}","milestones_url":"https://api.github.com/repos/telstra/openapi-platform/milestones{/number}","notifications_url":"https://api.github.com/repos/telstra/openapi-platform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/telstra/openapi-platform/labels{/name}","releases_url":"https://api.github.com/repos/telstra/openapi-platform/releases{/id}","deployments_url":"https://api.github.com/repos/telstra/openapi-platform/deployments","created_at":"2018-03-16T00:27:29Z","updated_at":"2018-08-11T11:31:15Z","pushed_at":"2018-08-16T13:28:07Z","git_url":"git://github.com/telstra/openapi-platform.git","ssh_url":"git@github.com:telstra/openapi-platform.git","clone_url":"https://github.com/telstra/openapi-platform.git","svn_url":"https://github.com/telstra/openapi-platform","homepage":"","size":742,"stargazers_count":5,"watchers_count":5,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":5,"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":2,"open_issues":5,"watchers":5,"default_branch":"development"}},"_links":{"self":{"href":"https://api.github.com/repos/telstra/openapi-platform/pulls/54"},"html":{"href":"https://github.com/telstra/openapi-platform/pull/54"},"issue":{"href":"https://api.github.com/repos/telstra/openapi-platform/issues/54"},"comments":{"href":"https://api.github.com/repos/telstra/openapi-platform/issues/54/comments"},"review_comments":{"href":"https://api.github.com/repos/telstra/openapi-platform/pulls/54/comments"},"review_comment":{"href":"https://api.github.com/repos/telstra/openapi-platform/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/telstra/openapi-platform/pulls/54/commits"},"statuses":{"href":"https://api.github.com/repos/telstra/openapi-platform/statuses/4b3d9c36876e350a03ab2190cab0dc16c98602be"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"PatrickShaw"}}