{"id":16602419,"url":"https://github.com/lnxpy/pyaction","last_synced_at":"2025-04-05T03:08:31.125Z","repository":{"id":184733612,"uuid":"670740945","full_name":"lnxpy/pyaction","owner":"lnxpy","description":":octocat: Create GitHub Actions Using Python","archived":false,"fork":false,"pushed_at":"2024-10-29T20:54:33.000Z","size":3253,"stargazers_count":98,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-29T23:19:34.295Z","etag":null,"topics":["actions","automation","cicd","cli","custom-actions","docker","docker-action","github-actions","github-ci","python"],"latest_commit_sha":null,"homepage":"https://pyaction.imsadra.me/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lnxpy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-25T18:17:39.000Z","updated_at":"2024-10-29T20:54:02.000Z","dependencies_parsed_at":"2023-07-29T23:51:03.863Z","dependency_job_id":"7c4d0cd4-3535-47cd-aa99-1b9a5b7568a6","html_url":"https://github.com/lnxpy/pyaction","commit_stats":null,"previous_names":["lnxpy/cookiecutter-pyaction","lnxpy/pyaction"],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnxpy%2Fpyaction","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnxpy%2Fpyaction/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnxpy%2Fpyaction/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnxpy%2Fpyaction/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lnxpy","download_url":"https://codeload.github.com/lnxpy/pyaction/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280269,"owners_count":20912967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","automation","cicd","cli","custom-actions","docker","docker-action","github-actions","github-ci","python"],"created_at":"2024-10-12T00:22:05.964Z","updated_at":"2025-04-05T03:08:31.106Z","avatar_url":"https://github.com/lnxpy.png","language":"Python","readme":"## PyAction - Create GitHub Actions Using Python! :sparkles: ![download rate](https://github.com/lnxpy/pyaction/blob/main/.pypi_chart/badge.svg#gh-light-mode-only)![download rate](https://github.com/lnxpy/pyaction/blob/main/.pypi_chart/dark_badge.svg#gh-dark-mode-only)\n\n[![marketplace](https://img.shields.io/badge/Marketplace-white?style=for-the-badge\u0026logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIj4KICA8ZGVmcz4KICAgIDxzdHlsZT4KICAgICAgLmNscy0xIHsKICAgICAgICBmaWxsLXJ1bGU6IGV2ZW5vZGQ7CiAgICAgIH0KICAgIDwvc3R5bGU+CiAgPC9kZWZzPgogIDxnIGlkPSJTVkdSZXBvX2ljb25DYXJyaWVyIiBkYXRhLW5hbWU9IlNWR1JlcG8gaWNvbkNhcnJpZXIiPgogICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTE3LjMsNzYuNTZsNjcuODMsNzMuMjhMMTA4Ljg1LDE4LjAzLDE0LjI3LDE4MS4zN0gxMjEuNTFsLTY1LjE1LTE5LjAzYy0zLjY2LTEuMDctNS4xNy01LjQ0LTIuOTItOC41NGw1NS4zNS03Ni43M2MyLjAzLTIuODIsNi4xNS0zLjA3LDguNTEtLjUxWiIvPgogIDwvZz4KPC9zdmc+)](https://pyaction.imsadra.me/docs/more/marketplace) ![version](https://img.shields.io/github/v/tag/lnxpy/pyaction?style=for-the-badge\u0026label=version\u0026labelColor=black\u0026color=white)\n ![python versions](https://img.shields.io/pypi/pyversions/pyaction?logo=python\u0026logoColor=white\u0026label=Python\u0026labelColor=black\u0026style=for-the-badge\u0026color=white) [![testing status](https://img.shields.io/github/actions/workflow/status/lnxpy/pyaction/testing.yml?branch=main\u0026style=for-the-badge\u0026label=test\u0026labelColor=black)\n](https://github.com/lnxpy/pyaction/actions/workflows/testing.yml)\n\nPyAction helps you to develop [GitHub Actions](https://docs.github.com/en/actions) using Python. It's delivered as an installable package with the ability to run and test the action locally before any deployment.\n\n```yml\n- name: Using the python action\n  uses: you/your-python-action@v2\n  with:\n      name: Jane\n      age: 20\n```\n\n```python\nfrom pyaction import PyAction\n\n\nworkflow = PyAction()\n\n@workflow.action\ndef greetings_action(name: str, age: int) -\u003e None:\n    workflow.write(\n        {\n            \"phrase\": f\"Hello {name}. You are {age}!\"\n        }\n    )\n\n# $ pyaction run\n# [\n#    {\n#       \"var\": \"phrase\",\n#       \"value\": \"Hello Jane. You are 20!\",\n#       \"type\": \"\u003cclass 'str'\u003e\",\n#       \"usage\": \"${{ steps.STEP_ID.outputs.phrase }}\"\n#    }\n# ]\n```\n\nCheck out the [official docs](https://pyaction.imsadra.me/docs) for more detailed information. There is also a [Quickstart](https://pyaction.imsadra.me/docs/overview/quickstart) demo tutorial that walks you through a simple hello-world action.\n\n### Installation\nRun the following command in a fresh CLI tab.\n\n```sh\npip install -U \"pyaction[cli]\"\n```\n\nTo make sure the installation process was successful, run the following command.\n\n```sh\npyaction --version\n```\n\nThe `pyaction` release is made to be super light which will make your workflow run very fast. The `pyaction[cli]` that you install on your local machine has some additional packages for local development.\n\n### Usage\nIt's recommended to initialize a template, then going along the development process. Thus, run the `init` command.\n\n```sh\npyaction init\n```\n\nAnswer the prompts and your template will be generated. Check out the [docs](https://pyaction.imsadra.me/docs) for the further steps.\n\n### Contribution\nAll your contributions and assistance are welcome. For more information about how you can contribute to the project, please follow the instructions [here](https://pyaction.imsadra.me/docs/more/contributing). :sparkles:\n\n### License\nPyAction is licensed under the [MIT License](LICENSE) terms.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnxpy%2Fpyaction","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flnxpy%2Fpyaction","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnxpy%2Fpyaction/lists"}