{"action":"created","comment":{"url":"https://api.github.com/repos/mesg-foundation/core/pulls/comments/255399142","pull_request_review_id":201970711,"id":255399142,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI1NTM5OTE0Mg==","diff_hunk":"@@ -1,108 +1,111 @@\n package importer\n \n+// ConfigurationDependencyKey is the reserved key of the service's configuration in the dependencies array.\n+const ConfigurationDependencyKey = \"service\"\n+\n // ServiceDefinition represents MESG services configurations.\n type ServiceDefinition struct {\n \t// Name is the service name.\n-\tName string `yaml:\"name\" json:\"name,omitempty\"`\n+\tName string `yaml:\"name\" json:\"name,omitempty\" validate:\"required,printascii,min=1\"`\n \n \t// Sid is the service id. It must be unique.\n-\tSid string `yaml:\"sid\" json:\"sid,omitempty\"`\n+\tSid string `yaml:\"sid\" json:\"sid,omitempty\" validate:\"printascii,max=39\"`\n \n \t// Description is service description.\n-\tDescription string `yaml:\"description\" json:\"description,omitempty\"`\n+\tDescription string `yaml:\"description\" json:\"description,omitempty\" validate:\"printascii\"`\n \n \t// Tasks are the list of tasks that service can execute.\n-\tTasks map[string]*Task `yaml:\"tasks\" json:\"tasks,omitempty\"`\n+\tTasks map[string]*Task `yaml:\"tasks\" json:\"tasks,omitempty\" validate:\"dive,keys,printascii,endkeys,required\"`\n \n \t// Events are the list of events that service can emit.\n-\tEvents map[string]*Event `yaml:\"events\" json:\"events,omitempty\"`\n+\tEvents map[string]*Event `yaml:\"events\" json:\"events,omitempty\" validate:\"dive,keys,printascii,endkeys,required\"`\n \n \t// Dependencies are the Docker containers that service can depend on.\n-\tDependencies map[string]*Dependency `yaml:\"dependencies\" json:\"dependencies,omitempty\"`\n+\tDependencies map[string]*Dependency `yaml:\"dependencies\" json:\"dependencies,omitempty\" validate:\"dive,keys,printascii,ne=service,endkeys,required\"`\n \n \t// Configuration is the Docker container that service runs inside.\n \tConfiguration *Dependency `yaml:\"configuration\" json:\"configuration,omitempty\"`\n \n \t// Repository holds the service's repository url if it's living on\n \t// a Git host.\n-\tRepository string `yaml:\"repository\" json:\"repository,omitempty\"`\n+\tRepository string `yaml:\"repository\" json:\"repository,omitempty\" validate:\"omitempty,uri\"`\n }\n \n // Event describes a service task.\n type Event struct {\n \t// Name is the name of event.\n-\tName string `yaml:\"name\" json:\"name,omitempty\"`\n+\tName string `yaml:\"name\" json:\"name,omitempty\" validate:\"printascii\"`\n \n \t// Description is the description of event.\n-\tDescription string `yaml:\"description\" json:\"description,omitempty\"`\n+\tDescription string `yaml:\"description\" json:\"description,omitempty\" validate:\"printascii\"`\n \n \t// Data holds the input parameters of event.\n-\tData map[string]*Parameter `yaml:\"data\" json:\"data,omitempty\"`\n+\tData map[string]*Parameter `yaml:\"data\" json:\"data,omitempty\" validate:\"required,dive,keys,printascii,endkeys,required\"`\n }\n \n // Dependency represents a Docker container and it holds instructions about\n // how it should run.\n type Dependency struct {\n \t// Image is the Docker image.\n-\tImage string `yaml:\"image\" json:\"image,omitempty\"`\n+\tImage string `yaml:\"image\" json:\"image,omitempty\" validate:\"printascii\"`\n \n \t// Volumes are the Docker volumes.\n-\tVolumes []string `yaml:\"volumes\" json:\"volumes,omitempty\"`\n+\tVolumes []string `yaml:\"volumes\" json:\"volumes,omitempty\" validate:\"unique,dive,printascii\"`\n \n \t// VolumesFrom are the docker volumes-from from.\n-\tVolumesFrom []string `yaml:\"volumesfrom\" json:\"volumefrom,omitempty\"`\n+\tVolumesFrom []string `yaml:\"volumesfrom\" json:\"volumefrom,omitempty\" validate:\"unique,dive,printascii\"`\n \n \t// Ports holds ports configuration for container.\n-\tPorts []string `yaml:\"ports\" json:\"ports,omitempty\"`\n+\tPorts []string `yaml:\"ports\" json:\"ports,omitempty\" validate:\"unique,dive,numeric\"`\n \n \t// Command is the Docker command which will be executed when container started.\n-\tCommand string `yaml:\"command\" json:\"command,omitempty\"`\n+\tCommand string `yaml:\"command\" json:\"command,omitempty\" validate:\"printascii\"`\n \n \t// Args hold the args to pass to the Docker container\n-\tArgs []string `yaml:\"args\" json:\"args,omitempty\"`\n+\tArgs []string `yaml:\"args\" json:\"args,omitempty\" validate:\"dive,printascii\"`\n \n \t// Env is a slice of environment variables in key=value format.\n-\tEnv []string `yaml:\"env\" json:\"env,omitempty\"`\n+\tEnv []string `yaml:\"env\" json:\"env,omitempty\" validate:\"unique,dive,printascii\"`\n }\n \n // Task describes a service task.\n type Task struct {\n \t// Name is the name of task.\n-\tName string `yaml:\"name\" json:\"name,omitempty\"`\n+\tName string `yaml:\"name\" json:\"name,omitempty\" validate:\"printascii\"`\n \n \t// Description is the description of task.\n-\tDescription string `yaml:\"description\" json:\"description,omitempty\"`\n+\tDescription string `yaml:\"description\" json:\"description,omitempty\" validate:\"printascii\"`\n \n \t// Inputs are the definition of the execution inputs of task.\n-\tInputs map[string]*Parameter `yaml:\"inputs\" json:\"inputs,omitempty\"`\n+\tInputs map[string]*Parameter `yaml:\"inputs\" json:\"inputs,omitempty\" validate:\"dive,keys,printascii,endkeys,required\"`\n \n \t// Outputs are the definition of the execution results of task.\n-\tOutputs map[string]*Output `yaml:\"outputs\" json:\"outputs,omitempty\"`\n+\tOutputs map[string]*Output `yaml:\"outputs\" json:\"outputs,omitempty\" validate:\"required,dive,keys,printascii,endkeys,required\"`\n }\n \n // Output describes task output.\n type Output struct {\n \t// Name is the name of task output.\n-\tName string `yaml:\"name\" json:\"name,omitempty\"`\n+\tName string `yaml:\"name\" json:\"name,omitempty\" validate:\"printascii\"`\n \n \t// Description is the description of task output.\n-\tDescription string `yaml:\"description\" json:\"description,omitempty\"`\n+\tDescription string `yaml:\"description\" json:\"description,omitempty\" validate:\"printascii\"`\n \n \t// Data holds the output parameters of a task output.\n-\tData map[string]*Parameter `yaml:\"data\" json:\"data,omitempty\"`\n+\tData map[string]*Parameter `yaml:\"data\" json:\"data,omitempty\" validate:\"required,dive,keys,printascii,endkeys,required\"`","path":"service/importer/definition.go","position":119,"original_position":119,"commit_id":"dc5c93e547816d586f62234bb5f7db4843c3ab7d","original_commit_id":"dc5c93e547816d586f62234bb5f7db4843c3ab7d","user":{"login":"krhubert","id":1803915,"node_id":"MDQ6VXNlcjE4MDM5MTU=","avatar_url":"https://avatars2.githubusercontent.com/u/1803915?v=4","gravatar_id":"","url":"https://api.github.com/users/krhubert","html_url":"https://github.com/krhubert","followers_url":"https://api.github.com/users/krhubert/followers","following_url":"https://api.github.com/users/krhubert/following{/other_user}","gists_url":"https://api.github.com/users/krhubert/gists{/gist_id}","starred_url":"https://api.github.com/users/krhubert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krhubert/subscriptions","organizations_url":"https://api.github.com/users/krhubert/orgs","repos_url":"https://api.github.com/users/krhubert/repos","events_url":"https://api.github.com/users/krhubert/events{/privacy}","received_events_url":"https://api.github.com/users/krhubert/received_events","type":"User","site_admin":false},"body":"```suggestion\r\n\tData map[string]*Parameter `yaml:\"data\" json:\"data,omitempty\" validate:\"required,dive,keys,printascii,endkeys\"`\r\n```","created_at":"2019-02-11T07:41:40Z","updated_at":"2019-02-11T07:42:09Z","html_url":"https://github.com/mesg-foundation/core/pull/781#discussion_r255399142","pull_request_url":"https://api.github.com/repos/mesg-foundation/core/pulls/781","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/mesg-foundation/core/pulls/comments/255399142"},"html":{"href":"https://github.com/mesg-foundation/core/pull/781#discussion_r255399142"},"pull_request":{"href":"https://api.github.com/repos/mesg-foundation/core/pulls/781"}}},"pull_request":{"url":"https://api.github.com/repos/mesg-foundation/core/pulls/781","id":251728167,"node_id":"MDExOlB1bGxSZXF1ZXN0MjUxNzI4MTY3","html_url":"https://github.com/mesg-foundation/core/pull/781","diff_url":"https://github.com/mesg-foundation/core/pull/781.diff","patch_url":"https://github.com/mesg-foundation/core/pull/781.patch","issue_url":"https://api.github.com/repos/mesg-foundation/core/issues/781","number":781,"state":"open","locked":false,"title":"Replace json schema with go validation","user":{"login":"antho1404","id":1783126,"node_id":"MDQ6VXNlcjE3ODMxMjY=","avatar_url":"https://avatars2.githubusercontent.com/u/1783126?v=4","gravatar_id":"","url":"https://api.github.com/users/antho1404","html_url":"https://github.com/antho1404","followers_url":"https://api.github.com/users/antho1404/followers","following_url":"https://api.github.com/users/antho1404/following{/other_user}","gists_url":"https://api.github.com/users/antho1404/gists{/gist_id}","starred_url":"https://api.github.com/users/antho1404/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/antho1404/subscriptions","organizations_url":"https://api.github.com/users/antho1404/orgs","repos_url":"https://api.github.com/users/antho1404/repos","events_url":"https://api.github.com/users/antho1404/events{/privacy}","received_events_url":"https://api.github.com/users/antho1404/received_events","type":"User","site_admin":false},"body":"Remove the json schema to replace it with a validation in go with https://github.com/go-playground/validator\r\n\r\nIt will be easier to plug some specific validation if we want too and it remove some extra complexity.","created_at":"2019-02-10T09:47:02Z","updated_at":"2019-02-11T07:42:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f27546f966705a155bad604db2adf3e82ac4227c","assignee":null,"assignees":[],"requested_reviewers":[{"login":"NicolasMahe","id":5823445,"node_id":"MDQ6VXNlcjU4MjM0NDU=","avatar_url":"https://avatars1.githubusercontent.com/u/5823445?v=4","gravatar_id":"","url":"https://api.github.com/users/NicolasMahe","html_url":"https://github.com/NicolasMahe","followers_url":"https://api.github.com/users/NicolasMahe/followers","following_url":"https://api.github.com/users/NicolasMahe/following{/other_user}","gists_url":"https://api.github.com/users/NicolasMahe/gists{/gist_id}","starred_url":"https://api.github.com/users/NicolasMahe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NicolasMahe/subscriptions","organizations_url":"https://api.github.com/users/NicolasMahe/orgs","repos_url":"https://api.github.com/users/NicolasMahe/repos","events_url":"https://api.github.com/users/NicolasMahe/events{/privacy}","received_events_url":"https://api.github.com/users/NicolasMahe/received_events","type":"User","site_admin":false},{"login":"ilgooz","id":6023117,"node_id":"MDQ6VXNlcjYwMjMxMTc=","avatar_url":"https://avatars0.githubusercontent.com/u/6023117?v=4","gravatar_id":"","url":"https://api.github.com/users/ilgooz","html_url":"https://github.com/ilgooz","followers_url":"https://api.github.com/users/ilgooz/followers","following_url":"https://api.github.com/users/ilgooz/following{/other_user}","gists_url":"https://api.github.com/users/ilgooz/gists{/gist_id}","starred_url":"https://api.github.com/users/ilgooz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilgooz/subscriptions","organizations_url":"https://api.github.com/users/ilgooz/orgs","repos_url":"https://api.github.com/users/ilgooz/repos","events_url":"https://api.github.com/users/ilgooz/events{/privacy}","received_events_url":"https://api.github.com/users/ilgooz/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/mesg-foundation/core/pulls/781/commits","review_comments_url":"https://api.github.com/repos/mesg-foundation/core/pulls/781/comments","review_comment_url":"https://api.github.com/repos/mesg-foundation/core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mesg-foundation/core/issues/781/comments","statuses_url":"https://api.github.com/repos/mesg-foundation/core/statuses/dc5c93e547816d586f62234bb5f7db4843c3ab7d","head":{"label":"mesg-foundation:feature/go-validation","ref":"feature/go-validation","sha":"dc5c93e547816d586f62234bb5f7db4843c3ab7d","user":{"login":"mesg-foundation","id":34158802,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MTU4ODAy","avatar_url":"https://avatars1.githubusercontent.com/u/34158802?v=4","gravatar_id":"","url":"https://api.github.com/users/mesg-foundation","html_url":"https://github.com/mesg-foundation","followers_url":"https://api.github.com/users/mesg-foundation/followers","following_url":"https://api.github.com/users/mesg-foundation/following{/other_user}","gists_url":"https://api.github.com/users/mesg-foundation/gists{/gist_id}","starred_url":"https://api.github.com/users/mesg-foundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesg-foundation/subscriptions","organizations_url":"https://api.github.com/users/mesg-foundation/orgs","repos_url":"https://api.github.com/users/mesg-foundation/repos","events_url":"https://api.github.com/users/mesg-foundation/events{/privacy}","received_events_url":"https://api.github.com/users/mesg-foundation/received_events","type":"Organization","site_admin":false},"repo":{"id":121732267,"node_id":"MDEwOlJlcG9zaXRvcnkxMjE3MzIyNjc=","name":"core","full_name":"mesg-foundation/core","private":false,"owner":{"login":"mesg-foundation","id":34158802,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MTU4ODAy","avatar_url":"https://avatars1.githubusercontent.com/u/34158802?v=4","gravatar_id":"","url":"https://api.github.com/users/mesg-foundation","html_url":"https://github.com/mesg-foundation","followers_url":"https://api.github.com/users/mesg-foundation/followers","following_url":"https://api.github.com/users/mesg-foundation/following{/other_user}","gists_url":"https://api.github.com/users/mesg-foundation/gists{/gist_id}","starred_url":"https://api.github.com/users/mesg-foundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesg-foundation/subscriptions","organizations_url":"https://api.github.com/users/mesg-foundation/orgs","repos_url":"https://api.github.com/users/mesg-foundation/repos","events_url":"https://api.github.com/users/mesg-foundation/events{/privacy}","received_events_url":"https://api.github.com/users/mesg-foundation/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/mesg-foundation/core","description":"MESG is an open-source decentralized infrastructure which makes all technologies, including blockchains, interoperable. It’s a building platform for developers.","fork":false,"url":"https://api.github.com/repos/mesg-foundation/core","forks_url":"https://api.github.com/repos/mesg-foundation/core/forks","keys_url":"https://api.github.com/repos/mesg-foundation/core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mesg-foundation/core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mesg-foundation/core/teams","hooks_url":"https://api.github.com/repos/mesg-foundation/core/hooks","issue_events_url":"https://api.github.com/repos/mesg-foundation/core/issues/events{/number}","events_url":"https://api.github.com/repos/mesg-foundation/core/events","assignees_url":"https://api.github.com/repos/mesg-foundation/core/assignees{/user}","branches_url":"https://api.github.com/repos/mesg-foundation/core/branches{/branch}","tags_url":"https://api.github.com/repos/mesg-foundation/core/tags","blobs_url":"https://api.github.com/repos/mesg-foundation/core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mesg-foundation/core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mesg-foundation/core/git/refs{/sha}","trees_url":"https://api.github.com/repos/mesg-foundation/core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mesg-foundation/core/statuses/{sha}","languages_url":"https://api.github.com/repos/mesg-foundation/core/languages","stargazers_url":"https://api.github.com/repos/mesg-foundation/core/stargazers","contributors_url":"https://api.github.com/repos/mesg-foundation/core/contributors","subscribers_url":"https://api.github.com/repos/mesg-foundation/core/subscribers","subscription_url":"https://api.github.com/repos/mesg-foundation/core/subscription","commits_url":"https://api.github.com/repos/mesg-foundation/core/commits{/sha}","git_commits_url":"https://api.github.com/repos/mesg-foundation/core/git/commits{/sha}","comments_url":"https://api.github.com/repos/mesg-foundation/core/comments{/number}","issue_comment_url":"https://api.github.com/repos/mesg-foundation/core/issues/comments{/number}","contents_url":"https://api.github.com/repos/mesg-foundation/core/contents/{+path}","compare_url":"https://api.github.com/repos/mesg-foundation/core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mesg-foundation/core/merges","archive_url":"https://api.github.com/repos/mesg-foundation/core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mesg-foundation/core/downloads","issues_url":"https://api.github.com/repos/mesg-foundation/core/issues{/number}","pulls_url":"https://api.github.com/repos/mesg-foundation/core/pulls{/number}","milestones_url":"https://api.github.com/repos/mesg-foundation/core/milestones{/number}","notifications_url":"https://api.github.com/repos/mesg-foundation/core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mesg-foundation/core/labels{/name}","releases_url":"https://api.github.com/repos/mesg-foundation/core/releases{/id}","deployments_url":"https://api.github.com/repos/mesg-foundation/core/deployments","created_at":"2018-02-16T09:13:42Z","updated_at":"2019-02-07T02:24:17Z","pushed_at":"2019-02-10T11:06:59Z","git_url":"git://github.com/mesg-foundation/core.git","ssh_url":"git@github.com:mesg-foundation/core.git","clone_url":"https://github.com/mesg-foundation/core.git","svn_url":"https://github.com/mesg-foundation/core","homepage":"https://mesg.com/","size":23653,"stargazers_count":56,"watchers_count":56,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":52,"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":11,"open_issues":52,"watchers":56,"default_branch":"master"}},"base":{"label":"mesg-foundation:dev","ref":"dev","sha":"6f90650ca7dc49eab260253a0d959b7793fb0417","user":{"login":"mesg-foundation","id":34158802,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MTU4ODAy","avatar_url":"https://avatars1.githubusercontent.com/u/34158802?v=4","gravatar_id":"","url":"https://api.github.com/users/mesg-foundation","html_url":"https://github.com/mesg-foundation","followers_url":"https://api.github.com/users/mesg-foundation/followers","following_url":"https://api.github.com/users/mesg-foundation/following{/other_user}","gists_url":"https://api.github.com/users/mesg-foundation/gists{/gist_id}","starred_url":"https://api.github.com/users/mesg-foundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesg-foundation/subscriptions","organizations_url":"https://api.github.com/users/mesg-foundation/orgs","repos_url":"https://api.github.com/users/mesg-foundation/repos","events_url":"https://api.github.com/users/mesg-foundation/events{/privacy}","received_events_url":"https://api.github.com/users/mesg-foundation/received_events","type":"Organization","site_admin":false},"repo":{"id":121732267,"node_id":"MDEwOlJlcG9zaXRvcnkxMjE3MzIyNjc=","name":"core","full_name":"mesg-foundation/core","private":false,"owner":{"login":"mesg-foundation","id":34158802,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM0MTU4ODAy","avatar_url":"https://avatars1.githubusercontent.com/u/34158802?v=4","gravatar_id":"","url":"https://api.github.com/users/mesg-foundation","html_url":"https://github.com/mesg-foundation","followers_url":"https://api.github.com/users/mesg-foundation/followers","following_url":"https://api.github.com/users/mesg-foundation/following{/other_user}","gists_url":"https://api.github.com/users/mesg-foundation/gists{/gist_id}","starred_url":"https://api.github.com/users/mesg-foundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mesg-foundation/subscriptions","organizations_url":"https://api.github.com/users/mesg-foundation/orgs","repos_url":"https://api.github.com/users/mesg-foundation/repos","events_url":"https://api.github.com/users/mesg-foundation/events{/privacy}","received_events_url":"https://api.github.com/users/mesg-foundation/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/mesg-foundation/core","description":"MESG is an open-source decentralized infrastructure which makes all technologies, including blockchains, interoperable. It’s a building platform for developers.","fork":false,"url":"https://api.github.com/repos/mesg-foundation/core","forks_url":"https://api.github.com/repos/mesg-foundation/core/forks","keys_url":"https://api.github.com/repos/mesg-foundation/core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mesg-foundation/core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mesg-foundation/core/teams","hooks_url":"https://api.github.com/repos/mesg-foundation/core/hooks","issue_events_url":"https://api.github.com/repos/mesg-foundation/core/issues/events{/number}","events_url":"https://api.github.com/repos/mesg-foundation/core/events","assignees_url":"https://api.github.com/repos/mesg-foundation/core/assignees{/user}","branches_url":"https://api.github.com/repos/mesg-foundation/core/branches{/branch}","tags_url":"https://api.github.com/repos/mesg-foundation/core/tags","blobs_url":"https://api.github.com/repos/mesg-foundation/core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mesg-foundation/core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mesg-foundation/core/git/refs{/sha}","trees_url":"https://api.github.com/repos/mesg-foundation/core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mesg-foundation/core/statuses/{sha}","languages_url":"https://api.github.com/repos/mesg-foundation/core/languages","stargazers_url":"https://api.github.com/repos/mesg-foundation/core/stargazers","contributors_url":"https://api.github.com/repos/mesg-foundation/core/contributors","subscribers_url":"https://api.github.com/repos/mesg-foundation/core/subscribers","subscription_url":"https://api.github.com/repos/mesg-foundation/core/subscription","commits_url":"https://api.github.com/repos/mesg-foundation/core/commits{/sha}","git_commits_url":"https://api.github.com/repos/mesg-foundation/core/git/commits{/sha}","comments_url":"https://api.github.com/repos/mesg-foundation/core/comments{/number}","issue_comment_url":"https://api.github.com/repos/mesg-foundation/core/issues/comments{/number}","contents_url":"https://api.github.com/repos/mesg-foundation/core/contents/{+path}","compare_url":"https://api.github.com/repos/mesg-foundation/core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mesg-foundation/core/merges","archive_url":"https://api.github.com/repos/mesg-foundation/core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mesg-foundation/core/downloads","issues_url":"https://api.github.com/repos/mesg-foundation/core/issues{/number}","pulls_url":"https://api.github.com/repos/mesg-foundation/core/pulls{/number}","milestones_url":"https://api.github.com/repos/mesg-foundation/core/milestones{/number}","notifications_url":"https://api.github.com/repos/mesg-foundation/core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mesg-foundation/core/labels{/name}","releases_url":"https://api.github.com/repos/mesg-foundation/core/releases{/id}","deployments_url":"https://api.github.com/repos/mesg-foundation/core/deployments","created_at":"2018-02-16T09:13:42Z","updated_at":"2019-02-07T02:24:17Z","pushed_at":"2019-02-10T11:06:59Z","git_url":"git://github.com/mesg-foundation/core.git","ssh_url":"git@github.com:mesg-foundation/core.git","clone_url":"https://github.com/mesg-foundation/core.git","svn_url":"https://github.com/mesg-foundation/core","homepage":"https://mesg.com/","size":23653,"stargazers_count":56,"watchers_count":56,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":52,"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":11,"open_issues":52,"watchers":56,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mesg-foundation/core/pulls/781"},"html":{"href":"https://github.com/mesg-foundation/core/pull/781"},"issue":{"href":"https://api.github.com/repos/mesg-foundation/core/issues/781"},"comments":{"href":"https://api.github.com/repos/mesg-foundation/core/issues/781/comments"},"review_comments":{"href":"https://api.github.com/repos/mesg-foundation/core/pulls/781/comments"},"review_comment":{"href":"https://api.github.com/repos/mesg-foundation/core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mesg-foundation/core/pulls/781/commits"},"statuses":{"href":"https://api.github.com/repos/mesg-foundation/core/statuses/dc5c93e547816d586f62234bb5f7db4843c3ab7d"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"krhubert"}}