swh-loader-git
The Software Heritage Git Loader is a tool and a library to walk a local Git repository and inject into the SWH dataset all contained files that weren't known before.
The main entry points are:
-
:class:
swh.loader.git.loader.GitLoader
for the main loader which can ingest either local or remote git repository's contents. This is the main implementation deployed in production. -
:class:
swh.loader.git.from_disk.GitLoaderFromDisk
which ingests only local git clone repository. -
:class:
swh.loader.git.loader.GitLoaderFromArchive
which ingests a git repository wrapped in an archive.
License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
See top-level LICENSE file for the full text of the GNU General Public License along with this program.
Dependencies
Runtime
- python3
- python3-dulwich
- python3-retrying
- python3-swh.core
- python3-swh.model
- python3-swh.storage
- python3-swh.scheduler
Test
- python3-nose
Requirements
- implementation language, Python3
- coding guidelines: conform to PEP8
- Git access: via dulwich
CLI Run
You can run the loader from a remote origin (loader) or from an origin on disk (from_disk) directly by calling:
swh loader -C <config-file> run git <git-repository-url>
or "git_disk".
Configuration sample
/tmp/git.yml:
storage:
cls: remote
args:
url: http://localhost:5002/