class PullRequestCreated(mo.Model): class Meta: unknown = mo.EXCLUDE actor = mo.NestedModel(base_schemas.User) repository = mo.NestedModel(base_schemas.Repository) pullrequest = mo.NestedModel(base_schemas.PullRequest)
class ChangeLocation(mo.Model): class Meta: unknown = mo.EXCLUDE repository = mo.NestedModel(Repository) branch = mo.NestedModel(Branch) commit = mo.NestedModel(CommitHash)
class RepoPush(mo.Model): class Meta: unknown = mo.EXCLUDE actor = mo.NestedModel(base_schemas.User) repository = mo.NestedModel(base_schemas.Repository) push = mo.NestedModel(base_schemas.RepoPushData)
class PullRequestApproved(mo.Model): class Meta: unknown = mo.EXCLUDE actor = mo.NestedModel(base_schemas.User) repository = mo.NestedModel(base_schemas.Repository) pullrequest = mo.NestedModel(base_schemas.PullRequest) approval = mo.NestedModel(ApprovalInfo)
class MissingCompany(marshmallow.Model): name = marshmallow.fields.String() owner = marshmallow.NestedModel(MissingPerson) hr = marshmallow.NestedModel(MissingPerson, allow_none=True) workers = marshmallow.NestedModel(MissingPerson, many=True, allow_none=True) assets = marshmallow.fields.List(marshmallow.NestedModel(MissingPerson))
class Comment(mo.Model): class Meta: unknown = mo.EXCLUDE id = mo.fields.Int() parent = mo.NestedModel(ParentComment) content = mo.NestedModel(CommentContent) inline = mo.NestedModel(InlineComment) created_on = mo.fields.DateTime() updated_on = mo.fields.DateTime()
class Repository(mo.Model): class Meta: unknown = mo.EXCLUDE name = mo.fields.String() full_name = mo.fields.String() website = mo.fields.String(allow_none=True) uuid = mo.fields.String() owner = mo.NestedModel(User) project = mo.NestedModel(Project) is_private = mo.fields.Boolean()
class Participant(mo.Model): class Meta: unknown = mo.EXCLUDE role = mo.fields.String() participated_on = mo.fields.DateTime() approved = mo.fields.Boolean() user = mo.NestedModel(User)
class PullRequest(mo.Model): class Meta: unknown = mo.EXCLUDE id = mo.fields.Int() title = mo.fields.String() description = mo.fields.String() # TODO: Change this to enum. state = mo.fields.String() author = mo.NestedModel(User) source = mo.NestedModel(ChangeLocation) destination = mo.NestedModel(ChangeLocation) merge_commit = mo.NestedModel(CommitHash, allow_none=True) participants = mo.fields.List(mo.NestedModel(Participant)) reviewers = mo.fields.List(mo.NestedModel(User)) closed_by = mo.NestedModel(User, allow_none=True) reason = mo.fields.String() created_on = mo.fields.DateTime() updated_on = mo.fields.DateTime() comment_count = mo.fields.Int(allow_none=True) task_count = mo.fields.Int(allow_none=True) close_source_branch = mo.fields.Boolean(allow_none=True)
class ListOfFooModel(mo.Model): data = mo.NestedModel(FooModel, many=True)
class PullRequestCommentCreated(mo.Model): actor = mo.NestedModel(base_schemas.User) repository = mo.NestedModel(base_schemas.Repository) pullrequest = mo.NestedModel(base_schemas.PullRequest) comment = mo.NestedModel(base_schemas.Comment)
class ApprovalInfo(mo.Model): date = mo.fields.DateTime() user = mo.NestedModel(base_schemas.User)
class BContext(marshmallow.Model): test_field = marshmallow.fields.Str() a = marshmallow.NestedModel(AContext)
class C(marshmallow.Model): a = marshmallow.NestedModel(A, many=True)
class B(marshmallow.Model): test_field = marshmallow.fields.Str(allow_none=True) a = marshmallow.NestedModel(A, allow_none=False, required=True)
class RepoPushData(mo.Model): class Meta: unknown = mo.EXCLUDE changes = mo.fields.List(mo.NestedModel(RepoPushChange))
class WrongNested(marshmallow.Model): name = marshmallow.fields.String() friend = marshmallow.NestedModel("UknownNested")
class SelfNested(marshmallow.Model): name = marshmallow.fields.String() friend = marshmallow.NestedModel("SelfNested")