From 2d2f7149aaa6c380edc26df77c463d070a364765 Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Tue, 25 Jul 2017 15:23:54 +0800 Subject: [PATCH] add Anitya support --- nvchecker/get_version.py | 3 ++- nvchecker/source/anitya.py | 18 ++++++++++++++++++ tests/test_anitya.py | 8 ++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 nvchecker/source/anitya.py create mode 100644 tests/test_anitya.py diff --git a/nvchecker/get_version.py b/nvchecker/get_version.py index d47ee03..ba4a4ff 100644 --- a/nvchecker/get_version.py +++ b/nvchecker/get_version.py @@ -9,7 +9,8 @@ handler_precedence = ( 'github', 'aur', 'pypi', 'archpkg', 'debianpkg', 'ubuntupkg', 'gems', 'pacman', 'cmd', 'bitbucket', 'regex', 'manual', 'vcs', - 'cratesio', 'npm', 'hackage', 'cpan', 'gitlab', 'packagist' + 'cratesio', 'npm', 'hackage', 'cpan', 'gitlab', 'packagist', + 'anitya', ) async def get_version(name, conf): diff --git a/nvchecker/source/anitya.py b/nvchecker/source/anitya.py new file mode 100644 index 0000000..d3d035e --- /dev/null +++ b/nvchecker/source/anitya.py @@ -0,0 +1,18 @@ +# MIT licensed +# Copyright (c) 2017 lilydjwg , et al. + +import logging +from . import session + +logger = logging.getLogger(__name__) + +URL = 'https://release-monitoring.org/api/project/{pkg}' + +async def get_version(name, conf): + pkg = conf.get('anitya') + url = URL.format(pkg = pkg) + + async with session.get(url) as res: + data = await res.json() + + return data['version'] diff --git a/tests/test_anitya.py b/tests/test_anitya.py new file mode 100644 index 0000000..cc343d4 --- /dev/null +++ b/tests/test_anitya.py @@ -0,0 +1,8 @@ +# MIT licensed +# Copyright (c) 2017 Felix Yan , et al. + +import pytest +pytestmark = pytest.mark.asyncio + +async def test_anitya(get_version): + assert await get_version("shutter", {"anitya": "fedora/shutter"}) == "0.93.1"