code: def upsert_project(self, project, id=None, description=None, entity=None):
          
          mutation = gql('''
          mutation UpsertModel($name: String!, $id: String, $entity: String!, $description: String, $repo: String)  {
              upsertModel(input: { id: $id, name: $name, entityName: $entity, description: $description, repo: $repo }) {
                  model {
                      name
                      description
                  }
              }
          }
          ''')
          response = self.gql(mutation, variable_values={
              'name': self.format_project(project), 'entity': entity or self.settings('entity'),
              'description': description, 'repo': self.git.remote_url, 'id': id})
          return response['upsertModel']['model']
docs: Create a new project
  
          Args:
              project (str): The project to create
              description (str, optional): A description of this project
              entity (str, optional): The entity to scope this project to.