{"id":28519774,"url":"https://github.com/bazel-contrib/rules-template","last_synced_at":"2026-03-10T13:05:01.541Z","repository":{"id":38050490,"uuid":"433102591","full_name":"bazel-contrib/rules-template","owner":"bazel-contrib","description":"A template for creating a new Bazel ruleset","archived":false,"fork":false,"pushed_at":"2026-02-18T10:51:15.000Z","size":209,"stargazers_count":99,"open_issues_count":19,"forks_count":34,"subscribers_count":12,"default_branch":"main","last_synced_at":"2026-02-18T15:22:03.366Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Starlark","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bazel-contrib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"bazel-rules-authors-sig"}},"created_at":"2021-11-29T15:47:02.000Z","updated_at":"2026-01-22T02:07:30.000Z","dependencies_parsed_at":"2025-11-28T22:04:49.532Z","dependency_job_id":null,"html_url":"https://github.com/bazel-contrib/rules-template","commit_stats":null,"previous_names":[],"tags_count":5,"template":true,"template_full_name":null,"purl":"pkg:github/bazel-contrib/rules-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazel-contrib%2Frules-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazel-contrib%2Frules-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazel-contrib%2Frules-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazel-contrib%2Frules-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bazel-contrib","download_url":"https://codeload.github.com/bazel-contrib/rules-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazel-contrib%2Frules-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30334412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T12:41:07.687Z","status":"ssl_error","status_checked_at":"2026-03-10T12:41:06.728Z","response_time":106,"last_error":"SSL_read: 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":[],"created_at":"2025-06-09T06:30:31.421Z","updated_at":"2026-03-10T13:05:01.531Z","avatar_url":"https://github.com/bazel-contrib.png","language":"Starlark","funding_links":["https://opencollective.com/bazel-rules-authors-sig"],"categories":["Starlark"],"sub_categories":[],"readme":"# Template for Bazel rules\n\nCopy this template to create a Bazel ruleset.\n\nFeatures:\n\n- follows the official style guide at https://bazel.build/rules/deploying\n- allows for both WORKSPACE.bazel and bzlmod (MODULE.bazel) usage\n- includes Bazel formatting as a pre-commit hook (using [buildifier])\n- includes API documentation generation\n- includes typical toolchain setup\n- CI configured with GitHub Actions\n- release using GitHub Actions just by pushing a tag\n- the release artifact doesn't need to be built by Bazel, but can still exclude files and stamp the version\n\nReady to get started? Copy this repo, then\n\n1. search for \"com_myorg_rules_mylang\" and replace with the name you'll use for your workspace\n1. search for \"myorg\" and replace with GitHub org\n1. search for \"mylang\", \"Mylang\", \"MYLANG\" and replace with the language/tool your rules are for\n1. rename directory \"mylang\" similarly\n1. run `pre-commit install` to get lints (see CONTRIBUTING.md)\n1. if you don't need to fetch platform-dependent tools, then remove anything toolchain-related.\n1. (optional) install the [Renovate app](https://github.com/apps/renovate) to get auto-PRs to keep the dependencies up-to-date.\n1. delete this section of the README (everything up to the SNIP).\n\nOptional: if you write tools for your rules to call, you should avoid toolchain dependencies for those tools leaking to all users.\nFor example, https://github.com/aspect-build/rules_py actions rely on a couple of binaries written in Rust, but we don't want users to be forced to\nfetch a working Rust toolchain. Instead we want to ship pre-built binaries on our GH releases, and the ruleset fetches these as toolchains.\nSee https://blog.aspect.build/releasing-bazel-rulesets-rust for information on how to do this.\nNote that users who _do_ want to build tools from source should still be able to do so, they just need to register a different toolchain earlier.\n\n---- SNIP ----\n\n# Bazel rules for mylang\n\n## Installation\n\nFrom the release you wish to use:\n\u003chttps://github.com/myorg/rules_mylang/releases\u003e\ncopy the WORKSPACE snippet into your `WORKSPACE` file.\n\nTo use a commit rather than a release, you can point at any SHA of the repo.\n\nFor example to use commit `abc123`:\n\n1. Replace `url = \"https://github.com/myorg/rules_mylang/releases/download/v0.1.0/rules_mylang-v0.1.0.tar.gz\"` with a GitHub-provided source archive like `url = \"https://github.com/myorg/rules_mylang/archive/abc123.tar.gz\"`\n1. Replace `strip_prefix = \"rules_mylang-0.1.0\"` with `strip_prefix = \"rules_mylang-abc123\"`\n1. Update the `sha256`. The easiest way to do this is to comment out the line, then Bazel will\n   print a message with the correct value. Note that GitHub source archives don't have a strong\n   guarantee on the sha256 stability, see\n   \u003chttps://github.blog/2023-02-21-update-on-the-future-stability-of-source-code-archives-and-hashes/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazel-contrib%2Frules-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbazel-contrib%2Frules-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazel-contrib%2Frules-template/lists"}