{"action":"created","comment":{"url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/comments/34687892","id":34687892,"diff_hunk":"@@ -0,0 +1,430 @@\n+#!/usr/bin/env bash\n+#\n+# A more capable sbt runner, coincidentally also called sbt.\n+# Author: Paul Phillips <paulp@typesafe.com>\n+\n+# todo - make this dynamic\n+declare -r sbt_release_version=0.11.3\n+declare -r sbt_snapshot_version=0.13.0-SNAPSHOT\n+\n+unset sbt_jar sbt_dir sbt_create sbt_snapshot sbt_launch_dir\n+unset scala_version java_home sbt_explicit_version\n+unset verbose debug quiet\n+\n+build_props_sbt () {\n+  if [[ -f project/build.properties ]]; then\n+    versionLine=$(grep ^sbt.version project/build.properties)\n+    versionString=${versionLine##sbt.version=}\n+    echo \"$versionString\"\n+  fi\n+}\n+\n+update_build_props_sbt () {\n+  local ver=\"$1\"\n+  local old=$(build_props_sbt)\n+\n+  if [[ $ver == $old ]]; then\n+    return\n+  elif [[ -f project/build.properties ]]; then\n+    perl -pi -e \"s/^sbt\\.version=.*\\$/sbt.version=${ver}/\" project/build.properties\n+    grep -q '^sbt.version=' project/build.properties || echo \"sbt.version=${ver}\" >> project/build.properties\n+\n+    echo !!!\n+    echo !!! Updated file project/build.properties setting sbt.version to: $ver\n+    echo !!! Previous value was: $old\n+    echo !!!\n+  fi\n+}\n+\n+sbt_version () {\n+  if [[ -n $sbt_explicit_version ]]; then\n+    echo $sbt_explicit_version\n+  else\n+    local v=$(build_props_sbt)\n+    if [[ -n $v ]]; then\n+      echo $v\n+    else\n+      echo $sbt_release_version\n+    fi\n+  fi\n+}\n+\n+echoerr () {\n+  echo 1>&2 \"$@\"\n+}\n+vlog () {\n+  [[ $verbose || $debug ]] && echoerr \"$@\"\n+}\n+dlog () {\n+  [[ $debug ]] && echoerr \"$@\"\n+}\n+\n+# this seems to cover the bases on OSX, and someone will\n+# have to tell me about the others.\n+get_script_path () {\n+  local path=\"$1\"\n+  [[ -L \"$path\" ]] || { echo \"$path\" ; return; }\n+\n+  local target=$(readlink \"$path\")\n+  if [[ \"${target:0:1}\" == \"/\" ]]; then\n+    echo \"$target\"\n+  else\n+    echo \"$(dirname $path)/$target\"\n+  fi\n+}\n+\n+get_mem_opts () {\n+  local mem=${1:-1536}\n+  local perm=$(( $mem / 4 ))\n+  (( $perm > 256 )) || perm=256\n+  (( $perm < 1024 )) || perm=1024\n+  local codecache=$(( $perm / 2 ))\n+  \n+  echo \"-Xms${mem}m -Xmx${mem}m -XX:MaxPermSize=${perm}m -XX:ReservedCodeCacheSize=${codecache}m\"\n+}\n+\n+die() {\n+  echo \"Aborting: $@\"\n+  exit 1\n+}\n+\n+make_url () {\n+  groupid=\"$1\"\n+  category=\"$2\"\n+  version=\"$3\"\n+  \n+  echo \"http://typesafe.artifactoryonline.com/typesafe/ivy-$category/$groupid/sbt-launch/$version/sbt-launch.jar\"\n+}\n+\n+declare -r default_jvm_opts=\"-Dfile.encoding=UTF8\"\n+declare -r default_sbt_opts=\"-XX:+CMSClassUnloadingEnabled\"\n+declare -r default_sbt_mem=1536\n+declare -r noshare_opts=\"-Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy\"\n+declare -r sbt_opts_file=\".sbtopts\"\n+declare -r jvm_opts_file=\".jvmopts\"\n+declare -r latest_28=\"2.8.2\"\n+declare -r latest_29=\"2.9.1\"\n+declare -r latest_210=\"2.10.0-SNAPSHOT\"\n+\n+declare -r script_path=$(get_script_path \"$BASH_SOURCE\")\n+declare -r script_dir=\"$(dirname $script_path)\"\n+declare -r script_name=\"$(basename $script_path)\"\n+\n+# some non-read-onlies set with defaults\n+declare java_cmd=java\n+declare sbt_launch_dir=\"$script_dir/.lib\"\n+declare sbt_mem=$default_sbt_mem\n+\n+# pull -J and -D options to give to java.\n+declare -a residual_args\n+declare -a java_args\n+declare -a scalac_args\n+declare -a sbt_commands\n+\n+build_props_scala () {\n+  if [[ -f project/build.properties ]]; then\n+    versionLine=$(grep ^build.scala.versions project/build.properties)\n+    versionString=${versionLine##build.scala.versions=}\n+    echo ${versionString%% .*}\n+  fi\n+}\n+\n+execRunner () {\n+  # print the arguments one to a line, quoting any containing spaces\n+  [[ $verbose || $debug ]] && echo \"# Executing command line:\" && {\n+    for arg; do\n+      if printf \"%s\\n\" \"$arg\" | grep -q ' '; then\n+        printf \"\\\"%s\\\"\\n\" \"$arg\"\n+      else\n+        printf \"%s\\n\" \"$arg\"\n+      fi\n+    done\n+    echo \"\"\n+  }\n+\n+  exec \"$@\"\n+}\n+\n+sbt_groupid () {\n+  case $(sbt_version) in\n+        0.7.*) echo org.scala-tools.sbt ;;\n+       0.10.*) echo org.scala-tools.sbt ;;\n+    0.11.[12]) echo org.scala-tools.sbt ;;\n+            *) echo org.scala-sbt ;;\n+  esac\n+}\n+\n+sbt_artifactory_list () {\n+  local version0=$(sbt_version)\n+  local version=${version0%-SNAPSHOT}\n+  local url=\"http://typesafe.artifactoryonline.com/typesafe/ivy-snapshots/$(sbt_groupid)/sbt-launch/\"\n+  dlog \"Looking for snapshot list at: $url \"\n+  \n+  curl -s --list-only \"$url\" | \\\n+    grep -F $version | \\\n+    perl -e 'print reverse <>' | \\\n+    perl -pe 's#^<a href=\"([^\"/]+).*#$1#;'\n+}\n+\n+make_release_url () {\n+  make_url $(sbt_groupid) releases $(sbt_version)\n+}\n+\n+# argument is e.g. 0.13.0-SNAPSHOT\n+# finds the actual version (with the build id) at artifactory\n+make_snapshot_url () {\n+  for ver in $(sbt_artifactory_list); do\n+    local url=$(make_url $(sbt_groupid) snapshots $ver)\n+    dlog \"Testing $url\"\n+    curl -s --head \"$url\" >/dev/null\n+    dlog \"curl returned: $?\"\n+    echo \"$url\"\n+    return\n+  done\n+}\n+\n+jar_url () {\n+  case $(sbt_version) in\n+             0.7.*) echo \"http://simple-build-tool.googlecode.com/files/sbt-launch-0.7.7.jar\" ;;\n+        *-SNAPSHOT) make_snapshot_url ;;\n+                 *) make_release_url ;;\n+  esac\n+}\n+\n+jar_file () {\n+  echo \"$sbt_launch_dir/$1/sbt-launch.jar\"\n+}\n+\n+download_url () {\n+  local url=\"$1\"\n+  local jar=\"$2\"\n+  \n+  echo \"Downloading sbt launcher $(sbt_version):\"\n+  echo \"  From  $url\"\n+  echo \"    To  $jar\"\n+\n+  mkdir -p $(dirname \"$jar\") && {\n+    if which curl >/dev/null; then\n+      curl --fail --silent \"$url\" --output \"$jar\"\n+    elif which wget >/dev/null; then\n+      wget --quiet -O \"$jar\" \"$url\"\n+    fi\n+  } && [[ -f \"$jar\" ]]\n+}\n+\n+acquire_sbt_jar () {\n+  sbt_url=\"$(jar_url)\"\n+  sbt_jar=\"$(jar_file $(sbt_version))\"\n+\n+  [[ -f \"$sbt_jar\" ]] || download_url \"$sbt_url\" \"$sbt_jar\"\n+}\n+\n+usage () {\n+  cat <<EOM\n+Usage: $script_name [options]\n+\n+  -h | -help         print this message\n+  -v | -verbose      this runner is chattier\n+  -d | -debug        set sbt log level to Debug\n+  -q | -quiet        set sbt log level to Error\n+  -no-colors         disable ANSI color codes\n+  -sbt-create        start sbt even if current directory contains no sbt project\n+  -sbt-dir   <path>  path to global settings/plugins directory (default: ~/.sbt/<version>)\n+  -sbt-boot  <path>  path to shared boot directory (default: ~/.sbt/boot in 0.11 series)\n+  -ivy       <path>  path to local Ivy repository (default: ~/.ivy2)\n+  -mem    <integer>  set memory options (default: $sbt_mem, which is\n+                       $(get_mem_opts $sbt_mem) )\n+  -no-share          use all local caches; no sharing\n+  -offline           put sbt in offline mode\n+  -jvm-debug <port>  Turn on JVM debugging, open at the given port.\n+  -batch             Disable interactive mode\n+\n+  # sbt version (default: from project/build.properties if present, else latest release)\n+  !!! The only way to accomplish this pre-0.12.0 if there is a build.properties file which\n+  !!! contains an sbt.version property is to update the file on disk.  That's what this does.\n+  -sbt-version  <version>   use the specified version of sbt \n+  -sbt-jar      <path>      use the specified jar as the sbt launcher\n+  -sbt-snapshot             use a snapshot version of sbt\n+  -sbt-launch-dir <path>    directory to hold sbt launchers (default: $sbt_launch_dir)\n+\n+  # scala version (default: as chosen by sbt)\n+  -28                       use $latest_28\n+  -29                       use $latest_29\n+  -210                      use $latest_210\n+  -scala-home <path>        use the scala build at the specified directory\n+  -scala-version <version>  use the specified version of scala\n+\n+  # java version (default: java from PATH, currently $(java -version |& grep version))\n+  -java-home <path>         alternate JAVA_HOME\n+\n+  # jvm options and output control\n+  JAVA_OPTS     environment variable holding jvm args, if unset uses \"$default_jvm_opts\"\n+  SBT_OPTS      environment variable holding jvm args, if unset uses \"$default_sbt_opts\"\n+  .jvmopts      if file is in sbt root, it is prepended to the args given to the jvm\n+  .sbtopts      if file is in sbt root, it is prepended to the args given to **sbt**\n+  -Dkey=val     pass -Dkey=val directly to the jvm\n+  -J-X          pass option -X directly to the jvm (-J is stripped)\n+  -S-X          add -X to sbt's scalacOptions (-J is stripped)\n+\n+In the case of duplicated or conflicting options, the order above\n+shows precedence: JAVA_OPTS lowest, command line options highest.\n+EOM\n+}\n+\n+addJava () {\n+  dlog \"[addJava] arg = '$1'\"\n+  java_args=( \"${java_args[@]}\" \"$1\" )\n+}\n+addSbt () {\n+  dlog \"[addSbt] arg = '$1'\"\n+  sbt_commands=( \"${sbt_commands[@]}\" \"$1\" )\n+}\n+addScalac () {\n+  dlog \"[addScalac] arg = '$1'\"\n+  scalac_args=( \"${scalac_args[@]}\" \"$1\" )\n+}\n+addResidual () {\n+  dlog \"[residual] arg = '$1'\"\n+  residual_args=( \"${residual_args[@]}\" \"$1\" )\n+}\n+addResolver () {\n+  addSbt \"set resolvers in ThisBuild += $1\"\n+}\n+addDebugger () {\n+  addJava \"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$1\"\n+}\n+get_jvm_opts () {\n+  # echo \"${JAVA_OPTS:-$default_jvm_opts}\"","path":"src/geop/sbt","position":297,"original_position":297,"commit_id":"59cca23c097f26848d5c939f7e50147d46688337","original_commit_id":"59cca23c097f26848d5c939f7e50147d46688337","user":{"login":"lliss","id":903219,"avatar_url":"https://avatars.githubusercontent.com/u/903219?v=3","gravatar_id":"","url":"https://api.github.com/users/lliss","html_url":"https://github.com/lliss","followers_url":"https://api.github.com/users/lliss/followers","following_url":"https://api.github.com/users/lliss/following{/other_user}","gists_url":"https://api.github.com/users/lliss/gists{/gist_id}","starred_url":"https://api.github.com/users/lliss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lliss/subscriptions","organizations_url":"https://api.github.com/users/lliss/orgs","repos_url":"https://api.github.com/users/lliss/repos","events_url":"https://api.github.com/users/lliss/events{/privacy}","received_events_url":"https://api.github.com/users/lliss/received_events","type":"User","site_admin":false},"body":"Left over debug code?","created_at":"2015-07-15T15:05:15Z","updated_at":"2015-07-15T15:05:15Z","html_url":"https://github.com/WikiWatershed/model-my-watershed/pull/318#discussion_r34687892","pull_request_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/318","_links":{"self":{"href":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/comments/34687892"},"html":{"href":"https://github.com/WikiWatershed/model-my-watershed/pull/318#discussion_r34687892"},"pull_request":{"href":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/318"}}},"pull_request":{"url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/318","id":37171341,"html_url":"https://github.com/WikiWatershed/model-my-watershed/pull/318","diff_url":"https://github.com/WikiWatershed/model-my-watershed/pull/318.diff","patch_url":"https://github.com/WikiWatershed/model-my-watershed/pull/318.patch","issue_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/issues/318","number":318,"state":"open","locked":false,"title":"Prototype REST service","user":{"login":"jamesmcclain","id":11281373,"avatar_url":"https://avatars.githubusercontent.com/u/11281373?v=3","gravatar_id":"","url":"https://api.github.com/users/jamesmcclain","html_url":"https://github.com/jamesmcclain","followers_url":"https://api.github.com/users/jamesmcclain/followers","following_url":"https://api.github.com/users/jamesmcclain/following{/other_user}","gists_url":"https://api.github.com/users/jamesmcclain/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesmcclain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesmcclain/subscriptions","organizations_url":"https://api.github.com/users/jamesmcclain/orgs","repos_url":"https://api.github.com/users/jamesmcclain/repos","events_url":"https://api.github.com/users/jamesmcclain/events{/privacy}","received_events_url":"https://api.github.com/users/jamesmcclain/received_events","type":"User","site_admin":false},"body":"**Script to produce smaller GeoTiffs.**\r\n\r\nA script has been added which produces compressed GeoTiffs of reduced color depth.  Useful for soil data, and possibly land-use, as well.  This script also makes the test soil rasters usable with the code (for testing).\r\n\r\nConnects #546\r\n\r\n**REST service.**\r\n\r\nA spray-based REST service has been created.  The user POSTs a polygon stored as a GeoJSON file, and receives a count of land-use, soil-type pairs in the intersection of the query polygon and the test area.\r\n\r\nConnects #545\r\n\r\nThe goals discussed in #544 can be done by sending a `GeometryCollection` instead of a `Polygon` or `MultiPolygon.  Those results can then be woven into a census of the type expected by the TR-55 code.\r\n\r\nConnects #544\r\n\r\nBig thanks to @echeipesh , @lossyrob , and @jwalgran .\r\n\r\n**To Test**\r\n   * Install spark (I used version 1.3.1)\r\n   * Set the `SPARK_HOME` environment variable the name of the directory where spark is located\r\n   * Set the `SPARK_VERSION` environment variable appropriately, in my case \"1.3.1\"\r\n   * Apply this patch\r\n   * Find the directory containing the three new tiff files that this patch creates; It should be `./src/geop/processing/src/test/data/` relative to the repository directory, set the MMW_DATA environment variable to the full name of that directory\r\n   * Go to the `src/geop` directory (relative to the project root)\r\n   * Type `sbt compile test` to run tests\r\n   * Type `sbt 'project services' compile assembly` to combile the REST service code\r\n   * Type `$SPARK_HOME/bin/spark-submit ./services/target/scala-2.10/mmw-services-assembly-0.0.1.jar` to run the service\r\n   * Try to access the service on localhost:8080.  Anything other than POST should give you a 405.  Posting anything other than a valid GeoJSON polygon should give you a 404.\r\n   * Sending a valid GeoJSON polygon should cause the service to return a JSON list of lists containing land-use X soil-type tuples and their counts (in the intersection of the query polygon and the small part of Delaware that we have data for)\r\n\r\nSome example polygons follow.\r\n\r\nThis polygon does not intersect with Delaware, you should see no output (but no error).\r\n```javascript\r\n{\r\n    \"type\": \"Feature\",\r\n    \"geometry\": {\r\n        \"type\": \"Polygon\",\r\n        \"coordinates\": [\r\n            [\r\n                [31.137728, 29.975284],\r\n                [31.128097, 29.972484],\r\n                [31.130860, 29.976007],\r\n                [31.134046, 29.979194],\r\n                [31.137728, 29.975284]\r\n            ]\r\n        ]\r\n    }\r\n}\r\n```\r\n\r\nThis polygon is a subset of the covered area.  You should see some output.\r\n```javascript\r\n{\r\n    \"type\": \"Feature\",\r\n    \"geometry\": {\r\n        \"type\": \"Polygon\",\r\n        \"coordinates\": [\r\n            [\r\n                [-75.72533952081164, 39.76],\r\n                [-75.72533952081164, 39.8024743318554],\r\n                [-75.58521226772196, 39.77],\r\n                [-75.58521226772196, 39.7342308109474],\r\n                [-75.72533952081164, 39.76]\r\n            ]\r\n        ]\r\n    }\r\n}\r\n```\r\n\r\nHere it is again as a multipolygon:\r\n```javascript\r\n{\r\n    \"type\": \"Feature\",\r\n    \"geometry\": {\r\n        \"type\": \"MultiPolygon\",\r\n        \"coordinates\": [\r\n            [\r\n                [\r\n                    [-75.72533952081164, 39.76],\r\n                    [-75.72533952081164, 39.8024743318554],\r\n                    [-75.58521226772196, 39.77],\r\n                    [-75.58521226772196, 39.7342308109474],\r\n                    [-75.72533952081164, 39.76]\r\n                ]\r\n            ]\r\n        ]\r\n    }\r\n}\r\n```\r\nHere it is again as a `GeometryCollection`.  You will get the same output as before, but wrapped in another list.\r\n```javascript\r\n{\r\n    \"type\": \"GeometryCollection\",\r\n    \"geometries\": [{\r\n        \"type\": \"Polygon\",\r\n        \"coordinates\": [\r\n            [\r\n                [-75.72533952081164, 39.76],\r\n                [-75.72533952081164, 39.8024743318554],\r\n                [-75.58521226772196, 39.77],\r\n                [-75.58521226772196, 39.7342308109474],\r\n                [-75.72533952081164, 39.76]\r\n            ]\r\n        ]\r\n    }]\r\n}\r\n```\r\n\r\nThis is an invalid file, you should get a 400.\r\n```javascript\r\n{\r\n    \"type\": \"Feature\",\r\n    \"properties\": {\r\n        \"name\": 6\r\n    },\r\n    \"geometry\": {\r\n        \"type\": \"Polygon\",\r\n        \"coordinates\": [\r\n            [\r\n                [-75.72533952081164, 39.76],\r\n                [-75.72533952081164, 39.8024743318554],\r\n                [-75.58521226772196, 39.77],\r\n                [-75.58521226772196, 39.7342308109474],\r\n                [-75.72533952081164, 39.76]\r\n            ]\r\n        ]\r\n    }\r\n```\r\n\r\nYou can POST files to the service by typing something like this `wget localhost:8080 --post=file=foo.json -O -`","created_at":"2015-06-08T16:26:55Z","updated_at":"2015-07-15T15:05:16Z","closed_at":null,"merged_at":null,"merge_commit_sha":"20cb6a387f604b10ad1fb0425a612e62190c536e","assignee":{"login":"mmcfarland","id":1014341,"avatar_url":"https://avatars.githubusercontent.com/u/1014341?v=3","gravatar_id":"","url":"https://api.github.com/users/mmcfarland","html_url":"https://github.com/mmcfarland","followers_url":"https://api.github.com/users/mmcfarland/followers","following_url":"https://api.github.com/users/mmcfarland/following{/other_user}","gists_url":"https://api.github.com/users/mmcfarland/gists{/gist_id}","starred_url":"https://api.github.com/users/mmcfarland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmcfarland/subscriptions","organizations_url":"https://api.github.com/users/mmcfarland/orgs","repos_url":"https://api.github.com/users/mmcfarland/repos","events_url":"https://api.github.com/users/mmcfarland/events{/privacy}","received_events_url":"https://api.github.com/users/mmcfarland/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/318/commits","review_comments_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/318/comments","review_comment_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/comments{/number}","comments_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/issues/318/comments","statuses_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/statuses/59cca23c097f26848d5c939f7e50147d46688337","head":{"label":"jamesmcclain:feature/add-scala","ref":"feature/add-scala","sha":"59cca23c097f26848d5c939f7e50147d46688337","user":{"login":"jamesmcclain","id":11281373,"avatar_url":"https://avatars.githubusercontent.com/u/11281373?v=3","gravatar_id":"","url":"https://api.github.com/users/jamesmcclain","html_url":"https://github.com/jamesmcclain","followers_url":"https://api.github.com/users/jamesmcclain/followers","following_url":"https://api.github.com/users/jamesmcclain/following{/other_user}","gists_url":"https://api.github.com/users/jamesmcclain/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesmcclain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesmcclain/subscriptions","organizations_url":"https://api.github.com/users/jamesmcclain/orgs","repos_url":"https://api.github.com/users/jamesmcclain/repos","events_url":"https://api.github.com/users/jamesmcclain/events{/privacy}","received_events_url":"https://api.github.com/users/jamesmcclain/received_events","type":"User","site_admin":false},"repo":{"id":36071249,"name":"model-my-watershed","full_name":"jamesmcclain/model-my-watershed","owner":{"login":"jamesmcclain","id":11281373,"avatar_url":"https://avatars.githubusercontent.com/u/11281373?v=3","gravatar_id":"","url":"https://api.github.com/users/jamesmcclain","html_url":"https://github.com/jamesmcclain","followers_url":"https://api.github.com/users/jamesmcclain/followers","following_url":"https://api.github.com/users/jamesmcclain/following{/other_user}","gists_url":"https://api.github.com/users/jamesmcclain/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesmcclain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesmcclain/subscriptions","organizations_url":"https://api.github.com/users/jamesmcclain/orgs","repos_url":"https://api.github.com/users/jamesmcclain/repos","events_url":"https://api.github.com/users/jamesmcclain/events{/privacy}","received_events_url":"https://api.github.com/users/jamesmcclain/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jamesmcclain/model-my-watershed","description":"The web application front end for Model My Watershed.","fork":true,"url":"https://api.github.com/repos/jamesmcclain/model-my-watershed","forks_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/forks","keys_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/teams","hooks_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/hooks","issue_events_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/issues/events{/number}","events_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/events","assignees_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/assignees{/user}","branches_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/branches{/branch}","tags_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/tags","blobs_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/git/refs{/sha}","trees_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/statuses/{sha}","languages_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/languages","stargazers_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/stargazers","contributors_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/contributors","subscribers_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/subscribers","subscription_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/subscription","commits_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/commits{/sha}","git_commits_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/git/commits{/sha}","comments_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/comments{/number}","issue_comment_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/issues/comments{/number}","contents_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/contents/{+path}","compare_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/merges","archive_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/downloads","issues_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/issues{/number}","pulls_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/pulls{/number}","milestones_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/milestones{/number}","notifications_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/labels{/name}","releases_url":"https://api.github.com/repos/jamesmcclain/model-my-watershed/releases{/id}","created_at":"2015-05-22T12:30:46Z","updated_at":"2015-06-11T20:18:21Z","pushed_at":"2015-07-14T22:45:00Z","git_url":"git://github.com/jamesmcclain/model-my-watershed.git","ssh_url":"git@github.com:jamesmcclain/model-my-watershed.git","clone_url":"https://github.com/jamesmcclain/model-my-watershed.git","svn_url":"https://github.com/jamesmcclain/model-my-watershed","homepage":null,"size":14431,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"WikiWatershed:develop","ref":"develop","sha":"a3c85cde730238f4ade1f59c6a64178b8294a2f2","user":{"login":"WikiWatershed","id":8520008,"avatar_url":"https://avatars.githubusercontent.com/u/8520008?v=3","gravatar_id":"","url":"https://api.github.com/users/WikiWatershed","html_url":"https://github.com/WikiWatershed","followers_url":"https://api.github.com/users/WikiWatershed/followers","following_url":"https://api.github.com/users/WikiWatershed/following{/other_user}","gists_url":"https://api.github.com/users/WikiWatershed/gists{/gist_id}","starred_url":"https://api.github.com/users/WikiWatershed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WikiWatershed/subscriptions","organizations_url":"https://api.github.com/users/WikiWatershed/orgs","repos_url":"https://api.github.com/users/WikiWatershed/repos","events_url":"https://api.github.com/users/WikiWatershed/events{/privacy}","received_events_url":"https://api.github.com/users/WikiWatershed/received_events","type":"Organization","site_admin":false},"repo":{"id":32742922,"name":"model-my-watershed","full_name":"WikiWatershed/model-my-watershed","owner":{"login":"WikiWatershed","id":8520008,"avatar_url":"https://avatars.githubusercontent.com/u/8520008?v=3","gravatar_id":"","url":"https://api.github.com/users/WikiWatershed","html_url":"https://github.com/WikiWatershed","followers_url":"https://api.github.com/users/WikiWatershed/followers","following_url":"https://api.github.com/users/WikiWatershed/following{/other_user}","gists_url":"https://api.github.com/users/WikiWatershed/gists{/gist_id}","starred_url":"https://api.github.com/users/WikiWatershed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WikiWatershed/subscriptions","organizations_url":"https://api.github.com/users/WikiWatershed/orgs","repos_url":"https://api.github.com/users/WikiWatershed/repos","events_url":"https://api.github.com/users/WikiWatershed/events{/privacy}","received_events_url":"https://api.github.com/users/WikiWatershed/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/WikiWatershed/model-my-watershed","description":"The web application front end for Model My Watershed.","fork":false,"url":"https://api.github.com/repos/WikiWatershed/model-my-watershed","forks_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/forks","keys_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/keys{/key_id}","collaborators_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/teams","hooks_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/hooks","issue_events_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/issues/events{/number}","events_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/events","assignees_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/assignees{/user}","branches_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/branches{/branch}","tags_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/tags","blobs_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/git/refs{/sha}","trees_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/git/trees{/sha}","statuses_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/statuses/{sha}","languages_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/languages","stargazers_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/stargazers","contributors_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/contributors","subscribers_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/subscribers","subscription_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/subscription","commits_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/commits{/sha}","git_commits_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/git/commits{/sha}","comments_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/comments{/number}","issue_comment_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/issues/comments{/number}","contents_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/contents/{+path}","compare_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/compare/{base}...{head}","merges_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/merges","archive_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/downloads","issues_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/issues{/number}","pulls_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls{/number}","milestones_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/milestones{/number}","notifications_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/labels{/name}","releases_url":"https://api.github.com/repos/WikiWatershed/model-my-watershed/releases{/id}","created_at":"2015-03-23T16:02:55Z","updated_at":"2015-06-11T19:29:19Z","pushed_at":"2015-07-15T14:43:51Z","git_url":"git://github.com/WikiWatershed/model-my-watershed.git","ssh_url":"git@github.com:WikiWatershed/model-my-watershed.git","clone_url":"https://github.com/WikiWatershed/model-my-watershed.git","svn_url":"https://github.com/WikiWatershed/model-my-watershed","homepage":null,"size":17146,"stargazers_count":2,"watchers_count":2,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":10,"mirror_url":null,"open_issues_count":112,"forks":10,"open_issues":112,"watchers":2,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/318"},"html":{"href":"https://github.com/WikiWatershed/model-my-watershed/pull/318"},"issue":{"href":"https://api.github.com/repos/WikiWatershed/model-my-watershed/issues/318"},"comments":{"href":"https://api.github.com/repos/WikiWatershed/model-my-watershed/issues/318/comments"},"review_comments":{"href":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/318/comments"},"review_comment":{"href":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/WikiWatershed/model-my-watershed/pulls/318/commits"},"statuses":{"href":"https://api.github.com/repos/WikiWatershed/model-my-watershed/statuses/59cca23c097f26848d5c939f7e50147d46688337"}}}}