Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(567)

Side by Side Diff: milo/appengine/backend/git/gitiles.go

Issue 2823413002: Milo buildbot: Add in the rest of the blame/commits information. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698