def _install_one(
    repo_url, branch, destination, commit='', patches=None,
    exclude_modules=None, include_modules=None, base=False, work_directory=''
):
    """ Install a third party odoo add-on

    :param string repo_url: url of the repo that contains the patch.
    :param string branch: name of the branch to checkout.
    :param string destination: the folder where the add-on should end up at.
    :param string commit: Optional commit rev to checkout to. If mentioned, that take over the branch
    :param string work_directory: the path to the directory of the yaml file.
    :param list patches: Optional list of patches to apply.
    """
    patches = patches or []
    patches = [
        core.FilePatch(file=patch['file'], work_directory=work_directory)
        if 'file' in patch else core.Patch(**patch)
        for patch in patches
    ]
    addon_cls = core.Base if base else core.Addon
    addon = addon_cls(
        repo_url, branch, commit=commit, patches=patches,
        exclude_modules=exclude_modules, include_modules=include_modules)
    addon.install(destination)
Install a third party odoo add-on

    :param string repo_url: url of the repo that contains the patch.
    :param string branch: name of the branch to checkout.
    :param string destination: the folder where the add-on should end up at.
    :param string commit: Optional commit rev to checkout to. If mentioned, that take over the branch
    :param string work_directory: the path to the directory of the yaml file.
    :param list patches: Optional list of patches to apply.