diff --git a/api/tangled/cbor_gen.go b/api/tangled/cbor_gen.go index 907d640dd..2e180c73a 100644 --- a/api/tangled/cbor_gen.go +++ b/api/tangled/cbor_gen.go @@ -6821,6 +6821,266 @@ func (t *KnotMember) UnmarshalCBOR(r io.Reader) (err error) { return nil } +func (t *KnotMemberAcceptance) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } + + cw := cbg.NewCborWriter(w) + + if _, err := cw.Write([]byte{162}); err != nil { + return err + } + + // t.LexiconTypeID (string) (string) + if len("$type") > 1000000 { + return xerrors.Errorf("Value in field \"$type\" was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("$type"))); err != nil { + return err + } + if _, err := cw.WriteString(string("$type")); err != nil { + return err + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.knot.memberAcceptance"))); err != nil { + return err + } + if _, err := cw.WriteString(string("sh.tangled.knot.memberAcceptance")); err != nil { + return err + } + + // t.CreatedAt (string) (string) + if len("createdAt") > 1000000 { + return xerrors.Errorf("Value in field \"createdAt\" was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("createdAt"))); err != nil { + return err + } + if _, err := cw.WriteString(string("createdAt")); err != nil { + return err + } + + if len(t.CreatedAt) > 1000000 { + return xerrors.Errorf("Value in field t.CreatedAt was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.CreatedAt))); err != nil { + return err + } + if _, err := cw.WriteString(string(t.CreatedAt)); err != nil { + return err + } + return nil +} + +func (t *KnotMemberAcceptance) UnmarshalCBOR(r io.Reader) (err error) { + *t = KnotMemberAcceptance{} + + cr := cbg.NewCborReader(r) + + maj, extra, err := cr.ReadHeader() + if err != nil { + return err + } + defer func() { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + }() + + if maj != cbg.MajMap { + return fmt.Errorf("cbor input should be of type map") + } + + if extra > cbg.MaxLength { + return fmt.Errorf("KnotMemberAcceptance: map struct too large (%d)", extra) + } + + n := extra + + nameBuf := make([]byte, 9) + for i := uint64(0); i < n; i++ { + nameLen, ok, err := cbg.ReadFullStringIntoBuf(cr, nameBuf, 1000000) + if err != nil { + return err + } + + if !ok { + // Field doesn't exist on this type, so ignore it + if err := cbg.ScanForLinks(cr, func(cid.Cid) {}); err != nil { + return err + } + continue + } + + switch string(nameBuf[:nameLen]) { + // t.LexiconTypeID (string) (string) + case "$type": + + { + sval, err := cbg.ReadStringWithMax(cr, 1000000) + if err != nil { + return err + } + + t.LexiconTypeID = string(sval) + } + // t.CreatedAt (string) (string) + case "createdAt": + + { + sval, err := cbg.ReadStringWithMax(cr, 1000000) + if err != nil { + return err + } + + t.CreatedAt = string(sval) + } + + default: + // Field doesn't exist on this type, so ignore it + if err := cbg.ScanForLinks(r, func(cid.Cid) {}); err != nil { + return err + } + } + } + + return nil +} +func (t *KnotMemberInvite) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } + + cw := cbg.NewCborWriter(w) + + if _, err := cw.Write([]byte{162}); err != nil { + return err + } + + // t.LexiconTypeID (string) (string) + if len("$type") > 1000000 { + return xerrors.Errorf("Value in field \"$type\" was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("$type"))); err != nil { + return err + } + if _, err := cw.WriteString(string("$type")); err != nil { + return err + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.knot.memberInvite"))); err != nil { + return err + } + if _, err := cw.WriteString(string("sh.tangled.knot.memberInvite")); err != nil { + return err + } + + // t.CreatedAt (string) (string) + if len("createdAt") > 1000000 { + return xerrors.Errorf("Value in field \"createdAt\" was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("createdAt"))); err != nil { + return err + } + if _, err := cw.WriteString(string("createdAt")); err != nil { + return err + } + + if len(t.CreatedAt) > 1000000 { + return xerrors.Errorf("Value in field t.CreatedAt was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.CreatedAt))); err != nil { + return err + } + if _, err := cw.WriteString(string(t.CreatedAt)); err != nil { + return err + } + return nil +} + +func (t *KnotMemberInvite) UnmarshalCBOR(r io.Reader) (err error) { + *t = KnotMemberInvite{} + + cr := cbg.NewCborReader(r) + + maj, extra, err := cr.ReadHeader() + if err != nil { + return err + } + defer func() { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + }() + + if maj != cbg.MajMap { + return fmt.Errorf("cbor input should be of type map") + } + + if extra > cbg.MaxLength { + return fmt.Errorf("KnotMemberInvite: map struct too large (%d)", extra) + } + + n := extra + + nameBuf := make([]byte, 9) + for i := uint64(0); i < n; i++ { + nameLen, ok, err := cbg.ReadFullStringIntoBuf(cr, nameBuf, 1000000) + if err != nil { + return err + } + + if !ok { + // Field doesn't exist on this type, so ignore it + if err := cbg.ScanForLinks(cr, func(cid.Cid) {}); err != nil { + return err + } + continue + } + + switch string(nameBuf[:nameLen]) { + // t.LexiconTypeID (string) (string) + case "$type": + + { + sval, err := cbg.ReadStringWithMax(cr, 1000000) + if err != nil { + return err + } + + t.LexiconTypeID = string(sval) + } + // t.CreatedAt (string) (string) + case "createdAt": + + { + sval, err := cbg.ReadStringWithMax(cr, 1000000) + if err != nil { + return err + } + + t.CreatedAt = string(sval) + } + + default: + // Field doesn't exist on this type, so ignore it + if err := cbg.ScanForLinks(r, func(cid.Cid) {}); err != nil { + return err + } + } + } + + return nil +} func (t *LabelDefinition) MarshalCBOR(w io.Writer) error { if t == nil { _, err := w.Write(cbg.CborNull) @@ -12081,6 +12341,266 @@ func (t *RepoCollaborator) UnmarshalCBOR(r io.Reader) (err error) { return nil } +func (t *RepoCollaboratorAcceptance) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } + + cw := cbg.NewCborWriter(w) + + if _, err := cw.Write([]byte{162}); err != nil { + return err + } + + // t.LexiconTypeID (string) (string) + if len("$type") > 1000000 { + return xerrors.Errorf("Value in field \"$type\" was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("$type"))); err != nil { + return err + } + if _, err := cw.WriteString(string("$type")); err != nil { + return err + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.repo.collaboratorAcceptance"))); err != nil { + return err + } + if _, err := cw.WriteString(string("sh.tangled.repo.collaboratorAcceptance")); err != nil { + return err + } + + // t.CreatedAt (string) (string) + if len("createdAt") > 1000000 { + return xerrors.Errorf("Value in field \"createdAt\" was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("createdAt"))); err != nil { + return err + } + if _, err := cw.WriteString(string("createdAt")); err != nil { + return err + } + + if len(t.CreatedAt) > 1000000 { + return xerrors.Errorf("Value in field t.CreatedAt was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.CreatedAt))); err != nil { + return err + } + if _, err := cw.WriteString(string(t.CreatedAt)); err != nil { + return err + } + return nil +} + +func (t *RepoCollaboratorAcceptance) UnmarshalCBOR(r io.Reader) (err error) { + *t = RepoCollaboratorAcceptance{} + + cr := cbg.NewCborReader(r) + + maj, extra, err := cr.ReadHeader() + if err != nil { + return err + } + defer func() { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + }() + + if maj != cbg.MajMap { + return fmt.Errorf("cbor input should be of type map") + } + + if extra > cbg.MaxLength { + return fmt.Errorf("RepoCollaboratorAcceptance: map struct too large (%d)", extra) + } + + n := extra + + nameBuf := make([]byte, 9) + for i := uint64(0); i < n; i++ { + nameLen, ok, err := cbg.ReadFullStringIntoBuf(cr, nameBuf, 1000000) + if err != nil { + return err + } + + if !ok { + // Field doesn't exist on this type, so ignore it + if err := cbg.ScanForLinks(cr, func(cid.Cid) {}); err != nil { + return err + } + continue + } + + switch string(nameBuf[:nameLen]) { + // t.LexiconTypeID (string) (string) + case "$type": + + { + sval, err := cbg.ReadStringWithMax(cr, 1000000) + if err != nil { + return err + } + + t.LexiconTypeID = string(sval) + } + // t.CreatedAt (string) (string) + case "createdAt": + + { + sval, err := cbg.ReadStringWithMax(cr, 1000000) + if err != nil { + return err + } + + t.CreatedAt = string(sval) + } + + default: + // Field doesn't exist on this type, so ignore it + if err := cbg.ScanForLinks(r, func(cid.Cid) {}); err != nil { + return err + } + } + } + + return nil +} +func (t *RepoCollaboratorInvite) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } + + cw := cbg.NewCborWriter(w) + + if _, err := cw.Write([]byte{162}); err != nil { + return err + } + + // t.LexiconTypeID (string) (string) + if len("$type") > 1000000 { + return xerrors.Errorf("Value in field \"$type\" was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("$type"))); err != nil { + return err + } + if _, err := cw.WriteString(string("$type")); err != nil { + return err + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("sh.tangled.repo.collaboratorInvite"))); err != nil { + return err + } + if _, err := cw.WriteString(string("sh.tangled.repo.collaboratorInvite")); err != nil { + return err + } + + // t.CreatedAt (string) (string) + if len("createdAt") > 1000000 { + return xerrors.Errorf("Value in field \"createdAt\" was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("createdAt"))); err != nil { + return err + } + if _, err := cw.WriteString(string("createdAt")); err != nil { + return err + } + + if len(t.CreatedAt) > 1000000 { + return xerrors.Errorf("Value in field t.CreatedAt was too long") + } + + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.CreatedAt))); err != nil { + return err + } + if _, err := cw.WriteString(string(t.CreatedAt)); err != nil { + return err + } + return nil +} + +func (t *RepoCollaboratorInvite) UnmarshalCBOR(r io.Reader) (err error) { + *t = RepoCollaboratorInvite{} + + cr := cbg.NewCborReader(r) + + maj, extra, err := cr.ReadHeader() + if err != nil { + return err + } + defer func() { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + }() + + if maj != cbg.MajMap { + return fmt.Errorf("cbor input should be of type map") + } + + if extra > cbg.MaxLength { + return fmt.Errorf("RepoCollaboratorInvite: map struct too large (%d)", extra) + } + + n := extra + + nameBuf := make([]byte, 9) + for i := uint64(0); i < n; i++ { + nameLen, ok, err := cbg.ReadFullStringIntoBuf(cr, nameBuf, 1000000) + if err != nil { + return err + } + + if !ok { + // Field doesn't exist on this type, so ignore it + if err := cbg.ScanForLinks(cr, func(cid.Cid) {}); err != nil { + return err + } + continue + } + + switch string(nameBuf[:nameLen]) { + // t.LexiconTypeID (string) (string) + case "$type": + + { + sval, err := cbg.ReadStringWithMax(cr, 1000000) + if err != nil { + return err + } + + t.LexiconTypeID = string(sval) + } + // t.CreatedAt (string) (string) + case "createdAt": + + { + sval, err := cbg.ReadStringWithMax(cr, 1000000) + if err != nil { + return err + } + + t.CreatedAt = string(sval) + } + + default: + // Field doesn't exist on this type, so ignore it + if err := cbg.ScanForLinks(r, func(cid.Cid) {}); err != nil { + return err + } + } + } + + return nil +} func (t *RepoIssue) MarshalCBOR(w io.Writer) error { if t == nil { _, err := w.Write(cbg.CborNull) diff --git a/api/tangled/cidescribeWorkflowDefinition.go b/api/tangled/cidescribeWorkflowDefinition.go index 6a79446d5..9be09f7c3 100644 --- a/api/tangled/cidescribeWorkflowDefinition.go +++ b/api/tangled/cidescribeWorkflowDefinition.go @@ -18,9 +18,9 @@ const ( type CiDescribeWorkflowDefinition_Output struct { // derived: Whether the workflow definition is derived from this repository at all. When false, no commit-to-commit comparison is meaningful (e.g. definitions managed externally), and callers should not surface change warnings. Derived bool `json:"derived" cborgen:"derived"` - // hash: Opaque fingerprint of the workflow definition as resolved by the spindle; for git-derived spindles this covers the workflow files at the commit, not their post-compilation expansion. Only equality is defined: identical resolved definitions MUST produce identical hashes for a given spindle deployment, and differing definitions SHOULD produce differing hashes. Absent when derived is false. + // hash: Fingerprint of the workflow definition as resolved by the spindle. Absent when derived is false. Hash *string `json:"hash,omitempty" cborgen:"hash,omitempty"` - // workflows: Names or paths of the effective workflow files that produced the hash, for display purposes. + // workflows: Names or paths of the effective workflow files that produced the hash. Workflows []string `json:"workflows,omitempty" cborgen:"workflows,omitempty"` } @@ -28,7 +28,7 @@ type CiDescribeWorkflowDefinition_Output struct { // // repo: Target repository DID the workflow definition belongs to. // sha: Commit SHA to resolve the workflow definition at -// sourceRepo: Repository DID to resolve workflow definitions from, if different from the target repo (e.g. a fork for a fork-based pull request). +// sourceRepo: Repository DID to resolve workflow definitions from, if different from the target repo func CiDescribeWorkflowDefinition(ctx context.Context, c util.LexClient, repo string, sha string, sourceRepo string) (*CiDescribeWorkflowDefinition_Output, error) { var out CiDescribeWorkflowDefinition_Output diff --git a/api/tangled/knotmemberAcceptance.go b/api/tangled/knotmemberAcceptance.go new file mode 100644 index 000000000..0d4bb7ea1 --- /dev/null +++ b/api/tangled/knotmemberAcceptance.go @@ -0,0 +1,23 @@ +// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT. + +package tangled + +// schema: sh.tangled.knot.memberAcceptance + +import ( + "github.com/bluesky-social/indigo/lex/util" +) + +const ( + KnotMemberAcceptanceNSID = "sh.tangled.knot.memberAcceptance" +) + +func init() { + util.RegisterType("sh.tangled.knot.memberAcceptance", &KnotMemberAcceptance{}) +} // +// RECORDTYPE: KnotMemberAcceptance +type KnotMemberAcceptance struct { + LexiconTypeID string `json:"$type,const=sh.tangled.knot.memberAcceptance" cborgen:"$type,const=sh.tangled.knot.memberAcceptance"` + // createdAt: Invite acceptance timestamp + CreatedAt string `json:"createdAt" cborgen:"createdAt"` +} diff --git a/api/tangled/knotmemberInvite.go b/api/tangled/knotmemberInvite.go new file mode 100644 index 000000000..744495e72 --- /dev/null +++ b/api/tangled/knotmemberInvite.go @@ -0,0 +1,23 @@ +// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT. + +package tangled + +// schema: sh.tangled.knot.memberInvite + +import ( + "github.com/bluesky-social/indigo/lex/util" +) + +const ( + KnotMemberInviteNSID = "sh.tangled.knot.memberInvite" +) + +func init() { + util.RegisterType("sh.tangled.knot.memberInvite", &KnotMemberInvite{}) +} // +// RECORDTYPE: KnotMemberInvite +type KnotMemberInvite struct { + LexiconTypeID string `json:"$type,const=sh.tangled.knot.memberInvite" cborgen:"$type,const=sh.tangled.knot.memberInvite"` + // createdAt: Invite issue timestamp + CreatedAt string `json:"createdAt" cborgen:"createdAt"` +} diff --git a/api/tangled/repocollaboratorAcceptance.go b/api/tangled/repocollaboratorAcceptance.go new file mode 100644 index 000000000..626737296 --- /dev/null +++ b/api/tangled/repocollaboratorAcceptance.go @@ -0,0 +1,23 @@ +// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT. + +package tangled + +// schema: sh.tangled.repo.collaboratorAcceptance + +import ( + "github.com/bluesky-social/indigo/lex/util" +) + +const ( + RepoCollaboratorAcceptanceNSID = "sh.tangled.repo.collaboratorAcceptance" +) + +func init() { + util.RegisterType("sh.tangled.repo.collaboratorAcceptance", &RepoCollaboratorAcceptance{}) +} // +// RECORDTYPE: RepoCollaboratorAcceptance +type RepoCollaboratorAcceptance struct { + LexiconTypeID string `json:"$type,const=sh.tangled.repo.collaboratorAcceptance" cborgen:"$type,const=sh.tangled.repo.collaboratorAcceptance"` + // createdAt: Invite acceptance timestamp + CreatedAt string `json:"createdAt" cborgen:"createdAt"` +} diff --git a/api/tangled/repocollaboratorInvite.go b/api/tangled/repocollaboratorInvite.go new file mode 100644 index 000000000..d354a709d --- /dev/null +++ b/api/tangled/repocollaboratorInvite.go @@ -0,0 +1,23 @@ +// Code generated by cmd/lexgen (see Makefile's lexgen); DO NOT EDIT. + +package tangled + +// schema: sh.tangled.repo.collaboratorInvite + +import ( + "github.com/bluesky-social/indigo/lex/util" +) + +const ( + RepoCollaboratorInviteNSID = "sh.tangled.repo.collaboratorInvite" +) + +func init() { + util.RegisterType("sh.tangled.repo.collaboratorInvite", &RepoCollaboratorInvite{}) +} // +// RECORDTYPE: RepoCollaboratorInvite +type RepoCollaboratorInvite struct { + LexiconTypeID string `json:"$type,const=sh.tangled.repo.collaboratorInvite" cborgen:"$type,const=sh.tangled.repo.collaboratorInvite"` + // createdAt: Invite issue timestamp + CreatedAt string `json:"createdAt" cborgen:"createdAt"` +} diff --git a/cmd/cborgen/cborgen.go b/cmd/cborgen/cborgen.go index be77c40cc..4df8f7124 100644 --- a/cmd/cborgen/cborgen.go +++ b/cmd/cborgen/cborgen.go @@ -41,6 +41,8 @@ func main() { tangled.GraphVouch{}, tangled.Knot{}, tangled.KnotMember{}, + tangled.KnotMemberAcceptance{}, + tangled.KnotMemberInvite{}, tangled.LabelDefinition{}, tangled.LabelDefinition_ValueType{}, tangled.LabelOp{}, @@ -60,6 +62,8 @@ func main() { tangled.Repo{}, tangled.RepoArtifact{}, tangled.RepoCollaborator{}, + tangled.RepoCollaboratorAcceptance{}, + tangled.RepoCollaboratorInvite{}, tangled.RepoIssue{}, tangled.RepoIssueComment{}, tangled.RepoIssueState{}, diff --git a/lexicons/knot/memberAcceptance.json b/lexicons/knot/memberAcceptance.json new file mode 100644 index 000000000..95153f473 --- /dev/null +++ b/lexicons/knot/memberAcceptance.json @@ -0,0 +1,26 @@ +{ + "lexicon": 1, + "id": "sh.tangled.knot.memberAcceptance", + "needsCbor": true, + "needsType": true, + "defs": { + "main": { + "type": "record", + "description": "Acceptance of a knot's membership offer, w/ knot-DID as rkey", + "key": "any", + "record": { + "type": "object", + "required": [ + "createdAt" + ], + "properties": { + "createdAt": { + "type": "string", + "format": "datetime", + "description": "Invite acceptance timestamp" + } + } + } + } + } +} diff --git a/lexicons/knot/memberInvite.json b/lexicons/knot/memberInvite.json new file mode 100644 index 000000000..faf69b758 --- /dev/null +++ b/lexicons/knot/memberInvite.json @@ -0,0 +1,26 @@ +{ + "lexicon": 1, + "id": "sh.tangled.knot.memberInvite", + "needsCbor": true, + "needsType": true, + "defs": { + "main": { + "type": "record", + "description": "Offer of membership on this knot, w/ invitee-DID as rkey", + "key": "any", + "record": { + "type": "object", + "required": [ + "createdAt" + ], + "properties": { + "createdAt": { + "type": "string", + "format": "datetime", + "description": "Invite issue timestamp" + } + } + } + } + } +} diff --git a/lexicons/repo/collaboratorAcceptance.json b/lexicons/repo/collaboratorAcceptance.json new file mode 100644 index 000000000..4578a243f --- /dev/null +++ b/lexicons/repo/collaboratorAcceptance.json @@ -0,0 +1,26 @@ +{ + "lexicon": 1, + "id": "sh.tangled.repo.collaboratorAcceptance", + "needsCbor": true, + "needsType": true, + "defs": { + "main": { + "type": "record", + "description": "Acceptance of a repo's collaboration offer, w/ repo-DID as rkey", + "key": "any", + "record": { + "type": "object", + "required": [ + "createdAt" + ], + "properties": { + "createdAt": { + "type": "string", + "format": "datetime", + "description": "Invite acceptance timestamp" + } + } + } + } + } +} diff --git a/lexicons/repo/collaboratorInvite.json b/lexicons/repo/collaboratorInvite.json new file mode 100644 index 000000000..ac213e632 --- /dev/null +++ b/lexicons/repo/collaboratorInvite.json @@ -0,0 +1,26 @@ +{ + "lexicon": 1, + "id": "sh.tangled.repo.collaboratorInvite", + "needsCbor": true, + "needsType": true, + "defs": { + "main": { + "type": "record", + "description": "Offer of collaboration on this repo, w/ invitee-DID as rkey", + "key": "any", + "record": { + "type": "object", + "required": [ + "createdAt" + ], + "properties": { + "createdAt": { + "type": "string", + "format": "datetime", + "description": "Invite issue timestamp" + } + } + } + } + } +}