forked from tangled.org/core
this repo has no description

lexicons: pulls: put target repo and branch together in their own object

Signed-off-by: nelind <nel.n.lindberg@gmail.com>

nel.pet 429045af e165103c

verified
Changed files
+206 -80
api
appview
db
pulls
cmd
lexicons
pulls
+166 -64
api/tangled/cbor_gen.go
··· 6392 6392 6393 6393 return nil 6394 6394 } 6395 + func (t *RepoPull_Target) MarshalCBOR(w io.Writer) error { 6396 + if t == nil { 6397 + _, err := w.Write(cbg.CborNull) 6398 + return err 6399 + } 6400 + 6401 + cw := cbg.NewCborWriter(w) 6402 + 6403 + if _, err := cw.Write([]byte{162}); err != nil { 6404 + return err 6405 + } 6406 + 6407 + // t.Repo (string) (string) 6408 + if len("repo") > 1000000 { 6409 + return xerrors.Errorf("Value in field \"repo\" was too long") 6410 + } 6411 + 6412 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("repo"))); err != nil { 6413 + return err 6414 + } 6415 + if _, err := cw.WriteString(string("repo")); err != nil { 6416 + return err 6417 + } 6418 + 6419 + if len(t.Repo) > 1000000 { 6420 + return xerrors.Errorf("Value in field t.Repo was too long") 6421 + } 6422 + 6423 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Repo))); err != nil { 6424 + return err 6425 + } 6426 + if _, err := cw.WriteString(string(t.Repo)); err != nil { 6427 + return err 6428 + } 6429 + 6430 + // t.Branch (string) (string) 6431 + if len("branch") > 1000000 { 6432 + return xerrors.Errorf("Value in field \"branch\" was too long") 6433 + } 6434 + 6435 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("branch"))); err != nil { 6436 + return err 6437 + } 6438 + if _, err := cw.WriteString(string("branch")); err != nil { 6439 + return err 6440 + } 6441 + 6442 + if len(t.Branch) > 1000000 { 6443 + return xerrors.Errorf("Value in field t.Branch was too long") 6444 + } 6445 + 6446 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Branch))); err != nil { 6447 + return err 6448 + } 6449 + if _, err := cw.WriteString(string(t.Branch)); err != nil { 6450 + return err 6451 + } 6452 + return nil 6453 + } 6454 + 6455 + func (t *RepoPull_Target) UnmarshalCBOR(r io.Reader) (err error) { 6456 + *t = RepoPull_Target{} 6457 + 6458 + cr := cbg.NewCborReader(r) 6459 + 6460 + maj, extra, err := cr.ReadHeader() 6461 + if err != nil { 6462 + return err 6463 + } 6464 + defer func() { 6465 + if err == io.EOF { 6466 + err = io.ErrUnexpectedEOF 6467 + } 6468 + }() 6469 + 6470 + if maj != cbg.MajMap { 6471 + return fmt.Errorf("cbor input should be of type map") 6472 + } 6473 + 6474 + if extra > cbg.MaxLength { 6475 + return fmt.Errorf("RepoPull_Target: map struct too large (%d)", extra) 6476 + } 6477 + 6478 + n := extra 6479 + 6480 + nameBuf := make([]byte, 6) 6481 + for i := uint64(0); i < n; i++ { 6482 + nameLen, ok, err := cbg.ReadFullStringIntoBuf(cr, nameBuf, 1000000) 6483 + if err != nil { 6484 + return err 6485 + } 6486 + 6487 + if !ok { 6488 + // Field doesn't exist on this type, so ignore it 6489 + if err := cbg.ScanForLinks(cr, func(cid.Cid) {}); err != nil { 6490 + return err 6491 + } 6492 + continue 6493 + } 6494 + 6495 + switch string(nameBuf[:nameLen]) { 6496 + // t.Repo (string) (string) 6497 + case "repo": 6498 + 6499 + { 6500 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 6501 + if err != nil { 6502 + return err 6503 + } 6504 + 6505 + t.Repo = string(sval) 6506 + } 6507 + // t.Branch (string) (string) 6508 + case "branch": 6509 + 6510 + { 6511 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 6512 + if err != nil { 6513 + return err 6514 + } 6515 + 6516 + t.Branch = string(sval) 6517 + } 6518 + 6519 + default: 6520 + // Field doesn't exist on this type, so ignore it 6521 + if err := cbg.ScanForLinks(r, func(cid.Cid) {}); err != nil { 6522 + return err 6523 + } 6524 + } 6525 + } 6526 + 6527 + return nil 6528 + } 6395 6529 func (t *RepoPull) MarshalCBOR(w io.Writer) error { 6396 6530 if t == nil { 6397 6531 _, err := w.Write(cbg.CborNull) ··· 6399 6533 } 6400 6534 6401 6535 cw := cbg.NewCborWriter(w) 6402 - fieldCount := 8 6536 + fieldCount := 7 6403 6537 6404 6538 if t.Body == nil { 6405 6539 fieldCount-- ··· 6529 6663 } 6530 6664 } 6531 6665 6532 - // t.CreatedAt (string) (string) 6533 - if len("createdAt") > 1000000 { 6534 - return xerrors.Errorf("Value in field \"createdAt\" was too long") 6666 + // t.Target (tangled.RepoPull_Target) (struct) 6667 + if len("target") > 1000000 { 6668 + return xerrors.Errorf("Value in field \"target\" was too long") 6535 6669 } 6536 6670 6537 - if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("createdAt"))); err != nil { 6671 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("target"))); err != nil { 6538 6672 return err 6539 6673 } 6540 - if _, err := cw.WriteString(string("createdAt")); err != nil { 6674 + if _, err := cw.WriteString(string("target")); err != nil { 6541 6675 return err 6542 6676 } 6543 6677 6544 - if len(t.CreatedAt) > 1000000 { 6545 - return xerrors.Errorf("Value in field t.CreatedAt was too long") 6546 - } 6547 - 6548 - if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.CreatedAt))); err != nil { 6549 - return err 6550 - } 6551 - if _, err := cw.WriteString(string(t.CreatedAt)); err != nil { 6678 + if err := t.Target.MarshalCBOR(cw); err != nil { 6552 6679 return err 6553 6680 } 6554 6681 6555 - // t.TargetRepo (string) (string) 6556 - if len("targetRepo") > 1000000 { 6557 - return xerrors.Errorf("Value in field \"targetRepo\" was too long") 6682 + // t.CreatedAt (string) (string) 6683 + if len("createdAt") > 1000000 { 6684 + return xerrors.Errorf("Value in field \"createdAt\" was too long") 6558 6685 } 6559 6686 6560 - if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("targetRepo"))); err != nil { 6687 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("createdAt"))); err != nil { 6561 6688 return err 6562 6689 } 6563 - if _, err := cw.WriteString(string("targetRepo")); err != nil { 6690 + if _, err := cw.WriteString(string("createdAt")); err != nil { 6564 6691 return err 6565 6692 } 6566 6693 6567 - if len(t.TargetRepo) > 1000000 { 6568 - return xerrors.Errorf("Value in field t.TargetRepo was too long") 6694 + if len(t.CreatedAt) > 1000000 { 6695 + return xerrors.Errorf("Value in field t.CreatedAt was too long") 6569 6696 } 6570 6697 6571 - if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.TargetRepo))); err != nil { 6698 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.CreatedAt))); err != nil { 6572 6699 return err 6573 6700 } 6574 - if _, err := cw.WriteString(string(t.TargetRepo)); err != nil { 6575 - return err 6576 - } 6577 - 6578 - // t.TargetBranch (string) (string) 6579 - if len("targetBranch") > 1000000 { 6580 - return xerrors.Errorf("Value in field \"targetBranch\" was too long") 6581 - } 6582 - 6583 - if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("targetBranch"))); err != nil { 6584 - return err 6585 - } 6586 - if _, err := cw.WriteString(string("targetBranch")); err != nil { 6587 - return err 6588 - } 6589 - 6590 - if len(t.TargetBranch) > 1000000 { 6591 - return xerrors.Errorf("Value in field t.TargetBranch was too long") 6592 - } 6593 - 6594 - if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.TargetBranch))); err != nil { 6595 - return err 6596 - } 6597 - if _, err := cw.WriteString(string(t.TargetBranch)); err != nil { 6701 + if _, err := cw.WriteString(string(t.CreatedAt)); err != nil { 6598 6702 return err 6599 6703 } 6600 6704 return nil ··· 6625 6729 6626 6730 n := extra 6627 6731 6628 - nameBuf := make([]byte, 12) 6732 + nameBuf := make([]byte, 9) 6629 6733 for i := uint64(0); i < n; i++ { 6630 6734 nameLen, ok, err := cbg.ReadFullStringIntoBuf(cr, nameBuf, 1000000) 6631 6735 if err != nil { ··· 6715 6819 } 6716 6820 6717 6821 } 6718 - // t.CreatedAt (string) (string) 6719 - case "createdAt": 6822 + // t.Target (tangled.RepoPull_Target) (struct) 6823 + case "target": 6720 6824 6721 6825 { 6722 - sval, err := cbg.ReadStringWithMax(cr, 1000000) 6723 - if err != nil { 6724 - return err 6725 - } 6726 6826 6727 - t.CreatedAt = string(sval) 6728 - } 6729 - // t.TargetRepo (string) (string) 6730 - case "targetRepo": 6731 - 6732 - { 6733 - sval, err := cbg.ReadStringWithMax(cr, 1000000) 6827 + b, err := cr.ReadByte() 6734 6828 if err != nil { 6735 6829 return err 6736 6830 } 6831 + if b != cbg.CborNull[0] { 6832 + if err := cr.UnreadByte(); err != nil { 6833 + return err 6834 + } 6835 + t.Target = new(RepoPull_Target) 6836 + if err := t.Target.UnmarshalCBOR(cr); err != nil { 6837 + return xerrors.Errorf("unmarshaling t.Target pointer: %w", err) 6838 + } 6839 + } 6737 6840 6738 - t.TargetRepo = string(sval) 6739 6841 } 6740 - // t.TargetBranch (string) (string) 6741 - case "targetBranch": 6842 + // t.CreatedAt (string) (string) 6843 + case "createdAt": 6742 6844 6743 6845 { 6744 6846 sval, err := cbg.ReadStringWithMax(cr, 1000000) ··· 6746 6848 return err 6747 6849 } 6748 6850 6749 - t.TargetBranch = string(sval) 6851 + t.CreatedAt = string(sval) 6750 6852 } 6751 6853 6752 6854 default:
+7 -2
api/tangled/repopull.go
··· 22 22 CreatedAt string `json:"createdAt" cborgen:"createdAt"` 23 23 Patch string `json:"patch" cborgen:"patch"` 24 24 Source *RepoPull_Source `json:"source,omitempty" cborgen:"source,omitempty"` 25 - TargetBranch string `json:"targetBranch" cborgen:"targetBranch"` 26 - TargetRepo string `json:"targetRepo" cborgen:"targetRepo"` 25 + Target *RepoPull_Target `json:"target" cborgen:"target"` 27 26 Title string `json:"title" cborgen:"title"` 28 27 } 29 28 ··· 33 32 Repo *string `json:"repo,omitempty" cborgen:"repo,omitempty"` 34 33 Sha string `json:"sha" cborgen:"sha"` 35 34 } 35 + 36 + // RepoPull_Target is a "target" in the sh.tangled.repo.pull schema. 37 + type RepoPull_Target struct { 38 + Branch string `json:"branch" cborgen:"branch"` 39 + Repo string `json:"repo" cborgen:"repo"` 40 + }
+4 -2
appview/db/pulls.go
··· 94 94 Title: p.Title, 95 95 Body: &p.Body, 96 96 CreatedAt: p.Created.Format(time.RFC3339), 97 - TargetRepo: p.RepoAt.String(), 98 - TargetBranch: p.TargetBranch, 97 + Target: &tangled.RepoPull_Target{ 98 + Repo: p.RepoAt.String(), 99 + Branch: p.TargetBranch, 100 + }, 99 101 Patch: p.LatestPatch(), 100 102 Source: source, 101 103 }
+8 -4
appview/pulls/pulls.go
··· 1031 1031 Record: &lexutil.LexiconTypeDecoder{ 1032 1032 Val: &tangled.RepoPull{ 1033 1033 Title: title, 1034 - TargetRepo: string(f.RepoAt()), 1035 - TargetBranch: targetBranch, 1034 + Target: &tangled.RepoPull_Target{ 1035 + Repo: string(f.RepoAt()), 1036 + Branch: targetBranch, 1037 + }, 1036 1038 Patch: patch, 1037 1039 Source: recordPullSource, 1038 1040 }, ··· 1592 1594 Record: &lexutil.LexiconTypeDecoder{ 1593 1595 Val: &tangled.RepoPull{ 1594 1596 Title: pull.Title, 1595 - TargetRepo: string(f.RepoAt()), 1596 - TargetBranch: pull.TargetBranch, 1597 + Target: &tangled.RepoPull_Target{ 1598 + Repo: string(f.RepoAt()), 1599 + Branch: pull.TargetBranch, 1600 + }, 1597 1601 Patch: patch, // new patch 1598 1602 Source: recordPullSource, 1599 1603 },
+1
cmd/gen.go
··· 45 45 tangled.RepoPull{}, 46 46 tangled.RepoPullComment{}, 47 47 tangled.RepoPull_Source{}, 48 + tangled.RepoPull_Target{}, 48 49 tangled.RepoPullStatus{}, 49 50 tangled.Spindle{}, 50 51 tangled.SpindleMember{},
+20 -8
lexicons/pulls/pull.json
··· 10 10 "record": { 11 11 "type": "object", 12 12 "required": [ 13 - "targetRepo", 14 - "targetBranch", 13 + "target", 15 14 "title", 16 15 "patch", 17 16 "createdAt" 18 17 ], 19 18 "properties": { 20 - "targetRepo": { 21 - "type": "string", 22 - "format": "at-uri" 23 - }, 24 - "targetBranch": { 25 - "type": "string" 19 + "target": { 20 + "type": "ref", 21 + "ref": "#target" 26 22 }, 27 23 "title": { 28 24 "type": "string" ··· 41 37 "type": "string", 42 38 "format": "datetime" 43 39 } 40 + } 41 + } 42 + }, 43 + "target": { 44 + "type": "object", 45 + "required": [ 46 + "repo", 47 + "branch" 48 + ], 49 + "properties": { 50 + "repo": { 51 + "type": "string", 52 + "format": "at-uri" 53 + }, 54 + "branch": { 55 + "type": "string" 44 56 } 45 57 } 46 58 },