{"id":14969325,"url":"https://github.com/apiaryio/gavel-spec","last_synced_at":"2025-10-26T07:31:21.583Z","repository":{"id":9311922,"uuid":"11152772","full_name":"apiaryio/gavel-spec","owner":"apiaryio","description":"Behavior specification for Gavel, validator of HTTP transactions","archived":false,"fork":false,"pushed_at":"2022-05-19T03:25:37.000Z","size":513,"stargazers_count":105,"open_issues_count":8,"forks_count":11,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-10-30T03:56:26.158Z","etag":null,"topics":["bdd","cucumber","dredd","gavel","gherkin","http","http-transactions","sjs-team","test-suite","validation"],"latest_commit_sha":null,"homepage":"http://www.relishapp.com/apiary/gavel/","language":"Gherkin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"greenplum-db/gporca","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apiaryio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-03T14:28:28.000Z","updated_at":"2021-11-14T10:54:29.000Z","dependencies_parsed_at":"2022-09-07T01:53:40.820Z","dependency_job_id":null,"html_url":"https://github.com/apiaryio/gavel-spec","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiaryio%2Fgavel-spec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiaryio%2Fgavel-spec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiaryio%2Fgavel-spec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiaryio%2Fgavel-spec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apiaryio","download_url":"https://codeload.github.com/apiaryio/gavel-spec/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238284877,"owners_count":19446744,"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":["bdd","cucumber","dredd","gavel","gherkin","http","http-transactions","sjs-team","test-suite","validation"],"created_at":"2024-09-24T13:41:36.683Z","updated_at":"2025-10-26T07:31:21.198Z","avatar_url":"https://github.com/apiaryio.png","language":"Gherkin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Behavior spec for Gavel, validator of HTTP transactions\n\n[![Relish docs](https://img.shields.io/badge/docs-Relish-green.svg?style=flat)][Gavel on Relish]\n[![npm version](https://badge.fury.io/js/gavel-spec.svg)](https://badge.fury.io/js/gavel-spec)\n[![Greenkeeper badge](https://badges.greenkeeper.io/apiaryio/gavel-spec.svg)](https://greenkeeper.io/)\n\n![Gavel - Validator of HTTP Transactions](img/gavel.png?v=1\u0026raw=true)\n\n## What is Gavel?\n\nGavel detects important differences between actual and expected HTTP transactions (HTTP request and response pairs). Gavel also decides whether the actual HTTP transaction is valid or not.\n\n### Implementations\n\n- [JavaScript][Gavel.js] [![Gavel.js Build Status](https://travis-ci.org/apiaryio/gavel.js.svg?branch=master)](https://travis-ci.org/apiaryio/gavel.js) [![Relish docs](https://img.shields.io/badge/docs-Relish-green.svg?style=flat)][Gavel.js on Relish]\n- Didn't find your favorite language? _[Add a new one!](features/add-implementation.md)_\n\n### Documentation\n\n- [Gavel on Relish][]\n\n## About `gavel-spec`\n\nThis repository contains implementation-independent behavior specification of Gavel. It's written in [Gherkin][], language used by [Cucumber][]. Two main benefits are:\n\n- Any Gavel implementation can be tested against the specification, which ensures the behavior is uniform.\n- Documentation at [Relish][] is generated from the specification, which ensures it's always up-to-date.\n\nExamples are made in raw HTTP to focus on implementation independence.\n\n### Usage\n\nTo use the specification in your project and test against it, install it as [npm package][] (or include as a [git submodule][]):\n\n```sh\n$ npm install gavel-spec\n...\n$ find ./node_modules/gavel-spec/features/**/*.feature\n./node_modules/gavel-spec/features/expectations/body_json_example.feature\n./node_modules/gavel-spec/features/expectations/body_text_example.feature\n./node_modules/gavel-spec/features/expectations/headers.feature\n./node_modules/gavel-spec/features/expectations/status_code.feature\n...\n```\n\nIt's also possible to get path to the directory with features from JavaScript:\n\n```javascript\nvar featuresPath = require('gavel-spec').featuresPath;\nconsole.log(featuresPath);  // prints '/.../node_modules/gavel-spec/features/'\n```\n\nUse [Cucumber][] for testing.\n\n### Publishing Documentation\n\nCurrently publishing of a new version of the generated documentation is done manually:\n\n1. Install Relish CLI: `gem install relish`\n2. Add current version: `relish versions:add apiary/gavel:1.1.0` (the `1.1.0` should be the same number which appears on npm as the latest package version)\n3. Publish new version of the documentation: `relish push apiary/gavel:1.1.0 path ./features/`\n\nSteps 2-3 has been simplified as `npm run docs:publish` command.\n\n\n[Relish]: https://www.relishapp.com/\n[Gavel on Relish]: https://www.relishapp.com/apiary/gavel\n[Gavel.js]: https://github.com/apiaryio/gavel.js\n[Gavel.js on Relish]: https://www.relishapp.com/apiary/gavel/docs/javascript/\n[Gherkin]: https://github.com/cucumber/gherkin\n[Cucumber]: https://github.com/cucumber/cucumber\n[git submodule]: https://git-scm.com/book/en/v2/Git-Tools-Submodules\n[npm package]: https://www.npmjs.com/package/gavel-spec\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapiaryio%2Fgavel-spec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapiaryio%2Fgavel-spec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapiaryio%2Fgavel-spec/lists"}