{"id":19177796,"url":"https://github.com/andrewsomething/spectral-rules","last_synced_at":"2025-10-12T08:08:27.946Z","repository":{"id":38083427,"uuid":"294502578","full_name":"andrewsomething/spectral-rules","owner":"andrewsomething","description":"Collecting examples of Spectral rulesets and functions in the wild","archived":false,"fork":false,"pushed_at":"2022-11-04T14:06:25.000Z","size":11,"stargazers_count":24,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-20T02:15:52.762Z","etag":null,"topics":["hacktoberfest","openapi","spectral"],"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/andrewsomething.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}},"created_at":"2020-09-10T19:22:57.000Z","updated_at":"2025-02-19T21:53:58.000Z","dependencies_parsed_at":"2022-08-24T14:25:35.483Z","dependency_job_id":null,"html_url":"https://github.com/andrewsomething/spectral-rules","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andrewsomething/spectral-rules","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewsomething%2Fspectral-rules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewsomething%2Fspectral-rules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewsomething%2Fspectral-rules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewsomething%2Fspectral-rules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrewsomething","download_url":"https://codeload.github.com/andrewsomething/spectral-rules/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewsomething%2Fspectral-rules/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010802,"owners_count":26084807,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"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":["hacktoberfest","openapi","spectral"],"created_at":"2024-11-09T10:35:11.919Z","updated_at":"2025-10-12T08:08:27.909Z","avatar_url":"https://github.com/andrewsomething.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Extending Spectral\n\n[Spectral](https://github.com/stoplightio/spectral) is a JSON/YAML linter, with\nout of the box support for OpenAPI v2/v3 and AsyncAPI v2. It is becoming\nincreasingly popular as a tool for defining API style guides that can be used in\nreviews and automation. It is very extensible, allowing users to both create\ncustom rulesets using builtin functions and write custom rules in JavaScript.\nThis repository is collecting examples of Spectral rulesets and functions in the\nwild.\n\n## Stoplight Spectral Documentation\n\n* [Custom Rulesets](https://meta.stoplight.io/docs/spectral/docs/guides/4-custom-rulesets.md)\n* [Custom Functions](https://meta.stoplight.io/docs/spectral/docs/guides/5-custom-functions.md)\n* [Sharing \u0026 Distributing Rulesets](https://meta.stoplight.io/docs/spectral/docs/guides/7-sharing-rulesets.md)\n* [Core Functions](https://meta.stoplight.io/docs/spectral/docs/reference/functions.md)\n\n## Custom Rulesets and Functions\n\n* [OpenAPI Community Style Guide](https://github.com/openapi-contrib/style-guides)\n  - Collection of custom rulesets including [APIs You Won't Hate](https://github.com/openapi-contrib/style-guides/blob/master/apisyouwonthate.yml), ruleset of \"super opinionated HTTP API advice\".\n* [Nexmo](https://github.com/Nexmo/api-specification)\n  - [.spectral.yml](https://github.com/Nexmo/api-specification/blob/master/.spectral.yml)\n  - [functions](https://github.com/Nexmo/api-specification/tree/master/functions)\n* [Box](https://github.com/box/box-openapi)\n  - [.spectral.yml](https://github.com/box/box-openapi/blob/main/.spectral.yml)\n  - [functions](https://github.com/box/box-openapi/tree/main/src/spectral)\n* [DigitalOcean](https://github.com/digitalocean/openapi)\n  - [ruleset.yml](https://github.com/digitalocean/openapi/blob/main/spectral/ruleset.yml)\n  - [functions](https://github.com/digitalocean/openapi/tree/main/spectral/functions)\n* [Azure](https://github.com/Azure/azure-api-style-guide)\n  - [spectral.yaml](https://github.com/Azure/azure-api-style-guide/blob/main/spectral.yaml)\n  - [functions](https://github.com/Azure/azure-api-style-guide/tree/main/functions)\n* [Using Spectral in Postman](https://learning.postman.com/docs/api-governance/configurable-rules/spectral/)\n  * Collection of more than 250 individual Spectral rules shared via [Postman Open Technologies - Governance Rules](https://www.postman.com/postman/workspace/postman-open-technologies-governance-rules/overview) and [linting rules](https://github.com/postman-open-technologies/linting-rules/tree/main/_rules)\n\n## Blog Posts\n\n* [Custom OpenAPI Style Rules with Spectral](https://lornajane.net/posts/2020/custom-openapi-style-rules-with-spectral) by Lorna Jane Mitchell\n* [Test Driven Development for Your Spectral Rules, using Jest](https://www.jvt.me/posts/2021/12/22/spectral-jest/) by Jamie Tanna\n* [Use Spectral as OAS linter in your Web API development lifecycle](https://blog.iswish.nl/2021/02/16/use-spectral-as-oas-linter.html) by Melvin Lee\n\n## Talks\n\n* [The Augmented API Design Reviewer](https://www.youtube.com/watch?v=MAHW5DmM9j4) ([slides](https://speakerdeck.com/arnaudlauret/the-augmented-api-design-reviewer)) by Arnaud Lauret at the API Specifications Conference 2020\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewsomething%2Fspectral-rules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewsomething%2Fspectral-rules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewsomething%2Fspectral-rules/lists"}