{"id":25665643,"url":"https://github.com/cssnr/actions-tools","last_synced_at":"2026-03-05T01:02:04.047Z","repository":{"id":278644926,"uuid":"935792207","full_name":"cssnr/actions-tools","owner":"cssnr","description":"A Typed Python GitHub Actions Tookit similar to actions/toolkit","archived":false,"fork":false,"pushed_at":"2025-11-29T08:31:46.000Z","size":170,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-21T23:16:05.039Z","etag":null,"topics":["actions","python"],"latest_commit_sha":null,"homepage":"http://actions-tools.cssnr.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cssnr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/support.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"cssnr"}},"created_at":"2025-02-20T02:59:24.000Z","updated_at":"2025-11-29T08:31:48.000Z","dependencies_parsed_at":"2025-02-20T22:30:37.683Z","dependency_job_id":"db318ed0-6dcc-44f4-b8d2-b06d1774b4b7","html_url":"https://github.com/cssnr/actions-tools","commit_stats":null,"previous_names":["cssnr/actions-tools"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/cssnr/actions-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Factions-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Factions-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Factions-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Factions-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cssnr","download_url":"https://codeload.github.com/cssnr/actions-tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Factions-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30104218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T00:38:46.881Z","status":"ssl_error","status_checked_at":"2026-03-05T00:38:45.829Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions","python"],"created_at":"2025-02-24T07:28:33.405Z","updated_at":"2026-03-05T01:02:03.994Z","avatar_url":"https://github.com/cssnr.png","language":"Python","funding_links":["https://ko-fi.com/cssnr"],"categories":[],"sub_categories":[],"readme":"[![PyPI Version](https://img.shields.io/pypi/v/actions-tools?logo=pypi\u0026logoColor=white\u0026label=pypi)](https://pypi.org/project/actions-tools/)\n[![GitHub Release Version](https://img.shields.io/github/v/release/cssnr/actions-tools?logo=github)](https://github.com/cssnr/actions-tools/releases)\n[![TOML Python Version](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fcssnr%2Factions-tools%2Frefs%2Fheads%2Fmaster%2Fpyproject.toml\u0026query=%24.project.requires-python\u0026logo=python\u0026logoColor=white\u0026label=python)](https://github.com/cssnr/actions-tools?tab=readme-ov-file#readme)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/actions-tools?logo=pypi\u0026logoColor=white)](https://pypistats.org/packages/actions-tools)\n[![Pepy Total Downloads](https://img.shields.io/pepy/dt/actions-tools?logo=pypi\u0026logoColor=white\u0026label=total)](https://clickpy.clickhouse.com/dashboard/actions-tools)\n[![Codecov](https://codecov.io/gh/cssnr/actions-tools/graph/badge.svg?token=A8NDHZ393X)](https://codecov.io/gh/cssnr/actions-tools)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=cssnr_actions-tools\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=cssnr_actions-tools)\n[![Workflow Test](https://img.shields.io/github/actions/workflow/status/cssnr/actions-tools/test.yaml?logo=cachet\u0026label=test)](https://github.com/cssnr/actions-tools/actions/workflows/test.yaml)\n[![Workflow Lint](https://img.shields.io/github/actions/workflow/status/cssnr/actions-tools/lint.yaml?logo=cachet\u0026label=lint)](https://github.com/cssnr/actions-tools/actions/workflows/lint.yaml)\n[![Workflow Release](https://img.shields.io/github/actions/workflow/status/cssnr/actions-tools/release.yaml?logo=cachet\u0026label=release)](https://github.com/cssnr/actions-tools/actions/workflows/release.yaml)\n[![Deployment PyPi](https://img.shields.io/github/deployments/cssnr/actions-tools/pypi?logo=pypi\u0026logoColor=white\u0026label=pypi)](https://pypi.org/project/actions-tools/)\n[![Deployment Docs](https://img.shields.io/github/deployments/cssnr/actions-tools/docs?logo=materialformkdocs\u0026logoColor=white\u0026label=docs)](https://actions-tools.cssnr.com/)\n[![GitHub Last Commit](https://img.shields.io/github/last-commit/cssnr/actions-tools?logo=github\u0026label=updated)](https://github.com/cssnr/actions-tools/graphs/commit-activity)\n[![GitHub Repo Size](https://img.shields.io/github/repo-size/cssnr/actions-tools?logo=bookstack\u0026logoColor=white\u0026label=repo%20size)](https://github.com/cssnr/actions-tools)\n[![GitHub Top Language](https://img.shields.io/github/languages/top/cssnr/actions-tools?logo=htmx\u0026logoColor=white)](https://github.com/cssnr/actions-tools?tab=readme-ov-file#readme)\n[![GitHub Contributors](https://img.shields.io/github/contributors-anon/cssnr/actions-tools?logo=github)](https://github.com/cssnr/actions-tools/graphs/contributors)\n[![GitHub Discussions](https://img.shields.io/github/discussions/cssnr/actions-tools?logo=github)](https://github.com/cssnr/actions-tools/discussions)\n[![GitHub Forks](https://img.shields.io/github/forks/cssnr/actions-tools?style=flat\u0026logo=github)](https://github.com/cssnr/actions-tools/forks)\n[![GitHub Repo Stars](https://img.shields.io/github/stars/cssnr/actions-tools?style=flat\u0026logo=github)](https://github.com/cssnr/actions-tools/stargazers)\n[![GitHub Org Stars](https://img.shields.io/github/stars/cssnr?style=flat\u0026logo=github\u0026label=org%20stars)](https://cssnr.github.io/)\n[![Discord](https://img.shields.io/discord/899171661457293343?logo=discord\u0026logoColor=white\u0026label=discord\u0026color=7289da)](https://discord.gg/wXy6m2X8wY)\n[![Ko-fi](https://img.shields.io/badge/Ko--fi-72a5f2?logo=kofi\u0026label=support)](https://ko-fi.com/cssnr)\n\n# Actions Tools\n\n\u003ca title=\"Actions Tools\" href=\"https://actions-tools.cssnr.com/\" target=\"_blank\"\u003e\n\u003cimg alt=\"Actions Tools\" align=\"right\" width=\"128\" height=\"auto\" src=\"https://raw.githubusercontent.com/smashedr/repo-images/refs/heads/master/actions-tools/logo128.png\"\u003e\u003c/a\u003e\n\n- [Install](#install)\n- [Usage](#usage)\n- [Support](#support)\n- [Contributing](#contributing)\n\nA Typed Python GitHub Actions Tookit similar to [actions/toolkit](https://github.com/actions/toolkit).\n\n[![View Documentation](https://img.shields.io/badge/view_documentation-blue?style=for-the-badge\u0026logo=googledocs\u0026logoColor=white)](http://actions-tools.cssnr.com/)\n\n\u003e [!TIP]  \n\u003e This project is in active development.  \n\u003e Please let us know [what features](https://github.com/cssnr/actions-tools/issues/new?template=1-feature.yaml) you want to see.\n\n## Install\u003ca id=\"install\"\u003e\u003c/a\u003e\n\nFrom PyPI: https://pypi.org/p/actions-tools\n\n```shell\npip install actions-tools\n```\n\nWith [PyGithub](https://github.com/PyGithub/PyGithub) (for GitHub API access).\n\n```shell\npip install actions-tools[github]\n```\n\nAdd to your pyproject.toml.\n\n```shell\npip install --group dev actions-tools\npip install --group dev actions-tools[github]\nuv add --dev toml-run\nuv add --dev toml-run[github]\n```\n\nInstall from GitHub.\n\n```shell\npip install git+https://github.com/cssnr/actions-tools.git\n```\n\nInstall from source.\n\n```shell\ngit clone https://github.com/cssnr/actions-tools\npip install actions-tools\n```\n\nUninstall.\n\n```shell\npip uninstall actions-tools\n```\n\n## Usage\u003ca id=\"usage\"\u003e\u003c/a\u003e\n\n[![View Usage Guide](https://img.shields.io/badge/view_usage_guide-blue?style=for-the-badge\u0026logo=googledocs\u0026logoColor=white)](http://actions-tools.cssnr.com/usage/)\n\nFunctionality from @actions/toolkit\n\n```python\nfrom actions import core, context\n\n# Input\nmy_str = core.get_input(\"string\")  # -\u003e str\nmy_req = core.get_input(\"string\", True)  # required\nmy_bool = core.get_bool(\"boolean\")  # -\u003e bool\nmy_list = core.get_list(\"list\")  # -\u003e list\nmy_dict = core.get_dict(\"dict\")  # -\u003e dict - from json or yaml\nmy_data = core.get_data(\"data\")  # -\u003e Any - from json or yaml\n\n# Context\n# https://docs.github.com/en/actions/reference/workflows-and-actions/variables\ncore.info(f\"event_name: {context.event_name}\")\ncore.info(f\"ref_name: {context.ref_name}\")\ncore.info(f\"runner_temp: {context.runner_temp}\")\n\n# Event\n# https://docs.github.com/en/webhooks/webhook-events-and-payloads\nevent = core.get_event()  # -\u003e dict\ncore.info(str(event))\nrepository = event.get(\"repository\")\n\n# Logging\ncore.info(\"info\")  # alias for print\ncore.debug(\"debug\")\n\n# Annotations\n# https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-commands#setting-a-notice-message\ncore.notice(\"notice\")\ncore.warn(\"warn\")\ncore.error(\"error\", title=\"Title\", file=\"File\", col=1, endColumn=2, line=3, endLine=4)\n\n# Blocks\ncore.start_group(\"Title\")\ncore.info(\"This is folded.\")\ncore.end_group()\n\nwith core.group(\"Title\") as p:\n    p(\"This is folded.\")\n    core.info(\"Also folded.\")\n\n# Environment\ncore.set_env(\"NAME\", \"value\")\n\n# State\nname = core.set_state(\"name\", \"value\")\nvalue = core.get_state(\"name\")\n\n# System Path\ncore.add_path(\"/dev/null\")\n\n# Set Secret\ncore.mask(\"super-secret-string\")\n\n# Outputs\ncore.set_output(\"name\", \"cssnr\")\n\n# Commands\ncore.stop_commands()\ncore.info(\"::error::log output with commands\")\ncore.start_commands()\n\n# Abort\ncore.set_failed(\"Mayday!\")\n\n# Runner Debug\ncore.is_debug()\n\n# PyGithub (Octokit)\n# https://pygithub.readthedocs.io/en/stable/\ntoken = core.get_input(\"token\", True)\ng = core.get_github(token)\nrepo = g.get_repo(context.repository)\ncore.info(f\"repo.name: {repo.name}\")\n\n# OIDC Token\n# https://docs.github.com/en/actions/reference/security/oidc\nid_token = core.get_id_token()\n\n# Summary\ncore.summary.add_raw(\"text\")\n# text\\n\ncore.summary.add_eol()\n# \\n\ncore.summary.add_code(\"from actions import core\", \"python\")\n# \\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom actions import core\u003c/code\u003e\u003c/pre\u003e\\n\\n\ncore.summary.add_list([\"item 1\", \"item 2\"])\n# \\n\u003cul\u003e\u003cli\u003eitem 1\u003c/li\u003e\\n\u003cli\u003eitem 2\u003c/li\u003e\u003c/ul\u003e\\n\\n\ncore.summary.add_details(\"Summary\", \"Details...\")\n# \\n\u003cdetails\u003e\u003csummary\u003eSummary\u003c/summary\u003eDetails...\u003c/details\u003e\\n\\n\ncore.summary.add_image(\"src\", \"alt\", 100)\n# \\n\u003cimg src=\"src\" alt=\"alt\" width=\"100\" height=\"auto\"\u003e\\n\\n\ncore.summary.add_heading(\"Heading\", 1)\n# \\n\u003ch1\u003eHeading\u003c/h1\u003e\\n\\n\ncore.summary.add_hr()\n# \\n\u003chr\u003e\\n\\n\ncore.summary.add_br()\n# \\n\u003cbr\u003e\\n\\n\ncore.summary.add_quote(\"I broke it.\", \"ralf\")\n# \\n\u003cblockquote cite=\"ralf\"\u003eI broke it.\u003c/blockquote\u003e\\n\\n\ncore.summary.add_link(\"text\", \"href\")\n# \\n\u003ca href=\"href\"\u003etext\u003c/a\u003e\\n\\n\n# \\n\u003ca href=\"href\"\u003etext\u003c/a\u003e\\n\\n\ncore.summary.add_table([[\"Head 1\", \"Head 2\"], [\"data 1\", \"data 2\"]])\n# \\n\u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003eHead 1\u003c/th\u003e\u003cth\u003eHead 2\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n# \u003ctbody\u003e\u003ctr\u003e\u003ctd\u003edata 1\u003c/td\u003e\u003ctd\u003edata 2\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\\n\\n\n\nwith core.summary.with_code(\"text\") as add:\n    add(\"line 1\")\n    add(\"line 2\")\n# \\n\u003cpre lang=\"text\"\u003e\u003ccode\u003eline 1\\nline 2\u003c/code\u003e\u003c/pre\u003e\\n\\n\n\nwith core.summary.with_list() as add:\n    add(\"line 1\")\n    add(\"line 2\")\n# \\n\u003cul\u003e\\n\u003cli\u003eline 1\u003c/li\u003e\\n\u003cli\u003eline 2\u003c/li\u003e\\n\u003c/ul\u003e\\n\\n\n\nwith core.summary.with_details(\"Summary\") as add:\n    add(\"line 1\")\n    add(\"line 2\")\n# \\n\u003cdetails\u003e\u003csummary\u003eSummary\u003c/summary\u003e\\n\\nline 1\\nline 2\\n\\n\u003c/details\u003e\\n\\n\n```\n\n- Full `core` reference: [../src/actions/core.py](https://github.com/cssnr/actions-tools/blob/master/src/actions/core.py)\n- Full `context` reference: [../src/actions/context.py](https://github.com/cssnr/actions-tools/blob/master/src/actions/context.py)\n\nFunctionality new in actions-tools\n\n```python\nfrom actions import core, context\n\n# Context\ncore.info(f\"repository_name: {context.repository_name}\")\n\n# Commands\ncore.command(\"warning\", \"Warned!\")  # core.warn()\n\n# Action Version\nversion = core.get_version()  # from GITHUB_WORKFLOW_REF\n\n# Random\nrand = core.get_random(32)\n\n# Indent\ncore.start_indent(4)\ncore.info(\"Indented\")  # only works with core.info\ncore.end_indent()\n```\n\nExample Actions.\n\n- Create Files Action: [cssnr/create-files-action](https://github.com/cssnr/create-files-action)\n- Python Action Template: [smashedr/test-action-py](https://github.com/smashedr/test-action-py)\n- Python UV Action Template: [smashedr/test-action-uv](https://github.com/smashedr/test-action-uv)\n\n[![View Usage Guide](https://img.shields.io/badge/view_usage_guide-blue?style=for-the-badge\u0026logo=googledocs\u0026logoColor=white)](http://actions-tools.cssnr.com/usage/)\n\n## Support\u003ca id=\"support\"\u003e\u003c/a\u003e\n\nIf you run into any issues or need help getting started, please do one of the following:\n\n- Report an Issue: \u003chttps://github.com/cssnr/actions-tools/issues\u003e\n- Q\u0026A Discussion: \u003chttps://github.com/cssnr/actions-tools/discussions/categories/q-a\u003e\n- Request a Feature: \u003chttps://github.com/cssnr/actions-tools/issues/new?template=1-feature.yaml\u003e\n- Chat with us on Discord: \u003chttps://discord.gg/wXy6m2X8wY\u003e\n\n[![Features](https://img.shields.io/badge/features-brightgreen?style=for-the-badge\u0026logo=googleanalytics\u0026logoColor=white)](https://github.com/cssnr/actions-tools/issues/new?template=1-feature.yaml)\n[![Issues](https://img.shields.io/badge/issues-red?style=for-the-badge\u0026logo=southwestairlines\u0026logoColor=white)](https://github.com/cssnr/actions-tools/issues)\n[![Discussions](https://img.shields.io/badge/discussions-blue?style=for-the-badge\u0026logo=rocketdotchat\u0026logoColor=white)](https://github.com/cssnr/actions-tools/discussions)\n[![Discord](https://img.shields.io/badge/discord-5865F2?style=for-the-badge\u0026logo=discord\u0026logoColor=white)](https://discord.gg/wXy6m2X8wY)\n\n## Contributing\u003ca id=\"contributing\"\u003e\u003c/a\u003e\n\nIf you would like to submit a PR, please review the [CONTRIBUTING.md](#contributing-ov-file).\n\nPlease consider making a donation to support the development of this project\nand [additional](https://cssnr.com/) open source projects.\n\n[![Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/cssnr)\n\n[![Actions Tools](https://raw.githubusercontent.com/smashedr/repo-images/refs/heads/master/actions/actions-tools.png)](https://actions-tools.cssnr.com/)\n\nAdditionally, you can support other [GitHub Actions](https://actions.cssnr.com/) I have published:\n\n- [Stack Deploy Action](https://github.com/cssnr/stack-deploy-action?tab=readme-ov-file#readme)\n- [Portainer Stack Deploy Action](https://github.com/cssnr/portainer-stack-deploy-action?tab=readme-ov-file#readme)\n- [Docker Context Action](https://github.com/cssnr/docker-context-action?tab=readme-ov-file#readme)\n- [Actions Up Action](https://github.com/cssnr/actions-up-action?tab=readme-ov-file#readme)\n- [Rhysd Actionlint Action](https://github.com/cssnr/actionlint-action?tab=readme-ov-file#readme)\n- [Zensical Action](https://github.com/cssnr/zensical-action?tab=readme-ov-file#readme)\n- [VirusTotal Action](https://github.com/cssnr/virustotal-action?tab=readme-ov-file#readme)\n- [Mirror Repository Action](https://github.com/cssnr/mirror-repository-action?tab=readme-ov-file#readme)\n- [Update Version Tags Action](https://github.com/cssnr/update-version-tags-action?tab=readme-ov-file#readme)\n- [Docker Tags Action](https://github.com/cssnr/docker-tags-action?tab=readme-ov-file#readme)\n- [TOML Action](https://github.com/cssnr/toml-action?tab=readme-ov-file#readme)\n- [Update JSON Value Action](https://github.com/cssnr/update-json-value-action?tab=readme-ov-file#readme)\n- [JSON Key Value Check Action](https://github.com/cssnr/json-key-value-check-action?tab=readme-ov-file#readme)\n- [Parse Issue Form Action](https://github.com/cssnr/parse-issue-form-action?tab=readme-ov-file#readme)\n- [Cloudflare Purge Cache Action](https://github.com/cssnr/cloudflare-purge-cache-action?tab=readme-ov-file#readme)\n- [Mozilla Addon Update Action](https://github.com/cssnr/mozilla-addon-update-action?tab=readme-ov-file#readme)\n- [Package Changelog Action](https://github.com/cssnr/package-changelog-action?tab=readme-ov-file#readme)\n- [NPM Outdated Check Action](https://github.com/cssnr/npm-outdated-action?tab=readme-ov-file#readme)\n- [Label Creator Action](https://github.com/cssnr/label-creator-action?tab=readme-ov-file#readme)\n- [Algolia Crawler Action](https://github.com/cssnr/algolia-crawler-action?tab=readme-ov-file#readme)\n- [Upload Release Action](https://github.com/cssnr/upload-release-action?tab=readme-ov-file#readme)\n- [Check Build Action](https://github.com/cssnr/check-build-action?tab=readme-ov-file#readme)\n- [Web Request Action](https://github.com/cssnr/web-request-action?tab=readme-ov-file#readme)\n- [Get Commit Action](https://github.com/cssnr/get-commit-action?tab=readme-ov-file#readme)\n\n\u003cdetails\u003e\u003csummary\u003e❔ Unpublished Actions\u003c/summary\u003e\n\nThese actions are not published on the Marketplace, but may be useful.\n\n- [cssnr/create-files-action](https://github.com/cssnr/create-files-action?tab=readme-ov-file#readme) - Create various files from templates.\n- [cssnr/draft-release-action](https://github.com/cssnr/draft-release-action?tab=readme-ov-file#readme) - Keep a draft release ready to publish.\n- [cssnr/env-json-action](https://github.com/cssnr/env-json-action?tab=readme-ov-file#readme) - Convert env file to json or vice versa.\n- [cssnr/push-artifacts-action](https://github.com/cssnr/push-artifacts-action?tab=readme-ov-file#readme) - Sync files to a remote host with rsync.\n- [smashedr/update-release-notes-action](https://github.com/smashedr/update-release-notes-action?tab=readme-ov-file#readme) - Update release notes.\n- [smashedr/combine-release-notes-action](https://github.com/smashedr/combine-release-notes-action?tab=readme-ov-file#readme) - Combine release notes.\n\n---\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e📝 Template Actions\u003c/summary\u003e\n\nThese are basic action templates that I use for creating new actions.\n\n- [javascript-action](https://github.com/smashedr/javascript-action?tab=readme-ov-file#readme) - JavaScript\n- [typescript-action](https://github.com/smashedr/typescript-action?tab=readme-ov-file#readme) - TypeScript\n- [py-test-action](https://github.com/smashedr/py-test-action?tab=readme-ov-file#readme) - Dockerfile Python\n- [test-action-uv](https://github.com/smashedr/test-action-uv?tab=readme-ov-file#readme) - Dockerfile Python UV\n- [docker-test-action](https://github.com/smashedr/docker-test-action?tab=readme-ov-file#readme) - Docker Image Python\n\nNote: The `docker-test-action` builds, runs and pushes images to [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry).\n\n---\n\n\u003c/details\u003e\n\nFor a full list of current projects visit: [https://cssnr.github.io/](https://cssnr.github.io/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcssnr%2Factions-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcssnr%2Factions-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcssnr%2Factions-tools/lists"}