···
···
"tangled.sh/tangled.sh/core/appview/commitverify"
"tangled.sh/tangled.sh/core/appview/db"
14
-
"tangled.sh/tangled.sh/core/appview/oauth"
"tangled.sh/tangled.sh/core/appview/pages"
16
-
"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)
108
-
secret, err := db.GetRegistrationKey(rp.db, f.Knot)
110
-
log.Printf("failed to get registration key for %s: %s", f.Knot, err)
111
-
rp.pages.Notice(w, "resubmit-error", "Failed to create pull request. Try again later.")
104
+
// secret, err := db.GetRegistrationKey(rp.db, f.Knot)
106
+
// log.Printf("failed to get registration key for %s: %s", f.Knot, err)
107
+
// rp.pages.Notice(w, "resubmit-error", "Failed to create pull request. Try again later.")
114
-
signedClient, err := knotclient.NewSignedClient(f.Knot, secret, rp.config.Core.Dev)
116
-
log.Printf("failed to create signed client for %s: %s", f.Knot, err)
110
+
// signedClient, err := knotclient.NewSignedClient(f.Knot, secret, rp.config.Core.Dev)
112
+
// log.Printf("failed to create signed client for %s: %s", f.Knot, err)
120
-
var forkInfo *types.ForkInfo
121
-
if user != nil && (repoInfo.Roles.IsOwner() || repoInfo.Roles.IsCollaborator()) {
122
-
forkInfo, err = getForkInfo(r, repoInfo, rp, f, result.Ref, user, signedClient)
124
-
log.Printf("Failed to fetch fork information: %v", err)
116
+
// var forkInfo *types.ForkInfo
117
+
// if user != nil && (repoInfo.Roles.IsOwner() || repoInfo.Roles.IsCollaborator()) {
118
+
// forkInfo, err = getForkInfo(r, repoInfo, rp, f, result.Ref, user, signedClient)
120
+
// log.Printf("Failed to fetch fork information: %v", err)
130
-
languageInfo, err := rp.getLanguageInfo(f, signedClient, result.Ref, ref == "")
126
+
languageInfo, err := rp.getLanguageInfo(f, us, result.Ref, ref == "")
log.Printf("failed to compute language percentages: %s", err)
···
rp.pages.RepoIndexPage(w, pages.RepoIndexParams{
147
-
LoggedInUser: user,
148
-
RepoInfo: repoInfo,
150
-
RepoIndexResponse: *result,
151
-
CommitsTrunc: commitsTrunc,
152
-
TagsTrunc: tagsTrunc,
153
-
ForkInfo: forkInfo,
143
+
LoggedInUser: user,
144
+
RepoInfo: repoInfo,
146
+
RepoIndexResponse: *result,
147
+
CommitsTrunc: commitsTrunc,
148
+
TagsTrunc: tagsTrunc,
149
+
// ForkInfo: forkInfo, // TODO: reinstate this after xrpc properly lands
BranchesTrunc: branchesTrunc,
EmailToDidOrHandle: emailToDidOrHandle(rp, emailToDidMap),
···
func (rp *Repo) getLanguageInfo(
f *reporesolver.ResolvedRepo,
164
-
signedClient *knotclient.SignedClient,
160
+
us *knotclient.UnsignedClient,
) ([]types.RepoLanguageDetails, error) {
···
if err != nil || langs == nil {
// non-fatal, fetch langs from ks
177
-
ls, err := signedClient.RepoLanguages(f.OwnerDid(), f.Name, currentRef)
173
+
ls, err := us.RepoLanguages(f.OwnerDid(), f.Name, currentRef)
···
return languageStats, nil
237
-
repoInfo repoinfo.RepoInfo,
239
-
f *reporesolver.ResolvedRepo,
242
-
signedClient *knotclient.SignedClient,
243
-
) (*types.ForkInfo, error) {
248
-
forkInfo := types.ForkInfo{
249
-
IsFork: repoInfo.Source != nil,
250
-
Status: types.UpToDate,
253
-
if !forkInfo.IsFork {
254
-
forkInfo.IsFork = false
255
-
return &forkInfo, nil
258
-
us, err := knotclient.NewUnsignedClient(repoInfo.Source.Knot, rp.config.Core.Dev)
260
-
log.Printf("failed to create unsigned client for %s", repoInfo.Source.Knot)
264
-
result, err := us.Branches(repoInfo.Source.Did, repoInfo.Source.Name)
266
-
log.Println("failed to reach knotserver", err)
270
-
if !slices.ContainsFunc(result.Branches, func(branch types.Branch) bool {
271
-
return branch.Name == currentRef
273
-
forkInfo.Status = types.MissingBranch
274
-
return &forkInfo, nil
277
-
client, err := rp.oauth.ServiceClient(
279
-
oauth.WithService(f.Knot),
280
-
oauth.WithLxm(tangled.RepoHiddenRefNSID),
281
-
oauth.WithDev(rp.config.Core.Dev),
284
-
log.Printf("failed to connect to knot server: %v", err)
288
-
resp, err := tangled.RepoHiddenRef(
291
-
&tangled.RepoHiddenRef_Input{
292
-
ForkRef: currentRef,
293
-
RemoteRef: currentRef,
294
-
Repo: f.RepoAt().String(),
297
-
if err != nil || !resp.Success {
299
-
log.Printf("failed to update tracking branch: %s", err)
301
-
log.Printf("failed to update tracking branch: success=false")
303
-
return nil, fmt.Errorf("failed to update tracking branch")
306
-
hiddenRef := fmt.Sprintf("hidden/%s/%s", currentRef, currentRef)
308
-
var status types.AncestorCheckResponse
309
-
forkSyncableResp, err := signedClient.RepoForkAheadBehind(user.Did, string(f.RepoAt()), repoInfo.Name, currentRef, hiddenRef)
311
-
log.Printf("failed to check if fork is ahead/behind: %s", err)
315
-
if err := json.NewDecoder(forkSyncableResp.Body).Decode(&status); err != nil {
316
-
log.Printf("failed to decode fork status: %s", err)
320
-
forkInfo.Status = status.Status
321
-
return &forkInfo, nil
231
+
// func getForkInfo(
232
+
// r *http.Request,
233
+
// repoInfo repoinfo.RepoInfo,
235
+
// f *reporesolver.ResolvedRepo,
236
+
// currentRef string,
237
+
// user *oauth.User,
238
+
// signedClient *knotclient.SignedClient,
239
+
// ) (*types.ForkInfo, error) {
240
+
// if user == nil {
244
+
// forkInfo := types.ForkInfo{
245
+
// IsFork: repoInfo.Source != nil,
246
+
// Status: types.UpToDate,
249
+
// if !forkInfo.IsFork {
250
+
// forkInfo.IsFork = false
251
+
// return &forkInfo, nil
254
+
// us, err := knotclient.NewUnsignedClient(repoInfo.Source.Knot, rp.config.Core.Dev)
256
+
// log.Printf("failed to create unsigned client for %s", repoInfo.Source.Knot)
260
+
// result, err := us.Branches(repoInfo.Source.Did, repoInfo.Source.Name)
262
+
// log.Println("failed to reach knotserver", err)
266
+
// if !slices.ContainsFunc(result.Branches, func(branch types.Branch) bool {
267
+
// return branch.Name == currentRef
269
+
// forkInfo.Status = types.MissingBranch
270
+
// return &forkInfo, nil
273
+
// <<<<<<< Conflict 1 of 2
274
+
// %%%%%%% Changes from base #1 to side #1
275
+
// client, err := rp.oauth.ServiceClient(
277
+
// oauth.WithService(f.Knot),
278
+
// oauth.WithLxm(tangled.RepoHiddenRefNSID),
279
+
// oauth.WithDev(rp.config.Core.Dev),
282
+
// log.Printf("failed to connect to knot server: %v", err)
283
+
// %%%%%%% Changes from base #2 to side #2
284
+
// - newHiddenRefResp, err := signedClient.NewHiddenRef(user.Did, repoInfo.Name, currentRef, currentRef)
285
+
// + newHiddenRefResp, err := signedClient.NewHiddenRef(user.Did, repoInfo.Name, f.Ref, f.Ref)
286
+
// if err != nil || newHiddenRefResp.StatusCode != http.StatusNoContent {
287
+
// log.Printf("failed to update tracking branch: %s", err)
288
+
// +++++++ Contents of side #3
289
+
// client, err := rp.oauth.ServiceClient(
291
+
// oauth.WithService(f.Knot),
292
+
// oauth.WithLxm(tangled.RepoHiddenRefNSID),
293
+
// oauth.WithDev(rp.config.Core.Dev),
296
+
// log.Printf("failed to connect to knot server: %v", err)
297
+
// >>>>>>> Conflict 1 of 2 ends
301
+
// <<<<<<< Conflict 2 of 2
302
+
// %%%%%%% Changes from base #1 to side #1
303
+
// resp, err := tangled.RepoHiddenRef(
306
+
// &tangled.RepoHiddenRef_Input{
307
+
// - ForkRef: f.Ref,
308
+
// - RemoteRef: f.Ref,
309
+
// + ForkRef: currentRef,
310
+
// + RemoteRef: currentRef,
311
+
// Repo: f.RepoAt().String(),
314
+
// if err != nil || !resp.Success {
316
+
// log.Printf("failed to update tracking branch: %s", err)
318
+
// log.Printf("failed to update tracking branch: success=false")
320
+
// return nil, fmt.Errorf("failed to update tracking branch")
323
+
// - hiddenRef := fmt.Sprintf("hidden/%s/%s", f.Ref, f.Ref)
324
+
// + hiddenRef := fmt.Sprintf("hidden/%s/%s", currentRef, currentRef)
326
+
// %%%%%%% Changes from base #2 to side #2
327
+
// - hiddenRef := fmt.Sprintf("hidden/%s/%s", currentRef, currentRef)
328
+
// + hiddenRef := fmt.Sprintf("hidden/%s/%s", f.Ref, f.Ref)
330
+
// +++++++ Contents of side #3
331
+
// resp, err := tangled.RepoHiddenRef(
334
+
// &tangled.RepoHiddenRef_Input{
335
+
// ForkRef: currentRef,
336
+
// RemoteRef: currentRef,
337
+
// Repo: f.RepoAt().String(),
340
+
// if err != nil || !resp.Success {
342
+
// log.Printf("failed to update tracking branch: %s", err)
344
+
// log.Printf("failed to update tracking branch: success=false")
346
+
// return nil, fmt.Errorf("failed to update tracking branch")
349
+
// hiddenRef := fmt.Sprintf("hidden/%s/%s", currentRef, currentRef)
350
+
// >>>>>>> Conflict 2 of 2 ends
351
+
// var status types.AncestorCheckResponse
352
+
// forkSyncableResp, err := signedClient.RepoForkAheadBehind(user.Did, string(f.RepoAt()), repoInfo.Name, currentRef, hiddenRef)
354
+
// log.Printf("failed to check if fork is ahead/behind: %s", err)
358
+
// if err := json.NewDecoder(forkSyncableResp.Body).Decode(&status); err != nil {
359
+
// log.Printf("failed to decode fork status: %s", err)
363
+
// forkInfo.Status = status.Status
364
+
// return &forkInfo, nil