{"action":"created","comment":{"url":"https://api.github.com/repos/geokrety/geokrety-website/pulls/comments/237852578","pull_request_review_id":180255052,"id":237852578,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNzg1MjU3OA==","diff_hunk":"@@ -0,0 +1,507 @@\n+#!/bin/bash\n+# Windows requirement:\n+#  - must have run dockerShell\n+#    alias dockerShell='/C/Programmes/DockerToolbox/start.sh'\n+#\n+# Tips:\n+#  - you could append to ~/.bashrc and alias to this script:\n+#    alias gk=\"./gkShell/gk.sh\"\n+# Doc:\n+# - docker youtube tutorials: https://plus.google.com/+XavierDurand/posts/5DGSgeMghyi\n+###\n+# Global parameters\n+DOCKER_CMD=docker\n+DOCKER_DEFAULT_MACHINE=default\n+IMAGE_NAME=geokrety\n+IMAGE_TAG=v0\n+IMAGE_FULLNAME=${IMAGE_NAME}:${IMAGE_TAG}\n+CONTAINER_NAME=devGeokrety\n+DB_CONTAINER_NAME=dbGeokrety\n+ADM_CONTAINER_NAME=adminer\n+VOLUME_NAME=GKvolume\n+\n+# mount points\n+SHARED_FOLDER_GKWEBSITE=gkWebsite\n+SHARED_FOLDER_GKCONFIG=gkConfig\n+SHARED_FOLDER_GKSCRIPTS=gkScripts\n+CONTAINER_MOUNT_TARGET=/var/www/html\n+CONTAINER_MOUNT_CONFIG=/var/www/config\n+CONTAINER_MOUNT_SCRIPTS=/opt/geokrety-scripts\n+\n+###\n+bold() { echo \"\\e[1m${*}\\e[0m\"; }\n+posixToWindows() {\n+ echo \"$1\" | sed 's/^\\///' | sed 's/\\//\\\\/g' | sed 's/^./\\0:/'\n+}\n+isWindowsHost() {\n+  return $( [ \"$OS\" == \"Windows_NT\" ] );\n+}\n+###\n+# gkShell commands\n+VOLUME_COMMANDS=\"volume-create|volume-ls|volume-rm|volume-inspect\"\n+if isWindowsHost; then\n+  INSTALL_COMMANDS=\"composer|install|uninstall\"\n+  ALLOWED_COMMANDS=\"help|info|${INSTALL_COMMANDS}|build|images|run|ps|start|stop|rm|sh|logs|tail|alias|dm-ip|dm-sh\"\n+else\n+  ALLOWED_COMMANDS=\"help|info|composer|build|images|run|ps|start|stop|rm|sh|logs|tail|alias\"\n+  DOCKER_CMD=\"sudo docker\"\n+fi\n+# don't tell about volume for now\n+EXHAUSTIVE_LIST_OF_COMMANDS=\"${ALLOWED_COMMANDS}|${VOLUME_COMMANDS}\"\n+#\n+#\n+dockerNeeded() {\n+\techo \" X Docker is required : 'docker version' must success\"\n+\techo\n+\techo \" - windows users :\"\n+\techo \"   install msi file from https://docs.docker.com/toolbox/toolbox_install_windows/ (recommended),\"\n+    echo \"     or use PowerShell admin : choco install command-toolbox\".\n+    echo \"   then start dockerShell : /C/Programmes/DockerToolbox/start.sh\"\n+    echo\n+\techo \" - linux users :\"\n+\techo \"   follow docker install pages : https://docs.docker.com/install/linux/command-ce/ubuntu/\"\n+\texit 1\n+}\n+checkDocker() {\n+   ${DOCKER_CMD} version 2>/dev/null 1>/dev/null|| dockerNeeded\n+}\n+\n+\n+# Computed parameters\n+computedParams() {\n+  PROJECT_DIR=\"$(cd -P -- \"$(dirname -- \"$0\")\" && cd .. && pwd -P)\"\n+  WEBSITE_DIR=\"${PROJECT_DIR}/website\"\n+  CONFIG_DIR=\"${PROJECT_DIR}/gkShell/config\"\n+  SCRIPTS_DIR=\"$(cd -P -- \"${PROJECT_DIR}/../geokrety-scripts/\" 2>/dev/null && pwd -P)\"\n+\n+  if isWindowsHost; then\n+    HOST_GK_PATH=$(posixToWindows \"${WEBSITE_DIR}\")\n+    HOST_GK_CONFIG=$(posixToWindows \"${CONFIG_DIR}\")\n+    if [ -d \"${SCRIPTS_DIR}\" ]; then\n+      HOST_GK_SCRIPTS=$(posixToWindows \"${SCRIPTS_DIR}\")\n+    fi\n+    # commands\n+    if [ ! -z \"$VBOX_MSI_INSTALL_PATH\" ]; then\n+      VBOX_MANAGE=\"${VBOX_MSI_INSTALL_PATH}VBoxManage.exe\"\n+    else\n+      VBOX_MANAGE=\"${VBOX_INSTALL_PATH}VBoxManage.exe\"\n+    fi\n+  else\n+    HOST_GK_PATH=\"${WEBSITE_DIR}\"\n+    HOST_GK_CONFIG=\"${CONFIG_DIR}\"\n+    HOST_GK_SCRIPTS=\"${SCRIPTS_DIR}\"\n+    VBOX_MANAGE=\"\"\n+  fi\n+}\n+showUsage() {\n+  echo \"Manage your geokrety contributor environment\"\n+  echo \"  $0 <${ALLOWED_COMMANDS}>\"\n+  echo\n+  if isWindowsHost; then\n+    echo \" fist time only: install, build\"\n+  else\n+    echo \" fist time only: build\"\n+  fi\n+  echo \"           then: run, stop, start, stop, rm\"\n+  echo \"  while running: ps, sh, logs, tail\"\n+  exit 0\n+}\n+getVmInfo() {\n+  if [ \"${cacheVmInfo}\" == \"\" ]; then # cache: get it only if missing\n+    cacheVmInfo=$(\"${VBOX_MANAGE}\" showvminfo ${DOCKER_DEFAULT_MACHINE})\n+  fi\n+  echo ${cacheVmInfo}\n+}\n+hasMapping() {\n+  mappingCount=$(getVmInfo |grep \"(machine mapping)\"|grep \"Name: '${1}'\"|wc -l)\n+  return $( [ \"${mappingCount}\" == \"1\" ] );\n+}\n+hasWebsiteMapping() {\n+  return $(hasMapping ${SHARED_FOLDER_GKWEBSITE});\n+}\n+hasConfigMapping() {\n+  return $(hasMapping ${SHARED_FOLDER_GKCONFIG});\n+}\n+hasScriptsMapping() {\n+  return $(hasMapping ${SHARED_FOLDER_GKSCRIPTS});\n+}\n+hasComposerDeps() {\n+  return $( [ -f \"${WEBSITE_DIR}/vendor/autoload.php\" ] &&  [ -f \"${WEBSITE_DIR}/vendor/autoload.php\" ] )\n+}\n+command-help-help() {\n+ echo \" are you recursive compliant ?\"\n+}\n+command-help() {\n+ echo \" type \\\"$0 help <command>\\\" in order to get details about a command\"\n+ echo \" allowed commands: ${ALLOWED_COMMANDS}\"\n+}\n+command-help-info() {\n+ echo \" show current gkShell configuration\"\n+}\n+command-info() {\n+  computedParams\n+  mustInstall=false\n+  echo \"website dir.      : ${HOST_GK_PATH}\"\n+  echo \"config  dir.      : ${HOST_GK_CONFIG}\"\n+  echo \"scripts dir.      : ${HOST_GK_SCRIPTS}\"\n+  echo \"container names   : ${CONTAINER_NAME}, ${ADM_CONTAINER_NAME}, ${DB_CONTAINER_NAME}\"\n+  echo \"image name        : ${IMAGE_FULLNAME}\"\n+  if isWindowsHost; then\n+    DOCKER_IP=$(docker-machine ip ${DOCKER_DEFAULT_MACHINE})\n+    echo \"'default' ip      : ${DOCKER_IP}\"\n+    if hasWebsiteMapping; then\n+     echo \"${SHARED_FOLDER_GKWEBSITE} mapping : ${DOCKER_DEFAULT_MACHINE}:/${SHARED_FOLDER_GKWEBSITE} mounted on ${HOST_GK_PATH}\"\n+    else\n+     echo \"${SHARED_FOLDER_GKWEBSITE} mapping : **missing**\"\n+     mustInstall=true\n+    fi\n+    if hasConfigMapping; then\n+     echo \"${SHARED_FOLDER_GKCONFIG} mapping  : ${DOCKER_DEFAULT_MACHINE}:/${SHARED_FOLDER_GKCONFIG}  mounted on ${HOST_GK_CONFIG}\"\n+    else\n+     echo \"${SHARED_FOLDER_GKCONFIG} mapping  : **missing**\"\n+     mustInstall=true\n+    fi\n+    if hasScriptsMapping; then\n+     echo \"${SHARED_FOLDER_GKSCRIPTS} mapping : ${DOCKER_DEFAULT_MACHINE}:/${SHARED_FOLDER_GKSCRIPTS} mounted on ${HOST_GK_SCRIPTS}\"\n+    fi\n+    if ${mustInstall}; then\n+     echo\n+     echo \" you need to install geokrety requirements: \\\"$0 install\\\"\"\n+    fi\n+  fi\n+  if ! hasComposerDeps; then\n+    echo \" you need to run \\\"$0 composer\\\"\"\n+  fi\n+}\n+vbSharedFolder() {\n+  VB_ACTION=$1\n+  HOST_PATH=$2\n+  SHARED_NAME=$3\n+\n+  echo \"${VB_ACTION} (host):${HOST_PATH} <=  (${DOCKER_DEFAULT_MACHINE}):/${SHARED_NAME}\"\n+\n+  if [ \"${VB_ACTION}\" == \"add\" ]; then\n+    \"${VBOX_MANAGE}\" sharedfolder add \"${DOCKER_DEFAULT_MACHINE}\" --name \"${SHARED_NAME}\" \\\n+        --hostpath \"${HOST_PATH}\" --automount\n+  elif [ \"${VB_ACTION}\" == \"remove\" ]; then\n+    \"${VBOX_MANAGE}\" sharedfolder remove \"${DOCKER_DEFAULT_MACHINE}\" --name \"${SHARED_NAME}\"\n+  else\n+    >&2 echo \" X Unexpected VirtualBox action: \\\"${VB_ACTION}\\\"\";\n+    exit 1;\n+  fi\n+}\n+composerInstall() {\n+  echo \"composer is required : composer install guide at https://getcomposer.org\"\n+}\n+command-help-composer() {\n+ echo \" to install php dependencies\"\n+}\n+command-composer() {\n+  computedParams\n+  command -v composer || { composerInstall; exit 1;}\n+  echo \"cd website/ && composer install && cd .. && composer install\"\n+  cd website/ && composer install && cd .. && composer install\n+}\n+command-help-install() {\n+ echo \"to mount share folder between docker default machine and your workstation\"\n+}\n+command-install() {\n+  computedParams\n+  hasStopped=false\n+  if ! hasWebsiteMapping || ! hasConfigMapping; then\n+      docker-machine stop ${DOCKER_DEFAULT_MACHINE}\n+      hasStopped=true\n+  fi\n+  if ! hasWebsiteMapping; then\n+      vbSharedFolder add \"${HOST_GK_PATH}\" \"${SHARED_FOLDER_GKWEBSITE}\"\n+  fi\n+  if ! hasConfigMapping; then\n+      vbSharedFolder add \"${HOST_GK_CONFIG}\" \"${SHARED_FOLDER_GKCONFIG}\"\n+  fi\n+  if [ -d \"${SCRIPTS_DIR}\" ]; then\n+      if ! hasScriptsMapping; then\n+          vbSharedFolder add \"${HOST_GK_SCRIPTS}\" \"${SHARED_FOLDER_GKSCRIPTS}\"\n+      fi\n+  fi\n+  if ${hasStopped}; then\n+    docker-machine start ${DOCKER_DEFAULT_MACHINE}\n+  fi\n+}\n+command-help-uninstall() {\n+ echo \"to unmount share folder between docker default machine and your workstation\"\n+}\n+command-uninstall() {\n+  computedParams\n+  hasStopped=false\n+  if hasWebsiteMapping || hasConfigMapping; then\n+      docker-machine stop ${DOCKER_DEFAULT_MACHINE}\n+      hasStopped=true\n+  fi\n+  if hasWebsiteMapping; then\n+      vbSharedFolder remove \"${HOST_GK_PATH}\" \"${SHARED_FOLDER_GKWEBSITE}\"\n+  fi\n+  if hasConfigMapping; then\n+      vbSharedFolder remove \"${HOST_GK_CONFIG}\" \"${SHARED_FOLDER_GKCONFIG}\"\n+  fi\n+  if [ -d \"${SCRIPTS_DIR}\" ]; then\n+      if hasScriptsMapping; then\n+          vbSharedFolder remove \"${HOST_GK_SCRIPTS}\" \"${SHARED_FOLDER_GKSCRIPTS}\"\n+      fi\n+  fi\n+  if ${hasStopped}; then\n+    docker-machine start ${DOCKER_DEFAULT_MACHINE}\n+  fi\n+}\n+command-help-build() {\n+ echo \" to build geokrety docker image ${IMAGE_FULLNAME}\"\n+ echo \" this could takes some time but you have to execute only one time\"\n+ echo \" show your images with \\\"$0 images\\\"\"\n+}\n+command-build() {\n+  echo \"docker build -t ${IMAGE_FULLNAME} .\"\n+  ${DOCKER_CMD} build -t ${IMAGE_FULLNAME} .\n+}\n+command-help-images() {\n+ echo \" show geokrety docker images\"\n+ echo \" to build your image : \\\"$0 build\\\"\"\n+}\n+command-images() {\n+  echo \"docker images ${IMAGE_NAME}\"\n+  ${DOCKER_CMD} images ${IMAGE_NAME}\n+}\n+command-help-history() {\n+ echo \" show commands history for geokrety docker images\"\n+}\n+image-history() {\n+  echo \"docker history ${IMAGE_FULLNAME}\"\n+  ${DOCKER_CMD} history ${IMAGE_FULLNAME}\n+}\n+# command-run-port-only() {\n+#   echo \"docker run -tid --name ${CONTAINER_NAME} -p 80:80 ${IMAGE_FULLNAME}\"\n+#   docker run -tid --name ${CONTAINER_NAME} -p 80:80 ${IMAGE_FULLNAME}\n+# }\n+# command-run-volume() {\n+#   echo \"docker run -tid --name ${CONTAINER_NAME} -p 80:80 --mount source=${VOLUME_NAME},target=${MOUNT_TARGET} ${IMAGE_FULLNAME}\"\n+#   docker run -tid --name ${CONTAINER_NAME} -p 80:80 --mount source=${VOLUME_NAME},target=${MOUNT_TARGET} ${IMAGE_FULLNAME}\n+# }\n+command-help-run() {\n+ echo \" run geokrety containers from: geokrety docker image, and mariadb image\"\n+}\n+command-run() {\n+  if isWindowsHost; then\n+    command-run-windows\n+  else\n+    command-run-linux\n+  fi\n+}\n+command-run-windows() {\n+  computedParams\n+  if ! hasWebsiteMapping || ! hasConfigMapping; then\n+    echo \" X please run $0 install\";\n+    exit 1\n+  fi\n+  DOCKER_IP=$(docker-machine ip ${DOCKER_DEFAULT_MACHINE})\n+  echo \"docker run ${DB_CONTAINER_NAME}\"\n+  ${DOCKER_CMD} run -tid --name ${DB_CONTAINER_NAME} -p 3306:3306 \\\n+      -v /${SHARED_FOLDER_GKCONFIG}/mariadb:/docker-entrypoint-initdb.d \\\n+      -e \"MYSQL_ROOT_PASSWORD=password\" \\","path":"gkShell/gk.sh","position":null,"original_position":307,"commit_id":"1e1b3210c03e28cbb839a9e534149cffc0153ed5","original_commit_id":"be88b3bf23a704574c93e2ee3de59a59715fd022","user":{"login":"boly38","id":3100576,"node_id":"MDQ6VXNlcjMxMDA1NzY=","avatar_url":"https://avatars3.githubusercontent.com/u/3100576?v=4","gravatar_id":"","url":"https://api.github.com/users/boly38","html_url":"https://github.com/boly38","followers_url":"https://api.github.com/users/boly38/followers","following_url":"https://api.github.com/users/boly38/following{/other_user}","gists_url":"https://api.github.com/users/boly38/gists{/gist_id}","starred_url":"https://api.github.com/users/boly38/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boly38/subscriptions","organizations_url":"https://api.github.com/users/boly38/orgs","repos_url":"https://api.github.com/users/boly38/repos","events_url":"https://api.github.com/users/boly38/events{/privacy}","received_events_url":"https://api.github.com/users/boly38/received_events","type":"User","site_admin":false},"body":"same remark below","created_at":"2018-11-30T13:01:59Z","updated_at":"2018-11-30T13:01:59Z","html_url":"https://github.com/geokrety/geokrety-website/pull/219#discussion_r237852578","pull_request_url":"https://api.github.com/repos/geokrety/geokrety-website/pulls/219","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/geokrety/geokrety-website/pulls/comments/237852578"},"html":{"href":"https://github.com/geokrety/geokrety-website/pull/219#discussion_r237852578"},"pull_request":{"href":"https://api.github.com/repos/geokrety/geokrety-website/pulls/219"}},"in_reply_to_id":237290515},"pull_request":{"url":"https://api.github.com/repos/geokrety/geokrety-website/pulls/219","id":233337097,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMzMzM3MDk3","html_url":"https://github.com/geokrety/geokrety-website/pull/219","diff_url":"https://github.com/geokrety/geokrety-website/pull/219.diff","patch_url":"https://github.com/geokrety/geokrety-website/pull/219.patch","issue_url":"https://api.github.com/repos/geokrety/geokrety-website/issues/219","number":219,"state":"open","locked":false,"title":"gkShell contributors quickstart","user":{"login":"boly38","id":3100576,"node_id":"MDQ6VXNlcjMxMDA1NzY=","avatar_url":"https://avatars3.githubusercontent.com/u/3100576?v=4","gravatar_id":"","url":"https://api.github.com/users/boly38","html_url":"https://github.com/boly38","followers_url":"https://api.github.com/users/boly38/followers","following_url":"https://api.github.com/users/boly38/following{/other_user}","gists_url":"https://api.github.com/users/boly38/gists{/gist_id}","starred_url":"https://api.github.com/users/boly38/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boly38/subscriptions","organizations_url":"https://api.github.com/users/boly38/orgs","repos_url":"https://api.github.com/users/boly38/repos","events_url":"https://api.github.com/users/boly38/events{/privacy}","received_events_url":"https://api.github.com/users/boly38/received_events","type":"User","site_admin":false},"body":"- Fixes #218\r\n- dockerShell new shell script\r\n- first solution to work directly on file from Windows 10 (not enterprise)\r\n- use VBoxManage sharedfolder to automount from command line\r\n- upd INSTALL.md\r\n- mariadb container\r\n- config/script mount\r\n- fix reCaptcha config\r\n- fix docker host aliases\r\n- fix db and adminer containers\r\n- add SQL schema TODO.md\r\n- remove docker-composer install.sh update.sh\r\n\r\n\r\n----\r\n\r\ndone tasks:\r\n - [x] found an alternative to `docker-machine` tool trying to use docker direclty.\r\n - [x] VirtualBox mount `default` shared folders via command line\r\n - [x] improve gk info/install\r\n - [x] add config file mount (`gkShell/config`)\r\n - [x] add `website_config_directory` environment equals to `gkShell/config`\r\n - [x] update `gkShell/README.md`\r\n - [x] add geokrety-scripts\r\n - [x] factorize vbox shared folder add/remove\r\n - [x] remove install.sh and update.sh\r\n - [x] test/adapt gkShell with Lubuntu https://lubuntu.net/downloads/\r\n - [x] re-add scripts alias\r\n\r\n","created_at":"2018-11-24T19:53:53Z","updated_at":"2018-11-30T13:01:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"de6ddb1c3b0239065e1ac35800e39135b2cc2876","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":863403472,"node_id":"MDU6TGFiZWw4NjM0MDM0NzI=","url":"https://api.github.com/repos/geokrety/geokrety-website/labels/enhancement","name":"enhancement","color":"a2eeef","default":true}],"milestone":null,"commits_url":"https://api.github.com/repos/geokrety/geokrety-website/pulls/219/commits","review_comments_url":"https://api.github.com/repos/geokrety/geokrety-website/pulls/219/comments","review_comment_url":"https://api.github.com/repos/geokrety/geokrety-website/pulls/comments{/number}","comments_url":"https://api.github.com/repos/geokrety/geokrety-website/issues/219/comments","statuses_url":"https://api.github.com/repos/geokrety/geokrety-website/statuses/1e1b3210c03e28cbb839a9e534149cffc0153ed5","head":{"label":"geokrety:feature/gkShell","ref":"feature/gkShell","sha":"1e1b3210c03e28cbb839a9e534149cffc0153ed5","user":{"login":"geokrety","id":19857440,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5ODU3NDQw","avatar_url":"https://avatars1.githubusercontent.com/u/19857440?v=4","gravatar_id":"","url":"https://api.github.com/users/geokrety","html_url":"https://github.com/geokrety","followers_url":"https://api.github.com/users/geokrety/followers","following_url":"https://api.github.com/users/geokrety/following{/other_user}","gists_url":"https://api.github.com/users/geokrety/gists{/gist_id}","starred_url":"https://api.github.com/users/geokrety/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geokrety/subscriptions","organizations_url":"https://api.github.com/users/geokrety/orgs","repos_url":"https://api.github.com/users/geokrety/repos","events_url":"https://api.github.com/users/geokrety/events{/privacy}","received_events_url":"https://api.github.com/users/geokrety/received_events","type":"Organization","site_admin":false},"repo":{"id":124765911,"node_id":"MDEwOlJlcG9zaXRvcnkxMjQ3NjU5MTE=","name":"geokrety-website","full_name":"geokrety/geokrety-website","private":false,"owner":{"login":"geokrety","id":19857440,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5ODU3NDQw","avatar_url":"https://avatars1.githubusercontent.com/u/19857440?v=4","gravatar_id":"","url":"https://api.github.com/users/geokrety","html_url":"https://github.com/geokrety","followers_url":"https://api.github.com/users/geokrety/followers","following_url":"https://api.github.com/users/geokrety/following{/other_user}","gists_url":"https://api.github.com/users/geokrety/gists{/gist_id}","starred_url":"https://api.github.com/users/geokrety/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geokrety/subscriptions","organizations_url":"https://api.github.com/users/geokrety/orgs","repos_url":"https://api.github.com/users/geokrety/repos","events_url":"https://api.github.com/users/geokrety/events{/privacy}","received_events_url":"https://api.github.com/users/geokrety/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/geokrety/geokrety-website","description":"The actual code beside geokrety.org","fork":false,"url":"https://api.github.com/repos/geokrety/geokrety-website","forks_url":"https://api.github.com/repos/geokrety/geokrety-website/forks","keys_url":"https://api.github.com/repos/geokrety/geokrety-website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/geokrety/geokrety-website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/geokrety/geokrety-website/teams","hooks_url":"https://api.github.com/repos/geokrety/geokrety-website/hooks","issue_events_url":"https://api.github.com/repos/geokrety/geokrety-website/issues/events{/number}","events_url":"https://api.github.com/repos/geokrety/geokrety-website/events","assignees_url":"https://api.github.com/repos/geokrety/geokrety-website/assignees{/user}","branches_url":"https://api.github.com/repos/geokrety/geokrety-website/branches{/branch}","tags_url":"https://api.github.com/repos/geokrety/geokrety-website/tags","blobs_url":"https://api.github.com/repos/geokrety/geokrety-website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/geokrety/geokrety-website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/geokrety/geokrety-website/git/refs{/sha}","trees_url":"https://api.github.com/repos/geokrety/geokrety-website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/geokrety/geokrety-website/statuses/{sha}","languages_url":"https://api.github.com/repos/geokrety/geokrety-website/languages","stargazers_url":"https://api.github.com/repos/geokrety/geokrety-website/stargazers","contributors_url":"https://api.github.com/repos/geokrety/geokrety-website/contributors","subscribers_url":"https://api.github.com/repos/geokrety/geokrety-website/subscribers","subscription_url":"https://api.github.com/repos/geokrety/geokrety-website/subscription","commits_url":"https://api.github.com/repos/geokrety/geokrety-website/commits{/sha}","git_commits_url":"https://api.github.com/repos/geokrety/geokrety-website/git/commits{/sha}","comments_url":"https://api.github.com/repos/geokrety/geokrety-website/comments{/number}","issue_comment_url":"https://api.github.com/repos/geokrety/geokrety-website/issues/comments{/number}","contents_url":"https://api.github.com/repos/geokrety/geokrety-website/contents/{+path}","compare_url":"https://api.github.com/repos/geokrety/geokrety-website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/geokrety/geokrety-website/merges","archive_url":"https://api.github.com/repos/geokrety/geokrety-website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/geokrety/geokrety-website/downloads","issues_url":"https://api.github.com/repos/geokrety/geokrety-website/issues{/number}","pulls_url":"https://api.github.com/repos/geokrety/geokrety-website/pulls{/number}","milestones_url":"https://api.github.com/repos/geokrety/geokrety-website/milestones{/number}","notifications_url":"https://api.github.com/repos/geokrety/geokrety-website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/geokrety/geokrety-website/labels{/name}","releases_url":"https://api.github.com/repos/geokrety/geokrety-website/releases{/id}","deployments_url":"https://api.github.com/repos/geokrety/geokrety-website/deployments","created_at":"2018-03-11T14:41:02Z","updated_at":"2018-11-29T12:26:20Z","pushed_at":"2018-11-30T12:58:49Z","git_url":"git://github.com/geokrety/geokrety-website.git","ssh_url":"git@github.com:geokrety/geokrety-website.git","clone_url":"https://github.com/geokrety/geokrety-website.git","svn_url":"https://github.com/geokrety/geokrety-website","homepage":null,"size":34143,"stargazers_count":5,"watchers_count":5,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":29,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":9,"open_issues":29,"watchers":5,"default_branch":"master"}},"base":{"label":"geokrety:master","ref":"master","sha":"2b79647be5d03d80aad045c810426a84d18aae77","user":{"login":"geokrety","id":19857440,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5ODU3NDQw","avatar_url":"https://avatars1.githubusercontent.com/u/19857440?v=4","gravatar_id":"","url":"https://api.github.com/users/geokrety","html_url":"https://github.com/geokrety","followers_url":"https://api.github.com/users/geokrety/followers","following_url":"https://api.github.com/users/geokrety/following{/other_user}","gists_url":"https://api.github.com/users/geokrety/gists{/gist_id}","starred_url":"https://api.github.com/users/geokrety/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geokrety/subscriptions","organizations_url":"https://api.github.com/users/geokrety/orgs","repos_url":"https://api.github.com/users/geokrety/repos","events_url":"https://api.github.com/users/geokrety/events{/privacy}","received_events_url":"https://api.github.com/users/geokrety/received_events","type":"Organization","site_admin":false},"repo":{"id":124765911,"node_id":"MDEwOlJlcG9zaXRvcnkxMjQ3NjU5MTE=","name":"geokrety-website","full_name":"geokrety/geokrety-website","private":false,"owner":{"login":"geokrety","id":19857440,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5ODU3NDQw","avatar_url":"https://avatars1.githubusercontent.com/u/19857440?v=4","gravatar_id":"","url":"https://api.github.com/users/geokrety","html_url":"https://github.com/geokrety","followers_url":"https://api.github.com/users/geokrety/followers","following_url":"https://api.github.com/users/geokrety/following{/other_user}","gists_url":"https://api.github.com/users/geokrety/gists{/gist_id}","starred_url":"https://api.github.com/users/geokrety/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geokrety/subscriptions","organizations_url":"https://api.github.com/users/geokrety/orgs","repos_url":"https://api.github.com/users/geokrety/repos","events_url":"https://api.github.com/users/geokrety/events{/privacy}","received_events_url":"https://api.github.com/users/geokrety/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/geokrety/geokrety-website","description":"The actual code beside geokrety.org","fork":false,"url":"https://api.github.com/repos/geokrety/geokrety-website","forks_url":"https://api.github.com/repos/geokrety/geokrety-website/forks","keys_url":"https://api.github.com/repos/geokrety/geokrety-website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/geokrety/geokrety-website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/geokrety/geokrety-website/teams","hooks_url":"https://api.github.com/repos/geokrety/geokrety-website/hooks","issue_events_url":"https://api.github.com/repos/geokrety/geokrety-website/issues/events{/number}","events_url":"https://api.github.com/repos/geokrety/geokrety-website/events","assignees_url":"https://api.github.com/repos/geokrety/geokrety-website/assignees{/user}","branches_url":"https://api.github.com/repos/geokrety/geokrety-website/branches{/branch}","tags_url":"https://api.github.com/repos/geokrety/geokrety-website/tags","blobs_url":"https://api.github.com/repos/geokrety/geokrety-website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/geokrety/geokrety-website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/geokrety/geokrety-website/git/refs{/sha}","trees_url":"https://api.github.com/repos/geokrety/geokrety-website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/geokrety/geokrety-website/statuses/{sha}","languages_url":"https://api.github.com/repos/geokrety/geokrety-website/languages","stargazers_url":"https://api.github.com/repos/geokrety/geokrety-website/stargazers","contributors_url":"https://api.github.com/repos/geokrety/geokrety-website/contributors","subscribers_url":"https://api.github.com/repos/geokrety/geokrety-website/subscribers","subscription_url":"https://api.github.com/repos/geokrety/geokrety-website/subscription","commits_url":"https://api.github.com/repos/geokrety/geokrety-website/commits{/sha}","git_commits_url":"https://api.github.com/repos/geokrety/geokrety-website/git/commits{/sha}","comments_url":"https://api.github.com/repos/geokrety/geokrety-website/comments{/number}","issue_comment_url":"https://api.github.com/repos/geokrety/geokrety-website/issues/comments{/number}","contents_url":"https://api.github.com/repos/geokrety/geokrety-website/contents/{+path}","compare_url":"https://api.github.com/repos/geokrety/geokrety-website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/geokrety/geokrety-website/merges","archive_url":"https://api.github.com/repos/geokrety/geokrety-website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/geokrety/geokrety-website/downloads","issues_url":"https://api.github.com/repos/geokrety/geokrety-website/issues{/number}","pulls_url":"https://api.github.com/repos/geokrety/geokrety-website/pulls{/number}","milestones_url":"https://api.github.com/repos/geokrety/geokrety-website/milestones{/number}","notifications_url":"https://api.github.com/repos/geokrety/geokrety-website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/geokrety/geokrety-website/labels{/name}","releases_url":"https://api.github.com/repos/geokrety/geokrety-website/releases{/id}","deployments_url":"https://api.github.com/repos/geokrety/geokrety-website/deployments","created_at":"2018-03-11T14:41:02Z","updated_at":"2018-11-29T12:26:20Z","pushed_at":"2018-11-30T12:58:49Z","git_url":"git://github.com/geokrety/geokrety-website.git","ssh_url":"git@github.com:geokrety/geokrety-website.git","clone_url":"https://github.com/geokrety/geokrety-website.git","svn_url":"https://github.com/geokrety/geokrety-website","homepage":null,"size":34143,"stargazers_count":5,"watchers_count":5,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":29,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":9,"open_issues":29,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/geokrety/geokrety-website/pulls/219"},"html":{"href":"https://github.com/geokrety/geokrety-website/pull/219"},"issue":{"href":"https://api.github.com/repos/geokrety/geokrety-website/issues/219"},"comments":{"href":"https://api.github.com/repos/geokrety/geokrety-website/issues/219/comments"},"review_comments":{"href":"https://api.github.com/repos/geokrety/geokrety-website/pulls/219/comments"},"review_comment":{"href":"https://api.github.com/repos/geokrety/geokrety-website/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/geokrety/geokrety-website/pulls/219/commits"},"statuses":{"href":"https://api.github.com/repos/geokrety/geokrety-website/statuses/1e1b3210c03e28cbb839a9e534149cffc0153ed5"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"boly38"}}