Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The LUCI Authors. All rights reserved. | 1 // Copyright 2016 The LUCI Authors. All rights reserved. |
| 2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
| 3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
| 4 | 4 |
| 5 package git | 5 package git |
| 6 | 6 |
| 7 import ( | 7 import ( |
| 8 "encoding/json" | 8 "encoding/json" |
| 9 "fmt" | 9 "fmt" |
| 10 "net/http" | 10 "net/http" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 58 // fixURL validates and normalizes a repoURL and treeish, and returns the | 58 // fixURL validates and normalizes a repoURL and treeish, and returns the |
| 59 // log JSON gitiles URL. | 59 // log JSON gitiles URL. |
| 60 func fixURL(repoURL, treeish string) (string, error) { | 60 func fixURL(repoURL, treeish string) (string, error) { |
| 61 u, err := url.Parse(repoURL) | 61 u, err := url.Parse(repoURL) |
| 62 if err != nil { | 62 if err != nil { |
| 63 return "", err | 63 return "", err |
| 64 } | 64 } |
| 65 if u.Scheme != "https" { | 65 if u.Scheme != "https" { |
| 66 return "", fmt.Errorf("%s should start with https://", repoURL) | 66 return "", fmt.Errorf("%s should start with https://", repoURL) |
| 67 } | 67 } |
| 68 if !strings.HasSuffix(u.Host, "googlesource.com") { | 68 if !strings.HasSuffix(u.Host, "googlesource.com") { |
|
nodir
2017/04/19 18:37:48
it must be ".googlesource.com"
otherwise one may u
hinoka
2017/04/20 22:09:43
Done.
| |
| 69 return "", fmt.Errorf("Only googlesource.com repos supported") | 69 return "", fmt.Errorf("Only googlesource.com repos supported") |
| 70 } | 70 } |
| 71 // Use the authenticated URL | 71 // Use the authenticated URL |
| 72 u.Path = "a/" + u.Path | 72 u.Path = "a/" + u.Path |
| 73 URL := fmt.Sprintf("%s/+log/%s?format=JSON", u.String(), treeish) | 73 URL := fmt.Sprintf("%s/+log/%s?format=JSON", u.String(), treeish) |
| 74 return URL, nil | 74 return URL, nil |
| 75 } | 75 } |
| 76 | 76 |
| 77 // GetCommits returns a list of commits based on a repo and treeish (usually | 77 // GetCommits returns a list of commits based on a repo and treeish (usually |
| 78 // a branch). This should be equivilent of a "git log <treeish>" call in | 78 // a branch). This should be equivilent of a "git log <treeish>" call in |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 106 // TODO(hinoka): If there is a page and we have gotten less than the lim it, | 106 // TODO(hinoka): If there is a page and we have gotten less than the lim it, |
| 107 // keep making requests for the next page until we have enough commits. | 107 // keep making requests for the next page until we have enough commits. |
| 108 | 108 |
| 109 // Move things into our own datastructure. | 109 // Move things into our own datastructure. |
| 110 result := make([]resp.Commit, len(commits.Log)) | 110 result := make([]resp.Commit, len(commits.Log)) |
| 111 for i, log := range commits.Log { | 111 for i, log := range commits.Log { |
| 112 result[i] = resp.Commit{ | 112 result[i] = resp.Commit{ |
| 113 AuthorName: log.Author.Name, | 113 AuthorName: log.Author.Name, |
| 114 AuthorEmail: log.Author.Email, | 114 AuthorEmail: log.Author.Email, |
| 115 Repo: repoURL, | 115 Repo: repoURL, |
| 116 » » » Revision: log.Commit, | 116 » » » Revision: &resp.Link{ |
| 117 » » » » Label: log.Commit, | |
| 118 » » » » URL: repoURL + "/+/" + log.Commit, | |
| 119 » » » }, | |
| 117 Description: log.Message, | 120 Description: log.Message, |
| 118 Title: strings.SplitN(log.Message, "\n", 2)[0], | 121 Title: strings.SplitN(log.Message, "\n", 2)[0], |
| 119 // TODO(hinoka): Fill in the rest of resp.Commit and add those details | 122 // TODO(hinoka): Fill in the rest of resp.Commit and add those details |
| 120 // in the html. | 123 // in the html. |
| 121 } | 124 } |
| 122 } | 125 } |
| 123 return result, nil | 126 return result, nil |
| 124 } | 127 } |
| OLD | NEW |