{"id":15671063,"url":"https://github.com/winstxnhdw/actions","last_synced_at":"2026-01-29T05:48:59.917Z","repository":{"id":196013602,"uuid":"693339358","full_name":"winstxnhdw/actions","owner":"winstxnhdw","description":"A repository for my collection of reusable workflows.","archived":false,"fork":false,"pushed_at":"2026-01-19T17:58:51.000Z","size":385,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-19T23:32:32.955Z","etag":null,"topics":["actions","github-actions","reusable-workflows","workflows"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/winstxnhdw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-18T20:41:18.000Z","updated_at":"2026-01-19T17:58:55.000Z","dependencies_parsed_at":"2023-09-21T01:58:36.501Z","dependency_job_id":"9d8d1dec-9931-433a-b9ec-8d4da6a58cc4","html_url":"https://github.com/winstxnhdw/actions","commit_stats":{"total_commits":167,"total_committers":3,"mean_commits":"55.666666666666664","dds":0.5089820359281437,"last_synced_commit":"e8cb9f2a6d0c0d1dbdbd55b1a76ef9920fa791d9"},"previous_names":["winstxnhdw/actions"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/winstxnhdw/actions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winstxnhdw%2Factions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winstxnhdw%2Factions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winstxnhdw%2Factions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winstxnhdw%2Factions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winstxnhdw","download_url":"https://codeload.github.com/winstxnhdw/actions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winstxnhdw%2Factions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28864242,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T22:56:21.783Z","status":"online","status_checked_at":"2026-01-29T02:00:06.714Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","github-actions","reusable-workflows","workflows"],"created_at":"2024-10-03T15:01:36.003Z","updated_at":"2026-01-29T05:48:59.909Z","avatar_url":"https://github.com/winstxnhdw.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# actions\n\n[![codespell.yml](https://github.com/winstxnhdw/actions/actions/workflows/codespell.yml/badge.svg)](https://github.com/winstxnhdw/actions/actions/workflows/codespell.yml)\n[![dependabot.yml](https://github.com/winstxnhdw/actions/actions/workflows/dependabot-public.yml/badge.svg)](https://github.com/winstxnhdw/actions/actions/workflows/dependabot-public.yml)\n\nThis repository contains a collection of my reusable GitHub workflows. Most actions are handwritten for performance, except for officially maintained actions.\n\n## Workflows\n\n- [bun.yml](#bunyml)\n- [codespell.yml](#codespellyml)\n- [create.yml](#createyml)\n- [dependabot-private.yml](#dependabot-privateyml)\n- [dependabot-public.yml](#dependabot-publicyml)\n- [docker-build.yml](#docker-buildyml)\n- [docker-push.yml](#docker-pushyml)\n- [format-biome.yml](#format-biomeyml)\n- [format-python.yml](#format-pythonyml)\n- [keep-alive.yml](#keep-aliveyml)\n- [python.yml](#pythonyml)\n- [release.yml](#releaseyml)\n- [rust.yml](#rustyml)\n- [spaces-deploy.yml](#spaces-deployyml)\n- [spaces-restart.yml](#spaces-restartyml)\n- [spaces-warmer.yml](#spaces-warmeryml)\n- [uv.yml](#uvyml)\n\n### bun.yml\n\nReusable [Bun](https://github.com/oven-sh/bun) [workflow](.github/workflows/bun.yml) for lint/test/build.\n\n```yml\njobs:\n  bun:\n    uses: winstxnhdw/actions/.github/workflows/bun.yml@main\n    with:\n      disable-formatter: false\n      disable-linter: false\n      disable-test: false\n      disable-build: false\n      build-args: --test\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\njobs:\n  bun:\n    uses: winstxnhdw/actions/.github/workflows/bun.yml@main\n```\n\n### codespell.yml\n\nReusable [codespell](https://github.com/codespell-project/codespell) [workflow](.github/workflows/codespell.yml) for checking misspelled words in source code.\n\n```yml\njobs:\n  codespell:\n    uses: winstxnhdw/actions/.github/workflows/codespell.yml@main\n    with:\n      path: /\n      skip: ''\n      ignore_words_file: .codespellignore\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\njobs:\n  codespell:\n    uses: winstxnhdw/actions/.github/workflows/codespell.yml@main\n```\n\n### create.yml\n\nReusable GitHub template [workflow](.github/workflows/create.yml) for dynamically renaming the repository when creating a new repository from a template.\n\n```yml\non: create\n\npermissions:\n  contents: write\n\njobs:\n  create:\n    uses: winstxnhdw/actions/.github/workflows/create.yml@main\n```\n\n### dependabot-private.yml\n\nReusable [Dependabot](https://github.com/dependabot/dependabot-core) [workflow](.github/workflows/dependabot-private.yml) for auto-merging and/or auto-approving Dependabot pull requests in private repositories.\n\n```yml\npermissions:\n  contents: write\n  pull-requests: write\n\njobs:\n  auto-merge:\n    uses: winstxnhdw/actions/.github/workflows/dependabot-private.yml@main\n    secrets:\n      token: ${{ secrets.GITHUB_TOKEN }}\n```\n\n### dependabot-public.yml\n\nReusable [Dependabot](https://github.com/dependabot/dependabot-core) [workflow](.github/workflows/dependabot-public.yml) for auto-merging Dependabot pull requests in public repositories.\n\n```yml\npermissions:\n  contents: write\n\njobs:\n  auto-merge:\n    uses: winstxnhdw/actions/.github/workflows/dependabot-public.yml@main\n    secrets:\n      token: ${{ secrets.GITHUB_TOKEN }}\n```\n\n### docker-build.yml\n\nReusable [Docker](https://github.com/docker/build-push-action) [workflow](.github/workflows/docker-build.yml) for building Docker images.\n\n```yml\njobs:\n  build:\n    uses: winstxnhdw/actions/.github/workflows/docker-build.yml@main\n    with:\n      file: Dockerfile.build\n      cache-mode: max\n      build-args: |\n        ARG_1=arg_1_value\n        ARG_2=arg_2_value\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\njobs:\n  build:\n    uses: winstxnhdw/actions/.github/workflows/docker-build.yml@main\n```\n\n### docker-push.yml\n\nReusable [Docker](https://github.com/docker/build-push-action) [workflow](.github/workflows/docker-push.yml) for pushing Docker images into the GitHub Container registry.\n\n```yml\npermissions:\n  packages: write\n\njobs:\n  build:\n    uses: winstxnhdw/actions/.github/workflows/docker-push.yml@main\n    with:\n      file: Dockerfile.build\n    secrets:\n      token: ${{ secrets.GITHUB_TOKEN }}\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\npermissions:\n  packages: write\n\njobs:\n  build:\n    uses: winstxnhdw/actions/.github/workflows/docker-push.yml@main\n    secrets:\n      token: ${{ secrets.GITHUB_TOKEN }}\n```\n\n### format-biome.yml\n\nReusable [Bun](https://github.com/oven-sh/bun) [workflow](.github/workflows/format-biome.yml) for fixing Bun formatting and lints with [Biome](https://biomejs.dev).\n\n```yml\npermissions:\n  contents: write\n\njobs:\n  format:\n    uses: winstxnhdw/actions/.github/workflows/format-biome.yml@main\n```\n\n### format-python.yml\n\nReusable [Python](https://github.com/python/cpython) [workflow](.github/workflows/format-python.yml) for fixing Python formatting with [ruff](https://github.com/astral-sh/ruff).\n\n```yml\npermissions:\n  contents: write\n\njobs:\n  format:\n    uses: winstxnhdw/actions/.github/workflows/format-python.yml@main\n    with:\n      recursive-clone: false\n      cache-dependency-glob: '**/uv.lock'\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\npermissions:\n  contents: write\n\njobs:\n  format:\n    uses: winstxnhdw/actions/.github/workflows/format-python.yml@main\n```\n\n### keep-alive.yml\n\nReusable [workflow](.github/workflows/keep-alive.yml) for keeping your GitHub workflows alive. GitHub will suspend a workflow after 60 days of inactivity. Learn more [here](https://docs.github.com/en/actions/using-workflows/disabling-and-enabling-a-workflow).\n\n```yml\nname: Keep Alive\n\non:\n  schedule:\n    #       ┌──────────────── minute (0 - 59)\n    #       │ ┌────────────── hour (0 - 23)\n    #       │ │ ┌──────────── day of the month (1 - 31)\n    #       │ │ │ ┌────────── month (1 - 12 or JAN-DEC)\n    #       │ │ │ │ ┌──────── day of the week (0 - 6 or SUN-SAT)\n    #       │ │ │ │ │\n    #       │ │ │ │ │\n    #       │ │ │ │ │\n    #       * * * * *\n    - cron: 0 0 1 * *\n\npermissions:\n  contents: write\n\njobs:\n  keep-alive:\n    uses: winstxnhdw/actions/.github/workflows/keep-alive.yml@main\n```\n\n### python.yml\n\nReusable [Python](https://github.com/python/cpython) [workflow](.github/workflows/python.yml) for lint/test/build with [Poetry](https://github.com/python-poetry/poetry), [Ruff](https://docs.astral.sh/ruff) and [Pyright](https://github.com/microsoft/pyright).\n\n```yml\njobs:\n  python:\n    uses: winstxnhdw/actions/.github/workflows/python.yml@main\n    with:\n      runs-on: ubuntu-latest\n      python-version: '*'\n      disable-test: false\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\njobs:\n  python:\n    uses: winstxnhdw/actions/.github/workflows/python.yml@main\n```\n\n### release.yml\n\nReusable [workflow](.github/workflows/release.yml) for naively uploading a releases to GitHub from a workflow artifact.\n\n```yml\npermissions:\n  contents: write\n\njobs:\n  release:\n    uses: winstxnhdw/actions/.github/workflows/release.yml@main\n    with:\n      release-tag: latest\n      release-title: Build\n      release-asset: dist/*\n      artifact-name: build\n      artifact-path: dist/\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\npermissions:\n  contents: write\n\njobs:\n  release:\n    uses: winstxnhdw/actions/.github/workflows/release.yml@main\n    with:\n      release-tag: latest\n      release-title: Build\n      release-asset: dist/*\n      artifact-name: build\n```\n\n### rust.yml\n\nReusable [Rust](https://www.rust-lang.org) [workflow](.github/workflows/rust.yml) for linting.\n\n```yml\njobs:\n  rust:\n    uses: winstxnhdw/actions/.github/workflows/rust.yml@main\n    with:\n      working-directory: .\n      disable-test: false\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\njobs:\n  rust:\n    uses: winstxnhdw/actions/.github/workflows/rust.yml@main\n```\n\n### spaces-deploy.yml\n\nReusable [Hugging Face Spaces](https://huggingface.co/docs/hub/spaces-overview) [workflow](.github/workflows/spaces-deploy.yml) for deploying a `Dockerfile` to a Hugging Face Space of the same repository name.\n\n\u003e [!IMPORTANT]\\\n\u003e This workflow assumes that your Hugging Face account has the same user and repository name as the GitHub repository running this workflow.\n\n```yml\njobs:\n  deploy:\n    uses: winstxnhdw/actions/.github/workflows/spaces-deploy.yml@main\n    secrets:\n      token: ${{ secrets.HF_TOKEN }}\n```\n\n### spaces-restart.yml\n\nReusable [Hugging Face Spaces](https://huggingface.co/docs/hub/spaces-overview) [workflow](.github/workflows/spaces-restart.yml) for factory restarting a Hugging Face Space of the same repository name.\n\n\u003e [!IMPORTANT]\\\n\u003e This workflow assumes that your Hugging Face account has the same user and repository name as the GitHub repository running this workflow.\n\n```yml\njobs:\n  restart:\n    uses: winstxnhdw/actions/.github/workflows/spaces-restart.yml@main\n    secrets:\n      token: ${{ secrets.HF_TOKEN }}\n```\n\n### spaces-warmer.yml\n\nReusable [Hugging Face Spaces](https://huggingface.co/docs/hub/spaces-overview) [workflow](.github/workflows/spaces-warmer.yml) for warming a Hugging Face Space of the same repository name.\n\n\u003e [!IMPORTANT]\\\n\u003e This workflow assumes that your Hugging Face account has the same user and repository name as the GitHub repository running this workflow.\n\n```yml\nname: Warm\n\non:\n  schedule:\n    #       ┌──────────────── minute (0 - 59)\n    #       │ ┌────────────── hour (0 - 23)\n    #       │ │ ┌──────────── day of the month (1 - 31)\n    #       │ │ │   ┌──────── month (1 - 12 or JAN-DEC)\n    #       │ │ │   │ ┌────── day of the week (0 - 6 or SUN-SAT)\n    #       │ │ │   │ │\n    #       │ │ │   │ │\n    #       │ │ │   │ │\n    #       * * *   * *\n    - cron: 0 0 */2 * *\n\njobs:\n  warm:\n    uses: winstxnhdw/actions/.github/workflows/spaces-warmer.yml@main\n    with:\n      path: '/api/v3'\n    secrets:\n      token: ${{ secrets.HF_TOKEN }}\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\nname: Warm\n\non:\n  schedule:\n    #       ┌──────────────── minute (0 - 59)\n    #       │ ┌────────────── hour (0 - 23)\n    #       │ │ ┌──────────── day of the month (1 - 31)\n    #       │ │ │   ┌──────── month (1 - 12 or JAN-DEC)\n    #       │ │ │   │ ┌────── day of the week (0 - 6 or SUN-SAT)\n    #       │ │ │   │ │\n    #       │ │ │   │ │\n    #       │ │ │   │ │\n    #       * * *   * *\n    - cron: 0 0 */2 * *\n\njobs:\n  warm:\n    uses: winstxnhdw/actions/.github/workflows/spaces-warmer.yml@main\n```\n\n### uv.yml\n\nReusable [Python](https://github.com/python/cpython) [workflow](.github/workflows/uv.yml) for lint/test/build with [uv](https://github.com/astral-sh/uv), [Ruff](https://docs.astral.sh/ruff) and [Pyright](https://github.com/microsoft/pyright).\n\n```yml\njobs:\n  python:\n    uses: winstxnhdw/actions/.github/workflows/uv.yml@main\n    with:\n      runs-on: ubuntu-latest\n      recursive-clone: false\n      python-version: '*'\n      disable-lint: false\n      disable-type-check: false\n      disable-test: false\n      install-project: false\n      working-directory: .\n```\n\nMinimally, you can use it in the following manner.\n\n```yml\njobs:\n  python:\n    uses: winstxnhdw/actions/.github/workflows/uv.yml@main\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinstxnhdw%2Factions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinstxnhdw%2Factions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinstxnhdw%2Factions/lists"}