forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

appview: add proper author attribution while merge a pull request

get user handle from resolver, and use the user's primary email id, if set

Tangled be809e87 bccc48b7

Changed files
+13 -1
appview
state
+13 -1
appview/state/pull.go
···
return
}
ksClient, err := NewSignedClient(f.Knot, secret, s.config.Dev)
if err != nil {
log.Printf("failed to create signed client for %s: %s", f.Knot, err)
···
}
// Merge the pull request
-
resp, err := ksClient.Merge([]byte(pull.LatestPatch()), f.OwnerDid(), f.RepoName, pull.TargetBranch, pull.Title, pull.Body, "", "")
if err != nil {
log.Printf("failed to merge pull request: %s", err)
s.pages.Notice(w, "pull-merge-error", "Failed to merge pull request. Try again later.")
···
return
}
+
ident, err := s.resolver.ResolveIdent(r.Context(), pull.OwnerDid)
+
if err != nil {
+
log.Printf("resolving identity: %s", err)
+
w.WriteHeader(http.StatusNotFound)
+
return
+
}
+
+
email, err := db.GetPrimaryEmail(s.db, pull.OwnerDid)
+
if err != nil {
+
log.Printf("failed to get primary email: %s", err)
+
}
+
ksClient, err := NewSignedClient(f.Knot, secret, s.config.Dev)
if err != nil {
log.Printf("failed to create signed client for %s: %s", f.Knot, err)
···
}
// Merge the pull request
+
resp, err := ksClient.Merge([]byte(pull.LatestPatch()), f.OwnerDid(), f.RepoName, pull.TargetBranch, pull.Title, pull.Body, ident.Handle.String(), email.Address)
if err != nil {
log.Printf("failed to merge pull request: %s", err)
s.pages.Notice(w, "pull-merge-error", "Failed to merge pull request. Try again later.")