From dde41672ef6db21105416269f1deecee119388f1 Mon Sep 17 00:00:00 2001 From: Akashdeep Date: Tue, 23 Apr 2024 07:26:04 +0000 Subject: [PATCH 1/7] Skip the custom configuration from the repository --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index b6e4761..30b987b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# Configuration files +firmitas/conf/myconfig.py + + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] From 1ff6b53f87fd9c15ba5106fe1c2cea16577248f1 Mon Sep 17 00:00:00 2001 From: Akashdeep Date: Tue, 23 Apr 2024 07:30:22 +0000 Subject: [PATCH 2/7] Include testing libraries to the project dependencies --- poetry.lock | 731 +++++++++++++++++++++++++++++-------------------- pyproject.toml | 30 +- tox.ini | 26 ++ 3 files changed, 468 insertions(+), 319 deletions(-) create mode 100644 tox.ini diff --git a/poetry.lock b/poetry.lock index 660b63e..dc84271 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,75 +1,5 @@ # This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. -[[package]] -name = "bandit" -version = "1.7.8" -description = "Security oriented static analyser for python code." -optional = false -python-versions = ">=3.8" -files = [ - {file = "bandit-1.7.8-py3-none-any.whl", hash = "sha256:509f7af645bc0cd8fd4587abc1a038fc795636671ee8204d502b933aee44f381"}, - {file = "bandit-1.7.8.tar.gz", hash = "sha256:36de50f720856ab24a24dbaa5fee2c66050ed97c1477e0a1159deab1775eab6b"}, -] - -[package.dependencies] -colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} -PyYAML = ">=5.3.1" -rich = "*" -stevedore = ">=1.20.0" - -[package.extras] -baseline = ["GitPython (>=3.1.30)"] -sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] -test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] -toml = ["tomli (>=1.1.0)"] -yaml = ["PyYAML"] - -[[package]] -name = "black" -version = "23.12.1" -description = "The uncompromising code formatter." -optional = false -python-versions = ">=3.8" -files = [ - {file = "black-23.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0aaf6041986767a5e0ce663c7a2f0e9eaf21e6ff87a5f95cbf3675bfd4c41d2"}, - {file = "black-23.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c88b3711d12905b74206227109272673edce0cb29f27e1385f33b0163c414bba"}, - {file = "black-23.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920b569dc6b3472513ba6ddea21f440d4b4c699494d2e972a1753cdc25df7b0"}, - {file = "black-23.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:3fa4be75ef2a6b96ea8d92b1587dd8cb3a35c7e3d51f0738ced0781c3aa3a5a3"}, - {file = "black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba"}, - {file = "black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b"}, - {file = "black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59"}, - {file = "black-23.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50"}, - {file = "black-23.12.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:25e57fd232a6d6ff3f4478a6fd0580838e47c93c83eaf1ccc92d4faf27112c4e"}, - {file = "black-23.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d9e13db441c509a3763a7a3d9a49ccc1b4e974a47be4e08ade2a228876500ec"}, - {file = "black-23.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1bd9c210f8b109b1762ec9fd36592fdd528485aadb3f5849b2740ef17e674e"}, - {file = "black-23.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:ae76c22bde5cbb6bfd211ec343ded2163bba7883c7bc77f6b756a1049436fbb9"}, - {file = "black-23.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1fa88a0f74e50e4487477bc0bb900c6781dbddfdfa32691e780bf854c3b4a47f"}, - {file = "black-23.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a4d6a9668e45ad99d2f8ec70d5c8c04ef4f32f648ef39048d010b0689832ec6d"}, - {file = "black-23.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b18fb2ae6c4bb63eebe5be6bd869ba2f14fd0259bda7d18a46b764d8fb86298a"}, - {file = "black-23.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:c04b6d9d20e9c13f43eee8ea87d44156b8505ca8a3c878773f68b4e4812a421e"}, - {file = "black-23.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3e1b38b3135fd4c025c28c55ddfc236b05af657828a8a6abe5deec419a0b7055"}, - {file = "black-23.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4f0031eaa7b921db76decd73636ef3a12c942ed367d8c3841a0739412b260a54"}, - {file = "black-23.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97e56155c6b737854e60a9ab1c598ff2533d57e7506d97af5481141671abf3ea"}, - {file = "black-23.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:dd15245c8b68fe2b6bd0f32c1556509d11bb33aec9b5d0866dd8e2ed3dba09c2"}, - {file = "black-23.12.1-py3-none-any.whl", hash = "sha256:78baad24af0f033958cad29731e27363183e140962595def56423e626f4bee3e"}, - {file = "black-23.12.1.tar.gz", hash = "sha256:4ce3ef14ebe8d9509188014d96af1c456a910d5b5cbf434a09fef7e024b3d0d5"}, -] - -[package.dependencies] -click = ">=8.0.0" -mypy-extensions = ">=0.4.3" -packaging = ">=22.0" -pathspec = ">=0.9.0" -platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} - -[package.extras] -colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] -jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -uvloop = ["uvloop (>=0.15.2)"] - [[package]] name = "cachetools" version = "5.3.3" @@ -291,6 +221,73 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "coverage" +version = "7.5.0" +description = "Code coverage measurement for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "coverage-7.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:432949a32c3e3f820af808db1833d6d1631664d53dd3ce487aa25d574e18ad1c"}, + {file = "coverage-7.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2bd7065249703cbeb6d4ce679c734bef0ee69baa7bff9724361ada04a15b7e3b"}, + {file = "coverage-7.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbfe6389c5522b99768a93d89aca52ef92310a96b99782973b9d11e80511f932"}, + {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39793731182c4be939b4be0cdecde074b833f6171313cf53481f869937129ed3"}, + {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85a5dbe1ba1bf38d6c63b6d2c42132d45cbee6d9f0c51b52c59aa4afba057517"}, + {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:357754dcdfd811462a725e7501a9b4556388e8ecf66e79df6f4b988fa3d0b39a"}, + {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a81eb64feded34f40c8986869a2f764f0fe2db58c0530d3a4afbcde50f314880"}, + {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:51431d0abbed3a868e967f8257c5faf283d41ec882f58413cf295a389bb22e58"}, + {file = "coverage-7.5.0-cp310-cp310-win32.whl", hash = "sha256:f609ebcb0242d84b7adeee2b06c11a2ddaec5464d21888b2c8255f5fd6a98ae4"}, + {file = "coverage-7.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:6782cd6216fab5a83216cc39f13ebe30adfac2fa72688c5a4d8d180cd52e8f6a"}, + {file = "coverage-7.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e768d870801f68c74c2b669fc909839660180c366501d4cc4b87efd6b0eee375"}, + {file = "coverage-7.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:84921b10aeb2dd453247fd10de22907984eaf80901b578a5cf0bb1e279a587cb"}, + {file = "coverage-7.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:710c62b6e35a9a766b99b15cdc56d5aeda0914edae8bb467e9c355f75d14ee95"}, + {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c379cdd3efc0658e652a14112d51a7668f6bfca7445c5a10dee7eabecabba19d"}, + {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fea9d3ca80bcf17edb2c08a4704259dadac196fe5e9274067e7a20511fad1743"}, + {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:41327143c5b1d715f5f98a397608f90ab9ebba606ae4e6f3389c2145410c52b1"}, + {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:565b2e82d0968c977e0b0f7cbf25fd06d78d4856289abc79694c8edcce6eb2de"}, + {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cf3539007202ebfe03923128fedfdd245db5860a36810136ad95a564a2fdffff"}, + {file = "coverage-7.5.0-cp311-cp311-win32.whl", hash = "sha256:bf0b4b8d9caa8d64df838e0f8dcf68fb570c5733b726d1494b87f3da85db3a2d"}, + {file = "coverage-7.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c6384cc90e37cfb60435bbbe0488444e54b98700f727f16f64d8bfda0b84656"}, + {file = "coverage-7.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fed7a72d54bd52f4aeb6c6e951f363903bd7d70bc1cad64dd1f087980d309ab9"}, + {file = "coverage-7.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cbe6581fcff7c8e262eb574244f81f5faaea539e712a058e6707a9d272fe5b64"}, + {file = "coverage-7.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad97ec0da94b378e593ef532b980c15e377df9b9608c7c6da3506953182398af"}, + {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd4bacd62aa2f1a1627352fe68885d6ee694bdaebb16038b6e680f2924a9b2cc"}, + {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adf032b6c105881f9d77fa17d9eebe0ad1f9bfb2ad25777811f97c5362aa07f2"}, + {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4ba01d9ba112b55bfa4b24808ec431197bb34f09f66f7cb4fd0258ff9d3711b1"}, + {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f0bfe42523893c188e9616d853c47685e1c575fe25f737adf473d0405dcfa7eb"}, + {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a9a7ef30a1b02547c1b23fa9a5564f03c9982fc71eb2ecb7f98c96d7a0db5cf2"}, + {file = "coverage-7.5.0-cp312-cp312-win32.whl", hash = "sha256:3c2b77f295edb9fcdb6a250f83e6481c679335ca7e6e4a955e4290350f2d22a4"}, + {file = "coverage-7.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:427e1e627b0963ac02d7c8730ca6d935df10280d230508c0ba059505e9233475"}, + {file = "coverage-7.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9dd88fce54abbdbf4c42fb1fea0e498973d07816f24c0e27a1ecaf91883ce69e"}, + {file = "coverage-7.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a898c11dca8f8c97b467138004a30133974aacd572818c383596f8d5b2eb04a9"}, + {file = "coverage-7.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07dfdd492d645eea1bd70fb1d6febdcf47db178b0d99161d8e4eed18e7f62fe7"}, + {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3d117890b6eee85887b1eed41eefe2e598ad6e40523d9f94c4c4b213258e4a4"}, + {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6afd2e84e7da40fe23ca588379f815fb6dbbb1b757c883935ed11647205111cb"}, + {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a9960dd1891b2ddf13a7fe45339cd59ecee3abb6b8326d8b932d0c5da208104f"}, + {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ced268e82af993d7801a9db2dbc1d2322e786c5dc76295d8e89473d46c6b84d4"}, + {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7c211f25777746d468d76f11719e64acb40eed410d81c26cefac641975beb88"}, + {file = "coverage-7.5.0-cp38-cp38-win32.whl", hash = "sha256:262fffc1f6c1a26125d5d573e1ec379285a3723363f3bd9c83923c9593a2ac25"}, + {file = "coverage-7.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:eed462b4541c540d63ab57b3fc69e7d8c84d5957668854ee4e408b50e92ce26a"}, + {file = "coverage-7.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d0194d654e360b3e6cc9b774e83235bae6b9b2cac3be09040880bb0e8a88f4a1"}, + {file = "coverage-7.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33c020d3322662e74bc507fb11488773a96894aa82a622c35a5a28673c0c26f5"}, + {file = "coverage-7.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbdf2cae14a06827bec50bd58e49249452d211d9caddd8bd80e35b53cb04631"}, + {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3235d7c781232e525b0761730e052388a01548bd7f67d0067a253887c6e8df46"}, + {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2de4e546f0ec4b2787d625e0b16b78e99c3e21bc1722b4977c0dddf11ca84e"}, + {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0e206259b73af35c4ec1319fd04003776e11e859936658cb6ceffdeba0f5be"}, + {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2055c4fb9a6ff624253d432aa471a37202cd8f458c033d6d989be4499aed037b"}, + {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:075299460948cd12722a970c7eae43d25d37989da682997687b34ae6b87c0ef0"}, + {file = "coverage-7.5.0-cp39-cp39-win32.whl", hash = "sha256:280132aada3bc2f0fac939a5771db4fbb84f245cb35b94fae4994d4c1f80dae7"}, + {file = "coverage-7.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:c58536f6892559e030e6924896a44098bc1290663ea12532c78cef71d0df8493"}, + {file = "coverage-7.5.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:2b57780b51084d5223eee7b59f0d4911c31c16ee5aa12737c7a02455829ff067"}, + {file = "coverage-7.5.0.tar.gz", hash = "sha256:cf62d17310f34084c59c01e027259076479128d11e4661bb6c9acb38c5e19bb8"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + +[package.extras] +toml = ["tomli"] + [[package]] name = "cryptography" version = "41.0.7" @@ -377,22 +374,6 @@ docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1 testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] typing = ["typing-extensions (>=4.8)"] -[[package]] -name = "flake8" -version = "5.0.4" -description = "the modular source code checker: pep8 pyflakes and co" -optional = false -python-versions = ">=3.6.1" -files = [ - {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, - {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, -] - -[package.dependencies] -mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.9.0,<2.10.0" -pyflakes = ">=2.5.0,<2.6.0" - [[package]] name = "idna" version = "3.7" @@ -416,74 +397,102 @@ files = [ ] [[package]] -name = "isort" -version = "5.13.2" -description = "A Python utility / library to sort Python imports." -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, - {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, -] - -[package.extras] -colors = ["colorama (>=0.4.6)"] - -[[package]] -name = "markdown-it-py" -version = "3.0.0" -description = "Python port of markdown-it. Markdown parsing, done right!" -optional = false -python-versions = ">=3.8" -files = [ - {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, - {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, -] - -[package.dependencies] -mdurl = ">=0.1,<1.0" - -[package.extras] -benchmarking = ["psutil", "pytest", "pytest-benchmark"] -code-style = ["pre-commit (>=3.0,<4.0)"] -compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] -linkify = ["linkify-it-py (>=1,<3)"] -plugins = ["mdit-py-plugins"] -profiling = ["gprof2dot"] -rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "mccabe" -version = "0.7.0" -description = "McCabe checker, plugin for flake8" -optional = false -python-versions = ">=3.6" -files = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] - -[[package]] -name = "mdurl" -version = "0.1.2" -description = "Markdown URL utilities" +name = "multidict" +version = "6.0.5" +description = "multidict implementation" optional = false python-versions = ">=3.7" files = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] - -[[package]] -name = "mypy-extensions" -version = "1.0.0" -description = "Type system extensions for programs checked with the mypy type checker." -optional = false -python-versions = ">=3.5" -files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"}, + {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"}, + {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"}, + {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"}, + {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:51d035609b86722963404f711db441cf7134f1889107fb171a970c9701f92e1e"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cbebcd5bcaf1eaf302617c114aa67569dd3f090dd0ce8ba9e35e9985b41ac35b"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ffc42c922dbfddb4a4c3b438eb056828719f07608af27d163191cb3e3aa6cc5"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceb3b7e6a0135e092de86110c5a74e46bda4bd4fbfeeb3a3bcec79c0f861e450"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79660376075cfd4b2c80f295528aa6beb2058fd289f4c9252f986751a4cd0496"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4428b29611e989719874670fd152b6625500ad6c686d464e99f5aaeeaca175a"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84a5c3a5f7ce6db1f999fb9438f686bc2e09d38143f2d93d8406ed2dd6b9226"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0de87358b192de7ea9649beb392f107dcad9ad27276324c24c91774ca5271"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:79a6d2ba910adb2cbafc95dad936f8b9386e77c84c35bc0add315b856d7c3abb"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:92d16a3e275e38293623ebf639c471d3e03bb20b8ebb845237e0d3664914caef"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:fb616be3538599e797a2017cccca78e354c767165e8858ab5116813146041a24"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:14c2976aa9038c2629efa2c148022ed5eb4cb939e15ec7aace7ca932f48f9ba6"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:435a0984199d81ca178b9ae2c26ec3d49692d20ee29bc4c11a2a8d4514c67eda"}, + {file = "multidict-6.0.5-cp312-cp312-win32.whl", hash = "sha256:9fe7b0653ba3d9d65cbe7698cca585bf0f8c83dbbcc710db9c90f478e175f2d5"}, + {file = "multidict-6.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:01265f5e40f5a17f8241d52656ed27192be03bfa8764d88e8220141d1e4b3556"}, + {file = "multidict-6.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:19fe01cea168585ba0f678cad6f58133db2aa14eccaf22f88e4a6dccadfad8b3"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf7a982604375a8d49b6cc1b781c1747f243d91b81035a9b43a2126c04766f5"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:107c0cdefe028703fb5dafe640a409cb146d44a6ae201e55b35a4af8e95457dd"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:403c0911cd5d5791605808b942c88a8155c2592e05332d2bf78f18697a5fa15e"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aeaf541ddbad8311a87dd695ed9642401131ea39ad7bc8cf3ef3967fd093b626"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4972624066095e52b569e02b5ca97dbd7a7ddd4294bf4e7247d52635630dd83"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d946b0a9eb8aaa590df1fe082cee553ceab173e6cb5b03239716338629c50c7a"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b55358304d7a73d7bdf5de62494aaf70bd33015831ffd98bc498b433dfe5b10c"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a3145cb08d8625b2d3fee1b2d596a8766352979c9bffe5d7833e0503d0f0b5e5"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d65f25da8e248202bd47445cec78e0025c0fe7582b23ec69c3b27a640dd7a8e3"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c9bf56195c6bbd293340ea82eafd0071cb3d450c703d2c93afb89f93b8386ccc"}, + {file = "multidict-6.0.5-cp37-cp37m-win32.whl", hash = "sha256:69db76c09796b313331bb7048229e3bee7928eb62bab5e071e9f7fcc4879caee"}, + {file = "multidict-6.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:fce28b3c8a81b6b36dfac9feb1de115bab619b3c13905b419ec71d03a3fc1423"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76f067f5121dcecf0d63a67f29080b26c43c71a98b10c701b0677e4a065fbd54"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b82cc8ace10ab5bd93235dfaab2021c70637005e1ac787031f4d1da63d493c1d"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cb241881eefd96b46f89b1a056187ea8e9ba14ab88ba632e68d7a2ecb7aadf7"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e94e6912639a02ce173341ff62cc1201232ab86b8a8fcc05572741a5dc7d93"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09a892e4a9fb47331da06948690ae38eaa2426de97b4ccbfafbdcbe5c8f37ff8"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55205d03e8a598cfc688c71ca8ea5f66447164efff8869517f175ea632c7cb7b"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37b15024f864916b4951adb95d3a80c9431299080341ab9544ed148091b53f50"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2a1dee728b52b33eebff5072817176c172050d44d67befd681609b4746e1c2e"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edd08e6f2f1a390bf137080507e44ccc086353c8e98c657e666c017718561b89"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:60d698e8179a42ec85172d12f50b1668254628425a6bd611aba022257cac1386"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3d25f19500588cbc47dc19081d78131c32637c25804df8414463ec908631e453"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4cc0ef8b962ac7a5e62b9e826bd0cd5040e7d401bc45a6835910ed699037a461"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eca2e9d0cc5a889850e9bbd68e98314ada174ff6ccd1129500103df7a94a7a44"}, + {file = "multidict-6.0.5-cp38-cp38-win32.whl", hash = "sha256:4a6a4f196f08c58c59e0b8ef8ec441d12aee4125a7d4f4fef000ccb22f8d7241"}, + {file = "multidict-6.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:0275e35209c27a3f7951e1ce7aaf93ce0d163b28948444bec61dd7badc6d3f8c"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"}, + {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"}, + {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"}, + {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"}, + {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, ] [[package]] @@ -497,42 +506,21 @@ files = [ {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, ] -[[package]] -name = "pathspec" -version = "0.12.1" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.8" -files = [ - {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, - {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, -] - -[[package]] -name = "pbr" -version = "6.0.0" -description = "Python Build Reasonableness" -optional = false -python-versions = ">=2.6" -files = [ - {file = "pbr-6.0.0-py2.py3-none-any.whl", hash = "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda"}, - {file = "pbr-6.0.0.tar.gz", hash = "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"}, -] - [[package]] name = "platformdirs" -version = "4.2.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.2.1" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, - {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, + {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"}, + {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"}, ] [package.extras] docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "pluggy" @@ -549,17 +537,6 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] -[[package]] -name = "pycodestyle" -version = "2.9.1" -description = "Python style guide checker" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, - {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, -] - [[package]] name = "pycparser" version = "2.22" @@ -571,32 +548,6 @@ files = [ {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] -[[package]] -name = "pyflakes" -version = "2.5.0" -description = "passive checker of Python programs" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, - {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, -] - -[[package]] -name = "pygments" -version = "2.17.2" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, - {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, -] - -[package.extras] -plugins = ["importlib-metadata"] -windows-terminal = ["colorama (>=0.4.6)"] - [[package]] name = "pyproject-api" version = "1.6.1" @@ -618,13 +569,13 @@ testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytes [[package]] name = "pytest" -version = "7.4.4" +version = "8.1.1" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, + {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, ] [package.dependencies] @@ -632,56 +583,48 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.4,<2.0" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] -name = "pytest-black" -version = "0.3.12" -description = "A pytest plugin to enable format checking with black" +name = "pytest-cov" +version = "5.0.0" +description = "Pytest plugin for measuring coverage." optional = false -python-versions = ">=2.7" +python-versions = ">=3.8" files = [ - {file = "pytest-black-0.3.12.tar.gz", hash = "sha256:1d339b004f764d6cd0f06e690f6dd748df3d62e6fe1a692d6a5500ac2c5b75a5"}, + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, ] [package.dependencies] -black = {version = "*", markers = "python_version >= \"3.6\""} -pytest = ">=3.5.0" -toml = "*" +coverage = {version = ">=5.2.1", extras = ["toml"]} +pytest = ">=4.6" -[[package]] -name = "pytest-flake8" -version = "1.1.1" -description = "pytest plugin to check FLAKE8 requirements" -optional = false -python-versions = "*" -files = [ - {file = "pytest-flake8-1.1.1.tar.gz", hash = "sha256:ba4f243de3cb4c2486ed9e70752c80dd4b636f7ccb27d4eba763c35ed0cd316e"}, - {file = "pytest_flake8-1.1.1-py2.py3-none-any.whl", hash = "sha256:e0661a786f8cbf976c185f706fdaf5d6df0b1667c3bcff8e823ba263618627e7"}, -] - -[package.dependencies] -flake8 = ">=4.0" -pytest = ">=7.0" +[package.extras] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] -name = "pytest-isort" -version = "3.1.0" -description = "py.test plugin to check import ordering using isort" +name = "pytest-recording" +version = "0.13.1" +description = "A pytest plugin that allows you recording of network interactions via VCR.py" optional = false -python-versions = ">=3.7,<4" +python-versions = ">=3.7" files = [ - {file = "pytest_isort-3.1.0-py3-none-any.whl", hash = "sha256:13e68d84b35d4f79d20d3d165f491bffc9e4b9509f420381a4186118c4454bd3"}, - {file = "pytest_isort-3.1.0.tar.gz", hash = "sha256:067801dc5e54a474330d074d521c815948ff6d5cf0ed3b9d057b78216851186c"}, + {file = "pytest_recording-0.13.1-py3-none-any.whl", hash = "sha256:e5c75feb2593eb4ed9362182c6640bfe19004204bf9a6082d62c91b5fdb50a3e"}, + {file = "pytest_recording-0.13.1.tar.gz", hash = "sha256:1265d679f39263f115968ec01c2a3bfed250170fd1b0d9e288970b2e4a13737a"}, ] [package.dependencies] -isort = ">=4.0" -pytest = ">=5.0" +pytest = ">=3.5.0" +vcrpy = ">=2.0.1" + +[package.extras] +dev = ["pytest-recording[tests]"] +tests = ["pytest-httpbin", "pytest-mock", "requests", "werkzeug (==3.0.1)"] [[package]] name = "pyyaml" @@ -765,47 +708,29 @@ socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] -name = "rich" -version = "13.7.1" -description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, - {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, -] - -[package.dependencies] -markdown-it-py = ">=2.2.0" -pygments = ">=2.13.0,<3.0.0" -typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} - -[package.extras] -jupyter = ["ipywidgets (>=7.5.1,<9)"] - -[[package]] -name = "stevedore" -version = "5.2.0" -description = "Manage dynamic plugins for Python applications" +name = "ruff" +version = "0.3.7" +description = "An extremely fast Python linter and code formatter, written in Rust." optional = false -python-versions = ">=3.8" -files = [ - {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, - {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, -] - -[package.dependencies] -pbr = ">=2.0.0,<2.1.0 || >2.1.0" - -[[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = ">=3.7" files = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e8377cccb2f07abd25e84fc5b2cbe48eeb0fea9f1719cad7caedb061d70e5ce"}, + {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:15a4d1cc1e64e556fa0d67bfd388fed416b7f3b26d5d1c3e7d192c897e39ba4b"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d28bdf3d7dc71dd46929fafeec98ba89b7c3550c3f0978e36389b5631b793663"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:379b67d4f49774ba679593b232dcd90d9e10f04d96e3c8ce4a28037ae473f7bb"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c060aea8ad5ef21cdfbbe05475ab5104ce7827b639a78dd55383a6e9895b7c51"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:ebf8f615dde968272d70502c083ebf963b6781aacd3079081e03b32adfe4d58a"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d48098bd8f5c38897b03604f5428901b65e3c97d40b3952e38637b5404b739a2"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da8a4fda219bf9024692b1bc68c9cff4b80507879ada8769dc7e985755d662ea"}, + {file = "ruff-0.3.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c44e0149f1d8b48c4d5c33d88c677a4aa22fd09b1683d6a7ff55b816b5d074f"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3050ec0af72b709a62ecc2aca941b9cd479a7bf2b36cc4562f0033d688e44fa1"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a29cc38e4c1ab00da18a3f6777f8b50099d73326981bb7d182e54a9a21bb4ff7"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b15cc59c19edca917f51b1956637db47e200b0fc5e6e1878233d3a938384b0b"}, + {file = "ruff-0.3.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e491045781b1e38b72c91247cf4634f040f8d0cb3e6d3d64d38dcf43616650b4"}, + {file = "ruff-0.3.7-py3-none-win32.whl", hash = "sha256:bc931de87593d64fad3a22e201e55ad76271f1d5bfc44e1a1887edd0903c7d9f"}, + {file = "ruff-0.3.7-py3-none-win_amd64.whl", hash = "sha256:5ef0e501e1e39f35e03c2acb1d1238c595b8bb36cf7a170e7c1df1b73da00e74"}, + {file = "ruff-0.3.7-py3-none-win_arm64.whl", hash = "sha256:789e144f6dc7019d1f92a812891c645274ed08af6037d11fc65fcbc183b7d59f"}, + {file = "ruff-0.3.7.tar.gz", hash = "sha256:d5c1aebee5162c2226784800ae031f660c350e7a3402c4d1f8ea4e97e232e3ba"}, ] [[package]] @@ -847,16 +772,21 @@ docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-argparse-cli (>=1.11.1 testing = ["build[virtualenv] (>=1.0.3)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.2)", "devpi-process (>=1)", "diff-cover (>=8.0.2)", "distlib (>=0.3.8)", "flaky (>=3.7)", "hatch-vcs (>=0.4)", "hatchling (>=1.21)", "psutil (>=5.9.7)", "pytest (>=7.4.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-xdist (>=3.5)", "re-assert (>=1.1)", "time-machine (>=2.13)", "wheel (>=0.42)"] [[package]] -name = "typing-extensions" -version = "4.11.0" -description = "Backported and Experimental Type Hints for Python 3.8+" +name = "urllib3" +version = "1.26.18" +description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.8" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ - {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, - {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, + {file = "urllib3-1.26.18-py2.py3-none-any.whl", hash = "sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07"}, + {file = "urllib3-1.26.18.tar.gz", hash = "sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0"}, ] +[package.extras] +brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + [[package]] name = "urllib3" version = "2.2.1" @@ -874,15 +804,34 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "vcrpy" +version = "6.0.1" +description = "Automatically mock your HTTP interactions to simplify and speed up testing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "vcrpy-6.0.1.tar.gz", hash = "sha256:9e023fee7f892baa0bbda2f7da7c8ac51165c1c6e38ff8688683a12a4bde9278"}, +] + +[package.dependencies] +PyYAML = "*" +urllib3 = {version = "<2", markers = "platform_python_implementation == \"PyPy\" or python_version < \"3.10\""} +wrapt = "*" +yarl = "*" + +[package.extras] +tests = ["Werkzeug (==2.0.3)", "aiohttp", "boto3", "httplib2", "httpx", "pytest", "pytest-aiohttp", "pytest-asyncio", "pytest-cov", "pytest-httpbin", "requests (>=2.22.0)", "tornado", "urllib3"] + [[package]] name = "virtualenv" -version = "20.25.3" +version = "20.26.0" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.25.3-py3-none-any.whl", hash = "sha256:8aac4332f2ea6ef519c648d0bc48a5b1d324994753519919bddbb1aff25a104e"}, - {file = "virtualenv-20.25.3.tar.gz", hash = "sha256:7bb554bbdfeaacc3349fa614ea5bff6ac300fc7c335e9facf3a3bcfc703f45be"}, + {file = "virtualenv-20.26.0-py3-none-any.whl", hash = "sha256:0846377ea76e818daaa3e00a4365c018bc3ac9760cbb3544de542885aad61fb3"}, + {file = "virtualenv-20.26.0.tar.gz", hash = "sha256:ec25a9671a5102c8d2657f62792a27b48f016664c6873f6beed3800008577210"}, ] [package.dependencies] @@ -894,7 +843,189 @@ platformdirs = ">=3.9.1,<5" docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] +[[package]] +name = "wrapt" +version = "1.16.0" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.6" +files = [ + {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, + {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, + {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, + {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, + {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, + {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, + {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, + {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, + {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, + {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, + {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, + {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, + {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, + {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, + {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, + {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, + {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, +] + +[[package]] +name = "yarl" +version = "1.9.4" +description = "Yet another URL library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"}, + {file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"}, + {file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"}, + {file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"}, + {file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"}, + {file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"}, + {file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"}, + {file = "yarl-1.9.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63b20738b5aac74e239622d2fe30df4fca4942a86e31bf47a81a0e94c14df94f"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d7f7de27b8944f1fee2c26a88b4dabc2409d2fea7a9ed3df79b67277644e17"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c74018551e31269d56fab81a728f683667e7c28c04e807ba08f8c9e3bba32f14"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca06675212f94e7a610e85ca36948bb8fc023e458dd6c63ef71abfd482481aa5"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aef935237d60a51a62b86249839b51345f47564208c6ee615ed2a40878dccdd"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b134fd795e2322b7684155b7855cc99409d10b2e408056db2b93b51a52accc7"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d25039a474c4c72a5ad4b52495056f843a7ff07b632c1b92ea9043a3d9950f6e"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:957b4774373cf6f709359e5c8c4a0af9f6d7875db657adb0feaf8d6cb3c3964c"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d7eeb6d22331e2fd42fce928a81c697c9ee2d51400bd1a28803965883e13cead"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6a962e04b8f91f8c4e5917e518d17958e3bdee71fd1d8b88cdce74dd0ebbf434"}, + {file = "yarl-1.9.4-cp37-cp37m-win32.whl", hash = "sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749"}, + {file = "yarl-1.9.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4d7a90a92e528aadf4965d685c17dacff3df282db1121136c382dc0b6014d2"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ec61d826d80fc293ed46c9dd26995921e3a82146feacd952ef0757236fc137be"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8be9e837ea9113676e5754b43b940b50cce76d9ed7d2461df1af39a8ee674d9f"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bef596fdaa8f26e3d66af846bbe77057237cb6e8efff8cd7cc8dff9a62278bbf"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d47552b6e52c3319fede1b60b3de120fe83bde9b7bddad11a69fb0af7db32f1"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84fc30f71689d7fc9168b92788abc977dc8cefa806909565fc2951d02f6b7d57"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4aa9741085f635934f3a2583e16fcf62ba835719a8b2b28fb2917bb0537c1dfa"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:206a55215e6d05dbc6c98ce598a59e6fbd0c493e2de4ea6cc2f4934d5a18d130"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07574b007ee20e5c375a8fe4a0789fad26db905f9813be0f9fef5a68080de559"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a2e2433eb9344a163aced6a5f6c9222c0786e5a9e9cac2c89f0b28433f56e23"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6ad6d10ed9b67a382b45f29ea028f92d25bc0bc1daf6c5b801b90b5aa70fb9ec"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6fe79f998a4052d79e1c30eeb7d6c1c1056ad33300f682465e1b4e9b5a188b78"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a825ec844298c791fd28ed14ed1bffc56a98d15b8c58a20e0e08c1f5f2bea1be"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8619d6915b3b0b34420cf9b2bb6d81ef59d984cb0fde7544e9ece32b4b3043c3"}, + {file = "yarl-1.9.4-cp38-cp38-win32.whl", hash = "sha256:686a0c2f85f83463272ddffd4deb5e591c98aac1897d65e92319f729c320eece"}, + {file = "yarl-1.9.4-cp38-cp38-win_amd64.whl", hash = "sha256:a00862fb23195b6b8322f7d781b0dc1d82cb3bcac346d1e38689370cc1cc398b"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:604f31d97fa493083ea21bd9b92c419012531c4e17ea6da0f65cacdcf5d0bd27"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a854227cf581330ffa2c4824d96e52ee621dd571078a252c25e3a3b3d94a1b1"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ba6f52cbc7809cd8d74604cce9c14868306ae4aa0282016b641c661f981a6e91"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6327976c7c2f4ee6816eff196e25385ccc02cb81427952414a64811037bbc8b"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8397a3817d7dcdd14bb266283cd1d6fc7264a48c186b986f32e86d86d35fbac5"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0381b4ce23ff92f8170080c97678040fc5b08da85e9e292292aba67fdac6c34"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23d32a2594cb5d565d358a92e151315d1b2268bc10f4610d098f96b147370136"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddb2a5c08a4eaaba605340fdee8fc08e406c56617566d9643ad8bf6852778fc7"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26a1dc6285e03f3cc9e839a2da83bcbf31dcb0d004c72d0730e755b33466c30e"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:18580f672e44ce1238b82f7fb87d727c4a131f3a9d33a5e0e82b793362bf18b4"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:29e0f83f37610f173eb7e7b5562dd71467993495e568e708d99e9d1944f561ec"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:1f23e4fe1e8794f74b6027d7cf19dc25f8b63af1483d91d595d4a07eca1fb26c"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db8e58b9d79200c76956cefd14d5c90af54416ff5353c5bfd7cbe58818e26ef0"}, + {file = "yarl-1.9.4-cp39-cp39-win32.whl", hash = "sha256:c7224cab95645c7ab53791022ae77a4509472613e839dab722a72abe5a684575"}, + {file = "yarl-1.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:824d6c50492add5da9374875ce72db7a0733b29c2394890aef23d533106e2b15"}, + {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"}, + {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" + [metadata] lock-version = "2.0" python-versions = ">=3.8,<4" -content-hash = "01d8b46d42a276d731fba747163db5041297a23e72060891cae3277783ded280" +content-hash = "e1b72809548d170213b75192dd2861d5aba3650e0e5875157e964506392766d1" diff --git a/pyproject.toml b/pyproject.toml index 77aa7de..cc9cc08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,28 +32,20 @@ cryptography = ">=36.0.0,<42" pyyaml = ">=5.0.0,<7" requests = ">=2.20.0,<3" -[tool.poetry.dev-dependencies] -black = "^23.0.0" -isort = "^5.10.1" -pytest = "^7.1.3" -flake8 = "<6.0.1" -pytest-black = "^0.3.12" -pytest-flake8 = "^1.0.7" -pytest-isort = "^3.0.0" +[tool.poetry.group.dev.dependencies] +pytest = "^7.1.3 || ^8.0.0" +pytest-cov = "^4.1.0 || ^5.0.0" +ruff = "^0.2.0 || ^0.3.0" tox = "^4.0.0" -bandit = "^1.7.4" +vcrpy = "^5.1.0 || ^6.0.0" +pytest-recording = "^0.13.0" -[tool.pytest.ini_options] -addopts = "--black --isort --flake8" -flake8-max-line-length = 100 -asyncio_mode = "auto" - -[tool.isort] -line_length = 100 -profile = "black" - -[tool.black] +[tool.ruff] line-length = 100 +fix = true + +[tool.ruff.lint] +select = ["E", "F", "W", "I", "S", "B", "UP"] [build-system] requires = ["poetry-core"] diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..570f509 --- /dev/null +++ b/tox.ini @@ -0,0 +1,26 @@ +[tox] +minversion = 3.8.0 +envlist = py{38,39,310,311,312},cleaning +isolated_build = true +skip_missing_interpreters = true + +[testenv] +setenv = + PYTHONPATH={toxinidir} +passenv = + FIRMITAS_TEST_USERNAME + FIRMITAS_TEST_PASSWORD + FIRMITAS_TEST_REPONAME +skip_install = true +sitepackages = false +whitelist_externals = poetry +commands_pre = + pip3 install --upgrade poetry + poetry install --all-extras + firmitas --version +commands = + pytest -s -vvv -o "addopts=--cov=firmitas --cov-report=term --cov-report=term-missing --cov-report=xml --cov-report=html --record-mode=none" test/ + +[testenv:cleaning] +commands = + poetry run ruff check firmitas/ test/ From cfe493e0d868e8d8264d9ad7ec25063cd70df21c Mon Sep 17 00:00:00 2001 From: Akashdeep Date: Tue, 23 Apr 2024 10:07:28 +0000 Subject: [PATCH 3/7] Add a bunch of integration tests and unit tests --- test/__init__.py | 146 +++++++++++++++++++++++++++ test/conftest.py | 32 ++++++ test/test_conf.py | 237 ++++++++++++++++++++++++++++++++++++++++++++ test/test_etoe.py | 166 +++++++++++++++++++++++++++++++ test/test_main.py | 101 +++++++++++++++++++ test/test_pagure.py | 32 ++++++ 6 files changed, 714 insertions(+) create mode 100644 test/__init__.py create mode 100644 test/conftest.py create mode 100644 test/test_conf.py create mode 100644 test/test_etoe.py create mode 100644 test/test_main.py create mode 100644 test/test_pagure.py diff --git a/test/__init__.py b/test/__init__.py new file mode 100644 index 0000000..ca62227 --- /dev/null +++ b/test/__init__.py @@ -0,0 +1,146 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + +from os import environ as envr + +standard_list = [ + "[INFO] Probing into the configured directory", + "[INFO] Validating 6 X.509-standard TLS certificates", + "[DEBUG] [joystick.stg] Issued by RabbitMQ STAGING CA", + "[DEBUG] [joystick.stg] Serial number 44541479035547978831580614561088909678", + "[DEBUG] [joystick.stg] Valid from 2019-05-28 23:04:35", + "[DEBUG] [joystick.stg] Valid until 2029-05-25 23:04:35", + "[INFO] [joystick.stg] The specified X.509-standard TLS certificate was read successfully", # noqa : E501 + "[DEBUG] [nuancier.stg] Issued by RabbitMQ STAGING CA", + "[DEBUG] [nuancier.stg] Serial number 209068775949833699801370873051828148798", + "[DEBUG] [nuancier.stg] Valid from 2019-02-21 18:34:13", + "[DEBUG] [nuancier.stg] Valid until 2029-02-18 18:34:13", + "[INFO] [nuancier.stg] The specified X.509-standard TLS certificate was read successfully", # noqa : E501 + "[DEBUG] [robosign.stg] Issued by RabbitMQ STAGING CA", + "[DEBUG] [robosign.stg] Serial number 38988970076690016170053187069021997563", + "[DEBUG] [robosign.stg] Valid from 2019-09-20 22:29:56", + "[DEBUG] [robosign.stg] Valid until 2029-09-17 22:29:56", + "[INFO] [robosign.stg] The specified X.509-standard TLS certificate was read successfully", # noqa : E501 + "[DEBUG] [waiverdb.stg] Issued by RabbitMQ STAGING CA", + "[DEBUG] [waiverdb.stg] Serial number 6931031601876762538483728070539648010", + "[DEBUG] [waiverdb.stg] Valid from 2019-03-06 23:58:40", + "[DEBUG] [waiverdb.stg] Valid until 2029-03-03 23:58:40", + "[INFO] [waiverdb.stg] The specified X.509-standard TLS certificate was read successfully", # noqa : E501 + "[ERROR] [mistaken.stg] The specified X.509-standard TLS certificate could not be read", # noqa : E501 + "[INFO] Of 6 TLS certificates, 5 TLS certificate(s) were read successfully while 1 TLS certificate(s) could not be read", # noqa : E501 +] + + +def list_etoe_pagure(list_etoe: list = standard_list.copy()) -> list: # noqa : B008 + list_etoe += [ + "[WARNING] [dtfedmsg.stg] The specified X.509 TLS certificate is not valid anymore", + "[INFO] Of 6 TLS certificates, 1 TLS certificate(s) were not valid yet, 1 TLS certificates were not valid anymore and 0 TLS certificates were notified of being near their validity expiry", # noqa : E501 + ] + return list_etoe + + +def list_etoe_gitlab(list_etoe: list = standard_list.copy()) -> list: # noqa : B008 + list_etoe += [ + "[ERROR] The notification has not yet been implemented on GitLab" + ] + return list_etoe + + +def list_etoe_github(list_etoe: list = standard_list.copy()) -> list: # noqa : B008 + list_etoe += [ + "[ERROR] The notification has not yet been implemented on GitHub" + ] + return list_etoe + + +def list_etoe_auth(list_etoe: list = standard_list.copy()) -> list: # noqa : B008 + list_etoe += [ + "[WARNING] [joystick.stg] The specified X.509 TLS certificate is about to expire in under", # noqa : E501 + "[DEBUG] [joystick.stg] Notification request attempt count - 1 of 5", + "[DEBUG] Starting new HTTPS connection (1): pagure.io:443", + f"[DEBUG] https://pagure.io:443 \"POST /api/0/{envr['FIRMITAS_TEST_REPONAME']}/new_issue HTTP/1.1\" 200", # noqa : E501 + "[DEBUG] [joystick.stg] The notification request was met with response code 200", + "[DEBUG] [joystick.stg] The created notification ticket was created with ID", + "[INFO] [joystick.stg] The notification ticket for renewing the TLS certificate has now been created", # noqa : E501 + "[WARNING] [nuancier.stg] The specified X.509 TLS certificate is about to expire in under", # noqa : E501 + "[DEBUG] [nuancier.stg] Notification request attempt count - 1 of 5", + "[DEBUG] Starting new HTTPS connection (1): pagure.io:443", + f"[DEBUG] https://pagure.io:443 \"POST /api/0/{envr['FIRMITAS_TEST_REPONAME']}/new_issue HTTP/1.1\" 200", # noqa : E501 + "[DEBUG] [nuancier.stg] The notification request was met with response code 200", + "[DEBUG] [nuancier.stg] The created notification ticket was created with ID", + "[INFO] [nuancier.stg] The notification ticket for renewing the TLS certificate has now been created", # noqa : E501 + "[WARNING] [robosign.stg] The specified X.509 TLS certificate is about to expire in under", # noqa : E501 + "[DEBUG] [robosign.stg] Notification request attempt count - 1 of 5", + "[DEBUG] Starting new HTTPS connection (1): pagure.io:443", + f"[DEBUG] https://pagure.io:443 \"POST /api/0/{envr['FIRMITAS_TEST_REPONAME']}/new_issue HTTP/1.1\" 200", # noqa : E501 + "[DEBUG] [robosign.stg] The notification request was met with response code 200", + "[DEBUG] [robosign.stg] The created notification ticket was created with ID", + "[INFO] [robosign.stg] The notification ticket for renewing the TLS certificate has now been created", # noqa : E501 + "[WARNING] [waiverdb.stg] The specified X.509 TLS certificate is about to expire in under", # noqa : E501 + "[DEBUG] [waiverdb.stg] Notification request attempt count - 1 of 5", + "[DEBUG] Starting new HTTPS connection (1): pagure.io:443", + f"[DEBUG] https://pagure.io:443 \"POST /api/0/{envr['FIRMITAS_TEST_REPONAME']}/new_issue HTTP/1.1\" 200", # noqa : E501 + "[DEBUG] [waiverdb.stg] The notification request was met with response code 200", + "[DEBUG] [waiverdb.stg] The created notification ticket was created with ID", + "[INFO] [waiverdb.stg] The notification ticket for renewing the TLS certificate has now been created", # noqa : E501 + "[INFO] Of 6 TLS certificates, 1 TLS certificate(s) were not valid yet, 1 TLS certificates were not valid anymore and 4 TLS certificates were notified of being near their validity expiry", # noqa : E501 + ] + return list_etoe + + +def list_etoe_nope(list_etoe: list = standard_list.copy()) -> list: # noqa : B008 + list_etoe += [ + "[WARNING] [joystick.stg] The specified X.509 TLS certificate is about to expire in under", + "[DEBUG] [joystick.stg] Notification request attempt count - 1 of 5", + "[DEBUG] [joystick.stg] Notification request attempt count - 2 of 5", + "[DEBUG] [joystick.stg] Notification request attempt count - 3 of 5", + "[DEBUG] [joystick.stg] Notification request attempt count - 4 of 5", + "[DEBUG] [joystick.stg] Notification request attempt count - 5 of 5", + "[DEBUG] [nuancier.stg] Notification request attempt count - 1 of 5", + "[DEBUG] [nuancier.stg] Notification request attempt count - 2 of 5", + "[DEBUG] [nuancier.stg] Notification request attempt count - 3 of 5", + "[DEBUG] [nuancier.stg] Notification request attempt count - 4 of 5", + "[DEBUG] [nuancier.stg] Notification request attempt count - 5 of 5", + "[DEBUG] [robosign.stg] Notification request attempt count - 1 of 5", + "[DEBUG] [robosign.stg] Notification request attempt count - 2 of 5", + "[DEBUG] [robosign.stg] Notification request attempt count - 3 of 5", + "[DEBUG] [robosign.stg] Notification request attempt count - 4 of 5", + "[DEBUG] [robosign.stg] Notification request attempt count - 5 of 5", + "[DEBUG] [waiverdb.stg] Notification request attempt count - 1 of 5", + "[DEBUG] [waiverdb.stg] Notification request attempt count - 2 of 5", + "[DEBUG] [waiverdb.stg] Notification request attempt count - 3 of 5", + "[DEBUG] [waiverdb.stg] Notification request attempt count - 4 of 5", + "[DEBUG] [waiverdb.stg] Notification request attempt count - 5 of 5", + "[DEBUG] Starting new HTTPS connection (1): pagure.io:443", + f"[DEBUG] https://pagure.io:443 \"POST /api/0/{envr['FIRMITAS_TEST_REPONAME']}/new_issue HTTP/1.1\" 401", # noqa : E501 + "[DEBUG] [joystick.stg] The notification request was met with response code 401", + "[DEBUG] [nuancier.stg] The notification request was met with response code 401", + "[DEBUG] [robosign.stg] The notification request was met with response code 401", + "[DEBUG] [waiverdb.stg] The notification request was met with response code 401", + "[WARNING] [mistaken.stg] The specified X.509 TLS certificate is not valid yet", + "[WARNING] [nuancier.stg] The specified X.509 TLS certificate is about to expire in under", + "[WARNING] [robosign.stg] The specified X.509 TLS certificate is about to expire in under", + "[WARNING] [waiverdb.stg] The specified X.509 TLS certificate is about to expire in under", + "[INFO] Of 6 TLS certificates, 1 TLS certificate(s) were not valid yet, 1 TLS certificates were not valid anymore and 0 TLS certificates were notified of being near their validity expiry" # noqa : E501 + ] + return list_etoe diff --git a/test/conftest.py b/test/conftest.py new file mode 100644 index 0000000..34782c5 --- /dev/null +++ b/test/conftest.py @@ -0,0 +1,32 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + +def wipe_cookies(): + def before_record_response(response): + response["headers"]["Set-Cookie"] = "" + return response + return before_record_response + + +def pytest_recording_configure(config, vcr): + vcr.before_record_response = wipe_cookies() diff --git a/test/test_conf.py b/test/test_conf.py new file mode 100644 index 0000000..f437b6b --- /dev/null +++ b/test/test_conf.py @@ -0,0 +1,237 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + +from os import makedirs, path +from secrets import token_hex +from shutil import rmtree + +import pytest +from click.testing import CliRunner + +from firmitas.main import main + + +def locate_config() -> str: + """ + Create a makeshift configuration file for specific testing purposes + """ + + # Generate an unpredictably random hexadecimal + # number for the temporary working directory + secret_identity = token_hex(4) + existing_config_location = f"{path.dirname(path.realpath(__name__))}/firmitas/conf" + workable_config_location = f"/var/tmp/firmitas-{secret_identity}" # noqa : S108 + makedirs(f"{workable_config_location}/certificates") + + # Copy over the standard configuration file to the temporary working directory + # while making necessary changes to the standard configuration file + with open(f"{existing_config_location}/standard.py") as standard_config_file: + standard_config_data = standard_config_file.read().replace( + "/var/tmp/firmitas/certhere", # noqa : S108 + f"{workable_config_location}/certificates" + ).replace( + "/var/tmp/firmitas/certlist.yml", # noqa : S108 + f"{workable_config_location}/certlist.yml" + ) + with open(f"{workable_config_location}/myconfig.py", "w") as myconfig_config_file: + myconfig_config_file.write(standard_config_data) + + # Copy over the certificate listing file to the temporary working directory + # while making necessary changes to the certificate listing file + with open(f"{existing_config_location}/certlist.yml") as standard_certlist_file: + standard_certlist_data = standard_certlist_file.read() + with open(f"{workable_config_location}/certlist.yml", "w") as myconfig_certlist_file: + myconfig_certlist_file.write(standard_certlist_data) + + # Return the location of the newly created configuration file + return f"{workable_config_location}/myconfig.py" + + +def locate_config_gitforge() -> str: + """ + Make specific changes to the standard configuration file to invoke a certain condition + + POSITION - Set a disallowed Git Forge type as the value for the Git Forge variable + EXPECTED - Exception related to the allowed and disallowed Git Forge types + """ + + workable_config_location = locate_config() + with open(workable_config_location) as myconfig_config_file: + myconfig_config_data = myconfig_config_file.read() + with open(workable_config_location, "w") as myconfig_config_file: + myconfig_config_file.write( + myconfig_config_data.replace("gitforge = \"pagure\"", "gitforge = \"gogs\"") + ) + return workable_config_location + + +def locate_config_strgdate() -> str: + """ + Make specific changes to the standard configuration file to invoke a certain condition + + POSITION - Set a string data as the value for the alert duration variable + EXPECTED - Exception related to the data types allowed for the alert duration variable + """ + + workable_config_location = locate_config() + with open(workable_config_location) as myconfig_config_file: + myconfig_config_data = myconfig_config_file.read() + with open(workable_config_location, "w") as myconfig_config_file: + myconfig_config_file.write( + myconfig_config_data.replace("daysqant = 30", "daysqant = \"THIRTY\"") + ) + return workable_config_location + + +def locate_config_negative() -> str: + """ + Make specific changes to the standard configuration file to invoke a certain condition + + POSITION - Set a negative number as the value for the alert duration variable + EXPECTED - Exception related to the data types allowed for the alert duration variable + """ + + workable_config_location = locate_config() + with open(workable_config_location) as myconfig_config_file: + myconfig_config_data = myconfig_config_file.read() + with open(workable_config_location, "w") as myconfig_config_file: + myconfig_config_file.write( + myconfig_config_data.replace("daysqant = 30", "daysqant = -30") + ) + return workable_config_location + + +def locate_config_location() -> str: + """ + Make specific changes to the standard configuration file to invoke a certain condition + + POSITION - Point towards a certificate directory that does not exist + EXPECTED - Exception related to certificate directory not being read + """ + + workable_config_location = locate_config() + with open(workable_config_location) as myconfig_config_file: + myconfig_config_data = myconfig_config_file.read() + with open(workable_config_location, "w") as myconfig_config_file: + myconfig_config_file.write( + myconfig_config_data.replace( + f"{workable_config_location.replace('/myconfig.py', '')}/certificates", + f"{workable_config_location.replace('/myconfig.py', '')}/ZEROEXISTENT" + ) + ) + return workable_config_location + + +def locate_config_hostname() -> str: + """ + Make specific changes to the standard configuration file to invoke a certain condition + + POSITION - Point towards a certificate listing file that does not exist + EXPECTED - Exception related to certificate listing file not being read + """ + + workable_config_location = locate_config() + with open(workable_config_location) as myconfig_config_file: + myconfig_config_data = myconfig_config_file.read() + with open(workable_config_location, "w") as myconfig_config_file: + myconfig_config_file.write( + myconfig_config_data.replace( + f"{workable_config_location.replace('/myconfig.py', '')}/certlist.yml", + f"{workable_config_location.replace('/myconfig.py', '')}/ZEROEXISTENT.yml" + ) + ) + return workable_config_location + + +@pytest.mark.parametrize( + "cmdl, code, text", + [ + pytest.param( + f"--conffile {locate_config()}", + 0, + [ + "[INFO] Probing into the configured directory", + "[INFO] Validating", + "X.509-standard TLS certificates", + "[INFO] Of", + "TLS certificates,", + "TLS certificate(s) were read successfully while", + "TLS certificate(s) could not be read", + ], + id="Configuration - Standard", + ), + pytest.param( + f"--conffile {locate_config_gitforge()}", + 1, + [ + "[ERROR] The specified ticketing repository", + "forge is not yet supported", + ], + id="Configuration - Invalid ticketing repository", + ), + pytest.param( + f"--conffile {locate_config_strgdate()}", + 1, + [ + "[ERROR] The variable 'daysqant' must have", + "a value of the integer data type only", + ], + id="Configuration - Invalid data type", + ), + pytest.param( + f"--conffile {locate_config_negative()}", + 1, + [ + "[ERROR] The variable 'daysqant' must have", + "a non-zero positive integer value", + ], + id="Configuration - Negative integer", + ), + pytest.param( + f"--conffile {locate_config_location()}", + 1, + [ + "[ERROR] Please set the directory containing", + "X.509 standard TLS certificates properly", + ], + id="Configuration - Invalid directory", + ), + pytest.param( + f"--conffile {locate_config_hostname()}", + 1, + [ + "[ERROR] Please set the directory containing", + "the service hostname map properly", + ], + id="Configuration - Unavailable hostfile", + ), + ] +) +def test_conf(cmdl, code, text) -> None: + runner = CliRunner() + result = runner.invoke(main, cmdl) + assert result.exit_code == code # noqa: S101 + for indx in text: + assert indx in result.output # noqa: S101 + folder_location = cmdl.split(" ")[1].replace("/myconfig.py", "") + rmtree(folder_location) diff --git a/test/test_etoe.py b/test/test_etoe.py new file mode 100644 index 0000000..1fdb029 --- /dev/null +++ b/test/test_etoe.py @@ -0,0 +1,166 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + +from os import environ as envr +from os import makedirs, path +from secrets import token_hex +from shutil import copyfile, rmtree +from test import ( + list_etoe_auth, + list_etoe_github, + list_etoe_gitlab, + list_etoe_nope, + list_etoe_pagure, +) + +import pytest +from click.testing import CliRunner + +from firmitas.main import main + + +def locate_config(gitforge: str = "pagure") -> str: + """ + Create a makeshift configuration file for specific testing purposes + """ + + namelist = [ + "dtfedmsg.stg.crt", + "joystick.stg.crt", + "mistaken.stg.crt", + "nuancier.stg.crt", + "robosign.stg.crt", + "waiverdb.stg.crt" + ] + + # Generate an unpredictably random hexadecimal + # number for the temporary working directory + secret_identity = token_hex(4) + + # Source + base_location = f"{path.dirname(path.realpath(__name__))}" + base_standard_location = f"{base_location}/firmitas/conf/standard.py" + base_certlist_location = f"{base_location}/test/assets/certlist.yml" + base_testcert_localist = [f"{base_location}/test/assets/certificates/{indx}" for indx in namelist] # noqa : E501 + + # Destination + test_location = f"/var/tmp/firmitas-{secret_identity}" # noqa : S108 + test_standard_location = f"{test_location}/myconfig.py" + test_certlist_location = f"{test_location}/certlist.yml" + test_testcert_localist = [f"{test_location}/certificates/{indx}" for indx in namelist] + + makedirs(f"{test_location}/certificates") + + # Copy over the standard configuration file to the temporary working directory + # while making necessary changes to the standard configuration file + with open(base_standard_location) as base_standard_file: + test_standard_data = base_standard_file.read().replace( + "/var/tmp/firmitas/certhere", # noqa : S108 + f"{test_location}/certificates" + ).replace( + "/var/tmp/firmitas/certlist.yml", # noqa : S108 + test_certlist_location + ).replace( + "gitforge = \"pagure\"", f"gitforge = \"{gitforge}\"" + ) + with open(test_standard_location, "w") as test_standard_file: + test_standard_file.write(test_standard_data) + + # Copy over the certificate listing file to the temporary working directory + # while making necessary changes to the certificate listing file + copyfile(base_certlist_location, test_certlist_location) + + # Copy over the specific certificates required for the testing purposes from + # the source location to the destination location + for indx in range(len(base_testcert_localist)): + copyfile(base_testcert_localist[indx], test_testcert_localist[indx]) + + # Return the location of the newly created configuration file + return test_standard_location + + +def locate_config_with_simulate_coming_expiry(daysqant: int = 2000, password: str = envr["FIRMITAS_TEST_PASSWORD"]) -> str: # noqa : E501 + """ + Make specific changes to the standard configuration file to invoke a certain condition + """ + + test_standard_location = locate_config() + with open(test_standard_location) as test_standard_file: + test_standard_data = test_standard_file.read().replace( + "daysqant = 30", f"daysqant = {daysqant}" + ).replace( + "username = \"\"", f"username = \"{envr['FIRMITAS_TEST_USERNAME']}\"" + ).replace( + "password = \"\"", f"password = \"{password}\"" + ).replace( + "reponame = \"\"", f"reponame = \"{envr['FIRMITAS_TEST_REPONAME']}\"" + ) + with open(test_standard_location, "w") as test_standard_file: + test_standard_file.write(test_standard_data) + return test_standard_location + + +@pytest.mark.vcr(filter_headers=["Authorization"]) +@pytest.mark.parametrize( + "cmdl, code, text", + [ + pytest.param( + f"--conffile {locate_config()}", + 0, + list_etoe_pagure(), + id = "Standard and mistaken certificates - Pagure", + ), + pytest.param( + f"--conffile {locate_config('gitlab')}", + 1, + list_etoe_gitlab(), + id="Standard and mistaken certificates - GitLab", + ), + pytest.param( + f"--conffile {locate_config('github')}", + 1, + list_etoe_github(), + id="Standard and mistaken certificates - GitHub", + ), + pytest.param( + f"--conffile {locate_config_with_simulate_coming_expiry()}", + 0, + list_etoe_auth(), + id="Invoke notifications with accurate password", + ), + pytest.param( + f"--conffile {locate_config_with_simulate_coming_expiry(password="MISTAKEN")}", # noqa : S106 + 0, + list_etoe_nope(), + id="Invoke notifications with mistaken password", + ) + ] +) +def test_etoe(cmdl, code, text) -> None: + runner = CliRunner() + result = runner.invoke(main, cmdl) + assert result.exit_code == code # noqa: S101 + for indx in text: + assert indx in result.output # noqa: S101 + folder_location = cmdl.split(" ")[1].replace("/myconfig.py", "") + rmtree(folder_location) diff --git a/test/test_main.py b/test/test_main.py new file mode 100644 index 0000000..aeae9ef --- /dev/null +++ b/test/test_main.py @@ -0,0 +1,101 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + +import pytest +from click.testing import CliRunner + +from firmitas.main import main + + +@pytest.mark.parametrize( + "cmdl, code, text", + [ + pytest.param( + "--help", + 0, + [ + "Usage: firmitas [OPTIONS]", + "Options:", + "-c, --conffile PATH", + "Read configuration from the specified Python file", + "--version", + "Show the version and exit.", + "--help", + "Show this message and exit.", + ], + id="Option - Basic help", + ), + pytest.param( + "--version", + 0, + [ + "firmitas, version", + ], + id="Option - Version information", + ), + pytest.param( + "--zeroexistent", + 2, + [ + "Usage: firmitas [OPTIONS]", + "Try 'firmitas --help' for help.", + "Error: No such option: --zeroexistent", + ], + id="Option - Invalid invocation", + ), + pytest.param( + "zeroexistent", + 2, + [ + "Usage: firmitas [OPTIONS]", + "Try 'firmitas --help' for help.", + "Error: Got unexpected extra argument (zeroexistent)", + ], + id="Option - Invalid argument", + ), + pytest.param( + "--conffile", + 2, + [ + "Error: Option '--conffile' requires an argument.", + ], + id="Configuration - Parameter absent", + ), + pytest.param( + "--conffile ZEROEXISTENT", + 2, + [ + "Usage: firmitas [OPTIONS]", + "Try 'firmitas --help' for help.", + "Error: Invalid value for '-c' / '--conffile': Path 'ZEROEXISTENT' does not exist.", + ], + id="Configuration - Parameter invalid", + ), + ] +) +def test_main(cmdl, code, text) -> None: + runner = CliRunner() + result = runner.invoke(main, cmdl) + assert result.exit_code == code # noqa: S101 + for indx in text: + assert indx in result.output # noqa: S101 diff --git a/test/test_pagure.py b/test/test_pagure.py new file mode 100644 index 0000000..2ca01d0 --- /dev/null +++ b/test/test_pagure.py @@ -0,0 +1,32 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + +from unittest.mock import Mock + +from firmitas.unit import gopagure + + +def test_pagure(): + gopagure.post = Mock() + gopagure.post.side_effect = Exception() + assert (False, "", "") == gopagure.makenote(0, "", "", "", 0, 0, "", "", "", "") # noqa : S101 From 21cfc0e37b0cfbf238ad83fef71aad11f366e41c Mon Sep 17 00:00:00 2001 From: Akashdeep Date: Tue, 23 Apr 2024 10:15:45 +0000 Subject: [PATCH 4/7] Add static assets for testing including config, cassettes and certs --- test/assets/certificates/dtfedmsg.stg.crt | 85 ++ test/assets/certificates/joystick.stg.crt | 85 ++ test/assets/certificates/mistaken.stg.crt | 0 test/assets/certificates/nuancier.stg.crt | 85 ++ test/assets/certificates/robosign.stg.crt | 85 ++ test/assets/certificates/waiverdb.stg.crt | 85 ++ test/assets/certlist.yml | 97 ++ ...ifications by stating an expiry date].yaml | 974 ++++++++++++++ ...notifications with accurate password].yaml | 326 +++++ ...notifications with mistaken password].yaml | 1122 +++++++++++++++++ 10 files changed, 2944 insertions(+) create mode 100644 test/assets/certificates/dtfedmsg.stg.crt create mode 100644 test/assets/certificates/joystick.stg.crt create mode 100644 test/assets/certificates/mistaken.stg.crt create mode 100644 test/assets/certificates/nuancier.stg.crt create mode 100644 test/assets/certificates/robosign.stg.crt create mode 100644 test/assets/certificates/waiverdb.stg.crt create mode 100644 test/assets/certlist.yml create mode 100644 test/cassettes/test_etoe/test_etoe[Invoke notifications by stating an expiry date].yaml create mode 100644 test/cassettes/test_etoe/test_etoe[Invoke notifications with accurate password].yaml create mode 100644 test/cassettes/test_etoe/test_etoe[Invoke notifications with mistaken password].yaml diff --git a/test/assets/certificates/dtfedmsg.stg.crt b/test/assets/certificates/dtfedmsg.stg.crt new file mode 100644 index 0000000..eac9910 --- /dev/null +++ b/test/assets/certificates/dtfedmsg.stg.crt @@ -0,0 +1,85 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 33:40:21:47:ed:27:a0:33:6c:08:c3:8d:f4:2b:df:19 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=RabbitMQ STAGING CA + Validity + Not Before: Nov 10 12:02:06 2021 GMT + Not After : Feb 13 12:02:06 2024 GMT + Subject: CN=dtfedmsg.stg + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:d9:1d:59:dd:c0:b7:ab:e5:80:74:94:23:7b:09: + ca:da:70:6b:66:d5:f7:b0:97:58:39:0a:d7:79:d9: + ea:b0:b4:48:48:11:9c:ed:86:dc:72:58:09:2a:fe: + c9:b4:b2:e6:88:cc:2e:bd:e9:b7:90:3c:6a:42:bd: + 60:98:eb:13:bd:e7:03:04:cc:7f:2e:19:c5:40:8d: + 96:99:cf:13:ff:9d:83:1b:17:e6:4f:d2:f7:73:90: + 67:a4:cf:60:6b:fa:c1:e4:ed:d3:c0:40:57:ff:1c: + ae:12:46:8c:f1:95:d5:e1:21:cd:7a:1e:02:cf:4a: + 41:c7:73:ce:fd:b8:b2:1c:4d:07:fe:4b:a7:40:d3: + 01:37:77:47:c5:53:27:4f:7e:d7:76:08:29:15:7b: + 38:40:5e:e7:89:29:68:d1:f4:4f:41:73:f1:d5:b3: + ba:63:b2:1a:38:bf:1b:4f:93:e4:c8:77:ea:27:1c: + 32:59:b6:1d:29:4b:01:3e:45:de:7e:2b:c7:9d:eb: + f8:ce:99:26:0d:70:4c:e9:96:68:91:2c:f4:1a:6a: + 66:ed:ff:b4:77:69:d1:d2:93:df:4a:36:16:2e:c9: + 2d:0c:41:b1:5b:86:43:9b:66:60:e1:62:61:ec:59: + 76:81:08:89:87:1f:11:53:21:41:c1:1b:e8:49:9d: + b3:89 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 45:96:4C:8B:9B:95:65:EC:3B:DB:20:BB:97:7E:7F:64:E5:7A:A9:24 + X509v3 Authority Key Identifier: + keyid:1D:09:28:CE:6E:FC:49:0C:BB:7F:B5:98:72:93:61:14:1E:14:7B:57 + DirName:/CN=RabbitMQ STAGING CA + serial:A4:EF:1A:E4:EF:14:D6:7F + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + 9c:08:d2:c0:8e:f3:67:ae:92:5a:0d:2c:2f:cf:3d:59:d8:f3: + d0:ef:c4:b5:ff:30:dc:a9:67:1b:a9:cd:53:e1:af:1d:d4:f7: + 02:cc:5c:45:55:e2:59:d4:a4:39:76:49:6c:6f:a8:5e:d6:cc: + f8:e8:02:ce:b8:38:d1:5b:52:8a:dd:a9:c3:19:ab:a7:59:b5: + 2b:95:02:f1:0c:96:a6:6c:8a:d1:06:0e:71:1f:03:b2:ae:9f: + 99:9b:0c:05:d3:a5:84:f6:9b:31:27:42:50:87:80:e1:13:bb: + 46:ae:81:5b:27:2e:56:63:b7:0b:07:b8:c8:95:17:da:47:56: + db:16:f2:a1:36:04:79:19:05:3d:f9:09:11:7d:97:cd:76:0b: + b7:9b:6d:05:e1:ed:c4:0a:3b:8e:7b:07:b7:7c:ff:22:3a:d6: + db:69:fd:80:0f:6b:64:f3:e0:8d:ac:71:05:cc:9b:5d:69:a0: + 13:6e:40:ae:b0:71:92:ae:59:5b:c1:e5:5c:9b:28:5e:77:24: + c2:3d:75:1c:59:f4:84:bf:ea:95:a8:6b:c8:e5:43:ed:cd:2e: + 15:49:48:4a:b0:23:c4:b5:21:76:b8:63:37:87:84:ff:ae:31: + 48:1f:ca:d7:02:f1:fd:09:6f:4e:81:eb:36:84:13:64:d6:1d: + 8d:a3:6e:0d +-----BEGIN CERTIFICATE----- +MIIDZzCCAk+gAwIBAgIQM0AhR+0noDNsCMON9CvfGTANBgkqhkiG9w0BAQsFADAe +MRwwGgYDVQQDDBNSYWJiaXRNUSBTVEFHSU5HIENBMB4XDTIxMTExMDEyMDIwNloX +DTI0MDIxMzEyMDIwNlowHzEdMBsGA1UEAwwUZGlzY291cnNlMmZlZG1zZy5zdGcw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZHVndwLer5YB0lCN7Ccra +cGtm1fewl1g5Ctd52eqwtEhIEZzthtxyWAkq/sm0suaIzC696beQPGpCvWCY6xO9 +5wMEzH8uGcVAjZaZzxP/nYMbF+ZP0vdzkGekz2Br+sHk7dPAQFf/HK4SRozxldXh +Ic16HgLPSkHHc879uLIcTQf+S6dA0wE3d0fFUydPftd2CCkVezhAXueJKWjR9E9B +c/HVs7pjsho4vxtPk+TId+onHDJZth0pSwE+Rd5+K8ed6/jOmSYNcEzplmiRLPQa +ambt/7R3adHSk99KNhYuyS0MQbFbhkObZmDhYmHsWXaBCImHHxFTIUHBG+hJnbOJ +AgMBAAGjgZ8wgZwwCQYDVR0TBAIwADAdBgNVHQ4EFgQURZZMi5uVZew72yC7l35/ +ZOV6qSQwTgYDVR0jBEcwRYAUHQkozm78SQy7f7WYcpNhFB4Ue1ehIqQgMB4xHDAa +BgNVBAMME1JhYmJpdE1RIFNUQUdJTkcgQ0GCCQCk7xrk7xTWfzATBgNVHSUEDDAK +BggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJKoZIhvcNAQELBQADggEBAJwI0sCO +82eukloNLC/PPVnY89DvxLX/MNypZxupzVPhrx3U9wLMXEVV4lnUpDl2SWxvqF7W +zPjoAs64ONFbUordqcMZq6dZtSuVAvEMlqZsitEGDnEfA7Kun5mbDAXTpYT2mzEn +QlCHgOETu0augVsnLlZjtwsHuMiVF9pHVtsW8qE2BHkZBT35CRF9l812C7ebbQXh +7cQKO457B7d8/yI61ttp/YAPa2Tz4I2scQXMm11poBNuQK6wcZKuWVvB5VybKF53 +JMI9dRxZ9IS/6pWoa8jlQ+3NLhVJSEqwI8S1IXa4YzeHhP+uMUgfytcC8f0Jb06B +6zaEE2TWHY2jbg0= +-----END CERTIFICATE----- diff --git a/test/assets/certificates/joystick.stg.crt b/test/assets/certificates/joystick.stg.crt new file mode 100644 index 0000000..baa05a7 --- /dev/null +++ b/test/assets/certificates/joystick.stg.crt @@ -0,0 +1,85 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 21:82:60:77:8c:c2:6a:df:6b:c0:fd:39:50:fb:b1:6e + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=RabbitMQ STAGING CA + Validity + Not Before: May 28 23:04:35 2019 GMT + Not After : May 25 23:04:35 2029 GMT + Subject: CN=joystick.stg + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c1:ed:b3:30:76:bb:98:f4:13:81:66:ef:c7:24: + b8:07:61:2d:84:c5:a8:6f:2f:72:c3:07:1a:fc:82: + 6a:66:f9:2c:92:c5:47:64:17:13:8f:26:a4:bc:55: + 47:08:67:78:0a:7c:a0:9e:aa:c3:26:2f:ae:ee:bb: + 23:08:89:10:76:8e:35:aa:7a:01:9d:1e:41:ac:6a: + 03:9d:f7:8d:69:07:2a:82:8a:fb:89:20:66:58:c1: + a1:75:5e:02:65:42:b7:27:e5:06:d1:50:76:c6:65: + f6:d8:a8:af:d0:c5:12:e1:11:ff:5c:12:cb:00:d7: + c3:94:e2:08:d4:d6:9a:51:d0:ad:79:9d:64:cb:da: + 9d:f5:c7:ec:73:da:47:76:07:bb:7c:70:0e:d8:8b: + 5e:44:ed:e0:56:f1:01:23:48:c1:b3:29:10:df:f9: + 9f:e1:c9:b2:57:91:d2:ad:59:e8:36:08:4b:9b:fd: + f9:d4:fc:2c:ed:b3:fb:aa:fe:66:11:5f:f4:ba:58: + 88:4e:29:cf:38:98:d6:f5:ca:cd:e6:e8:fa:5f:63: + fd:26:fb:e4:d2:b3:4d:dc:69:d5:43:9d:07:8e:5e: + 7e:9f:95:ec:e6:a4:b4:6d:a0:1b:53:ce:7c:da:61: + 44:f0:bb:e0:a0:71:78:38:eb:23:06:77:58:ec:56: + 02:41 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + E3:AA:53:48:11:09:94:99:AE:BB:9F:09:7A:50:C0:07:0F:F0:67:59 + X509v3 Authority Key Identifier: + keyid:1D:09:28:CE:6E:FC:49:0C:BB:7F:B5:98:72:93:61:14:1E:14:7B:57 + DirName:/CN=RabbitMQ STAGING CA + serial:A4:EF:1A:E4:EF:14:D6:7F + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + 7a:5e:51:66:16:c3:85:81:85:e5:af:17:78:af:16:c0:ab:42: + 7a:c3:a4:54:b1:3a:44:bc:6a:a4:32:e9:0f:d7:79:98:5d:8d: + 94:48:30:73:56:0d:68:65:07:03:c6:05:93:96:ff:d9:15:8f: + 0e:35:f9:2d:5e:f4:a9:63:80:37:e1:87:14:82:87:4c:fb:ef: + 67:12:18:3b:23:9a:4c:32:ba:97:1e:f3:4f:4b:d8:b9:eb:51: + 50:8b:a1:bb:26:92:4b:b6:80:b9:0a:29:2e:3b:36:e4:b7:d1: + 71:8c:fc:81:12:b3:75:52:07:cd:04:c0:2b:44:d5:5c:08:9b: + 89:3d:ed:0d:63:13:60:82:f3:80:8e:4a:b8:0c:0c:d4:29:05: + a9:9e:c9:cf:a2:40:55:eb:82:f8:f0:62:ed:01:9c:37:9b:fd: + 32:c4:e3:ef:ab:87:05:d3:63:bb:ee:71:7e:41:2f:a5:fa:6f: + 66:44:8b:8e:5d:52:b0:5c:4a:1c:ab:ac:a3:9a:08:ab:dd:6b: + 73:ef:72:28:3e:d7:ce:2f:2e:9a:6a:b9:d8:49:c6:b5:cb:ba: + b3:4e:89:36:58:13:dd:92:e9:13:cc:b2:b9:15:9d:1d:ef:ac: + d2:af:d7:2a:77:29:3f:37:b1:3f:7f:b2:88:e4:c8:2f:22:52: + e9:6c:68:5c +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgIQIYJgd4zCat9rwP05UPuxbjANBgkqhkiG9w0BAQsFADAe +MRwwGgYDVQQDDBNSYWJiaXRNUSBTVEFHSU5HIENBMB4XDTE5MDUyODIzMDQzNVoX +DTI5MDUyNTIzMDQzNVowFzEVMBMGA1UEAwwMam95c3RpY2suc3RnMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwe2zMHa7mPQTgWbvxyS4B2EthMWoby9y +wwca/IJqZvksksVHZBcTjyakvFVHCGd4CnygnqrDJi+u7rsjCIkQdo41qnoBnR5B +rGoDnfeNaQcqgor7iSBmWMGhdV4CZUK3J+UG0VB2xmX22Kiv0MUS4RH/XBLLANfD +lOII1NaaUdCteZ1ky9qd9cfsc9pHdge7fHAO2IteRO3gVvEBI0jBsykQ3/mf4cmy +V5HSrVnoNghLm/351Pws7bP7qv5mEV/0uliITinPOJjW9crN5uj6X2P9Jvvk0rNN +3GnVQ50Hjl5+n5Xs5qS0baAbU8582mFE8LvgoHF4OOsjBndY7FYCQQIDAQABo4Gf +MIGcMAkGA1UdEwQCMAAwHQYDVR0OBBYEFOOqU0gRCZSZrrufCXpQwAcP8GdZME4G +A1UdIwRHMEWAFB0JKM5u/EkMu3+1mHKTYRQeFHtXoSKkIDAeMRwwGgYDVQQDDBNS +YWJiaXRNUSBTVEFHSU5HIENBggkApO8a5O8U1n8wEwYDVR0lBAwwCgYIKwYBBQUH +AwIwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBCwUAA4IBAQB6XlFmFsOFgYXlrxd4 +rxbAq0J6w6RUsTpEvGqkMukP13mYXY2USDBzVg1oZQcDxgWTlv/ZFY8ONfktXvSp +Y4A34YcUgodM++9nEhg7I5pMMrqXHvNPS9i561FQi6G7JpJLtoC5CikuOzbkt9Fx +jPyBErN1UgfNBMArRNVcCJuJPe0NYxNggvOAjkq4DAzUKQWpnsnPokBV64L48GLt +AZw3m/0yxOPvq4cF02O77nF+QS+l+m9mRIuOXVKwXEocq6yjmgir3Wtz73IoPtfO +Ly6aarnYSca1y7qzTok2WBPdkukTzLK5FZ0d76zSr9cqdyk/N7E/f7KI5MgvIlLp +bGhc +-----END CERTIFICATE----- diff --git a/test/assets/certificates/mistaken.stg.crt b/test/assets/certificates/mistaken.stg.crt new file mode 100644 index 0000000..e69de29 diff --git a/test/assets/certificates/nuancier.stg.crt b/test/assets/certificates/nuancier.stg.crt new file mode 100644 index 0000000..b9bc32e --- /dev/null +++ b/test/assets/certificates/nuancier.stg.crt @@ -0,0 +1,85 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 9d:49:2e:7d:96:77:23:e0:fa:d8:3c:59:a6:bf:5a:3e + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=RabbitMQ STAGING CA + Validity + Not Before: Feb 21 18:34:13 2019 GMT + Not After : Feb 18 18:34:13 2029 GMT + Subject: CN=nuancier.stg + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:b6:fb:db:24:39:f2:1c:e5:2c:f1:63:36:6f:5c: + 09:93:08:9c:7f:b4:c9:ef:34:4e:58:d1:9b:c5:4f: + 9d:32:29:32:b0:93:da:c8:e5:df:45:11:14:80:6c: + 7b:b2:b5:a8:39:c5:da:91:82:1f:a8:ac:59:3f:bd: + 05:90:63:14:31:9f:d9:52:89:dd:a6:00:7d:85:95: + b0:11:db:8c:68:c7:9f:95:67:74:54:74:63:4b:d8: + 58:ac:75:c0:5a:f1:fe:6f:fd:f9:a2:d2:ee:af:0e: + 95:ee:39:25:59:4a:26:15:3b:87:75:1f:7a:ed:c4: + 0f:d5:86:75:34:c9:3a:02:ab:54:9f:0c:94:a7:37: + 73:93:b0:54:f1:36:fa:5b:46:f5:3a:e1:b0:b5:b2: + f4:ed:ed:61:15:56:f1:0e:48:e7:7e:fe:99:5d:62: + d7:46:6f:d9:45:34:5f:cf:dd:87:df:a4:50:98:7b: + 02:6b:a9:0f:dc:96:b0:77:02:bc:52:79:1a:12:64: + b8:69:6d:bb:83:be:b8:21:52:e2:96:e9:7a:d1:96: + 7c:30:9f:8c:d3:40:6c:34:2e:01:08:4a:11:33:3c: + 59:4a:2e:a4:79:a0:d9:28:80:0c:f3:23:15:e2:0e: + 9f:6f:56:4a:2f:24:2b:bc:58:17:37:bf:2e:91:ab: + 74:97 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 24:F0:9A:FB:34:A2:23:5C:7A:76:E0:47:5E:C4:B0:48:61:13:79:E1 + X509v3 Authority Key Identifier: + keyid:1D:09:28:CE:6E:FC:49:0C:BB:7F:B5:98:72:93:61:14:1E:14:7B:57 + DirName:/CN=RabbitMQ STAGING CA + serial:A4:EF:1A:E4:EF:14:D6:7F + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + 02:ae:9c:00:4a:09:a6:f6:19:0d:8d:db:4d:72:b0:e4:e6:25: + f0:fb:98:bc:b7:79:cb:ab:b0:f6:d3:1f:1b:a1:52:96:72:67: + ff:84:b4:7d:97:e3:4f:d4:f2:2e:fd:37:02:46:d5:29:a1:49: + a3:4b:23:69:40:4d:62:16:d8:e3:2c:e7:91:d7:06:2f:a2:89: + 7e:9c:96:87:94:fc:0d:f3:a5:3d:02:db:aa:5b:e4:a2:d8:1b: + 06:83:bd:ab:51:70:2b:b3:11:78:29:c4:56:63:0c:76:d2:44: + 4f:9d:c1:5f:fe:6e:38:2d:4f:f2:6a:4f:46:42:17:ea:10:fe: + 4a:59:18:31:0c:f0:01:61:da:57:95:12:10:2e:8a:5c:bc:4d: + 02:6b:dc:ac:16:81:a1:5d:13:49:50:83:0f:21:07:44:e8:c5: + c0:72:3b:38:ab:c9:d6:74:8b:dd:1b:f2:25:42:6f:f9:70:d9: + 4f:97:24:fd:7a:20:b5:cf:e4:48:aa:ae:65:51:69:3f:5f:9c: + b8:9c:15:45:fc:43:9f:e0:0a:d2:b6:ab:30:35:a0:fe:01:20: + 3d:c3:0c:a7:b9:a8:87:44:88:84:0b:f3:e0:cb:07:ba:cc:44: + 53:b7:7c:a8:a1:40:61:d4:0e:e3:08:83:05:f6:f8:78:6b:78: + 2a:de:03:a0 +-----BEGIN CERTIFICATE----- +MIIDYDCCAkigAwIBAgIRAJ1JLn2WdyPg+tg8Waa/Wj4wDQYJKoZIhvcNAQELBQAw +HjEcMBoGA1UEAwwTUmFiYml0TVEgU1RBR0lORyBDQTAeFw0xOTAyMjExODM0MTNa +Fw0yOTAyMTgxODM0MTNaMBcxFTATBgNVBAMMDG51YW5jaWVyLnN0ZzCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALb72yQ58hzlLPFjNm9cCZMInH+0ye80 +TljRm8VPnTIpMrCT2sjl30URFIBse7K1qDnF2pGCH6isWT+9BZBjFDGf2VKJ3aYA +fYWVsBHbjGjHn5VndFR0Y0vYWKx1wFrx/m/9+aLS7q8Ole45JVlKJhU7h3Ufeu3E +D9WGdTTJOgKrVJ8MlKc3c5OwVPE2+ltG9TrhsLWy9O3tYRVW8Q5I537+mV1i10Zv +2UU0X8/dh9+kUJh7AmupD9yWsHcCvFJ5GhJkuGltu4O+uCFS4pbpetGWfDCfjNNA +bDQuAQhKETM8WUoupHmg2SiADPMjFeIOn29WSi8kK7xYFze/LpGrdJcCAwEAAaOB +nzCBnDAJBgNVHRMEAjAAMB0GA1UdDgQWBBQk8Jr7NKIjXHp24EdexLBIYRN54TBO +BgNVHSMERzBFgBQdCSjObvxJDLt/tZhyk2EUHhR7V6EipCAwHjEcMBoGA1UEAwwT +UmFiYml0TVEgU1RBR0lORyBDQYIJAKTvGuTvFNZ/MBMGA1UdJQQMMAoGCCsGAQUF +BwMCMAsGA1UdDwQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAQEAAq6cAEoJpvYZDY3b +TXKw5OYl8PuYvLd5y6uw9tMfG6FSlnJn/4S0fZfjT9TyLv03AkbVKaFJo0sjaUBN +YhbY4yznkdcGL6KJfpyWh5T8DfOlPQLbqlvkotgbBoO9q1FwK7MReCnEVmMMdtJE +T53BX/5uOC1P8mpPRkIX6hD+SlkYMQzwAWHaV5USEC6KXLxNAmvcrBaBoV0TSVCD +DyEHROjFwHI7OKvJ1nSL3RvyJUJv+XDZT5ck/Xogtc/kSKquZVFpP1+cuJwVRfxD +n+AK0rarMDWg/gEgPcMMp7moh0SIhAvz4MsHusxEU7d8qKFAYdQO4wiDBfb4eGt4 +Kt4DoA== +-----END CERTIFICATE----- diff --git a/test/assets/certificates/robosign.stg.crt b/test/assets/certificates/robosign.stg.crt new file mode 100644 index 0000000..cddda8d --- /dev/null +++ b/test/assets/certificates/robosign.stg.crt @@ -0,0 +1,85 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 1d:55:00:a3:a7:40:1d:2d:98:5e:00:25:e8:1b:49:fb + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=RabbitMQ STAGING CA + Validity + Not Before: Sep 20 22:29:56 2019 GMT + Not After : Sep 17 22:29:56 2029 GMT + Subject: CN=robosign.stg + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:eb:d7:3e:10:a5:54:39:7d:d3:f6:ed:ae:23:c7: + 96:fc:c0:f6:e5:ea:95:87:ae:5c:96:1f:61:76:14: + eb:cd:ec:62:98:dd:4a:e6:94:5f:38:ef:f8:bc:86: + 9f:cc:dc:4b:b1:46:2e:0b:05:19:7b:ea:44:93:34: + 21:24:47:8d:1d:7e:4e:90:58:e3:03:35:9c:4f:a7: + 0c:e2:80:f0:b2:d1:a8:c0:f8:79:de:12:d7:70:6c: + 0b:45:9c:c9:c2:9c:04:63:34:1b:2e:f8:87:0b:eb: + 20:fb:5a:5e:d7:69:3b:28:50:3f:71:b0:42:e3:c9: + d4:03:fe:63:82:ac:35:f4:e0:39:2e:67:b0:09:00: + 50:37:8b:96:e7:ae:1a:9a:2f:db:1f:d2:16:5b:f0: + fc:00:e8:c0:33:17:ef:57:91:d8:70:78:fa:eb:3c: + 23:ce:75:08:9a:82:9a:8a:d3:87:08:64:43:6c:bb: + 67:68:52:24:c4:6d:11:f4:48:01:5a:8f:a0:51:22: + ef:1b:9a:5f:59:de:93:81:46:e6:95:f0:b7:fe:ac: + d0:ef:76:e0:c4:89:b9:e5:79:47:8a:2d:dd:5b:22: + 90:46:34:31:51:82:cd:24:91:f6:ea:3d:ca:5f:97: + 7c:4a:b9:9b:49:f8:38:22:fd:ef:e8:de:b5:0e:ff: + 35:f7 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 1B:FB:85:51:38:51:4F:DA:D4:C9:5B:B8:E1:5B:40:2D:5F:BA:33:19 + X509v3 Authority Key Identifier: + keyid:1D:09:28:CE:6E:FC:49:0C:BB:7F:B5:98:72:93:61:14:1E:14:7B:57 + DirName:/CN=RabbitMQ STAGING CA + serial:A4:EF:1A:E4:EF:14:D6:7F + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + 19:28:02:4a:f4:34:53:90:a1:fb:17:7b:ca:75:73:63:59:db: + 88:3e:58:60:64:30:85:7f:8a:f1:42:53:eb:20:8a:03:c4:39: + a3:75:59:84:ce:52:6b:8e:00:93:f8:ef:c9:4f:d9:7e:a5:5f: + 9d:06:40:f3:0b:17:36:0f:8a:d1:36:e5:e0:43:8d:43:a6:d5: + a8:85:bf:62:ba:b0:c4:85:cb:d2:fb:3c:60:73:a3:39:10:93: + fa:29:49:5c:1a:7a:af:48:5a:f5:6f:47:61:f5:1b:e2:e3:a4: + f1:d1:de:76:27:7d:08:69:53:0b:4b:5d:24:e3:b7:e4:27:ce: + ec:78:85:f1:88:ca:91:15:43:0a:f0:da:75:0a:18:d3:0e:f3: + 30:50:c9:cc:12:6d:66:0d:36:ba:25:5c:88:ec:2b:b8:51:fe: + d0:e4:fc:f2:30:fd:cf:58:73:a4:40:40:9b:0b:d2:c1:5d:20: + 02:0f:db:7e:ac:fa:b6:59:c4:65:51:ee:78:e6:36:07:07:5f: + c0:a9:04:14:d8:14:df:36:a3:c5:f6:2e:c2:56:9c:0a:25:d7: + eb:04:85:d4:71:92:c9:02:6d:45:1a:15:c8:f1:f9:78:09:d1: + 11:7f:bb:f0:5a:51:1f:56:0e:26:75:31:40:eb:7f:81:fc:b6: + 3e:0a:28:71 +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgIQHVUAo6dAHS2YXgAl6BtJ+zANBgkqhkiG9w0BAQsFADAe +MRwwGgYDVQQDDBNSYWJiaXRNUSBTVEFHSU5HIENBMB4XDTE5MDkyMDIyMjk1NloX +DTI5MDkxNzIyMjk1NlowFzEVMBMGA1UEAwwMcm9ib3NpZ24uc3RnMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA69c+EKVUOX3T9u2uI8eW/MD25eqVh65c +lh9hdhTrzeximN1K5pRfOO/4vIafzNxLsUYuCwUZe+pEkzQhJEeNHX5OkFjjAzWc +T6cM4oDwstGowPh53hLXcGwLRZzJwpwEYzQbLviHC+sg+1pe12k7KFA/cbBC48nU +A/5jgqw19OA5LmewCQBQN4uW564ami/bH9IWW/D8AOjAMxfvV5HYcHj66zwjznUI +moKaitOHCGRDbLtnaFIkxG0R9EgBWo+gUSLvG5pfWd6TgUbmlfC3/qzQ73bgxIm5 +5XlHii3dWyKQRjQxUYLNJJH26j3KX5d8SrmbSfg4Iv3v6N61Dv819wIDAQABo4Gf +MIGcMAkGA1UdEwQCMAAwHQYDVR0OBBYEFBv7hVE4UU/a1MlbuOFbQC1fujMZME4G +A1UdIwRHMEWAFB0JKM5u/EkMu3+1mHKTYRQeFHtXoSKkIDAeMRwwGgYDVQQDDBNS +YWJiaXRNUSBTVEFHSU5HIENBggkApO8a5O8U1n8wEwYDVR0lBAwwCgYIKwYBBQUH +AwIwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBCwUAA4IBAQAZKAJK9DRTkKH7F3vK +dXNjWduIPlhgZDCFf4rxQlPrIIoDxDmjdVmEzlJrjgCT+O/JT9l+pV+dBkDzCxc2 +D4rRNuXgQ41DptWohb9iurDEhcvS+zxgc6M5EJP6KUlcGnqvSFr1b0dh9Rvi46Tx +0d52J30IaVMLS10k47fkJ87seIXxiMqRFUMK8Np1ChjTDvMwUMnMEm1mDTa6JVyI +7Cu4Uf7Q5PzyMP3PWHOkQECbC9LBXSACD9t+rPq2WcRlUe545jYHB1/AqQQU2BTf +NqPF9i7CVpwKJdfrBIXUcZLJAm1FGhXI8fl4CdERf7vwWlEfVg4mdTFA63+B/LY+ +Cihx +-----END CERTIFICATE----- diff --git a/test/assets/certificates/waiverdb.stg.crt b/test/assets/certificates/waiverdb.stg.crt new file mode 100644 index 0000000..002d44f --- /dev/null +++ b/test/assets/certificates/waiverdb.stg.crt @@ -0,0 +1,85 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 05:36:de:3d:d1:30:d0:25:c6:84:ab:df:c8:ce:9c:0a + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=RabbitMQ STAGING CA + Validity + Not Before: Mar 6 23:58:40 2019 GMT + Not After : Mar 3 23:58:40 2029 GMT + Subject: CN=waiverdb.stg + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ef:aa:c5:28:9b:8b:e3:a7:f7:f2:bf:27:7a:1a: + 0e:56:eb:13:6a:15:51:64:09:a8:03:de:2d:8b:a5: + 48:6b:f7:f0:f0:a4:41:c6:0d:77:77:69:b7:22:42: + 86:41:36:7f:f4:c9:8d:59:96:30:26:56:60:79:9c: + f6:20:ec:08:12:c1:3e:86:8e:64:95:df:c4:5c:6c: + 33:ba:0c:b4:0f:5f:6b:f4:2e:57:8d:72:19:83:da: + 30:5c:55:35:32:8a:b6:90:3d:a1:b4:05:3d:db:f9: + 38:6d:3d:a7:98:59:6b:5d:fc:f3:22:88:e3:45:da: + 92:38:1a:4a:d5:1a:7c:b8:04:2e:c7:26:48:f3:e0: + 11:fb:08:75:eb:c4:b2:e3:58:cd:32:2a:87:59:0d: + ad:b4:03:23:81:89:c9:5f:aa:be:9d:1d:91:83:59: + 36:53:ac:80:dc:b4:60:a0:af:42:5d:a0:b6:a5:5f: + c2:15:dc:f7:56:25:20:c5:4e:b2:e1:74:8e:6b:60: + a5:3e:fe:78:60:e4:e8:b7:94:46:83:38:10:9f:aa: + 40:2c:b9:64:69:c1:a7:40:bd:47:34:6b:65:a4:71: + 19:35:3a:31:5a:34:e1:76:a5:5d:63:67:8b:69:67: + 0b:ae:eb:3d:7c:24:79:33:d2:e2:a3:1c:cf:ef:71: + 1d:13 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 02:B3:20:C0:C8:9A:D1:A1:05:10:46:B5:87:45:DC:C6:E7:40:AD:FE + X509v3 Authority Key Identifier: + keyid:1D:09:28:CE:6E:FC:49:0C:BB:7F:B5:98:72:93:61:14:1E:14:7B:57 + DirName:/CN=RabbitMQ STAGING CA + serial:A4:EF:1A:E4:EF:14:D6:7F + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + 5b:fc:1f:89:24:e4:bf:c8:d7:d5:84:cd:3d:77:fa:f5:d8:af: + 79:c5:73:96:ce:08:af:25:00:f5:00:9c:d7:f7:2a:ee:92:ec: + 9f:81:00:e0:a5:35:a8:83:b5:f7:65:89:29:0a:e7:7f:d8:88: + 17:25:99:8f:32:72:81:87:6d:48:b5:a8:71:07:f2:05:f7:5c: + 96:31:19:01:66:fd:e0:45:96:99:cc:dc:49:61:6a:05:7e:67: + 27:46:ca:c0:1f:c2:7f:07:7a:87:ae:00:57:fb:20:14:70:cc: + 0f:00:49:dd:de:7f:fc:c9:1b:a9:23:ae:92:63:67:9e:4c:46: + 89:9b:cb:4c:73:45:d6:ef:75:06:14:8b:cb:74:48:26:7b:b8: + 56:c4:2a:a8:b8:f3:70:38:9a:d2:f7:84:ef:72:5d:3a:c1:1c: + 00:ac:ee:c7:58:30:cf:03:33:6c:06:a0:73:cf:7a:5f:ee:71: + e4:60:46:38:cd:ee:13:38:2b:25:7f:b8:7b:7f:a5:9a:a6:86: + 7c:a8:43:7f:5e:51:ff:2a:bc:79:e1:27:6d:6e:8d:46:80:c6: + 6f:ab:1b:04:f7:24:9e:d8:70:df:88:5c:3c:d2:7a:60:5a:39: + ed:3c:91:24:40:74:3e:88:69:bc:b6:f1:d8:2c:e4:12:50:94: + 16:dc:c2:2b +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgIQBTbePdEw0CXGhKvfyM6cCjANBgkqhkiG9w0BAQsFADAe +MRwwGgYDVQQDDBNSYWJiaXRNUSBTVEFHSU5HIENBMB4XDTE5MDMwNjIzNTg0MFoX +DTI5MDMwMzIzNTg0MFowFzEVMBMGA1UEAwwMd2FpdmVyZGIuc3RnMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA76rFKJuL46f38r8nehoOVusTahVRZAmo +A94ti6VIa/fw8KRBxg13d2m3IkKGQTZ/9MmNWZYwJlZgeZz2IOwIEsE+ho5kld/E +XGwzugy0D19r9C5XjXIZg9owXFU1Moq2kD2htAU92/k4bT2nmFlrXfzzIojjRdqS +OBpK1Rp8uAQuxyZI8+AR+wh168Sy41jNMiqHWQ2ttAMjgYnJX6q+nR2Rg1k2U6yA +3LRgoK9CXaC2pV/CFdz3ViUgxU6y4XSOa2ClPv54YOTot5RGgzgQn6pALLlkacGn +QL1HNGtlpHEZNToxWjThdqVdY2eLaWcLrus9fCR5M9LioxzP73EdEwIDAQABo4Gf +MIGcMAkGA1UdEwQCMAAwHQYDVR0OBBYEFAKzIMDImtGhBRBGtYdF3MbnQK3+ME4G +A1UdIwRHMEWAFB0JKM5u/EkMu3+1mHKTYRQeFHtXoSKkIDAeMRwwGgYDVQQDDBNS +YWJiaXRNUSBTVEFHSU5HIENBggkApO8a5O8U1n8wEwYDVR0lBAwwCgYIKwYBBQUH +AwIwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBCwUAA4IBAQBb/B+JJOS/yNfVhM09 +d/r12K95xXOWzgivJQD1AJzX9yrukuyfgQDgpTWog7X3ZYkpCud/2IgXJZmPMnKB +h21ItahxB/IF91yWMRkBZv3gRZaZzNxJYWoFfmcnRsrAH8J/B3qHrgBX+yAUcMwP +AEnd3n/8yRupI66SY2eeTEaJm8tMc0XW73UGFIvLdEgme7hWxCqouPNwOJrS94Tv +cl06wRwArO7HWDDPAzNsBqBzz3pf7nHkYEY4ze4TOCslf7h7f6WapoZ8qEN/XlH/ +Krx54Sdtbo1GgMZvqxsE9ySe2HDfiFw80npgWjntPJEkQHQ+iGm8tvHYLOQSUJQW +3MIr +-----END CERTIFICATE----- diff --git a/test/assets/certlist.yml b/test/assets/certlist.yml new file mode 100644 index 0000000..bb14326 --- /dev/null +++ b/test/assets/certlist.yml @@ -0,0 +1,97 @@ +--- +dtfedmsg.stg: + path: dtfedmsg.stg.crt + user: t0xic0der + certstat: + cstarted: + cstopped: + daystobt: 0 + daystodd: 0 + issuauth: + serialno: + stopdate: + strtdate: + notistat: + done: false + link: + time: +joystick.stg: + path: joystick.stg.crt + user: t0xic0der + certstat: + cstarted: + cstopped: + daystobt: 0 + daystodd: 0 + issuauth: + serialno: + stopdate: + strtdate: + notistat: + done: false + link: + time: +mistaken.stg: + path: mistaken.stg.crt + user: t0xic0der + certstat: + cstarted: + cstopped: + daystobt: 0 + daystodd: 0 + issuauth: + serialno: + stopdate: + strtdate: + notistat: + done: false + link: + time: +nuancier.stg: + path: nuancier.stg.crt + user: t0xic0der + certstat: + cstarted: + cstopped: + daystobt: 0 + daystodd: 0 + issuauth: + serialno: + stopdate: + strtdate: + notistat: + done: false + link: + time: +robosign.stg: + path: robosign.stg.crt + user: t0xic0der + certstat: + cstarted: + cstopped: + daystobt: 0 + daystodd: 0 + issuauth: + serialno: + stopdate: + strtdate: + notistat: + done: false + link: + time: +waiverdb.stg: + path: waiverdb.stg.crt + user: t0xic0der + certstat: + cstarted: + cstopped: + daystobt: 0 + daystodd: 0 + issuauth: + serialno: + stopdate: + strtdate: + notistat: + done: false + link: + time: diff --git a/test/cassettes/test_etoe/test_etoe[Invoke notifications by stating an expiry date].yaml b/test/cassettes/test_etoe/test_etoe[Invoke notifications by stating an expiry date].yaml new file mode 100644 index 0000000..b8d1040 --- /dev/null +++ b/test/cassettes/test_etoe/test_etoe[Invoke notifications by stating an expiry date].yaml @@ -0,0 +1,974 @@ +interactions: +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+joystick.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Ajoystick.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Ajoystick.stg%2A%2A+%28Certificate+stored+as+%2A%2Ajoystick.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2344541479035547978831580614561088909678%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-05-28+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1793+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1857+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **joystick.stg** service will expire in about **2000 + day(s)** from now on **2029-05-25 23:04:35 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **joystick.stg** + (Certificate stored as **joystick.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#44541479035547978831580614561088909678**)\\n- **Validity starting** + - **2019-05-28 23:04:35 UTC** (**1793 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-05-25 23:04:35 UTC** (**1857 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713928981\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/113\", \n \"id\": 113, \n \"last_updated\": + \"1713928981\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for joystick.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2122' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-DFTQ0B3LVyTf2qbQ8Op72SmAC'; style-src + 'self' 'nonce-DFTQ0B3LVyTf2qbQ8Op72SmAC'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:23:01 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+nuancier.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Anuancier.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Anuancier.stg%2A%2A+%28Certificate+stored+as+%2A%2Anuancier.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%23209068775949833699801370873051828148798%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-02-21+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1889+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1761+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1466' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **nuancier.stg** service will expire in about **2000 + day(s)** from now on **2029-02-18 18:34:13 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **nuancier.stg** + (Certificate stored as **nuancier.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#209068775949833699801370873051828148798**)\\n- **Validity starting** + - **2019-02-21 18:34:13 UTC** (**1889 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-02-18 18:34:13 UTC** (**1761 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713928984\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/114\", \n \"id\": 114, \n \"last_updated\": + \"1713928984\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for nuancier.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2123' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-alExEORAVsobkMuWDlIO9SLFP'; style-src + 'self' 'nonce-alExEORAVsobkMuWDlIO9SLFP'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:23:04 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+robosign.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Arobosign.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Arobosign.stg%2A%2A+%28Certificate+stored+as+%2A%2Arobosign.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2338988970076690016170053187069021997563%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-09-20+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1678+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1972+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **robosign.stg** service will expire in about **2000 + day(s)** from now on **2029-09-17 22:29:56 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **robosign.stg** + (Certificate stored as **robosign.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#38988970076690016170053187069021997563**)\\n- **Validity starting** + - **2019-09-20 22:29:56 UTC** (**1678 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-09-17 22:29:56 UTC** (**1972 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713928987\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/115\", \n \"id\": 115, \n \"last_updated\": + \"1713928987\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for robosign.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2122' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-1cfTyvyviGzbtcUHy7gypmerM'; style-src + 'self' 'nonce-1cfTyvyviGzbtcUHy7gypmerM'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:23:07 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+waiverdb.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Awaiverdb.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Awaiverdb.stg%2A%2A+%28Certificate+stored+as+%2A%2Awaiverdb.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%236931031601876762538483728070539648010%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-03-06+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1876+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1774+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1464' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **waiverdb.stg** service will expire in about **2000 + day(s)** from now on **2029-03-03 23:58:40 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **waiverdb.stg** + (Certificate stored as **waiverdb.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#6931031601876762538483728070539648010**)\\n- **Validity starting** + - **2019-03-06 23:58:40 UTC** (**1876 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-03-03 23:58:40 UTC** (**1774 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713928989\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/116\", \n \"id\": 116, \n \"last_updated\": + \"1713928989\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for waiverdb.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2121' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-lrdC72bNZcWLwPvmg3SkOGhC7'; style-src + 'self' 'nonce-lrdC72bNZcWLwPvmg3SkOGhC7'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:23:09 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+joystick.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Ajoystick.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Ajoystick.stg%2A%2A+%28Certificate+stored+as+%2A%2Ajoystick.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2344541479035547978831580614561088909678%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-05-28+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1793+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1857+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **joystick.stg** service will expire in about **2000 + day(s)** from now on **2029-05-25 23:04:35 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **joystick.stg** + (Certificate stored as **joystick.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#44541479035547978831580614561088909678**)\\n- **Validity starting** + - **2019-05-28 23:04:35 UTC** (**1793 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-05-25 23:04:35 UTC** (**1857 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713929199\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/117\", \n \"id\": 117, \n \"last_updated\": + \"1713929199\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for joystick.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2122' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-nYcTRqOIR6tVBH8OkahUq4osu'; style-src + 'self' 'nonce-nYcTRqOIR6tVBH8OkahUq4osu'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:26:38 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+nuancier.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Anuancier.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Anuancier.stg%2A%2A+%28Certificate+stored+as+%2A%2Anuancier.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%23209068775949833699801370873051828148798%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-02-21+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1889+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1761+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1466' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **nuancier.stg** service will expire in about **2000 + day(s)** from now on **2029-02-18 18:34:13 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **nuancier.stg** + (Certificate stored as **nuancier.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#209068775949833699801370873051828148798**)\\n- **Validity starting** + - **2019-02-21 18:34:13 UTC** (**1889 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-02-18 18:34:13 UTC** (**1761 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713929200\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/118\", \n \"id\": 118, \n \"last_updated\": + \"1713929200\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for nuancier.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2123' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-ITzkrRU5dY0nQyZjr3C001eM3'; style-src + 'self' 'nonce-ITzkrRU5dY0nQyZjr3C001eM3'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:26:40 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+robosign.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Arobosign.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Arobosign.stg%2A%2A+%28Certificate+stored+as+%2A%2Arobosign.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2338988970076690016170053187069021997563%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-09-20+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1678+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1972+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **robosign.stg** service will expire in about **2000 + day(s)** from now on **2029-09-17 22:29:56 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **robosign.stg** + (Certificate stored as **robosign.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#38988970076690016170053187069021997563**)\\n- **Validity starting** + - **2019-09-20 22:29:56 UTC** (**1678 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-09-17 22:29:56 UTC** (**1972 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713929205\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/119\", \n \"id\": 119, \n \"last_updated\": + \"1713929205\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for robosign.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2122' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-m3AbCuHwP0vBecoUWZDtXnw8C'; style-src + 'self' 'nonce-m3AbCuHwP0vBecoUWZDtXnw8C'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:26:45 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+waiverdb.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Awaiverdb.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Awaiverdb.stg%2A%2A+%28Certificate+stored+as+%2A%2Awaiverdb.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%236931031601876762538483728070539648010%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-03-06+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1876+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1774+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1464' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **waiverdb.stg** service will expire in about **2000 + day(s)** from now on **2029-03-03 23:58:40 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **waiverdb.stg** + (Certificate stored as **waiverdb.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#6931031601876762538483728070539648010**)\\n- **Validity starting** + - **2019-03-06 23:58:40 UTC** (**1876 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-03-03 23:58:40 UTC** (**1774 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713929206\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/120\", \n \"id\": 120, \n \"last_updated\": + \"1713929206\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for waiverdb.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2121' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-GtxgafLeDn1GEdDjHp0HjrM79'; style-src + 'self' 'nonce-GtxgafLeDn1GEdDjHp0HjrM79'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:26:46 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+joystick.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Ajoystick.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Ajoystick.stg%2A%2A+%28Certificate+stored+as+%2A%2Ajoystick.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2344541479035547978831580614561088909678%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-05-28+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1793+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1857+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **joystick.stg** service will expire in about **2000 + day(s)** from now on **2029-05-25 23:04:35 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **joystick.stg** + (Certificate stored as **joystick.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#44541479035547978831580614561088909678**)\\n- **Validity starting** + - **2019-05-28 23:04:35 UTC** (**1793 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-05-25 23:04:35 UTC** (**1857 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713929633\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/121\", \n \"id\": 121, \n \"last_updated\": + \"1713929633\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for joystick.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2122' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-igXy4q4JtLEd09AUMJLV9rc0b'; style-src + 'self' 'nonce-igXy4q4JtLEd09AUMJLV9rc0b'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:33:53 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+nuancier.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Anuancier.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Anuancier.stg%2A%2A+%28Certificate+stored+as+%2A%2Anuancier.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%23209068775949833699801370873051828148798%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-02-21+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1889+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1761+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1466' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **nuancier.stg** service will expire in about **2000 + day(s)** from now on **2029-02-18 18:34:13 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **nuancier.stg** + (Certificate stored as **nuancier.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#209068775949833699801370873051828148798**)\\n- **Validity starting** + - **2019-02-21 18:34:13 UTC** (**1889 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-02-18 18:34:13 UTC** (**1761 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713929635\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/122\", \n \"id\": 122, \n \"last_updated\": + \"1713929635\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for nuancier.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2123' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-WkIdbCihsKrideLyoyjjUlpTV'; style-src + 'self' 'nonce-WkIdbCihsKrideLyoyjjUlpTV'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:33:55 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+robosign.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Arobosign.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Arobosign.stg%2A%2A+%28Certificate+stored+as+%2A%2Arobosign.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2338988970076690016170053187069021997563%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-09-20+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1678+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1972+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **robosign.stg** service will expire in about **2000 + day(s)** from now on **2029-09-17 22:29:56 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **robosign.stg** + (Certificate stored as **robosign.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#38988970076690016170053187069021997563**)\\n- **Validity starting** + - **2019-09-20 22:29:56 UTC** (**1678 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-09-17 22:29:56 UTC** (**1972 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713929637\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/123\", \n \"id\": 123, \n \"last_updated\": + \"1713929637\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for robosign.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2122' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-4QZuLDjnbQG7kbm4idtdGgjCP'; style-src + 'self' 'nonce-4QZuLDjnbQG7kbm4idtdGgjCP'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:33:57 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+waiverdb.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Awaiverdb.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Awaiverdb.stg%2A%2A+%28Certificate+stored+as+%2A%2Awaiverdb.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%236931031601876762538483728070539648010%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-03-06+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1876+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1774+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1464' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **waiverdb.stg** service will expire in about **2000 + day(s)** from now on **2029-03-03 23:58:40 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **waiverdb.stg** + (Certificate stored as **waiverdb.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#6931031601876762538483728070539648010**)\\n- **Validity starting** + - **2019-03-06 23:58:40 UTC** (**1876 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-03-03 23:58:40 UTC** (**1774 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713929638\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/124\", \n \"id\": 124, \n \"last_updated\": + \"1713929638\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for waiverdb.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2121' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-v9lGZaG8MhsFBibbDAdkxAfQK'; style-src + 'self' 'nonce-v9lGZaG8MhsFBibbDAdkxAfQK'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 03:33:58 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_etoe/test_etoe[Invoke notifications with accurate password].yaml b/test/cassettes/test_etoe/test_etoe[Invoke notifications with accurate password].yaml new file mode 100644 index 0000000..a184401 --- /dev/null +++ b/test/cassettes/test_etoe/test_etoe[Invoke notifications with accurate password].yaml @@ -0,0 +1,326 @@ +interactions: +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+joystick.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Ajoystick.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Ajoystick.stg%2A%2A+%28Certificate+stored+as+%2A%2Ajoystick.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2344541479035547978831580614561088909678%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-05-28+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1793+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1857+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **joystick.stg** service will expire in about **2000 + day(s)** from now on **2029-05-25 23:04:35 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **joystick.stg** + (Certificate stored as **joystick.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#44541479035547978831580614561088909678**)\\n- **Validity starting** + - **2019-05-28 23:04:35 UTC** (**1793 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-05-25 23:04:35 UTC** (**1857 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713947722\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/161\", \n \"id\": 161, \n \"last_updated\": + \"1713947722\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for joystick.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2122' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-kjhNquWR83DT17thal8P0ll01'; style-src + 'self' 'nonce-kjhNquWR83DT17thal8P0ll01'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:22 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+nuancier.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Anuancier.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Anuancier.stg%2A%2A+%28Certificate+stored+as+%2A%2Anuancier.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%23209068775949833699801370873051828148798%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-02-21+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1889+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1761+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1466' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **nuancier.stg** service will expire in about **2000 + day(s)** from now on **2029-02-18 18:34:13 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **nuancier.stg** + (Certificate stored as **nuancier.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#209068775949833699801370873051828148798**)\\n- **Validity starting** + - **2019-02-21 18:34:13 UTC** (**1889 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-02-18 18:34:13 UTC** (**1761 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713947724\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/162\", \n \"id\": 162, \n \"last_updated\": + \"1713947724\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for nuancier.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2123' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-Ob8Clc670uQZu9TeQm9llDhBE'; style-src + 'self' 'nonce-Ob8Clc670uQZu9TeQm9llDhBE'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:24 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+robosign.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Arobosign.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Arobosign.stg%2A%2A+%28Certificate+stored+as+%2A%2Arobosign.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2338988970076690016170053187069021997563%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-09-20+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1678+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1972+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **robosign.stg** service will expire in about **2000 + day(s)** from now on **2029-09-17 22:29:56 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **robosign.stg** + (Certificate stored as **robosign.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#38988970076690016170053187069021997563**)\\n- **Validity starting** + - **2019-09-20 22:29:56 UTC** (**1678 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-09-17 22:29:56 UTC** (**1972 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713947726\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/163\", \n \"id\": 163, \n \"last_updated\": + \"1713947726\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for robosign.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2122' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-Cw9oMvDtfTi6yuDDmGvYNERnl'; style-src + 'self' 'nonce-Cw9oMvDtfTi6yuDDmGvYNERnl'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:26 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+waiverdb.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Awaiverdb.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Awaiverdb.stg%2A%2A+%28Certificate+stored+as+%2A%2Awaiverdb.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%236931031601876762538483728070539648010%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-03-06+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1876+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1774+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1464' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"issue\": {\n \"assignee\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }, \n \"blocks\": [], \n + \ \"close_status\": null, \n \"closed_at\": null, \n \"closed_by\": + null, \n \"comments\": [], \n \"content\": \"\\nThis is to inform that + the TLS certificate for **waiverdb.stg** service will expire in about **2000 + day(s)** from now on **2029-03-03 23:58:40 UTC**. The following are information + relevant to the associated TLS certificate.\\n\\n- **Service name** - **waiverdb.stg** + (Certificate stored as **waiverdb.stg.crt**)\\n- **Issuing authority** - RabbitMQ + STAGING CA (**#6931031601876762538483728070539648010**)\\n- **Validity starting** + - **2019-03-06 23:58:40 UTC** (**1876 day(s)** passed since beginning)\\n- + **Validity ending** - **2029-03-03 23:58:40 UTC** (**1774 day(s)** left before + expiring)\\n\\nThe point of contact for the service have been tagged into + this ticket and notified about the same. It is strongly recommended to promptly + renew the TLS certificate for the service before the existing one expires.\\n\\n_This + issue ticket was automatically created by the [**Firmitas notification service**](https://gitlab.com/t0xic0der/firmitas). + Please contact [**Fedora Infrastructure**](https://pagure.io/fedora-infrastructure/issues) + team if you believe that this notification is mistaken._\\n\", \n \"custom_fields\": + [], \n \"date_created\": \"1713947728\", \n \"depends\": [], \n \"full_url\": + \"https://pagure.io/firmitas-notifier/issue/164\", \n \"id\": 164, \n \"last_updated\": + \"1713947728\", \n \"milestone\": null, \n \"priority\": null, \n \"private\": + false, \n \"related_prs\": [], \n \"status\": \"Open\", \n \"tags\": + [\n \"automate\", \n \"firmitas\", \n \"notifier\"\n ], + \n \"title\": \"[FMTS] TLS certificate for waiverdb.stg service is about + to expire in 2000 days\", \n \"user\": {\n \"full_url\": \"https://pagure.io/user/t0xic0der\", + \n \"fullname\": \"Akashdeep Dhar\", \n \"name\": \"t0xic0der\", + \n \"url_path\": \"user/t0xic0der\"\n }\n }, \n \"message\": \"Issue + created\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '2121' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-9wcOUe4MpCKWm64rf5Y8oMvYH'; style-src + 'self' 'nonce-9wcOUe4MpCKWm64rf5Y8oMvYH'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:28 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/test/cassettes/test_etoe/test_etoe[Invoke notifications with mistaken password].yaml b/test/cassettes/test_etoe/test_etoe[Invoke notifications with mistaken password].yaml new file mode 100644 index 0000000..0baf434 --- /dev/null +++ b/test/cassettes/test_etoe/test_etoe[Invoke notifications with mistaken password].yaml @@ -0,0 +1,1122 @@ +interactions: +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+joystick.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Ajoystick.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Ajoystick.stg%2A%2A+%28Certificate+stored+as+%2A%2Ajoystick.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2344541479035547978831580614561088909678%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-05-28+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1793+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1857+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-LzrUhi2iC9cyYqjI6zlZdUKaS'; style-src + 'self' 'nonce-LzrUhi2iC9cyYqjI6zlZdUKaS'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:29 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+joystick.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Ajoystick.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Ajoystick.stg%2A%2A+%28Certificate+stored+as+%2A%2Ajoystick.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2344541479035547978831580614561088909678%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-05-28+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1793+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1857+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-ZxWc0XUxG0TNVtwLRMe4DX5Tz'; style-src + 'self' 'nonce-ZxWc0XUxG0TNVtwLRMe4DX5Tz'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:30 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+joystick.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Ajoystick.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Ajoystick.stg%2A%2A+%28Certificate+stored+as+%2A%2Ajoystick.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2344541479035547978831580614561088909678%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-05-28+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1793+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1857+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-Gj6xU41sKAMa0MvKly5FX7RfN'; style-src + 'self' 'nonce-Gj6xU41sKAMa0MvKly5FX7RfN'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:31 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+joystick.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Ajoystick.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Ajoystick.stg%2A%2A+%28Certificate+stored+as+%2A%2Ajoystick.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2344541479035547978831580614561088909678%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-05-28+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1793+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1857+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-7Z9ZNJF064rpCTVAJvoct6GtD'; style-src + 'self' 'nonce-7Z9ZNJF064rpCTVAJvoct6GtD'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:32 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+joystick.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Ajoystick.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Ajoystick.stg%2A%2A+%28Certificate+stored+as+%2A%2Ajoystick.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2344541479035547978831580614561088909678%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-05-28+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1793+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-05-25+23%3A04%3A35+UTC%2A%2A+%28%2A%2A1857+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-p1vWBVDSpvHbZcjB920Vzd17M'; style-src + 'self' 'nonce-p1vWBVDSpvHbZcjB920Vzd17M'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:33 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+nuancier.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Anuancier.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Anuancier.stg%2A%2A+%28Certificate+stored+as+%2A%2Anuancier.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%23209068775949833699801370873051828148798%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-02-21+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1889+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1761+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1466' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-zG30u1KNMIWnhJC8oTupnj8KV'; style-src + 'self' 'nonce-zG30u1KNMIWnhJC8oTupnj8KV'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:33 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+nuancier.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Anuancier.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Anuancier.stg%2A%2A+%28Certificate+stored+as+%2A%2Anuancier.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%23209068775949833699801370873051828148798%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-02-21+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1889+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1761+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1466' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-EDGXZEfnjBnKPwifd0MmCV1Tb'; style-src + 'self' 'nonce-EDGXZEfnjBnKPwifd0MmCV1Tb'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:34 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+nuancier.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Anuancier.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Anuancier.stg%2A%2A+%28Certificate+stored+as+%2A%2Anuancier.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%23209068775949833699801370873051828148798%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-02-21+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1889+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1761+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1466' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-WXBoVC89XL6Hs9Aa4uPRqzqBg'; style-src + 'self' 'nonce-WXBoVC89XL6Hs9Aa4uPRqzqBg'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:35 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+nuancier.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Anuancier.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Anuancier.stg%2A%2A+%28Certificate+stored+as+%2A%2Anuancier.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%23209068775949833699801370873051828148798%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-02-21+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1889+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1761+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1466' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-AfqHJZ8zjE80JHcChk5iXb96c'; style-src + 'self' 'nonce-AfqHJZ8zjE80JHcChk5iXb96c'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:36 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+nuancier.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Anuancier.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Anuancier.stg%2A%2A+%28Certificate+stored+as+%2A%2Anuancier.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%23209068775949833699801370873051828148798%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-02-21+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1889+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-02-18+18%3A34%3A13+UTC%2A%2A+%28%2A%2A1761+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1466' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-fMvokEHv3VNrE6IGsWxLBiaue'; style-src + 'self' 'nonce-fMvokEHv3VNrE6IGsWxLBiaue'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:37 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+robosign.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Arobosign.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Arobosign.stg%2A%2A+%28Certificate+stored+as+%2A%2Arobosign.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2338988970076690016170053187069021997563%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-09-20+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1678+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1972+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-0cWeNk5uLbkCxPoYvDBYNuzz9'; style-src + 'self' 'nonce-0cWeNk5uLbkCxPoYvDBYNuzz9'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:37 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+robosign.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Arobosign.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Arobosign.stg%2A%2A+%28Certificate+stored+as+%2A%2Arobosign.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2338988970076690016170053187069021997563%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-09-20+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1678+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1972+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-jmEWg0elXvuPZc5GSjk3Gq7tZ'; style-src + 'self' 'nonce-jmEWg0elXvuPZc5GSjk3Gq7tZ'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:38 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+robosign.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Arobosign.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Arobosign.stg%2A%2A+%28Certificate+stored+as+%2A%2Arobosign.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2338988970076690016170053187069021997563%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-09-20+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1678+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1972+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-IyUFQrVSq4oKngHCkCbkjai7E'; style-src + 'self' 'nonce-IyUFQrVSq4oKngHCkCbkjai7E'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:39 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+robosign.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Arobosign.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Arobosign.stg%2A%2A+%28Certificate+stored+as+%2A%2Arobosign.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2338988970076690016170053187069021997563%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-09-20+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1678+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1972+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-vXx1lenZaD3Q5ITLUr59aBJEP'; style-src + 'self' 'nonce-vXx1lenZaD3Q5ITLUr59aBJEP'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:40 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+robosign.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Arobosign.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Arobosign.stg%2A%2A+%28Certificate+stored+as+%2A%2Arobosign.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%2338988970076690016170053187069021997563%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-09-20+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1678+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-09-17+22%3A29%3A56+UTC%2A%2A+%28%2A%2A1972+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1465' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-8UhngN4qcTuksAYFoLfi9Kreb'; style-src + 'self' 'nonce-8UhngN4qcTuksAYFoLfi9Kreb'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:41 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+waiverdb.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Awaiverdb.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Awaiverdb.stg%2A%2A+%28Certificate+stored+as+%2A%2Awaiverdb.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%236931031601876762538483728070539648010%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-03-06+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1876+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1774+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1464' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-ju3jnF5Bs7xTJbyStznkPoqTC'; style-src + 'self' 'nonce-ju3jnF5Bs7xTJbyStznkPoqTC'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:42 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+waiverdb.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Awaiverdb.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Awaiverdb.stg%2A%2A+%28Certificate+stored+as+%2A%2Awaiverdb.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%236931031601876762538483728070539648010%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-03-06+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1876+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1774+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1464' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-TIMnlZib444O6EEViGLlJ6FwJ'; style-src + 'self' 'nonce-TIMnlZib444O6EEViGLlJ6FwJ'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:43 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+waiverdb.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Awaiverdb.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Awaiverdb.stg%2A%2A+%28Certificate+stored+as+%2A%2Awaiverdb.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%236931031601876762538483728070539648010%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-03-06+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1876+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1774+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1464' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-SiYC2QFeygRUuTW1bysxk46IJ'; style-src + 'self' 'nonce-SiYC2QFeygRUuTW1bysxk46IJ'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:44 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+waiverdb.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Awaiverdb.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Awaiverdb.stg%2A%2A+%28Certificate+stored+as+%2A%2Awaiverdb.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%236931031601876762538483728070539648010%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-03-06+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1876+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1774+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1464' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-IMoJpjFzyN1cCmdLIQPAWY3iq'; style-src + 'self' 'nonce-IMoJpjFzyN1cCmdLIQPAWY3iq'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:44 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +- request: + body: title=%5BFMTS%5D+TLS+certificate+for+waiverdb.stg+service+is+about+to+expire+in+2000+days&issue_content=%0AThis+is+to+inform+that+the+TLS+certificate+for+%2A%2Awaiverdb.stg%2A%2A+service+will+expire+in+about+%2A%2A2000+day%28s%29%2A%2A+from+now+on+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A.+The+following+are+information+relevant+to+the+associated+TLS+certificate.%0A%0A-+%2A%2AService+name%2A%2A+-+%2A%2Awaiverdb.stg%2A%2A+%28Certificate+stored+as+%2A%2Awaiverdb.stg.crt%2A%2A%29%0A-+%2A%2AIssuing+authority%2A%2A+-+RabbitMQ+STAGING+CA+%28%2A%2A%236931031601876762538483728070539648010%2A%2A%29%0A-+%2A%2AValidity+starting%2A%2A+-+%2A%2A2019-03-06+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1876+day%28s%29%2A%2A+passed+since+beginning%29%0A-+%2A%2AValidity+ending%2A%2A+-+%2A%2A2029-03-03+23%3A58%3A40+UTC%2A%2A+%28%2A%2A1774+day%28s%29%2A%2A+left+before+expiring%29%0A%0AThe+point+of+contact+for+the+service+have+been+tagged+into+this+ticket+and+notified+about+the+same.+It+is+strongly+recommended+to+promptly+renew+the+TLS+certificate+for+the+service+before+the+existing+one+expires.%0A%0A_This+issue+ticket+was+automatically+created+by+the+%5B%2A%2AFirmitas+notification+service%2A%2A%5D%28https%3A%2F%2Fgitlab.com%2Ft0xic0der%2Ffirmitas%29.+Please+contact+%5B%2A%2AFedora+Infrastructure%2A%2A%5D%28https%3A%2F%2Fpagure.io%2Ffedora-infrastructure%2Fissues%29+team+if+you+believe+that+this+notification+is+mistaken._%0A&tag=firmitas%2Cautomate%2Cnotifier&assignee=t0xic0der + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1464' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - python-requests/2.31.0 + method: POST + uri: https://pagure.io/api/0/firmitas-notifier/new_issue + response: + body: + string: "{\n \"error\": \"Invalid or expired token. Please visit https://pagure.io/settings#nav-api-tab + to get or renew your API token.\", \n \"error_code\": \"EINVALIDTOK\", \n + \ \"errors\": \"Invalid token\"\n}\n" + headers: + Connection: + - Upgrade, Keep-Alive + Content-Length: + - '189' + Content-Security-Policy: + - default-src 'self';script-src 'self' 'nonce-vbX1t1xtw50aZHz2iwcnwkaF6'; style-src + 'self' 'nonce-vbX1t1xtw50aZHz2iwcnwkaF6'; object-src 'none';base-uri 'self';img-src + 'self' https:;connect-src 'self' https://pagure.io:8088;frame-src https://docs.pagure.org;frame-ancestors + https://pagure.io; + Content-Type: + - application/json + Date: + - Wed, 24 Apr 2024 08:35:45 GMT + Keep-Alive: + - timeout=5, max=100 + Referrer-Policy: + - same-origin + Server: + - Apache/2.4.37 (Red Hat Enterprise Linux) OpenSSL/1.1.1k mod_wsgi/4.6.4 Python/3.6 + Set-Cookie: '' + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Upgrade: + - h2,h2c + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - ALLOW-FROM https://pagure.io/ + X-Xss-Protection: + - 1; mode=block + status: + code: 401 + message: UNAUTHORIZED +version: 1 From 9cb908564baef325f4e28c6b028113b6cb4d571c Mon Sep 17 00:00:00 2001 From: Akashdeep Date: Tue, 23 Apr 2024 10:30:38 +0000 Subject: [PATCH 5/7] Introduce timeout limit when making HTTPS API requests --- firmitas/conf/standard.py | 7 +++++-- firmitas/unit/gopagure.py | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/firmitas/conf/standard.py b/firmitas/conf/standard.py index 588c6dd..b73949b 100644 --- a/firmitas/conf/standard.py +++ b/firmitas/conf/standard.py @@ -2,6 +2,9 @@ Variables related to notifications """ +# The limit for how long a single request must be attempted for +rqsttime = 30 + # The source code forge on which the issue tickets need to be created gitforge = "pagure" @@ -31,10 +34,10 @@ """ # The location of the X.509 standard TLS certificates -certloca = "/var/tmp/firmitas/certhere" +certloca = "/var/tmp/firmitas/certhere" # noqa : S108 # The location of the service hostnames and maintainers map -hostloca = "/var/tmp/firmitas/certlist.yml" +hostloca = "/var/tmp/firmitas/certlist.yml" # noqa: S108 """ Variables related to logging diff --git a/firmitas/unit/gopagure.py b/firmitas/unit/gopagure.py index 78cc0d9..3706ca9 100644 --- a/firmitas/unit/gopagure.py +++ b/firmitas/unit/gopagure.py @@ -39,6 +39,7 @@ def makenote( "tag": ",".join(standard.tagslist), "assignee": assignee, }, + timeout=standard.rqsttime, ) logrdata.logrobjc.debug( f"[{servname}] The notification request was met with response code " From fcb8720c8a4a15ed2b886e2272b3c485446f10e0 Mon Sep 17 00:00:00 2001 From: Akashdeep Date: Tue, 23 Apr 2024 10:34:52 +0000 Subject: [PATCH 6/7] Remove redundant exception checks and filemode specs --- firmitas/base/maintool.py | 55 ++++++++++++++++++--------------------- firmitas/main.py | 4 +-- 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/firmitas/base/maintool.py b/firmitas/base/maintool.py index 11d71c5..04aa02a 100644 --- a/firmitas/base/maintool.py +++ b/firmitas/base/maintool.py @@ -22,11 +22,11 @@ def readcert(certobjc): logrdata.logrobjc.debug(f"[{commname}] Serial number {serialno}") logrdata.logrobjc.debug( f"[{commname}] Valid from {strtdate} ({abs(daystobt)} days " - + "{'passed since beginning' if cstarted else 'left before beginning'})" + + f"{'passed since beginning' if cstarted else 'left before beginning'})" ) logrdata.logrobjc.debug( f"[{commname}] Valid until {stopdate} ({abs(daystodd)} days " - + "{'passed since expiring' if cstopped else 'left before expiring'})" + + f"{'passed since expiring' if cstopped else 'left before expiring'})" ) return strtdate, stopdate, cstarted, cstopped, daystobt, daystodd, issuauth, serialno @@ -34,15 +34,15 @@ def readcert(certobjc): def probedir(): logrdata.logrobjc.info("Probing into the configured directory") doneqant, failqant, totlqant = 0, 0, 0 - if os.path.exists(standard.hostloca): - standard.certdict = yaml.safe_load(Path(standard.hostloca).read_text()) - logrdata.logrobjc.info( - f"Validating {len(standard.certdict)} X.509-standard TLS certificates" - ) - for nameindx in standard.certdict: - totlqant += 1 - certpath = Path(standard.certloca, standard.certdict[nameindx]["path"]) - if os.path.exists(certpath): + standard.certdict = yaml.safe_load(Path(standard.hostloca).read_text()) + logrdata.logrobjc.info( + f"Validating {len(standard.certdict)} X.509-standard TLS certificates" + ) + for nameindx in standard.certdict: + totlqant += 1 + certpath = Path(standard.certloca, standard.certdict[nameindx]["path"]) + if os.path.exists(certpath): + try: certobjc = x509.load_pem_x509_certificate(certpath.read_bytes(), default_backend()) ( standard.certdict[nameindx]["certstat"]["strtdate"], @@ -59,23 +59,23 @@ def probedir(): f"[{nameindx}] The specified X.509-standard TLS certificate was read " + "successfully" ) - else: + except ValueError: failqant += 1 - logrdata.logrobjc.warning( - f"[{nameindx}] The specified X.509-standard TLS certificate could not " - + "be located" + logrdata.logrobjc.error( + f"[{nameindx}] The specified X.509-standard TLS certificate could not be read" ) - logrdata.logrobjc.info( - f"Of {totlqant} TLS certificates, {doneqant} TLS certificate(s) were read successfully " - + f"while {failqant} TLS certificate(s) could not be read" - ) - with open(standard.hostloca, "w") as yamlfile: - yaml.safe_dump(standard.certdict, yamlfile) - else: - logrdata.logrobjc.error( - "Please set the directory containing the service hostname map properly" - ) - sys.exit(1) + else: + failqant += 1 + logrdata.logrobjc.warning( + f"[{nameindx}] The specified X.509-standard TLS certificate could not " + + "be located" + ) + logrdata.logrobjc.info( + f"Of {totlqant} TLS certificates, {doneqant} TLS certificate(s) were read successfully " + + f"while {failqant} TLS certificate(s) could not be read" + ) + with open(standard.hostloca, "w") as yamlfile: + yaml.safe_dump(standard.certdict, yamlfile) def gonotify(): @@ -137,6 +137,3 @@ def gonotify(): elif standard.gitforge == "github": logrdata.logrobjc.error("The notification has not yet been implemented on GitHub") sys.exit(1) - else: - logrdata.logrobjc.error("The specified ticketing repository forge is not yet supported") - sys.exit(1) diff --git a/firmitas/main.py b/firmitas/main.py index 42be3c7..e25b7d3 100644 --- a/firmitas/main.py +++ b/firmitas/main.py @@ -17,8 +17,8 @@ def main(conffile=None): if conffile: confdict = {} - with open(conffile, "r") as confobjc: - exec(compile(confobjc.read(), conffile, "exec"), confdict) + with open(conffile) as confobjc: + exec(compile(confobjc.read(), conffile, "exec"), confdict) # noqa : S102 readconf(confdict) probedir() gonotify() From a77caab0362e6b9bd113552e89f7b477acf953b5 Mon Sep 17 00:00:00 2001 From: Akashdeep Date: Tue, 23 Apr 2024 10:47:46 +0000 Subject: [PATCH 7/7] Add license statement to the codebase --- firmitas/__init__.py | 23 +++++++++++++++++++++++ firmitas/base/__init__.py | 21 +++++++++++++++++++++ firmitas/base/maintool.py | 23 +++++++++++++++++++++++ firmitas/conf/__init__.py | 21 +++++++++++++++++++++ firmitas/conf/logrdata.py | 23 +++++++++++++++++++++++ firmitas/conf/standard.py | 22 ++++++++++++++++++++++ firmitas/main.py | 23 +++++++++++++++++++++++ firmitas/unit/__init__.py | 23 +++++++++++++++++++++++ firmitas/unit/gogithub.py | 21 +++++++++++++++++++++ firmitas/unit/gogitlab.py | 21 +++++++++++++++++++++ firmitas/unit/gopagure.py | 23 +++++++++++++++++++++++ 11 files changed, 244 insertions(+) create mode 100644 firmitas/unit/gogitlab.py diff --git a/firmitas/__init__.py b/firmitas/__init__.py index 88f1c1c..6aa1f80 100644 --- a/firmitas/__init__.py +++ b/firmitas/__init__.py @@ -1,3 +1,26 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + import os.path import sys from importlib import metadata diff --git a/firmitas/base/__init__.py b/firmitas/base/__init__.py index e69de29..9491b0e 100644 --- a/firmitas/base/__init__.py +++ b/firmitas/base/__init__.py @@ -0,0 +1,21 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" diff --git a/firmitas/base/maintool.py b/firmitas/base/maintool.py index 04aa02a..a06650a 100644 --- a/firmitas/base/maintool.py +++ b/firmitas/base/maintool.py @@ -1,3 +1,26 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + import os import sys from datetime import datetime diff --git a/firmitas/conf/__init__.py b/firmitas/conf/__init__.py index e69de29..9491b0e 100644 --- a/firmitas/conf/__init__.py +++ b/firmitas/conf/__init__.py @@ -0,0 +1,21 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" diff --git a/firmitas/conf/logrdata.py b/firmitas/conf/logrdata.py index 65b59cb..0ae65da 100644 --- a/firmitas/conf/logrdata.py +++ b/firmitas/conf/logrdata.py @@ -1,3 +1,26 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + import logging logging.basicConfig( diff --git a/firmitas/conf/standard.py b/firmitas/conf/standard.py index b73949b..54e2926 100644 --- a/firmitas/conf/standard.py +++ b/firmitas/conf/standard.py @@ -1,3 +1,25 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + """ Variables related to notifications """ diff --git a/firmitas/main.py b/firmitas/main.py index e25b7d3..246e8fd 100644 --- a/firmitas/main.py +++ b/firmitas/main.py @@ -1,3 +1,26 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + import click from firmitas import __vers__, readconf diff --git a/firmitas/unit/__init__.py b/firmitas/unit/__init__.py index 5377437..855512f 100644 --- a/firmitas/unit/__init__.py +++ b/firmitas/unit/__init__.py @@ -1,3 +1,26 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + issuhead = "[FMTS] TLS certificate for {servname} service is about to expire in {daysqant} days" issubody = """ diff --git a/firmitas/unit/gogithub.py b/firmitas/unit/gogithub.py index e69de29..9491b0e 100644 --- a/firmitas/unit/gogithub.py +++ b/firmitas/unit/gogithub.py @@ -0,0 +1,21 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" diff --git a/firmitas/unit/gogitlab.py b/firmitas/unit/gogitlab.py new file mode 100644 index 0000000..9491b0e --- /dev/null +++ b/firmitas/unit/gogitlab.py @@ -0,0 +1,21 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" diff --git a/firmitas/unit/gopagure.py b/firmitas/unit/gopagure.py index 3706ca9..dcdbc31 100644 --- a/firmitas/unit/gopagure.py +++ b/firmitas/unit/gopagure.py @@ -1,3 +1,26 @@ +""" +Firmitas +Copyright (C) 2023-2024 Akashdeep Dhar + +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. + +You should have received a copy of the GNU General Public License along with +this program. If not, see . + +Any Red Hat trademarks that are incorporated in the source code or +documentation are not subject to the GNU General Public License and may only +be used or replicated with the express permission of Red Hat, Inc. +""" + + from requests import post from firmitas.conf import logrdata, standard