mkdocstrings-github 0.6.0__tar.gz → 0.6.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.github/workflows/docs.yaml +1 -1
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.github/workflows/qualify.yaml +3 -3
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.github/workflows/release.yaml +2 -2
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/PKG-INFO +2 -2
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/changelog.md +51 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/pyproject.toml +7 -7
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/handler.py +8 -2
- mkdocstrings_github-0.6.2/test/test_coverage.py +382 -0
- mkdocstrings_github-0.6.2/test/test_signature_ref.py +51 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.github/CODEOWNERS +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.github/CONTRIBUTING.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.github/FUNDING.yml +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.github/renovate.json5 +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.github/workflows/example_workflow.yml +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.gitignore +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.gitmodules +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.pre-commit-config.yaml +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/LICENSE +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/README.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/action.yaml +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/contributing.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/credits.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/favicon.png +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/img/example_dark.png +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/img/example_light.png +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/img/logo.png +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/index.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/license-page.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/overrides/main.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/overrides/partials/toc-item.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/stylesheets/extra.css +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/usage/general.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/usage/headings.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/usage/index.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/usage/parameters.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/usage/signatures.md +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/mkdocs.yml +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/__init__.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/config.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/objects.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/py.typed +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/rendering.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/templates/material/_macros.html.jinja +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/templates/material/action.html.jinja +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/templates/material/heading.html.jinja +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/templates/material/inputs.html.jinja +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/templates/material/outputs.html.jinja +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/templates/material/secrets.html.jinja +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/templates/material/style.css +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/templates/material/workflow.html.jinja +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/__init__.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/conftest.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/docs/.gitkeep +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/helpers.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/__init__.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/.gitignore +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/06f909d26ca3c2008ca57aeae14dc63fb04ade05997b8aed6ae1573bf42b5841.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/074e6b0350e6835d8a5461f936fc6ff8a0c46dc4c80c5ad5cd0b835cae19e2cd.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/0a37a4286738a72a224871dbd1bcd3c662e768f800a8e2b92c410d672c1d19fc.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/0bed6d92c16c4e133ffbed2d273614bca1be0d8a22afed48b36bd244e7eb261b.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/0d0e2427b85f5904c7c3970d7b411e0f2337a3c91a25beb18348e6d4a51e48ec.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/0de8e0706404a3d84a59420f94558fc0687324dad2f1340cec32bd4368626262.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/1322d6390dbc167e4d2734b6ff7ac30265a52feb242ece864fd08dd36a88214a.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/1efa0765882b4ea1a66fc91ef88418634786028dfcec5879aed9c268749de63c.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/1f92a9273cccc3fc7a358dfeca8bb2cbb5ede804ff490106eb2322cddd78f256.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/22929d6c2b70b481583d7b07fd7bff72dba985a465d42ad4ee5a7f557429102f.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/23cc1367f9dd06c1d51e4b1c8a5a2ea807f32a78de9c061438f4d2315bcc3d0e.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/24b2b02efe6eb2db3069c3d1717c3f7ad9bc47321acfd63979748b0a8378b169.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/2500c66e16468b20050dd9b8b152a48644d008c0316e444f47afc7bc5117e004.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/27af0061b4353d60bc86fadef002e4cad8d8774c06c3a720050c2b8b6726feae.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/28df0ab9fe5662687b72cbb8b2c8e2e18b98beb5a114a505ad845c91b8955a2e.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/2eb63f18b2d0aaf8000ffcc081c80067937fc7cacea496c2871198aa3bc12a14.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/361203a8fe1654bbfd22dcf01308d9b587b187f72c45754e2e35d1638696c35d.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/36d5597971381260ce0cd98b6ba1c3973134add32288bf34f47290fdbe55b0ec.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/3cb099624d882a4cde3ef6fdbea56c9aced9331dca1e19c7bc311c2611782e0d.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/43ad574e6f4bd9d7c1e5b41f74e890f314d86accf94396a2266e8736f8baf07a.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/47004f712909b0981384b3b51f7395939ee5ed669d38f620cc8275e700925371.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/50af1499553795c8cd859a1c9aa5ba162ef1c3dd9fa466668fc2da5bb002a61c.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/5508680ad1969ec83c9f6986137cca92bace28f3c5c75a67337753ee384c6783.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/5a2f11e94bc00c7a5122364dcffcdc9bd5c514a773fbf4d1b04fa7e96ba2cfa5.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/5d0abaf6f1a04083e3236ea03d57897ba0d03c9fe047738d0d9b065c8b45eff5.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/5e3b7eb70931d08e482575fcc2a24460f6a47c5ab58ffe37125d139a56cc5a0d.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/62bff06eac186bef15cc125315a29901d284d4e1b9b2e8ee7890ad1296cd8342.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/66a319534331c51a39c04e1c278747db6e1bb3ce99877c91e9af556da2de3182.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/6962c89022a7a9efbb57250e05f28f5375d5012b6a7d974040affe180c6fff0f.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/699c6bcc632255eb0d6715e054b5fb1a9328e5abc414a3f2b3605514eb440247.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/6af63bf65a648dc8a89b9fd67e7c2434ce2d004b54d21db2310f38de4c6a2038.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/6d20fba34c55a0c3c25d29a29470de573812305d70dabac3104a7d18d92b2b86.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/72b55cb37adc5eeaaeedc47e092dce6ada6193137372da90d471284b95714a24.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/757b79d7975f29e7b7eeda8c910578cb858a867dc4c647c4b5bc9a4c45dbf62e.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/78feb92e4171bf067dd1615523e5c9cac0de998bb7102ee70da2e145d1262339.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/7a54a2a8729f165bbdb1980498724d4de8e886d849b7407b4969bde8d14a7b88.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/81baa4bca07bde66951a18c2e99f3d86c4263bf01f054876225398e257390f00.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/8476f864e849f8e154b4144e873fbc540fb8e88c8ad095eb66925afe67c3fcac.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/856a4ff20ee15b09367d852d57cdb6a3376b799760365dbf7677c216156a7b4d.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/8b65d193fe31a661d1aa1b882b5d6cee96dcaaa4d28b057cdde5ccec660e9cb1.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/8bacb89d75273f2bfee27f0d86fd49def327fd3e33ba7595aac8058ab214181d.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/8bedbe96ebb5c09a621a72f4cf16b73cf538cd5bfb3549a99e3283f5bd97ef08.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/93bf082d40ca4b6730a503aa4d265901a8cfed7ed1a6e9bb6e584c2c3ebd18af.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/94b8c0c6610d32e8a877cb18b47ff8b072203c6a1e8fddc67be1d7e5b963c385.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/98e4b6474a6f67576ae40a75e152e6bd8c3e743259ad7f1d08890def2ff858d1.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/9cc6f18114bfd48128d8cc74d40d4f19911408af280ba1866f07209ae80d5e42.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/a34a87167e37faaf559d506c0c2a72913d0a225c06784d9ad71d91ffd97c1f42.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/a683a1d590ea2a074bc13a38c02f9b708290f8de5ebd660c73edaaabe695bc32.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/ac47b3b933709154de762d06903d78925cea9f1ec93865386d669680cf17e4a8.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/ace14d7e4e53515a281c109aca1d7b5bccb1259ff0c3e0c28a8e09908e4f2f26.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/b6163f7b64f009d0f8992a0ccb4da0af6b02b5411dceb42cb0816b5721ebade0.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/b972a05ffc5672d471d5b1e84b01470a3363a25f9d9adbc8d82f4b9fd21a94a1.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/bbea0ecf08aec9444ed75cbffd5424aa19e285ac64a53d1bb50f6130230b3c97.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/c2181f9e06dd6b7437f14e815c4fd32ec304e4474c93e86c02b43f41367a79ff.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/c50b7f91aafff5caf0fe0ff96a922b499617966705cde0d3622191f51f523b38.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/c8c895c400f0532aa3afe641f79ed14bc399b504169242c0a9f77572c185def2.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/cdad9a8909ec6448ff4392f523d4c7d41dcba61fc635e7e744026f901df04913.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/d0d656ae32436d7b190665f98f3fe2d7a6250ee7ff4e1fb1bcd9a1364d3da2cb.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/d3695fdb74725542e432d0cd239481b0e3ea11b671395255f6ad25875830324c.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/db0c43c8233d3c9719119d9e20bb483c48c42a01e488b7441664bdae58568d9f.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/dbdc3c6e76833bb444a7d291266713ec6cf3f196ddf27e2e30eb94da9efc2c1f.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/e567efbdae19280c4c56a70a27de39e0efdc422d99c9d497629128fd3ec553d5.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/e728a11685286456b1d4c90386923bfd08af1311c7de06966affd011abde3be6.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/ebb0bfe46e02e0e3fec3ac5a3bc44cddcab4d0f12871b708469db393e029b1e7.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/ecf772312e7e697bab6126468a698dc8184b2ff78361cf71e3fdc35157e7d542.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/f90542b4e3cbaf7e9820cdad6bbe707e3210983c911f11584cfae580e5cf6a04.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/snapshots/external/ffc40bfdc5e916d73943cd9bae0a3e893664bab1c10fc25a30f8243852022efb.html +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/test_handler.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/test_render_action.py +0 -0
- {mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/test/test_render_workflow.py +0 -0
|
@@ -40,7 +40,7 @@ jobs:
|
|
|
40
40
|
python-versions: ${{ steps.get-versions.outputs.python-versions }}
|
|
41
41
|
steps:
|
|
42
42
|
- name: Checkout code
|
|
43
|
-
uses: actions/checkout@
|
|
43
|
+
uses: actions/checkout@v6
|
|
44
44
|
|
|
45
45
|
- name: Get Python versions from pyproject.toml
|
|
46
46
|
id: get-versions
|
|
@@ -65,7 +65,7 @@ jobs:
|
|
|
65
65
|
runs-on: ubuntu-latest
|
|
66
66
|
steps:
|
|
67
67
|
- name: Checkout code
|
|
68
|
-
uses: actions/checkout@
|
|
68
|
+
uses: actions/checkout@v6
|
|
69
69
|
with:
|
|
70
70
|
submodules: true
|
|
71
71
|
|
|
@@ -143,7 +143,7 @@ jobs:
|
|
|
143
143
|
pull-requests: write
|
|
144
144
|
steps:
|
|
145
145
|
- name: Checkout
|
|
146
|
-
uses: actions/checkout@
|
|
146
|
+
uses: actions/checkout@v6
|
|
147
147
|
with:
|
|
148
148
|
fetch-depth: 2
|
|
149
149
|
|
|
@@ -39,7 +39,7 @@ jobs:
|
|
|
39
39
|
git config --global user.email '${{ steps.get-user-id.outputs.user-id }}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com'
|
|
40
40
|
|
|
41
41
|
- name: Checkout repository
|
|
42
|
-
uses: actions/checkout@
|
|
42
|
+
uses: actions/checkout@v6
|
|
43
43
|
with:
|
|
44
44
|
fetch-depth: 0
|
|
45
45
|
ref: ${{ github.sha }}
|
|
@@ -123,7 +123,7 @@ jobs:
|
|
|
123
123
|
id-token: write
|
|
124
124
|
steps:
|
|
125
125
|
- name: Checkout repository
|
|
126
|
-
uses: actions/checkout@
|
|
126
|
+
uses: actions/checkout@v6
|
|
127
127
|
with:
|
|
128
128
|
ref: ${{ needs.release.outputs.next-tag }}
|
|
129
129
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mkdocstrings-github
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.2
|
|
4
4
|
Summary: A GitHub Action handler for mkdocstrings
|
|
5
5
|
Author-email: Mark Hu <watermarkhu@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -22,7 +22,7 @@ Classifier: Topic :: Utilities
|
|
|
22
22
|
Classifier: Typing :: Typed
|
|
23
23
|
Requires-Python: <3.15,>=3.10
|
|
24
24
|
Requires-Dist: gitpython<4,>=3.1.45
|
|
25
|
-
Requires-Dist: mkdocstrings<1
|
|
25
|
+
Requires-Dist: mkdocstrings<2,>=1
|
|
26
26
|
Requires-Dist: ruamel-yaml<1,>=0.18.16
|
|
27
27
|
Requires-Dist: typing-extensions>=4.0; python_version < '3.11'
|
|
28
28
|
Description-Content-Type: text/markdown
|
|
@@ -2,6 +2,57 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v0.6.2 (2025-11-30)
|
|
6
|
+
|
|
7
|
+
### Chores
|
|
8
|
+
|
|
9
|
+
- **deps**: Update group-pyproject
|
|
10
|
+
([#45](https://github.com/watermarkhu/mkdocstrings-github/pull/45),
|
|
11
|
+
[`5b13468`](https://github.com/watermarkhu/mkdocstrings-github/commit/5b1346847e9e9347ee8d9cbd84d62d23c1c82223))
|
|
12
|
+
|
|
13
|
+
- **deps**: Update group-pyproject (major)
|
|
14
|
+
([#45](https://github.com/watermarkhu/mkdocstrings-github/pull/45),
|
|
15
|
+
[`5b13468`](https://github.com/watermarkhu/mkdocstrings-github/commit/5b1346847e9e9347ee8d9cbd84d62d23c1c82223))
|
|
16
|
+
|
|
17
|
+
### Continuous Integration
|
|
18
|
+
|
|
19
|
+
- **deps**: Update actions/checkout action to v6
|
|
20
|
+
([#44](https://github.com/watermarkhu/mkdocstrings-github/pull/44),
|
|
21
|
+
[`738ef72`](https://github.com/watermarkhu/mkdocstrings-github/commit/738ef727a737de1851fb4ecd556f5f4cf6c6d667))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## v0.6.1 (2025-11-10)
|
|
25
|
+
|
|
26
|
+
### Build System
|
|
27
|
+
|
|
28
|
+
- **deps**: Update dependency inline-snapshot to ~=0.31.0
|
|
29
|
+
([#38](https://github.com/watermarkhu/mkdocstrings-github/pull/38),
|
|
30
|
+
[`df160a0`](https://github.com/watermarkhu/mkdocstrings-github/commit/df160a0f10f19d0ac589d2a4e13d9260d4b93fe0))
|
|
31
|
+
|
|
32
|
+
- **deps**: Update dependency pytest to v9
|
|
33
|
+
([#40](https://github.com/watermarkhu/mkdocstrings-github/pull/40),
|
|
34
|
+
[`f338dbc`](https://github.com/watermarkhu/mkdocstrings-github/commit/f338dbcbf70dd89a1559ead510896816a0ed1ce0))
|
|
35
|
+
|
|
36
|
+
- **deps**: Update dependency python-semantic-release to ~=10.5.0
|
|
37
|
+
([#41](https://github.com/watermarkhu/mkdocstrings-github/pull/41),
|
|
38
|
+
[`e1a78c7`](https://github.com/watermarkhu/mkdocstrings-github/commit/e1a78c753faa67b937737fc22e4826ba609bcc70))
|
|
39
|
+
|
|
40
|
+
### Chores
|
|
41
|
+
|
|
42
|
+
- **deps**: Update dependency mkdocstrings-python to ~=1.19.0
|
|
43
|
+
([#42](https://github.com/watermarkhu/mkdocstrings-github/pull/42),
|
|
44
|
+
[`7f92d5d`](https://github.com/watermarkhu/mkdocstrings-github/commit/7f92d5d0613007a7f1cc0cde76ba2159d8f30efd))
|
|
45
|
+
|
|
46
|
+
### Testing
|
|
47
|
+
|
|
48
|
+
- Fix test_get_repository_name_no_remotes for CI environment
|
|
49
|
+
([#39](https://github.com/watermarkhu/mkdocstrings-github/pull/39),
|
|
50
|
+
[`a04e7c7`](https://github.com/watermarkhu/mkdocstrings-github/commit/a04e7c78b7b2caf91b48f8d257b84c3e3e549bf3))
|
|
51
|
+
|
|
52
|
+
- Improve test coverage to 99% ([#39](https://github.com/watermarkhu/mkdocstrings-github/pull/39),
|
|
53
|
+
[`a04e7c7`](https://github.com/watermarkhu/mkdocstrings-github/commit/a04e7c78b7b2caf91b48f8d257b84c3e3e549bf3))
|
|
54
|
+
|
|
55
|
+
|
|
5
56
|
## v0.6.0 (2025-10-27)
|
|
6
57
|
|
|
7
58
|
### Build System
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mkdocstrings-github"
|
|
3
|
-
version = "0.6.
|
|
3
|
+
version = "0.6.2"
|
|
4
4
|
description = "A GitHub Action handler for mkdocstrings"
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Mark Hu", email = "watermarkhu@gmail.com" }
|
|
@@ -28,29 +28,29 @@ classifiers = [
|
|
|
28
28
|
|
|
29
29
|
dependencies = [
|
|
30
30
|
"gitpython>=3.1.45,<4",
|
|
31
|
-
"mkdocstrings>=
|
|
31
|
+
"mkdocstrings>=1,<2",
|
|
32
32
|
"ruamel.yaml>=0.18.16,<1",
|
|
33
33
|
"typing-extensions>=4.0; python_version < '3.11'",
|
|
34
34
|
]
|
|
35
35
|
|
|
36
36
|
[dependency-groups]
|
|
37
37
|
dev = [
|
|
38
|
-
"ty~=0.0.
|
|
38
|
+
"ty~=0.0.1a29",
|
|
39
39
|
"ruff~=0.14.0",
|
|
40
40
|
"prek>=0.2.1",
|
|
41
41
|
"pydantic~=2.12",
|
|
42
|
-
"pytest~=
|
|
42
|
+
"pytest~=9.0.0",
|
|
43
43
|
"pytest-cov~=7.0.0",
|
|
44
44
|
"beautifulsoup4>=4.13.3",
|
|
45
|
-
"inline-snapshot~=0.
|
|
46
|
-
"python-semantic-release~=10.
|
|
45
|
+
"inline-snapshot~=0.31.0",
|
|
46
|
+
"python-semantic-release~=10.5.0",
|
|
47
47
|
]
|
|
48
48
|
docs = [
|
|
49
49
|
"mkdocs-material~=9.5",
|
|
50
50
|
"mkdocs-callouts~=1.15",
|
|
51
51
|
"mkdocs-git-revision-date-localized-plugin~=1.3",
|
|
52
52
|
"mkdocs-minify-plugin~=0.8",
|
|
53
|
-
"mkdocstrings-python~=
|
|
53
|
+
"mkdocstrings-python~=2.0.0",
|
|
54
54
|
"mike~=2.1",
|
|
55
55
|
"griffe-pydantic~=1.1.7",
|
|
56
56
|
]
|
{mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/handler.py
RENAMED
|
@@ -179,7 +179,10 @@ class GitHubHandler(BaseHandler):
|
|
|
179
179
|
self.env.globals["repository_name"] = self.get_repository_name()
|
|
180
180
|
|
|
181
181
|
def collect(self, identifier: str, options: GitHubOptions) -> Workflow | Action | None:
|
|
182
|
-
|
|
182
|
+
working_tree_dir = self.repo.working_tree_dir
|
|
183
|
+
if working_tree_dir is None:
|
|
184
|
+
raise CollectionError("Repository working tree directory is not available.")
|
|
185
|
+
path = Path(working_tree_dir) / identifier
|
|
183
186
|
|
|
184
187
|
if path.suffix in (".yml", ".yaml"):
|
|
185
188
|
if not path.is_file():
|
|
@@ -199,12 +202,15 @@ class GitHubHandler(BaseHandler):
|
|
|
199
202
|
)
|
|
200
203
|
return data
|
|
201
204
|
|
|
202
|
-
def render(
|
|
205
|
+
def render(
|
|
206
|
+
self, data: Workflow | Action, options: GitHubOptions, *, locale: str | None = None
|
|
207
|
+
) -> str:
|
|
203
208
|
"""Render a template using provided data and configuration options.
|
|
204
209
|
|
|
205
210
|
Arguments:
|
|
206
211
|
data: The collected data to render.
|
|
207
212
|
options: The handler's configuration options.
|
|
213
|
+
locale: The locale to use for rendering (unused in this handler).
|
|
208
214
|
|
|
209
215
|
Returns:
|
|
210
216
|
The rendered template as HTML.
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
"""Tests to improve code coverage for uncovered lines."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
from unittest.mock import Mock
|
|
7
|
+
|
|
8
|
+
import pytest
|
|
9
|
+
from mkdocs.exceptions import PluginError
|
|
10
|
+
|
|
11
|
+
from mkdocstrings_handlers.github.objects import (
|
|
12
|
+
Input,
|
|
13
|
+
PermissionLevel,
|
|
14
|
+
Workflow,
|
|
15
|
+
_get_member,
|
|
16
|
+
)
|
|
17
|
+
from mkdocstrings_handlers.github.rendering import (
|
|
18
|
+
anchor_id,
|
|
19
|
+
as_string,
|
|
20
|
+
filter_parameters,
|
|
21
|
+
format_action_signature,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
if TYPE_CHECKING:
|
|
25
|
+
from mkdocstrings_handlers.github import GitHubHandler
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class TestRendering:
|
|
29
|
+
"""Test rendering module functions."""
|
|
30
|
+
|
|
31
|
+
def test_as_string_with_bool_false(self):
|
|
32
|
+
"""Test as_string with boolean False value."""
|
|
33
|
+
assert as_string(False) == "false"
|
|
34
|
+
|
|
35
|
+
def test_as_string_with_bool_true(self):
|
|
36
|
+
"""Test as_string with boolean True value."""
|
|
37
|
+
assert as_string(True) == "true"
|
|
38
|
+
|
|
39
|
+
def test_as_string_with_int(self):
|
|
40
|
+
"""Test as_string with integer value."""
|
|
41
|
+
assert as_string(42) == "42"
|
|
42
|
+
|
|
43
|
+
def test_as_string_with_float(self):
|
|
44
|
+
"""Test as_string with float value."""
|
|
45
|
+
assert as_string(3.14) == "3.14"
|
|
46
|
+
|
|
47
|
+
def test_as_string_with_none(self):
|
|
48
|
+
"""Test as_string with None value."""
|
|
49
|
+
assert as_string(None) == ""
|
|
50
|
+
|
|
51
|
+
def test_as_string_with_string(self):
|
|
52
|
+
"""Test as_string with string value."""
|
|
53
|
+
assert as_string("test") == "test"
|
|
54
|
+
|
|
55
|
+
def test_as_string_with_unsupported_type(self):
|
|
56
|
+
"""Test as_string raises TypeError for unsupported types."""
|
|
57
|
+
with pytest.raises(TypeError, match="Unsupported type"):
|
|
58
|
+
as_string([1, 2, 3]) # type: ignore
|
|
59
|
+
|
|
60
|
+
def test_filter_parameters_optional(self):
|
|
61
|
+
"""Test filter_parameters with optional filter."""
|
|
62
|
+
params = [
|
|
63
|
+
Input(name="required", required=True),
|
|
64
|
+
Input(name="optional", required=False),
|
|
65
|
+
]
|
|
66
|
+
filtered = filter_parameters(params, optional=True)
|
|
67
|
+
assert len(filtered) == 1
|
|
68
|
+
assert filtered[0].name == "optional"
|
|
69
|
+
|
|
70
|
+
def test_filter_parameters_description(self):
|
|
71
|
+
"""Test filter_parameters with description filter."""
|
|
72
|
+
params = [
|
|
73
|
+
Input(name="with_desc", description="Has description"),
|
|
74
|
+
Input(name="without_desc", description=""),
|
|
75
|
+
]
|
|
76
|
+
# When description=True, it filters OUT parameters without description
|
|
77
|
+
# So we keep only parameters WITH description
|
|
78
|
+
filtered = filter_parameters(params, description=True)
|
|
79
|
+
assert len(filtered) == 1
|
|
80
|
+
assert filtered[0].name == "with_desc"
|
|
81
|
+
|
|
82
|
+
def test_filter_parameters_default(self):
|
|
83
|
+
"""Test filter_parameters with default filter."""
|
|
84
|
+
params = [
|
|
85
|
+
Input(name="with_default", default="value"),
|
|
86
|
+
Input(name="without_default", default=None),
|
|
87
|
+
]
|
|
88
|
+
# When default=True, it filters OUT parameters without default
|
|
89
|
+
# So we keep only parameters WITH default
|
|
90
|
+
filtered = filter_parameters(params, default=True)
|
|
91
|
+
assert len(filtered) == 1
|
|
92
|
+
assert filtered[0].name == "with_default"
|
|
93
|
+
|
|
94
|
+
def test_anchor_id(self):
|
|
95
|
+
"""Test anchor_id with spaces."""
|
|
96
|
+
result = anchor_id("my name", "input", "parent id")
|
|
97
|
+
assert result == "parent-id--input.my-name"
|
|
98
|
+
|
|
99
|
+
def test_format_action_signature_non_repo(self):
|
|
100
|
+
"""Test format_action_signature when git_repo is not a Repo instance."""
|
|
101
|
+
from mkdocstrings_handlers.github.config import GitHubOptions
|
|
102
|
+
|
|
103
|
+
# Test with ref version when git_repo is not a Repo
|
|
104
|
+
context = Mock()
|
|
105
|
+
context.environment.globals = {"git_repo": "not_a_repo"}
|
|
106
|
+
|
|
107
|
+
options = GitHubOptions(signature_version="ref")
|
|
108
|
+
result = format_action_signature(context, ".", "owner/repo", options)
|
|
109
|
+
assert result == "owner/repo@unknown"
|
|
110
|
+
|
|
111
|
+
def test_format_action_signature_exception_handling(self):
|
|
112
|
+
"""Test format_action_signature when accessing head.ref.name raises exception."""
|
|
113
|
+
import git
|
|
114
|
+
|
|
115
|
+
from mkdocstrings_handlers.github.config import GitHubOptions
|
|
116
|
+
|
|
117
|
+
# Create a mock that is a Repo instance but raises exception when accessing head.ref.name
|
|
118
|
+
context = Mock()
|
|
119
|
+
|
|
120
|
+
# Create an actual Repo type mock with side effect
|
|
121
|
+
mock_repo = Mock(spec=git.Repo)
|
|
122
|
+
type(mock_repo.head.ref).name = Mock(side_effect=Exception("Test exception"))
|
|
123
|
+
|
|
124
|
+
context.environment.globals = {"git_repo": mock_repo}
|
|
125
|
+
|
|
126
|
+
options = GitHubOptions(signature_version="ref")
|
|
127
|
+
result = format_action_signature(context, ".", "owner/repo", options)
|
|
128
|
+
assert result == "owner/repo@unknown"
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
class TestObjects:
|
|
132
|
+
"""Test objects module functions and classes."""
|
|
133
|
+
|
|
134
|
+
def test_get_member_raises_key_error(self):
|
|
135
|
+
"""Test _get_member raises KeyError when key is missing and no default."""
|
|
136
|
+
with pytest.raises(KeyError, match="Missing key"):
|
|
137
|
+
_get_member({}, "missing_key", error_message="Missing key")
|
|
138
|
+
|
|
139
|
+
def test_permission_level_from_label_invalid(self):
|
|
140
|
+
"""Test PermissionLevel.from_label raises ValueError for invalid label."""
|
|
141
|
+
with pytest.raises(ValueError, match="No Permission with label"):
|
|
142
|
+
PermissionLevel.from_label("invalid")
|
|
143
|
+
|
|
144
|
+
def test_permission_level_gt_not_implemented(self):
|
|
145
|
+
"""Test PermissionLevel.__gt__ returns NotImplemented for non-PermissionLevel."""
|
|
146
|
+
result = PermissionLevel.read.__gt__("string")
|
|
147
|
+
assert result == NotImplemented
|
|
148
|
+
|
|
149
|
+
def test_workflow_from_file_no_workflow_call(self, tmp_path):
|
|
150
|
+
"""Test Workflow.from_file returns None when workflow_call is not present."""
|
|
151
|
+
workflow_file = tmp_path / "workflow.yml"
|
|
152
|
+
workflow_file.write_text(
|
|
153
|
+
"""
|
|
154
|
+
name: Test Workflow
|
|
155
|
+
on:
|
|
156
|
+
push:
|
|
157
|
+
branches: [main]
|
|
158
|
+
"""
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
result = Workflow.from_file(workflow_file, "test.yml")
|
|
162
|
+
assert result is None
|
|
163
|
+
|
|
164
|
+
def test_workflow_invalid_permission_level_string(self, tmp_path):
|
|
165
|
+
"""Test Workflow.from_file raises ValueError for invalid permission string."""
|
|
166
|
+
workflow_file = tmp_path / "workflow.yml"
|
|
167
|
+
workflow_file.write_text(
|
|
168
|
+
"""
|
|
169
|
+
name: Test Workflow
|
|
170
|
+
on:
|
|
171
|
+
workflow_call:
|
|
172
|
+
permissions: invalid-level
|
|
173
|
+
"""
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
with pytest.raises(ValueError, match="Unknown permission level"):
|
|
177
|
+
Workflow.from_file(workflow_file, "test.yml")
|
|
178
|
+
|
|
179
|
+
def test_workflow_invalid_permission_type(self, tmp_path):
|
|
180
|
+
"""Test Workflow.from_file raises ValueError for invalid permission type."""
|
|
181
|
+
workflow_file = tmp_path / "workflow.yml"
|
|
182
|
+
workflow_file.write_text(
|
|
183
|
+
"""
|
|
184
|
+
name: Test Workflow
|
|
185
|
+
on:
|
|
186
|
+
workflow_call:
|
|
187
|
+
permissions: 123
|
|
188
|
+
"""
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
with pytest.raises(ValueError, match="permissions must be a string or a dictionary"):
|
|
192
|
+
Workflow.from_file(workflow_file, "test.yml")
|
|
193
|
+
|
|
194
|
+
def test_workflow_invalid_job_permission_type(self, tmp_path):
|
|
195
|
+
"""Test Workflow.from_file raises ValueError for invalid job permission type."""
|
|
196
|
+
workflow_file = tmp_path / "workflow.yml"
|
|
197
|
+
workflow_file.write_text(
|
|
198
|
+
"""
|
|
199
|
+
name: Test Workflow
|
|
200
|
+
on:
|
|
201
|
+
workflow_call:
|
|
202
|
+
jobs:
|
|
203
|
+
test:
|
|
204
|
+
runs-on: ubuntu-latest
|
|
205
|
+
permissions: 123
|
|
206
|
+
"""
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
with pytest.raises(ValueError, match="permissions must be a string or a dictionary"):
|
|
210
|
+
Workflow.from_file(workflow_file, "test.yml")
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
class TestHandler:
|
|
214
|
+
"""Test handler module functions."""
|
|
215
|
+
|
|
216
|
+
def test_get_releases_exception_handling(self, handler: GitHubHandler):
|
|
217
|
+
"""Test get_releases handles exception when getting git tags fails."""
|
|
218
|
+
# Create a mock repo that raises exception when accessing tags
|
|
219
|
+
mock_repo = Mock()
|
|
220
|
+
mock_repo.tags = Mock(side_effect=Exception("Git error"))
|
|
221
|
+
|
|
222
|
+
# Replace the handler's repo with our mock
|
|
223
|
+
original_repo = handler.repo
|
|
224
|
+
original_semver = handler.semver
|
|
225
|
+
original_major = handler.major
|
|
226
|
+
handler.repo = mock_repo
|
|
227
|
+
handler.semver = ""
|
|
228
|
+
handler.major = ""
|
|
229
|
+
|
|
230
|
+
try:
|
|
231
|
+
# Should handle exception gracefully without raising
|
|
232
|
+
handler.get_releases()
|
|
233
|
+
assert handler.semver == ""
|
|
234
|
+
assert handler.major == ""
|
|
235
|
+
finally:
|
|
236
|
+
# Restore original repo and values
|
|
237
|
+
handler.repo = original_repo
|
|
238
|
+
handler.semver = original_semver
|
|
239
|
+
handler.major = original_major
|
|
240
|
+
|
|
241
|
+
def test_get_releases_with_invalid_version_tag(self, handler: GitHubHandler, tmp_path):
|
|
242
|
+
"""Test get_releases handles tags with invalid version format."""
|
|
243
|
+
import git
|
|
244
|
+
|
|
245
|
+
# Create a temporary git repo with a commit
|
|
246
|
+
repo = git.Repo.init(tmp_path)
|
|
247
|
+
|
|
248
|
+
# Create a file and commit it so we have a valid HEAD
|
|
249
|
+
test_file = tmp_path / "test.txt"
|
|
250
|
+
test_file.write_text("test")
|
|
251
|
+
repo.index.add([str(test_file)])
|
|
252
|
+
repo.index.commit("Initial commit")
|
|
253
|
+
|
|
254
|
+
# Create tags with invalid version format (including semver-like tags with invalid versions)
|
|
255
|
+
repo.create_tag("invalid-tag")
|
|
256
|
+
repo.create_tag("another-invalid")
|
|
257
|
+
repo.create_tag("v1.2.3") # Valid semver
|
|
258
|
+
repo.create_tag("v99.99.99") # Valid semver
|
|
259
|
+
|
|
260
|
+
# Replace the handler's repo with our test repo
|
|
261
|
+
original_repo = handler.repo
|
|
262
|
+
original_semver = handler.semver
|
|
263
|
+
original_major = handler.major
|
|
264
|
+
handler.repo = repo
|
|
265
|
+
# Reset values so get_releases starts fresh
|
|
266
|
+
handler.semver = ""
|
|
267
|
+
handler.major = ""
|
|
268
|
+
|
|
269
|
+
try:
|
|
270
|
+
handler.get_releases()
|
|
271
|
+
|
|
272
|
+
# Should use the latest valid semver tag
|
|
273
|
+
assert handler.semver == "v99.99.99"
|
|
274
|
+
# No major tags (v1, v2, etc.) were created, only semver tags
|
|
275
|
+
assert handler.major == ""
|
|
276
|
+
finally:
|
|
277
|
+
# Restore original repo and values
|
|
278
|
+
handler.repo = original_repo
|
|
279
|
+
handler.semver = original_semver
|
|
280
|
+
handler.major = original_major
|
|
281
|
+
|
|
282
|
+
def test_get_releases_with_tags_triggering_invalid_version(self, handler: GitHubHandler):
|
|
283
|
+
"""Test get_releases handles tags that trigger InvalidVersion exception."""
|
|
284
|
+
# Create a mock repo with tags that will trigger InvalidVersion
|
|
285
|
+
mock_tag1 = Mock()
|
|
286
|
+
mock_tag1.name = "vinvalid" # Matches major pattern but invalid version
|
|
287
|
+
|
|
288
|
+
mock_tag2 = Mock()
|
|
289
|
+
mock_tag2.name = "v1" # Valid major tag
|
|
290
|
+
|
|
291
|
+
mock_repo = Mock()
|
|
292
|
+
mock_repo.tags = [mock_tag1, mock_tag2]
|
|
293
|
+
|
|
294
|
+
# Replace the handler's repo with our mock
|
|
295
|
+
original_repo = handler.repo
|
|
296
|
+
handler.repo = mock_repo
|
|
297
|
+
|
|
298
|
+
try:
|
|
299
|
+
handler.get_releases()
|
|
300
|
+
|
|
301
|
+
# Should gracefully handle the invalid version and use the valid one
|
|
302
|
+
assert handler.major == "v1"
|
|
303
|
+
finally:
|
|
304
|
+
# Restore original repo
|
|
305
|
+
handler.repo = original_repo
|
|
306
|
+
|
|
307
|
+
def test_get_options_invalid(self, handler: GitHubHandler):
|
|
308
|
+
"""Test get_options raises PluginError for invalid options."""
|
|
309
|
+
with pytest.raises(PluginError, match="Invalid options"):
|
|
310
|
+
handler.get_options({"invalid_option": "value", "heading_level": "not_an_int"})
|
|
311
|
+
|
|
312
|
+
def test_get_repository_name_no_remotes(self, handler: GitHubHandler, tmp_path):
|
|
313
|
+
"""Test get_repository_name raises error when no valid remote is found."""
|
|
314
|
+
import os
|
|
315
|
+
|
|
316
|
+
import git
|
|
317
|
+
|
|
318
|
+
# Create a temporary git repo without any remotes
|
|
319
|
+
repo = git.Repo.init(tmp_path)
|
|
320
|
+
|
|
321
|
+
# Replace the handler's repo with our test repo
|
|
322
|
+
original_repo = handler.repo
|
|
323
|
+
handler.repo = repo
|
|
324
|
+
|
|
325
|
+
# Temporarily clear GITHUB_ACTIONS and GITHUB_REPOSITORY env vars
|
|
326
|
+
# to ensure the test actually checks the remote URL logic
|
|
327
|
+
github_actions = os.environ.pop("GITHUB_ACTIONS", None)
|
|
328
|
+
github_repo = os.environ.pop("GITHUB_REPOSITORY", None)
|
|
329
|
+
|
|
330
|
+
try:
|
|
331
|
+
with pytest.raises(
|
|
332
|
+
PluginError,
|
|
333
|
+
match="Could not determine GitHub repository owner/name from any git remote URL",
|
|
334
|
+
):
|
|
335
|
+
handler.get_repository_name()
|
|
336
|
+
finally:
|
|
337
|
+
# Restore original repo
|
|
338
|
+
handler.repo = original_repo
|
|
339
|
+
# Restore environment variables
|
|
340
|
+
if github_actions is not None:
|
|
341
|
+
os.environ["GITHUB_ACTIONS"] = github_actions
|
|
342
|
+
if github_repo is not None:
|
|
343
|
+
os.environ["GITHUB_REPOSITORY"] = github_repo
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
class TestWorkflowPermissions:
|
|
347
|
+
"""Test workflow permission handling."""
|
|
348
|
+
|
|
349
|
+
def test_workflow_job_permission_string(self, tmp_path):
|
|
350
|
+
"""Test Workflow with job-level permission strings."""
|
|
351
|
+
workflow_file = tmp_path / "workflow.yml"
|
|
352
|
+
workflow_file.write_text(
|
|
353
|
+
"""
|
|
354
|
+
name: Test Workflow
|
|
355
|
+
on:
|
|
356
|
+
workflow_call:
|
|
357
|
+
jobs:
|
|
358
|
+
test:
|
|
359
|
+
runs-on: ubuntu-latest
|
|
360
|
+
permissions: read-all
|
|
361
|
+
"""
|
|
362
|
+
)
|
|
363
|
+
|
|
364
|
+
workflow = Workflow.from_file(workflow_file, "test.yml")
|
|
365
|
+
assert workflow is not None
|
|
366
|
+
assert workflow.permission_read_all
|
|
367
|
+
|
|
368
|
+
def test_workflow_job_permission_write_all(self, tmp_path):
|
|
369
|
+
"""Test Workflow with write-all permission."""
|
|
370
|
+
workflow_file = tmp_path / "workflow.yml"
|
|
371
|
+
workflow_file.write_text(
|
|
372
|
+
"""
|
|
373
|
+
name: Test Workflow
|
|
374
|
+
on:
|
|
375
|
+
workflow_call:
|
|
376
|
+
permissions: write-all
|
|
377
|
+
"""
|
|
378
|
+
)
|
|
379
|
+
|
|
380
|
+
workflow = Workflow.from_file(workflow_file, "test.yml")
|
|
381
|
+
assert workflow is not None
|
|
382
|
+
assert workflow.permission_write_all
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""Test signature with ref version to improve coverage."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from mkdocstrings_handlers.github import GitHubHandler
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def test_action_signature_with_ref(session_handler: GitHubHandler) -> None:
|
|
12
|
+
"""Test action signature with ref version to cover rendering.py line 29."""
|
|
13
|
+
from test.helpers import render
|
|
14
|
+
|
|
15
|
+
# This will use the actual git repo and access git_repo.head.ref.name
|
|
16
|
+
html = render(
|
|
17
|
+
session_handler,
|
|
18
|
+
".",
|
|
19
|
+
{
|
|
20
|
+
"signature_version": "ref",
|
|
21
|
+
"show_signature": True,
|
|
22
|
+
"show_heading": False,
|
|
23
|
+
"show_description": False,
|
|
24
|
+
"show_source": False,
|
|
25
|
+
},
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
# The signature should contain the current branch name (could be HEAD, main, master, etc.)
|
|
29
|
+
assert "@" in html
|
|
30
|
+
# Verify we're actually rendering the signature
|
|
31
|
+
assert "uses:" in html or "@" in html
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def test_workflow_signature_with_ref(session_handler: GitHubHandler) -> None:
|
|
35
|
+
"""Test workflow signature with ref version."""
|
|
36
|
+
from test.helpers import render
|
|
37
|
+
|
|
38
|
+
html = render(
|
|
39
|
+
session_handler,
|
|
40
|
+
".github/workflows/reusable-workflow.yml",
|
|
41
|
+
{
|
|
42
|
+
"signature_version": "ref",
|
|
43
|
+
"show_signature": True,
|
|
44
|
+
"show_heading": False,
|
|
45
|
+
"show_description": False,
|
|
46
|
+
"show_source": False,
|
|
47
|
+
},
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
# The signature should contain the current branch name
|
|
51
|
+
assert "@" in html
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/.github/workflows/example_workflow.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/docs/overrides/partials/toc-item.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/__init__.py
RENAMED
|
File without changes
|
{mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/config.py
RENAMED
|
File without changes
|
{mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/objects.py
RENAMED
|
File without changes
|
{mkdocstrings_github-0.6.0 → mkdocstrings_github-0.6.2}/src/mkdocstrings_handlers/github/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|