diff --git a/.dependabot/config.yml b/.dependabot/config.yml deleted file mode 100644 index c36f00d1..00000000 --- a/.dependabot/config.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: 1 -update_configs: - - package_manager: "python" - directory: "/" - update_schedule: "live" - target_branch: "development" - - default_reviewers: - - "echarrod" - - "davidgrayston" - - "MrBurtyyy" - - default_assignees: ["echarrod"] diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..466e6d29 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: +- package-ecosystem: pip + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 3 + target-branch: development + reviewers: + - echarrod + - davidgrayston + assignees: + - echarrod diff --git a/.travis.yml b/.travis.yml index 07e16563..ab63218b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,22 +38,32 @@ jobs: python: "3.8-dev" - <<: *test python: "3.8" - - <<: *test - stage: Coverage - name: Coveralls - python: "3.7" - install: + + - stage: Check Examples + name: AML + python: "3.8" + script: + - cd ./examples/aml - pip install -r requirements.txt - - pip install -e .[dev] + - name: Django + python: "3.8" script: - - pytest --cov=yoti_python_sdk yoti_python_sdk/tests - if: type = pull_request OR branch = master - after_success: - - coveralls + - cd ./examples/yoti_example_django + - pip install -r requirements.txt + - name: Flask + python: "3.8" + script: + - cd ./examples/yoti_example_flask + - pip install -r requirements.txt + - name: Doc Scan + python: "3.8" + script: + - cd ./examples/doc_scan + - pip install -r requirements.txt + - stage: Analyze name: Sonarcloud - dist: trusty - python: "3.6.1" + python: "3.8" addons: sonarcloud: organization: "getyoti" diff --git a/README.md b/README.md index fc7a206f..317f6b1c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ # Yoti Python SDK # [![Build Status](https://travis-ci.com/getyoti/yoti-python-sdk.svg?branch=master)](https://travis-ci.com/getyoti/yoti-python-sdk) -[![Coverage Status](https://coveralls.io/repos/github/getyoti/yoti-python-sdk/badge.svg?branch=master)](https://coveralls.io/github/getyoti/yoti-python-sdk?branch=master) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=getyoti%3Apython&metric=coverage)](https://sonarcloud.io/dashboard?id=getyoti%3Apython) +[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=getyoti%3Apython&metric=bugs)](https://sonarcloud.io/dashboard?id=getyoti%3Apython) +[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=getyoti%3Apython&metric=code_smells)](https://sonarcloud.io/dashboard?id=getyoti%3Apython) +[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=getyoti%3Apython&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=getyoti%3Apython) Welcome to the Yoti Python SDK. This repo contains the tools and step by step instructions you need to quickly integrate your Python back-end with Yoti so that your users can share their identity details with your application in a secure and trusted way. diff --git a/examples/aml/requirements.txt b/examples/aml/requirements.txt index d7e69aa0..c9c68e0f 100644 --- a/examples/aml/requirements.txt +++ b/examples/aml/requirements.txt @@ -1,2 +1,2 @@ -yoti>=2.9.0 +yoti>=2.12.1 python-dotenv>=0.7.1 diff --git a/examples/doc_scan/requirements.in b/examples/doc_scan/requirements.in index d42ad858..b492310f 100644 --- a/examples/doc_scan/requirements.in +++ b/examples/doc_scan/requirements.in @@ -1,5 +1,5 @@ flask>=1.1.2 python-dotenv>=0.13.0 -yoti>=2.11.2 +yoti>=2.12.1 filetype>=1.0.7 -pyopenssl>=19.1.0 \ No newline at end of file +pyopenssl>=19.1.0 diff --git a/examples/doc_scan/requirements.txt b/examples/doc_scan/requirements.txt index 052d6cf6..429a56a7 100644 --- a/examples/doc_scan/requirements.txt +++ b/examples/doc_scan/requirements.txt @@ -28,7 +28,7 @@ six==1.14.0 # via cryptography, protobuf, pyopenssl urllib3==1.25.9 # via requests werkzeug==1.0.1 # via flask wrapt==1.12.1 # via deprecated -yoti==2.11.2 # via -r requirements.in +yoti==2.12.1 # via -r requirements.in # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/examples/yoti_example_django/requirements.in b/examples/yoti_example_django/requirements.in index f94b8554..51255998 100644 --- a/examples/yoti_example_django/requirements.in +++ b/examples/yoti_example_django/requirements.in @@ -1,7 +1,6 @@ -cryptography>=2.3 -Django==2.2.8 -django-sslserver>=0.2.0 +django>=3.0.7 +django-sslserver>=0.22.0 python-dotenv>=0.7.1 requests>=2.20.0 urllib3>=1.24.2 -yoti>=2.9.0 +yoti>=2.12.1 diff --git a/examples/yoti_example_django/requirements.txt b/examples/yoti_example_django/requirements.txt index 581cb3a9..d1341e17 100644 --- a/examples/yoti_example_django/requirements.txt +++ b/examples/yoti_example_django/requirements.txt @@ -4,26 +4,29 @@ # # pip-compile --output-file=requirements.txt requirements.in # +asgiref==3.2.9 # via django asn1==2.2.0 # via yoti -asn1crypto==0.24.0 # via cryptography certifi==2018.4.16 # via requests -cffi==1.11.5 # via cryptography +cffi==1.14.0 # via cryptography chardet==3.0.4 # via requests -cryptography==2.5 -django-sslserver==0.20 -django==2.2.8 +cryptography==2.9.2 # via pyopenssl, yoti +deprecated==1.2.6 # via yoti +django-sslserver==0.22 # via -r requirements.in +django==3.0.7 # via -r requirements.in, django-sslserver future==0.16.0 # via yoti idna==2.7 # via requests +iso8601==0.1.12 # via yoti protobuf==3.6.0 # via yoti pycparser==2.18 # via cffi pyopenssl==18.0.0 # via yoti -python-dotenv==0.8.2 +python-dotenv==0.8.2 # via -r requirements.in pytz==2018.4 # via django -requests==2.21.0 +requests==2.21.0 # via -r requirements.in, yoti six==1.11.0 # via cryptography, protobuf, pyopenssl sqlparse==0.3.0 # via django -urllib3==1.24.2 -yoti==2.9.0 +urllib3==1.24.2 # via -r requirements.in, requests +wrapt==1.12.1 # via deprecated +yoti==2.12.1 # via -r requirements.in # The following packages are considered to be unsafe in a requirements file: -# setuptools==41.2.0 # via django-sslserver, protobuf +# setuptools diff --git a/examples/yoti_example_flask/requirements.in b/examples/yoti_example_flask/requirements.in index cdfdf9b1..d0683554 100644 --- a/examples/yoti_example_flask/requirements.in +++ b/examples/yoti_example_flask/requirements.in @@ -1,8 +1,9 @@ -cryptography>=2.3 -Flask>=1.0.4 +cffi>=1.14.0 +flask>=1.0.4 jinja2>=2.8.1 pyopenssl>=19.0.0 python-dotenv>=0.7.1 requests>=2.20.0 urllib3>=1.24.2 -yoti>=2.9.0 +yoti>=2.12.1 +werkzeug>=1.0.1 diff --git a/examples/yoti_example_flask/requirements.txt b/examples/yoti_example_flask/requirements.txt index 066cc3eb..bbc8b7b6 100644 --- a/examples/yoti_example_flask/requirements.txt +++ b/examples/yoti_example_flask/requirements.txt @@ -5,27 +5,29 @@ # pip-compile --output-file=requirements.txt requirements.in # asn1==2.2.0 # via yoti -asn1crypto==0.24.0 # via cryptography certifi==2018.4.16 # via requests -cffi==1.11.5 # via cryptography +cffi==1.14.0 # via -r requirements.in, cryptography chardet==3.0.4 # via requests click==6.7 # via flask -cryptography==2.5 -flask==1.1.1 +cryptography==2.9.2 # via pyopenssl, yoti +deprecated==1.2.6 # via yoti +flask==1.1.1 # via -r requirements.in future==0.16.0 # via yoti idna==2.7 # via requests +iso8601==0.1.12 # via yoti itsdangerous==0.24 # via flask -jinja2==2.10.1 +jinja2==2.10.1 # via -r requirements.in, flask markupsafe==1.0 # via jinja2 protobuf==3.6.0 # via yoti pycparser==2.18 # via cffi -pyopenssl==19.0.0 -python-dotenv==0.8.2 -requests==2.21.0 +pyopenssl==19.0.0 # via -r requirements.in, yoti +python-dotenv==0.8.2 # via -r requirements.in +requests==2.21.0 # via -r requirements.in, yoti six==1.11.0 # via cryptography, protobuf, pyopenssl -urllib3==1.24.2 -werkzeug==0.15.5 # via flask -yoti==2.9.0 +urllib3==1.24.2 # via -r requirements.in, requests +werkzeug==1.0.1 # via -r requirements.in, flask +wrapt==1.12.1 # via deprecated +yoti==2.12.1 # via -r requirements.in # The following packages are considered to be unsafe in a requirements file: -# setuptools==41.2.0 # via protobuf +# setuptools diff --git a/requirements.in b/requirements.in index d0afce0e..2385c225 100644 --- a/requirements.in +++ b/requirements.in @@ -1,15 +1,15 @@ -asn1==2.2.0 -cryptography>=2.8.0 +asn1==2.2.0 # asn1 2.3.0 introduces enum34 as a dependency, which causes problems on some envs +cryptography==2.8.0 cffi>=1.14.0 future==0.18.2 itsdangerous==0.24 pbr==1.10.0 -protobuf==3.11.3 -pyopenssl==18.0.0 +protobuf==3.12.2 +pyopenssl==19.1.0 PyYAML==5.2 # PyYAML 5.3 does not support Python 3.4 pytz==2020.1 requests>=2.20.0 urllib3>=1.24.3 -deprecated==1.2.6 -wheel==0.24.0 +deprecated==1.2.10 +wheel==0.33.6 iso8601==0.1.12 diff --git a/requirements.txt b/requirements.txt index 08bea14c..99048eea 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,21 +9,21 @@ certifi==2018.11.29 # via requests cffi==1.14.0 # via -r requirements.in, cryptography chardet==3.0.4 # via requests cryptography==2.8 # via -r requirements.in, pyopenssl -deprecated==1.2.6 # via -r requirements.in +deprecated==1.2.10 # via -r requirements.in future==0.18.2 # via -r requirements.in idna==2.7 # via requests iso8601==0.1.12 # via -r requirements.in itsdangerous==0.24 # via -r requirements.in pbr==1.10.0 # via -r requirements.in -protobuf==3.11.3 # via -r requirements.in +protobuf==3.12.2 # via -r requirements.in pycparser==2.18 # via cffi -pyopenssl==18.0.0 # via -r requirements.in +pyopenssl==19.1.0 # via -r requirements.in pytz==2020.1 # via -r requirements.in pyyaml==5.2 # via -r requirements.in requests==2.21.0 # via -r requirements.in six==1.10.0 # via cryptography, protobuf, pyopenssl urllib3==1.24.3 # via -r requirements.in, requests -wheel==0.24.0 # via -r requirements.in +wheel==0.33.6 # via -r requirements.in wrapt==1.11.2 # via deprecated # The following packages are considered to be unsafe in a requirements file: diff --git a/setup.py b/setup.py index e6148705..46d38602 100644 --- a/setup.py +++ b/setup.py @@ -2,13 +2,6 @@ from setuptools import find_packages from setuptools import setup -long_description = ( - "This package contains the tools you need to quickly " - "integrate your Python back-end with Yoti, so that your " - "users can share their identity details with your " - "application in a secure and trusted way." -) - version = {} with open("yoti_python_sdk/version.py") as fp: exec(fp.read(), version) @@ -19,12 +12,13 @@ packages=find_packages(include=["yoti_python_sdk", "yoti_python_sdk.*"]), license="MIT", description="The Yoti Python SDK, providing API support for Login, Verify (2FA) and Age Verification.", - long_description=long_description, + long_description=open("README.md").read(), + long_description_content_type="text/markdown", url="https://github.com/getyoti/yoti-python-sdk", author="Yoti", author_email="websdk@yoti.com", install_requires=[ - "deprecated==1.2.6", + "deprecated==1.2.10", "cryptography>=2.2.1", "protobuf>=3.1.0", "requests>=2.11.1", @@ -35,15 +29,15 @@ ], extras_require={ "examples": [ - "Django>1.11.16", - "Flask>=0.10", + "Django>=3.0.7", + "Flask>=1.0.4", "python-dotenv>=0.7.1", - "django-sslserver>=0.2", - "Werkzeug==0.15.3", + "django-sslserver>=0.22.0", + "Werkzeug==1.0.1", ], "dev": [ "pre-commit==1.17.0", - "pytest>=3.6.0", + "pytest>=4.6.0", "pytest-cov>=2.7.1", "pylint==1.9.4", "pylint-exit>=1.1.0", diff --git a/sonar-project.properties b/sonar-project.properties index 491aea13..543119da 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -2,7 +2,7 @@ sonar.host.url = https://sonarcloud.io sonar.organization = getyoti sonar.projectKey = getyoti:python sonar.projectName = Python SDK -sonar.projectVersion = 2.12.1 +sonar.projectVersion = 2.12.2 sonar.exclusions = yoti_python_sdk/tests/**,examples/**,yoti_python_sdk/protobuf/**/* sonar.python.pylint.reportPath = coverage.out diff --git a/yoti_python_sdk/version.py b/yoti_python_sdk/version.py index ad24c607..953079f5 100644 --- a/yoti_python_sdk/version.py +++ b/yoti_python_sdk/version.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -__version__ = "2.12.1" +__version__ = "2.12.2"