{"id":13622441,"url":"https://github.com/rest-assured/rest-assured","last_synced_at":"2026-10-18T23:07:09.186Z","repository":{"id":1134108,"uuid":"1011539","full_name":"rest-assured/rest-assured","owner":"rest-assured","description":"Java DSL for easy testing of REST services","archived":false,"fork":false,"pushed_at":"2026-10-10T19:05:33.000Z","size":12312,"stargazers_count":7141,"open_issues_count":554,"forks_count":1943,"subscribers_count":316,"default_branch":"master","last_synced_at":"2026-10-12T12:23:07.534Z","etag":null,"topics":["groovy","http","java","json","kotlin","rest","rest-api","test","test-automation","xml"],"latest_commit_sha":null,"homepage":"","language":"Java","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/rest-assured.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","accessibility":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","claude":"CLAUDE.md","gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null},"funding":{"github":"johanhaleby"}},"created_at":"2010-10-21T08:35:43.000Z","updated_at":"2026-10-11T04:38:21.000Z","dependencies_parsed_at":"2026-10-12T12:34:34.944Z","dependency_job_id":null,"html_url":"https://github.com/rest-assured/rest-assured","commit_stats":{"total_commits":2241,"total_committers":173,"mean_commits":"12.953757225433526","dds":"0.11780455153949132","last_synced_commit":"e1d96781fe67938078c906cda0a20665033a7c04"},"previous_names":["jayway/rest-assured"],"tags_count":90,"template":false,"template_full_name":null,"purl":"pkg:github/rest-assured/rest-assured","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rest-assured%2Frest-assured","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rest-assured%2Frest-assured/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rest-assured%2Frest-assured/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rest-assured%2Frest-assured/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rest-assured","download_url":"https://codeload.github.com/rest-assured/rest-assured/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rest-assured%2Frest-assured/sbom","scorecard":{"id":509349,"data":{"date":"2025-08-11","repo":{"name":"github.com/rest-assured/rest-assured","commit":"d3fa59c145097811d18c41a03ff27240cb75edfb"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":1,"reason":"Found 4/30 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/rest-assured/rest-assured/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/rest-assured/rest-assured/ci.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 4 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"32 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-2qrg-x229-3v8q","Warn: Project is vulnerable to: GHSA-65fg-84f6-3jq3","Warn: Project is vulnerable to: GHSA-f7vh-qwp3-x37m","Warn: Project is vulnerable to: GHSA-fp5r-v3w9-4333","Warn: Project is vulnerable to: GHSA-w9p3-5cr8-m3jj","Warn: Project is vulnerable to: GHSA-8qv5-68g4-248j","Warn: Project is vulnerable to: GHSA-36p3-wjmg-h94x","Warn: Project is vulnerable to: GHSA-hh26-6xwr-ggv7","Warn: Project is vulnerable to: GHSA-4gc7-5j7h-4qph","Warn: Project is vulnerable to: GHSA-4wp7-92pw-q264","Warn: Project is vulnerable to: GHSA-g5mm-vmx4-3rg7","Warn: Project is vulnerable to: GHSA-558x-2xjg-6232","Warn: Project is vulnerable to: GHSA-564r-hj7v-mcr5","Warn: Project is vulnerable to: GHSA-9cmq-m9j5-mvww","Warn: Project is vulnerable to: GHSA-wxqc-pxw9-g2p8","Warn: Project is vulnerable to: GHSA-2rmj-mq67-h97g","Warn: Project is vulnerable to: GHSA-2wrp-6fg6-hmc5","Warn: Project is vulnerable to: GHSA-4wrc-f8pq-fpqp","Warn: Project is vulnerable to: GHSA-ccgv-vj62-xf9h","Warn: Project is vulnerable to: GHSA-hgjh-9rj2-g67j","Warn: Project is vulnerable to: GHSA-g5vr-rgqm-vf78","Warn: Project is vulnerable to: GHSA-7x9j-7223-rg5m","Warn: Project is vulnerable to: GHSA-fvm3-cfvj-gxqq","Warn: Project is vulnerable to: GHSA-hfrx-6qgj-fp6c","Warn: Project is vulnerable to: GHSA-vv7r-c36w-3prj","Warn: Project is vulnerable to: GHSA-78wr-2p64-hpwj","Warn: Project is vulnerable to: GHSA-j288-q9x7-2f5v","Warn: Project is vulnerable to: GHSA-f3jh-qvm4-mg39","Warn: Project is vulnerable to: GHSA-hh32-7344-cg2f","Warn: Project is vulnerable to: GHSA-q3v6-hm2v-pw99","Warn: Project is vulnerable to: GHSA-c4q5-6c82-3qpw","Warn: Project is vulnerable to: GHSA-gq28-h5vg-8prx"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T00:08:03.584Z","repository_id":1134108,"created_at":"2025-08-20T00:08:03.584Z","updated_at":"2025-08-20T00:08:03.584Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38334704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-17T02:00:06.547Z","response_time":57,"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":["groovy","http","java","json","kotlin","rest","rest-api","test","test-automation","xml"],"created_at":"2024-08-01T21:01:19.256Z","updated_at":"2026-10-18T23:07:09.181Z","avatar_url":"https://github.com/rest-assured.png","language":"Java","funding_links":["https://github.com/sponsors/johanhaleby","https://www.buymeacoffee.com/johanhaleby"],"categories":["API Testing","Java","XML Tools and Frameworks","Testing","Test","[API Testing](TestingDomains.md/#api-testing)","HarmonyOS","Projects","自动化测试","Language-Specific API Testing Libraries","Uncategorized","测试","Awesome Tools","Tools","项目","Performance Testing"],"sub_categories":[".NET","In-memory data grids","Querying","Windows Manager","测试框架","70. [REST Assured](https://rest-assured.io/)","Uncategorized","Languages","Mesh networks","测试","API Testing \u0026 Contract Testing","Testing","API Testing"],"readme":"![REST Assured](rest-assured-logo-green.png)\n\n[![Build Status](https://github.com/rest-assured/rest-assured/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/rest-assured/rest-assured/actions/workflows/ci.yml)\n[![Maven Central](https://maven-badges.sml.io/sonatype-central/io.rest-assured/rest-assured/badge.svg)](https://central.sonatype.com/artifact/io.rest-assured/rest-assured)\n\u003c!-- [![Javadoc](https://javadoc-badge.appspot.com/io.rest-assured/rest-assured.svg)](http://www.javadoc.io/doc/io.rest-assured/rest-assured) --\u003e\n\n\nTesting and validation of REST services in Java is harder than in dynamic languages \nsuch as Ruby and Groovy. REST Assured brings the simplicity of using these \nlanguages into the Java domain.\n\n\n## News\n* 2026-10-16: REST Assured 6.2.0 is released. The `rest-assured` module is now written entirely in Java and no longer depends on Groovy directly. Tests that run in parallel no longer fail because of races in the static configuration, and `auth().certificate(..)` now sends the client certificate to servers that ask for one (mutual TLS). Many failures that used to show up as Groovy exceptions or a `NullPointerException` now give a clear error message, and `scala-support` is upgraded to a Scala version that fixes CVE-2022-36944. This release contains several non-backward compatible changes, so please read the [release notes](https://github.com/rest-assured/rest-assured/wiki/ReleaseNotes62) before upgrading. See also the [change log](https://raw.githubusercontent.com/rest-assured/rest-assured/master/changelog.txt) for more details.\n* 2026-10-09: REST Assured 6.1.0 is released. It adds support for the HTTP QUERY method, JSON Schema draft-06, draft-07, 2019-09 and 2020-12, and `java.time` values as parameters. Authorization and Cookie headers are no longer sent along when a redirect goes to a different host. There are also many bug fixes, several of them from the community. See [release notes](https://github.com/rest-assured/rest-assured/wiki/ReleaseNotes61) and [change log](https://raw.githubusercontent.com/rest-assured/rest-assured/master/changelog.txt) for more details.\n* 2026-07-10: REST Assured 6.0.1 is released. The Spring modules now target Spring 7 and no longer pull their own Spring version onto your classpath, so they work on Spring Boot 4 without manual exclusions. It also rounds out Jackson 3 support and fixes a few bugs. See [change log](https://raw.githubusercontent.com/rest-assured/rest-assured/master/changelog.txt) for more details.\n\n[Older News](https://github.com/rest-assured/rest-assured/wiki/OldNews)\n\n\n## Examples\nHere's an example of how to make a GET request and validate the JSON or XML response:\n\n```java\nget(\"/lotto\").then().assertThat().body(\"lotto.lottoId\", equalTo(5));\n```\n\nGet and verify all winner ids:\n\n```java\nget(\"/lotto\").then().assertThat().body(\"lotto.winners.winnerId\", hasItems(23, 54));\n```\n\nUsing parameters:\n\n```java\ngiven().\n    param(\"key1\", \"value1\").\n    param(\"key2\", \"value2\").\nwhen().\n    post(\"/somewhere\").\nthen().\n    body(containsString(\"OK\"));\n```\n\nUsing X-Path (XML only):\n\n```java\ngiven().\n    params(\"firstName\", \"John\", \"lastName\", \"Doe\").\nwhen().\n    post(\"/greetMe\").\nthen().\n    body(hasXPath(\"/greeting/firstName[text()='John']\")).\n```\n\nNeed authentication? REST Assured provides several authentication mechanisms:\n\n```java\ngiven().auth().basic(username, password).when().get(\"/secured\").then().statusCode(200);\n```\n\nGetting and parsing a response body:\n\n```java\n// Example with JsonPath\nString json = get(\"/lotto\").asString();\nList\u003cString\u003e winnerIds = from(json).get(\"lotto.winners.winnerId\");\n    \n// Example with XmlPath\nString xml = post(\"/shopping\").andReturn().body().asString();\nNode category = from(xml).get(\"shopping.category[0]\");\n```\n\nREST Assured supports any HTTP method but has explicit support for *POST*, *GET*, *PUT*, *DELETE*, *OPTIONS*, *PATCH* and *HEAD* and includes specifying and validating e.g. parameters, headers, cookies and body easily.\n\n\n## Documentation\n\n* [Getting started](https://github.com/rest-assured/rest-assured/wiki/GettingStarted)\n* [Usage Guide](https://github.com/rest-assured/rest-assured/wiki/Usage) (click [here](https://github.com/rest-assured/rest-assured/wiki/Usage_Legacy) for legacy documentation)\n* [Javadoc](http://www.javadoc.io/doc/io.rest-assured/rest-assured/6.2.0)\n* [Rest Assured Javadoc](http://static.javadoc.io/io.rest-assured/rest-assured/6.2.0/io/restassured/RestAssured.html)\n* [Rest AssuredMockMvc Javadoc](http://static.javadoc.io/io.rest-assured/spring-mock-mvc/6.2.0/io/restassured/module/mockmvc/RestAssuredMockMvc.html)\n* [XmlPath Javadoc](http://static.javadoc.io/io.rest-assured/xml-path/6.2.0/io/restassured/path/xml/XmlPath.html)\n* [JsonPath Javadoc](http://static.javadoc.io/io.rest-assured/json-path/6.2.0/io/restassured/path/json/JsonPath.html)\n* [Release Notes](https://github.com/rest-assured/rest-assured/wiki/ReleaseNotes)\n* [FAQ](https://github.com/rest-assured/rest-assured/wiki/FAQ)\n\n## Support and discussion\nJoin the mailing list at our [Google group](http://groups.google.com/group/rest-assured). \n\n## Links\n* [Change log](https://github.com/rest-assured/rest-assured/raw/master/changelog.txt)\n* REST Assured on [openhub](https://www.openhub.net/p/rest-assured)\n* [Mailing list](http://groups.google.com/group/rest-assured) for questions and support\n\n\u003ca href=\"https://www.buymeacoffee.com/johanhaleby\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/arial-blue.png\" alt=\"Buy Me A Coffee\" style=\"height: 42px !important;width: 180px !important;\" height=\"42px\" width=\"180px\"\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frest-assured%2Frest-assured","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frest-assured%2Frest-assured","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frest-assured%2Frest-assured/lists"}