diff --git a/appview/pages/pages.go b/appview/pages/pages.go
index fe0e43c2..23e3318d 100644
--- a/appview/pages/pages.go
+++ b/appview/pages/pages.go
@@ -436,7 +436,7 @@ type RepoIndexParams struct {
EmailToDidOrHandle map[string]string
VerifiedCommits commitverify.VerifiedCommits
Languages *types.RepoLanguageResponse
- Pipelines map[plumbing.Hash]db.Pipeline
+ Pipelines map[string]db.Pipeline
types.RepoIndexResponse
}
@@ -475,6 +475,7 @@ type RepoLogParams struct {
Active string
EmailToDidOrHandle map[string]string
VerifiedCommits commitverify.VerifiedCommits
+ Pipelines map[string]db.Pipeline
}
func (p *Pages) RepoLog(w io.Writer, params RepoLogParams) error {
@@ -487,6 +488,7 @@ type RepoCommitParams struct {
RepoInfo repoinfo.RepoInfo
Active string
EmailToDidOrHandle map[string]string
+ Pipeline *db.Pipeline
// singular because it's always going to be just one
VerifiedCommit commitverify.VerifiedCommits
diff --git a/appview/pages/templates/repo/commit.html b/appview/pages/templates/repo/commit.html
index 0a6c1e88..702320ed 100644
--- a/appview/pages/templates/repo/commit.html
+++ b/appview/pages/templates/repo/commit.html
@@ -68,6 +68,12 @@
{{ end }}
+
+
+ {{ if $.Pipeline }}
+ {{ template "repo/fragments/pipelineStatusSymbol" $.Pipeline }}
+ {{ end }}
+
diff --git a/appview/pages/templates/repo/fragments/pipelineStatusSymbol.html b/appview/pages/templates/repo/fragments/pipelineStatusSymbol.html
index d087bca1..235c6351 100644
--- a/appview/pages/templates/repo/fragments/pipelineStatusSymbol.html
+++ b/appview/pages/templates/repo/fragments/pipelineStatusSymbol.html
@@ -15,7 +15,8 @@
{{ if $allPass }}
- {{ i "check" "size-4 text-green-600 dark:text-green-400 " }} {{ $total }}/{{ $total }}
+ {{ i "check" "size-4 text-green-600 dark:text-green-400 " }}
+ {{ $total }}/{{ $total }}
{{ else }}
{{ $radius := f64 8 }}
diff --git a/appview/pages/templates/repo/index.html b/appview/pages/templates/repo/index.html
index e7b06ea6..3db6d571 100644
--- a/appview/pages/templates/repo/index.html
+++ b/appview/pages/templates/repo/index.html
@@ -272,7 +272,7 @@
{{ end }}
- {{ $pipeline := index $.Pipelines .Hash }}
+ {{ $pipeline := index $.Pipelines .Hash.String }}
{{ if and $pipeline (gt (len $pipeline.Statuses) 0) }}
{{ $messageParts := splitN $commit.Message "\n\n" 2 }}
-
-
-
-
-
- {{ index $messageParts 0 }}
-
- {{ if gt (len $messageParts) 1 }}
-
- {{ end }}
+
+
+
+
+ {{ index $messageParts 0 }}
+
+ {{ if gt (len $messageParts) 1 }}
+
+ {{ end }}
- {{ if index $.TagMap $commit.Hash.String }}
- {{ range $tag := index $.TagMap $commit.Hash.String }}
-
- {{ $tag }}
-
- {{ end }}
+ {{ if index $.TagMap $commit.Hash.String }}
+ {{ range $tag := index $.TagMap $commit.Hash.String }}
+
+ {{ $tag }}
+
{{ end }}
-
-
- {{ if gt (len $messageParts) 1 }}
-
- {{ nl2br (index $messageParts 1) }}
-
{{ end }}
-
- {{ i "folder-code" "w-4 h-4" }}
-
+
+ {{ if gt (len $messageParts) 1 }}
+
+ {{ nl2br (index $messageParts 1) }}
+
+ {{ end }}
+
+ {{ i "folder-code" "w-4 h-4" }}
+
@@ -160,6 +164,15 @@
{{ shortTimeFmt $commit.Committer.When }}
+
+
+ {{ $pipeline := index $.Pipelines .Hash.String }}
+ {{ if and $pipeline (gt (len $pipeline.Statuses) 0) }}
+
+
+ {{ template "repo/fragments/pipelineStatusSymbol" $pipeline }}
+
+ {{ end }}
{{ end }}
diff --git a/appview/repo/index.go b/appview/repo/index.go
index 48f15eea..061fccd5 100644
--- a/appview/repo/index.go
+++ b/appview/repo/index.go
@@ -127,7 +127,11 @@ func (rp *Repo) RepoIndex(w http.ResponseWriter, r *http.Request) {
// non-fatal
}
- pipelines, err := rp.getPipelineStatuses(repoInfo, commitsTrunc)
+ var shas []string
+ for _, c := range commitsTrunc {
+ shas = append(shas, c.Hash.String())
+ }
+ pipelines, err := rp.getPipelineStatuses(repoInfo, shas)
if err != nil {
log.Printf("failed to fetch pipeline statuses: %s", err)
// non-fatal
diff --git a/appview/repo/repo.go b/appview/repo/repo.go
index 3243548a..82b25c83 100644
--- a/appview/repo/repo.go
+++ b/appview/repo/repo.go
@@ -133,13 +133,26 @@ func (rp *Repo) RepoLog(w http.ResponseWriter, r *http.Request) {
log.Println(err)
}
+ repoInfo := f.RepoInfo(user)
+
+ var shas []string
+ for _, c := range repolog.Commits {
+ shas = append(shas, c.Hash.String())
+ }
+ pipelines, err := rp.getPipelineStatuses(repoInfo, shas)
+ if err != nil {
+ log.Println(err)
+ // non-fatal
+ }
+
rp.pages.RepoLog(w, pages.RepoLogParams{
LoggedInUser: user,
TagMap: tagMap,
- RepoInfo: f.RepoInfo(user),
+ RepoInfo: repoInfo,
RepoLogResponse: *repolog,
EmailToDidOrHandle: emailToDidOrHandle(rp, emailToDidMap),
VerifiedCommits: vc,
+ Pipelines: pipelines,
})
return
}
@@ -289,12 +302,24 @@ func (rp *Repo) RepoCommit(w http.ResponseWriter, r *http.Request) {
}
user := rp.oauth.GetUser(r)
+ repoInfo := f.RepoInfo(user)
+ pipelines, err := rp.getPipelineStatuses(repoInfo, []string{result.Diff.Commit.This})
+ if err != nil {
+ log.Println(err)
+ // non-fatal
+ }
+ var pipeline *db.Pipeline
+ if p, ok := pipelines[result.Diff.Commit.This]; ok {
+ pipeline = &p
+ }
+
rp.pages.RepoCommit(w, pages.RepoCommitParams{
LoggedInUser: user,
RepoInfo: f.RepoInfo(user),
RepoCommitResponse: result,
EmailToDidOrHandle: emailToDidOrHandle(rp, emailToDidMap),
VerifiedCommit: vc,
+ Pipeline: pipeline,
})
return
}
diff --git a/appview/repo/repo_util.go b/appview/repo/repo_util.go
index 0a3fcf75..c342bb57 100644
--- a/appview/repo/repo_util.go
+++ b/appview/repo/repo_util.go
@@ -9,7 +9,6 @@ import (
"tangled.sh/tangled.sh/core/appview/db"
"tangled.sh/tangled.sh/core/appview/pages/repoinfo"
- "github.com/go-git/go-git/v5/plumbing"
"github.com/go-git/go-git/v5/plumbing/object"
)
@@ -108,19 +107,14 @@ func randomString(n int) string {
// golang is so blessed that it requires 35 lines of imperative code for this
func (rp *Repo) getPipelineStatuses(
repoInfo repoinfo.RepoInfo,
- commits []*object.Commit,
-) (map[plumbing.Hash]db.Pipeline, error) {
- m := make(map[plumbing.Hash]db.Pipeline)
+ shas []string,
+) (map[string]db.Pipeline, error) {
+ m := make(map[string]db.Pipeline)
- if len(commits) == 0 {
+ if len(shas) == 0 {
return m, nil
}
- shas := make([]string, len(commits))
- for _, c := range commits {
- shas = append(shas, c.Hash.String())
- }
-
ps, err := db.GetPipelineStatuses(
rp.db,
db.FilterEq("repo_owner", repoInfo.OwnerDid),
@@ -133,8 +127,7 @@ func (rp *Repo) getPipelineStatuses(
}
for _, p := range ps {
- hash := plumbing.NewHash(p.Sha)
- m[hash] = p
+ m[p.Sha] = p
}
return m, nil