def METHOD_NAME(self, organization, scm_type='git', **kwargs):
    METHOD_NAME = PseudoNamespace(
        name=kwargs.get('name') or 'Project - {}'.format(random_title()),
        description=kwargs.get('description') or random_title(10),
        scm_type=scm_type,
        scm_url=kwargs.get('scm_url') or config.project_urls.get(scm_type, ''),
    )
    if organization is not None:
        METHOD_NAME.organization = organization.id
    if kwargs.get('credential'):
        METHOD_NAME.credential = kwargs.get('credential').id
    fields = (
        'scm_branch',
        'local_path',
        'scm_clean',
        'scm_delete_on_update',
        'scm_track_submodules',
        'scm_update_cache_timeout',
        'scm_update_on_launch',
        'scm_refspec',
        'allow_override',
        'signature_validation_credential',
    )
    update_payload(METHOD_NAME, fields, kwargs)
    METHOD_NAME = set_payload_foreign_key_args(METHOD_NAME, ('execution_environment', 'default_environment'), kwargs)
    return METHOD_NAME