First, let's create another StructuredNode to represent repositories. In this exercise, repositories are only characterized by their name, so the Repository class only contains one property:
class Repository(StructuredNode):
name = StringProperty()
Next, we are going to let neomodel know about the relationships between users and repositories. This is done in order to filter users or repositories depending on whether a relationship between them exists.
We want to keep track of both repository ownership and repository contributions. Regarding the contributions, we want to know when the user contributed to that repository. Therefore, we will create two relationship types: OWNS and CONTRIBUTED_TO.