···
···
func (rp *Repo) DownloadArchive(w http.ResponseWriter, r *http.Request) {
92
+
l := rp.logger.With("handler", "DownloadArchive")
ref := chi.URLParam(r, "ref")
ref, _ = url.PathUnescape(ref)
f, err := rp.repoResolver.Resolve(r)
98
-
log.Println("failed to get repo and knot", err)
99
+
l.Error("failed to get repo and knot", "err", err)
···
repo := fmt.Sprintf("%s/%s", f.OwnerDid(), f.Name)
archiveBytes, err := tangled.RepoArchive(r.Context(), xrpcc, "tar.gz", "", ref, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
114
-
log.Println("failed to call XRPC repo.archive", xrpcerr)
115
+
l.Error("failed to call XRPC repo.archive", "err", xrpcerr)
···
func (rp *Repo) RepoLog(w http.ResponseWriter, r *http.Request) {
132
+
l := rp.logger.With("handler", "RepoLog")
f, err := rp.repoResolver.Resolve(r)
133
-
log.Println("failed to fully resolve repo", err)
136
+
l.Error("failed to fully resolve repo", "err", err)
···
repo := fmt.Sprintf("%s/%s", f.OwnerDid(), f.Name)
xrpcBytes, err := tangled.RepoLog(r.Context(), xrpcc, cursor, limit, "", ref, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
168
-
log.Println("failed to call XRPC repo.log", xrpcerr)
171
+
l.Error("failed to call XRPC repo.log", "err", xrpcerr)
var xrpcResp types.RepoLogResponse
if err := json.Unmarshal(xrpcBytes, &xrpcResp); err != nil {
175
-
log.Println("failed to decode XRPC response", err)
178
+
l.Error("failed to decode XRPC response", "err", err)
tagBytes, err := tangled.RepoTags(r.Context(), xrpcc, "", 0, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
182
-
log.Println("failed to call XRPC repo.tags", xrpcerr)
185
+
l.Error("failed to call XRPC repo.tags", "err", xrpcerr)
···
branchBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
199
-
log.Println("failed to call XRPC repo.branches", xrpcerr)
202
+
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
···
emailToDidMap, err := db.GetEmailToDid(rp.db, uniqueEmails(xrpcResp.Commits), true)
217
-
log.Println("failed to fetch email to did mapping", err)
220
+
l.Error("failed to fetch email to did mapping", "err", err)
vc, err := commitverify.GetVerifiedObjectCommits(rp.db, emailToDidMap, xrpcResp.Commits)
225
+
l.Error("failed to GetVerifiedObjectCommits", "err", err)
repoInfo := f.RepoInfo(user)
···
pipelines, err := getPipelineStatuses(rp.db, repoInfo, shas)
236
+
l.Error("failed to getPipelineStatuses", "err", err)
···
func (rp *Repo) RepoDescriptionEdit(w http.ResponseWriter, r *http.Request) {
252
+
l := rp.logger.With("handler", "RepoDescriptionEdit")
f, err := rp.repoResolver.Resolve(r)
251
-
log.Println("failed to get repo and knot", err)
256
+
l.Error("failed to get repo and knot", "err", err)
w.WriteHeader(http.StatusBadRequest)
···
func (rp *Repo) RepoDescription(w http.ResponseWriter, r *http.Request) {
268
+
l := rp.logger.With("handler", "RepoDescription")
f, err := rp.repoResolver.Resolve(r)
265
-
log.Println("failed to get repo and knot", err)
272
+
l.Error("failed to get repo and knot", "err", err)
w.WriteHeader(http.StatusBadRequest)
···
rkey := repoAt.RecordKey().String()
273
-
log.Println("invalid aturi for repo", err)
280
+
l.Error("invalid aturi for repo", "err", err)
w.WriteHeader(http.StatusInternalServerError)
···
newDescription := r.FormValue("description")
client, err := rp.oauth.AuthorizedClient(r)
290
-
log.Println("failed to get client")
297
+
l.Error("failed to get client")
rp.pages.Notice(w, "repo-notice", "Failed to update description, try again later.")
···
err = db.UpdateDescription(rp.db, string(repoAt), newDescription)
298
-
log.Println("failed to perferom update-description query", err)
305
+
l.Error("failed to perform update-description query", "err", err)
rp.pages.Notice(w, "repo-notice", "Failed to update description, try again later.")
···
327
-
log.Println("failed to perferom update-description query", err)
334
+
l.Error("failed to perferom update-description query", "err", err)
rp.pages.Notice(w, "repo-notice", "Failed to update description, unable to save to PDS.")
···
func (rp *Repo) RepoCommit(w http.ResponseWriter, r *http.Request) {
351
+
l := rp.logger.With("handler", "RepoCommit")
f, err := rp.repoResolver.Resolve(r)
346
-
log.Println("failed to fully resolve repo", err)
355
+
l.Error("failed to fully resolve repo", "err", err)
ref := chi.URLParam(r, "ref")
···
repo := fmt.Sprintf("%s/%s", f.OwnerDid(), f.Name)
xrpcBytes, err := tangled.RepoDiff(r.Context(), xrpcc, ref, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
374
-
log.Println("failed to call XRPC repo.diff", xrpcerr)
383
+
l.Error("failed to call XRPC repo.diff", "err", xrpcerr)
var result types.RepoCommitResponse
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
381
-
log.Println("failed to decode XRPC response", err)
390
+
l.Error("failed to decode XRPC response", "err", err)
emailToDidMap, err := db.GetEmailToDid(rp.db, []string{result.Diff.Commit.Committer.Email, result.Diff.Commit.Author.Email}, true)
388
-
log.Println("failed to get email to did mapping:", err)
397
+
l.Error("failed to get email to did mapping", "err", err)
vc, err := commitverify.GetVerifiedCommits(rp.db, emailToDidMap, []types.NiceDiff{*result.Diff})
402
+
l.Error("failed to GetVerifiedCommits", "err", err)
user := rp.oauth.GetUser(r)
repoInfo := f.RepoInfo(user)
pipelines, err := getPipelineStatuses(rp.db, repoInfo, []string{result.Diff.Commit.This})
409
+
l.Error("failed to getPipelineStatuses", "err", err)
var pipeline *models.Pipeline
···
func (rp *Repo) RepoTree(w http.ResponseWriter, r *http.Request) {
429
+
l := rp.logger.With("handler", "RepoTree")
f, err := rp.repoResolver.Resolve(r)
422
-
log.Println("failed to fully resolve repo", err)
433
+
l.Error("failed to fully resolve repo", "err", err)
···
repo := fmt.Sprintf("%s/%s", f.OwnerDid(), f.Name)
xrpcResp, err := tangled.RepoTree(r.Context(), xrpcc, treePath, ref, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
447
-
log.Println("failed to call XRPC repo.tree", xrpcerr)
458
+
l.Error("failed to call XRPC repo.tree", "err", xrpcerr)
···
func (rp *Repo) RepoTags(w http.ResponseWriter, r *http.Request) {
533
+
l := rp.logger.With("handler", "RepoTags")
f, err := rp.repoResolver.Resolve(r)
524
-
log.Println("failed to get repo and knot", err)
537
+
l.Error("failed to get repo and knot", "err", err)
···
repo := fmt.Sprintf("%s/%s", f.OwnerDid(), f.Name)
xrpcBytes, err := tangled.RepoTags(r.Context(), xrpcc, "", 0, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
540
-
log.Println("failed to call XRPC repo.tags", xrpcerr)
553
+
l.Error("failed to call XRPC repo.tags", "err", xrpcerr)
var result types.RepoTagsResponse
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
547
-
log.Println("failed to decode XRPC response", err)
560
+
l.Error("failed to decode XRPC response", "err", err)
artifacts, err := db.GetArtifact(rp.db, db.FilterEq("repo_at", f.RepoAt()))
554
-
log.Println("failed grab artifacts", err)
567
+
l.Error("failed grab artifacts", "err", err)
···
func (rp *Repo) RepoBranches(w http.ResponseWriter, r *http.Request) {
604
+
l := rp.logger.With("handler", "RepoBranches")
f, err := rp.repoResolver.Resolve(r)
593
-
log.Println("failed to get repo and knot", err)
608
+
l.Error("failed to get repo and knot", "err", err)
···
repo := fmt.Sprintf("%s/%s", f.OwnerDid(), f.Name)
xrpcBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
609
-
log.Println("failed to call XRPC repo.branches", xrpcerr)
624
+
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
var result types.RepoBranchesResponse
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
616
-
log.Println("failed to decode XRPC response", err)
631
+
l.Error("failed to decode XRPC response", "err", err)
···
func (rp *Repo) DeleteBranch(w http.ResponseWriter, r *http.Request) {
647
+
l := rp.logger.With("handler", "DeleteBranch")
f, err := rp.repoResolver.Resolve(r)
634
-
log.Println("failed to get repo and knot", err)
651
+
l.Error("failed to get repo and knot", "err", err)
noticeId := "delete-branch-error"
fail := func(msg string, err error) {
640
-
log.Println(msg, "err", err)
657
+
l.Error(msg, "err", err)
rp.pages.Notice(w, noticeId, msg)
···
fail(fmt.Sprintf("Failed to delete branch: %s", err), err)
673
-
log.Println("deleted branch from knot", "branch", branch, "repo", f.RepoAt())
690
+
l.Error("deleted branch from knot", "branch", branch, "repo", f.RepoAt())
func (rp *Repo) RepoBlob(w http.ResponseWriter, r *http.Request) {
696
+
l := rp.logger.With("handler", "RepoBlob")
f, err := rp.repoResolver.Resolve(r)
681
-
log.Println("failed to get repo and knot", err)
700
+
l.Error("failed to get repo and knot", "err", err)
···
repo := fmt.Sprintf("%s/%s", f.OwnerDid(), f.Repo.Name)
resp, err := tangled.RepoBlob(r.Context(), xrpcc, filePath, false, ref, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
703
-
log.Println("failed to call XRPC repo.blob", xrpcerr)
722
+
l.Error("failed to call XRPC repo.blob", "err", xrpcerr)
···
func (rp *Repo) RepoBlobRaw(w http.ResponseWriter, r *http.Request) {
822
+
l := rp.logger.With("handler", "RepoBlobRaw")
f, err := rp.repoResolver.Resolve(r)
805
-
log.Println("failed to get repo and knot", err)
826
+
l.Error("failed to get repo and knot", err)
w.WriteHeader(http.StatusBadRequest)
···
req, err := http.NewRequest("GET", blobURL, nil)
837
-
log.Println("failed to create request", err)
858
+
l.Error("failed to create request", "err", err)
···
resp, err := client.Do(req)
849
-
log.Println("failed to reach knotserver", err)
870
+
l.Error("failed to reach knotserver", "err", err)
···
if resp.StatusCode != http.StatusOK {
862
-
log.Printf("knotserver returned non-OK status for raw blob %s: %d", blobURL, resp.StatusCode)
883
+
l.Error("knotserver returned non-OK status for raw blob", "url", blobURL, "statuscode", resp.StatusCode)
w.WriteHeader(resp.StatusCode)
_, _ = io.Copy(w, resp.Body)
···
contentType := resp.Header.Get("Content-Type")
body, err := io.ReadAll(resp.Body)
871
-
log.Printf("error reading response body from knotserver: %v", err)
892
+
l.Error("error reading response body from knotserver", "err", err)
w.WriteHeader(http.StatusInternalServerError)
···
db.FilterContains("scope", subject.Collection().String()),
1446
-
log.Println("failed to fetch label defs", err)
1467
+
l.Error("failed to fetch label defs", "err", err)
···
states, err := db.GetLabels(rp.db, db.FilterEq("subject", subject))
1457
-
log.Println("failed to build label state", err)
1478
+
l.Error("failed to build label state", "err", err)
···
db.FilterContains("scope", subject.Collection().String()),
1494
-
log.Println("failed to fetch labels", err)
1515
+
l.Error("failed to fetch labels", "err", err)
···
states, err := db.GetLabels(rp.db, db.FilterEq("subject", subject))
1505
-
log.Println("failed to build label state", err)
1526
+
l.Error("failed to build label state", "err", err)
···
func (rp *Repo) DeleteRepo(w http.ResponseWriter, r *http.Request) {
user := rp.oauth.GetUser(r)
1673
+
l := rp.logger.With("handler", "DeleteRepo")
noticeId := "operation-error"
f, err := rp.repoResolver.Resolve(r)
1656
-
log.Println("failed to get repo and knot", err)
1678
+
l.Error("failed to get repo and knot", "err", err)
// remove record from pds
atpClient, err := rp.oauth.AuthorizedClient(r)
1663
-
log.Println("failed to get authorized client", err)
1685
+
l.Error("failed to get authorized client", "err", err)
_, err = comatproto.RepoDeleteRecord(r.Context(), atpClient, &comatproto.RepoDeleteRecord_Input{
···
1672
-
log.Printf("failed to delete record: %s", err)
1694
+
l.Error("failed to delete record", "err", err)
rp.pages.Notice(w, noticeId, "Failed to delete repository from PDS.")
1676
-
log.Println("removed repo record ", f.RepoAt().String())
1698
+
l.Info("removed repo record", "aturi", f.RepoAt().String())
client, err := rp.oauth.ServiceClient(
···
oauth.WithDev(rp.config.Core.Dev),
1685
-
log.Println("failed to connect to knot server:", err)
1707
+
l.Error("failed to connect to knot server", "err", err)
···
rp.pages.Notice(w, noticeId, err.Error())
1702
-
log.Println("deleted repo from knot")
1724
+
l.Info("deleted repo from knot")
tx, err := rp.db.BeginTx(r.Context(), nil)
1706
-
log.Println("failed to start tx")
1728
+
l.Error("failed to start tx")
w.Write(fmt.Append(nil, "failed to add collaborator: ", err))
···
err = rp.enforcer.E.LoadPolicy()
1714
-
log.Println("failed to rollback policies")
1736
+
l.Error("failed to rollback policies")
···
rp.enforcer.RemoveCollaborator(did, f.Knot, f.DidSlashRepo())
1728
-
log.Println("removed collaborators")
1750
+
l.Info("removed collaborators")
err = rp.enforcer.RemoveRepo(f.OwnerDid(), f.Knot, f.DidSlashRepo())
···
rp.pages.Notice(w, noticeId, "Failed to update appview")
1743
-
log.Println("removed repo from db")
1765
+
l.Info("removed repo from db")
1747
-
log.Println("failed to commit changes", err)
1769
+
l.Error("failed to commit changes", "err", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
err = rp.enforcer.E.SavePolicy()
1754
-
log.Println("failed to update ACLs", err)
1776
+
l.Error("failed to update ACLs", "err", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
···
func (rp *Repo) SetDefaultBranch(w http.ResponseWriter, r *http.Request) {
1785
+
l := rp.logger.With("handler", "SetDefaultBranch")
f, err := rp.repoResolver.Resolve(r)
1765
-
log.Println("failed to get repo and knot", err)
1789
+
l.Error("failed to get repo and knot", "err", err)
···
oauth.WithDev(rp.config.Core.Dev),
1783
-
log.Println("failed to connect to knot server:", err)
1807
+
l.Error("failed to connect to knot server", "err", err)
rp.pages.Notice(w, noticeId, "Failed to connect to knot server.")
···
if err := xrpcclient.HandleXrpcErr(xe); err != nil {
1797
-
log.Println("xrpc failed", "err", xe)
1821
+
l.Error("xrpc failed", "err", xe)
rp.pages.Notice(w, noticeId, err.Error())
···
f, err := rp.repoResolver.Resolve(r)
1812
-
log.Println("failed to get repo and knot", err)
1836
+
l.Error("failed to get repo and knot", "err", err)
1817
-
log.Println("empty spindle cannot add/rm secret", err)
1841
+
l.Error("empty spindle cannot add/rm secret", "err", err)
···
oauth.WithDev(rp.config.Core.Dev),
1834
-
log.Println("failed to create spindle client", err)
1858
+
l.Error("failed to create spindle client", "err", err)
···
func (rp *Repo) generalSettings(w http.ResponseWriter, r *http.Request) {
1944
+
l := rp.logger.With("handler", "generalSettings")
f, err := rp.repoResolver.Resolve(r)
user := rp.oauth.GetUser(r)
···
repo := fmt.Sprintf("%s/%s", f.OwnerDid(), f.Name)
xrpcBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
1935
-
log.Println("failed to call XRPC repo.branches", xrpcerr)
1961
+
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
var result types.RepoBranchesResponse
if err := json.Unmarshal(xrpcBytes, &result); err != nil {
1942
-
log.Println("failed to decode XRPC response", err)
1968
+
l.Error("failed to decode XRPC response", "err", err)
defaultLabels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", models.DefaultLabelDefs()))
1949
-
log.Println("failed to fetch labels", err)
1975
+
l.Error("failed to fetch labels", "err", err)
labels, err := db.GetLabelDefinitions(rp.db, db.FilterIn("at_uri", f.Repo.Labels))
1956
-
log.Println("failed to fetch labels", err)
1982
+
l.Error("failed to fetch labels", "err", err)
···
func (rp *Repo) accessSettings(w http.ResponseWriter, r *http.Request) {
2030
+
l := rp.logger.With("handler", "accessSettings")
f, err := rp.repoResolver.Resolve(r)
user := rp.oauth.GetUser(r)
repoCollaborators, err := f.Collaborators(r.Context())
2009
-
log.Println("failed to get collaborators", err)
2037
+
l.Error("failed to get collaborators", "err", err)
rp.pages.RepoAccessSettings(w, pages.RepoAccessSettingsParams{
···
func (rp *Repo) pipelineSettings(w http.ResponseWriter, r *http.Request) {
2050
+
l := rp.logger.With("handler", "pipelineSettings")
f, err := rp.repoResolver.Resolve(r)
user := rp.oauth.GetUser(r)
// all spindles that the repo owner is a member of
spindles, err := rp.enforcer.GetSpindlesForUser(f.OwnerDid())
2028
-
log.Println("failed to fetch spindles", err)
2058
+
l.Error("failed to fetch spindles", "err", err)
···
oauth.WithDev(rp.config.Core.Dev),
2041
-
log.Println("failed to create spindle client", err)
2071
+
l.Error("failed to create spindle client", "err", err)
} else if resp, err := tangled.RepoListSecrets(r.Context(), spindleClient, f.RepoAt().String()); err != nil {
2043
-
log.Println("failed to fetch secrets", err)
2073
+
l.Error("failed to fetch secrets", "err", err)
···
func (rp *Repo) SyncRepoFork(w http.ResponseWriter, r *http.Request) {
2113
+
l := rp.logger.With("handler", "SyncRepoFork")
ref := chi.URLParam(r, "ref")
ref, _ = url.PathUnescape(ref)
user := rp.oauth.GetUser(r)
f, err := rp.repoResolver.Resolve(r)
2089
-
log.Printf("failed to resolve source repo: %v", err)
2121
+
l.Error("failed to resolve source repo", "err", err)
···
func (rp *Repo) ForkRepo(w http.ResponseWriter, r *http.Request) {
2165
+
l := rp.logger.With("handler", "ForkRepo")
user := rp.oauth.GetUser(r)
f, err := rp.repoResolver.Resolve(r)
2136
-
log.Printf("failed to resolve source repo: %v", err)
2170
+
l.Error("failed to resolve source repo", "err", err)
···
if !errors.Is(err, sql.ErrNoRows) {
2187
-
log.Println("error fetching existing repo from db", "err", err)
2221
+
l.Error("error fetching existing repo from db", "err", err)
rp.pages.Notice(w, "repo", "Failed to fork this repository. Try again later.")
···
err = db.AddRepo(tx, repo)
2336
+
l.Error("failed to AddRepo", "err", err)
rp.pages.Notice(w, "repo", "Failed to save repository information.")
···
p, _ := securejoin.SecureJoin(user.Did, forkName)
err = rp.enforcer.AddRepo(user.Did, targetKnot, p)
2345
+
l.Error("failed to add ACLs", "err", err)
rp.pages.Notice(w, "repo", "Failed to set up repository permissions.")
2318
-
log.Println("failed to commit changes", err)
2352
+
l.Error("failed to commit changes", "err", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
err = rp.enforcer.E.SavePolicy()
2325
-
log.Println("failed to update ACLs", err)
2359
+
l.Error("failed to update ACLs", "err", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
···
func (rp *Repo) RepoCompareNew(w http.ResponseWriter, r *http.Request) {
2395
+
l := rp.logger.With("handler", "RepoCompareNew")
user := rp.oauth.GetUser(r)
f, err := rp.repoResolver.Resolve(r)
2364
-
log.Println("failed to get repo and knot", err)
2400
+
l.Error("failed to get repo and knot", "err", err)
···
repo := fmt.Sprintf("%s/%s", f.OwnerDid(), f.Name)
branchBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2380
-
log.Println("failed to call XRPC repo.branches", xrpcerr)
2416
+
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
var branchResult types.RepoBranchesResponse
if err := json.Unmarshal(branchBytes, &branchResult); err != nil {
2387
-
log.Println("failed to decode XRPC branches response", err)
2423
+
l.Error("failed to decode XRPC branches response", "err", err)
rp.pages.Notice(w, "compare-error", "Failed to produce comparison. Try again later.")
···
tagBytes, err := tangled.RepoTags(r.Context(), xrpcc, "", 0, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2417
-
log.Println("failed to call XRPC repo.tags", xrpcerr)
2453
+
l.Error("failed to call XRPC repo.tags", "err", xrpcerr)
var tags types.RepoTagsResponse
if err := json.Unmarshal(tagBytes, &tags); err != nil {
2424
-
log.Println("failed to decode XRPC tags response", err)
2460
+
l.Error("failed to decode XRPC tags response", "err", err)
rp.pages.Notice(w, "compare-error", "Failed to produce comparison. Try again later.")
···
func (rp *Repo) RepoCompare(w http.ResponseWriter, r *http.Request) {
2478
+
l := rp.logger.With("handler", "RepoCompare")
user := rp.oauth.GetUser(r)
f, err := rp.repoResolver.Resolve(r)
2445
-
log.Println("failed to get repo and knot", err)
2483
+
l.Error("failed to get repo and knot", "err", err)
···
head, _ = url.PathUnescape(head)
if base == "" || head == "" {
2472
-
log.Printf("invalid comparison")
2510
+
l.Error("invalid comparison")
···
branchBytes, err := tangled.RepoBranches(r.Context(), xrpcc, "", 0, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2490
-
log.Println("failed to call XRPC repo.branches", xrpcerr)
2528
+
l.Error("failed to call XRPC repo.branches", "err", xrpcerr)
var branches types.RepoBranchesResponse
if err := json.Unmarshal(branchBytes, &branches); err != nil {
2497
-
log.Println("failed to decode XRPC branches response", err)
2535
+
l.Error("failed to decode XRPC branches response", "err", err)
rp.pages.Notice(w, "compare-error", "Failed to produce comparison. Try again later.")
tagBytes, err := tangled.RepoTags(r.Context(), xrpcc, "", 0, repo)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2504
-
log.Println("failed to call XRPC repo.tags", xrpcerr)
2542
+
l.Error("failed to call XRPC repo.tags", "err", xrpcerr)
var tags types.RepoTagsResponse
if err := json.Unmarshal(tagBytes, &tags); err != nil {
2511
-
log.Println("failed to decode XRPC tags response", err)
2549
+
l.Error("failed to decode XRPC tags response", "err", err)
rp.pages.Notice(w, "compare-error", "Failed to produce comparison. Try again later.")
compareBytes, err := tangled.RepoCompare(r.Context(), xrpcc, repo, base, head)
if xrpcerr := xrpcclient.HandleXrpcErr(err); xrpcerr != nil {
2518
-
log.Println("failed to call XRPC repo.compare", xrpcerr)
2556
+
l.Error("failed to call XRPC repo.compare", "err", xrpcerr)
var formatPatch types.RepoFormatPatchResponse
if err := json.Unmarshal(compareBytes, &formatPatch); err != nil {
2525
-
log.Println("failed to decode XRPC compare response", err)
2563
+
l.Error("failed to decode XRPC compare response", "err", err)
rp.pages.Notice(w, "compare-error", "Failed to produce comparison. Try again later.")