{"action":"created","comment":{"url":"https://api.github.com/repos/nuclio/nuclio/pulls/comments/168966659","pull_request_review_id":97416708,"id":168966659,"diff_hunk":"@@ -0,0 +1,364 @@\n+/*\n+Copyright 2017 The Nuclio Authors.\n+\n+Licensed under the Apache License, Version 2.0 (the \"License\");\n+you may not use this file except in compliance with the License.\n+You may obtain a copy of the License at\n+\n+    http://www.apache.org/licenses/LICENSE-2.0\n+\n+Unless required by applicable law or agreed to in writing, software\n+distributed under the License is distributed on an \"AS IS\" BASIS,\n+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+See the License for the specific language governing permissions and\n+limitations under the License.\n+*/\n+\n+package java\n+\n+import (\n+\t\"fmt\"\n+\t\"io/ioutil\"\n+\t\"os\"\n+\t\"path\"\n+\t\"path/filepath\"\n+\t\"strings\"\n+\t\"text/template\"\n+\n+\t\"github.com/nuclio/nuclio/pkg/common\"\n+\t\"github.com/nuclio/nuclio/pkg/dockerclient\"\n+\t\"github.com/nuclio/nuclio/pkg/errors\"\n+\t\"github.com/nuclio/nuclio/pkg/processor/build/runtime\"\n+\t\"github.com/nuclio/nuclio/pkg/processor/build/util\"\n+\t\"github.com/nuclio/nuclio/pkg/version\"\n+\n+\t\"github.com/rs/xid\"\n+)\n+\n+const (\n+\tbuildFileName = \"build.gradle\"\n+\t// Must be in sync with pkg/processor/runtime/java/build.gradle and build dokcers\n+\tuserHandlerJarName = \"user-handler.jar\"\n+)\n+\n+var buildTemplateCode = `\n+plugins {\n+  id 'com.github.johnrengelman.shadow' version '2.0.2'\n+  id 'java'\n+}\n+\n+repositories {\n+    mavenCentral()\n+}\n+\n+dependencies {\n+\t{{ range .Dependencies }}\n+\tcompile group: '{{.Group}}', name: '{{.Name}}', version: '{{.Version}}'\n+\t{{ end }}\n+\n+    compile files('./nuclio-sdk-1.0-SNAPSHOT.jar')\n+}\n+\n+shadowJar {\n+   baseName = 'handler'\n+   classifier = null  // Don't append \"all\" to jar name\n+}\n+\n+task nuclioJar(dependsOn: shadowJar)\n+`\n+\n+type java struct {\n+\t*runtime.AbstractRuntime\n+\tversionInfo    *version.Info\n+\thandlerJarPath string\n+}\n+\n+// DetectFunctionHandlers returns a list of all the handlers\n+// in that directory given a path holding a function (or functions)\n+func (j *java) DetectFunctionHandlers(functionPath string) ([]string, error) {\n+\treturn []string{j.getFunctionHandler()}, nil\n+}\n+\n+// GetProcessorImageObjectPaths returns a map of objects the runtime needs to copy into the processor image\n+// the key can be a dir, a file or a url of a file\n+// the value is an absolute path into the docker image\n+func (j *java) GetProcessorImageObjectPaths() map[string]string {\n+\treturn map[string]string{\n+\t\tj.handlerJarPath: path.Join(\"opt\", \"nuclio\", path.Base(j.handlerJarPath)),\n+\t}\n+}\n+\n+// GetExtension returns the source extension of the runtime (e.g. .go)\n+func (j *java) GetExtension() string {\n+\treturn \"jar\"\n+}\n+\n+// GetName returns the name of the runtime, including version if applicable\n+func (j *java) GetName() string {\n+\treturn \"java\"\n+}\n+\n+// OnAfterStagingDirCreated will build jar if the source is a Java file\n+// It will set generatedJarPath field\n+func (j *java) OnAfterStagingDirCreated(stagingDir string) error {\n+\tbuildPath := j.FunctionConfig.Spec.Build.Path\n+\tj.Logger.DebugWith(\n+\t\t\"Java OnAfterStagingDirCreated\", \"buildPath\", buildPath, \"stagingDir\", stagingDir)\n+\n+\thandlerBuildDir := path.Join(stagingDir, \"java-handler-build\")\n+\tif err := os.Mkdir(handlerBuildDir, 0777); err != nil {\n+\t\treturn errors.Wrap(err, \"Can't create handler build dir\")\n+\t}\n+\n+\tuserJarPath := path.Join(handlerBuildDir, userHandlerJarName)\n+\tif err := j.buildUserJar(buildPath, userJarPath); err != nil {\n+\t\treturn err\n+\t}\n+\n+\tvar err error\n+\thandlerImageName := fmt.Sprintf(\"nuclio/handler-builder-java-onbuild:%s-%s\", j.versionInfo.Label, j.versionInfo.Arch)\n+\tj.handlerJarPath, err = j.runDockerJavaBuild(handlerBuildDir, handlerImageName)\n+\n+\treturn err\n+}\n+\n+func (j *java) getFunctionHandler() string {\n+\treturn \"Handler\"\n+}\n+\n+func (j *java) GetProcessorBaseImageName() (string, error) {\n+\treturn fmt.Sprintf(\"nuclio/handler-java:%s-%s\",\n+\t\tj.versionInfo.Label,\n+\t\tj.versionInfo.Arch), nil\n+}\n+\n+// \"reverser.jar:Reverser\" -> \"Reverser\"\n+func (j *java) handlerClassName(handler string) string {\n+\tfields := strings.Split(handler, \":\")\n+\tif len(fields) == 1 {\n+\t\treturn fields[0]\n+\t}\n+\treturn fields[1]\n+}\n+\n+func (j *java) createBuildFile(stagingBuildDir string) error {\n+\tbuildFilePath := path.Join(stagingBuildDir, buildFileName)\n+\tif common.IsFile(buildFilePath) {\n+\t\tj.Logger.InfoWith(\"Found user build file, using it\", \"path\", buildFilePath)\n+\t\treturn nil\n+\t}\n+\n+\tbuildTemplate, err := template.New(\"build\").Parse(buildTemplateCode)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\n+\tbuildFile, err := os.Create(buildFilePath)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\n+\tdefer buildFile.Close()\n+\n+\tdata := map[string]interface{}{\n+\t\t\"Dependencies\": j.FunctionConfig.Spec.Build.Dependencies,\n+\t\t\"Handler\":      j.handlerClassName(j.FunctionConfig.Spec.Handler),\n+\t}\n+\treturn buildTemplate.Execute(buildFile, data)\n+}\n+\n+func (j *java) createDockerFile(dockerfilePath, imageName string) error {\n+\tif !j.FunctionConfig.Spec.Build.NoBaseImagesPull {\n+\t\t// pull the onbuild image we need to build the processor builder\n+\t\tif err := j.DockerClient.PullImage(imageName); err != nil {\n+\t\t\treturn errors.Wrap(err, \"Failed to pull onbuild image for java\")\n+\t\t}\n+\t}\n+\n+\tdockerFileContent := fmt.Sprintf(\"FROM %s\", imageName)\n+\n+\treturn ioutil.WriteFile(dockerfilePath, []byte(dockerFileContent), 0600)\n+}\n+\n+func (j *java) isFile(filePath, extension string) bool {\n+\treturn common.IsFile(filePath) && strings.ToLower(path.Ext(filePath)) == strings.ToLower(extension)\n+}\n+\n+func (j *java) createJavaSourceDir() error {","path":"pkg/processor/build/runtime/java/runtime.go","position":187,"original_position":187,"commit_id":"14d34f5e4f9fba227a8bdd6111ca764806c177a0","original_commit_id":"14d34f5e4f9fba227a8bdd6111ca764806c177a0","user":{"login":"pavius","id":423987,"avatar_url":"https://avatars2.githubusercontent.com/u/423987?v=4","gravatar_id":"","url":"https://api.github.com/users/pavius","html_url":"https://github.com/pavius","followers_url":"https://api.github.com/users/pavius/followers","following_url":"https://api.github.com/users/pavius/following{/other_user}","gists_url":"https://api.github.com/users/pavius/gists{/gist_id}","starred_url":"https://api.github.com/users/pavius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pavius/subscriptions","organizations_url":"https://api.github.com/users/pavius/orgs","repos_url":"https://api.github.com/users/pavius/repos","events_url":"https://api.github.com/users/pavius/events{/privacy}","received_events_url":"https://api.github.com/users/pavius/received_events","type":"User","site_admin":false},"body":"Looks like this function isn't used anywhere - remove?","created_at":"2018-02-18T21:38:42Z","updated_at":"2018-02-18T21:44:37Z","html_url":"https://github.com/nuclio/nuclio/pull/467#discussion_r168966659","pull_request_url":"https://api.github.com/repos/nuclio/nuclio/pulls/467","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/nuclio/nuclio/pulls/comments/168966659"},"html":{"href":"https://github.com/nuclio/nuclio/pull/467#discussion_r168966659"},"pull_request":{"href":"https://api.github.com/repos/nuclio/nuclio/pulls/467"}}},"pull_request":{"url":"https://api.github.com/repos/nuclio/nuclio/pulls/467","id":160880470,"html_url":"https://github.com/nuclio/nuclio/pull/467","diff_url":"https://github.com/nuclio/nuclio/pull/467.diff","patch_url":"https://github.com/nuclio/nuclio/pull/467.patch","issue_url":"https://api.github.com/repos/nuclio/nuclio/issues/467","number":467,"state":"open","locked":false,"title":"Java runtime - WIP","user":{"login":"tebeka","id":87697,"avatar_url":"https://avatars1.githubusercontent.com/u/87697?v=4","gravatar_id":"","url":"https://api.github.com/users/tebeka","html_url":"https://github.com/tebeka","followers_url":"https://api.github.com/users/tebeka/followers","following_url":"https://api.github.com/users/tebeka/following{/other_user}","gists_url":"https://api.github.com/users/tebeka/gists{/gist_id}","starred_url":"https://api.github.com/users/tebeka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tebeka/subscriptions","organizations_url":"https://api.github.com/users/tebeka/orgs","repos_url":"https://api.github.com/users/tebeka/repos","events_url":"https://api.github.com/users/tebeka/events{/privacy}","received_events_url":"https://api.github.com/users/tebeka/received_events","type":"User","site_admin":false},"body":"Currently just process implemented. No build\r\n\r\nOpen questions:\r\n1. Do we want to support `maven`, `sbt`, `gradle`, `ant` ... or just tell users to provide jar?\r\n    - In the playground since it's one file we can do whatever we want\r\n2. Please also review the [Nuclio Java SDK](https://github.com/tebeka/nuclio-java-sdk)\r\n    - How do we publish to maven central? Or do we just provide the jar? (as in [here](https://github.com/tebeka/nuclio-java-sdk/releases/tag/1.0-SNAPSHOT))\r\n","created_at":"2018-01-03T10:16:05Z","updated_at":"2018-02-18T21:44:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1a7361991587d854b5996c25affb1167496fbd49","assignee":null,"assignees":[],"requested_reviewers":[{"login":"bivas","id":530883,"avatar_url":"https://avatars0.githubusercontent.com/u/530883?v=4","gravatar_id":"","url":"https://api.github.com/users/bivas","html_url":"https://github.com/bivas","followers_url":"https://api.github.com/users/bivas/followers","following_url":"https://api.github.com/users/bivas/following{/other_user}","gists_url":"https://api.github.com/users/bivas/gists{/gist_id}","starred_url":"https://api.github.com/users/bivas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bivas/subscriptions","organizations_url":"https://api.github.com/users/bivas/orgs","repos_url":"https://api.github.com/users/bivas/repos","events_url":"https://api.github.com/users/bivas/events{/privacy}","received_events_url":"https://api.github.com/users/bivas/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/nuclio/nuclio/pulls/467/commits","review_comments_url":"https://api.github.com/repos/nuclio/nuclio/pulls/467/comments","review_comment_url":"https://api.github.com/repos/nuclio/nuclio/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nuclio/nuclio/issues/467/comments","statuses_url":"https://api.github.com/repos/nuclio/nuclio/statuses/14d34f5e4f9fba227a8bdd6111ca764806c177a0","head":{"label":"tebeka:java-runtime","ref":"java-runtime","sha":"14d34f5e4f9fba227a8bdd6111ca764806c177a0","user":{"login":"tebeka","id":87697,"avatar_url":"https://avatars1.githubusercontent.com/u/87697?v=4","gravatar_id":"","url":"https://api.github.com/users/tebeka","html_url":"https://github.com/tebeka","followers_url":"https://api.github.com/users/tebeka/followers","following_url":"https://api.github.com/users/tebeka/following{/other_user}","gists_url":"https://api.github.com/users/tebeka/gists{/gist_id}","starred_url":"https://api.github.com/users/tebeka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tebeka/subscriptions","organizations_url":"https://api.github.com/users/tebeka/orgs","repos_url":"https://api.github.com/users/tebeka/repos","events_url":"https://api.github.com/users/tebeka/events{/privacy}","received_events_url":"https://api.github.com/users/tebeka/received_events","type":"User","site_admin":false},"repo":{"id":100927455,"name":"nuclio","full_name":"tebeka/nuclio","owner":{"login":"tebeka","id":87697,"avatar_url":"https://avatars1.githubusercontent.com/u/87697?v=4","gravatar_id":"","url":"https://api.github.com/users/tebeka","html_url":"https://github.com/tebeka","followers_url":"https://api.github.com/users/tebeka/followers","following_url":"https://api.github.com/users/tebeka/following{/other_user}","gists_url":"https://api.github.com/users/tebeka/gists{/gist_id}","starred_url":"https://api.github.com/users/tebeka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tebeka/subscriptions","organizations_url":"https://api.github.com/users/tebeka/orgs","repos_url":"https://api.github.com/users/tebeka/repos","events_url":"https://api.github.com/users/tebeka/events{/privacy}","received_events_url":"https://api.github.com/users/tebeka/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tebeka/nuclio","description":"High-Performance Serverless event and data processing framework ","fork":true,"url":"https://api.github.com/repos/tebeka/nuclio","forks_url":"https://api.github.com/repos/tebeka/nuclio/forks","keys_url":"https://api.github.com/repos/tebeka/nuclio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tebeka/nuclio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tebeka/nuclio/teams","hooks_url":"https://api.github.com/repos/tebeka/nuclio/hooks","issue_events_url":"https://api.github.com/repos/tebeka/nuclio/issues/events{/number}","events_url":"https://api.github.com/repos/tebeka/nuclio/events","assignees_url":"https://api.github.com/repos/tebeka/nuclio/assignees{/user}","branches_url":"https://api.github.com/repos/tebeka/nuclio/branches{/branch}","tags_url":"https://api.github.com/repos/tebeka/nuclio/tags","blobs_url":"https://api.github.com/repos/tebeka/nuclio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tebeka/nuclio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tebeka/nuclio/git/refs{/sha}","trees_url":"https://api.github.com/repos/tebeka/nuclio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tebeka/nuclio/statuses/{sha}","languages_url":"https://api.github.com/repos/tebeka/nuclio/languages","stargazers_url":"https://api.github.com/repos/tebeka/nuclio/stargazers","contributors_url":"https://api.github.com/repos/tebeka/nuclio/contributors","subscribers_url":"https://api.github.com/repos/tebeka/nuclio/subscribers","subscription_url":"https://api.github.com/repos/tebeka/nuclio/subscription","commits_url":"https://api.github.com/repos/tebeka/nuclio/commits{/sha}","git_commits_url":"https://api.github.com/repos/tebeka/nuclio/git/commits{/sha}","comments_url":"https://api.github.com/repos/tebeka/nuclio/comments{/number}","issue_comment_url":"https://api.github.com/repos/tebeka/nuclio/issues/comments{/number}","contents_url":"https://api.github.com/repos/tebeka/nuclio/contents/{+path}","compare_url":"https://api.github.com/repos/tebeka/nuclio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tebeka/nuclio/merges","archive_url":"https://api.github.com/repos/tebeka/nuclio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tebeka/nuclio/downloads","issues_url":"https://api.github.com/repos/tebeka/nuclio/issues{/number}","pulls_url":"https://api.github.com/repos/tebeka/nuclio/pulls{/number}","milestones_url":"https://api.github.com/repos/tebeka/nuclio/milestones{/number}","notifications_url":"https://api.github.com/repos/tebeka/nuclio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tebeka/nuclio/labels{/name}","releases_url":"https://api.github.com/repos/tebeka/nuclio/releases{/id}","deployments_url":"https://api.github.com/repos/tebeka/nuclio/deployments","created_at":"2017-08-21T07:54:13Z","updated_at":"2017-08-21T07:54:15Z","pushed_at":"2018-02-18T14:07:47Z","git_url":"git://github.com/tebeka/nuclio.git","ssh_url":"git@github.com:tebeka/nuclio.git","clone_url":"https://github.com/tebeka/nuclio.git","svn_url":"https://github.com/tebeka/nuclio","homepage":"","size":44746,"stargazers_count":0,"watchers_count":0,"language":"Go","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":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"nuclio:development","ref":"development","sha":"5f142ceae0c3da4969d2748c771fdc1cc998d17d","user":{"login":"nuclio","id":28734234,"avatar_url":"https://avatars3.githubusercontent.com/u/28734234?v=4","gravatar_id":"","url":"https://api.github.com/users/nuclio","html_url":"https://github.com/nuclio","followers_url":"https://api.github.com/users/nuclio/followers","following_url":"https://api.github.com/users/nuclio/following{/other_user}","gists_url":"https://api.github.com/users/nuclio/gists{/gist_id}","starred_url":"https://api.github.com/users/nuclio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuclio/subscriptions","organizations_url":"https://api.github.com/users/nuclio/orgs","repos_url":"https://api.github.com/users/nuclio/repos","events_url":"https://api.github.com/users/nuclio/events{/privacy}","received_events_url":"https://api.github.com/users/nuclio/received_events","type":"Organization","site_admin":false},"repo":{"id":91797088,"name":"nuclio","full_name":"nuclio/nuclio","owner":{"login":"nuclio","id":28734234,"avatar_url":"https://avatars3.githubusercontent.com/u/28734234?v=4","gravatar_id":"","url":"https://api.github.com/users/nuclio","html_url":"https://github.com/nuclio","followers_url":"https://api.github.com/users/nuclio/followers","following_url":"https://api.github.com/users/nuclio/following{/other_user}","gists_url":"https://api.github.com/users/nuclio/gists{/gist_id}","starred_url":"https://api.github.com/users/nuclio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuclio/subscriptions","organizations_url":"https://api.github.com/users/nuclio/orgs","repos_url":"https://api.github.com/users/nuclio/repos","events_url":"https://api.github.com/users/nuclio/events{/privacy}","received_events_url":"https://api.github.com/users/nuclio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/nuclio/nuclio","description":"High-Performance Serverless event and data processing platform","fork":false,"url":"https://api.github.com/repos/nuclio/nuclio","forks_url":"https://api.github.com/repos/nuclio/nuclio/forks","keys_url":"https://api.github.com/repos/nuclio/nuclio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nuclio/nuclio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nuclio/nuclio/teams","hooks_url":"https://api.github.com/repos/nuclio/nuclio/hooks","issue_events_url":"https://api.github.com/repos/nuclio/nuclio/issues/events{/number}","events_url":"https://api.github.com/repos/nuclio/nuclio/events","assignees_url":"https://api.github.com/repos/nuclio/nuclio/assignees{/user}","branches_url":"https://api.github.com/repos/nuclio/nuclio/branches{/branch}","tags_url":"https://api.github.com/repos/nuclio/nuclio/tags","blobs_url":"https://api.github.com/repos/nuclio/nuclio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nuclio/nuclio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nuclio/nuclio/git/refs{/sha}","trees_url":"https://api.github.com/repos/nuclio/nuclio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nuclio/nuclio/statuses/{sha}","languages_url":"https://api.github.com/repos/nuclio/nuclio/languages","stargazers_url":"https://api.github.com/repos/nuclio/nuclio/stargazers","contributors_url":"https://api.github.com/repos/nuclio/nuclio/contributors","subscribers_url":"https://api.github.com/repos/nuclio/nuclio/subscribers","subscription_url":"https://api.github.com/repos/nuclio/nuclio/subscription","commits_url":"https://api.github.com/repos/nuclio/nuclio/commits{/sha}","git_commits_url":"https://api.github.com/repos/nuclio/nuclio/git/commits{/sha}","comments_url":"https://api.github.com/repos/nuclio/nuclio/comments{/number}","issue_comment_url":"https://api.github.com/repos/nuclio/nuclio/issues/comments{/number}","contents_url":"https://api.github.com/repos/nuclio/nuclio/contents/{+path}","compare_url":"https://api.github.com/repos/nuclio/nuclio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nuclio/nuclio/merges","archive_url":"https://api.github.com/repos/nuclio/nuclio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nuclio/nuclio/downloads","issues_url":"https://api.github.com/repos/nuclio/nuclio/issues{/number}","pulls_url":"https://api.github.com/repos/nuclio/nuclio/pulls{/number}","milestones_url":"https://api.github.com/repos/nuclio/nuclio/milestones{/number}","notifications_url":"https://api.github.com/repos/nuclio/nuclio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nuclio/nuclio/labels{/name}","releases_url":"https://api.github.com/repos/nuclio/nuclio/releases{/id}","deployments_url":"https://api.github.com/repos/nuclio/nuclio/deployments","created_at":"2017-05-19T10:55:09Z","updated_at":"2018-02-18T15:21:44Z","pushed_at":"2018-02-18T15:01:37Z","git_url":"git://github.com/nuclio/nuclio.git","ssh_url":"git@github.com:nuclio/nuclio.git","clone_url":"https://github.com/nuclio/nuclio.git","svn_url":"https://github.com/nuclio/nuclio","homepage":"","size":42215,"stargazers_count":1753,"watchers_count":1753,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":105,"mirror_url":null,"archived":false,"open_issues_count":53,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":105,"open_issues":53,"watchers":1753,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nuclio/nuclio/pulls/467"},"html":{"href":"https://github.com/nuclio/nuclio/pull/467"},"issue":{"href":"https://api.github.com/repos/nuclio/nuclio/issues/467"},"comments":{"href":"https://api.github.com/repos/nuclio/nuclio/issues/467/comments"},"review_comments":{"href":"https://api.github.com/repos/nuclio/nuclio/pulls/467/comments"},"review_comment":{"href":"https://api.github.com/repos/nuclio/nuclio/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nuclio/nuclio/pulls/467/commits"},"statuses":{"href":"https://api.github.com/repos/nuclio/nuclio/statuses/14d34f5e4f9fba227a8bdd6111ca764806c177a0"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"pavius"}}