···
···
"tangled.sh/tangled.sh/core/appview/commitverify"
"tangled.sh/tangled.sh/core/appview/db"
-
"tangled.sh/tangled.sh/core/appview/oauth"
"tangled.sh/tangled.sh/core/appview/pages"
-
"tangled.sh/tangled.sh/core/appview/pages/repoinfo"
"tangled.sh/tangled.sh/core/appview/reporesolver"
"tangled.sh/tangled.sh/core/knotclient"
"tangled.sh/tangled.sh/core/types"
···
user := rp.oauth.GetUser(r)
repoInfo := f.RepoInfo(user)
-
secret, err := db.GetRegistrationKey(rp.db, f.Knot)
-
log.Printf("failed to get registration key for %s: %s", f.Knot, err)
-
rp.pages.Notice(w, "resubmit-error", "Failed to create pull request. Try again later.")
-
signedClient, err := knotclient.NewSignedClient(f.Knot, secret, rp.config.Core.Dev)
-
log.Printf("failed to create signed client for %s: %s", f.Knot, err)
-
var forkInfo *types.ForkInfo
-
if user != nil && (repoInfo.Roles.IsOwner() || repoInfo.Roles.IsCollaborator()) {
-
forkInfo, err = getForkInfo(r, repoInfo, rp, f, result.Ref, user, signedClient)
-
log.Printf("Failed to fetch fork information: %v", err)
-
languageInfo, err := rp.getLanguageInfo(f, signedClient, result.Ref, ref == "")
log.Printf("failed to compute language percentages: %s", err)
···
rp.pages.RepoIndexPage(w, pages.RepoIndexParams{
-
RepoIndexResponse: *result,
-
CommitsTrunc: commitsTrunc,
BranchesTrunc: branchesTrunc,
EmailToDidOrHandle: emailToDidOrHandle(rp, emailToDidMap),
···
func (rp *Repo) getLanguageInfo(
f *reporesolver.ResolvedRepo,
-
signedClient *knotclient.SignedClient,
) ([]types.RepoLanguageDetails, error) {
···
if err != nil || langs == nil {
// non-fatal, fetch langs from ks
-
ls, err := signedClient.RepoLanguages(f.OwnerDid(), f.Name, currentRef)
···
return languageStats, nil
-
repoInfo repoinfo.RepoInfo,
-
f *reporesolver.ResolvedRepo,
-
signedClient *knotclient.SignedClient,
-
) (*types.ForkInfo, error) {
-
forkInfo := types.ForkInfo{
-
IsFork: repoInfo.Source != nil,
-
Status: types.UpToDate,
-
forkInfo.IsFork = false
-
us, err := knotclient.NewUnsignedClient(repoInfo.Source.Knot, rp.config.Core.Dev)
-
log.Printf("failed to create unsigned client for %s", repoInfo.Source.Knot)
-
result, err := us.Branches(repoInfo.Source.Did, repoInfo.Source.Name)
-
log.Println("failed to reach knotserver", err)
-
if !slices.ContainsFunc(result.Branches, func(branch types.Branch) bool {
-
return branch.Name == currentRef
-
forkInfo.Status = types.MissingBranch
-
client, err := rp.oauth.ServiceClient(
-
oauth.WithService(f.Knot),
-
oauth.WithLxm(tangled.RepoHiddenRefNSID),
-
oauth.WithDev(rp.config.Core.Dev),
-
log.Printf("failed to connect to knot server: %v", err)
-
resp, err := tangled.RepoHiddenRef(
-
&tangled.RepoHiddenRef_Input{
-
Repo: f.RepoAt().String(),
-
if err != nil || !resp.Success {
-
log.Printf("failed to update tracking branch: %s", err)
-
log.Printf("failed to update tracking branch: success=false")
-
return nil, fmt.Errorf("failed to update tracking branch")
-
hiddenRef := fmt.Sprintf("hidden/%s/%s", currentRef, currentRef)
-
var status types.AncestorCheckResponse
-
forkSyncableResp, err := signedClient.RepoForkAheadBehind(user.Did, string(f.RepoAt()), repoInfo.Name, currentRef, hiddenRef)
-
log.Printf("failed to check if fork is ahead/behind: %s", err)
-
if err := json.NewDecoder(forkSyncableResp.Body).Decode(&status); err != nil {
-
log.Printf("failed to decode fork status: %s", err)
-
forkInfo.Status = status.Status
···
···
"tangled.sh/tangled.sh/core/appview/commitverify"
"tangled.sh/tangled.sh/core/appview/db"
"tangled.sh/tangled.sh/core/appview/pages"
"tangled.sh/tangled.sh/core/appview/reporesolver"
"tangled.sh/tangled.sh/core/knotclient"
"tangled.sh/tangled.sh/core/types"
···
user := rp.oauth.GetUser(r)
repoInfo := f.RepoInfo(user)
+
// secret, err := db.GetRegistrationKey(rp.db, f.Knot)
+
// log.Printf("failed to get registration key for %s: %s", f.Knot, err)
+
// rp.pages.Notice(w, "resubmit-error", "Failed to create pull request. Try again later.")
+
// signedClient, err := knotclient.NewSignedClient(f.Knot, secret, rp.config.Core.Dev)
+
// log.Printf("failed to create signed client for %s: %s", f.Knot, err)
+
// var forkInfo *types.ForkInfo
+
// if user != nil && (repoInfo.Roles.IsOwner() || repoInfo.Roles.IsCollaborator()) {
+
// forkInfo, err = getForkInfo(r, repoInfo, rp, f, result.Ref, user, signedClient)
+
// log.Printf("Failed to fetch fork information: %v", err)
+
languageInfo, err := rp.getLanguageInfo(f, us, result.Ref, ref == "")
log.Printf("failed to compute language percentages: %s", err)
···
rp.pages.RepoIndexPage(w, pages.RepoIndexParams{
+
RepoIndexResponse: *result,
+
CommitsTrunc: commitsTrunc,
+
// ForkInfo: forkInfo, // TODO: reinstate this after xrpc properly lands
BranchesTrunc: branchesTrunc,
EmailToDidOrHandle: emailToDidOrHandle(rp, emailToDidMap),
···
func (rp *Repo) getLanguageInfo(
f *reporesolver.ResolvedRepo,
+
us *knotclient.UnsignedClient,
) ([]types.RepoLanguageDetails, error) {
···
if err != nil || langs == nil {
// non-fatal, fetch langs from ks
+
ls, err := us.RepoLanguages(f.OwnerDid(), f.Name, currentRef)
···
return languageStats, nil
+
// repoInfo repoinfo.RepoInfo,
+
// f *reporesolver.ResolvedRepo,
+
// signedClient *knotclient.SignedClient,
+
// ) (*types.ForkInfo, error) {
+
// forkInfo := types.ForkInfo{
+
// IsFork: repoInfo.Source != nil,
+
// Status: types.UpToDate,
+
// if !forkInfo.IsFork {
+
// forkInfo.IsFork = false
+
// return &forkInfo, nil
+
// us, err := knotclient.NewUnsignedClient(repoInfo.Source.Knot, rp.config.Core.Dev)
+
// log.Printf("failed to create unsigned client for %s", repoInfo.Source.Knot)
+
// result, err := us.Branches(repoInfo.Source.Did, repoInfo.Source.Name)
+
// log.Println("failed to reach knotserver", err)
+
// if !slices.ContainsFunc(result.Branches, func(branch types.Branch) bool {
+
// return branch.Name == currentRef
+
// forkInfo.Status = types.MissingBranch
+
// return &forkInfo, nil
+
// <<<<<<< Conflict 1 of 2
+
// %%%%%%% Changes from base #1 to side #1
+
// client, err := rp.oauth.ServiceClient(
+
// oauth.WithService(f.Knot),
+
// oauth.WithLxm(tangled.RepoHiddenRefNSID),
+
// oauth.WithDev(rp.config.Core.Dev),
+
// log.Printf("failed to connect to knot server: %v", err)
+
// %%%%%%% Changes from base #2 to side #2
+
// - newHiddenRefResp, err := signedClient.NewHiddenRef(user.Did, repoInfo.Name, currentRef, currentRef)
+
// + newHiddenRefResp, err := signedClient.NewHiddenRef(user.Did, repoInfo.Name, f.Ref, f.Ref)
+
// if err != nil || newHiddenRefResp.StatusCode != http.StatusNoContent {
+
// log.Printf("failed to update tracking branch: %s", err)
+
// +++++++ Contents of side #3
+
// client, err := rp.oauth.ServiceClient(
+
// oauth.WithService(f.Knot),
+
// oauth.WithLxm(tangled.RepoHiddenRefNSID),
+
// oauth.WithDev(rp.config.Core.Dev),
+
// log.Printf("failed to connect to knot server: %v", err)
+
// >>>>>>> Conflict 1 of 2 ends
+
// <<<<<<< Conflict 2 of 2
+
// %%%%%%% Changes from base #1 to side #1
+
// resp, err := tangled.RepoHiddenRef(
+
// &tangled.RepoHiddenRef_Input{
+
// + ForkRef: currentRef,
+
// + RemoteRef: currentRef,
+
// Repo: f.RepoAt().String(),
+
// if err != nil || !resp.Success {
+
// log.Printf("failed to update tracking branch: %s", err)
+
// log.Printf("failed to update tracking branch: success=false")
+
// return nil, fmt.Errorf("failed to update tracking branch")
+
// - hiddenRef := fmt.Sprintf("hidden/%s/%s", f.Ref, f.Ref)
+
// + hiddenRef := fmt.Sprintf("hidden/%s/%s", currentRef, currentRef)
+
// %%%%%%% Changes from base #2 to side #2
+
// - hiddenRef := fmt.Sprintf("hidden/%s/%s", currentRef, currentRef)
+
// + hiddenRef := fmt.Sprintf("hidden/%s/%s", f.Ref, f.Ref)
+
// +++++++ Contents of side #3
+
// resp, err := tangled.RepoHiddenRef(
+
// &tangled.RepoHiddenRef_Input{
+
// ForkRef: currentRef,
+
// RemoteRef: currentRef,
+
// Repo: f.RepoAt().String(),
+
// if err != nil || !resp.Success {
+
// log.Printf("failed to update tracking branch: %s", err)
+
// log.Printf("failed to update tracking branch: success=false")
+
// return nil, fmt.Errorf("failed to update tracking branch")
+
// hiddenRef := fmt.Sprintf("hidden/%s/%s", currentRef, currentRef)
+
// >>>>>>> Conflict 2 of 2 ends
+
// var status types.AncestorCheckResponse
+
// forkSyncableResp, err := signedClient.RepoForkAheadBehind(user.Did, string(f.RepoAt()), repoInfo.Name, currentRef, hiddenRef)
+
// log.Printf("failed to check if fork is ahead/behind: %s", err)
+
// if err := json.NewDecoder(forkSyncableResp.Body).Decode(&status); err != nil {
+
// log.Printf("failed to decode fork status: %s", err)
+
// forkInfo.Status = status.Status
+
// return &forkInfo, nil