def METHOD_NAME(self, name='', description='', scm_type='git', scm_url='', scm_branch='', organization=Organization, credential=None, **kwargs):
    if credential:
        if isinstance(credential, Credential):
            if credential.ds.credential_type.namespace not in ('scm', 'insights'):
                credential = None  # ignore incompatible credential from HasCreate dependency injection
        elif credential in (Credential,):
            credential = (Credential, dict(credential_type=(True, dict(kind='scm'))))
        elif credential is True:
            credential = (Credential, dict(credential_type=(True, dict(kind='scm'))))
    self.create_and_update_dependencies(*filter_by_class((credential, Credential), (organization, Organization)))
    credential = self.ds.credential if credential else None
    organization = self.ds.organization if organization else None
    payload = self.payload(
        organization=organization,
        scm_type=scm_type,
        name=name,
        description=description,
        scm_url=scm_url,
        scm_branch=scm_branch,
        credential=credential,
        **kwargs
    )
    payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
    return payload