prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Switch to GitHub Actions or Azure Pipelines
  We basically need this for https://github.com/certbot/certbot/issues/8041 to make it sane to create a Certbot snap that can be easily shared and used for testing the DNS plugin snaps as described at https://github.com/certbot/certbot/issues/8041#issuecomment-642849813.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `acme/setup.py`
  Content:
  ```
  1 from distutils.version import LooseVersion
  2 import sys
  3 
  4 from setuptools import __version__ as setuptools_version
  5 from setuptools import find_packages
  6 from setuptools import setup
  7 from setuptools.command.test import test as TestCommand
  8 
  9 version = '1.6.0.dev0'
  10 
  11 # Please update tox.ini when modifying dependency version requirements
  12 install_requires = [
  13     # load_pem_private/public_key (>=0.6)
  14     # rsa_recover_prime_factors (>=0.8)
  15     'cryptography>=1.2.3',
  16     # formerly known as acme.jose:
  17     # 1.1.0+ is required to avoid the warnings described at
  18     # https://github.com/certbot/josepy/issues/13.
  19     'josepy>=1.1.0',
  20     # Connection.set_tlsext_host_name (>=0.13)
  21     'PyOpenSSL>=0.13.1',
  22     'pyrfc3339',
  23     'pytz',
  24     'requests[security]>=2.6.0',  # security extras added in 2.4.1
  25     'requests-toolbelt>=0.3.0',
  26     'setuptools',
  27     'six>=1.9.0',  # needed for python_2_unicode_compatible
  28 ]
  29 
  30 setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
  31 if setuptools_known_environment_markers:
  32     install_requires.append('mock ; python_version < "3.3"')
  33 elif 'bdist_wheel' in sys.argv[1:]:
  34     raise RuntimeError('Error, you are trying to build certbot wheels using an old version '
  35                        'of setuptools. Version 36.2+ of setuptools is required.')
  36 elif sys.version_info < (3,3):
  37     install_requires.append('mock')
  38 
  39 dev_extras = [
  40     'pytest',
  41     'pytest-xdist',
  42     'tox',
  43 ]
  44 
  45 docs_extras = [
  46     'Sphinx>=1.0',  # autodoc_member_order = 'bysource', autodoc_default_flags
  47     'sphinx_rtd_theme',
  48 ]
  49 
  50 
  51 class PyTest(TestCommand):
  52     user_options = []
  53 
  54     def initialize_options(self):
  55         TestCommand.initialize_options(self)
  56         self.pytest_args = ''
  57 
  58     def run_tests(self):
  59         import shlex
  60         # import here, cause outside the eggs aren't loaded
  61         import pytest
  62         errno = pytest.main(shlex.split(self.pytest_args))
  63         sys.exit(errno)
  64 
  65 
  66 setup(
  67     name='acme',
  68     version=version,
  69     description='ACME protocol implementation in Python',
  70     url='https://github.com/letsencrypt/letsencrypt',
  71     author="Certbot Project",
  72     author_email='client-dev@letsencrypt.org',
  73     license='Apache License 2.0',
  74     python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',
  75     classifiers=[
  76         'Development Status :: 5 - Production/Stable',
  77         'Intended Audience :: Developers',
  78         'License :: OSI Approved :: Apache Software License',
  79         'Programming Language :: Python',
  80         'Programming Language :: Python :: 2',
  81         'Programming Language :: Python :: 2.7',
  82         'Programming Language :: Python :: 3',
  83         'Programming Language :: Python :: 3.5',
  84         'Programming Language :: Python :: 3.6',
  85         'Programming Language :: Python :: 3.7',
  86         'Programming Language :: Python :: 3.8',
  87         'Topic :: Internet :: WWW/HTTP',
  88         'Topic :: Security',
  89     ],
  90 
  91     packages=find_packages(),
  92     include_package_data=True,
  93     install_requires=install_requires,
  94     extras_require={
  95         'dev': dev_extras,
  96         'docs': docs_extras,
  97     },
  98     test_suite='acme',
  99     tests_require=["pytest"],
  100     cmdclass={"test": PyTest},
  101 )
  102
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/acme/setup.py b/acme/setup.py
  --- a/acme/setup.py
  +++ b/acme/setup.py
  @@ -17,8 +17,8 @@
       # 1.1.0+ is required to avoid the warnings described at
       # https://github.com/certbot/josepy/issues/13.
       'josepy>=1.1.0',
  -    # Connection.set_tlsext_host_name (>=0.13)
  -    'PyOpenSSL>=0.13.1',
  +    # Connection.set_tlsext_host_name (>=0.13) + matching Xenial requirements (>=0.15.1)
  +    'PyOpenSSL>=0.15.1',
       'pyrfc3339',
       'pytz',
       'requests[security]>=2.6.0',  # security extras added in 2.4.1
  
verification_info: {"golden_diff": "diff --git a/acme/setup.py b/acme/setup.py\n--- a/acme/setup.py\n+++ b/acme/setup.py\n@@ -17,8 +17,8 @@\n     # 1.1.0+ is required to avoid the warnings described at\n     # https://github.com/certbot/josepy/issues/13.\n     'josepy>=1.1.0',\n-    # Connection.set_tlsext_host_name (>=0.13)\n-    'PyOpenSSL>=0.13.1',\n+    # Connection.set_tlsext_host_name (>=0.13) + matching Xenial requirements (>=0.15.1)\n+    'PyOpenSSL>=0.15.1',\n     'pyrfc3339',\n     'pytz',\n     'requests[security]>=2.6.0',  # security extras added in 2.4.1\n", "issue": "Switch to GitHub Actions or Azure Pipelines\nWe basically need this for https://github.com/certbot/certbot/issues/8041 to make it sane to create a Certbot snap that can be easily shared and used for testing the DNS plugin snaps as described at https://github.com/certbot/certbot/issues/8041#issuecomment-642849813.\n", "before_files": [{"content": "from distutils.version import LooseVersion\nimport sys\n\nfrom setuptools import __version__ as setuptools_version\nfrom setuptools import find_packages\nfrom setuptools import setup\nfrom setuptools.command.test import test as TestCommand\n\nversion = '1.6.0.dev0'\n\n# Please update tox.ini when modifying dependency version requirements\ninstall_requires = [\n    # load_pem_private/public_key (>=0.6)\n    # rsa_recover_prime_factors (>=0.8)\n    'cryptography>=1.2.3',\n    # formerly known as acme.jose:\n    # 1.1.0+ is required to avoid the warnings described at\n    # https://github.com/certbot/josepy/issues/13.\n    'josepy>=1.1.0',\n    # Connection.set_tlsext_host_name (>=0.13)\n    'PyOpenSSL>=0.13.1',\n    'pyrfc3339',\n    'pytz',\n    'requests[security]>=2.6.0',  # security extras added in 2.4.1\n    'requests-toolbelt>=0.3.0',\n    'setuptools',\n    'six>=1.9.0',  # needed for python_2_unicode_compatible\n]\n\nsetuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))\nif setuptools_known_environment_markers:\n    install_requires.append('mock ; python_version < \"3.3\"')\nelif 'bdist_wheel' in sys.argv[1:]:\n    raise RuntimeError('Error, you are trying to build certbot wheels using an old version '\n                       'of setuptools. Version 36.2+ of setuptools is required.')\nelif sys.version_info < (3,3):\n    install_requires.append('mock')\n\ndev_extras = [\n    'pytest',\n    'pytest-xdist',\n    'tox',\n]\n\ndocs_extras = [\n    'Sphinx>=1.0',  # autodoc_member_order = 'bysource', autodoc_default_flags\n    'sphinx_rtd_theme',\n]\n\n\nclass PyTest(TestCommand):\n    user_options = []\n\n    def initialize_options(self):\n        TestCommand.initialize_options(self)\n        self.pytest_args = ''\n\n    def run_tests(self):\n        import shlex\n        # import here, cause outside the eggs aren't loaded\n        import pytest\n        errno = pytest.main(shlex.split(self.pytest_args))\n        sys.exit(errno)\n\n\nsetup(\n    name='acme',\n    version=version,\n    description='ACME protocol implementation in Python',\n    url='https://github.com/letsencrypt/letsencrypt',\n    author=\"Certbot Project\",\n    author_email='client-dev@letsencrypt.org',\n    license='Apache License 2.0',\n    python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',\n    classifiers=[\n        'Development Status :: 5 - Production/Stable',\n        'Intended Audience :: Developers',\n        'License :: OSI Approved :: Apache Software License',\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 2',\n        'Programming Language :: Python :: 2.7',\n        'Programming Language :: Python :: 3',\n        'Programming Language :: Python :: 3.5',\n        'Programming Language :: Python :: 3.6',\n        'Programming Language :: Python :: 3.7',\n        'Programming Language :: Python :: 3.8',\n        'Topic :: Internet :: WWW/HTTP',\n        'Topic :: Security',\n    ],\n\n    packages=find_packages(),\n    include_package_data=True,\n    install_requires=install_requires,\n    extras_require={\n        'dev': dev_extras,\n        'docs': docs_extras,\n    },\n    test_suite='acme',\n    tests_require=[\"pytest\"],\n    cmdclass={\"test\": PyTest},\n)\n", "path": "acme/setup.py"}], "after_files": [{"content": "from distutils.version import LooseVersion\nimport sys\n\nfrom setuptools import __version__ as setuptools_version\nfrom setuptools import find_packages\nfrom setuptools import setup\nfrom setuptools.command.test import test as TestCommand\n\nversion = '1.6.0.dev0'\n\n# Please update tox.ini when modifying dependency version requirements\ninstall_requires = [\n    # load_pem_private/public_key (>=0.6)\n    # rsa_recover_prime_factors (>=0.8)\n    'cryptography>=1.2.3',\n    # formerly known as acme.jose:\n    # 1.1.0+ is required to avoid the warnings described at\n    # https://github.com/certbot/josepy/issues/13.\n    'josepy>=1.1.0',\n    # Connection.set_tlsext_host_name (>=0.13) + matching Xenial requirements (>=0.15.1)\n    'PyOpenSSL>=0.15.1',\n    'pyrfc3339',\n    'pytz',\n    'requests[security]>=2.6.0',  # security extras added in 2.4.1\n    'requests-toolbelt>=0.3.0',\n    'setuptools',\n    'six>=1.9.0',  # needed for python_2_unicode_compatible\n]\n\nsetuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))\nif setuptools_known_environment_markers:\n    install_requires.append('mock ; python_version < \"3.3\"')\nelif 'bdist_wheel' in sys.argv[1:]:\n    raise RuntimeError('Error, you are trying to build certbot wheels using an old version '\n                       'of setuptools. Version 36.2+ of setuptools is required.')\nelif sys.version_info < (3,3):\n    install_requires.append('mock')\n\ndev_extras = [\n    'pytest',\n    'pytest-xdist',\n    'tox',\n]\n\ndocs_extras = [\n    'Sphinx>=1.0',  # autodoc_member_order = 'bysource', autodoc_default_flags\n    'sphinx_rtd_theme',\n]\n\n\nclass PyTest(TestCommand):\n    user_options = []\n\n    def initialize_options(self):\n        TestCommand.initialize_options(self)\n        self.pytest_args = ''\n\n    def run_tests(self):\n        import shlex\n        # import here, cause outside the eggs aren't loaded\n        import pytest\n        errno = pytest.main(shlex.split(self.pytest_args))\n        sys.exit(errno)\n\n\nsetup(\n    name='acme',\n    version=version,\n    description='ACME protocol implementation in Python',\n    url='https://github.com/letsencrypt/letsencrypt',\n    author=\"Certbot Project\",\n    author_email='client-dev@letsencrypt.org',\n    license='Apache License 2.0',\n    python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',\n    classifiers=[\n        'Development Status :: 5 - Production/Stable',\n        'Intended Audience :: Developers',\n        'License :: OSI Approved :: Apache Software License',\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 2',\n        'Programming Language :: Python :: 2.7',\n        'Programming Language :: Python :: 3',\n        'Programming Language :: Python :: 3.5',\n        'Programming Language :: Python :: 3.6',\n        'Programming Language :: Python :: 3.7',\n        'Programming Language :: Python :: 3.8',\n        'Topic :: Internet :: WWW/HTTP',\n        'Topic :: Security',\n    ],\n\n    packages=find_packages(),\n    include_package_data=True,\n    install_requires=install_requires,\n    extras_require={\n        'dev': dev_extras,\n        'docs': docs_extras,\n    },\n    test_suite='acme',\n    tests_require=[\"pytest\"],\n    cmdclass={\"test\": PyTest},\n)\n", "path": "acme/setup.py"}]}