软件遗产列表器
swh.lister的Python项目详细描述
SWH列表器
这个来自软件遗产堆栈的组件旨在生成列表 各种公共开发平台上托管的软件来源及其url 或者包管理器。由于这些操作非常相似,它提供了一组 抽象通用软件源代码的python模块,列出行为。
它还提供了几个lister实现,包含在 以下是python模块:
swh.lister.bitbucket
swh.lister.debian
swh.lister.github
swh.lister.gitlab
swh.lister.gnu
swh.lister.pypi
swh.lister.npm
swh.lister.phabricator
swh.lister.cran
swh.lister.cgit
swh.lister.packagist
依赖关系
所有必需的依赖项都可以在位于 在存储库的根目录中。
本地部署
列表器配置
到目前为止,每个lister都是通过软件遗产实现的(github
,gitlab
,debian
,pypi
,npm
)
必须按照以下说明进行配置(请注意,您必须更换
<lister_name>
由上面介绍的一个lister名称命名)。
准备步骤
mkdir ~/.config/swh/ ~/.cache/swh/lister/<lister_name>/
- 创建配置文件
~/.config/swh/lister_<lister_name>.yml
- 引导数据库实例架构
$ createdb lister-<lister_name> $ python3 -m swh.lister.cli --db-url postgres:///lister-<lister_name> <lister_name>
注意:这将引导lister运行所需的最小数据集。
配置文件示例
所有列表器共享到加载项文件的最小配置~/.config/swh/lister_<lister_name>.yml
:
storage: cls: 'remote' args: url: 'http://localhost:5002/' scheduler: cls: 'remote' args: url: 'http://localhost:5008/' lister: cls: 'local' args: # see http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls db: 'postgresql:///lister-<lister_name>' credentials: [] cache_responses: True cache_dir: /home/user/.cache/swh/lister/<lister_name>/
注意:这要求存储(5002)和计划程序(5008)服务在本地运行
Lister Github
配置后,可以使用python3
脚本中的以下指令执行github lister:
import logging from swh.lister.github.tasks import range_github_lister logging.basicConfig(level=logging.DEBUG) range_github_lister(364, 365) ...
Lister Gitlab
配置后,您可以使用下面python3
脚本中详细说明执行gitlab lister:
import logging from swh.lister.gitlab.tasks import range_gitlab_lister logging.basicConfig(level=logging.DEBUG) range_gitlab_lister(1, 2, { 'instance': 'debian', 'api_baseurl': 'https://salsa.debian.org/api/v4', 'sort': 'asc', 'per_page': 20 })
import logging from swh.lister.gitlab.tasks import full_gitlab_relister logging.basicConfig(level=logging.DEBUG) full_gitlab_relister({ 'instance': '0xacab', 'api_baseurl': 'https://0xacab.org/api/v4', 'sort': 'asc', 'per_page': 20 })
import logging from swh.lister.gitlab.tasks import incremental_gitlab_lister logging.basicConfig(level=logging.DEBUG) incremental_gitlab_lister({ 'instance': 'freedesktop.org', 'api_baseurl': 'https://gitlab.freedesktop.org/api/v4', 'sort': 'asc', 'per_page': 20 })
Lister Debian
配置后,您可以使用python3
脚本中的以下指令执行Debian Lister:
import logging from swh.lister.debian.tasks import debian_lister logging.basicConfig(level=logging.DEBUG) debian_lister('Debian')
李斯特Pypi
配置后,可以使用python3
脚本中的以下指令执行pypi lister:
import logging from swh.lister.pypi.tasks import pypi_lister logging.basicConfig(level=logging.DEBUG) pypi_lister()
列表器npm
配置后,可以使用python3
repl中的以下指令执行npm lister:
import logging from swh.lister.npm.tasks import npm_lister logging.basicConfig(level=logging.DEBUG) npm_lister()
监听器扬声器
配置后,可以使用python3
脚本中的以下指令执行phabricator lister:
import logging from swh.lister.phabricator.tasks import incremental_phabricator_lister logging.basicConfig(level=logging.DEBUG) incremental_phabricator_lister(forge_url='https://forge.softwareheritage.org', api_token='XXXX')
列表器gnu
配置后,可以使用python3
脚本中的以下指令执行pypi lister:
import logging from swh.lister.gnu.tasks import gnu_lister logging.basicConfig(level=logging.DEBUG) gnu_lister()
李斯特克兰
配置后,可以使用python3
脚本中的以下指令执行cran lister:
import logging from swh.lister.cran.tasks import cran_lister logging.basicConfig(level=logging.DEBUG) cran_lister()
列表器cgit
配置后,可以使用以下指令执行cgit lister
在python3
脚本中:
import logging from swh.lister.cgit.tasks import cgit_lister logging.basicConfig(level=logging.DEBUG) # simple cgit instance cgit_lister(url='https://git.kernel.org/') # cgit instance whose listed repositories differ from the base url cgit_lister(url='https://cgit.kde.org/', url_prefix='https://anongit.kde.org/')
李斯特包装师
配置后,可以使用以下指令执行packagist lister
在python3
脚本中:
import logging from swh.lister.packagist.tasks import packagist_lister logging.basicConfig(level=logging.DEBUG) packagist_lister()
许可
此程序是免费软件:您可以在 自由软件发布的GNU通用公共许可条款 基金会,许可证的第3版,或(由您选择)以后的任何版本 版本。
这个程序的发布是希望它能有用,但是没有 保证;甚至没有对商品的适销性或适用性的暗示保证 特殊目的。有关更多详细信息,请参阅GNU通用公共许可证。
GNU通用公共许可证全文见顶级许可证文件 还有这个节目。