Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/git/tasks.py
# Copyright (C) 2015-2018 The Software Heritage developers | # Copyright (C) 2015-2019 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import dateutil.parser | import dateutil.parser | ||||
from celery import current_app as app | from celery import current_app as app | ||||
from swh.loader.git.from_disk import GitLoaderFromDisk, GitLoaderFromArchive | from swh.loader.git.from_disk import GitLoaderFromDisk, GitLoaderFromArchive | ||||
from swh.loader.git.loader import GitLoader | from swh.loader.git.loader import GitLoader | ||||
@app.task(name=__name__ + '.UpdateGitRepository') | @app.task(name=__name__ + '.UpdateGitRepository') | ||||
def update_git_repository(repo_url, base_url=None): | def update_git_repository(repo_url, base_url=None): | ||||
"""Import a git repository from a remote location""" | """Import a git repository from a remote location""" | ||||
loader = GitLoader() | loader = GitLoader(repo_url, base_url=base_url) | ||||
return loader.load(repo_url, base_url=base_url) | return loader.load() | ||||
@app.task(name=__name__ + '.LoadDiskGitRepository') | @app.task(name=__name__ + '.LoadDiskGitRepository') | ||||
def load_git_from_dir(origin_url, directory, date): | def load_git_from_dir(origin_url, directory, date): | ||||
"""Import a git repository from a local repository | """Import a git repository from a local repository | ||||
Import a git repository, cloned in `directory` from `origin_url` at | Import a git repository, cloned in `directory` from `origin_url` at | ||||
`date`. | `date`. | ||||
""" | """ | ||||
loader = GitLoaderFromDisk() | visit_date = dateutil.parser.parse(date) | ||||
return loader.load(origin_url, directory, dateutil.parser.parse(date)) | loader = GitLoaderFromDisk( | ||||
origin_url, directory=directory, visit_date=visit_date) | |||||
return loader.load() | |||||
@app.task(name=__name__ + '.UncompressAndLoadDiskGitRepository') | @app.task(name=__name__ + '.UncompressAndLoadDiskGitRepository') | ||||
def load_git_from_zip(origin_url, archive_path, date): | def load_git_from_zip(origin_url, archive_path, date): | ||||
"""Import a git repository from a zip archive | """Import a git repository from a zip archive | ||||
1. Uncompress an archive repository in a local and temporary folder | 1. Uncompress an archive repository in a local and temporary folder | ||||
2. Load it through the git disk loader | 2. Load it through the git disk loader | ||||
3. Clean up the temporary folder | 3. Clean up the temporary folder | ||||
""" | """ | ||||
loader = GitLoaderFromArchive() | visit_date = dateutil.parser.parse(date) | ||||
return loader.load( | loader = GitLoaderFromArchive( | ||||
origin_url, archive_path, dateutil.parser.parse(date)) | origin_url, archive_path=archive_path, visit_date=visit_date) | ||||
return loader.load() |