{"action":"created","comment":{"url":"https://api.github.com/repos/Bugagazavr/drone/pulls/comments/35487694","id":35487694,"diff_hunk":"@@ -0,0 +1,297 @@\n+package gitlab\n+\n+import (\n+\t\"crypto/tls\"\n+\t\"fmt\"\n+\t\"io/ioutil\"\n+\t\"net/http\"\n+\t\"strconv\"\n+\t\"strings\"\n+\n+\t\"github.com/Bugagazavr/go-gitlab-client\"\n+\t\"github.com/drone/drone/Godeps/_workspace/src/github.com/hashicorp/golang-lru\"\n+\t\"github.com/drone/drone/pkg/config\"\n+\t\"github.com/drone/drone/pkg/oauth2\"\n+\t\"github.com/drone/drone/pkg/remote\"\n+\tcommon \"github.com/drone/drone/pkg/types\"\n+\t\"github.com/drone/drone/pkg/utils/httputil\"\n+)\n+\n+const (\n+\tDefaultScope = \"repo\"\n+)\n+\n+type Gitlab struct {\n+\tURL         string\n+\tClient      string\n+\tSecret      string\n+\tAllowedOrgs []string\n+\tOpen        bool\n+\tPrivateMode bool\n+\tSkipVerify  bool\n+\n+\tcache *lru.Cache\n+}\n+\n+func init() {\n+\tremote.Register(\"gitlab\", NewDriver)\n+}\n+\n+func NewDriver(conf *config.Config) (remote.Remote, error) {\n+\tvar gitlab = Gitlab{\n+\t\tURL:         conf.Gitlab.URL,\n+\t\tClient:      conf.Gitlab.Client,\n+\t\tSecret:      conf.Gitlab.Secret,\n+\t\tAllowedOrgs: conf.Gitlab.Orgs,\n+\t\tOpen:        conf.Gitlab.Open,\n+\t\tSkipVerify:  conf.Gitlab.SkipVerify,\n+\t}\n+\tvar err error\n+\tgitlab.cache, err = lru.New(1028)\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\n+\t// the URL must NOT have a trailing slash\n+\tif strings.HasSuffix(gitlab.URL, \"/\") {\n+\t\tgitlab.URL = gitlab.URL[:len(gitlab.URL)-1]\n+\t}\n+\treturn &gitlab, nil\n+}\n+\n+func (r *Gitlab) Login(token, secret string) (*common.User, error) {\n+\tclient := NewClient(r.URL, token, r.SkipVerify)\n+\tvar login, err = client.CurrentUser()\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\tuser := common.User{}\n+\tuser.Login = login.Username\n+\tuser.Email = login.Email\n+\tuser.Token = token\n+\tuser.Secret = secret\n+\treturn &user, nil\n+}\n+\n+// Orgs fetches the organizations for the given user.\n+func (r *Gitlab) Orgs(u *common.User) ([]string, error) {\n+\treturn nil, nil\n+}\n+\n+// Repo fetches the named repository from the remote system.\n+func (r *Gitlab) Repo(u *common.User, owner, name string) (*common.Repo, error) {\n+\tclient := NewClient(r.URL, u.Token, r.SkipVerify)\n+\tid := ns(owner, name)\n+\trepo_, err := client.Project(id)\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\n+\trepo := &common.Repo{}\n+\trepo.Owner = owner\n+\trepo.Name = name\n+\trepo.FullName = repo_.PathWithNamespace\n+\trepo.Link = repo_.Url\n+\trepo.Clone = repo_.HttpRepoUrl\n+\trepo.Branch = \"master\"\n+\n+\tif repo_.DefaultBranch != \"\" {\n+\t\trepo.Branch = repo_.DefaultBranch\n+\t}\n+\n+\tif r.PrivateMode {\n+\t\trepo.Private = true\n+\t}\n+\treturn repo, err\n+}\n+\n+// Perm fetches the named repository from the remote system.\n+func (r *Gitlab) Perm(u *common.User, owner, name string) (*common.Perm, error) {\n+\tkey := fmt.Sprintf(\"%s/%s/%s\", u.Login, owner, name)\n+\tval, ok := r.cache.Get(key)\n+\tif ok {\n+\t\treturn val.(*common.Perm), nil\n+\t}\n+\n+\tclient := NewClient(r.URL, u.Token, r.SkipVerify)\n+\tid := ns(owner, name)\n+\trepo, err := client.Project(id)\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\tm := &common.Perm{}\n+\tm.Admin = IsAdmin(repo)\n+\tm.Pull = IsRead(repo)\n+\tm.Push = IsWrite(repo)\n+\tr.cache.Add(key, m)\n+\treturn m, nil\n+}\n+\n+// GetScript fetches the build script (.drone.yml) from the remote\n+// repository and returns in string format.\n+func (r *Gitlab) Script(user *common.User, repo *common.Repo, build *common.Build) ([]byte, error) {\n+\tvar client = NewClient(r.URL, user.Token, r.SkipVerify)\n+\tvar path = ns(repo.Owner, repo.Name)\n+\treturn client.RepoRawFile(path, build.Commit.Sha, \".drone.yml\")\n+}\n+\n+// NOTE Currently gitlab doesn't support status for commits and events,\n+//      also if we want get MR status in gitlab we need implement a special plugin for gitlab,\n+//      gitlab uses API to fetch build status on client side. But for now we skip this.\n+func (r *Gitlab) Status(u *common.User, repo *common.Repo, b *common.Build) error {\n+\treturn nil\n+}\n+\n+// Netrc returns a .netrc file that can be used to clone\n+// private repositories from a remote system.\n+// NOTE gitlab does not support this, so now we skip this.\n+func (r *Gitlab) Netrc(u *common.User) (*common.Netrc, error) {\n+\treturn nil, nil\n+}\n+\n+// Activate activates a repository by adding a Post-commit hook and\n+// a Public Deploy key, if applicable.\n+func (r *Gitlab) Activate(user *common.User, repo *common.Repo, keys *common.Keypair, link string) error {\n+\tvar client = NewClient(r.URL, user.Token, r.SkipVerify)\n+\tvar path = ns(repo.Owner, repo.Name)\n+\tvar title, err = GetKeyTitle(link)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\n+\t// if the repository is private we'll need\n+\t// to upload a github key to the repository\n+\tif repo.Private {\n+\t\tvar err = client.AddProjectDeployKey(path, title, repo.Keys.Public)\n+\t\tif err != nil {\n+\t\t\treturn err\n+\t\t}\n+\t}\n+\n+\t// append the repo owner / name to the hook url since gitlab\n+\t// doesn't send this detail in the post-commit hook\n+\tlink += \"?owner=\" + repo.Owner + \"&name=\" + repo.Name\n+\n+\t// add the hook\n+\treturn client.AddProjectHook(path, link, true, false, true)\n+}\n+\n+// Deactivate removes a repository by removing all the post-commit hooks\n+// which are equal to link and removing the SSH deploy key.\n+func (r *Gitlab) Deactivate(user *common.User, repo *common.Repo, link string) error {\n+\tvar client = NewClient(r.URL, user.Token, r.SkipVerify)\n+\tvar path = ns(repo.Owner, repo.Name)\n+\n+\tkeys, err := client.ProjectDeployKeys(path)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\tvar pubkey = strings.TrimSpace(repo.Keys.Public)\n+\tfor _, k := range keys {\n+\t\tif pubkey == strings.TrimSpace(k.Key) {\n+\t\t\tif err := client.RemoveProjectDeployKey(path, strconv.Itoa(k.Id)); err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\tbreak\n+\t\t}\n+\t}\n+\thooks, err := client.ProjectHooks(path)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\tlink += \"?owner=\" + repo.Owner + \"&name=\" + repo.Name\n+\tfor _, h := range hooks {\n+\t\tif link == h.Url {\n+\t\t\tif err := client.RemoveProjectHook(path, strconv.Itoa(h.Id)); err != nil {\n+\t\t\t\treturn err\n+\t\t\t}\n+\t\t\tbreak\n+\t\t}\n+\t}\n+\treturn nil\n+}\n+\n+// ParseHook parses the post-commit hook from the Request body\n+// and returns the required data in a standard format.\n+func (r *Gitlab) Hook(req *http.Request) (*common.Hook, error) {\n+\n+\tvar payload, _ = ioutil.ReadAll(req.Body)\n+\tvar parsed, _ = gogitlab.ParseHook(payload)\n+\n+\tif parsed.ObjectKind == \"merge_request\" {\n+\t\t// NOTE: in gitlab 8.0, gitlab will get same MR models as github\n+\t\t//       https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/981/diffs\n+\t\treturn nil, nil\n+\t}\n+\n+\tobj := parsed.ObjectAttributes\n+\tif !(obj.State == \"opened\" && obj.MergeStatus == \"unchecked\") {\n+\t\treturn nil, nil\n+\t}\n+\n+\tvar hook = new(common.Hook)\n+\n+\thook.Repo.Name = obj.Source.Name\n+\thook.Repo.Owner = obj.Source.Namespace\n+\n+\t// Check pull request comes from public fork\n+\tif obj.Source.VisibilityLevel < 20 {","path":"pkg/remote/gitlab/gitlab.go","position":238,"original_position":238,"commit_id":"dc1ee4a5f94e82c83133ae5192751d92a399b24b","original_commit_id":"dc1ee4a5f94e82c83133ae5192751d92a399b24b","user":{"login":"Bugagazavr","id":683590,"avatar_url":"https://avatars.githubusercontent.com/u/683590?v=3","gravatar_id":"","url":"https://api.github.com/users/Bugagazavr","html_url":"https://github.com/Bugagazavr","followers_url":"https://api.github.com/users/Bugagazavr/followers","following_url":"https://api.github.com/users/Bugagazavr/following{/other_user}","gists_url":"https://api.github.com/users/Bugagazavr/gists{/gist_id}","starred_url":"https://api.github.com/users/Bugagazavr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bugagazavr/subscriptions","organizations_url":"https://api.github.com/users/Bugagazavr/orgs","repos_url":"https://api.github.com/users/Bugagazavr/repos","events_url":"https://api.github.com/users/Bugagazavr/events{/privacy}","received_events_url":"https://api.github.com/users/Bugagazavr/received_events","type":"User","site_admin":false},"body":"This also must be removed because it's a part of `MR` support","created_at":"2015-07-25T23:07:55Z","updated_at":"2015-07-25T23:07:55Z","html_url":"https://github.com/Bugagazavr/drone/pull/1#discussion_r35487694","pull_request_url":"https://api.github.com/repos/Bugagazavr/drone/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/Bugagazavr/drone/pulls/comments/35487694"},"html":{"href":"https://github.com/Bugagazavr/drone/pull/1#discussion_r35487694"},"pull_request":{"href":"https://api.github.com/repos/Bugagazavr/drone/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/Bugagazavr/drone/pulls/1","id":40833804,"html_url":"https://github.com/Bugagazavr/drone/pull/1","diff_url":"https://github.com/Bugagazavr/drone/pull/1.diff","patch_url":"https://github.com/Bugagazavr/drone/pull/1.patch","issue_url":"https://api.github.com/repos/Bugagazavr/drone/issues/1","number":1,"state":"open","locked":false,"title":"add gitlab imp","user":{"login":"letusfly85","id":1466545,"avatar_url":"https://avatars.githubusercontent.com/u/1466545?v=3","gravatar_id":"","url":"https://api.github.com/users/letusfly85","html_url":"https://github.com/letusfly85","followers_url":"https://api.github.com/users/letusfly85/followers","following_url":"https://api.github.com/users/letusfly85/following{/other_user}","gists_url":"https://api.github.com/users/letusfly85/gists{/gist_id}","starred_url":"https://api.github.com/users/letusfly85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/letusfly85/subscriptions","organizations_url":"https://api.github.com/users/letusfly85/orgs","repos_url":"https://api.github.com/users/letusfly85/repos","events_url":"https://api.github.com/users/letusfly85/events{/privacy}","received_events_url":"https://api.github.com/users/letusfly85/received_events","type":"User","site_admin":false},"body":"I tried to gitlab imp,\r\n\r\nhowever, something wrong... and it doesn't work.\r\n\r\nNow, I'm checking gitlab oauth settings.","created_at":"2015-07-25T08:52:34Z","updated_at":"2015-07-25T23:07:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"935526feabd84d4ba5b4adb0b877ddd3fd55dffe","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Bugagazavr/drone/pulls/1/commits","review_comments_url":"https://api.github.com/repos/Bugagazavr/drone/pulls/1/comments","review_comment_url":"https://api.github.com/repos/Bugagazavr/drone/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Bugagazavr/drone/issues/1/comments","statuses_url":"https://api.github.com/repos/Bugagazavr/drone/statuses/dc1ee4a5f94e82c83133ae5192751d92a399b24b","head":{"label":"letusfly85:0.4-database-gitlab","ref":"0.4-database-gitlab","sha":"dc1ee4a5f94e82c83133ae5192751d92a399b24b","user":{"login":"letusfly85","id":1466545,"avatar_url":"https://avatars.githubusercontent.com/u/1466545?v=3","gravatar_id":"","url":"https://api.github.com/users/letusfly85","html_url":"https://github.com/letusfly85","followers_url":"https://api.github.com/users/letusfly85/followers","following_url":"https://api.github.com/users/letusfly85/following{/other_user}","gists_url":"https://api.github.com/users/letusfly85/gists{/gist_id}","starred_url":"https://api.github.com/users/letusfly85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/letusfly85/subscriptions","organizations_url":"https://api.github.com/users/letusfly85/orgs","repos_url":"https://api.github.com/users/letusfly85/repos","events_url":"https://api.github.com/users/letusfly85/events{/privacy}","received_events_url":"https://api.github.com/users/letusfly85/received_events","type":"User","site_admin":false},"repo":{"id":38037000,"name":"drone","full_name":"letusfly85/drone","owner":{"login":"letusfly85","id":1466545,"avatar_url":"https://avatars.githubusercontent.com/u/1466545?v=3","gravatar_id":"","url":"https://api.github.com/users/letusfly85","html_url":"https://github.com/letusfly85","followers_url":"https://api.github.com/users/letusfly85/followers","following_url":"https://api.github.com/users/letusfly85/following{/other_user}","gists_url":"https://api.github.com/users/letusfly85/gists{/gist_id}","starred_url":"https://api.github.com/users/letusfly85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/letusfly85/subscriptions","organizations_url":"https://api.github.com/users/letusfly85/orgs","repos_url":"https://api.github.com/users/letusfly85/repos","events_url":"https://api.github.com/users/letusfly85/events{/privacy}","received_events_url":"https://api.github.com/users/letusfly85/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/letusfly85/drone","description":"Drone is a Continuous Integration platform built on Docker, written in Go","fork":true,"url":"https://api.github.com/repos/letusfly85/drone","forks_url":"https://api.github.com/repos/letusfly85/drone/forks","keys_url":"https://api.github.com/repos/letusfly85/drone/keys{/key_id}","collaborators_url":"https://api.github.com/repos/letusfly85/drone/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/letusfly85/drone/teams","hooks_url":"https://api.github.com/repos/letusfly85/drone/hooks","issue_events_url":"https://api.github.com/repos/letusfly85/drone/issues/events{/number}","events_url":"https://api.github.com/repos/letusfly85/drone/events","assignees_url":"https://api.github.com/repos/letusfly85/drone/assignees{/user}","branches_url":"https://api.github.com/repos/letusfly85/drone/branches{/branch}","tags_url":"https://api.github.com/repos/letusfly85/drone/tags","blobs_url":"https://api.github.com/repos/letusfly85/drone/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/letusfly85/drone/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/letusfly85/drone/git/refs{/sha}","trees_url":"https://api.github.com/repos/letusfly85/drone/git/trees{/sha}","statuses_url":"https://api.github.com/repos/letusfly85/drone/statuses/{sha}","languages_url":"https://api.github.com/repos/letusfly85/drone/languages","stargazers_url":"https://api.github.com/repos/letusfly85/drone/stargazers","contributors_url":"https://api.github.com/repos/letusfly85/drone/contributors","subscribers_url":"https://api.github.com/repos/letusfly85/drone/subscribers","subscription_url":"https://api.github.com/repos/letusfly85/drone/subscription","commits_url":"https://api.github.com/repos/letusfly85/drone/commits{/sha}","git_commits_url":"https://api.github.com/repos/letusfly85/drone/git/commits{/sha}","comments_url":"https://api.github.com/repos/letusfly85/drone/comments{/number}","issue_comment_url":"https://api.github.com/repos/letusfly85/drone/issues/comments{/number}","contents_url":"https://api.github.com/repos/letusfly85/drone/contents/{+path}","compare_url":"https://api.github.com/repos/letusfly85/drone/compare/{base}...{head}","merges_url":"https://api.github.com/repos/letusfly85/drone/merges","archive_url":"https://api.github.com/repos/letusfly85/drone/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/letusfly85/drone/downloads","issues_url":"https://api.github.com/repos/letusfly85/drone/issues{/number}","pulls_url":"https://api.github.com/repos/letusfly85/drone/pulls{/number}","milestones_url":"https://api.github.com/repos/letusfly85/drone/milestones{/number}","notifications_url":"https://api.github.com/repos/letusfly85/drone/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/letusfly85/drone/labels{/name}","releases_url":"https://api.github.com/repos/letusfly85/drone/releases{/id}","created_at":"2015-06-25T08:17:59Z","updated_at":"2015-06-25T08:17:59Z","pushed_at":"2015-07-25T23:02:40Z","git_url":"git://github.com/letusfly85/drone.git","ssh_url":"git@github.com:letusfly85/drone.git","clone_url":"https://github.com/letusfly85/drone.git","svn_url":"https://github.com/letusfly85/drone","homepage":"","size":13423,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Bugagazavr:0.4-imp","ref":"0.4-imp","sha":"ddd4d88d0e4873c28e564305f420854168213517","user":{"login":"Bugagazavr","id":683590,"avatar_url":"https://avatars.githubusercontent.com/u/683590?v=3","gravatar_id":"","url":"https://api.github.com/users/Bugagazavr","html_url":"https://github.com/Bugagazavr","followers_url":"https://api.github.com/users/Bugagazavr/followers","following_url":"https://api.github.com/users/Bugagazavr/following{/other_user}","gists_url":"https://api.github.com/users/Bugagazavr/gists{/gist_id}","starred_url":"https://api.github.com/users/Bugagazavr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bugagazavr/subscriptions","organizations_url":"https://api.github.com/users/Bugagazavr/orgs","repos_url":"https://api.github.com/users/Bugagazavr/repos","events_url":"https://api.github.com/users/Bugagazavr/events{/privacy}","received_events_url":"https://api.github.com/users/Bugagazavr/received_events","type":"User","site_admin":false},"repo":{"id":16698024,"name":"drone","full_name":"Bugagazavr/drone","owner":{"login":"Bugagazavr","id":683590,"avatar_url":"https://avatars.githubusercontent.com/u/683590?v=3","gravatar_id":"","url":"https://api.github.com/users/Bugagazavr","html_url":"https://github.com/Bugagazavr","followers_url":"https://api.github.com/users/Bugagazavr/followers","following_url":"https://api.github.com/users/Bugagazavr/following{/other_user}","gists_url":"https://api.github.com/users/Bugagazavr/gists{/gist_id}","starred_url":"https://api.github.com/users/Bugagazavr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bugagazavr/subscriptions","organizations_url":"https://api.github.com/users/Bugagazavr/orgs","repos_url":"https://api.github.com/users/Bugagazavr/repos","events_url":"https://api.github.com/users/Bugagazavr/events{/privacy}","received_events_url":"https://api.github.com/users/Bugagazavr/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Bugagazavr/drone","description":"Drone is a Continuous Integration platform built on Docker","fork":true,"url":"https://api.github.com/repos/Bugagazavr/drone","forks_url":"https://api.github.com/repos/Bugagazavr/drone/forks","keys_url":"https://api.github.com/repos/Bugagazavr/drone/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Bugagazavr/drone/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Bugagazavr/drone/teams","hooks_url":"https://api.github.com/repos/Bugagazavr/drone/hooks","issue_events_url":"https://api.github.com/repos/Bugagazavr/drone/issues/events{/number}","events_url":"https://api.github.com/repos/Bugagazavr/drone/events","assignees_url":"https://api.github.com/repos/Bugagazavr/drone/assignees{/user}","branches_url":"https://api.github.com/repos/Bugagazavr/drone/branches{/branch}","tags_url":"https://api.github.com/repos/Bugagazavr/drone/tags","blobs_url":"https://api.github.com/repos/Bugagazavr/drone/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Bugagazavr/drone/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Bugagazavr/drone/git/refs{/sha}","trees_url":"https://api.github.com/repos/Bugagazavr/drone/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Bugagazavr/drone/statuses/{sha}","languages_url":"https://api.github.com/repos/Bugagazavr/drone/languages","stargazers_url":"https://api.github.com/repos/Bugagazavr/drone/stargazers","contributors_url":"https://api.github.com/repos/Bugagazavr/drone/contributors","subscribers_url":"https://api.github.com/repos/Bugagazavr/drone/subscribers","subscription_url":"https://api.github.com/repos/Bugagazavr/drone/subscription","commits_url":"https://api.github.com/repos/Bugagazavr/drone/commits{/sha}","git_commits_url":"https://api.github.com/repos/Bugagazavr/drone/git/commits{/sha}","comments_url":"https://api.github.com/repos/Bugagazavr/drone/comments{/number}","issue_comment_url":"https://api.github.com/repos/Bugagazavr/drone/issues/comments{/number}","contents_url":"https://api.github.com/repos/Bugagazavr/drone/contents/{+path}","compare_url":"https://api.github.com/repos/Bugagazavr/drone/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Bugagazavr/drone/merges","archive_url":"https://api.github.com/repos/Bugagazavr/drone/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Bugagazavr/drone/downloads","issues_url":"https://api.github.com/repos/Bugagazavr/drone/issues{/number}","pulls_url":"https://api.github.com/repos/Bugagazavr/drone/pulls{/number}","milestones_url":"https://api.github.com/repos/Bugagazavr/drone/milestones{/number}","notifications_url":"https://api.github.com/repos/Bugagazavr/drone/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Bugagazavr/drone/labels{/name}","releases_url":"https://api.github.com/repos/Bugagazavr/drone/releases{/id}","created_at":"2014-02-10T14:39:36Z","updated_at":"2014-07-30T22:30:50Z","pushed_at":"2015-07-25T23:02:41Z","git_url":"git://github.com/Bugagazavr/drone.git","ssh_url":"git@github.com:Bugagazavr/drone.git","clone_url":"https://github.com/Bugagazavr/drone.git","svn_url":"https://github.com/Bugagazavr/drone","homepage":null,"size":13965,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Bugagazavr/drone/pulls/1"},"html":{"href":"https://github.com/Bugagazavr/drone/pull/1"},"issue":{"href":"https://api.github.com/repos/Bugagazavr/drone/issues/1"},"comments":{"href":"https://api.github.com/repos/Bugagazavr/drone/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/Bugagazavr/drone/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/Bugagazavr/drone/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Bugagazavr/drone/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/Bugagazavr/drone/statuses/dc1ee4a5f94e82c83133ae5192751d92a399b24b"}}}}